/*
 * ─────────────────────────────────────────────────────────────────
 * Versão:    OP-007.003
 * Data:      08/05/2026
 * Hora:      10:58 (BRT)
 * Autor:     Arte nas Redes — artenasredes.com.br
 * Projeto:   CMS AR — Site para Empresas
 * Alteração: CSS COMPLETO. Fecha auditoria final da camada visual pública, incluindo topo, carrossel, detalhe, rodapé, redes sociais e mobile.
 * Fase:      Fase Final 6 — Auditoria final, pacote comercial e checklist | Feito: 7/7
 * ─────────────────────────────────────────────────────────────────
 */

/* =========================================================
   CMS AR BASE 2.0 - BOOTSTRAP-FREE PUBLIC LAYER
   ---------------------------------------------------------
   Este bloco substitui a dependência visual do bootstrap.min.css
   nas páginas públicas, preservando as classes já usadas pelo
   HTML atual para evitar regressão estrutural.
   ========================================================= */

*, *::before, *::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    min-width: 320px;
    background: #ffffff;
    color: var(--cms-text-color, #525252);
    font-family: var(--font-body, Inter, Arial, sans-serif);
    line-height: 1.6;
    overflow-x: hidden;
}

a {
    color: var(--primary);
    text-decoration: none;
    transition: color .25s ease, background .25s ease, border-color .25s ease, transform .25s ease;
}

a:hover {
    color: var(--dark);
}

img,
svg,
video {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
}

button,
input,
textarea,
select {
    font: inherit;
}

button {
    cursor: pointer;
}

h1, h2, h3, h4, h5, h6 {
    margin-top: 0;
    margin-bottom: .5rem;
    color: var(--cms-title-color, var(--dark));
    font-family: var(--font-heading, Inter, Arial, sans-serif);
    font-weight: 800;
    line-height: 1.15;
}

h1 { font-size: clamp(2rem, 4vw, 3.5rem); }
h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); }
h3 { font-size: clamp(1.35rem, 2vw, 1.75rem); }
h4 { font-size: 1.3rem; }
h5 { font-size: 1.1rem; }
h6 { font-size: 1rem; }

p {
    margin-top: 0;
    margin-bottom: 1rem;
}

ul {
    margin-top: 0;
}

/* Containers */
.container,
.container-fluid,
.container-xxl {
    width: 100%;
    padding-right: var(--cms-gutter-x, 1rem);
    padding-left: var(--cms-gutter-x, 1rem);
    margin-right: auto;
    margin-left: auto;
}

.container-fluid {
    max-width: none;
}

.container-xxl {
    max-width: 1440px;
}

@media (min-width: 576px) { .container { max-width: 540px; } }
@media (min-width: 768px) { .container { max-width: 720px; } }
@media (min-width: 992px) { .container { max-width: 960px; } }
@media (min-width: 1200px) { .container { max-width: 1140px; } }
@media (min-width: 1400px) { .container { max-width: 1320px; } }

/* Grid Bootstrap-lite */
.row {
    --cms-gutter-x: 1.5rem;
    --cms-gutter-y: 0;
    display: flex;
    flex-wrap: wrap;
    margin-top: calc(-1 * var(--cms-gutter-y));
    margin-right: calc(-.5 * var(--cms-gutter-x));
    margin-left: calc(-.5 * var(--cms-gutter-x));
}

.row > * {
    width: 100%;
    max-width: 100%;
    padding-right: calc(var(--cms-gutter-x) * .5);
    padding-left: calc(var(--cms-gutter-x) * .5);
    margin-top: var(--cms-gutter-y);
}

.g-0 { --cms-gutter-x: 0; --cms-gutter-y: 0; }
.g-4 { --cms-gutter-x: 1.5rem; --cms-gutter-y: 1.5rem; }
.g-5 { --cms-gutter-x: 3rem; --cms-gutter-y: 3rem; }

.col-12 { flex: 0 0 auto; width: 100%; }

@media (min-width: 768px) {
    .col-md-6 { flex: 0 0 auto; width: 50%; }
    .flex-md-row { flex-direction: row !important; }
}

@media (min-width: 992px) {
    .col-lg-4 { flex: 0 0 auto; width: 33.333333%; }
    .col-lg-6 { flex: 0 0 auto; width: 50%; }
    .col-lg-8 { flex: 0 0 auto; width: 66.666667%; }
}

/* Flex/utilitários essenciais */
.d-block { display: block !important; }
.d-flex { display: flex !important; }
.d-grid { display: grid !important; }
.align-items-center { align-items: center !important; }
.justify-content-center { justify-content: center !important; }
.flex-column { flex-direction: column !important; }
.flex-column-reverse { flex-direction: column-reverse !important; }
.flex-grow-1 { flex-grow: 1 !important; }
.h-100 { height: 100% !important; }
.w-100 { width: 100% !important; }
.vh-100 { height: 100vh !important; }

.position-relative { position: relative !important; }
.position-fixed { position: fixed !important; }
.overflow-hidden { overflow: hidden !important; }
.top-50 { top: 50% !important; }
.start-50 { left: 50% !important; }
.translate-middle { transform: translate(-50%, -50%) !important; }

/* Spacing Bootstrap-lite */
.p-0 { padding: 0 !important; }
.p-2 { padding: .5rem !important; }
.p-3 { padding: 1rem !important; }
.p-4 { padding: 1.5rem !important; }
.p-5 { padding: 3rem !important; }
.pe-0 { padding-right: 0 !important; }
.px-4 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; }
.px-5 { padding-right: 3rem !important; padding-left: 3rem !important; }
.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
.py-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.py-5 { padding-top: 3rem !important; padding-bottom: 3rem !important; }
.pt-2 { padding-top: .5rem !important; }
.pt-5 { padding-top: 3rem !important; }
.pb-2 { padding-bottom: .5rem !important; }

.m-0 { margin: 0 !important; }
.me-2 { margin-right: .5rem !important; }
.me-3 { margin-right: 1rem !important; }
.mb-2 { margin-bottom: .5rem !important; }
.mb-3 { margin-bottom: 1rem !important; }
.mb-4 { margin-bottom: 1.5rem !important; }
.mb-5 { margin-bottom: 3rem !important; }
.mt-3 { margin-top: 1rem !important; }
.mt-5 { margin-top: 3rem !important; }
.my-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; }
.mx-auto { margin-right: auto !important; margin-left: auto !important; }
.ms-auto { margin-left: auto !important; }

@media (min-width: 992px) {
    .mt-lg-5 { margin-top: 3rem !important; }
}

/* Cores, texto e bordas */
.bg-white { background: #ffffff !important; }
.bg-light { background: var(--light) !important; }
.bg-dark { background: var(--dark) !important; }
.bg-transparent { background: transparent !important; }
.text-white { color: #ffffff !important; }
.text-white-50 { color: rgba(255,255,255,.68) !important; }
.text-primary { color: var(--primary) !important; }
.text-dark { color: var(--dark) !important; }
.text-center { text-align: center !important; }
.rounded { border-radius: var(--cms-radius, 18px) !important; }
.border-bottom { border-bottom: 1px solid currentColor; }
.list-unstyled { padding-left: 0; list-style: none; }
.img-fluid { max-width: 100%; height: auto; }
.shadow-sm { box-shadow: 0 12px 32px rgba(15, 23, 42, .08) !important; }
.display-5 { font-size: clamp(2.05rem, 4vw, 3.4rem); font-weight: 900; line-height: 1.08; }

/* Botões */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    border: 1px solid transparent;
    border-radius: 999px;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    user-select: none;
    vertical-align: middle;
    transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
}

.btn:hover {
    transform: translateY(-2px);
    text-decoration: none;
}

.btn-primary {
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    border-color: var(--primary);
    color: #ffffff !important;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .14);
}

.btn-primary:hover {
    background: linear-gradient(135deg, var(--dark), var(--secondary));
    color: #ffffff !important;
}

.btn-success {
    background: #25D366 !important;
    border-color: #25D366 !important;
    color: #ffffff !important;
}

.btn-outline-light {
    color: #ffffff !important;
    border-color: rgba(255,255,255,.55) !important;
    background: transparent !important;
}

.btn-outline-light:hover {
    background: #ffffff !important;
    color: var(--dark) !important;
}

.btn-link {
    border: 0;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
}

/* Navbar própria */
.nav-bar {
    width: 100%;
}

.navbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 82px;
    border-radius: 0 0 24px 24px;
}

.navbar-brand {
    display: inline-flex;
    align-items: center;
    min-width: 0;
}

.navbar-brand img {
    display: block;
}

.navbar-toggler {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(0,0,0,.1);
    border-radius: 14px;
    background: #ffffff;
    color: var(--dark);
}

.navbar-toggler-icon,
.navbar-toggler-icon::before,
.navbar-toggler-icon::after {
    display: block;
    width: 22px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    content: "";
    transition: transform .25s ease, opacity .25s ease;
}

.navbar-toggler-icon {
    position: relative;
}

.navbar-toggler-icon::before {
    position: absolute;
    top: -7px;
    left: 0;
}

.navbar-toggler-icon::after {
    position: absolute;
    top: 7px;
    left: 0;
}

.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon {
    background: transparent;
}

.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::before {
    transform: translateY(7px) rotate(45deg);
}

.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::after {
    transform: translateY(-7px) rotate(-45deg);
}

.collapse:not(.show) {
    display: none;
}

.navbar-collapse {
    flex-basis: 100%;
    flex-grow: 1;
    align-items: center;
}

.navbar-nav {
    display: flex;
    flex-direction: column;
    padding-left: 0;
    margin: 0;
    list-style: none;
}

.nav-item,
.nav-link {
    display: block;
}

@media (min-width: 992px) {
    .navbar-expand-lg {
        flex-wrap: nowrap;
        justify-content: flex-start;
    }

    .navbar-expand-lg .navbar-toggler {
        display: none;
    }

    .navbar-expand-lg .navbar-collapse {
        display: flex !important;
        flex-basis: auto;
    }

    .navbar-expand-lg .navbar-nav {
        flex-direction: row;
        align-items: center;
    }
}

@media (max-width: 991.98px) {
    .navbar {
        flex-wrap: wrap;
        min-height: 76px;
        border-radius: 0;
    }

    .navbar-collapse {
        width: 100%;
        padding: .5rem 0 1rem;
    }

    .navbar-nav {
        gap: .25rem;
    }

    .navbar-light .navbar-nav .nav-link {
        border-radius: 14px;
        padding: .8rem 1rem !important;
        background: rgba(0,0,0,.025);
    }
}

/* Spinner */
.spinner-border {
    display: inline-block;
    width: 2rem;
    height: 2rem;
    vertical-align: text-bottom;
    border: .25em solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: cmsSpinner .75s linear infinite;
}

@keyframes cmsSpinner {
    to { transform: rotate(360deg); }
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

/* Ajustes mobile gerais */
@media (max-width: 767.98px) {
    .p-5 { padding: 1.5rem !important; }
    .px-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; }
    .py-5 { padding-top: 2.25rem !important; padding-bottom: 2.25rem !important; }
    .g-5 { --cms-gutter-x: 1.25rem; --cms-gutter-y: 1.75rem; }
    .section-title { font-size: clamp(1.85rem, 8vw, 2.5rem) !important; }
    .whatsapp-float { right: 18px !important; bottom: 18px !important; width: 56px !important; height: 56px !important; }
}

/* =========================================================
   FIM DO CMS AR BASE 2.0
   ========================================================= */

/********** Template CSS **********/
:root {
	--primary: #c3b133; /* Azul Profissional */
    --secondary: #A69B74; /* Cinza Neutro */
    --light: #F4F7F6; /* Cinza super claro para fundos */
    --dark: #665A25; /* Chumbo/Cinza Escuro */
}

.back-to-top {
    position: fixed;
    display: none;
    right: 45px;
    bottom: 45px;
    z-index: 99;
}


/*** Spinner ***/
#spinner {
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s ease-out, visibility 0s linear .5s;
    z-index: 99999;
}

#spinner.show {
    transition: opacity .5s ease-out, visibility 0s linear 0s;
    visibility: visible;
    opacity: 1;
}


/*** Button ***/
.btn {
    transition: .5s;
}

.btn.btn-primary,
.btn.btn-secondary {
    color: #FFFFFF;
}

.btn-square {
    width: 38px;
    height: 38px;
}

.btn-sm-square {
    width: 32px;
    height: 32px;
}

.btn-lg-square {
    width: 48px;
    height: 48px;
}

.btn-square,
.btn-sm-square,
.btn-lg-square {
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: normal;
    border-radius: 50px;
}


/*** Navbar ***/
.nav-bar {
    position: relative;
    margin-top: 45px;
    padding: 0 3rem;
    transition: .5s;
    z-index: 9999;
}

.nav-bar.sticky-top {
    position: sticky;
    padding: 0;
    z-index: 9999;
}

.navbar {
    box-shadow: 0 0 30px rgba(0, 0, 0, .08);
}

.navbar .dropdown-toggle::after {
    border: none;
    content: "\f107";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    vertical-align: middle;
    margin-left: 5px;
    transition: .5s;
}

.navbar .dropdown-toggle[aria-expanded=true]::after {
    transform: rotate(-180deg);
}

.navbar-light .navbar-nav .nav-link {
    margin-right: 30px;
    padding: 25px 0;
    color: #FFFFFF;
    font-size: 15px;
    text-transform: uppercase;
    outline: none;
}

.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link.active {
    color: var(--primary);
}

@media (max-width: 991.98px) {
    .nav-bar {
        margin: 0;
        padding: 0;
    }

    .navbar-light .navbar-nav .nav-link  {
        margin-right: 0;
        padding: 10px 0;
    }

    .navbar-light .navbar-nav {
        border-top: 1px solid #EEEEEE;
    }
}

.navbar-light .navbar-brand {
    height: 75px;
}

.navbar-light .navbar-nav .nav-link {
	color: var(--dark);
    font-weight: 700;
    font-family: lato;
    font-size: 18px;
}

@media (min-width: 992px) {
    .navbar .nav-item .dropdown-menu {
        display: block;
        top: 100%;
        margin-top: 0;
        transform: rotateX(-75deg);
        transform-origin: 0% 0%;
        opacity: 0;
        visibility: hidden;
        transition: .5s;
        
    }

    .navbar .nav-item:hover .dropdown-menu {
        transform: rotateX(0deg);
        visibility: visible;
        transition: .5s;
        opacity: 1;
    }
}


/*** Header ***/
@media (min-width: 992px) {
    .header {
        margin-top: -120px;
    }
}

.header-carousel .owl-nav {
    position: absolute;
    top: 50%;
    left: -25px;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
}

.header-carousel .owl-nav .owl-prev,
.header-carousel .owl-nav .owl-next {
    margin: 7px 0;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    background: var(--primary);
    border-radius: 40px;
    font-size: 20px;
    transition: .5s;
}

.header-carousel .owl-nav .owl-prev:hover,
.header-carousel .owl-nav .owl-next:hover {
    background: var(--dark);
}

@media (max-width: 768px) {
    .header-carousel .owl-nav {
        left: 25px;
    }
}

.breadcrumb-item + .breadcrumb-item::before {
    color: #DDDDDD;
}


/*** Icon ***/
.icon {
    padding: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #FFFFFF !important;
    border-radius: 50px;
    border: 1px dashed var(--primary) !important;
}


/*** About ***/
.about-img img {
    position: relative;
    z-index: 2;
}

.about-img::before {
    position: absolute;
    content: "";
    top: 0;
    left: -50%;
    width: 100%;
    height: 100%;
    background: var(--primary);
    transform: skew(20deg);
    z-index: 1;
}


/*** Category ***/
.cat-item div {
    background: #FFFFFF;
    border: 1px dashed rgba(0, 185, 142, .3);
    transition: .5s;
}

.cat-item:hover div {
    background: var(--primary);
    border-color: transparent;
}

.cat-item div * {
    transition: .5s;
}

.cat-item:hover div * {
    color: #FFFFFF !important;
}


/*** Property List ***/
.nav-pills .nav-item .btn {
    color: var(--dark);
}

.nav-pills .nav-item .btn:hover,
.nav-pills .nav-item .btn.active {
    color: #FFFFFF;
}

.property-item {
    box-shadow: 0 0 30px rgba(0, 0, 0, .08);
}

.property-item img {
    transition: .5s;
}

.property-item:hover img {
    transform: scale(1.1);
}

.property-item .border-top {
    border-top: 1px dashed rgba(0, 185, 142, .3) !important;
}

.property-item .border-end {
    border-right: 1px dashed rgba(0, 185, 142, .3) !important;
}


/*** Team ***/
.team-item {
    box-shadow: 0 0 30px rgba(0, 0, 0, .08);
    transition: .5s;
}

.team-item .btn {
    color: var(--primary);
    background: #FFFFFF;
    box-shadow: 0 0 30px rgba(0, 0, 0, .15);
}

.team-item .btn:hover {
    color: #FFFFFF;
    background: var(--primary);
}

.team-item:hover {
    border-color: var(--secondary) !important;
}

.team-item:hover .bg-primary {
    background: var(--secondary) !important;
}

.team-item:hover .bg-primary i {
    color: var(--secondary) !important;
}


/*** Testimonial ***/
.testimonial-carousel {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

@media (min-width: 576px) {
    .testimonial-carousel {
        padding-left: 4rem;
        padding-right: 4rem;
    }
}

.testimonial-carousel .testimonial-item .border {
    border: 1px dashed rgba(0, 185, 142, .3) !important;
}

.testimonial-carousel .owl-nav {
    position: absolute;
    width: 100%;
    height: 40px;
    top: calc(50% - 20px);
    left: 0;
    display: flex;
    justify-content: space-between;
    z-index: 1;
}

.testimonial-carousel .owl-nav .owl-prev,
.testimonial-carousel .owl-nav .owl-next {
    position: relative;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    background: var(--primary);
    border-radius: 40px;
    font-size: 20px;
    transition: .5s;
}

.testimonial-carousel .owl-nav .owl-prev:hover,
.testimonial-carousel .owl-nav .owl-next:hover {
    background: var(--dark);
}


/*** Footer ***/
.footer .btn.btn-social {
    margin-right: 5px;
    width: 35px;
    height: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--light);
    border: 1px solid rgba(255,255,255,0.5);
    border-radius: 35px;
    transition: .3s;
}

.footer .btn.btn-social:hover {
    color: var(--primary);
    border-color: var(--light);
}

.footer .btn.btn-link {
    display: block;
    margin-bottom: 5px;
    padding: 0;
    text-align: left;
    font-size: 15px;
    font-weight: normal;
    text-transform: capitalize;
    transition: .3s;
}

.footer .btn.btn-link::before {
    position: relative;
    content: "\f105";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-right: 10px;
}

.footer .btn.btn-link:hover {
    letter-spacing: 1px;
    box-shadow: none;
}

.footer .form-control {
    border-color: rgba(255,255,255,0.5);
}

.footer .copyright {
    padding: 25px 0;
    font-size: 15px;
    border-top: 1px solid rgba(256, 256, 256, .1);
}

.footer .copyright a {
    color: var(--light);
}

.footer .footer-menu a {
    margin-right: 15px;
    padding-right: 15px;
    border-right: 1px solid rgba(255, 255, 256, .1);
}

.footer .footer-menu a:last-child {
    margin-right: 0;
    padding-right: 0;
    border-right: none;
}

/* *** NOVOS ESTILOS ADICIONADOS *** */

/* Container do carrossel para controlar a altura geral */
.property-detail-carousel {
    max-height: 500px; /* Limita a altura do container do carrossel */
    overflow: hidden; /* Esconde qualquer transbordamento */
    position: relative; /* Necessário para posicionamento das setas */
    display: flex; /* Para centralizar os itens verticalmente */
    align-items: center; /* Centraliza verticalmente */
}

/* Estilo para os itens individuais do carrossel */
.property-detail-carousel .owl-carousel-item {
    height: 100%; /* O item ocupa a altura total do carrossel */
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #f0f0f0; /* Um fundo sutil caso a imagem seja menor */
}

/* Estilo para as imagens dentro dos itens do carrossel */
.property-detail-carousel .owl-carousel-item img {
    max-height: 100%; /* A imagem não pode ultrapassar a altura do item (e, portanto, do carrossel) */
    width: auto; /* Permite que a largura se ajuste automaticamente */
    max-width: 100%; /* Garante que a imagem não transborde horizontalmente */
    object-fit: contain; /* Garante que a imagem inteira seja visível, mantendo a proporção */
}


/*** Property Detail Carousel Arrows and Dots ***/
.property-detail-carousel .owl-nav {
    position: absolute;
    top: 50%;
    width: 100%;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    z-index: 1;
}

.property-detail-carousel .owl-nav .owl-prev,
.property-detail-carousel .owl-nav .owl-next {
    margin: 0 15px;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    background: rgba(0, 185, 142, 0.8); /* Fundo primário com transparência */
    border-radius: 40px;
    font-size: 20px;
    transition: .5s;
}

.property-detail-carousel .owl-nav .owl-prev:hover,
.property-detail-carousel .owl-nav .owl-next:hover {
    background: var(--dark);
}

/* Ajuste para setas em telas menores */
@media (max-width: 768px) {
    .property-detail-carousel .owl-nav .owl-prev,
    .property-detail-carousel .owl-nav .owl-next {
        margin: 0 5px;
        width: 40px;
        height: 40px;
        font-size: 16px;
    }
}

/* Estilo dos "dots" (pontinhos) */
.property-detail-carousel .owl-dots {
    text-align: center;
    margin-top: 15px;
}

.property-detail-carousel .owl-dot {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #DDDDDD;
    margin: 0 5px;
    transition: .3s;
}

.property-detail-carousel .owl-dot.active {
    background: var(--primary);
}


/* =========================================
   OVERRIDES - FLAG DE LAYOUT: CAIXA CENTRALIZADA (BOXED)
   ========================================= */

body.layout-boxed {
    max-width: 1200px; /* Largura máxima que o site vai atingir */
    margin: 0 auto;    /* Centraliza o site na tela */
    background-color: #ffffff; /* Fundo do site */
    box-shadow: 0 0 30px rgba(0,0,0,0.1); /* Sombra para destacar a borda */
    position: relative;
    overflow-x: hidden;
}

/* Cor do fundo fora da caixa quando o modo Boxed estiver ativo */
html:has(body.layout-boxed) {
    background-color: #e9ecef; 
}

/* Libertando a altura da logo na navbar */
.navbar-light .navbar-brand {
    height: auto !important;
    min-height: 75px; /* Mantém um mínimo para não quebrar o layout, mas permite crescer */
}


/* Botão WhatsApp Personalizado */
.btn-wa {
    background-color: #25D366 !important;
    border-color: #25D366 !important;
    color: #ffffff !important;
}
.btn-wa:hover {
    background-color: #128C7E !important;
    border-color: #128C7E !important;
    color: #ffffff !important;
}
/* =========================================================
   CMS AR - Etapa 1: ajustes de tema dinâmico e responsividade
   ========================================================= */
html { scroll-behavior: smooth; }
body { background: #ffffff; overflow-x: hidden; }
.btn-primary { background-color: var(--primary) !important; border-color: var(--primary) !important; }
.btn-primary:hover { background-color: var(--dark) !important; border-color: var(--dark) !important; }
.text-primary { color: var(--primary) !important; }
.bg-primary { background-color: var(--primary) !important; }
.property-item { transition: transform .25s ease, box-shadow .25s ease; }
.property-item:hover { transform: translateY(-4px); box-shadow: 0 18px 45px rgba(0,0,0,.12); }
.property-thumbnail { display: block; background: #f3f4f6; }
.footer { overflow: hidden; }
.whatsapp-float { box-shadow: 0 16px 40px rgba(37, 211, 102, .35); }
@media (max-width: 767px) {
    .nav-bar { margin: 0 !important; padding: 0 !important; }
    .navbar { padding-left: .75rem !important; padding-right: .75rem !important; }
    .navbar-light .navbar-nav .nav-link { font-size: 15px; padding: 11px 0; }
    .display-5 { font-size: 2rem; }
    .section-title { font-size: clamp(1.9rem, 9vw, 2.6rem) !important; }
    .whatsapp-float { bottom: 18px !important; right: 18px !important; width: 56px !important; height: 56px !important; }
}


/* =========================================
   CMS AR - Correção da Galeria de Detalhe
   Evita altura elástica e duplicação visual quando o Owl é reinicializado.
   ========================================= */
.property-detail-carousel {
    height: 560px !important;
    max-height: 560px !important;
    overflow: hidden !important;
}
.property-detail-carousel .owl-stage-outer,
.property-detail-carousel .owl-stage,
.property-detail-carousel .owl-item {
    height: 100% !important;
}
.property-detail-carousel .owl-carousel-item {
    height: 560px !important;
    min-height: 0 !important;
}
.property-detail-carousel .owl-carousel-item img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
}
@media (max-width: 767px) {
    .property-detail-carousel {
        height: 360px !important;
        max-height: 360px !important;
    }
    .property-detail-carousel .owl-carousel-item {
        height: 360px !important;
    }
}

/* =========================================
   CMS AR ETAPA 2.1 - CORREÇÃO DE CARROSSEL ÚNICO E DETALHE VERTICAL
   ========================================= */
.cms-hero-carousel picture,
.cms-hero-carousel picture img {
    display: block;
    width: 100%;
}

.header-carousel .owl-carousel-item picture {
    display: block;
    width: 100%;
    height: 100%;
}

.detail-hero-grid {
    width: 100%;
}

.detail-info-card h1 {
    color: var(--cms-title-color, var(--dark));
    line-height: 1.05;
}

.detail-gallery-card {
    min-width: 0;
}

.detail-gallery-card .property-detail-carousel .owl-nav {
    pointer-events: none;
}

.detail-gallery-card .property-detail-carousel .owl-prev,
.detail-gallery-card .property-detail-carousel .owl-next {
    pointer-events: auto;
}

@media (min-width: 992px) {
    .detail-info-card {
        padding-top: 8px;
    }
}

/* =========================================
   CMS AR - ETAPA 3.6: REPEATERS PÚBLICOS
   Diferenciais, depoimentos e FAQ sem depender de Bootstrap extra.
   ========================================= */
.cms-feature-card,
.cms-testimonial-card {
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: var(--cms-radius, 18px);
    padding: 28px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .08);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.cms-feature-card:hover,
.cms-testimonial-card:hover {
    transform: translateY(-4px);
    border-color: color-mix(in srgb, var(--primary) 35%, transparent);
    box-shadow: 0 24px 60px rgba(15, 23, 42, .12);
}
.cms-feature-icon {
    width: 58px;
    height: 58px;
    border-radius: 18px;
    display: grid;
    place-items: center;
    background: color-mix(in srgb, var(--primary) 14%, #fff);
    color: var(--primary);
    font-size: 24px;
    margin-bottom: 18px;
}
.cms-feature-card h3 {
    margin: 0 0 10px;
    color: var(--cms-title-color, var(--dark));
    font-size: 22px;
}
.cms-feature-card p,
.cms-testimonial-card p {
    margin: 0;
    line-height: 1.65;
}
.cms-testimonial-card {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.cms-testimonial-card > p {
    font-size: 17px;
    color: var(--cms-text-color, #525252);
}
.cms-testimonial-author {
    margin-top: auto;
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 18px;
    border-top: 1px solid rgba(15, 23, 42, .08);
}
.cms-testimonial-author img {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    object-fit: cover;
    background: var(--light);
}
.cms-testimonial-author strong {
    display: block;
    color: var(--dark);
}
.cms-testimonial-author span {
    display: block;
    color: var(--cms-text-color, #525252);
    font-size: 14px;
}
.cms-faq-list {
    max-width: 920px;
    margin: 0 auto;
    display: grid;
    gap: 12px;
}
.cms-faq-item {
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: var(--cms-radius, 18px);
    box-shadow: 0 14px 35px rgba(15, 23, 42, .06);
    overflow: hidden;
}
.cms-faq-item summary {
    cursor: pointer;
    list-style: none;
    padding: 20px 22px;
    font-weight: 800;
    color: var(--dark);
    display: flex;
    justify-content: space-between;
    gap: 18px;
}
.cms-faq-item summary::-webkit-details-marker { display: none; }
.cms-faq-item summary::after {
    content: '+';
    color: var(--primary);
    font-size: 24px;
    line-height: 1;
}
.cms-faq-item[open] summary::after { content: '−'; }
.cms-faq-item p {
    margin: 0;
    padding: 0 22px 22px;
    line-height: 1.65;
}
@media (max-width: 767px) {
    .cms-feature-card,
    .cms-testimonial-card { padding: 22px; }
    .cms-feature-card h3 { font-size: 20px; }
    .cms-faq-item summary { padding: 18px; }
    .cms-faq-item p { padding: 0 18px 18px; }
}

/* =========================================================
   CMS AR HOTFIX - SITE PÚBLICO
   Correção de regressão visual: garante camada bootstrap-free
   e estilos para galeria institucional.
   ========================================================= */
.cms-gallery-card {
    display: block;
    position: relative;
    overflow: hidden;
    border-radius: var(--cms-radius, 18px);
    background: #fff;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .10);
    text-decoration: none;
    min-height: 260px;
}
.cms-gallery-card img {
    width: 100%;
    height: 280px;
    object-fit: cover;
    display: block;
    transition: transform .35s ease, filter .35s ease;
}
.cms-gallery-card:hover img {
    transform: scale(1.04);
    filter: brightness(.88);
}
.cms-gallery-card span {
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 14px;
    background: rgba(15, 23, 42, .82);
    color: #fff;
    font-weight: 800;
    border-radius: 14px;
    padding: 10px 12px;
    line-height: 1.25;
    backdrop-filter: blur(8px);
}
.cms-gallery-card span:empty { display: none; }

/* Blindagem contra o CSS antigo do template quando o Bootstrap não está presente */
.container-fluid.header { overflow: hidden; }
.header { margin-top: 0 !important; }
.nav-bar { margin-top: 0 !important; padding: 0 !important; }
.navbar { min-height: 86px; }
.about-img::before { pointer-events: none; }

@media (max-width: 767px) {
    .cms-gallery-card img { height: 220px; }
    .cms-gallery-card { min-height: 220px; }
}

/* =========================================================
   CMS AR HOTFIX 2026-05-08 - NAV MOBILE + DETALHE/LIGHTBOX
   ========================================================= */
.navbar-toggler {
    display: none;
    width: 48px;
    height: 48px;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 14px;
    background: #fff;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 12px 28px rgba(15,23,42,.10);
}
.navbar-toggler-icon,
.navbar-toggler-icon::before,
.navbar-toggler-icon::after {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--dark, #0f172a);
    border-radius: 999px;
    position: relative;
    transition: transform .22s ease, opacity .22s ease;
}
.navbar-toggler-icon::before,
.navbar-toggler-icon::after {
    content: '';
    position: absolute;
    left: 0;
}
.navbar-toggler-icon::before { top: -7px; }
.navbar-toggler-icon::after { top: 7px; }
.navbar-toggler.is-open .navbar-toggler-icon { background: transparent; }
.navbar-toggler.is-open .navbar-toggler-icon::before { transform: translateY(7px) rotate(45deg); }
.navbar-toggler.is-open .navbar-toggler-icon::after { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 991.98px) {
    .navbar { position: relative; }
    .navbar-toggler { display: inline-flex; margin-left: auto; }
    .navbar-collapse {
        display: none;
        position: absolute;
        top: calc(100% + 10px);
        left: 12px;
        right: 12px;
        z-index: 10000;
        background: #fff;
        border: 1px solid rgba(15,23,42,.10);
        border-radius: 22px;
        box-shadow: 0 24px 55px rgba(15,23,42,.18);
        padding: 14px;
    }
    .navbar-collapse.show { display: block; }
    .navbar-nav {
        display: flex;
        flex-direction: column;
        gap: 4px;
        border-top: 0 !important;
    }
    .navbar-light .navbar-nav .nav-link {
        display: flex;
        align-items: center;
        min-height: 46px;
        margin: 0 !important;
        padding: 12px 14px !important;
        border-radius: 14px;
        color: var(--dark, #0f172a) !important;
        background: rgba(15,23,42,.035);
    }
    .navbar-light .navbar-nav .nav-link:hover,
    .navbar-light .navbar-nav .nav-link.active {
        background: color-mix(in srgb, var(--primary, #2563eb) 14%, #fff);
        color: var(--dark, #0f172a) !important;
    }
    .navbar-brand img { max-height: 72px; object-fit: contain; }
}

.detail-gallery-card { min-width: 0; }
.detail-gallery-main {
    background:#fff;
    border-radius: var(--cms-radius, 18px);
    box-shadow: 0 18px 45px rgba(15,23,42,.10);
    padding: 18px;
}
.detail-main-photo {
    width:100%;
    height: min(62vh, 620px);
    min-height: 380px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#f8fafc;
    border:0;
    border-radius: calc(var(--cms-radius, 18px) - 4px);
    overflow:hidden;
    cursor: zoom-in;
    padding:0;
}
.detail-main-photo img {
    width:100%;
    height:100%;
    object-fit: contain;
    display:block;
    user-select:none;
}
.detail-photo-thumbs {
    display:flex;
    gap:10px;
    overflow-x:auto;
    padding:12px 2px 2px;
    scrollbar-width: thin;
}
.detail-photo-thumb {
    width:82px;
    height:62px;
    border:2px solid transparent;
    border-radius:12px;
    overflow:hidden;
    background:#fff;
    padding:0;
    flex:0 0 auto;
    cursor:pointer;
    box-shadow:0 8px 20px rgba(15,23,42,.10);
}
.detail-photo-thumb.active { border-color: var(--primary, #2563eb); }
.detail-photo-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.detail-lightbox { touch-action: pan-y; }
.detail-lightbox img { -webkit-user-drag: none; }

@media (max-width: 767px) {
    .detail-main-photo { height: 430px; min-height: 320px; }
    .detail-gallery-main { padding: 12px; }
    .whatsapp-float { right: 18px !important; bottom: 18px !important; }
}

/* RC5 - Lightbox público da galeria institucional */
.cms-public-lightbox{position:fixed;inset:0;background:rgba(2,6,23,.94);z-index:99999;display:none;align-items:center;justify-content:center;padding:18px}.cms-public-lightbox.open{display:flex}.cms-public-lightbox img{max-width:94vw;max-height:82vh;object-fit:contain;user-select:none;border-radius:12px;box-shadow:0 20px 70px rgba(0,0,0,.45)}.cms-lb-close,.cms-lb-prev,.cms-lb-next{position:absolute;border:0;background:rgba(255,255,255,.14);color:#fff;border-radius:999px;width:50px;height:50px;display:grid;place-items:center;cursor:pointer;transition:.2s ease}.cms-lb-close:hover,.cms-lb-prev:hover,.cms-lb-next:hover{background:var(--primary)}.cms-lb-close{top:18px;right:18px}.cms-lb-prev{left:18px;top:50%;transform:translateY(-50%)}.cms-lb-next{right:18px;top:50%;transform:translateY(-50%)}.cms-lb-caption{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);color:#fff;background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:9px 14px;font-weight:800;max-width:90vw;text-align:center}.detail-related-card img{background:#f8fafc}@media(max-width:768px){.cms-lb-close{top:12px;right:12px;width:48px;height:48px;background:#fff;color:#111827}.cms-lb-prev,.cms-lb-next{width:44px;height:44px}.cms-lb-prev{left:10px}.cms-lb-next{right:10px}.cms-lb-caption{bottom:14px}}


/* =========================================================
   CMS AR RC9 - CAMADA FINAL SITE PÚBLICO ESTÁVEL
   Objetivo: estabilizar o visual público sem Bootstrap, preservar topo,
   corrigir sombras, carrossel, detalhe, lightbox e mobile.
   ========================================================= */
:root{
    --cms-public-shadow: 0 18px 45px rgba(15,23,42,.10);
    --cms-public-border: 1px solid rgba(15,23,42,.08);
}
body{background:#fff!important;overflow-x:hidden!important;}
.container-xxl.bg-white.p-0{max-width:100%!important;width:100%!important;overflow:hidden!important;}
.nav-bar,
.nav-bar.sticky-top{
    position:sticky!important;
    top:0!important;
    z-index:9999!important;
    margin:0!important;
    padding:0 clamp(10px,3vw,48px)!important;
    background:transparent!important;
    transition:box-shadow .25s ease, background .25s ease!important;
}
.nav-bar.sticky-top{background:rgba(255,255,255,.88)!important;backdrop-filter:blur(14px);box-shadow:0 12px 38px rgba(15,23,42,.08)!important;}
.navbar{
    width:100%!important;
    min-height:86px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:18px!important;
    padding:10px clamp(14px,2vw,28px)!important;
    margin:0!important;
    background:#fff!important;
    border-radius:0 0 26px 26px!important;
    box-shadow:0 8px 30px rgba(15,23,42,.08)!important;
    position:relative!important;
}
.navbar-brand{height:auto!important;min-height:0!important;display:flex!important;align-items:center!important;text-decoration:none!important;flex:0 1 auto!important;}
.navbar-brand .p-2{padding:0!important;margin-right:10px!important;}
.navbar-brand img{display:block!important;width:auto!important;object-fit:contain!important;}
.navbar-collapse{display:flex!important;align-items:center!important;justify-content:flex-end!important;flex:1 1 auto!important;}
.navbar-nav{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-end!important;gap:4px!important;margin:0!important;padding:0!important;border:0!important;}
.navbar-light .navbar-nav .nav-link{
    display:flex!important;align-items:center!important;justify-content:center!important;
    margin:0!important;padding:12px 14px!important;border-radius:999px!important;
    color:var(--dark,#0f172a)!important;background:transparent!important;
    font-size:15px!important;font-weight:800!important;line-height:1!important;text-transform:none!important;text-decoration:none!important;
    transition:background .2s ease,color .2s ease,transform .2s ease!important;
}
.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link.active{background:color-mix(in srgb,var(--primary) 13%,#fff)!important;color:var(--dark,#0f172a)!important;transform:translateY(-1px);}
.container-fluid.header{padding:0!important;margin:0!important;background:#fff!important;overflow:hidden!important;}
.header{margin-top:0!important;position:relative!important;z-index:1!important;}
.header .row{min-height:clamp(560px,70vh,760px)!important;}
.header .col-md-6.p-5{padding:clamp(34px,6vw,86px)!important;position:relative!important;z-index:2!important;}
.header h1{line-height:1.02!important;color:var(--cms-title-color,var(--dark))!important;letter-spacing:-.035em!important;}
.header p{max-width:640px!important;line-height:1.7!important;}
.header-carousel,
.cms-hero-carousel{height:100%!important;min-height:clamp(480px,68vh,760px)!important;position:relative!important;overflow:hidden!important;background:var(--light,#f8fafc)!important;}
.header-carousel .owl-stage-outer,
.header-carousel .owl-stage,
.header-carousel .owl-item,
.header-carousel .owl-carousel-item{height:100%!important;min-height:inherit!important;}
.header-carousel .owl-carousel-item picture,
.header-carousel .owl-carousel-item img{height:100%!important;min-height:inherit!important;width:100%!important;display:block!important;}
.header-carousel .owl-carousel-item img{object-fit:cover!important;object-position:center!important;}
.header-carousel .owl-carousel-item[data-crop="contain"] img{object-fit:contain!important;background:var(--light,#f8fafc)!important;}
.header-carousel .owl-nav{left:18px!important;top:50%!important;transform:translateY(-50%)!important;z-index:5!important;}
.header-carousel .owl-nav .owl-prev,
.header-carousel .owl-nav .owl-next{box-shadow:0 14px 35px rgba(15,23,42,.18)!important;}
.header-carousel .owl-dots{position:absolute!important;left:0!important;right:0!important;bottom:18px!important;display:flex!important;justify-content:center!important;gap:8px!important;z-index:4!important;}
.header-carousel .owl-dot span{display:block!important;width:10px!important;height:10px!important;border-radius:999px!important;background:rgba(255,255,255,.72)!important;border:1px solid rgba(15,23,42,.16)!important;}
.header-carousel .owl-dot.active span{width:28px!important;background:var(--primary)!important;border-color:var(--primary)!important;}
.about-img{border-radius:var(--cms-radius,18px)!important;}
.about-img::before{left:-45%!important;width:92%!important;background:var(--primary)!important;opacity:.92!important;z-index:0!important;pointer-events:none!important;}
.about-img img{border-radius:var(--cms-radius,18px)!important;box-shadow:var(--cms-public-shadow)!important;}
.property-item,.cms-feature-card,.cms-testimonial-card,.cms-faq-item,.cms-gallery-card,.detail-gallery-main,.detail-info-card{box-shadow:var(--cms-public-shadow)!important;border:var(--cms-public-border)!important;}
.property-thumbnail{aspect-ratio:4/3!important;height:auto!important;object-fit:cover!important;display:block!important;background:#f8fafc!important;}
.footer{background:linear-gradient(135deg,#0f172a,#1f2937)!important;}
.footer .btn-social{display:inline-flex!important;align-items:center!important;justify-content:center!important;}
.whatsapp-float{box-shadow:0 18px 45px rgba(37,211,102,.35)!important;}
/* Detalhe público */
.detail-hero-grid{display:grid!important;grid-template-columns:minmax(280px,.86fr) minmax(360px,1.14fr)!important;gap:clamp(24px,4vw,56px)!important;align-items:start!important;}
.detail-info-card{position:sticky!important;top:112px!important;background:#fff!important;border-radius:var(--cms-radius,18px)!important;padding:clamp(22px,3vw,34px)!important;}
.detail-gallery-main{background:#fff!important;border-radius:var(--cms-radius,18px)!important;padding:18px!important;}
.detail-main-photo{height:min(66vh,680px)!important;min-height:420px!important;background:linear-gradient(135deg,#f8fafc,#eef2f7)!important;}
.detail-main-photo img{object-fit:contain!important;}
.detail-photo-thumb{background:#fff!important;border-color:rgba(15,23,42,.08)!important;}
.detail-photo-thumb.active{border-color:var(--primary)!important;box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 14%,transparent)!important;}
.detail-lightbox{position:fixed!important;inset:0!important;display:none!important;align-items:center!important;justify-content:center!important;background:rgba(2,6,23,.94)!important;z-index:99999!important;padding:16px!important;touch-action:pan-y!important;}
.detail-lightbox.open{display:flex!important;}
.detail-lightbox #lb-image{max-width:94vw!important;max-height:78vh!important;object-fit:contain!important;border-radius:14px!important;background:#111827!important;box-shadow:0 24px 80px rgba(0,0,0,.48)!important;user-select:none!important;-webkit-user-drag:none!important;}
.detail-lightbox .lb-close,.detail-lightbox .lb-prev,.detail-lightbox .lb-next{position:absolute!important;border:0!important;width:52px!important;height:52px!important;border-radius:999px!important;display:grid!important;place-items:center!important;background:rgba(255,255,255,.14)!important;color:#fff!important;cursor:pointer!important;z-index:2!important;}
.detail-lightbox .lb-close{top:18px!important;right:18px!important;background:#fff!important;color:#111827!important;}
.detail-lightbox .lb-prev{left:18px!important;top:50%!important;transform:translateY(-50%)!important;}
.detail-lightbox .lb-next{right:18px!important;top:50%!important;transform:translateY(-50%)!important;}
.detail-lightbox .lb-counter{position:absolute!important;bottom:18px!important;left:50%!important;transform:translateX(-50%)!important;color:#fff!important;background:rgba(0,0,0,.42)!important;border:1px solid rgba(255,255,255,.18)!important;border-radius:999px!important;padding:9px 14px!important;font-weight:800!important;}
.detail-lightbox .lb-thumbs{position:absolute!important;left:50%!important;bottom:58px!important;transform:translateX(-50%)!important;max-width:86vw!important;display:flex!important;gap:8px!important;overflow-x:auto!important;padding:6px!important;}
.detail-lightbox .lb-thumbs button{width:58px!important;height:42px!important;border:2px solid transparent!important;border-radius:10px!important;overflow:hidden!important;padding:0!important;background:#fff!important;opacity:.78!important;}
.detail-lightbox .lb-thumbs button.active{border-color:var(--primary)!important;opacity:1!important;}
.detail-lightbox .lb-thumbs img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;}
@media (max-width:991.98px){
    .nav-bar,.nav-bar.sticky-top{padding:0!important;background:#fff!important;}
    .navbar{border-radius:0!important;min-height:78px!important;padding:10px 14px!important;}
    .navbar-toggler{display:inline-flex!important;flex:0 0 48px!important;margin-left:auto!important;}
    .navbar-collapse{display:none!important;position:absolute!important;top:calc(100% + 8px)!important;left:12px!important;right:12px!important;z-index:10000!important;background:#fff!important;border:1px solid rgba(15,23,42,.10)!important;border-radius:22px!important;box-shadow:0 24px 55px rgba(15,23,42,.18)!important;padding:12px!important;}
    .navbar-collapse.show{display:block!important;}
    .navbar-nav{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:6px!important;}
    .navbar-light .navbar-nav .nav-link{min-height:48px!important;justify-content:flex-start!important;border-radius:14px!important;background:#f8fafc!important;font-size:15px!important;}
    .header .row{min-height:auto!important;}
    .header .col-md-6.p-5{padding:34px 22px!important;}
    .header-carousel,.cms-hero-carousel{min-height:min(78vh,620px)!important;}
    .header-carousel .owl-nav{left:12px!important;}
    .detail-hero-grid{grid-template-columns:1fr!important;}
    .detail-info-card{position:static!important;order:2!important;}
    .detail-gallery-card{order:1!important;}
}
@media (max-width:767px){
    .navbar-brand img{max-height:66px!important;max-width:180px!important;}
    .section-title{font-size:clamp(1.8rem,8vw,2.45rem)!important;}
    .header-carousel,.cms-hero-carousel{min-height:min(82vh,620px)!important;}
    .detail-main-photo{height:430px!important;min-height:320px!important;}
    .detail-lightbox .lb-close{top:12px!important;right:12px!important;width:54px!important;height:54px!important;}
    .detail-lightbox .lb-prev,.detail-lightbox .lb-next{width:46px!important;height:46px!important;}
    .detail-lightbox .lb-prev{left:10px!important;}
    .detail-lightbox .lb-next{right:10px!important;}
    .detail-lightbox .lb-thumbs{display:none!important;}
    .whatsapp-float{right:18px!important;bottom:18px!important;width:58px!important;height:58px!important;}
}

/* RC11 HOTFIX - site público: topo fixo real e carrossel com modo correto */
@media (min-width: 992px){
  body{padding-top:112px!important;}
  .nav-bar,.nav-bar.sticky-top{
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    z-index:99999!important;
    background:rgba(255,255,255,.96)!important;
    backdrop-filter:blur(14px)!important;
    box-shadow:0 10px 30px rgba(15,23,42,.08)!important;
  }
  .navbar{max-width:1440px!important;margin:0 auto!important;border-radius:0 0 28px 28px!important;}
  .container-fluid.header{padding-top:0!important;}
  .header .row{min-height:clamp(460px,58vh,660px)!important;align-items:center!important;}
  .header-carousel,.cms-hero-carousel{min-height:clamp(420px,56vh,620px)!important;height:clamp(420px,56vh,620px)!important;border-radius:0!important;}
  .carousel-mode-same .header-carousel,.carousel-mode-same .cms-hero-carousel{background:#fff!important;}
  .carousel-mode-same .header-carousel .owl-carousel-item img{object-fit:contain!important;background:#fff!important;}
  .carousel-mode-separate .header-carousel .owl-carousel-item img{object-fit:cover!important;}
}
@media (max-width: 991.98px){
  body{padding-top:78px!important;}
  .nav-bar,.nav-bar.sticky-top{position:fixed!important;top:0!important;left:0!important;right:0!important;z-index:99999!important;box-shadow:0 10px 30px rgba(15,23,42,.08)!important;}
  .container-fluid.header{padding-top:0!important;}
}

/* =========================================================
   CMS AR OP-002.000 - FASE FINAL 1 / SITE PÚBLICO
   Estabilização do hero padrão/lateral, banner horizontal,
   topo fixo, menu mobile, detalhe de produto e lightbox.
   ========================================================= */
body {
    min-width: 320px !important;
}

@media (min-width: 992px) {
    body {
        padding-top: 112px !important;
    }

    .container-fluid.header {
        overflow: hidden !important;
    }

    .header .row {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        min-height: clamp(500px, 62vh, 680px) !important;
    }

    .header .col-md-6 {
        width: 50% !important;
        flex: 0 0 auto !important;
    }

    .header .col-md-6.p-5 {
        padding: clamp(42px, 5vw, 82px) !important;
    }

    .header-carousel,
    .cms-hero-carousel {
        height: clamp(460px, 58vh, 640px) !important;
        min-height: clamp(460px, 58vh, 640px) !important;
        max-height: 680px !important;
        background: var(--light, #f8fafc) !important;
    }

    .carousel-mode-same .header-carousel .owl-carousel-item img,
    .carousel-mode-same .cms-hero-carousel .owl-carousel-item img {
        object-fit: cover !important;
        object-position: center !important;
        background: var(--light, #f8fafc) !important;
    }

    .carousel-mode-same .header-carousel .owl-carousel-item[data-crop="contain"] img,
    .carousel-mode-same .cms-hero-carousel .owl-carousel-item[data-crop="contain"] img {
        object-fit: contain !important;
    }

    .carousel-mode-separate .header .row {
        display: block !important;
        min-height: auto !important;
    }

    .carousel-mode-separate .header .col-md-6 {
        width: 100% !important;
        max-width: 100% !important;
    }

    .carousel-mode-separate .header .col-md-6.p-5 {
        position: absolute !important;
        left: clamp(24px, 5vw, 76px) !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        z-index: 4 !important;
        max-width: min(620px, 48vw) !important;
        padding: clamp(28px, 4vw, 54px) !important;
        border-radius: var(--cms-radius, 18px) !important;
        background: rgba(255, 255, 255, .90) !important;
        box-shadow: 0 24px 70px rgba(15, 23, 42, .16) !important;
        backdrop-filter: blur(14px) !important;
    }

    .carousel-mode-separate .header-carousel,
    .carousel-mode-separate .cms-hero-carousel {
        width: 100% !important;
        height: min(68vh, 720px) !important;
        min-height: 520px !important;
        max-height: 720px !important;
    }

    .carousel-mode-separate .header-carousel .owl-carousel-item img,
    .carousel-mode-separate .cms-hero-carousel .owl-carousel-item img {
        object-fit: cover !important;
        aspect-ratio: 21 / 9 !important;
    }
}

@media (max-width: 991.98px) {
    body {
        padding-top: 78px !important;
    }

    .header .row {
        display: flex !important;
        flex-direction: column !important;
        min-height: auto !important;
    }

    .header .col-md-6.animated.fadeIn {
        order: 1 !important;
        width: 100% !important;
    }

    .header .col-md-6.p-5 {
        order: 2 !important;
        width: 100% !important;
        padding: 28px 20px 34px !important;
        margin-top: 0 !important;
    }

    .header-carousel,
    .cms-hero-carousel {
        height: clamp(360px, 68vh, 620px) !important;
        min-height: clamp(360px, 68vh, 620px) !important;
        max-height: min(620px, 78vh) !important;
        background: var(--light, #f8fafc) !important;
    }

    .header-carousel .owl-carousel-item img,
    .cms-hero-carousel .owl-carousel-item img {
        height: clamp(360px, 68vh, 620px) !important;
        max-height: min(620px, 78vh) !important;
        object-fit: cover !important;
        object-position: center !important;
    }

    .header-carousel .owl-carousel-item[data-crop="contain"] img,
    .cms-hero-carousel .owl-carousel-item[data-crop="contain"] img {
        object-fit: contain !important;
    }
}

@media (max-width: 767px) {
    .header h1 {
        letter-spacing: -0.025em !important;
    }

    .header p {
        font-size: 16px !important;
    }

    .header .btn {
        width: 100% !important;
        min-height: 52px !important;
    }

    .header-carousel .owl-nav,
    .cms-hero-carousel .owl-nav {
        left: 12px !important;
        right: 12px !important;
        top: 50% !important;
        width: auto !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        pointer-events: none !important;
    }

    .header-carousel .owl-nav .owl-prev,
    .header-carousel .owl-nav .owl-next,
    .cms-hero-carousel .owl-nav .owl-prev,
    .cms-hero-carousel .owl-nav .owl-next {
        pointer-events: auto !important;
        width: 44px !important;
        height: 44px !important;
        margin: 0 !important;
    }
}

.detail-main-photo,
.detail-lightbox,
.cms-public-lightbox {
    overscroll-behavior: contain !important;
}

.detail-lightbox .lb-close,
.cms-public-lightbox .cms-lb-close {
    min-width: 54px !important;
    min-height: 54px !important;
}


/* =========================================================
   CMS AR OP-002.001 - FASE FINAL 1 / ESTABILIZAÇÃO PÚBLICA 2
   Fallback sem Owl, lightbox mais seguro e limites visuais finais.
   ========================================================= */
.cms-public-page {
    min-height: 100vh;
}
.cms-public-page.cms-lightbox-open {
    touch-action: none;
}
.header-carousel:not(.owl-loaded),
.cms-hero-carousel:not(.owl-loaded) {
    display: block !important;
    overflow: hidden !important;
}
.header-carousel:not(.owl-loaded) .owl-carousel-item,
.cms-hero-carousel:not(.owl-loaded) .owl-carousel-item,
.cms-carousel-fallback .owl-carousel-item {
    display: none !important;
}
.header-carousel:not(.owl-loaded) .owl-carousel-item:first-child,
.cms-hero-carousel:not(.owl-loaded) .owl-carousel-item:first-child,
.cms-carousel-fallback .owl-carousel-item.cms-fallback-active {
    display: block !important;
}
.cms-carousel-fallback picture,
.cms-carousel-fallback img {
    display: block !important;
    width: 100% !important;
}
.cms-carousel-fallback img {
    height: clamp(360px, 54vw, 680px) !important;
    object-fit: cover !important;
    object-position: center !important;
}
.cms-carousel-fallback .owl-carousel-item[data-crop="contain"] img {
    object-fit: contain !important;
    background: var(--light, #f8fafc) !important;
}
.cms-carousel-fallback .owl-carousel-item[data-pos="top"] img { object-position: top center !important; }
.cms-carousel-fallback .owl-carousel-item[data-pos="bottom"] img { object-position: bottom center !important; }
.cms-public-lightbox[aria-hidden="true"],
.detail-lightbox[aria-hidden="true"] {
    pointer-events: none;
}
.cms-public-lightbox.open,
.detail-lightbox.open {
    pointer-events: auto;
}
.cms-public-lightbox img,
.detail-lightbox #lb-image {
    background: #0f172a !important;
}
.cms-lb-close,
.detail-lightbox .lb-close {
    font-size: 18px !important;
}
.detail-related-card,
.detail-info-card,
.detail-gallery-main {
    overflow: hidden !important;
}
.detail-related-card img {
    width: 100% !important;
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
}
.footer p,
.footer a,
.footer .btn-link {
    word-break: break-word;
}
@media (max-width: 991.98px) {
    .cms-carousel-fallback img {
        height: clamp(360px, 68vh, 620px) !important;
        max-height: min(620px, 78vh) !important;
    }
    .about-img {
        padding: 18px !important;
    }
    .about-img::before {
        left: -35% !important;
        width: 80% !important;
        opacity: .55 !important;
    }
}
@media (max-width: 767px) {
    .cms-public-lightbox,
    .detail-lightbox {
        padding: 10px !important;
    }
    .cms-public-lightbox img,
    .detail-lightbox #lb-image {
        max-width: 96vw !important;
        max-height: 76vh !important;
    }
    .cms-lb-caption,
    .detail-lightbox .lb-counter {
        max-width: 88vw !important;
        font-size: 13px !important;
    }
    .footer .btn-wa,
    .footer .btn {
        width: 100% !important;
    }
}

/* =========================================================
   CMS AR OP-002.002 - FASE FINAL 1 / ESTABILIZAÇÃO PÚBLICA 3
   CTA, rodapé, contato, redes sociais e produtos relacionados.
   ========================================================= */
.cms-page-index .footer,
.cms-page-detail .footer {
    position: relative;
}
.footer-contact-line {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    line-height: 1.55;
}
.footer-contact-line i {
    margin-right: 0 !important;
    flex: 0 0 18px;
    width: 18px;
    min-height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--primary, #c3b133);
}
.footer-contact-line a,
.footer-contact-line span {
    color: rgba(255, 255, 255, .72) !important;
    overflow-wrap: anywhere;
}
.footer-contact-line a:hover {
    color: #fff !important;
}
.footer .btn-social {
    flex: 0 0 38px;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    padding: 0 !important;
    font-size: 16px;
}
.footer .d-flex.pt-2 {
    flex-wrap: wrap;
    gap: 8px;
}
.footer .btn-link {
    width: fit-content;
    max-width: 100%;
}
.cms-cta-image {
    max-height: 420px;
    object-fit: cover;
    background: var(--light, #f8fafc);
}
.detail-related-card {
    display: block;
    height: 100%;
    border-radius: var(--cms-radius, 18px);
    background: #fff;
    text-decoration: none;
    color: var(--dark, #0f172a);
    box-shadow: var(--cms-public-shadow, 0 18px 45px rgba(15,23,42,.10));
    border: var(--cms-public-border, 1px solid rgba(15,23,42,.08));
    transition: transform .25s ease, box-shadow .25s ease;
}
.detail-related-card:hover {
    transform: translateY(-4px);
    color: var(--dark, #0f172a);
    box-shadow: 0 26px 65px rgba(15,23,42,.14) !important;
}
.detail-related-card div {
    padding: 18px;
}
.detail-related-card strong,
.detail-related-card span {
    display: block;
}
.detail-related-card strong {
    margin-bottom: 6px;
    color: var(--dark, #0f172a);
    line-height: 1.25;
}
.detail-related-card span {
    color: var(--primary, #c3b133);
    font-weight: 800;
}
@media (max-width: 767px) {
    .cms-cta-image {
        max-height: 320px;
    }
    .footer-contact-line {
        gap: .65rem;
    }
    .footer .btn-link {
        width: 100% !important;
    }
}

/* =========================================================
   CMS AR OP-002.003 - FASE FINAL 1 / FECHAMENTO TÉCNICO PÚBLICO
   Proteções finais de imagem, carrossel, detalhe, CTA e rodapé.
   ========================================================= */
.cms-public-page img[data-fallback] {
    background: var(--light, #f8fafc);
}
.cms-public-page .navbar-brand img[data-fallback] {
    background: transparent;
}
.cms-page-index .cms-hero-carousel,
.cms-page-index .header-carousel {
    isolation: isolate;
}
.cms-page-index .cms-carousel-fallback .owl-carousel-item {
    display: none !important;
}
.cms-page-index .cms-carousel-fallback .owl-carousel-item.cms-fallback-active,
.cms-page-index .cms-carousel-fallback .owl-carousel-item:first-child {
    display: block !important;
}
.cms-page-index .cms-carousel-fallback .owl-carousel-item img {
    width: 100% !important;
    height: clamp(420px, 56vh, 620px) !important;
    max-height: 620px !important;
    object-fit: contain !important;
}
.carousel-mode-separate .cms-carousel-fallback .owl-carousel-item img {
    object-fit: cover !important;
}
.cms-page-detail .detail-main-photo:focus-visible,
.cms-public-lightbox button:focus-visible,
.detail-lightbox button:focus-visible,
.navbar-toggler:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--primary) 70%, #ffffff) !important;
    outline-offset: 3px !important;
}
.cms-page-detail .detail-main-photo img[data-fallback-applied="1"],
.cms-page-index .property-thumbnail[data-fallback-applied="1"],
.detail-related-card img[data-fallback-applied="1"] {
    object-fit: contain !important;
    padding: 18px !important;
}
.cms-page-index .cms-cta-image[data-fallback-applied="1"],
.cms-page-index .about-img img[data-fallback-applied="1"] {
    object-fit: contain !important;
    padding: 22px !important;
    background: var(--light, #f8fafc) !important;
}
@media (max-width: 767px) {
    .cms-page-index .cms-carousel-fallback .owl-carousel-item img {
        height: min(78vh, 620px) !important;
        max-height: 620px !important;
    }
    .cms-page-index .header .col-md-6.p-5 {
        text-align: left !important;
    }
    .cms-page-index .header .btn {
        width: 100% !important;
    }
}


/* OP-007.002 - Redes sociais públicas: fallback visual para TikTok e X sem depender de Font Awesome 6 */
.btn-social.social-letter-link{font-family:Inter,Arial,sans-serif;font-weight:950;letter-spacing:-.04em;font-size:16px;line-height:1;text-transform:none}
.btn-social .social-letter{display:inline-grid;place-items:center;min-width:18px;height:18px;color:inherit}
.btn-social.social-tiktok{background:linear-gradient(135deg,#050505,#111827)!important;border-color:rgba(255,255,255,.55)!important;color:#fff!important}
.btn-social.social-twitter,.btn-social.social-x{background:#000!important;border-color:rgba(255,255,255,.55)!important;color:#fff!important}
.btn-social.social-tiktok:hover,.btn-social.social-twitter:hover,.btn-social.social-x:hover{background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important}
