/* ==========================================================================
   SUPERFÍCIE CONTÍNUA (todas as páginas) — um só fundo preto granulado, fixo durante a rolagem
   Sem emendas de cor nem linhas divisórias entre seções: as seções ficam transparentes sobre a mesma base.
   Carregado por último. Os tokens claros dos arquivos anteriores são invertidos aqui.
   ========================================================================== */

body.home-v2, body.pg-v2 {
  --base: #050505;
  --tinta: #F3EFE6;                          /* texto principal (antes: preto) */
  --texto-claro: rgba(243, 239, 230, .66);   /* texto secundário */
  --linha-clara: rgba(255, 255, 255, .09);
  --linha-escura: rgba(255, 255, 255, .12);
  --papel: transparent;
  --ouro-sobre-claro: var(--inf-ouro);
  --inf-ouro-claro: var(--inf-ouro);
  --vidro: rgba(255, 255, 255, .028);
  --vidro-hover: rgba(255, 255, 255, .05);
  background: var(--base) !important;
  color: var(--texto-claro);
}

/* grão de filme + as finas linhas douradas do rodapé, fixos: a textura não "pula" entre as seções */
body.home-v2::before, body.pg-v2::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  /* grão de filme: quase imperceptível (5%), só para o preto ganhar textura */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
  opacity: .05;
}
body.home-v2::after, body.pg-v2::after { /* as finas linhas douradas do rodapé + luz quente bem suave no topo */
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    repeating-linear-gradient(90deg, transparent 0 2px, rgba(255, 171, 0, .016) 2px 4px),
    radial-gradient(120% 70% at 50% -10%, rgba(251, 176, 23, .05), transparent 60%);
}

/* ---------- seções transparentes, sem linhas entre elas ---------- */
body.home-v2 #empreendimentos, body.home-v2 #sobre, body.home-v2 .financing-section, body.home-v2 #blog,
body.home-v2 #contato.emp-cta-split, body.home-v2 .footer-luxury,
body.pg-v2 section:not(.page-hero):not(.hero-about):not(.blog-hero):not(.post-hero):not(.empreendimento-hero):not(.emp-lifestyle),
body.pg-v2 .footer-luxury, body.pg-v2 main, body.pg-v2 .legal-page,
body.pg-v2 .bg-light, body.pg-v2 .bg-white, body.pg-v2 .bg-dark, body.pg-v2 .section-white-pattern, body.pg-v2 .emp-why-infinity,
body.pg-v2 .knowledge-map-section, body.pg-v2 .quick-info-bar, body.pg-v2 .emp-trust-strip, body.pg-v2 .emp-filters, body.pg-v2 .emp-nav-tabs,
body.pg-v2 .featured-section, body.pg-v2 .filter-bar-section, body.pg-v2 .blog-grid-section, body.pg-v2 .post-body-section,
body.pg-v2 .continue-reading-section, body.pg-v2 .map-section {
  background: transparent !important;
  background-image: none !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}
body.home-v2 .footer-luxury::before, body.pg-v2 .footer-luxury::before { display: none !important; } /* a textura agora é global */
.footer-luxury .footer-brand, .footer-luxury .footer-main, .footer-luxury .footer-legal-bar, .footer-luxury .footer-bottom { border-top: 0 !important; border-bottom: 0 !important; }
body.home-v2 .secao-cabecalho { border-bottom: 0 !important; }
/* 04/11: a 2ª camada de listras presa às seções claras (Blog etc.) somava com a textura global, tremulava na rolagem
   e deixava uma emenda no fim da seção, logo acima da chamada final. A textura fica só a global. */
body.home-v2 section.bg-light::before, body.home-v2 #blog::before,
body.pg-v2 section.bg-light::before, body.pg-v2 #blog::before, body.pg-v2 .manifesto-section::before,
body.pg-v2 .emp-trust-strip::before, body.pg-v2 .empreendimentos-list::before { display: none !important; }
/* chamada final ("Pronto para..."): sem o fiozinho no topo e sem a linha entre o texto e os botões */
.emp-cta-split .emp-cta-split-line { display: none !important; }
.emp-cta-split .emp-cta-split-text { border: 0 !important; }
@media (max-width: 767px) { .emp-cta-split .emp-cta-split-text { padding-bottom: 0 !important; } }
body.home-v2 .secao-cabecalho { padding-bottom: 0 !important; }

/* topos e faixas com foto: a imagem dissolve na base em vez de terminar numa linha.
   (sombra interna e degradês só no fundo; o texto não é afetado) */
body.pg-v2 .page-hero { box-shadow: inset 0 -140px 90px -50px var(--base) !important; }
body.pg-v2 .blog-hero { background: transparent !important; box-shadow: none !important; }
body.pg-v2 .hero-about { background: transparent !important; }
body.pg-v2 .hero-about .hero-overlay {
  background:
    linear-gradient(0deg, var(--base) 0%, rgba(5, 5, 5, 0) 38%),
    linear-gradient(90deg, rgba(5, 5, 5, .9) 0%, rgba(5, 5, 5, .55) 60%, rgba(5, 5, 5, .2) 100%) !important;
}
body.pg-v2 .post-hero-overlay {
  background:
    linear-gradient(0deg, var(--base) 0%, rgba(5, 5, 5, 0) 40%),
    linear-gradient(90deg, rgba(5, 5, 5, .94) 0%, rgba(5, 5, 5, .75) 50%, rgba(5, 5, 5, .45) 100%) !important;
}
body.pg-v2 .emp-lifestyle { box-shadow: inset 0 140px 90px -50px var(--base), inset 0 -140px 90px -50px var(--base) !important; }

/* ---------- cabeçalho ---------- */
body.pg-v2 .header, body.pg-v2 .header.scrolled, body.home-v2 .header.scrolled {
  background: rgba(5, 5, 5, .86) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}

/* ---------- textos ---------- */
body.home-v2 h2, body.home-v2 h3, body.pg-v2 h1, body.pg-v2 h2, body.pg-v2 h3, body.pg-v2 h4, body.pg-v2 h5, body.pg-v2 h6 { color: var(--tinta) !important; }
body.pg-v2 p, body.pg-v2 li, body.pg-v2 label, body.pg-v2 dd, body.pg-v2 dt, body.pg-v2 td, body.pg-v2 small,
body.pg-v2 .text-muted, body.pg-v2 .text-dark, body.pg-v2 .lead,
body.home-v2 .text-muted { color: var(--texto-claro) !important; }
body.pg-v2 strong, body.pg-v2 b { color: var(--tinta); }
body.pg-v2 .legal-page a, body.pg-v2 .post-content a, body.pg-v2 .form-check a, body.home-v2 .footer-luxury a:hover { color: var(--inf-mostarda) !important; }
body.home-v2 .secao-eyebrow, body.pg-v2 .secao-eyebrow, body.pg-v2 .section-tag, body.pg-v2 .km-eyebrow,
body.pg-v2 .text-gold, body.pg-v2 .bi-check-circle-fill, body.pg-v2 .card-empreendimento-features i,
body.pg-v2 .progress-info-item i { color: var(--inf-mostarda) !important; }
body.home-v2 .secao-link { color: var(--tinta); border-color: rgba(243, 239, 230, .5); }
body.home-v2 .secao-link:hover { color: var(--inf-mostarda); border-color: var(--inf-mostarda); }

/* ---------- componentes em vidro escuro ---------- */
body.home-v2 .card-empreendimento, body.home-v2 .card-blog,
body.pg-v2 .card-empreendimento, body.pg-v2 .emp-why-card, body.pg-v2 .benefit-card, body.pg-v2 .pilar-card, body.pg-v2 .journey-step,
body.pg-v2 .financing-card, body.pg-v2 .contact-card, body.pg-v2 .info-card, body.pg-v2 .tl-card, body.pg-v2 .bank-logo, body.pg-v2 .faq-item,
body.pg-v2 .form-container, body.pg-v2 .stat-card, body.pg-v2 .km-node, body.pg-v2 .accordion-item, body.pg-v2 .premium-card, body.pg-v2 .progress-card,
body.pg-v2 .card, body.pg-v2 .blog-card-v2, body.pg-v2 .blog-featured-card, body.pg-v2 .sidebar-card, body.pg-v2 .post-sidebar > *, body.pg-v2 .author-card,
body.pg-v2 .emp-sidebar-card, body.pg-v2 .sticky-sidebar .card {
  background: var(--vidro) !important;
  border: 1px solid var(--linha-clara) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--texto-claro);
}
body.home-v2 .card-empreendimento:hover, body.home-v2 .card-blog:hover,
body.pg-v2 .card-empreendimento:hover, body.pg-v2 .emp-why-card:hover, body.pg-v2 .benefit-card:hover, body.pg-v2 .pilar-card:hover,
body.pg-v2 .journey-step:hover, body.pg-v2 .financing-card:hover, body.pg-v2 .contact-card:hover, body.pg-v2 .info-card:hover,
body.pg-v2 .tl-card:hover, body.pg-v2 .km-node:hover, body.pg-v2 .bank-logo:hover, body.pg-v2 .premium-card:hover {
  background: var(--vidro-hover) !important;
  border-color: rgba(251, 176, 23, .45) !important;
}
body.home-v2 .card-empreendimento-features span, body.home-v2 .card-empreendimento-feature,
body.pg-v2 .card-empreendimento-features span, body.pg-v2 .card-empreendimento-feature {
  border-color: rgba(255, 255, 255, .12) !important;
  color: rgba(243, 239, 230, .78) !important;
}
body.home-v2 .card-empreendimento-price, body.pg-v2 .card-empreendimento-price strong,
body.pg-v2 #empreendimentosGrid .card-empreendimento-price strong { color: var(--tinta) !important; }
body.home-v2 .card-empreendimento-location, body.home-v2 .card-blog-excerpt, body.home-v2 .card-blog-meta { color: var(--texto-claro) !important; }

/* ícones: quadrado vazado com contorno dourado (o quadrado preto sumia na base preta) */
body.home-v2 .benefit-icon, body.pg-v2 .emp-why-icon, body.pg-v2 .benefit-icon, body.pg-v2 .pilar-icon, body.pg-v2 .journey-icon,
body.pg-v2 .financing-icon, body.pg-v2 .contact-card-icon, body.pg-v2 .premium-card-icon, body.pg-v2 .km-node-icon-wrap {
  background: transparent !important;
  border: 1px solid rgba(251, 176, 23, .55) !important;
}
body.pg-v2 .badge, body.pg-v2 .badge-gold, body.pg-v2 .card-badges .badge,
body.home-v2 .card-empreendimento-badge, body.home-v2 .card-blog-category { background: rgba(5, 5, 5, .82) !important; border: 1px solid rgba(251, 176, 23, .35) !important; }

/* ---------- botões ---------- */
body.home-v2 .financing-section .btn-primary, body.home-v2 #contato .emp-cta-btn-primary,
body.pg-v2 section .btn-primary, body.pg-v2 main .btn-primary, body.pg-v2 .emp-cta-btn-primary,
body.pg-v2 .accordion-button:not(.collapsed) { color: #0A0A0A !important; }
body.home-v2 .financing-section .btn-primary:hover, body.home-v2 #contato .emp-cta-btn-primary:hover,
body.pg-v2 section .btn-primary:hover, body.pg-v2 main .btn-primary:hover, body.pg-v2 .emp-cta-btn-primary:hover {
  background: #F3EFE6 !important; border-color: #F3EFE6 !important; color: #0A0A0A !important;
}
body.home-v2 #empreendimentos .btn-outline-dark, body.home-v2 #blog .btn-outline-dark,
body.pg-v2 section .btn-outline-gold, body.pg-v2 section .btn-outline-dark, body.pg-v2 section .btn-secondary, body.pg-v2 main .btn-outline-gold {
  background: transparent !important; color: var(--tinta) !important; border-color: rgba(243, 239, 230, .5) !important;
}
body.home-v2 #empreendimentos .btn-outline-dark:hover, body.home-v2 #blog .btn-outline-dark:hover,
body.pg-v2 section .btn-outline-gold:hover, body.pg-v2 section .btn-outline-dark:hover, body.pg-v2 section .btn-secondary:hover, body.pg-v2 main .btn-outline-gold:hover {
  background: transparent !important; color: var(--inf-mostarda) !important; border-color: var(--inf-mostarda) !important;
}
body.pg-v2 .social-btn { background: transparent !important; border-color: rgba(243, 239, 230, .35) !important; }

/* ---------- formulários escuros ---------- */
body.pg-v2 .form-control, body.pg-v2 .form-select, body.pg-v2 .emp-select, body.pg-v2 input[type="search"], body.pg-v2 .blog-search input {
  background-color: rgba(255, 255, 255, .04) !important;
  border: 1px solid rgba(255, 255, 255, .16) !important;
  color: var(--tinta) !important;
}
body.pg-v2 .form-control::placeholder, body.pg-v2 input::placeholder, body.pg-v2 textarea::placeholder { color: rgba(243, 239, 230, .38) !important; }
body.pg-v2 .form-control:focus, body.pg-v2 .form-select:focus { border-color: var(--inf-mostarda) !important; box-shadow: 0 0 0 3px rgba(251, 176, 23, .18) !important; }
body.pg-v2 .form-select, body.pg-v2 .emp-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23FBB017' stroke-width='1.5' d='M3 6l5 5 5-5'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important; background-position: right 14px center !important; background-size: 14px !important;
}
body.pg-v2 .form-select option, body.pg-v2 .emp-select option { background: #111; color: #F3EFE6; }
body.pg-v2 input[type="date"], body.pg-v2 input[type="time"] { color-scheme: dark; }
body.pg-v2 .form-label, body.pg-v2 label.form-label { color: rgba(243, 239, 230, .8) !important; }
body.pg-v2 .form-check-input { background-color: transparent !important; border-color: rgba(255, 255, 255, .35) !important; }
body.pg-v2 .form-check-input:checked { background-color: var(--inf-mostarda) !important; border-color: var(--inf-mostarda) !important; }
body.pg-v2 .invalid-feedback { color: #FF8A7A !important; }
body.pg-v2 .was-validated .form-control:invalid, body.pg-v2 .form-control.is-invalid { border-color: #FF8A7A !important; }

/* ---------- partes específicas ---------- */
body.pg-v2 .emp-chip { background: transparent !important; border-color: rgba(255, 255, 255, .16) !important; color: rgba(243, 239, 230, .8) !important; }
body.pg-v2 .emp-chip.active, body.pg-v2 .emp-chip[aria-pressed="true"] { background: var(--inf-mostarda) !important; border-color: var(--inf-mostarda) !important; color: #0A0A0A !important; }
body.pg-v2 .nav-tab { color: rgba(243, 239, 230, .6) !important; }
body.pg-v2 .nav-tab:hover, body.pg-v2 .nav-tab.active { color: var(--tinta) !important; }
body.pg-v2 .gallery-filter { background: transparent !important; color: rgba(243, 239, 230, .7) !important; border-color: rgba(255, 255, 255, .16) !important; }
body.pg-v2 .gallery-filter.active { background: var(--inf-mostarda) !important; color: #0A0A0A !important; border-color: var(--inf-mostarda) !important; }
body.pg-v2 .accordion-button { background: transparent !important; color: var(--tinta) !important; }
body.pg-v2 .accordion-button:not(.collapsed) { background: var(--inf-mostarda) !important; }
body.pg-v2 .accordion-button::after { filter: invert(1) sepia(1) saturate(4) hue-rotate(5deg); }
body.pg-v2 .accordion-body { background: transparent !important; }
body.pg-v2 .progress-bar-container { background: rgba(255, 255, 255, .1) !important; }
body.pg-v2 .timeline::before, body.pg-v2 .timeline-line { background: rgba(255, 255, 255, .12) !important; }
body.pg-v2 .tl-dot { border-color: var(--base) !important; }
body.pg-v2 .manifesto-section blockquote, body.pg-v2 .manifesto-text, body.pg-v2 .manifesto-quote { color: var(--tinta) !important; }
body.pg-v2 .post-content p, body.pg-v2 .post-content li { color: rgba(243, 239, 230, .82) !important; }
body.pg-v2 .legal-page p, body.pg-v2 .legal-page li { color: rgba(243, 239, 230, .78) !important; }
body.pg-v2 .post-tag, body.pg-v2 .tag, body.pg-v2 .post-tags a { background: transparent !important; border: 1px solid rgba(255, 255, 255, .14) !important; color: rgba(243, 239, 230, .75) !important; border-radius: 0 !important; }
body.pg-v2 .filter-bar-section button, body.pg-v2 .filter-bar-section .filter-btn { background: transparent !important; color: rgba(243, 239, 230, .75) !important; border: 1px solid rgba(255, 255, 255, .16) !important; }
body.pg-v2 .filter-bar-section button.active, body.pg-v2 .filter-bar-section .filter-btn.active { background: var(--inf-mostarda) !important; color: #0A0A0A !important; border-color: var(--inf-mostarda) !important; }
body.pg-v2 .breadcrumb-item.active { color: var(--inf-mostarda) !important; }
body.pg-v2 .map-section iframe, body.pg-v2 #mapFrame { filter: grayscale(.6) invert(.9) hue-rotate(180deg) contrast(.9); border: 1px solid var(--linha-clara) !important; }

/* ---------- correções da varredura de contraste ---------- */
/* rodapé: copyright e links legais legíveis (contraste 2,1 → ~6) */
.footer-luxury .footer-legal-bar, .footer-luxury .footer-legal-bar a, .footer-luxury .footer-legal-copy,
.footer-luxury .footer-legal-links a, .footer-luxury .footer-newsletter-disclaimer { color: rgba(243, 239, 230, .6) !important; }
.footer-luxury .footer-legal-links a:hover { color: var(--inf-mostarda) !important; }

/* lista de empreendimentos: as regras antigas com #id deixavam o card branco */
body.pg-v2 #empreendimentosGrid .card-empreendimento,
body.pg-v2 #empreendimentosGrid .card-empreendimento-content,
body.pg-v2 #empreendimentosGrid .card-empreendimento-body,
body.pg-v2 #empreendimentosGrid .card-empreendimento-footer { background: transparent !important; }
body.pg-v2 #empreendimentosGrid .card-empreendimento { background: var(--vidro) !important; border: 1px solid var(--linha-clara) !important; }
body.pg-v2 #empreendimentosGrid .card-empreendimento:hover { background: var(--vidro-hover) !important; border-color: rgba(251, 176, 23, .45) !important; }
body.pg-v2 #empreendimentosGrid .card-empreendimento-title { color: var(--tinta) !important; }
body.pg-v2 #empreendimentosGrid .card-empreendimento-location,
body.pg-v2 #empreendimentosGrid .card-empreendimento-price small { color: var(--texto-claro) !important; }
body.pg-v2 #empreendimentosGrid .card-empreendimento-features span { color: rgba(243, 239, 230, .78) !important; border-color: rgba(255, 255, 255, .12) !important; }
body.pg-v2 #empreendimentosGrid .card-empreendimento-footer { border-top: 1px solid var(--linha-clara) !important; }
body.pg-v2 .emp-clear-btn { color: rgba(243, 239, 230, .7) !important; background: transparent !important; }
body.pg-v2 .emp-clear-btn:hover { color: var(--inf-mostarda) !important; }

/* detalhe do empreendimento */
body.pg-v2 .premium-card-text { color: rgba(243, 239, 230, .85) !important; }
body.pg-v2 .progress-info-label { color: rgba(243, 239, 230, .55) !important; }
body.pg-v2 .progress-info-item span:not(.progress-info-label) { color: var(--tinta) !important; }
body.pg-v2 .obra-progress { background: transparent !important; }

/* financiamento: simulador */
body.pg-v2 .simulator-card, body.pg-v2 .result-item, body.pg-v2 .result-grid > * { background: var(--vidro) !important; border: 1px solid var(--linha-clara) !important; border-radius: 0 !important; box-shadow: none !important; }
body.pg-v2 .simulator-card h2, body.pg-v2 .simulator-card label, body.pg-v2 .simulator-card p { color: var(--tinta) !important; }
body.pg-v2 .simulator-card .text-muted { color: var(--texto-claro) !important; }

/* blog: categorias e metadados */
body.pg-v2 .km-node-label, body.pg-v2 .km-node-count { color: rgba(243, 239, 230, .85) !important; }
body.pg-v2 .blog-featured-meta span, body.pg-v2 .bcard-meta span, body.pg-v2 .post-hero-meta span { color: rgba(243, 239, 230, .72) !important; }

/* post: índice e autor */
body.pg-v2 .toc-widget, body.pg-v2 .author-widget, body.pg-v2 .newsletter-widget { background: var(--vidro) !important; border: 1px solid var(--linha-clara) !important; border-radius: 0 !important; box-shadow: none !important; }
body.pg-v2 .author-avatar-wrap { background: transparent !important; border-color: rgba(251, 176, 23, .45) !important; }
body.pg-v2 .toc-widget-title, body.pg-v2 .author-widget-title, body.pg-v2 .author-widget-name { color: var(--tinta) !important; }
body.pg-v2 .author-widget-cargo { color: var(--texto-claro) !important; }
body.pg-v2 .toc-link { color: rgba(243, 239, 230, .72) !important; }
body.pg-v2 .toc-link.active, body.pg-v2 .toc-link:hover { color: var(--inf-mostarda) !important; background: transparent !important; border-color: var(--inf-mostarda) !important; }

/* contato: horário de atendimento */
body.pg-v2 .info-card span, body.pg-v2 .hours-list span, body.pg-v2 .horario-item span { color: rgba(243, 239, 230, .72) !important; }

/* qualquer campo de texto das páginas internas fica escuro (menos o da newsletter do rodapé, que já é sublinhado) */
body.pg-v2 input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),
body.pg-v2 textarea, body.pg-v2 select {
  background-color: rgba(255, 255, 255, .04);
  color: var(--tinta);
  border-color: rgba(255, 255, 255, .16);
}
.footer-luxury .footer-newsletter-form input[type="email"] { background-color: transparent !important; }
.footer-luxury .footer-about-text, .footer-luxury .footer-newsletter-text, .footer-luxury .footer-contact-list a,
.footer-luxury .footer-contact-list span, .footer-luxury .footer-nav-list a { color: rgba(243, 239, 230, .72) !important; }
