
/* ===================== 0. BASE ===================== */
body{ font-family:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif; color:#22303f; background:#fff; }
html, body{ overflow-x:hidden; max-width:100%; }  /* [estrutura] mata scroll horizontal (row -15px + badge recaptcha) */
/* [estrutura] Bootstrap antigo pina .container em 1140px fixo — sobrescreve o WIDTH */
@media (min-width:1200px){ .container, .c49row .container{ width:1300px!important; max-width:100%!important; } }
@media (min-width:1560px){ .container, .c49row .container{ width:1400px!important; } }
#c49main{ padding-top:0!important; padding-bottom:0; }
.c49row{ margin-bottom:0; }
.c49row-destaques, .c49row-bairros, .c49row-equipe, .c49row-depoimentos, .c49row-tiles, .c49row-servicos{ padding:clamp(48px,6vw,88px) 0; }
.c49row-servicos, .c49row-tiles, .c49row-bairros, .c49row-equipe{ background:#F4EFE6; }
h1,h2,h3,h4{ font-family:'Fraunces','Georgia',serif; font-weight:600; letter-spacing:-.012em; color:#14212f; }

/* ===================== 1. TOPBAR (navy, faixa fina) ===================== */
.c49row-topbar{ background:#0E1B2E; }
.c49row-topbar .container{ padding-top:.15rem!important; padding-bottom:.15rem!important; }
.c49row-topbar .row{ align-items:center; }
.c49row-topbar [class*="animate__"]{ animation:none!important; line-height:1!important; }
.c49row-topbar .row > [class*="col-"], .c49row-topbar .c49-phone, .c49row-topbar .c49-label, .c49row-topbar .c49-tag, .c49row-topbar .navbar-nav .nav-link, .c49row-topbar .c49top-cta a{ line-height:1.2!important; }
.c49row-topbar .c49mod-contact-dropdown, .c49row-topbar .c49-contact-phone{ display:inline-flex!important; align-items:center; gap:1.5rem; flex-wrap:nowrap; }
.c49row-topbar .c49-phone{ display:inline-flex!important; align-items:center; gap:.45em; color:#d9dde4!important; font-size:.84rem!important; font-weight:600!important; padding:0!important; margin:0!important; min-height:0!important; line-height:1.15!important; text-decoration:none!important; white-space:nowrap; }
.c49row-topbar .c49-phone:hover{ color:#fff!important; }
.c49row-topbar .c49-label, .c49row-topbar .c49-label.align-middle{ display:inline-flex!important; align-items:center; gap:.4em; }
.c49row-topbar .c49-tag{ display:inline!important; font-weight:600; color:#fff; }
/* [estrutura] telefone 2x: o modulo emite <a> mobile + <a> desktop com classes
   responsivas LEGADAS (hidden-md-up/sm-down) que nao existem neste Bootstrap */
.c49mod-contact-dropdown .hidden-md-up,
.c49row-topbar .c49-phone a.hidden-md-up{ display:none!important; }
@media (max-width:767.98px){
  .c49mod-contact-dropdown .hidden-md-up,
  .c49row-topbar .c49-phone a.hidden-md-up{ display:inline!important; }
  .c49mod-contact-dropdown .hidden-sm-down,
  .c49row-topbar .c49-phone a.hidden-sm-down{ display:none!important; }
}
.c49row-topbar .c49-phone a{ color:inherit!important; text-decoration:none!important; padding:0!important; display:inline!important; }
.c49row-topbar .c49-icon, .c49row-topbar .c49-phone i, .c49row-topbar .c49-phone [class^="fa"], .c49row-topbar .c49-phone [class*=" fa"]{ font-size:1em!important; line-height:1!important; color:#F0A07E; margin:0!important; padding:0!important; width:auto!important; height:auto!important; min-width:0!important; background:none!important; border:0!important; border-radius:0!important; box-shadow:none!important; }
/* [visual] pilula/destaque no 1o telefone: NAO PEDIDO, revertido — "ficou
   muito estranho so um numero estilizado". Os 2 telefones ficam iguais
   (mesmo estilo .c49-phone la de cima), so texto, sem virar botao. O <a>
   continua <a> — clique/link nao muda, so a casca visual sai. */

/* [visual] "a direita... nao centralizado": o flex-end sozinho so empurrava
   os telefones ate a BORDA DA PROPRIA COLUNA (col-sm-7, 58% da linha) — a
   coluna vizinha (col-sm-5 = modulo 230, o menu antigo do topbar) ficava
   VAZIA (0 links, confirmado) mas ainda ocupando 5/12 de espaco fantasma,
   entao visualmente os telefones paravam no meio, nao na direita de verdade.
   [estrutura] esconde essa coluna fantasma e deixa a dos telefones ocupar a
   linha toda — so ENTAO o flex-end alcanca a borda direita real. No celular
   ela topou centralizar (mais simples) em vez de direita — flex-end so
   entra a partir do breakpoint sm, embaixo disso fica no centro (padrao). */
.c49row-topbar .row > .col-sm-5{ display:none!important; }
.c49row-topbar .row > .col-sm-7{ flex:0 0 100%!important; max-width:100%!important; }
@media (min-width:576px){
  .c49row-topbar .c49mod-contact-dropdown{ justify-content:flex-end!important; }
}
/* menu do topbar (modulo 230) */
.c49row-topbar .c49mod-menu-horizontal-basic, .c49row-topbar .c49mod-menu-horizontal-basic .navbar, .c49row-topbar .navbar{ padding:0!important; margin:0!important; background:transparent!important; border:0!important; min-height:0!important; }
.c49row-topbar [class*="animate__"], .c49row-topbar .c49mod-menu-horizontal-basic *{ line-height:1.2!important; }
.c49row-topbar .navbar-nav{ flex-direction:row!important; align-items:center; gap:.25rem; margin:0!important; }
.c49row-topbar .navbar-nav .nav-link, .c49row-topbar .navbar-nav a{ color:#d9dde4!important; font-size:.82rem!important; font-weight:600!important; padding:.12rem .7rem!important; white-space:nowrap; }
.c49row-topbar .navbar-nav .nav-link:hover, .c49row-topbar .navbar-nav a:hover{ color:#fff!important; }
.c49row-topbar .navbar-nav .nav-link::after{ display:none!important; }
.c49row-topbar .navbar-toggler, .c49row-topbar .navbar-brand{ display:none!important; }
.c49row-topbar .c49top-cta a, .c49row-topbar a.c49top-cta{ background:#0C7392; color:#fff!important; border-radius:999px; padding:.26rem 1.05rem!important; }
.c49row-topbar .c49top-cta a:hover{ background:#095A73; color:#fff!important; }
.c49row-topbar .c49mod-contact-dropdown{ position:relative; z-index:2; } /* [estrutura] container do menu cobria a coluna do contato */

/* ===================== 2. NAVBAR (branco quente) ===================== */
.c49row-navbar{ background:#FFFDF8; box-shadow:0 2px 14px -8px rgba(14,27,46,.22); position:relative; }
/* [visual] "topo desagrada": era 3 faixas cortando seco (navy/branco/navy).
   Tentei costurar a emenda topbar->navbar com uma onda fininha (2 rounds pra
   acertar z-index/posicao) — ela FUNCIONAVA tecnicamente mas ela mesma foi
   reprovada ("tira essas ondas feias do topo"). TIRADA. Nao reintroduzir uma
   onda aqui; se a emenda seca incomodar de novo, resolver com sombra/borda
   fina, nao com um padrao SVG repetido. */
.c49row-navbar .container{ padding-top:0!important; padding-bottom:0!important; }
/* [estrutura] logo dobrado: esconde o brand do menu, fica so o modulo image */
.c49row-navbar .c49mod-menu-horizontal-basic .navbar-brand, .c49row-navbar .c49mod-menu-horizontal-basic img, .c49row-navbar .c49mod-menu-horizontal-basic .navbar-brand img{ display:none!important; }
.c49row-navbar .col-logo img{ height:112px!important; width:auto!important; max-height:112px!important; max-width:380px!important; }
/* [visual] "logo fica muito escondido": mais presenca (100->112px) + respiro
   proprio a esquerda, pra nao comecar colado na borda do container. */
.c49row-navbar .col-logo{ position:relative; z-index:3; padding-top:0!important; padding-bottom:0!important; padding-left:.5rem; } /* [estrutura] ul full-width bloqueava o clique */
.c49row-navbar .col-logo a{ display:inline-block; }
.c49row-navbar .navbar{ padding:0!important; background:transparent!important; border:0!important; box-shadow:none!important; }
.c49row-navbar .navbar-nav .nav-link, .c49row-navbar .navbar-nav > li > a{ position:relative; color:#14212f!important; font-weight:600!important; font-size:.95rem; padding:.55rem .95rem!important; }
/* hover: a ONDA do calcadao crescendo sob o link */
.c49row-navbar .navbar-nav .nav-link::after, .c49row-navbar .navbar-nav > li > a::after{ content:""; position:absolute; left:.95rem; right:.95rem; bottom:.14rem; height:7px; background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 9'><path fill='none' stroke='%23EE6C4D' stroke-width='2.2' stroke-linecap='round' d='M1,5 C6,0.5 9,0.5 14,5 C19,9.5 22,9.5 27,5'/></svg>") repeat-x left center/22px 7px; opacity:0; transform:translateY(3px); transition:opacity .2s ease, transform .2s ease; }
.c49row-navbar .navbar-nav .nav-link:hover::after, .c49row-navbar .navbar-nav > li > a:hover::after, .c49row-navbar .navbar-nav .active > a::after{ opacity:1; transform:none; }
/* CTA "Contato": pill por-do-sol */
.c49row-navbar .navbar-nav .c49nav-cta a, .c49row-navbar .navbar-nav a.c49nav-cta{ background:linear-gradient(118deg,#EE6C4D 0%, #0C7392 88%); color:#fff!important; border-radius:999px; padding:.5rem 1.35rem!important; margin-left:.5rem; }
.c49row-navbar .navbar-nav .c49nav-cta a:hover{ filter:brightness(1.07); }
.c49row-navbar .navbar-nav .c49nav-cta a::after, .c49row-navbar .navbar-nav .c49nav-cta::after{ display:none!important; }
.c49row-navbar .navbar-toggler, .c49row-navbar .c49-navbar-toggler{ border:0!important; color:#14212f!important; }

/* ===================== 3. HERO — O CARTAO-POSTAL =====================
   Camadas (tras -> frente):
     .c49hero__bg            ceu do por-do-sol + sol baixando sobre o mar (58%)
     .c49hero__bg::after     baia: serra distante (Dois Irmaos), MAR, brilho do
                             sol na agua, passarinhos (unica camada que estica)
     .c49hero__bg::before    ondulacao do mar deslizando (26s)
     .c49hero__scrim::after  URCA + PAO DE ACUCAR + cabos + BONDINHO (a cabine
                             anda no cabo via SMIL dentro do SVG — nunca desalinha)
     .c49row-hero::after     CALCADAO DE COPACABANA no chao (onda Burle Marx)
     (o Corcovado/Cristo foi tirado daqui — nao convenceu em silhueta pequena;
     fica so o bondinho, que e o elemento que funcionou)
   Desktop: busca compacta a ESQUERDA, cena inteira a DIREITA. Abaixo de 1200px
   o conteudo reserva a faixa de baixo e o postal fica inteiro sob a busca. */
.c49row-hero{ --rio-sky:300px; --rio-cal:34px; position:relative; }
@media (min-width:1600px){ .c49row-hero{ --rio-sky:340px; } }
@media (max-width:1199px){ .c49row-hero{ --rio-sky:240px; --rio-cal:28px; } }
@media (max-width:767px){ .c49row-hero{ --rio-sky:175px; --rio-cal:22px; } }
.c49hero__bg img{ display:none!important; }
.c49hero__scrim{ background:none!important; position:absolute!important; inset:0!important; z-index:1; pointer-events:none; }
/* [estrutura] CSS-base do modulo poe .c49hero__bg em z-index:-1 (assumindo
   .c49hero SEM contexto de empilhamento proprio). Como .c49hero ganhou
   position:relative+z-index:30 (fix do dropdown de cidade, acima), esse -1
   fica preso atras de TUDO — inclusive o branco da pagina. Traz de volta pra
   dentro do hero, atras do scrim/conteudo (0 < scrim:1 < inner:2). */
.c49hero__bg{ z-index:0!important; }
.c49hero__bg{
  background:
    radial-gradient(46% 34% at 58% 82%, rgba(255,206,140,.5) 0%, rgba(255,175,115,.16) 48%, rgba(255,175,115,0) 72%),
    radial-gradient(6.2% 8.4% at 58% 84%, #FFE9C2 0%, #FFC97F 55%, rgba(255,201,127,0) 76%),
    linear-gradient(179deg, #0A1626 0%, #10233B 22%, #23305A 40%, #5E3A63 56%, #A9515A 70%, #DE6350 82%, #F0925F 91%, #F7BE86 100%)!important;
}
@media (max-width:767px){
  .c49hero__bg{
    background:
      radial-gradient(70% 30% at 30% 78%, rgba(255,206,140,.5) 0%, rgba(255,175,115,.16) 48%, rgba(255,175,115,0) 72%),
      radial-gradient(11% 7% at 30% 80%, #FFE9C2 0%, #FFC97F 55%, rgba(255,201,127,0) 76%),
      linear-gradient(179deg, #0A1626 0%, #10233B 22%, #23305A 40%, #5E3A63 56%, #A9515A 70%, #DE6350 82%, #F0925F 91%, #F7BE86 100%)!important;
  }
}
/* baia: serra + mar + brilho (estica na largura — so o que aguenta esticar) */
.c49hero__bg::after{
  content:""; position:absolute; left:0; right:0; bottom:var(--rio-cal); height:calc(var(--rio-sky) * .55); z-index:0; pointer-events:none;
  background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 170' preserveAspectRatio='none'><defs><linearGradient id='sh' x1='0' y1='0' x2='0' y2='1'><stop offset='0' stop-color='%23FFC988' stop-opacity='.65'/><stop offset='1' stop-color='%23FFC988' stop-opacity='0'/></linearGradient></defs><path fill='%23182A44' opacity='.55' d='M0,122 L0,100 C36,96 62,78 84,58 C94,49 106,44 116,52 C128,62 136,82 148,92 C158,100 170,78 184,68 C194,61 206,68 216,80 C230,96 262,108 330,112 C520,120 720,112 920,114 C1120,116 1300,112 1440,116 L1440,122 Z'/><rect y='118' width='1440' height='52' fill='%230B1626'/><rect x='805' y='118' width='60' height='52' fill='url(%23sh)'/><g stroke='%23F7BE86' stroke-width='2' opacity='.5' stroke-linecap='round'><path d='M782,133 h26'/><path d='M848,146 h30'/><path d='M810,159 h20'/></g><g stroke='%23FDE6C2' stroke-width='2' fill='none' opacity='.8' stroke-linecap='round'><path d='M950,40 c4,-6 10,-6 14,0 c4,-6 10,-6 14,0'/><path d='M1006,58 c3,-5 8,-5 11,0 c3,-5 8,-5 11,0'/></g></svg>") no-repeat center bottom/100% 100%;
}
/* celular: o sol muda pra 30% da largura — o brilho na agua acompanha (mesma
   baia, reflexo/faiscas/passarinhos reposicionados) */
@media (max-width:767px){
  .c49hero__bg::after{
    background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 170' preserveAspectRatio='none'><defs><linearGradient id='sh' x1='0' y1='0' x2='0' y2='1'><stop offset='0' stop-color='%23FFC988' stop-opacity='.65'/><stop offset='1' stop-color='%23FFC988' stop-opacity='0'/></linearGradient></defs><path fill='%23182A44' opacity='.55' d='M0,122 L0,100 C36,96 62,78 84,58 C94,49 106,44 116,52 C128,62 136,82 148,92 C158,100 170,78 184,68 C194,61 206,68 216,80 C230,96 262,108 330,112 C520,120 720,112 920,114 C1120,116 1300,112 1440,116 L1440,122 Z'/><rect y='118' width='1440' height='52' fill='%230B1626'/><rect x='402' y='118' width='60' height='52' fill='url(%23sh)'/><g stroke='%23F7BE86' stroke-width='2' opacity='.5' stroke-linecap='round'><path d='M379,133 h26'/><path d='M445,146 h30'/><path d='M407,159 h20'/></g><g stroke='%23FDE6C2' stroke-width='2' fill='none' opacity='.8' stroke-linecap='round'><path d='M120,40 c4,-6 10,-6 14,0 c4,-6 10,-6 14,0'/><path d='M186,58 c3,-5 8,-5 11,0 c3,-5 8,-5 11,0'/></g></svg>") no-repeat center bottom/100% 100%;
  }
}
/* mar ondulando devagar */
.c49hero__bg::before{
  content:""; position:absolute; left:0; right:0; bottom:calc(var(--rio-cal) + 4px); height:calc(var(--rio-sky) * .14); z-index:1; pointer-events:none; opacity:.45;
  background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 34'><g fill='none' stroke='%232E4E70' stroke-width='2.4' stroke-linecap='round'><path d='M0,10 C20,4 40,4 60,10 C80,16 100,16 120,10 C140,4 160,4 180,10 C200,16 220,16 240,10'/><path d='M0,24 C20,18 40,18 60,24 C80,30 100,30 120,24 C140,18 160,18 180,24 C200,30 220,30 240,24'/></g></svg>") repeat-x left bottom/240px 100%;
  animation:rioMar 26s linear infinite;
}
@keyframes rioMar{ from{ background-position:0 bottom; } to{ background-position:240px bottom; } }
/* Corcovado+Cristo TIRADO daqui (pedido: silhueta pequena nao convenceu —
   "quadriculado"/feio). Fica so o bondinho abaixo, que funcionou. Um contorno
   grande do Cristo, em cinza, entra como fundo de outra secao (ver mais abaixo). */
/* MORRO DA URCA + PAO DE ACUCAR + cabos + bondinho (SMIL: cabine vai-e-vem no cabo) */
.c49hero__scrim::after{
  content:""; position:absolute; right:1vw; bottom:calc(var(--rio-cal) + var(--rio-sky) * .13);
  width:calc(var(--rio-sky) * .95); height:calc(var(--rio-sky) * .62); pointer-events:none;
  background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 320 210'><path fill='%230E1B2E' d='M24,210 C32,176 47,148 70,134 C89,123 109,120 119,123 C127,125 131,133 133,143 C137,168 145,191 155,210 Z'/><rect fill='%230E1B2E' x='100' y='113' width='20' height='10' rx='2'/><path fill='%230E1B2E' d='M170,210 C175,166 186,118 204,78 C214,56 228,41 245,39 C263,41 277,63 286,98 C295,134 304,177 311,210 Z'/><rect fill='%230E1B2E' x='236' y='30' width='17' height='9' rx='2'/><g fill='none' stroke='%230E1B2E'><path stroke-width='2.4' d='M0,196 C40,170 74,142 102,118'/><path id='cb' stroke-width='2.4' d='M112,110 C156,84 200,56 238,33'/><path stroke-width='1.4' opacity='.7' d='M112,114 C156,88 200,60 238,37'/></g><g fill='%230E1B2E'><animateMotion dur='18s' repeatCount='indefinite' calcMode='linear' keyPoints='0;1;1;0;0' keyTimes='0;0.45;0.52;0.97;1'><mpath xlink:href='%23cb'/></animateMotion><path d='M-1.5,0 L1.5,0 L1.5,5 L-1.5,5 Z'/><path fill-rule='evenodd' d='M-11,5 L11,5 C13.2,5 15,6.8 15,9 L15,18 C15,20.2 13.2,22 11,22 L-11,22 C-13.2,22 -15,20.2 -15,18 L-15,9 C-15,6.8 -13.2,5 -11,5 Z M-10,9 L-2,9 L-2,15 L-10,15 Z M2,9 L10,9 L10,15 L2,15 Z'/></g></svg>") no-repeat center bottom/contain;
}
/* CALCADAO no chao do hero */
.c49row-hero::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:var(--rio-cal); z-index:3; pointer-events:none;
  background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 56' preserveAspectRatio='none'><rect width='320' height='56' fill='%23F4EFE6'/><g fill='none' stroke='%230E1B2E' stroke-width='13'><path d='M0,0 C26,0 54,38 80,38 C106,38 134,0 160,0 C186,0 214,38 240,38 C266,38 294,0 320,0'/><path d='M0,26 C26,26 54,64 80,64 C106,64 134,26 160,26 C186,26 214,64 240,64 C266,64 294,26 320,26'/></g></svg>") repeat-x left bottom/300px 100%;
}
@media (prefers-reduced-motion:reduce){ .c49hero__bg::before{ animation:none!important; } }
/* conteudo do hero */
.c49hero__inner{ padding-top:56px!important; padding-bottom:calc(var(--rio-sky) * .34 + 24px)!important; position:relative; z-index:2; }
@media (max-width:1199px){ .c49hero__inner{ padding-bottom:calc(var(--rio-sky) * .95 + 26px)!important; } }
.c49hero__title{ font-family:'Fraunces','Georgia',serif!important; font-weight:600!important; letter-spacing:-.015em!important; }
.c49hero__title, .c49hero__sub{ max-width:640px; }
.c49hero__title .c49hero__accent{ color:#FFB27E; font-style:normal; display:block; }
.c49hero__eyebrow{ background:rgba(255,255,255,.08)!important; border:1px solid rgba(255,207,155,.35)!important; color:#FFCF9B!important; }
/* BUSCA PRIMEIRO: logo abaixo do logo, ANTES do titulo — reordenado por CSS
   (flex+order), sem tocar no HTML do modulo (a ordem no DOM continua a mesma). */
.c49hero__inner .container{ display:flex!important; flex-direction:column!important; }
.c49hero__search{ order:-1!important; margin-top:0!important; margin-bottom:1.6rem!important; }
/* eyebrow ("Atendimento humanizado") tirado — o slot abaixo da busca virou as
   redes sociais (pedido: nao gostava delas grudadas no topbar com os telefones). */
.c49hero__eyebrow{ display:none!important; }
.c49hero__redes{ order:0!important; align-self:flex-end!important; margin:0 0 1.6rem!important; }
.c49hero__title{ order:2; }
.c49hero__sub{ order:3; margin-bottom:0!important; }
/* REDES no hero: mesmos icones .c49-icon do topbar, so que brancos/translucidos
   sobre o ceu do por-do-sol (nao o coral do topbar, que e sobre navy solido). */
.c49hero__redes .c49-contact-social{ display:flex; gap:.85rem; }
/* efeito hover: cresce no passar do mouse. transform NAO ocupa espaco no
   layout (ao contrario de mudar width/padding) — entao aumentar um NUNCA
   empurra o vizinho; o gap maior acima so da folga visual pro crescimento
   nao encostar em cima do icone do lado. */
.c49hero__redes .c49-social{ display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; padding:0!important; border-radius:9px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); text-decoration:none!important; transition:background .18s ease, border-color .18s ease, transform .18s cubic-bezier(.34,1.56,.64,1); }
.c49hero__redes .c49-social:hover{ background:rgba(255,255,255,.22); border-color:rgba(255,255,255,.34); transform:scale(1.18); }
.c49hero__redes .c49-icon{ color:#fff!important; font-size:.95rem; }
.c49hero__redes .c49-label{ display:none; } /* so os icones — a etiqueta ("Instagram") sobra na barra compacta */
/* [estrutura] dropdown de cidade: hero tem stacking proprio — sem esses z o
   dropdown fica atras das secoes seguintes */
.c49hero{ overflow:visible !important; position:relative !important; z-index:30 !important; }
.c49hero__search{ position:relative !important; z-index:100 !important; margin-top:1.6rem; }

/* ============================================================================
   4. BUSCA DO HERO — BARRA DE UMA LINHA SO (nao e um card empilhado igual aos
   outros modelos: rotulo minusculo + valor, tudo lado a lado, risco fino
   separando os segmentos, botao em pilula no fim — igual uma barra Airbnb).
   Em telas estreitas ela NUNCA empilha em quadro: rola na horizontal (1 linha
   sempre), com aparagem visual (fade) nas bordas indicando que ha mais.
   ========================================================================== */
.c49hero .c49hero__search{
  background:rgba(9,17,31,.5)!important; -webkit-backdrop-filter:blur(16px) saturate(1.25); backdrop-filter:blur(16px) saturate(1.25);
  border:1px solid rgba(255,255,255,.16)!important; border-radius:999px!important; box-shadow:0 30px 60px -32px rgba(3,8,17,.85)!important;
  padding:9px 10px 9px 26px!important; width:100%!important; max-width:100%!important; box-sizing:border-box!important;
}
/* [fix] "as opcoes da busca nao abrem": overflow-x:auto na .row cortava os
   dropdowns (por especificacao CSS, overflow-x != visible forca overflow-y a
   virar auto tambem — um dropdown que abre pra BAIXO, posicionado absolute,
   fica cortado pela propria .row, mesmo sem precisar de scroll horizontal
   nenhum). Tirado: a barra agora so tem 2 modos, nenhum deles rola —
   >=1200px cabe tudo numa linha (flex cresce pra ocupar o espaco); abaixo
   disso QUEBRA em grade (ver bloco mobile mais abaixo, agora ate 1199px). */
/* a barra usa a LINHA TODA: forca width:100% em cada envolucro ate a .row
   (o modulo nao estica sozinho — sem isso sobra espaco morto depois do botao) */
.c49hero__search .c49mod-search-basic, .c49hero__search form{ width:100%!important; max-width:100%; }
/* a LINHA (>=1200px): flex sem quebra, cresce pra ocupar o espaco */
.c49hero__search .row{
  display:flex!important; flex-wrap:nowrap!important; align-items:center!important; margin:0!important; width:100%!important;
  overflow:visible!important; padding:2px 0;
}
/* reset do grid Bootstrap em cada segmento; risco fino separando (ate o campo Valor).
   flex:1 = os campos de texto/dropdown CRESCEM pra dividir o espaco sobrando —
   e o que resolve o "esmagado" (antes eram flex:0 0 auto, so o minimo do conteudo). */
.c49hero__search .row > div{ flex:1 1 108px!important; min-width:108px; width:auto!important; max-width:none!important; padding:0 22px 0 0!important; margin:0 22px 0 0!important; border-right:1px solid rgba(255,255,255,.16); display:flex!important; align-items:center; }
.c49hero__search .row > div:nth-child(n+9){ border-right:0!important; padding-right:0!important; margin-right:14px!important; }
.c49hero__search .row.hidden, .c49hero__search .row > .hidden{ display:none!important; }
.c49hero__search .form-group, .c49hero__search fieldset{ margin:0!important; display:flex; flex-direction:column; justify-content:center; gap:2px; width:100%; }
.c49hero__search label{ color:rgba(255,255,255,.6)!important; font-size:.62rem!important; font-weight:700!important; letter-spacing:.08em; text-transform:uppercase; margin:0!important; white-space:nowrap; line-height:1.2; }
/* campo Codigo: so o input, sem rotulo, nao precisa crescer/exigir tanto quanto os outros */
.c49hero__search .row > div:nth-child(1){ flex:.55 1 76px!important; min-width:76px; }
.c49hero__search .row > div:nth-child(1) .form-control{ height:22px!important; }
/* controles: sem caixa propria (a barra toda e a caixa) */
.c49hero__search .form-control, .c49hero__search button.multiselect{ background:transparent!important; border:0!important; color:#fff!important; box-shadow:none!important; padding:0!important; width:100%; }
.c49hero__search .form-control{ height:18px!important; font-size:.86rem!important; line-height:1.2; }
.c49hero__search .form-control::placeholder{ color:rgba(255,255,255,.5)!important; }
.c49hero__search button.multiselect{ height:18px!important; font-size:.86rem!important; font-weight:600; text-align:left; white-space:nowrap; max-width:100%; overflow:hidden; text-overflow:ellipsis; display:block; }
.c49hero__search button.multiselect::after{ display:none!important; } /* caret padrao do Bootstrap — some, a onda ja indica interacao */
.c49hero__search .multiselect-selected-text{ color:#fff!important; }
.c49hero__search .btn-group.btn-multiselect{ display:block; width:100%; }
/* QUARTOS: 4 quadradinhos — conteudo fixo, nao precisa crescer (cresceria so o gap) */
.c49hero__search .row > div:nth-child(6){ flex:0 0 auto!important; flex-direction:column; }
.c49hero__search .btn-group-radio{ display:flex!important; gap:4px; }
.c49hero__search .btn-group-radio > .btn{ background:rgba(255,255,255,.08)!important; border:1px solid rgba(255,255,255,.2)!important; color:#fff!important; box-shadow:none!important; width:24px!important; height:24px!important; min-width:0!important; padding:0!important; font-size:.7rem!important; border-radius:7px!important; display:inline-flex; align-items:center; justify-content:center; }
.c49hero__search .btn-group-radio > .btn.active{ background:linear-gradient(118deg,#EE6C4D 0%, #0C7392 90%)!important; border-color:transparent!important; color:#fff!important; }
/* VALOR: R$ + min/max lado a lado — tambem conteudo fixo (2 inputs curtos) */
.c49hero__search .row > div:nth-child(7), .c49hero__search .row > div:nth-child(8){ flex:0 0 auto!important; width:168px!important; }
.c49hero__search .input-group{ display:flex!important; align-items:center; gap:4px; }
.c49hero__search .input-group-addon{ background:transparent!important; border:0!important; color:rgba(255,255,255,.6)!important; padding:0!important; font-size:.8rem!important; }
.c49hero__search .input-group input.form-control{ width:62px!important; }
.c49hero__search .dropdown-range .dropdown-toggle{ background:transparent!important; border:0!important; color:rgba(255,255,255,.45)!important; padding:0 0 0 2px!important; font-size:.72rem!important; }
/* "Buscar no mapa" TIRADO (pedido: ficava sem texto e desalinhado). O toggle
   view=2/mapa continua acessivel pelo botao de visualizacao da LISTAGEM. */
.c49hero__search .row > div:nth-child(9){ display:none!important; }
/* BUSCAR: pilula solida ANCORADA na ponta direita (margin-left:auto — garante
   que nunca sobra espaco morto depois dela, seja qual for o resto da largura) */
.c49hero__search .row > div:last-child{ flex:0 0 auto!important; margin-left:auto!important; margin-right:0!important; padding-right:0!important; }
.c49hero__search .c49btn-main{ background:linear-gradient(118deg,#EE6C4D 0%, #0C7392 88%)!important; border:0!important; border-radius:999px!important; height:46px!important; min-width:46px; width:auto!important; padding:0 1.3rem!important; font-weight:700!important; font-size:.87rem; letter-spacing:.01em; white-space:nowrap; box-shadow:0 14px 26px -12px rgba(238,108,77,.7)!important; display:inline-flex; align-items:center; justify-content:center; }
.c49hero__search .c49btn-main:hover{ filter:brightness(1.07); }
.c49hero__search .col-12.col-md-3{ width:auto!important; }
/* [fix] "largura ta ruim": o menu herdava a largura do BOTAO que abre ele —
   na barra compacta esses botoes sao estreitos (~108px), entao nomes de
   bairro/cidade mais longos ("Casa Blanca") cortavam. Largura PROPRIA, maior
   que qualquer botao da barra, independente de qual campo abriu o menu. */
.c49hero__search .dropdown-menu{ background:#fff!important; margin-top:14px!important; width:250px!important; min-width:250px!important; max-width:calc(100vw - 32px); }
/* [fix] "nao consigo ler": o menu abre com fundo BRANCO, mas os estilos da
   barra ESCURA (label branco translucido, checkbox translucido, input
   transparente+texto branco) vazam pra dentro dele — tudo escopado so em
   .c49hero__search, sem excecao pro popover aberto. Branco em fundo branco =
   invisivel. Reseta o conteudo do menu pro visual claro normal. */
.c49hero__search .dropdown-menu, .c49hero__search .dropdown-menu *{ color:#292b2c!important; }
.c49hero__search .dropdown-menu .form-control{ background:#f7f8fa!important; border:1px solid #e3e6ea!important; color:#292b2c!important; height:auto!important; font-size:.9rem!important; padding:.4rem .6rem!important; }
.c49hero__search .dropdown-menu .form-control::placeholder{ color:#9aa0aa!important; }
/* [fix] "ainda errado" (desalinhado mesmo sem nada marcado): o bootstrap.min.css
   tem ".custom-control-indicator{ top:.25rem }" pensado pra quando o indicador
   e position:absolute (puxa pra dentro do padding do label). Eu troquei pra
   relative (precisava pra centralizar o check dentro dele) — mas esse top
   antigo continuou valendo, so que agora como deslocamento RELATIVO: empurra
   a caixinha ~4px pra baixo do texto em vez de ficar parada. Zera aqui. */
.c49hero__search .dropdown-menu .custom-control-indicator{ background:#fff!important; border:1.5px solid #c7ccd3!important; position:relative!important; top:0!important; }
/* [fix] "LONGE da esquerda do inicio do quadro": a raiz de verdade — o
   bootstrap.min.css tem ".custom-control{padding-left:1.5rem}" (25px),
   respiro pensado pra o indicador ABSOLUTE entrar ali (left:0) e ficar colado
   na borda do label, com o texto vindo DEPOIS do respiro. Ao trocar o
   indicador pra relative (pro check centralizar) ele parou de "entrar" nesse
   respiro — vira um filho comum do flex, empurrado pra DEPOIS do padding
   inteiro. Resultado: ~40px de vao morto (10 do li + 5 do <a> + 25 do label)
   antes da caixinha comecar. Zera o padding do label — o gap real entre
   caixinha e texto ja vem do gap do proprio flex, nao precisa desse padding.
   [correcao] errado — conferi e o flex NAO tem gap nenhum; zerar o padding
   sozinho grudava caixinha e texto (0px de vao). Junto com o zero, um
   respiro proprio no texto. */
.c49hero__search .dropdown-menu label.custom-control{ padding-left:0!important; align-items:center!important; }
/* [fix] "o texto esta alinhado TOP com a caixa": o label (flex) nunca teve
   align-items definido -> "normal", que pro flex vale como "stretch". A
   caixinha (15x15 fixo) nao estica, mas o texto (sem altura propria) sim —
   fica do tamanho da LINHA toda, e o texto nasce no topo dessa caixa esticada
   (fluxo normal de texto sempre comeca em cima). Centro por centro batia por
   coincidencia (a caixa esticada e simetrica), mas visualmente a LETRA ficava
   no topo. align-items:center para de esticar e centraliza de verdade. */
.c49hero__search .dropdown-menu .custom-control-description{ margin-left:.5rem!important; }
/* [fix] "nao consigo ver qual opcao esta marcada": nao havia NENHUMA regra pro
   estado :checked — todos os circulos (radio de Transacao, checkbox de
   caracteristicas etc.) ficavam identicos. Marcado = preenche solido no
   acento do cliente + um ponto/check branco no meio, contraste inequivoco. */
.c49hero__search .dropdown-menu .custom-control-input:checked ~ .custom-control-indicator{ background:#0C7392 !important; border-color:#0C7392 !important; }
.c49hero__search .dropdown-menu .custom-control-input:checked ~ .custom-control-indicator::after{ content:""; position:absolute; opacity:1!important; }
/* radio (Transacao): pontinho branco centralizado. checkbox (caracteristicas): check branco fino.
   [fix] "segue desalinhado": mirava a classe do WRAPPER (.custom-radio /
   .custom-checkbox) — mas o modulo usa SEMPRE "custom-checkbox" no wrapper,
   radio ou nao (o que muda e uma 2a classe solta, "radio"/"checkbox", ou o
   type do input). .custom-radio nunca existia -> regra morta -> TODOS os
   itens (radio inclusive) caiam na regra de checkbox (tique dentro de bolinha
   redonda = essa "desalinhado" que ela via). Troca pra mirar o type real do
   input — nao depende de qual classe o modulo decidiu grudar no wrapper. */
.c49hero__search .dropdown-menu .custom-control-input[type="radio"]:checked ~ .custom-control-indicator::after{ top:50%; left:50%; width:6px; height:6px; margin:-3px 0 0 -3px; border-radius:50%; background:#fff; border:0; }
/* [fix] "completamente desalinhado": as posicoes (top:15%;left:32%) eram um
   chute que so bate certo pra um tamanho especifico de indicador — em outro
   tamanho o check sai do centro. Troca pra translate(-50%,-50%): centraliza
   pelo PROPRIO centro da forma, matematicamente certo pra qualquer tamanho. */
.c49hero__search .dropdown-menu .custom-control-input[type="checkbox"]:checked ~ .custom-control-indicator::after{ top:44%; left:50%; width:5px; height:9px; border:solid #fff; border-width:0 2px 2px 0; transform:translate(-50%,-50%) rotate(45deg); background:transparent; border-radius:0; }
.c49hero__search .dropdown-menu .multiselect-group{ color:#6b7280!important; font-weight:700; }

/* ===== <1200px: a barra QUEBRA em varias linhas (pedido original — no cel a
   rolagem horizontal escondia o botao Buscar; e cortava os dropdowns — ver
   fix acima). Vira um cartao com grade 2 colunas + botao Buscar em linha
   propria. Faixa ampliada ate 1199px (era so ate 767px) — abaixo de 1200px
   nao ha mais NENHUM cenario de rolagem, entao nao ha mais nada pra cortar. */
@media (max-width:1199px){
  .c49hero .c49hero__search{ border-radius:22px!important; padding:16px!important; }
  .c49hero__search .row{ flex-wrap:wrap!important; overflow:visible!important; gap:12px 14px; padding:0!important; }
  .c49hero__search .row > div{ flex:1 1 calc(50% - 7px)!important; min-width:0!important; width:auto!important; border-right:0!important; margin:0!important; padding:0 0 10px!important; border-bottom:1px solid rgba(255,255,255,.14); }
  .c49hero__search .row > div:nth-child(1){ flex:1 1 calc(50% - 7px)!important; }
  .c49hero__search .row > div:nth-child(6){ flex-direction:column; }
  .c49hero__search .row > div:nth-child(7), .c49hero__search .row > div:nth-child(8){ width:auto!important; }
  .c49hero__search .row > div:last-child{ flex:1 1 100%!important; margin:2px 0 0!important; padding:0!important; border-bottom:0!important; }
  .c49hero__search .c49btn-main{ width:100%!important; height:48px!important; font-size:.92rem!important; }
  .c49hero__search button.multiselect{ max-width:none; }
}

/* ===================== 5. TITULOS DE SECAO ===================== */
.c49-title{ border:0!important; background:transparent!important; box-shadow:none!important; padding:0!important; }
.c49-kicker, .c49paineis__kicker, .c49equipe__kicker, .c49mural__kicker{ display:inline-flex!important; align-items:center; gap:.62em; color:#0C7392; font-size:.78rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; margin-bottom:.5rem; }
.c49-kicker::before, .c49paineis__kicker::before, .c49equipe__kicker::before, .c49mural__kicker::before{
  content:""; width:27px; height:9px; flex:0 0 auto;
  background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 9'><path fill='none' stroke='%23EE6C4D' stroke-width='2' stroke-linecap='round' d='M1,5 C6,0.5 9,0.5 14,5 C19,9.5 22,9.5 27,5'/></svg>") no-repeat center/contain;
}
.c49-properties-title, .c49row-destaques h2, .c49-title--flex .c49-properties-title, .c49-title__head .c49-properties-title,
.c49paineis__titulo, .c49equipe__titulo, .c49mural__titulo{ font-family:'Fraunces','Georgia',serif!important; font-size:clamp(2.1rem,3.8vw,3.2rem)!important; font-weight:600!important; letter-spacing:-.015em!important; line-height:1.05!important; color:#14212f!important; margin:0; text-transform:none!important; }
.c49-title--flex{ display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:2.2rem; }
.c49-title--flex .c49-properties-title .fa, .c49-title--flex .c49-properties-title i{ display:none; }
.c49-title__btn{ display:inline-flex; align-items:center; background:transparent; border:1.6px solid #0C7392; color:#0C7392; border-radius:999px; padding:.62rem 1.7rem; font-weight:700; font-size:.9rem; line-height:1; white-space:nowrap; text-decoration:none!important; transition:background .16s ease, color .16s ease, border-color .16s ease; }
.c49-title__btn:hover{ background:linear-gradient(118deg,#EE6C4D 0%, #0C7392 84%); border-color:transparent; color:#fff!important; }

/* ===================== 6a. CARD IMERSIVO (LISTAGEM) ===================== */
.c49mod-properties-grid .c49-property-card.card{ position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-height:400px; border:0!important; border-radius:18px; overflow:hidden; box-shadow:0 14px 34px -20px rgba(14,27,46,.26); background:#0E1B2E; transition:transform .35s ease, box-shadow .35s ease; margin-bottom:24px; }
.c49mod-properties-grid .c49-property-card.card:hover{ transform:translateY(-6px); box-shadow:0 26px 52px -22px rgba(14,27,46,.42); }
.c49mod-properties-grid .c49-property-card a{ text-decoration:none; }
/* [estrutura] foto/carrossel full-bleed: cadeia de alturas + display SO no wrap
   (display no .carousel-item quebraria a transicao do Bootstrap) */
.c49mod-properties-grid .c49-property-card .c49-property-photo,
.c49mod-properties-grid .c49-property-card .card-img-top{ position:absolute!important; inset:0; z-index:0; margin:0!important; padding:0!important; border-radius:0!important; aspect-ratio:auto!important; height:100%; width:100%; overflow:hidden; }
.c49mod-properties-grid .c49-property-card .carousel,
.c49mod-properties-grid .c49-property-card .carousel-inner,
.c49mod-properties-grid .c49-property-card .carousel-item,
.c49mod-properties-grid .c49-property-card .c49-carousel-photo-wrap,
.c49mod-properties-grid .c49-property-card .c49-carousel-photo-wrap a{ height:100%!important; }
.c49mod-properties-grid .c49-property-card .c49-carousel-photo-wrap,
.c49mod-properties-grid .c49-property-card .c49-carousel-photo-wrap a{ display:block; }
.c49mod-properties-grid .c49-property-card .c49-carousel-photo-wrap img,
.c49mod-properties-grid .c49-property-card .c49-property-photo img{ width:100%!important; height:100%!important; object-fit:cover!important; border-radius:0!important; transition:transform .6s ease; }
.c49mod-properties-grid .c49-property-card:hover .c49-carousel-photo-wrap img,
.c49mod-properties-grid .c49-property-card:hover .c49-property-photo img{ transform:scale(1.06); }
.c49mod-properties-grid .c49-property-card .carousel-indicators,
.c49mod-properties-grid .c49-property-card .carousel-control-prev,
.c49mod-properties-grid .c49-property-card .carousel-control-next{ display:none!important; }
.c49mod-properties-grid .c49-property-card::after{ content:""!important; display:block!important; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(10,16,28,0) 34%, rgba(10,16,28,.5) 62%, rgba(7,12,21,.92) 100%); pointer-events:none; }
.c49mod-properties-grid .c49-property-card .c49-strip{ position:absolute!important; top:14px!important; left:14px!important; right:auto!important; bottom:auto!important; transform:none!important; width:auto!important; height:auto!important; z-index:3; background:#0C7392; color:#fff!important; border-radius:999px!important; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; padding:.34rem .8rem!important; box-shadow:0 8px 18px -10px rgba(0,0,0,.55); }
.c49mod-properties-grid .c49-property-card .c49-property-block{ position:relative!important; z-index:2; flex:0 0 auto; margin-top:auto!important; padding:1.1rem 1.2rem .35rem!important; background:transparent!important; }
.c49mod-properties-grid .c49-property-card .c49-property-block a{ color:#fff; }
.c49mod-properties-grid .c49-property-card .c49-property-title{ color:#fff!important; font-size:1.14rem; font-weight:700; line-height:1.28; text-shadow:0 2px 12px rgba(0,0,0,.45); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; margin:0 0 .6rem; min-height:0; }
.c49mod-properties-grid .c49-property-card .c49-property-resume{ display:none!important; }
.c49mod-properties-grid .c49-property-card .c49-property-code{ display:none!important; }
.c49mod-properties-grid .c49-property-card .c49-property-value{ display:inline-flex; align-items:baseline; gap:.25em; background:linear-gradient(118deg,#EE6C4D 0%, #0C7392 88%); color:#fff!important; font-size:1.05rem; font-weight:800; font-family:'Poppins',sans-serif!important; padding:.34rem .85rem!important; border-radius:999px!important; margin:0 .45rem .5rem 0!important; box-shadow:0 12px 24px -12px rgba(238,108,77,.75); }
/* [estrutura] precos vinham em position:absolute do imoveis.css — na listagem
   voltam pro fluxo e empilham com respiro */
.c49mod-properties-grid .c49-property-card .c49-property-value,
.c49mod-properties-grid .c49-property-card .c49-property-count1,
.c49mod-properties-grid .c49-property-card .c49-property-count2{ position:relative!important; top:auto!important; left:auto!important; }
.c49mod-properties-grid .c49-property-card .c49-currency,
.c49mod-properties-grid .c49-property-card .c49-property-value .c49-currency{ font-size:.72rem; font-weight:600; color:rgba(255,255,255,.9)!important; }
.c49mod-properties-grid .c49-property-card .valorDesc{ color:rgba(255,255,255,.8)!important; }
.c49mod-properties-grid .c49-property-card .valorDesc:empty{ display:none; }
.c49mod-properties-grid .c49-property-card .text-muted{ color:rgba(255,255,255,.8)!important; }
.c49mod-properties-grid .c49-property-card .card-footer{ position:relative!important; z-index:2; margin-top:0!important; background:transparent!important; border:0!important; border-top:0!important; padding:.15rem 1.2rem 1.1rem!important; }
.c49mod-properties-grid .c49-property-card .c49-property-numbers{ justify-content:flex-start!important; flex-wrap:wrap; gap:.3rem .85rem; }
.c49mod-properties-grid .c49-property-card .c49-property-number-wrap{ display:flex; align-items:center; gap:.4em; color:#fff; font-size:.85rem; }
.c49mod-properties-grid .c49-property-card .c49-property-number-wrap [class^="c49icon"],
.c49mod-properties-grid .c49-property-card .c49-property-number-wrap [class*=" c49icon"]{ color:#fff!important; opacity:.85; font-size:1.08em; }
.c49mod-properties-grid .c49-property-card .c49-property-number{ font-weight:600; color:#fff; font-family:'Poppins',sans-serif!important; }
.c49mod-properties-grid .c49-property-card .c49-num-lbl{ display:none; }
.c49mod-properties-grid .c49-property-card .btn-group{ display:none!important; }
/* [estrutura] variante hover-infos (grade do perfil do corretor): infos sempre visiveis */
.c49mod-properties_hover-infos.c49mod-properties-grid .card .card-block.c49-property-block{ opacity:1!important; height:auto!important; position:relative!important; inset:auto!important; margin-top:auto!important; background:transparent!important; padding:1.1rem 1.2rem .35rem!important; }
.c49mod-properties_hover-infos.c49mod-properties-grid .card:hover .card-block.c49-property-block{ background:transparent!important; top:auto!important; left:auto!important; }

/* ===================== 6b. CARDS DA INDEX (destaques — brancos sobre areia) ===================== */
.c49row-destaques .c49mod-properties-grid .c49-property-card{ position:relative; display:flex; flex-direction:column; justify-content:flex-start!important; min-height:0!important; background:#fff!important; border:1px solid #EAE2D2!important; border-radius:18px!important; overflow:hidden; box-shadow:0 14px 34px -20px rgba(14,27,46,.18)!important; transition:transform .2s ease, box-shadow .2s ease; }
.c49row-destaques .c49mod-properties-grid .c49-property-card:hover{ transform:translateY(-3px); box-shadow:0 24px 46px -20px rgba(14,27,46,.28)!important; }
.c49row-destaques .c49mod-properties-grid .c49-property-card::after{ display:none!important; }
.c49row-destaques .c49mod-properties-grid .c49-property-card .c49-property-photo{ position:relative!important; inset:auto!important; width:100%; height:auto!important; margin:0!important; padding:0!important; border-radius:0!important; overflow:hidden; aspect-ratio:16/10!important; background:#EFE9DC; flex:0 0 auto; z-index:auto!important; }
.c49row-destaques .c49mod-properties-grid .c49-property-card .c49-property-photo .carousel, .c49row-destaques .c49mod-properties-grid .c49-property-card .c49-property-photo .carousel-inner, .c49row-destaques .c49mod-properties-grid .c49-property-card .c49-property-photo .carousel-item{ height:100%!important; }
.c49row-destaques .c49mod-properties-grid .c49-property-card .c49-property-photo img{ width:100%!important; height:100%!important; object-fit:cover!important; border-radius:0!important; }
.c49row-destaques .c49mod-properties-grid .c49-property-card .c49-strip{ position:absolute!important; top:14px!important; right:14px!important; left:auto!important; bottom:auto!important; transform:none!important; width:auto!important; max-width:none!important; height:auto!important; z-index:3; background:#0E1B2E; color:#fff!important; border-radius:6px!important; padding:.45rem 1rem!important; font-size:.64rem; font-weight:700; text-transform:uppercase; letter-spacing:.2em; text-align:center; white-space:nowrap; box-shadow:0 10px 24px -10px rgba(0,0,0,.5); }
.c49row-destaques .c49mod-properties-grid .c49-property-card .c49-property-block{ position:static!important; z-index:auto; margin:0!important; padding:1.15rem 1.25rem .5rem!important; background:transparent!important; flex:1 1 auto; }
.c49row-destaques .c49mod-properties-grid .c49-property-card .c49-property-block a{ color:#14212f; }
.c49row-destaques .c49mod-properties-grid .c49-property-card .c49-property-title{ color:#14212f!important; font-size:1.08rem; font-weight:700; line-height:1.32; text-shadow:none!important; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; margin:0 0 .55rem; min-height:2.85em; }
.c49row-destaques .c49mod-properties-grid .c49-property-card .c49-property-resume{ display:none!important; }
/* preco em CORAL (por-do-sol) */
.c49row-destaques .c49mod-properties-grid .c49-property-card .c49-property-value{ display:inline-flex; align-items:baseline; gap:.2em; background:none!important; color:#D8542F!important; font-size:1.38rem; font-weight:800; font-family:'Poppins',sans-serif!important; padding:0!important; margin:.35rem 0 0!important; border-radius:0!important; box-shadow:none!important; }
/* [estrutura] na INDEX o preco fica no absolute original (fora do card, coberto
   pelo overflow) — o preco visivel e o .c49-property-count */
.c49row-destaques .c49mod-properties-grid .c49-property-card .c49-property-value{ position:absolute!important; top:-45px!important; }
.c49row-destaques .c49mod-properties-grid .c49-property-card .c49-property-count2{ position:absolute!important; top:-80px!important; }
.c49row-destaques .c49mod-properties-grid .c49-property-card .c49-currency, .c49row-destaques .c49mod-properties-grid .c49-property-card .c49-property-value .c49-currency{ color:#D8542F!important; font-size:.86rem; font-weight:700; }
.c49row-destaques .c49mod-properties-grid .c49-property-card .valorDesc{ color:#8f8676!important; font-size:.8rem; font-weight:600; }
.c49row-destaques .c49mod-properties-grid .c49-property-card .text-muted{ color:#8f8676!important; }
.c49row-destaques .c49mod-properties-grid .c49-property-card .c49-property-code{ display:none!important; }
.c49row-destaques .c49mod-properties-grid .c49-property-card .card-footer{ position:static!important; margin:0!important; background:transparent!important; border:0!important; border-top:1px solid #F0EADC!important; padding:.8rem 1.25rem!important; }
.c49row-destaques .c49mod-properties-grid .c49-property-card .c49-property-numbers{ justify-content:flex-start!important; flex-wrap:wrap; gap:.3rem 1rem; }
.c49row-destaques .c49mod-properties-grid .c49-property-card .c49-property-number-wrap{ display:flex; align-items:center; gap:.4em; color:#5b6472; font-size:.86rem; }
.c49row-destaques .c49mod-properties-grid .c49-property-card .c49-property-number-wrap [class^="c49icon"], .c49row-destaques .c49mod-properties-grid .c49-property-card .c49-property-number-wrap [class*=" c49icon"]{ color:#0C7392 !important; opacity:1!important; font-size:1.05em; }
.c49row-destaques .c49mod-properties-grid .c49-property-card .c49-property-number{ font-weight:700; color:#14212f; font-family:'Poppins',sans-serif!important; }
.c49row-destaques .c49mod-properties-grid .c49-property-card .c49-num-lbl{ display:none; }
.c49row-destaques .c49mod-properties-grid .c49-property-card .btn-group{ display:none!important; }

/* ===================== 7. BAIRROS — postais ===================== */
.c49paineis{ margin-block:0; }
.c49paineis__head{ margin-bottom:26px; }
.c49paineis__titulo{ position:relative; padding-bottom:14px; margin:0 0 10px!important; }
.c49paineis__titulo::after{ content:""; position:absolute; left:0; bottom:0; width:62px; height:11px; background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 12'><path fill='none' stroke='%23EE6C4D' stroke-width='3.4' stroke-linecap='round' d='M2,7 C12,1 22,1 32,7 C42,13 52,13 62,7 C68,3.6 73,2.6 78,4'/></svg>") no-repeat left center/contain; }
.c49paineis__sub{ margin:0; font-size:.9rem; color:#77705f; }
.c49paineis__trilha{ display:flex; gap:10px; height:clamp(320px,42vw,440px); }
.c49painel{ position:relative; flex:1 1 0; min-width:0; overflow:hidden; border-radius:18px; text-decoration:none; background:#0E1B2E; isolation:isolate; transition:flex-grow .55s cubic-bezier(.22,.61,.36,1); }
.c49paineis__trilha:hover .c49painel.is-inicial{ flex-grow:1; }
.c49painel:hover, .c49painel:focus-visible, .c49painel.is-inicial{ flex-grow:4.2; }
.c49painel:focus-visible{ outline:3px solid #0C7392; outline-offset:3px; }
.c49painel__foto{ position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.22,.61,.36,1); }
.c49painel:hover .c49painel__foto{ transform:scale(1.06); }
.c49painel__veu{ position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(10,14,22,.2) 0%,rgba(10,14,22,.46) 45%,rgba(10,14,22,.88) 100%); transition:background .4s ease; }
/* a onda no pe de cada postal */
.c49painel::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:10px; z-index:1; pointer-events:none; opacity:.9; background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 20' preserveAspectRatio='none'><g fill='none' stroke='%23F4EFE6' stroke-width='4'><path d='M0,6 C13,-1 27,-1 40,6 C53,13 67,13 80,6 C93,-1 107,-1 120,6 C133,13 147,13 160,6'/></g></svg>") repeat-x left bottom/120px 100%; }
.c49painel__vertical{ position:absolute; left:50%; bottom:22px; transform:translateX(-50%) rotate(180deg); writing-mode:vertical-rl; font-family:'Fraunces','Georgia',serif; font-size:.95rem; font-weight:600; letter-spacing:.08em; color:#fff; white-space:nowrap; text-shadow:0 2px 12px rgba(0,0,0,.5); opacity:1; transition:opacity .3s ease; pointer-events:none; }
.c49painel:hover .c49painel__vertical, .c49painel:focus-visible .c49painel__vertical, .c49painel.is-inicial .c49painel__vertical{ opacity:0; }
.c49paineis__trilha:hover .c49painel.is-inicial .c49painel__vertical{ opacity:1; }
.c49painel.is-inicial:hover .c49painel__vertical{ opacity:0; }
.c49painel__conteudo{ position:absolute; left:0; right:0; bottom:0; display:flex; flex-direction:column; align-items:flex-start; gap:6px; padding:22px; opacity:0; transform:translateY(10px); transition:opacity .35s ease .1s, transform .35s ease .1s; }
.c49painel:hover .c49painel__conteudo, .c49painel:focus-visible .c49painel__conteudo, .c49painel.is-inicial .c49painel__conteudo{ opacity:1; transform:none; }
.c49paineis__trilha:hover .c49painel.is-inicial .c49painel__conteudo{ opacity:0; transform:translateY(10px); }
.c49painel.is-inicial:hover .c49painel__conteudo{ opacity:1; transform:none; }
.c49painel__cidade{ font-family:'Poppins',sans-serif; font-size:.64rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.82); }
.c49painel__nome{ font-family:'Fraunces','Georgia',serif; font-size:clamp(1.4rem,2.3vw,1.9rem); font-weight:600; letter-spacing:-.01em; line-height:1.08; color:#fff; text-shadow:0 2px 16px rgba(0,0,0,.45); }
.c49painel__n{ font-size:.8rem; font-weight:600; font-family:'Poppins',sans-serif; color:#fff; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.28); backdrop-filter:blur(6px); padding:4px 11px; border-radius:100px; }
.c49painel__cta{ margin-top:8px; font-family:'Poppins',sans-serif; font-size:.74rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#fff; padding:9px 16px; border-radius:9px; background:linear-gradient(118deg,#EE6C4D 0%, #0C7392 88%); transition:filter .16s ease; }
.c49painel:hover .c49painel__cta{ filter:brightness(1.1); }
@media (max-width:899px){ .c49paineis__trilha{ display:grid; grid-template-columns:repeat(2,1fr); height:auto; gap:12px; } .c49painel{ flex:none; height:210px; } .c49painel:hover,.c49painel.is-inicial{ flex-grow:0; } .c49painel__vertical{ display:none; } .c49painel__conteudo{ opacity:1; transform:none; padding:16px; } .c49painel__cta{ display:none; } .c49paineis__sub{ display:none; } }
@media (max-width:519px){ .c49paineis__trilha{ grid-template-columns:1fr; } .c49painel{ height:180px; } }

/* ===================== 8. EQUIPE (pedra portuguesa) + DEPOIMENTOS (aspa) ===================== */
.c49row-equipe{ position:relative; }
.c49row-equipe::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.55;
  background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><rect width='32' height='32' fill='%23EDE4D5'/><g fill='%23FBF6EC'><path d='M1,1 L8,2 L7,8 L2,7 Z'/><path d='M10,2 L16,1 L17,7 L11,8 Z'/><path d='M19,1 L25,2 L24,8 L18,7 Z'/><path d='M27,2 L31,1 L31,7 L26,8 Z'/><path d='M2,10 L7,11 L8,17 L1,16 Z'/><path d='M10,11 L17,10 L16,16 L9,17 Z'/><path d='M19,10 L25,11 L26,17 L18,16 Z'/><path d='M28,11 L31,10 L31,16 L27,17 Z'/><path d='M1,19 L7,20 L8,26 L2,25 Z'/><path d='M10,20 L16,19 L17,25 L11,26 Z'/><path d='M19,19 L25,20 L24,26 L18,25 Z'/><path d='M27,20 L31,19 L31,25 L26,26 Z'/><path d='M2,28 L8,29 L7,31 L1,31 Z'/><path d='M11,29 L17,28 L16,31 L10,31 Z'/><path d='M19,28 L25,29 L24,31 L18,31 Z'/><path d='M27,29 L31,28 L31,31 L26,31 Z'/></g></svg>") repeat left top/54px 54px;
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.95) 0%,rgba(0,0,0,0) 64%);
  mask-image:linear-gradient(180deg,rgba(0,0,0,.95) 0%,rgba(0,0,0,0) 64%);
}
.c49row-equipe > *{ position:relative; z-index:1; }
.c49row-depoimentos{ position:relative; overflow:hidden; }
.c49row-depoimentos::before{ content:"\201C"; position:absolute; right:4%; top:-.18em; z-index:0; pointer-events:none; font-family:'Fraunces','Georgia',serif; font-size:clamp(190px,26vw,340px); line-height:1; color:rgba(238,108,77,.13); user-select:none; }
.c49row-depoimentos > *{ position:relative; z-index:1; }

/* Cristo Redentor: TIRADO daqui. 3 tentativas (silhueta pequena, montanha,
   contorno) e nenhuma convenceu — a ultima leu como "boneco de posto". A
   identidade do Rio no modelo fica de pe sem ele: calcadao (footer/hero/
   paineis), a cena do bondinho+Pao de Acucar no hero, o por-do-sol. */

/* [fix] "quadro feio no celular": o TEMA-BASE fixa .c49wacta__txt com
   flex-basis:420px (pensado como LARGURA, pro desktop — .c49wacta__in em row).
   Abaixo de 768px o proprio tema muda .c49wacta__in pra flex-direction:column,
   e o MESMO 420px passa a valer como ALTURA — o bloco de texto fica esticado
   verticalmente, com o conteudo real (~120px) grudado em cima e um vao vazio
   enorme antes do botao "Falar no WhatsApp". flex-grow:0 sozinho nao resolve
   (o basis fixo ja segura o tamanho); flex-basis:auto deixa medir pelo
   conteudo de verdade. So no mobile — desktop fica intacto. */
@media (max-width:767px){
  .c49wacta__txt{ flex-grow:0!important; flex-basis:auto!important; }
}

/* ===================== 9. FOOTER (navy + calcadao no topo) ===================== */
.c49row-footer, .c49row-copyright{ background:#0E1B2E; }
.c49row-footer{ position:relative; padding:calc(clamp(44px,5vw,68px) + 30px) 0 2.4rem!important; }
.c49row-footer::before{
  content:""; position:absolute; left:0; right:0; top:0; height:28px; z-index:1; pointer-events:none;
  background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 56' preserveAspectRatio='none'><rect width='320' height='56' fill='%23F4EFE6'/><g fill='none' stroke='%230E1B2E' stroke-width='13'><path d='M0,0 C26,0 54,38 80,38 C106,38 134,0 160,0 C186,0 214,38 240,38 C266,38 294,0 320,0'/><path d='M0,26 C26,26 54,64 80,64 C106,64 134,26 160,26 C186,26 214,64 240,64 C266,64 294,26 320,26'/></g></svg>") repeat-x left top/300px 100%;
}
.c49row-footer .c49mod-image img{ max-height:64px; width:auto; }
.c49row-footer .c49foot-brand{ padding-right:2rem; }
.c49row-footer .c49foot-tag{ color:#a9aeb8!important; font-size:.93rem; line-height:1.6; margin:1.25rem 0 1.35rem; max-width:330px; }
.c49row-footer .c49foot-wa{ display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:12px; background:rgba(255,255,255,.08); color:#fff!important; font-size:1.15rem; text-decoration:none!important; transition:background .15s ease; }
.c49row-footer .c49foot-wa:hover{ background:linear-gradient(118deg,#EE6C4D 0%, #0C7392 88%); }
.c49row-footer .c49foot-wa i{ color:#fff!important; }
/* titulos das colunas: onda areia */
.c49row-footer .c49mv-title, .c49row-footer h3, .c49row-footer .c49-contact-title, .c49row-footer .c49mod-menu-basic .c49-title{ color:#fff!important; font-size:1.02rem; font-weight:600; font-family:'Fraunces','Georgia',serif; margin:0 0 1.15rem; position:relative; padding-bottom:.7rem; background:transparent!important; border:0!important; }
.c49row-footer .c49mv-title::after, .c49row-footer h3::after, .c49row-footer .c49-contact-title::after, .c49row-footer .c49mod-menu-basic .c49-title::after{ content:""; position:absolute; left:0; bottom:0; width:48px; height:9px; background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 12'><path fill='none' stroke='%23F0A07E' stroke-width='3.4' stroke-linecap='round' d='M2,7 C12,1 22,1 32,7 C42,13 52,13 62,7 C68,3.6 73,2.6 78,4'/></svg>") no-repeat left center/contain; }
.c49row-footer .c49foot-links{ display:flex; flex-direction:column; gap:.75rem; }
.c49row-footer .c49foot-links a{ color:#b7bcc5!important; font-size:.93rem; text-decoration:none!important; transition:color .15s ease, padding-left .15s ease; }
.c49row-footer .c49foot-links a:hover{ color:#fff!important; padding-left:3px; }
.c49row-footer .c49mod-menu-vertical-basic .menu-area{ display:flex; flex-direction:column; gap:.75rem; }
.c49row-footer .c49mod-menu-vertical-basic a{ color:#b7bcc5!important; font-size:.93rem; text-decoration:none!important; transition:color .15s ease; }
.c49row-footer .c49mod-menu-vertical-basic a:hover{ color:#fff!important; padding-left:3px; }
.c49row-footer .c49mod-menu-vertical-basic a i, .c49row-footer .c49mv-title i{ display:none!important; }
/* [estrutura] colunas de nav em menu/basic: derruba o visual de botao */
.c49row-footer .c49mod-menu-basic .btn-group-vertical{ display:flex!important; flex-direction:column!important; align-items:flex-start; gap:.75rem; }
.c49row-footer .c49mod-menu-basic .btn.btn-secondary{ display:block!important; width:auto!important; min-height:0!important; text-align:left!important; background:transparent!important; border:0!important; box-shadow:none!important; padding:0!important; margin:0!important; border-radius:0!important; color:#b7bcc5!important; font-size:.93rem!important; font-weight:400!important; line-height:1.4!important; text-decoration:none!important; transition:color .15s ease, padding-left .15s ease; }
.c49row-footer .c49mod-menu-basic .btn.btn-secondary:hover{ color:#fff!important; padding-left:3px; background:transparent!important; }
.c49row-footer a, .c49row-footer p, .c49row-footer span, .c49row-footer li, .c49row-footer .c49-phone{ color:#b7bcc5!important; }
.c49row-footer .c49-phone:hover, .c49row-footer a:hover{ color:#fff!important; }
.c49row-footer i, .c49row-footer .c49-icon, .c49row-footer .c49-phone i{ color:#F0A07E !important; }
/* [estrutura] contato: telefones empilhados, tudo a esquerda */
.c49row-footer .c49-contact-phone, .c49row-footer .c49-contact-email, .c49row-footer .c49-contact-address{ display:flex!important; flex-direction:column!important; align-items:flex-start!important; gap:.55rem; width:auto!important; margin:0 0 .55rem!important; padding:0!important; }
.c49row-footer .c49-phone, .c49row-footer .c49-email{ display:flex!important; align-items:center; justify-content:flex-start!important; text-align:left!important; gap:.6em; width:auto!important; padding:0!important; margin:0!important; }
.c49row-footer .c49-label, .c49row-footer .c49-label.align-middle{ display:inline!important; text-align:left!important; }
.c49row-footer .c49-contact-email a, .c49row-footer .c49-contact-phone a, .c49row-footer .c49-phone a, .c49row-footer .c49-email a{ padding:0!important; margin:0!important; }
.c49row-copyright{ border-top:1px solid rgba(255,255,255,.1); padding:1.5rem 0!important; }
.c49row-copyright, .c49row-copyright *{ color:#8b919c!important; font-size:.85rem!important; }
.c49row-copyright a{ color:#b7bcc5!important; }
.c49row-copyright a:hover{ color:#fff!important; }

/* ===================== 10. INTERNAS ===================== */
/* breadcrumb com a ondinha na frente */
.c49mod-breadcrumb-basic{ display:block; padding-top:1.6rem!important; padding-bottom:.4rem!important; }
.c49mod-breadcrumb-basic .breadcrumb{ background:transparent!important; padding:.15rem 0!important; margin:0!important; display:flex!important; flex-wrap:wrap!important; align-items:center; gap:.2rem .55rem; border-radius:0; }
.c49mod-breadcrumb-basic .breadcrumb::before{ content:""; display:inline-block; width:24px; height:8px; margin-right:.35rem; flex:0 0 auto; background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 9'><path fill='none' stroke='%23EE6C4D' stroke-width='2' stroke-linecap='round' d='M1,5 C6,0.5 9,0.5 14,5 C19,9.5 22,9.5 27,5'/></svg>") no-repeat center/contain; }
.c49mod-breadcrumb-basic .breadcrumb-item{ display:inline-flex; align-items:center; gap:.42em; color:#6f6a5d!important; font-size:.86rem; font-weight:600; text-decoration:none!important; transition:color .16s ease; }
.c49mod-breadcrumb-basic .breadcrumb-item + .breadcrumb-item::before{ content:"/"!important; float:none!important; color:#cdc6b4!important; padding:0 .55rem 0 0!important; }
.c49mod-breadcrumb-basic .breadcrumb-item + .breadcrumb-return::before{ content:none!important; padding:0!important; }
.c49mod-breadcrumb-basic .breadcrumb-item i{ color:#0C7392 !important; }
.c49mod-breadcrumb-basic .breadcrumb-item:hover{ color:#0C7392 !important; }
.c49mod-breadcrumb-basic .breadcrumb-return{ margin-left:auto; }
/* cabecalho da listagem */
.c49mod-properties-header-basic .card{ background:#fff!important; border:1px solid #EAE2D2!important; border-radius:16px!important; box-shadow:0 10px 30px -22px rgba(14,27,46,.25)!important; position:relative; overflow:hidden; }
.c49mod-properties-header-basic .card::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:4px; pointer-events:none; background:linear-gradient(90deg,#EE6C4D 0%, #0C7392 100%); }
.c49mod-properties-header-basic .card-block{ display:flex!important; align-items:center; gap:.7rem 1rem; padding:.95rem 1.25rem!important; flex-wrap:wrap; }
.c49mod-properties-header-basic .c49-filter-number{ color:#0C7392 !important; font-family:'Fraunces','Georgia',serif; font-size:1.8rem; font-weight:600; line-height:1; }
.c49mod-properties-header-basic .c49-filter-title{ color:#14212f!important; font-family:'Fraunces','Georgia',serif; font-size:1.25rem; font-weight:600; margin:0!important; }
.c49mod-properties-header-basic .c49-filter-options{ margin-left:auto; display:flex; align-items:center; gap:.55rem; flex-wrap:wrap; }
.c49mod-properties-header-basic .c49-filter-options .btn-group{ display:inline-flex; gap:6px; }
.c49mod-properties-header-basic .c49-filter-options .btn-group > .btn{ margin:0!important; }
.c49mod-properties-header-basic .btn.btn-secondary{ background:#F4F1E8!important; border:1px solid #E5DECB!important; color:#5b6472!important; border-radius:10px!important; min-width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; padding:0 .7rem!important; box-shadow:none!important; transition:background .16s ease, color .16s ease, border-color .16s ease; }
.c49mod-properties-header-basic .btn.btn-secondary:hover{ background:#ECE6D6!important; color:#14212f!important; }
.c49mod-properties-header-basic .btn.btn-secondary.active{ background:#0C7392 !important; border-color:#0C7392 !important; color:#fff!important; box-shadow:0 8px 18px -8px rgba(12,115,146,.7)!important; }
.c49mod-properties-header-basic .btn.btn-secondary.dropdown-toggle{ min-width:0; gap:.5em; padding:0 1rem!important; font-size:.85rem; font-weight:600; }
.c49mod-properties-header-basic .btn.btn-secondary.dropdown-toggle i{ color:#0C7392 !important; }
.c49mod-properties-header-basic .btn.btn-secondary.dropdown-toggle:hover i{ color:#14212f!important; }
.c49mod-properties-header-basic .dropdown-menu{ border:1px solid #EAE2D2!important; border-radius:12px!important; box-shadow:0 18px 40px -20px rgba(14,27,46,.32)!important; padding:.4rem!important; }
.c49mod-properties-header-basic .dropdown-item{ border-radius:8px; font-size:.88rem; }
.c49mod-properties-header-basic .dropdown-item:hover, .c49mod-properties-header-basic .dropdown-item.active{ background:rgba(12,115,146,.1)!important; color:#0C7392 !important; }
/* card-headers claros (o default pintaria de navy) */
.card-header{ background:#fff!important; border:0!important; border-bottom:1px solid #F0EADC!important; padding:1rem 1.25rem!important; }
.card-header, .card-header > *, .card-header a, .card-header .c49-card-title, .card-header .c49-card-title a, .card-header h1, .card-header h2, .card-header h3, .card-header h4, .card-header h5{ color:#14212f!important; background:transparent!important; font-family:'Fraunces','Georgia',serif; }
.card-header .c49-card-title, .card-header h1, .card-header h2, .card-header h3, .card-header h4, .card-header h5{ font-weight:600!important; }
/* [fix] icones fa-* nos titulos de card (Solicite/Mapa/Veja tambem) tiveram 3
   tentativas de estilizacao (cor, tamanho, peso) e nenhuma ficou boa — o
   font-weight:400 ainda quebrou o glyph (virou um quadradinho, "por baixo do
   texto"). A MAIORIA dos titulos da ficha (Fotos do imovel, Corretor
   responsavel) nunca teve icone nenhum — so texto + a onda embaixo. Em vez de
   insistir, o icone SOME em todos, ficando consistente com o padrao que ja
   funciona em todo o resto da pagina. */
.card-header i{ display:none!important; }
/* molduras dos cards internos (form/filtro/contato/ficha) — nunca card de imovel */
[class*="c49wrap-card"], :is(#c49page-imovel,#c49page-inmueble,#c49page-property) .c49mod-property-header-basic .card{ border:1px solid #EAE2D2!important; border-radius:16px!important; box-shadow:0 12px 34px -24px rgba(14,27,46,.22)!important; overflow:hidden; }
/* FICHA: titulos com a ONDA (body id traduzido -> :is pt/es/en) */
/* [fix] alinhamento inconsistente: .c49-card-title e inline-block, entao a
   posicao dele (esquerda/centro) vem do text-align do PAI (.card-header) — que
   eu nunca fixava, e cada modulo (galeria/corretor/formulario) parece herdar
   um valor diferente de algum outro ancestral. Padronizado: CENTRO em todos. */
:is(#c49page-imovel,#c49page-inmueble,#c49page-property) .card-header{ text-align:center!important; }
:is(#c49page-imovel,#c49page-inmueble,#c49page-property) .card-header > .c49-card-title{ display:inline-block; position:relative; text-align:center; }
:is(#c49page-imovel,#c49page-inmueble,#c49page-property) .card-header > .c49-card-title::after{ content:""; display:block; width:62px; height:11px; margin:.55rem auto 0; background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 12'><path fill='none' stroke='%23EE6C4D' stroke-width='3.4' stroke-linecap='round' d='M2,7 C12,1 22,1 32,7 C42,13 52,13 62,7 C68,3.6 73,2.6 78,4'/></svg>") no-repeat center/contain; }
:is(#c49page-imovel,#c49page-inmueble,#c49page-property) .slider-pro-tab{ border:0!important; }
:is(#c49page-imovel,#c49page-inmueble,#c49page-property) .slider-pro-tab .nav-link{ background:transparent!important; border:0!important; padding:0 0 .6rem!important; margin-right:1.5rem; color:#9a937f!important; font-family:'Fraunces','Georgia',serif; font-weight:600; font-size:1.15rem; position:relative; }
:is(#c49page-imovel,#c49page-inmueble,#c49page-property) .slider-pro-tab .nav-link.active{ color:#14212f!important; }
:is(#c49page-imovel,#c49page-inmueble,#c49page-property) .slider-pro-tab .nav-link.active::after{ content:""; position:absolute; left:0; bottom:0; width:44px; height:9px; background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 12'><path fill='none' stroke='%23EE6C4D' stroke-width='3.4' stroke-linecap='round' d='M2,7 C12,1 22,1 32,7 C42,13 52,13 62,7 C68,3.6 73,2.6 78,4'/></svg>") no-repeat left center/contain; }
/* titulos custom da ficha (c49imv/c49cor) tambem com a onda */
/* [fix] mesmo alinhamento inconsistente do card-header, aqui pelo motivo
   oposto: nunca tinha text-align nenhum (bloco cai no padrao esquerda do
   navegador) e a onda era absolute+left:0 (colada na esquerda sempre). Agora
   os titulos "soltos" da ficha (Sobre, Detalhes, Condominio, Corretor
   responsavel...) tambem ficam centralizados, no mesmo padrao. */
.c49imv__titulo, .c49cor__titulo{ font-family:'Fraunces','Georgia',serif!important; font-weight:600!important; position:relative; padding-bottom:14px; text-align:center; }
.c49imv__titulo::after, .c49cor__titulo::after{ content:""; position:absolute; left:50%; transform:translateX(-50%); bottom:0; width:62px; height:11px; background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 12'><path fill='none' stroke='%23EE6C4D' stroke-width='3.4' stroke-linecap='round' d='M2,7 C12,1 22,1 32,7 C42,13 52,13 62,7 C68,3.6 73,2.6 78,4'/></svg>") no-repeat center/contain; }
/* aba "Fotos/Video/Condominio" da galeria: a lista de abas centralizada no
   card, pro conjunto ter o mesmo peso visual dos titulos centralizados. */
:is(#c49page-imovel,#c49page-inmueble,#c49page-property) .slider-pro-tab{ display:flex!important; justify-content:center!important; flex-wrap:wrap; }
:is(#c49page-imovel,#c49page-inmueble,#c49page-property) .slider-pro-tab .nav-item{ margin:0 .75rem; }
:is(#c49page-imovel,#c49page-inmueble,#c49page-property) .slider-pro-tab .nav-link{ margin-right:0!important; }
/* filtro da listagem */
.c49mod-properties-filter-basic > .card{ border:1px solid #EAE2D2!important; border-radius:16px!important; box-shadow:0 12px 34px -24px rgba(14,27,46,.22)!important; overflow:visible!important; } /* [estrutura] overflow visivel: dropdowns dos multiselects */
.c49mod-properties-filter-basic #accordion .card, .c49mod-properties-filter-basic #accordion .card-header{ border-left:0!important; border-right:0!important; border-radius:0!important; box-shadow:none!important; }
.c49mod-properties-filter-basic #accordion > .card:first-child .card-header{ border-top:0!important; }
/* [estrutura] .c49-card-title existe 2x (div e h3) — onda so no div externo, centrada */
.c49mod-properties-filter-basic .card-header > .c49-card-title{ display:block; text-align:center; position:relative; }
.c49mod-properties-filter-basic .card-header .c49-card-title > a{ display:flex; align-items:center; justify-content:center; position:relative; }
.c49mod-properties-filter-basic .card-header .c49-card-title h3{ margin:0!important; }
.c49mod-properties-filter-basic .card-header > .c49-card-title::after{ content:""; display:block; width:44px; height:9px; margin:.55rem auto 0; background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 12'><path fill='none' stroke='%23EE6C4D' stroke-width='3.4' stroke-linecap='round' d='M2,7 C12,1 22,1 32,7 C42,13 52,13 62,7 C68,3.6 73,2.6 78,4'/></svg>") no-repeat center/contain; }
/* [estrutura] caret do accordion (mobile) + desktop travado aberto */
.c49mod-properties-filter-basic .card-header .c49-card-title > a::after{ content:""; position:absolute; right:.1rem; top:50%; width:9px; height:9px; border-right:2px solid #a39c88; border-bottom:2px solid #a39c88; transform:translateY(-60%) rotate(45deg); transition:transform .2s ease; }
.c49mod-properties-filter-basic .card-header .c49-card-title > a[aria-expanded="true"]::after{ transform:translateY(-30%) rotate(-135deg); }
@media (min-width:992px){
  .c49mod-properties-filter-basic .card-header .c49-card-title > a::after{ display:none!important; }
  .c49mod-properties-filter-basic .card-header .c49-card-title > a{ cursor:default; pointer-events:none; }
  .c49mod-properties-filter-basic .collapse{ display:block!important; height:auto!important; visibility:visible!important; }
}
/* [estrutura] card do share/print da ficha cortava o dropdown "Copiar link" */
:is(#c49page-imovel,#c49page-inmueble,#c49page-property) .c49mod-property-header-basic .card{ overflow:visible!important; }
/* [estrutura] busca por codigo (sidebar): acompanhar a largura da coluna */
.c49mod-search-code-compact{ max-width:100% !important; }

/* ===================== 10b. PAGINACAO (imoveis.php) =====================
   Bootstrap padrao (ul.pagination > li.page-item > a.page-link) — pilulas
   soltas com respiro, numero ativo em gradiente por-do-sol, resto no mesmo
   acabamento das internas (borda areia, hover oceano). */
.pagination{ display:flex!important; flex-wrap:wrap; gap:.5rem; margin:0!important; }
.pagination .page-item{ margin:0!important; }
.pagination .page-link{
  display:flex!important; align-items:center; justify-content:center; min-width:42px; height:42px; padding:0 .85rem!important;
  border:1.5px solid #EAE2D2!important; border-radius:999px!important; background:#fff!important;
  color:#14212f!important; font-family:'Poppins',sans-serif; font-weight:700; font-size:.9rem; line-height:1;
  box-shadow:none!important; transition:background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}
.pagination .page-item:not(.disabled):not(.active) .page-link:hover{ border-color:#0C7392; color:#0C7392; background:rgba(12,115,146,.07)!important; transform:translateY(-1px); }
.pagination .page-item.active .page-link{ background:linear-gradient(118deg,#EE6C4D 0%, #0C7392 88%)!important; border-color:transparent!important; color:#fff!important; box-shadow:0 10px 20px -10px rgba(238,108,77,.6)!important; }
.pagination .page-item.disabled .page-link{ background:#F8F5EE!important; border-color:#F0EADC!important; color:#c2bba8!important; cursor:not-allowed; }
.pagination .page-link span{ font-size:1.05em; }
/* "Primeira"/"Última": texto, nao precisam ser quadradas — respiro lateral maior */
.pagination li:first-child .page-link, .pagination li:last-child .page-link{ padding:0 1.1rem!important; font-family:'Fraunces','Georgia',serif; font-weight:600; letter-spacing:-.01em; }

/* ===================== 11. IMOVEL RESTRITO ===================== */
.c49-restricted{ padding:2.6rem 0 3.6rem; }
.c49-restricted .card.c49wrap-card:not(#_):not(#_){ max-width:480px; margin:0 auto; border-radius:16px; position:relative; overflow:hidden; }
.c49-restricted .card.c49wrap-card:not(#_):not(#_)::before{ content:""; position:absolute; top:0; left:0; right:0; height:6px; background:linear-gradient(90deg,#EE6C4D 0%, #0C7392 100%); }
.c49-restricted .card-block:not(#_):not(#_){ padding:2.1rem 1.9rem 2.2rem !important; }
.c49-restricted .btn.c49btn:not(#_):not(#_){ display:inline-block; margin:.5rem .3rem 0; font-weight:700; font-size:.85rem; border:0 !important; border-radius:999px !important; padding:.66rem 1.8rem !important; background:linear-gradient(118deg,#EE6C4D 0%, #0C7392 88%) !important; color:#fff !important; box-shadow:0 12px 26px -12px rgba(0,0,0,.35) !important; transition:filter .18s ease, transform .18s ease; }
.c49-restricted .btn.c49btn:not(#_):not(#_):hover{ filter:brightness(1.06); transform:translateY(-1px); }