/*
Theme Name: iMO_Classic
Theme URI: https://davidmendoza.com.br
Author: David Mendoza
Author URI: https://wordpress.org
Description: Tema personalizado para imobiliária iMO Classic
Requires at least: 6.4
Tested up to: 6.4
Requires PHP: 7.0
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: imo
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/

/* ==================== GERAL ==================== */
body {
    overflow-x: hidden; /* fallback para Safari < 16 e outros navegadores antigos */
}

@supports (overflow-x: clip) {
    body {
        overflow-x: clip;
    }
}

.conteudo-geral {
    width: 100%;
    overflow-x: inherit;
}

li {
    list-style: none;
}

ul {
    margin: 0px;
    padding: 0px;
}

a {
    text-decoration: none;
    color: #444;
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
}

.topo {
    width: 100%;
}

.logo {
    height: auto;
    padding: 1.25rem 0.5rem 1.25rem 1.5rem;
}

/* Nome do site no topo (texto, com o mesmo tamanho do h1 que era antes) */
.logo h1,
.logo .logo-nome {
    margin: 0;
    font-size: calc(1.375rem + 1.5vw);
    font-weight: 500;
    line-height: 1.2;
}

@media (min-width: 1200px) {
    .logo .logo-nome {
        font-size: 2.5rem;
    }
}

/* Logo enviada em Personalizar → Identidade do site: altura limitada ao topo, largura proporcional, sem estourar a coluna.
   Com logo, menos espaço em cima e embaixo, para a imagem crescer sem deixar o topo alto demais */
.logo.tem-logo {
    padding-top: 0.875rem;
    padding-bottom: 0.875rem;
}

.logo .custom-logo-link {
    display: inline-block;
    max-width: 100%;
    line-height: 0;
}

.logo .custom-logo {
    width: auto;
    height: 80px; /* altura fixa: a largura segue a proporção da logo; se faltar espaço, encolhe sem distorcer */
    max-width: 100%;
    object-fit: contain;
    object-position: left center;
}

@media (max-width: 1199.98px) {
    .logo .custom-logo {
        height: 64px;
    }
}

/* Celular (o tablet tem regra própria logo abaixo) */
@media (max-width: 991.98px) {
    .logo .custom-logo {
        height: 56px;
    }
}

/* Tablet: a coluna da logo (col-md-2) é estreita demais para uma logo horizontal; com logo, ela passa a ter a largura
   da imagem e o menu ocupa o resto (sem a regra, a logo encolhia para uns 88 × 22 px) */
@media (min-width: 768px) and (max-width: 991.98px) {
    .logo.tem-logo {
        flex: 0 0 auto;
        width: auto;
    }

    .logo.tem-logo + .navegacao {
        flex: 1 1 0;
        width: auto;
        min-width: 0;
    }

    /* Logo + 5 itens + busca + Entrar não cabem nos 720 px do tablet: menu mais junto (a logo menor fica na regra abaixo) */
    .logo.tem-logo + .navegacao .menu-principal ul {
        gap: 0.7rem;
    }

    .logo.tem-logo + .navegacao .menu-principal ul li a {
        font-size: 0.88rem;
    }

    .logo.tem-logo + .navegacao .header-actions-desktop {
        margin-left: 0.6rem;
    }
}

/* Tablet com o menu completo (a partir de 769 px; em 768 o menu já é o do celular): logo um pouco menor para caber */
@media (min-width: 769px) and (max-width: 991.98px) {
    .logo.tem-logo .custom-logo {
        height: 40px;
    }
}

/* Descrição do site abaixo do logo */
.logo-descricao-header {
    margin: 2px 0 0;
    color: #777;
    font-size: 0.8rem;
    font-weight: 400;
    letter-spacing: 0.02em;
    line-height: 1.2;
    white-space: nowrap;
}

/* Tablets (menu completo ao lado de uma coluna de logo estreita): sem espaço para a descrição visível.
   Com logo ela já fica fora da tela (visually-hidden) e continua para o Google e os leitores de tela */
@media (min-width: 769px) and (max-width: 991.98px) {
    .logo-descricao-header:not(.visually-hidden) {
        display: none;
    }
}

/* ==================== NAVEGAÇÃO (desktop) ==================== */
.navegacao {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 1.25rem 1rem;
}

.navegacao .menu-principal ul {
    display: flex;
    align-items: center;
    gap: 2rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.navegacao .menu-principal ul li {
    margin: 0;
}

.navegacao .menu-principal ul li a {
    position: relative;
    display: inline-block;
    padding: 6px 0;
    color: #333;
    font-size: 1.05rem;
    font-weight: 500;
    white-space: nowrap;
    transition: color 0.2s ease;
}

/* Sublinhado vinho que cresce no hover e marca a página atual */
.navegacao .menu-principal ul li a::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    border-radius: 2px;
    background: #722731;
    transform: scaleX(0);
    transition: transform 0.25s ease;
}

.navegacao .menu-principal ul li a:hover,
.navegacao .menu-principal ul li a:focus-visible,
.navegacao .menu-principal .current-menu-item > a,
.navegacao .menu-principal .current-menu-ancestor > a {
    color: #722731;
}

.navegacao .menu-principal ul li a:hover::after,
.navegacao .menu-principal ul li a:focus-visible::after,
.navegacao .menu-principal .current-menu-item > a::after,
.navegacao .menu-principal .current-menu-ancestor > a::after {
    transform: scaleX(1);
}

/* ==================== MENU FIXO ==================== */
.fixa-navegacao {
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 999;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    animation: fadeIn 0.8s ease-in-out;
}

@keyframes fadeIn {
    0% { opacity: 0; }
    100% { opacity: 1; }
}

/* ==================== BOTÕES DO TOPO (desktop) ==================== */
.header-actions-desktop {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: 2rem;
}

.header-actions-desktop .user-menu {
    display: flex;
    align-items: center;
    gap: 8px;
}

.header-actions-desktop .botao-entrar,
.header-actions-desktop .user-name {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 38px;
    max-width: 180px;
    padding: 0 18px;
    border: none;
    border-radius: 8px;
    background: linear-gradient(135deg, #682c32 0%, #522327 100%);
    color: #fff;
    font-size: 14px;
    font-weight: 500;
    white-space: nowrap;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.header-actions-desktop .user-name span {
    overflow: hidden;
    text-overflow: ellipsis;
}

.header-actions-desktop .botao-entrar:hover,
.header-actions-desktop .user-name:hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(82, 35, 39, 0.35);
}

.header-actions-desktop .btn-sair {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    background: #fff;
    color: #777;
    transition: all 0.2s ease;
}

.header-actions-desktop .btn-sair:hover {
    border-color: #722731;
    background: #722731;
    color: #fff;
}

/* Botão de lupa e campo de busca por texto (desktop) */
.header-actions-desktop .btn-busca-header {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    background: #fff;
    color: #555;
    font-size: 1rem;
    transition: all 0.2s ease;
}

.header-actions-desktop .btn-busca-header:hover,
.header-actions-desktop .btn-busca-header[aria-expanded="true"] {
    border-color: #722731;
    color: #722731;
}

/* Abre/fecha suave: a altura anima de 0fr a 1fr (funciona com altura automática).
   Fechado, fica visibility: hidden (fora do Tab e dos leitores de tela) só depois que a animação termina. */
.busca-header {
    display: grid;
    grid-template-rows: 0fr;
    visibility: hidden;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                visibility 0s linear 0.4s;
}

.busca-header.aberta {
    grid-template-rows: 1fr;
    visibility: visible;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                visibility 0s linear 0s;
}

.busca-header-conteudo {
    min-height: 0;
    overflow: hidden;
}

.busca-header-form {
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: 680px;
    margin: 4px 1rem 1rem auto; /* folga para a sombra e o anel de foco não serem recortados */
    padding: 5px 5px 5px 14px;
    border: 1px solid #e0e0e0;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
    opacity: 0;
    transform: translateY(-10px);
    transition: opacity 0.3s ease, transform 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                border-color 0.2s ease, box-shadow 0.2s ease;
}

.busca-header.aberta .busca-header-form {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.08s, 0.05s, 0s, 0s; /* o campo surge logo depois que o header começa a abrir */
}

@media (prefers-reduced-motion: reduce) {
    .busca-header,
    .busca-header.aberta,
    .busca-header-form,
    .busca-header.aberta .busca-header-form {
        transition: none;
    }
}

.busca-header-form:focus-within {
    border-color: #722731;
    box-shadow: 0 0 0 3px rgba(114, 39, 49, 0.12);
}

.busca-header-form > i {
    color: #999;
}

.busca-header-form input {
    flex: 1;
    min-width: 0;
    border: 0;
    outline: none;
    background: transparent;
    color: #333;
    font-size: 1rem;
}

.busca-header-form .botao.btn-sm {
    --bs-btn-padding-y: .45rem;
    --bs-btn-padding-x: 1.1rem;
    --bs-btn-font-size: .9rem;
    border-radius: 7px;
}

/* Tablets e notebooks: menu mais compacto para não quebrar linha */
@media (min-width: 769px) and (max-width: 1199.98px) {
    .navegacao .menu-principal ul {
        gap: 1.1rem;
    }

    .navegacao .menu-principal ul li a {
        font-size: 0.95rem;
    }

    .header-actions-desktop {
        margin-left: 1.1rem;
    }

    .header-actions-desktop .user-name {
        max-width: 140px;
    }
}

/* Tablet (menu completo em 720 px): botões do topo menores, no tamanho do menu reduzido e da logo de 40 px.
   Fica depois das regras gerais dos botões para valer sobre elas */
@media (min-width: 769px) and (max-width: 991.98px) {
    .header-actions-desktop,
    .header-actions-desktop .user-menu {
        gap: 6px;
    }

    .header-actions-desktop .botao-entrar,
    .header-actions-desktop .user-name {
        gap: 6px;
        height: 32px;
        max-width: 130px;
        padding: 0 12px;
        border-radius: 7px;
        font-size: 13px;
    }

    .header-actions-desktop .btn-busca-header,
    .header-actions-desktop .btn-sair {
        width: 32px;
        height: 32px;
        border-radius: 7px;
        font-size: 0.85rem;
    }
}

/* ==================== MENU MOBILE ==================== */
.area-menu {
    display: none;
    align-items: center;
    margin-left: 10px;
}

.menu-mobile {
    position: fixed;
    top: 0;
    right: -100%;
    width: min(300px, 85vw);
    height: 100vh;
    height: 100dvh;
    padding: 80px 28px 28px;
    background: #fff;
    box-shadow: -4px 0 20px rgba(0, 0, 0, 0.1);
    transition: right 0.3s ease;
    z-index: 9999;
    overflow-y: auto;
}

.menu-mobile.active {
    right: 0;
}

/* Busca por texto no topo do menu mobile: só o campo, no padrão dos campos do site */
.menu-mobile .busca-mobile {
    margin-bottom: 16px;
}

.menu-mobile .busca-mobile .form-control {
    padding: 10px 14px;
    border-radius: 8px;
    font-size: 16px; /* 16px evita o zoom automático do iPhone ao focar */
}

.menu-mobile .busca-mobile .form-control:focus {
    border-color: #722731;
    box-shadow: 0 0 0 3px rgba(114, 39, 49, 0.12);
}

.menu-mobile ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.menu-mobile ul li {
    border-bottom: 1px solid #f0f0f0;
}

.menu-mobile ul li:last-child {
    border-bottom: 0;
}

.menu-mobile ul li a {
    display: block;
    padding: 14px 12px;
    border-left: 3px solid transparent;
    color: #333;
    font-size: 16px;
    font-weight: 500;
    transition: all 0.2s ease;
}

.menu-mobile ul li a:hover,
.menu-mobile .current-menu-item > a,
.menu-mobile .current_page_item > a {
    border-left-color: #722731;
    background: #faf6f6;
    color: #722731;
}

/* Botões de autenticação no mobile */
.menu-mobile .mobile-auth-buttons {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #eee;
}

.menu-mobile .mobile-auth-buttons .btn {
    display: block;
    width: 100%;
    padding: 12px;
    border: 1px solid transparent;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 500;
    text-align: center;
    transition: all 0.2s ease;
    cursor: pointer;
}

.menu-mobile .mobile-auth-buttons .btn-login,
.menu-mobile .mobile-auth-buttons .btn-dashboard {
    background: linear-gradient(135deg, #682c32 0%, #522327 100%);
    color: #fff;
}

.menu-mobile .mobile-auth-buttons .btn-login:hover,
.menu-mobile .mobile-auth-buttons .btn-dashboard:hover {
    color: #fff;
    box-shadow: 0 4px 12px rgba(82, 35, 39, 0.35);
}

.menu-mobile .mobile-auth-buttons .btn-register {
    border-color: #722731;
    background: #fff;
    color: #722731;
}

.menu-mobile .mobile-auth-buttons .btn-register:hover {
    background: #722731;
    color: #fff;
}

.menu-mobile .mobile-auth-buttons .btn-logout {
    background: #f1f1f1;
    color: #555;
}

.menu-mobile .mobile-auth-buttons .btn-logout:hover {
    background: #e4e4e4;
    color: #333;
}

.menu-mobile .user-info-mobile {
    padding: 10px 0;
    margin-bottom: 4px;
}

.menu-mobile .user-info-mobile .user-name {
    color: #333;
    font-size: 16px;
    font-weight: 500;
}

.menu-mobile .user-info-mobile .user-name i {
    color: #722731;
}

.menu-mobile .user-info-mobile .user-email {
    color: #888;
    font-size: 13px;
    overflow-wrap: anywhere;
}

/* Hambúrguer */
.box-icone-menu {
    position: relative;
    padding: 10px;
    cursor: pointer;
    z-index: 99999;
}

/* Com um modal aberto (login, criar conta), o hambúrguer fica atrás dele; antes cobria o X de fechar no celular */
.modal-open .box-icone-menu {
    z-index: 1;
}

.hamburguer,
.hamburguer::before,
.hamburguer::after {
    display: block;
    width: 26px;
    height: 2.5px;
    border-radius: 3px;
    background: #333;
    transition: all 0.3s ease;
}

.hamburguer {
    position: relative;
}

.hamburguer::before,
.hamburguer::after {
    content: '';
    position: absolute;
}

.hamburguer::before {
    top: -8px;
}

.hamburguer::after {
    bottom: -8px;
}

.box-icone-menu.active .hamburguer {
    background: transparent;
}

.box-icone-menu.active .hamburguer::before {
    top: 0;
    transform: rotate(45deg);
}

.box-icone-menu.active .hamburguer::after {
    bottom: 0;
    transform: rotate(-45deg);
}

/* Overlay */
.menu-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.45);
    z-index: 9998;
}

.menu-overlay.active {
    display: block;
}

/* ==================== RESPONSIVIDADE DO TOPO ==================== */
@media (max-width: 768px) {
    .navegacao .menu-principal {
        display: none;
    }

    .header-actions-desktop {
        display: none !important;
    }

    .area-menu {
        display: flex;
    }

    .logo {
        flex: 1;
    }
}

@media (min-width: 769px) {
    .menu-mobile,
    .menu-overlay {
        display: none !important;
    }
}


/* ==================== HOME ==================== */
.banners {
    max-width: 100%;
}

.carousel,
.carousel-inner {
    height: 500px;
    z-index: 1;
}

/* A imagem sempre cobre os 500px de altura e corta só as bordas. Antes seguia a proporção do arquivo:
   deixava faixa vazia embaixo (1920 × 500 numa tela de 1440) ou cortava o pé de imagens mais altas. */
.carousel-inner .banner-img {
    height: 500px;
    object-fit: cover;
}

/* Tablet e celular: o card de busca cobre quase todo o carrossel; mostra o lado esquerdo da imagem
   (o texto dos banners fica do meio para a direita e apareceria cortado atrás do card) */
@media (max-width: 991.98px) {
    .carousel-inner .banner-img {
        object-position: left center;
    }
}

@media(min-width:1600px) {
    .container-fluid {
        width: 1320px;
    }
}

/* ==================== COMO FUNCIONA (home) ==================== */
.como-funciona {
    padding: 3rem 0 3.5rem;
    background: #faf6f6;
}

.como-funciona-intro {
    max-width: 760px;
    margin: 0.75rem 0 2rem;
    color: #555;
    font-size: 1.05rem;
    line-height: 1.6;
}

.como-funciona-passos {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    margin: 0 0 2rem;
    padding: 0;
    list-style: none;
}

.como-funciona-passos li {
    padding: 1.5rem;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.05);
}

.como-funciona-icone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 0.9rem;
    border-radius: 10px;
    background: #f8f1f2;
    color: #722731;
    font-size: 1.3rem;
}

.como-funciona-passos h3 {
    margin: 0 0 0.4rem;
    color: #333;
    font-size: 1.1rem;
    font-weight: 500;
}

.como-funciona-passos p {
    margin: 0;
    color: #666;
    font-size: 0.95rem;
    line-height: 1.55;
}

.como-funciona-botoes {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

@media (max-width: 767.98px) {
    .como-funciona {
        padding: 2.25rem 0 2.75rem;
    }

    .como-funciona-passos {
        grid-template-columns: 1fr;
        gap: 0.9rem;
    }
}

/* ==================== CARD DE BUSCA HOME ==================== */
.card-busca-home {
    position: absolute;
    display: block;
    width: 500px;
    height: auto;
    /* top: 180px; */
    top: 55px;
    left: 50px;
    padding: 30px;
    border-radius: 20px;
    background-color: rgba(255, 255, 255, 1);
    z-index: 3;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}

/* Links comprar/alugar */
.grupo-links-card {
    padding: 0;
    display: flex;
    gap: 20px;
    margin-bottom: 20px;
}

.link-card {
    color: rgba(68, 68, 68, 0.8);
    padding: 8px 0;
    font-size: 1.2rem;
    font-weight: 500;
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    transition: all 0.3s ease;
    border-bottom: 3px solid transparent;
}

a.ativo {
    border-bottom: 3px solid rgba(114, 39, 49, 1);
    color: rgba(114, 39, 49, 1);
    opacity: 1;
}

.link-card:hover {
    border-bottom: 3px solid rgba(114, 39, 49, 1);
    color: rgba(114, 39, 49, 1);
    transform: translateY(-2px);
}

/* Títulos das seções da home ("Imóveis para comprar/alugar"). Eram h1 sem estilo próprio: 40px no desktop,
   maiores que o "Encontre o seu imóvel" do card de busca. Agora vão de 22px (celular) a 28px (desktop). */
.titulo-sessao {
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    font-size: clamp(1.4rem, 1.1rem + 0.9vw, 1.75rem);
    font-weight: 500;
    color: #333;
    margin-bottom: 0;
}

.titulo-sessao .icone-sessao {
    width: 0.8em;
    height: 0.8em;
    margin-left: 4px;
    color: #722731;
    vertical-align: -0.08em;
}

/* Linha de cima do título do card: o que é o portal (mesmo estilo das chamadas dos banners) */
.mensagem h1 .mensagem-sobre {
    display: block;
    margin-bottom: 6px;
    color: #722731;
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    line-height: 1.3;
    text-transform: uppercase;
}

/* Mensagem "Encontre o seu imóvel" */
.mensagem h1 {
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    font-size: 1.8rem;
    font-weight: 500;
    color: #444;
    margin-bottom: 20px;
}

/* ==================== FORMULÁRIO DENTRO DO CARD ==================== */
.card-busca-home .formulario {
    position: relative;
    top: 0;
    width: 100%;
}

.card-busca-home .formulario select.form-select {
    background-color: #fff;
    opacity: 1;
    border: none;
    border-bottom: 1px solid #444 !important;
    border-radius: 0px;
    padding: 0.75rem 0.5rem !important;
    width: 100% !important;
    height: auto !important;
    font-size: 1rem;
    margin-bottom: 1.5rem;
}

.select2-selection {
    margin-bottom: 8px!important;
}

.card-busca-home .formulario select.form-select:focus {
    box-shadow: none;
    border-bottom: 2px solid #722731 !important;
}

.card-busca-home .formulario .botao {
    width: 100%;
    padding: 12px !important;
    font-size: 1.1rem;
    margin-top: 0.5rem;
}

/* ==================== SELECT2 DENTRO DO CARD ==================== */
.card-busca-home .select2-container--default .select2-selection--single {
    background-color: #fff !important;
    border: none !important;
    border-bottom: 1px solid #444 !important;
    border-radius: 0px !important;
    height: 48px !important;
    padding: 0.75rem 0.5rem !important;
}

.card-busca-home .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 1.5 !important;
    padding-left: 0 !important;
    color: #495057 !important;
}

.card-busca-home .select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: #6c757d !important;
}

.card-busca-home .select2-container--default .select2-selection--single .select2-selection__arrow {
    display: none;
}

.card-busca-home .select2-container--default .select2-selection--single .select2-selection__arrow b {
    display: none;
}

.select2-container--bootstrap-5.select2-container--focus .select2-selection, .select2-container--bootstrap-5.select2-container--open .select2-selection {
	/* box-shadow: 0 0 0 .25rem rgba(13,110,253,.25); */
    box-shadow: none;
}
/* ==================== BOTÕES ==================== */
.botao {
    --bs-btn-padding-y: .75rem;
    --bs-btn-padding-x: 1.5rem;
    --bs-btn-font-size: 1rem;
    --bs-btn-bg: #722731;
    --bs-btn-active-bg: #722731;
    --bs-btn-active-color: #ddd;
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    font-weight: 400;
    background-color: #722731;
    border: #722731;
    color: #fff;
    transition: all 0.3s ease;
}

.botao:hover {
    background-color: #5a1f26;
    color: #ddd;
    transform: translateY(-2px);
}

/* Botão secundário (contorno vinho) */
.botao-outline {
    --bs-btn-padding-y: .75rem;
    --bs-btn-padding-x: 1.5rem;
    --bs-btn-font-size: 1rem;
    border: 1px solid #722731;
    background: transparent;
    color: #722731;
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    transition: all 0.3s ease;
}

.botao-outline:hover {
    background: #722731;
    color: #fff;
}

/* Botão principal das telas de conta (entrar, criar conta, recuperar senha, verificação de e-mail):
   o mesmo vinho em degradê do "Entrar" do topo. A tela wp-login.php repete o visual em inc/tela-login.php. */
.btn-imo {
    --bs-btn-padding-y: 0.75rem;
    --bs-btn-padding-x: 1.25rem;
    --bs-btn-font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    --bs-btn-font-weight: 500;
    --bs-btn-border-radius: 8px;
    --bs-btn-color: #fff;
    --bs-btn-bg: #682c32;
    --bs-btn-border-color: transparent;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #5a1f26;
    --bs-btn-hover-border-color: transparent;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #522327;
    --bs-btn-active-border-color: transparent;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #682c32;
    --bs-btn-disabled-border-color: transparent;
    --bs-btn-focus-shadow-rgb: 114, 39, 49;
    background-image: linear-gradient(135deg, #682c32 0%, #522327 100%);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.btn-imo:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(82, 35, 39, 0.35);
}

.btn-imo:disabled {
    transform: none;
    box-shadow: none;
}

/* Página "Verifique seu e-mail" (/verificar-email/): cartão no padrão do modal de login */
.verificacao-email {
    margin-bottom: 4rem;
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
}

.verificacao-email .card {
    border: none;
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
}

.verificacao-email .icone-verificacao {
    color: #722731;
}

.verificacao-email .icone-verificacao.ok {
    color: #1e7b45;
}

.verificacao-email h3 {
    font-weight: 500;
    color: #333;
}
/* Página Notícias (index.php): título, texto e aviso enquanto não houver artigos */
.noticias {
    padding-top: 2.5rem;
    padding-bottom: 3rem;
}

.noticias .noticias-intro {
    margin-bottom: 1.5rem;
    color: #777;
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
}

.noticias-vazio {
    max-width: 520px;
    margin: 1.5rem 0 1rem;
    padding: 32px 28px;
    border-radius: 12px;
    background: #f8f1f2;
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    text-align: center;
}

.noticias-vazio i {
    color: #722731;
    font-size: 2rem;
}

.noticias-vazio p {
    margin: 12px 0 18px;
    color: #555;
}

/* Cartões dos guias (página Notícias e "Leia também" dos artigos) */
.guias-lista {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.guia-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    border: 1px solid #eee;
    border-radius: 8px;
    background: #fff;
    color: #444;
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.guia-card:hover {
    color: #444;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
}

.guia-foto {
    position: relative;
}

.guia-foto img,
.guia-sem-foto {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.guia-sem-foto {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #682c32 0%, #522327 100%);
    color: rgba(255, 255, 255, 0.85);
    font-size: 2rem;
}

/* Etiqueta com a categoria do post (Guias, Artigos, Dicas, Notícias…) sobre a foto */
.guia-etiqueta {
    position: absolute;
    top: 12px;
    left: 12px;
    padding: 3px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.94);
    color: #722731;
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}

/* Filtros por categoria na página Notícias */
.noticias-filtros {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 1.5rem;
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
}

.noticias-filtros a {
    padding: 6px 14px;
    border: 1px solid #e0e0e0;
    border-radius: 999px;
    color: #555;
    font-size: 0.9rem;
    transition: all 0.2s ease;
}

.noticias-filtros a:hover {
    border-color: #722731;
    color: #722731;
}

.noticias-filtros a.ativo {
    border-color: #722731;
    background: #722731;
    color: #fff;
}

.guia-texto {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 8px;
    padding: 16px 18px 18px;
}

.guia-titulo {
    margin: 0;
    color: #333;
    font-size: 1.1rem;
    font-weight: 500;
    line-height: 1.35;
}

.guia-card:hover .guia-titulo {
    color: #722731;
}

.guia-resumo {
    margin: 0;
    color: #666;
    font-size: 0.92rem;
    line-height: 1.5;
}

.guia-ler {
    margin-top: auto;
    color: #722731;
    font-size: 0.9rem;
    font-weight: 500;
}

.guias-paginas {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 24px;
}

.guias-paginas .page-numbers {
    padding: 6px 12px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    color: #444;
}

.guias-paginas .page-numbers.current {
    border-color: #722731;
    background: #722731;
    color: #fff;
}

@media (max-width: 991.98px) {
    .guias-lista {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 575.98px) {
    .guias-lista {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}

/* Artigo (single-post.php): largura de leitura, tipografia e chamada no fim */
.artigo {
    max-width: 760px;
    padding-top: 2rem;
    padding-bottom: 2rem;
    color: #333;
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
}

.artigo-trilha {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 1rem;
    color: #999;
    font-size: 0.85rem;
}

.artigo-trilha a {
    color: #777;
}

.artigo-trilha a:hover {
    color: #722731;
}

.artigo-categoria,
.artigo-categoria:hover {
    display: inline-block;
    margin-bottom: 8px;
    padding: 2px 10px;
    border-radius: 999px;
    background: #f8f1f2;
    color: #722731;
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.artigo-titulo {
    margin: 0 0 8px;
    color: #2b2b2b;
    font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.3rem);
    font-weight: 700;
    line-height: 1.2;
}

.artigo-meta {
    margin-bottom: 1.5rem;
    color: #888;
    font-size: 0.9rem;
}

.artigo-capa {
    margin: 0 0 1.5rem;
}

.artigo-capa img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 12px;
}

/* Legenda da capa (campo "Legenda da imagem destacada" no editor) */
.artigo-capa figcaption {
    margin-top: 8px;
    color: #888;
    font-size: 0.85rem;
    line-height: 1.4;
}

.artigo-conteudo {
    color: #3a3a3a;
    font-size: 1.07rem;
    line-height: 1.75;
}

.artigo-conteudo h2 {
    margin: 2rem 0 0.75rem;
    color: #2b2b2b;
    font-size: 1.4rem;
    font-weight: 600;
}

.artigo-conteudo h3 {
    margin: 1.5rem 0 0.5rem;
    font-size: 1.15rem;
    font-weight: 600;
}

.artigo-conteudo p {
    margin-bottom: 1rem;
}

.artigo-conteudo ul,
.artigo-conteudo ol {
    margin: 0 0 1.25rem;
    padding-left: 1.4rem;
}

.artigo-conteudo li {
    margin-bottom: 0.4rem;
    list-style: disc; /* o tema tira os marcadores de todos os li */
}

.artigo-conteudo ol li {
    list-style: decimal;
}

.artigo-conteudo a {
    color: #722731;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.artigo-conteudo em {
    color: #777;
}

.artigo-conteudo blockquote {
    padding-left: 1rem;
    border-left: 4px solid #722731;
    color: #555;
}

.artigo-conteudo img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
}

.artigo-chamada {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 2.5rem;
    padding: 20px 22px;
    border-radius: 12px;
    background: #f8f1f2;
}

.artigo-chamada strong {
    display: block;
    color: #2b2b2b;
    font-size: 1.1rem;
}

.artigo-chamada p {
    margin: 4px 0 0;
    color: #555;
}

.artigo-chamada-botoes {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.artigo-relacionados {
    padding-bottom: 3rem;
}
/* ==================== SEÇÃO IMÓVEIS ==================== */
.bloco-cards {
    display: flex;
}

.home .bloco-cards .card {
    border: 1px solid #ccc;
    border-radius: 5px;
    box-shadow: 3px 3px 5px 0px rgb(214, 214, 214);
    max-width: 100vw;
    width: 300px;
    height: 100%;
}

.bloco-cards .card .imagem-card {
    width: 100%;
    max-height: 220px;
    min-height: 200px;
    object-fit: cover;
}

/* Imóvel sem foto: ícone pequeno e discreto, mesma altura das fotos */
.bloco-cards .card .imagem-card[src$="nao-ha-fotos.png"] {
    height: 200px;
    object-fit: contain;
    padding: 60px;
    background: #f1f1f1;
    opacity: 0.45;
}

/* Dados dos cards */
.dados-imovel-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    padding: 0 10px;
}

.dados-imovel-card .referencia {
    padding: 0;
}

.dados-imovel-card .tipo-negocio {
    color: #830d0d;
    border-bottom: 1px solid #830d0d;
    padding-top: 0;
}

.info-imo .icon-link {
    font-size: 0.99rem;
    margin: 0.5rem 0.3rem 0.5rem 0.2rem;
}

.home .geo>span {
    text-transform: lowercase;
}

/* Tags (inc/tags-imoveis.php): uma linha só, com rolagem horizontal quando não couberem */
.box-tags {
    display: flex;
    flex-wrap: nowrap;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 8px;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
    scrollbar-color: rgba(114, 39, 49, 0.35) transparent;
}

.box-tags::-webkit-scrollbar {
    height: 6px;
}

.box-tags::-webkit-scrollbar-thumb {
    border-radius: 3px;
    background: rgba(114, 39, 49, 0.35);
}

.box-tags .tags {
    flex: 0 0 auto;
    scroll-snap-align: start;
}

.box-tags .tags a {
    display: inline-block;
    padding: 7px 14px;
    border: 1px solid #722731;
    border-radius: 20px;
    color: #722731;
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    white-space: nowrap;
    transition: all 0.3s ease;
}


.box-tags .tags a:hover {
    background-color: #722731;
    color: white;
    text-decoration: none;
}

.card .referencia {
    padding: 0 15px;
    font-size: 1.1rem;
}

.home .card>div,
.imagem-card {
    padding: 8px;
    width: auto;
}
/* ==================== BADGES DE STATUS ==================== */
.card-image-container {
    position: relative;
    overflow: hidden;
}

.status-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    padding: 6px 12px;
    border-radius: 15px;
    font-size: 12px;
    font-weight: 600;
    color: white;
    z-index: 10;
    text-transform: uppercase;
}

.status-vendido {
    background: #d63638;
}

.status-alugado {
    background: #d63638;
}

.status-reservado {
    background: #f0a32a;
}

.imovel-vendido-alugado {
    opacity: 0.9;
}

.imovel-vendido-alugado .imagem-card {
    filter: grayscale(20%);
}


/* ==================== ARCHIVE IMOVEIS ==================== */
.archive .posts-imoveis {
    display: flex;
    flex-flow: row;
    flex-wrap: wrap;
}

.archive .bloco-cards {
    flex-wrap: wrap;
    padding: 10px;
}

.archive .bloco-cards .card {
    border: 1px solid rgb(204, 204, 204);
    border-radius: 5px;
    box-shadow: rgb(214, 214, 214) 3px 3px 5px 0px;
    max-width: 100vw;
    width: 270px;
    margin-top: 0.5rem;
    margin-right: 0.5rem;
}

.archive .card {
    box-shadow: none;
}

.archive .sem-miniatura {
    width: 300px;
    height: 200px;
}

.archive .dados-imovel-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    padding: 5px 10px;
    height: 40px;
}

.archive .dados-imovel-card .referencia {
    font-size: 17px;
}

.archive .dados-imovel-card .tipo-negocio {
    color: #830d0d;
    border-bottom: 1px solid #830d0d;
    padding-top: 0;
    justify-content: end;
}

.archive .bloco-cards .card .info-imo {
    display: flex;
    height: 50px;
    margin-top: auto;
    margin-bottom: auto;
}

.archive .bloco-cards .card .info-imo .icon-link {
    margin: 0.5rem 0.5rem 0.5rem 0;
    font-size: 0.88rem;
}

.archive .bloco-cards .card .geo {
    height: 40px;
    margin-top: auto;
    margin-bottom: auto;
}

.archive .bloco-cards .card .valor {
    height: 60px;
    margin-top: auto;
    margin-bottom: auto;
}

.archive .botao-card {
    height: 80px;
    margin: 10% auto 1% auto;
}

.archive .botao-card a .botao-ver-detalhes {
    margin: auto;
}

.archive #posts-imoveis .bloco-cards .card .valor,
.geo,
.info-imo {
    padding: 8px 12px;
}

.archive .geo>span {
    text-transform: lowercase;
}

/* ==================== SINGLE ==================== */
.single .container-fluid {
    padding: 0px;
}

.single #galeria .box-thumb-post {
    margin-right: 0.5em;
}

.single #galeria .img-principal {
    max-width: 100%;
    height: fit-content;
    object-fit: cover;
}

.single #galeria p {
    display: none;
}

.single #galeria .ootb-openstreetmap--map {
    display: none;
}

.single #texto .info-imo {
    padding: 8px 0px;
}

.single #texto figure {
    display: none;
}

.single #texto .dados-imovel-post .dados {
    padding: 8px 12px;
}

.single .box-galeria {
    display: flex;
    flex-wrap: nowrap;
}

.single .dados-imovel-post {
    display: flex;
}

/* Galeria: não esticar a última foto quando a linha fica incompleta */
.single .galeria-imagens-post .wp-block-gallery.has-nested-images figure.wp-block-image {
    flex-grow: 0;
}

/* Celular: galeria e dados empilhados (em vez de colunas espremidas) */
@media (max-width: 767.98px) {
    .single .box-galeria,
    .single .dados-imovel-post {
        flex-direction: column;
    }

    .single #galeria .box-thumb-post {
        margin-right: 0;
    }
}

.single .texto-imovel-post {
    padding: 8px 12px;
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    font-weight: 300;
}

/* Título do imóvel: agora é o h1 da página (SEO), com o tamanho do h3 que era antes */
.single .titulo-imovel {
    margin-bottom: 0.5rem;
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    font-size: calc(1.3rem + 0.6vw);
    font-weight: 400;
    line-height: 1.2;
}

@media (min-width: 1200px) {
    .single .titulo-imovel {
        font-size: 1.75rem;
    }
}

.single .dados-imovel-post .dados p {
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    font-weight: 400;
}

/* ==================== PAGE TEMPLATE COMPRAR/ALUGAR ==================== */
.page-template .titulo-pagina {
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    font-weight: 500;
}

.page-template .posts-imoveis {
    display: flex;
    flex-flow: row;
    flex-wrap: wrap;
}

.page-template .bloco-cards {
    flex-wrap: wrap;
    padding: 10px;
}

.page-template .bloco-cards .card {
    border: 1px solid #ccc;
    border-radius: 5px;
    box-shadow: 3px 3px 5px 0px rgb(214, 214, 214);
    max-width: 100%;
    width: auto; /* preenche a coluna (270px fixo sobrepunha os cards entre 992 e ~1300px) */
    margin-top: 0.5rem;
    margin-right: 0.5rem;
}

.page-template .card {
    border: 0px;
    box-shadow: none;
}

.page-template .dados-imovel-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    padding: 5px 12px;
}

.page-template .dados-imovel-card .referencia {
    padding: 0px;
}

.page-template #posts-imoveis .bloco-cards .card .valor,
.geo,
.info-imo {
    padding: 8px 12px;
}

.page-template .geo>span {
    text-transform: lowercase;
}

.page-template .info-imo {
    display: flex;
    justify-content: space-around;
}

.page-template .bloco-cards .card .info-imo .icon-link {
    font-size: 0.9rem;
}

.page-template .botao-card {
    margin: 1.5rem auto;
}

.page-template .dados-imovel-card .tipo-negocio {
    color: #830d0d;
    border-bottom: 1px solid #830d0d;
    padding-top: 0;
}

/* .page-template .bloco-cards .card-item{
    width: 100%
} */
/* ==================== MAPA ==================== */


@media (min-width: 992px) {
    .archive .fixa-mapa {
        position: sticky !important;
        top: 90px;
        z-index: 999;
    }

    .page-template .fixa-mapa {
        position: sticky !important;
        top: 90px;
        z-index: 999;
    }
}
#map-container {
    height: 98%;
}

#map { 
    width: 100%;
    height: 600px; 
    margin-top: 2em;  
    z-index: 2;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.map-popup {
    min-width: 250px;
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
}

.map-popup h6 {
    margin-top: 0;
    color: #2c3e50;
    font-weight: bold;
    font-size: 1.1em;
    border-bottom: 2px solid #3498db;
    padding-bottom: 8px;
    margin-bottom: 12px;
}

.map-popup p {
    margin: 6px 0;
    font-size: 0.95em;
    color: #555;
}

.map-popup strong {
    color: #2c3e50;
}

.map-popup .botao-icone-mapa {
    color: #fff;
}

.map-popup h6 {
    border-bottom: 2px solid #722731;
}



/* ESTILOS MARCADORES MAPA*/
.custom-marker {
    background: transparent !important;
    border: none !important;
}

.marker-container {
    position: relative;
    cursor: pointer;
    transition: all 0.3s ease;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3));
}

.marker-container:hover {
    transform: translateY(-2px);
    filter: drop-shadow(0 4px 8px rgba(0,0,0,0.4));
}

.marker-pin {
    width: 40px;
    height: 50px;
    position: relative;
}

.marker-pin-bg {
    width: 40px;
    height: 40px;
    background: linear-gradient(135deg, #007bff, #0056b3);
    border-radius: 50% 50% 50% 0;
    transform: rotate(-45deg);
    position: absolute;
    top: 0;
    left: 0;
    box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}

.marker-pin-bg.casa { background: linear-gradient(135deg, #28a745, #1e7e34); }
.marker-pin-bg.apartamento { background: linear-gradient(135deg, #007bff, #0056b3); }
.marker-pin-bg['casasobrado'] { background: linear-gradient(135deg, #6f42c1, #563d7c); }
.marker-pin-bg.lote { background: linear-gradient(135deg, #fd7e14, #e55a00); }
.marker-pin-bg.comercial { background: linear-gradient(135deg, #dc3545, #c82333); }

.marker-icon {
    position: absolute;
    top: 8px;
    left: 8px;
    transform: rotate(45deg);
    font-size: 16px;
    color: white;
    z-index: 2;
    text-shadow: 0 1px 2px rgba(0,0,0,0.3);
}

.marker-price {
    position: absolute;
    top: -25px;
    left: 50%;
    transform: translateX(-50%);
    background: white;
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 10px;
    font-weight: bold;
    color: #333;
    white-space: nowrap;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
    border: 1px solid #e0e0e0;
    z-index: 3;
}

.marker-details {
    position: absolute;
    top: 45px;
    left: 50%;
    transform: translateX(-50%);
    background: white;
    padding: 4px 8px;
    border-radius: 8px;
    font-size: 9px;
    color: #666;
    white-space: nowrap;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
    border: 1px solid #e0e0e0;
    z-index: 3;
}

.marker-details span {
    margin: 0 2px;
}

/* PULSO ANIMADO */
.marker-pulse {
    position: absolute;
    top: -10px;
    left: -10px;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: rgba(0, 123, 255, 0.3);
    animation: pulse 2s infinite;
    z-index: 1;
}

@keyframes pulse {
    0% {
        transform: scale(0.8);
        opacity: 1;
    }
    70% {
        transform: scale(1.2);
        opacity: 0;
    }
    100% {
        transform: scale(0.8);
        opacity: 0;
    }
}

/* POPUP MELHORADO */
.leaflet-popup-content-wrapper {
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.leaflet-popup-content {
    margin: 15px;
    min-width: 200px;
}

.map-popup {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

.map-popup h6 {
    color: #333;
    margin-bottom: 8px;
    font-weight: 600;
}

.map-popup p {
    margin: 4px 0;
    font-size: 13px;
    color: #666;
}

.map-popup strong {
    color: #333;
}

.popup-image {
    width: 100%;
    height: 120px;
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: 10px;
}

.popup-features {
    display: flex;
    justify-content: space-between;
    margin: 8px 0;
    padding: 8px 0;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
}

.popup-feature {
    text-align: center;
    font-size: 11px;
}

.popup-feature strong {
    display: block;
    font-size: 14px;
    color: #007bff;
}

/* BOTÃO MELHORADO */
.botao-icone-mapa {
    width: 100%;
    text-align: center;
    font-weight: 600;
    padding: 8px 16px;
}

/* CARDS EM DESTAQUE */
.card-destaque {
    animation: highlight 2s ease;
    box-shadow: 0 0 0 3px #007bff !important;
    border-radius: 8px;
}

@keyframes highlight {
    0% { box-shadow: 0 0 0 0 rgba(0, 123, 255, 0.7); }
    50% { box-shadow: 0 0 0 10px rgba(0, 123, 255, 0); }
    100% { box-shadow: 0 0 0 0 rgba(0, 123, 255, 0); }
}

/* RESPONSIVO */
@media (max-width: 768px) {
    .marker-price {
        font-size: 8px;
        padding: 2px 6px;
    }
    
    .marker-details {
        font-size: 8px;
        padding: 2px 6px;
    }
}

/* ==================== RODAPÉ ==================== */
.rodape {
    position: relative;
    height: 450px;
    width: 100%;
    background-color: rgb(27, 24, 24);
    color: #ddd;
}

.rodape .box-links-rodape h6 {
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    font-weight: 700;
}

.rodape .box-links-rodape a {
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    font-weight: 300;
    color: #bbb;
    margin: 5px 5px;
    padding: 8px 5px;
}

.rodape .box-links-rodape {
    display: flex;
    justify-content: space-between;
}

.rodape .box-links-rodape .imoveis-links,
.institucional-links,
.redes-sociais {
    display: flex;
    flex-direction: column;
    padding: 10px;
}

/* (Regra antiga do copyright com position: absolute e width: 90% removida: a largura era medida pela tela
    inteira e, em telas acima de 1600px, a linha passava da borda e a página rolava para o lado.
    O estilo atual está mais abaixo, em "COPYRIGHT".) */

/* Estilos para os links de redes sociais */
.redes-sociais .social-link {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    text-decoration: none;
    color: inherit;
    transition: color 0.3s ease;
}

.redes-sociais .social-link:hover {
    color: #0073aa; /* Cor ao passar o mouse */
}

.redes-sociais .social-link i {
    font-size: 16px;
    width: 20px;
    text-align: center;
}

/* Cores específicas para cada rede social (opcional) */
.redes-sociais .social-link i.fa-facebook-f { color: #1877F2; }
.redes-sociais .social-link i.fa-instagram { color: #E4405F; }
.redes-sociais .social-link i.fa-twitter { color: #1DA1F2; }
.redes-sociais .social-link i.fa-linkedin-in { color: #0A66C2; }
.redes-sociais .social-link i.fa-youtube { color: #FF0000; }
.redes-sociais .social-link i.fa-whatsapp { color: #25D366; }
.redes-sociais .social-link i.fa-tiktok { color: #000000; }
.redes-sociais .social-link i.fa-pinterest-p { color: #BD081C; }
.redes-sociais .social-link i.fa-telegram { color: #0088CC; }

/* ==================== UTILITÁRIOS ==================== */
/* .oculta-mapa {
    display: none;
}

.mostra-mapa {
    display: block;
}

.cards-sem-mapa {
    flex: 0 0 100%;
    max-width: 100%;
}

.col-xxl-3 {
    flex: 0 0 auto;
    width: 25%;
}

.col-xl-3 {
    flex: 0 0 auto;
    width: 25%;
} */


/* ESTILOS PARA TOGGLE DO MAPA — só aplica em desktop/tablet-grande */
@media (min-width: 992px) {
    .lateral {
        transition: all 0.3s ease-in-out;
    }

    .lateral.oculta-mapa {
        display: none !important;
    }

    .bloco-cards.com-mapa {
        width: 66.666667% !important;
        flex: 0 0 66.666667% !important;
        max-width: 66.666667% !important;
    }

    .bloco-cards.sem-mapa {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }

    .card-com-mapa {
        flex: 0 0 33.333333% !important;
        max-width: 33.333333% !important;
    }

    .card-sem-mapa {
        flex: 0 0 25% !important;
        max-width: 25% !important;
    }

    /* Quando mapa está oculto, forçar width de 315px */
    .lateral.oculta-mapa ~ .bloco-cards .col-xl-3,
    .lateral.oculta-mapa ~ .bloco-cards .col-xxl-3 {
        width: 315px !important;
        flex: 0 0 315px !important;
        max-width: 315px !important;
    }

    .card-sem-mapa .card {
        width: 315px!important;
    }
    /* Container ajustado para 4 colunas fixas */
    .lateral.oculta-mapa ~ .bloco-cards .row {
        justify-content: flex-start;
        gap: 15px;
    }

    /* Reset quando mapa está visível */
    .lateral:not(.oculta-mapa) ~ .bloco-cards .col-xl-4,
    .lateral:not(.oculta-mapa) ~ .bloco-cards .col-xxl-4 {
        width: auto;
        flex: 1;
    }
}


/* Notebooks (992–1199px) com mapa aberto: 2 colunas, 3 ficavam estreitas demais */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .card-com-mapa {
        flex: 0 0 50% !important;
        max-width: 50% !important;
    }
}

/* Chips de "Filtros ativos" na barra de filtros */
.filtro-ativo {
    border: 1px solid rgba(114, 39, 49, 0.25);
    background: #faf6f6;
    color: #722731;
    font-weight: 500;
}

.filtro-ativo a {
    color: #722731;
}

.filtro-ativo a:hover {
    color: #5a1f26;
}

/* Estilos Barra de Pesquisa topo */
.barra-busca .card .card-body h5,
.barra-busca .card .card-body h1 { /* o título do filtro virou o h1 da página (SEO) */
    color:#722731
}

.barra-busca form .col-12 a {
    color: #722731
}

.barra-busca #form-filtros-imoveis button {
    background-color: #722731 ;
    --bs-btn-border-color: #722731 ;
}

.barra-busca #form-filtros-imoveis .form-label  {
    color:#333;
}

.barra-busca #filtros-avancados .form-label {
    color:#333;
}




/* ==================== RESPONSIVO ==================== */


@media (max-width:991px) {
    .page-template .bloco-cards .card-item{
        padding-bottom: 1rem;
    }
    .page-template .bloco-cards .card{
        /* margin: auto; */
    }
}

@media (max-width: 767px) {
    .menu {
        display: none;
    }

    .card-busca-home {
        position: absolute;
        top: 20%;
        width: 80%;
        /* left: 10%;
        right: 1%; */
    }

    .grupo-links-card .link-card {
        /* padding-bottom: 2px; */
    }

    .grupo-links-card {
        margin-bottom: 10px !important;
    }

    .carousel, .carousel-inner .banner-img {
        height: 100vh;
        object-fit: cover;
    }

    .lateral {
        /* display: none !important; */
    }
    
    .bloco-cards {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
}

@media (max-width: 769px) {
    .mensagem h1{
        font-size: 1.5rem;
    }
}

@media (max-width: 768px) {
    .carousel {
        height: 100%;
    }

    .card-busca-home{
        max-width: 50%;
        top: 20%;
        
    }

    .card-busca-home .formulario select.form-select{
      width: auto;
    }

    #map {
        height: 400px;
        border-radius: 8px;
    }
    
    .marker-price {
        font-size: 10px;
        padding: 2px 6px;
        top: -25px;
    }
    
    .marker-details {
        bottom: -20px;
    }
    
    .marker-rooms, .marker-garage {
        font-size: 9px;
        padding: 1px 4px;
    }
    
    #lateral {
        /* display: none; */
    }
    
    #bloco-cards {
        width: 100% !important;
    }
}

@media (max-width:576px) {
    .card-busca-home{
        max-width: 100%;
        top: 20%;
        
    }

    .box-tags{
        font-size: 0.8rem;
    }
    .archive .bloco-cards .cards {
        margin-top: 1.5rem;
    }

    .posts-imoveis {
        padding: 1.5rem;
    }

    .page-template .bloco-cards .card {
        margin-top: 1rem;
        margin-right: 0;
        width: 100%;
    }
}

/* Celular: o card de busca ocupa a largura toda; o banner aparece só na faixa de cima (140px).
   Com "Imagem para celular" (1080 × 1496, texto no topo), a imagem preenche o carrossel presa pelo topo. */
@media (max-width: 575.98px) {
    .carousel-inner {
        height: 540px;
    }

    /* Card mais justo: com a linha "Compra, venda e aluguel de imóveis" ele continua dentro do banner até em 320 px */
    .card-busca-home {
        top: 140px;
        padding: 22px;
    }

    .card-busca-home .mensagem {
        margin-top: 0.75rem !important; /* no lugar do mt-4 do Bootstrap */
    }

    .mensagem h1 {
        margin-bottom: 14px;
    }

    .mensagem h1 .mensagem-sobre {
        font-size: 0.66rem;
        letter-spacing: 0.03em;
    }

    .carousel-item picture {
        display: block;
    }

    .carousel-inner .banner-img.tem-celular {
        height: 540px;
        object-position: center top;
    }
}

/* ==================== MAPA ABAIXO DOS CARDS (<992px) ==================== */
@media (max-width: 991.98px) {
    /* Mapa sempre visível, sempre depois dos cards (a ordem do HTML já resolve isso) */
    .lateral,
    .lateral.oculta-mapa,
    #lateral {
        display: block !important;
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
        order: 2;
        margin-top: 2rem;
    }

    /* Bloco de cards ocupa 100% e volta a obedecer as classes col-* do Bootstrap */
    #bloco-cards,
    .bloco-cards.com-mapa,
    .bloco-cards.sem-mapa {
        order: 1;
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }

    /* (Removido: um "reset" com width:auto/flex:unset nos cards. As larguras fixas que ele desfazia só
       existem a partir de 992px, então aqui ele só anulava a grade col-md-6 do Bootstrap e os cards
       ficavam 1 por linha, com um vazio à direita, entre 768 e 991px.) */

    /* Mapa não fica sticky/fixo em telas menores */
    #map-container.fixa-mapa-container,
    .archive .fixa-mapa,
    .page-template .fixa-mapa {
        position: static !important;
        top: auto !important;
    }

    #map {
        height: 450px;
        /* sem position aqui — o Leaflet precisa do position:relative
           que ele mesmo aplica via .leaflet-container */
    }

    /* Não faz sentido ter botão de ocultar mapa, já que ele sempre aparece embaixo */
    #botao-mapa {
        display: none !important;
    }
}


/* ==================== RODAPÉ ==================== */
.rodape {
    width: 100%;
    height: 100%;
    background-color: #1b1818;
    color: #ddd;
    padding: 40px 0 20px 0;
    margin-top: 40px;
}

/* ==================== BOX LINKS ==================== */
.rodape .box-links-rodape {
    padding: 20px 0 30px 0;
    /* border-bottom: 1px solid rgba(255, 255, 255, 0.08); */
}

/* ==================== LOGO ==================== */
.logo-footer {
    margin-bottom: 20px;
}

/* Logo no rodapé (Personalizar → Identidade do site): até 48 px de altura; a principal, sem versão clara, fica branca */
.logo-footer .logo-rodape-link {
    display: inline-block;
    margin-bottom: 6px;
    line-height: 0;
}

/* Logo do rodapé: altura fixa por tamanho de tela, como no topo; a largura segue a proporção da logo e, se faltar
   espaço na coluna, ela encolhe sem distorcer */
.logo-footer .logo-rodape {
    width: auto;
    height: 80px;
    max-width: 100%;
    object-fit: contain;
}

@media (max-width: 1199.98px) {
    .logo-footer .logo-rodape {
        height: 64px;
    }
}

/* Tablet: a coluna do rodapé tem uns 156 px */
@media (min-width: 768px) and (max-width: 991.98px) {
    .logo-footer .logo-rodape {
        height: 48px;
    }
}

.logo-footer .logo-rodape-branca {
    filter: brightness(0) invert(1);
}

.logo-footer .logo-text {
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    font-size: 2.2rem;
    font-weight: 700;
    color: #fff;
    margin: 0;
    letter-spacing: 2px;
}


.logo-footer .email-rodape {
    margin-top: 12px;
    max-width: 100%;
    overflow-wrap: anywhere; /* não estoura a coluna estreita do tablet */
}

/* ==================== TÍTULOS DAS SEÇÕES ==================== */
.rodape .box-links-rodape h6 {
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    font-weight: 700;
    font-size: 0.95rem;
    text-transform: uppercase;
    color: #fff;
    margin-bottom: 15px;
    letter-spacing: 1px;
    position: relative;
    padding-bottom: 10px;
}

.rodape .box-links-rodape h6::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 30px;
    height: 2px;
    background-color: #722731;
}

/* ==================== LINKS ==================== */
.rodape .box-links-rodape a {
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    font-weight: 300;
    color: #bbb;
    padding: 5px 0;
    transition: all 0.3s ease;
    display: inline-block;
    font-size: 0.9rem;
}

.rodape .box-links-rodape a:hover {
    color: #fff;
    transform: translateX(5px);
}

.rodape .box-links-rodape .imoveis-links,
.rodape .box-links-rodape .institucional-links {
    display: flex;
    flex-direction: column;
}

.rodape .box-links-rodape .imoveis-links a,
.rodape .box-links-rodape .institucional-links a {
    padding: 6px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.rodape .box-links-rodape .imoveis-links a:last-child,
.rodape .box-links-rodape .institucional-links a:last-child {
    border-bottom: none;
}

/* ==================== REDES SOCIAIS ==================== */
.redes-sociais .redes-grid {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.redes-sociais .social-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 12px;
    text-decoration: none;
    color: #bbb;
    transition: all 0.3s ease;
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    font-weight: 300;
    font-size: 0.9rem;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.redes-sociais .social-link:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
    transform: translateX(5px);
}

.redes-sociais .social-link i {
    font-size: 18px;
    width: 24px;
    text-align: center;
    transition: transform 0.3s ease;
}

.redes-sociais .social-link:hover i {
    transform: scale(1.2);
}

/* Cores das redes sociais */
.redes-sociais .social-link i.fa-facebook-f { color: #1877F2; }
.redes-sociais .social-link i.fa-instagram { color: #E4405F; }
.redes-sociais .social-link i.fa-twitter { color: #1DA1F2; }
.redes-sociais .social-link i.fa-linkedin-in { color: #0A66C2; }
.redes-sociais .social-link i.fa-youtube { color: #FF0000; }
.redes-sociais .social-link i.fa-whatsapp { color: #25D366; }
.redes-sociais .social-link i.fa-tiktok { color: #ffffff; }
.redes-sociais .social-link i.fa-pinterest-p { color: #BD081C; }
.redes-sociais .social-link i.fa-telegram { color: #0088CC; }

/* ==================== COPYRIGHT ==================== */
.rodape .box-copyright {
    padding: 20px 0 10px 0;
    text-align: center;
}

.rodape .box-copyright .copyright-text {
    font-size: 0.85rem;
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
    color: #888;
}

.rodape .box-copyright .copyright-text a {
    color: #722731;
    text-decoration: none;
    font-weight: 500;
    transition: color 0.3s ease;
}

.rodape .box-copyright .copyright-text a:hover {
    color: #fff;
}

/* ==================== RESPONSIVIDADE ==================== */

/* Tablets (768px - 991px) */
@media (max-width: 991.98px) {
    .rodape {
        padding: 30px 0 15px 0;
    }
    
    .rodape .box-links-rodape {
        padding: 10px 0 20px 0;
    }
    
    .logo-footer .logo-text {
        font-size: 2rem;
    }
    
    .rodape .box-links-rodape h6::after {
        left: 0;
    }
    
    .imoveis-links,
    .institucional-links {
        align-items: flex-start;
    }
    
    .redes-sociais .redes-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }
}

/* Mobile (até 767px) */
@media (max-width: 767.98px) {
    .rodape {
        padding: 25px 0 10px 0;
    }
    
    .rodape .box-links-rodape {
        padding: 5px 0 15px 0;
        text-align: center;
    }
    
    /* Logo */
    .logo-footer {
        text-align: center;
        margin-bottom: 15px;
    }
    
    .logo-footer .logo-text {
        font-size: 1.8rem;
    }
    
    /* Títulos */
    .rodape .box-links-rodape h6 {
        font-size: 0.9rem;
        text-align: center;
    }
    
    .rodape .box-links-rodape h6::after {
        left: 50%;
        transform: translateX(-50%);
        width: 40px;
    }
    
    /* Links */
    .rodape .box-links-rodape a {
        font-size: 0.85rem;
        padding: 4px 0;
    }
    
    .rodape .box-links-rodape a:hover {
        transform: none;
    }
    
    .imoveis-links,
    .institucional-links,
    .redes-sociais {
        align-items: center !important;
        text-align: center;
        margin-top: 10px;
    }
    
    .imoveis-links .col-6,
    .institucional-links .col-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }
    
    /* Redes Sociais */
    .redes-sociais .redes-grid {
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100%;
        max-width: 280px;
        margin: 0 auto;
    }
    
    .redes-sociais .social-link {
        width: 100%;
        justify-content: center;
        padding: 8px 16px;
    }
    
    .redes-sociais .social-link:hover {
        transform: none;
    }
    
    .redes-sociais .social-link i {
        font-size: 16px;
        width: 20px;
    }
    
    /* Copyright */
    .rodape .box-copyright {
        padding: 15px 0 5px 0;
    }
    
    .rodape .box-copyright .copyright-text {
        font-size: 0.7rem;
    }
}

/* Mobile pequeno (até 374px) */
@media (max-width: 374.98px) {
    .rodape {
        padding: 20px 0 10px 0;
    }
    
    .logo-footer .logo-text {
        font-size: 1.5rem;
    }
    
    .rodape .box-links-rodape h6 {
        font-size: 0.8rem;
    }
    
    .rodape .box-links-rodape a {
        font-size: 0.8rem;
    }
    
    .redes-sociais .social-link {
        font-size: 0.8rem;
        padding: 6px 12px;
    }
    
    .redes-sociais .social-link i {
        font-size: 14px;
        width: 18px;
    }
}

/* Tablet landscape */
@media (min-width: 768px) and (max-width: 991.98px) and (orientation: landscape) {
    .rodape .box-links-rodape {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr 1fr;
        gap: 20px;
    }
}

/* Impressão */
@media print {
    .rodape {
        background: #f5f5f5 !important;
        color: #333 !important;
        padding: 10px 0 !important;
        margin-top: 20px !important;
    }
    
    .rodape .box-links-rodape a {
        color: #333 !important;
    }
    
    .rodape .box-links-rodape h6 {
        color: #333 !important;
    }
    
    .rodape .box-copyright .copyright-text {
        color: #666 !important;
    }
}


/* ==================== PUBLICIDADE (inc/publicidade.php) ==================== */

/* Selo "Publicidade": todo anúncio fica identificado (recomendação do CONAR) */
.selo-publicidade {
    position: absolute;
    top: 8px;
    right: 8px;
    padding: 2px 8px;
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.92);
    color: #666;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    pointer-events: none;
}

.publicidade a img {
    transition: transform 0.3s ease;
}

.publicidade a:hover img {
    transform: scale(1.02);
}

/* Faixa horizontal: meio da home e busca sem resultados */
.publicidade-faixa {
    position: relative;
    overflow: hidden;
    border-radius: 10px;
    background: #f5f5f5;
}

.publicidade-faixa img {
    display: block;
    width: 100%;
    height: auto;
}

.publicidade-home-middle {
    margin: 2.5rem 0 1rem;
}

.publicidade-sem-resultados {
    width: 100%;
    margin-top: 1rem;
}

/* Retângulo: página do imóvel e dashboard */
.publicidade-retangulo {
    position: relative;
    overflow: hidden;
    border-radius: 10px;
    background: #f5f5f5;
}

.publicidade-retangulo img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 6 / 5;
    object-fit: cover;
}

.publicidade-servicos {
    padding: 0.5rem 0 3rem;
}

.publicidade-titulo {
    margin-bottom: 1rem;
    color: #444;
    font-weight: 500;
}

/* Parceiros acima do rodapé */
.publicidade-parceiros {
    padding: 1.75rem 0;
    border-top: 1px solid #eee;
    background: #fff;
}

.publicidade-parceiros .container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 1rem 2.5rem;
}

.publicidade-parceiros-titulo {
    color: #999;
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.publicidade-parceiros-logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 1.25rem 2.5rem;
}

.publicidade-logo {
    width: auto;
    height: 48px;
    max-width: 150px;
    object-fit: contain;
    filter: grayscale(1);
    opacity: 0.6;
    transition: filter 0.25s ease, opacity 0.25s ease;
}

.publicidade-parceiros a:hover .publicidade-logo {
    filter: none;
    opacity: 1;
}

/* Card patrocinado nas listagens (mesmo tamanho dos cards de imóvel) */
.card-item-patrocinado {
    display: flex;
    flex-direction: column;
}

.card-patrocinado {
    flex: 1;
    background: #fcfaf9;
}

.card-patrocinado-link {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: inherit;
}

.card-patrocinado-corpo {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1rem 1rem 1.25rem;
}

.card-patrocinado-corpo h5 {
    margin: 0;
    color: #333;
    font-size: 1.05rem;
    font-weight: 500;
}

.card-patrocinado-corpo p {
    flex: 1;
    margin: 0;
    color: #666;
    font-size: 0.9rem;
}

.card-patrocinado-corpo .btn {
    align-self: flex-start;
}

.status-badge.selo-patrocinado {
    background: rgba(255, 255, 255, 0.92);
    color: #555;
}

/* ==================== "ANUNCIE AQUI" (espaços sem banner) ==================== */
.anuncie {
    position: relative;
    overflow: hidden;
    border-radius: 10px;
    font-family: 'Roboto', 'Roboto Fallback', sans-serif;
}

.anuncie-kicker {
    display: block;
    font-size: 0.68rem;
    font-weight: 500;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.anuncie-botao {
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1.25rem;
    border: 1px solid #722731;
    border-radius: 6px;
    background: #722731;
    color: #fff;
    font-size: 0.9rem;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.anuncie-botao:hover {
    border-color: #5a1f26;
    background: #5a1f26;
    color: #fff;
}

.anuncie-botao i {
    font-size: 0.8em;
    transition: transform 0.2s ease;
}

.anuncie-botao:hover i,
a:hover .anuncie-botao i {
    transform: translateX(3px);
}

.anuncie-icone {
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: #722731;
    color: #fff;
    font-size: 1.05rem;
}

/* Faixa: gradiente da marca com círculos decorativos */
.anuncie-faixa {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem 2rem;
    min-height: 150px;
    padding: 1.75rem 2.5rem;
    background: linear-gradient(120deg, #682c32 0%, #522327 100%);
    color: #fff;
}

.anuncie-faixa::before,
.anuncie-faixa::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.06);
    pointer-events: none;
}

.anuncie-faixa::before {
    top: -90px;
    right: -50px;
    width: 280px;
    height: 280px;
}

.anuncie-faixa::after {
    right: 170px;
    bottom: -140px;
    width: 240px;
    height: 240px;
    background: rgba(255, 255, 255, 0.04);
}

.anuncie-faixa > * {
    position: relative;
    z-index: 1;
}

.anuncie-faixa .anuncie-kicker {
    color: rgba(255, 255, 255, 0.7);
}

.anuncie-faixa h3 {
    margin: 0.35rem 0;
    color: #fff;
    font-size: 1.45rem;
    font-weight: 500;
}

.anuncie-faixa p {
    margin: 0;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.95rem;
}

.anuncie-faixa .anuncie-botao {
    border-color: #fff;
    background: #fff;
    color: #722731;
}

.anuncie-faixa .anuncie-botao:hover {
    background: transparent;
    color: #fff;
}

/* Versões claras: página do imóvel, dashboard e card */
.anuncie-claro {
    border: 1px dashed rgba(114, 39, 49, 0.35);
    background: #faf4f5;
    color: #666;
}

.anuncie-claro .anuncie-kicker {
    color: #722731;
}

.anuncie-claro h5 {
    color: #333;
    font-size: 1.05rem;
    font-weight: 500;
}

.anuncie-claro p {
    margin: 0;
    font-size: 0.9rem;
}

.anuncie-linha {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1.25rem 1.5rem;
}

.anuncie-linha-texto {
    flex: 1;
}

.anuncie-linha h5 {
    margin: 0.15rem 0 0.2rem;
}

.anuncie-retangulo {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.55rem;
    padding: 1.5rem;
}

.anuncie-retangulo h5 {
    margin: 0;
}

.anuncie-retangulo .anuncie-botao {
    margin-top: 0.35rem;
}

/* Card nas listagens: mesmo tamanho dos cards de imóvel */
.card-anuncie {
    border: 1px dashed rgba(114, 39, 49, 0.35);
    background: #faf4f5;
}

.anuncie-card-topo {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    height: 210px;
    background: linear-gradient(120deg, #682c32 0%, #522327 100%);
    color: rgba(255, 255, 255, 0.8);
}

.anuncie-card-topo .anuncie-icone {
    width: 60px;
    height: 60px;
    border: 1px solid rgba(255, 255, 255, 0.35);
    background: rgba(255, 255, 255, 0.1);
    font-size: 1.4rem;
}

.card-anuncie .anuncie-botao {
    align-self: flex-start;
}

/* Parceiros: uma linha discreta no lugar dos logos */
.anuncie-parceiros {
    color: #888;
    font-size: 0.9rem;
}

.anuncie-parceiros a {
    margin-left: 0.35rem;
    color: #722731;
    font-weight: 500;
    text-decoration: none;
}

.anuncie-parceiros a:hover {
    text-decoration: underline;
}

@media (max-width: 767.98px) {
    .anuncie-faixa {
        flex-direction: column;
        align-items: flex-start;
        padding: 1.5rem;
    }

    .anuncie-faixa h3 {
        font-size: 1.2rem;
    }

    .anuncie-linha {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (prefers-reduced-motion: reduce) {
    .anuncie-botao i {
        transition: none;
    }
}

/* Imóvel em destaque (pago) */
.bloco-cards .card.card-em-destaque {
    border-color: rgba(114, 39, 49, 0.5);
    box-shadow: 0 0 0 1px rgba(114, 39, 49, 0.35), 3px 3px 8px rgba(114, 39, 49, 0.12);
}

.selo-destaque {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 10;
    padding: 5px 11px;
    border-radius: 15px;
    background: #722731;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
}

.selo-destaque i {
    color: #f2c94c;
}

@media (prefers-reduced-motion: reduce) {
    .publicidade a img,
    .publicidade a:hover img {
        transition: none;
        transform: none;
    }
}


/* ==================== PÁGINAS INSTITUCIONAIS (page.php) ==================== */
.pagina-institucional {
    max-width: 820px;
    margin: 0 auto;
    padding: 2.5rem 0 4rem;
    color: #444;
    font-size: 1.05rem;
    line-height: 1.75;
}

.pagina-institucional .titulo-pagina {
    margin-bottom: 1.5rem;
    color: #333;
    font-size: 2rem;
    font-weight: 500;
}

.pagina-conteudo h2 {
    margin: 2.5rem 0 0.75rem;
    color: #722731;
    font-size: 1.35rem;
    font-weight: 500;
    scroll-margin-top: 120px; /* o link "missão" do rodapé para abaixo do header fixo */
}

.pagina-conteudo h3 {
    margin: 1.75rem 0 0.5rem;
    color: #333;
    font-size: 1.1rem;
    font-weight: 500;
}

.pagina-conteudo p,
.pagina-conteudo ul,
.pagina-conteudo ol {
    margin-bottom: 1rem;
}

.pagina-conteudo ul,
.pagina-conteudo ol {
    padding-left: 1.4rem;
}

.pagina-conteudo li {
    margin-bottom: 0.4rem;
    list-style: disc;
}

.pagina-conteudo ol li {
    list-style: decimal;
}

.pagina-conteudo a {
    color: #722731;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Dados a preencher: destacados até serem completados no painel */
.pagina-conteudo mark {
    padding: 0 4px;
    border-radius: 3px;
    background: #fff3b0;
    color: #5c4a00;
}

.pagina-conteudo .pagina-atualizacao {
    color: #888;
    font-size: 0.9rem;
}

/* Missão, Visão e Valores em cartões */
.pagina-conteudo .wp-block-columns {
    gap: 1rem;
    margin: 1rem 0 1.5rem;
}

.pagina-conteudo .wp-block-column {
    padding: 1.25rem;
    border: 1px solid #eee;
    border-radius: 10px;
    background: #fcfaf9;
}

.pagina-conteudo .wp-block-column h3 {
    margin-top: 0;
    color: #722731;
}

@media (max-width: 767.98px) {
    .pagina-institucional {
        padding-top: 1.5rem;
        font-size: 1rem;
    }

    .pagina-institucional .titulo-pagina {
        font-size: 1.6rem;
    }
}

.pagina-conteudo .wp-block-table {
    margin: 1rem 0 1.5rem;
    overflow-x: auto;
}

.pagina-conteudo table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.95rem;
}

.pagina-conteudo th,
.pagina-conteudo td {
    padding: 0.6rem 0.8rem;
    border: 1px solid #eee;
    text-align: left;
    vertical-align: top;
}

.pagina-conteudo th {
    background: #faf6f6;
    color: #722731;
    font-weight: 500;
}


/* ==================== TENHO INTERESSE (inc/interesse.php) ==================== */
.interesse-bloco {
    margin: 1.5rem 0 0.5rem;
}

.botao-interesse {
    --bs-btn-padding-y: 0.8rem;
    --bs-btn-padding-x: 2rem;
    --bs-btn-font-size: 1.05rem;
    font-weight: 500;
}

.interesse-indisponivel {
    margin-top: 1.25rem;
    color: #888;
    font-style: italic;
}

.interesse-modal .modal-title {
    color: #722731;
    font-weight: 500;
}

.interesse-imovel {
    margin-bottom: 1rem;
    padding: 0.75rem 1rem;
    border-radius: 8px;
    background: #faf6f6;
    color: #333;
    font-weight: 500;
}

.interesse-imovel span {
    display: block;
    color: #888;
    font-size: 0.85rem;
    font-weight: 400;
}

.interesse-modal .form-label {
    font-size: 0.9rem;
    font-weight: 500;
}

.interesse-modal .form-control:focus {
    border-color: #722731;
    box-shadow: 0 0 0 3px rgba(114, 39, 49, 0.12);
}

.interesse-aviso {
    color: #888;
    font-size: 0.8rem;
}

.interesse-aviso a {
    color: #722731;
}

.interesse-sucesso {
    padding: 1rem 0 0.5rem;
    text-align: center;
}

.interesse-sucesso > i {
    color: #1e7b45;
    font-size: 3rem;
}

.interesse-sucesso h5 {
    margin: 0.5rem 0;
    font-weight: 500;
}

.interesse-dica {
    color: #888;
    font-size: 0.85rem;
}


/* ==================== PÁGINA DA TAG (tag.php) ==================== */
.tag-negocio {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 0.5rem;
}

.tag-negocio a {
    padding: 6px 16px;
    border: 1px solid #e0e0e0;
    border-radius: 20px;
    color: #555;
    font-size: 0.9rem;
    transition: all 0.2s ease;
}

.tag-negocio a:hover {
    border-color: #722731;
    color: #722731;
}

.tag-negocio a.ativo {
    border-color: #722731;
    background: #722731;
    color: #fff;
}
