/* ===== estilos da home ===== */

  /* O Elementor/tema liga html{scroll-behavior:smooth}, que deixa a RODINHA do mouse
     lenta e "emborrachada" (precisa girar várias vezes pra descer; subir fica pior).
     Voltamos pra 'auto' = rolagem imediata, que é o esperado no desktop. */
  html{ scroll-behavior:auto !important; }

  :root{
    --azul-escuro:#072432;
    --azul-principal:#2F4156;
    --bege-claro:#F0E9E1;
    --bege:#D6CDC6;
    --nude:#D2BA9F;
    --cinza-claro:#F0F0F0;
    --cinza:#D3D3D3;
    --ink:#1B2933;
    --ink-soft:#5C6B73;
    --surface:#FAF8F5;
    --word-off:#CFC8BC;
    --dourado:#A87B3C;
    --preto:#06131A;
    --b-mask:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjExMiAxMDUgNTI1IDU5OCI+PHBhdGggZD0iTTI2Mi41MTMgMTA1LjU4MUMzMzMuMDY5IDEwNS41ODEgMzgyLjU3MiAxMTQuMTE2IDQxMS4wMjIgMTMxLjE4N0M0MzkuNDcyIDE0Ny42ODggNDUzLjY5NyAxNjkuODc5IDQ1My42OTcgMTk3Ljc2QzQ1My42OTcgMjE3LjEwNiA0NDguMjkyIDIzNC4xNzYgNDM3LjQ4MSAyNDguOTdDNDI2LjY3IDI2My4xOTUgNDEzLjAxNCAyNzUuNzEyIDM5Ni41MTMgMjg2LjUyM0MzODAuNTgxIDI5Ny4zMzQgMzU5LjI0MyAzMDkuNTY4IDMzMi41IDMyMy4yMjRMMzAwLjA2NyAzNDEuMTQ3QzMyMi4yNTggMzM0Ljg4OCAzNDQuNDUgMzMxLjc1OSAzNjYuNjQxIDMzMS43NTlDNDAwLjIxMiAzMzEuNzU5IDQzMS43OTEgMzM4LjAxOCA0NjEuMzc5IDM1MC41MzZDNDkxLjUzNiAzNjMuMDU0IDUxNi4wMDMgMzgxLjgzMSA1MzQuNzggNDA2Ljg2N0M1NTMuNTU3IDQzMS4zMzQgNTYyLjk0NSA0NjEuMjA3IDU2Mi45NDUgNDk2LjQ4NUM1NjIuOTQ1IDU2NS4zMzQgNTM1LjM0OSA2MTcuMTEzIDQ4MC4xNTYgNjUxLjgyMkM0MjQuOTYzIDY4NS45NjIgMzUwLjk5MyA3MDMuMDMyIDI1OC4yNDYgNzAzLjAzMkgxMTIuMjk3VjEwNS41ODFIMjYyLjUxM1pNMzM3LjYyMSAzNDcuMTIyQzMwNS4xODggMzQ3LjEyMiAyNzcuNTkyIDM1NC41MiAyNTQuODMyIDM2OS4zMTNDMjIxLjgzIDM5My43OCAyMDAuNDkyIDQyMC44MDggMTkwLjgxOSA0NTAuMzk2VjY4OS4zNzZIMjU4LjI0NkMzMDYuMDQyIDY4OS4zNzYgMzQ3LjI5NCA2ODEuNDEgMzgyLjAwMyA2NjUuNDc5QzQxNy4yODEgNjQ5LjU0NyA0NDQuMDI0IDYyNy4wNzEgNDYyLjIzMiA1OTguMDUyQzQ4MS4wMDkgNTY5LjAzMyA0OTAuMzk4IDUzNS4xNzcgNDkwLjM5OCA0OTYuNDg1QzQ5MC4zOTggNDY0LjYyMSA0ODMuMDAxIDQzNy41OTMgNDY4LjIwNyA0MTUuNDAyQzQ1My45ODIgMzkyLjY0MiA0MzUuMjA1IDM3NS41NzIgNDExLjg3NiAzNjQuMTkyQzM4OC41NDcgMzUyLjgxMiAzNjMuNzk1IDM0Ny4xMjIgMzM3LjYyMSAzNDcuMTIyWk0xOTAuODE5IDQyNy4zNTJDMTk5LjkyMyA0MDguNTc1IDIxMS44NzIgMzkyLjY0MyAyMjYuNjY2IDM3OS41NTZDMjQxLjQ2IDM2NS45IDI2MC41MjIgMzUxLjM4OSAyODMuODUxIDMzNi4wMjZDMzA0LjMzNCAzMjIuMzcgMzIwLjU1MSAzMTAuNDIyIDMzMi41IDMwMC4xOEMzNDQuNDQ5IDI4OS45MzggMzU0LjQwNyAyNzcuNDE5IDM2Mi4zNzMgMjYyLjYyNUMzNzAuMzM5IDI0Ny44MzEgMzc0LjMyMiAyMzAuNDc2IDM3NC4zMjIgMjEwLjU2MkMzNzQuMzIyIDE4MC45NzQgMzY0LjkzMyAxNTcuOTI5IDM0Ni4xNTYgMTQxLjQyOEMzMjcuMzc5IDEyNC45MjcgMjk5LjQ5OCAxMTYuNjc3IDI2Mi41MTMgMTE2LjY3N0gxOTAuODE5VjQyNy4zNTJaIE01OTkuNzE2IDYyOC44ODhDNjA5Ljg4NiA2MjguODg4IDYxOC40NSA2MzIuNjM1IDYyNS40MDkgNjQwLjEyOUM2MzIuOTAzIDY0Ny4wODggNjM2LjY1IDY1NS42NTIgNjM2LjY1IDY2NS44MjJDNjM2LjY1IDY3NS45OTMgNjMyLjkwMyA2ODQuODI1IDYyNS40MDkgNjkyLjMxOUM2MTguNDUxIDY5OS4yNzggNjA5Ljg4NiA3MDIuNzU3IDU5OS43MTYgNzAyLjc1N0M1ODkuNTQ2IDcwMi43NTcgNTgwLjcxNCA2OTkuMjc4IDU3My4yMiA2OTIuMzE5QzU2Ni4yNjEgNjg0LjgyNSA1NjIuNzgxIDY3NS45OTMgNTYyLjc4MSA2NjUuODIyQzU2Mi43ODEgNjU1LjY1MiA1NjYuMjYxIDY0Ny4wODggNTczLjIyIDY0MC4xMjlDNTgwLjcxNCA2MzIuNjM1IDU4OS41NDUgNjI4Ljg4OCA1OTkuNzE2IDYyOC44ODhaIiBmaWxsPSIjZmZmIi8+PC9zdmc+Cg==);
  }
  *{ box-sizing:border-box; }
  html,body{ margin:0; padding:0; }
  body{
    background:var(--surface);
    color:var(--ink);
    font-family:'Montserrat', ui-sans-serif, system-ui, sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  a{ color:inherit; }
  img{ display:block; }

  /* ==================== HERO 1 — Lançamentos, tela única e estática ====================
     Sem scroll-hijack: é só uma seção de 100vh, rola para a próxima seção
     do jeito normal do navegador. */
  /* A coluna do hero (só hero1/frase/vídeo/slides) recebe display:contents !important do
     nosso próprio full-bleed (:has(> .elementor-widget-bliving_hero1)). Isso faz o sticky
     da Lançamentos se prender à PÁGINA TODA e cobrir o Instagram. Aqui tornamos a coluna
     um BLOCO real (especificidade maior + !important pra vencer o full-bleed) — assim o
     sticky fica preso só DENTRO do hero e SOLTA antes do Instagram (que é irmão da coluna). */
  .elementor .elementor-element.elementor-element-0dbd6cf{
    display:block !important;
    width:100% !important; max-width:none !important;
    margin:0 !important; padding:0 !important;
  }

  /* Lançamentos fica PRESA no topo (sticky) e a frase branca (.welcome, z-index:2, fundo
     sólido) sobe POR CIMA cobrindo até a tela ficar toda branca — efeito "cortina".
     Ao subir, a branca desce e revela a Lançamentos de novo. */
  .hero-static{
    position:sticky;
    top:0;
    z-index:1;
    height:100svh;
    background:var(--azul-escuro);
    overflow:hidden;
  }
  .hero-static .hero-slide{ height:100%; }

  /* ==================== HERO 2 — Apartamentos / Casa / Marinha ====================
     N telas no fluxo mantêm o sticky e a scrollbar. home.js navega por âncoras
     (um gesto por etapa), deixando a transição visual apenas no hero-track.
     O último slide fica no fim do sticky, sem uma zona morta para sair. */
  .hero-slider-sec{ position:relative; z-index:4; background:var(--azul-escuro); }   /* z-index:4 = acima da Lançamentos(1), frase(2) e vídeo(3) */
  .hero-sticky{ position:sticky; top:0; height:100vh; overflow:hidden; }
  .hero-track{ position:absolute; inset:0; transition:transform .9s cubic-bezier(.37,0,.63,1); will-change:transform; }  /* height inline (N*100 %) */
  @media (prefers-reduced-motion: reduce){
    #hero2 .hero-track, #hero2 .hero-copy{ transition:none; }
    #hero2 .hero-slide.is-active img{ animation:none; }
  }
  .hero-track .hero-slide{ position:relative; width:100%; overflow:hidden; } /* altura vem inline (100/N %) */
  .hero-slide img, .hero-slide iframe{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover;
    transform:scale(1.04);
    border:0;
    pointer-events:none; /* iframe do YouTube: clique/scroll continuam indo pra página */
  }
  /* vídeo: sem ampliar (resolução original, sem zoom) */
  .hero-slide video{transform:none;object-fit:cover;width:100%;height:100%;position:absolute;inset:0;border:0;pointer-events:none}
  .hero-slide.is-active img{ animation:kenburns 12s cubic-bezier(.22,.5,.3,1) forwards; }
  @keyframes kenburns{ from{ transform:scale(1.02);} to{ transform:scale(1.16);} }
  .hero-slide::after{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(var(--bl-ov-rgb,7,36,50),calc(var(--bl-ov,1)*.42)) 0%, rgba(var(--bl-ov-rgb,7,36,50),calc(var(--bl-ov,1)*.06)) 30%, rgba(var(--bl-ov-rgb,7,36,50),calc(var(--bl-ov,1)*.4)) 66%, rgba(var(--bl-ov-rgb,7,36,50),calc(var(--bl-ov,1)*.88)) 100%);
  }

  .hero-copy{
    position:absolute;
    left:6%; bottom:16%; right:6%;
    max-width:660px;
    z-index:2;
    opacity:0;
    transform:translateY(20px);
    transition:opacity .7s ease .15s, transform .7s ease .15s;
    pointer-events:none;
  }
  .hero-slide.is-active .hero-copy{ opacity:1; transform:translateY(0); pointer-events:auto; }
  .hero-copy h2{
    font-family:'Montserrat', sans-serif;
    font-weight:300;
    font-size:clamp(2rem, 4.4vw, 3.5rem);
    line-height:1.1;
    color:#fff;
    margin:0 0 24px;
    text-wrap:balance;
  }
  .hero-copy h2 em{ font-style:normal; font-weight:600; }
  .hero-copy .cta{
    display:inline-flex; align-items:center; gap:10px;
    font-family:'Montserrat', sans-serif;
    font-size:15px; color:#fff; text-decoration:none;
    border-bottom:1px solid rgba(255,255,255,.5);
    padding-bottom:6px;
    transition:transform .28s ease;
  }
  .hero-copy .cta svg{ width:15px; height:15px; }
  /* O CTA do hero agora usa o botão .bl-btn (igual aos demais). Estilos em .bl-btn. */

  /* Fica fixo para o menu seguir alcançável em qualquer ponto da página, mas
     TRANSPARENTE por padrão — o header não pode tapar a foto do hero.
     Sobre as seções claras (frase, mídia, blog) ele troca para o mesmo painel
     claro do cabeçalho de categoria/imóvel, senão o texto branco some no creme.
     Quem manda no estado é o data-tom de cada seção, lido no scroll. */
  .hero-top{
    position:fixed; top:0; left:0; right:0;
    z-index:50;
    display:flex; align-items:center; justify-content:space-between;
    padding:26px 5%;
    background:transparent;
    border-bottom:1px solid transparent;
    transition:background .35s ease, padding .35s ease, border-color .35s ease;
  }
  .hero-top.sobre-claro{
    background:rgba(250,248,245,.94);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    border-bottom-color:transparent;   /* sem borda embaixo, igual ao estado branco */
    padding:22px 5%;
  }
  .hero-top .brand{ position:relative; display:block; }
  .hero-top .brand img{ height:60px; width:auto; transition:opacity .35s ease; }
  .hero-top.sobre-claro .brand img{ height:60px; }   /* mesmo tamanho da logo branca */
  /* as duas versões da logo ficam sobrepostas e trocam por opacidade */
  .hero-top .brand .logo-azul{ position:absolute; inset:0; opacity:0; transition:opacity .35s ease; }
  .hero-top.sobre-claro .brand .logo-branca{ opacity:0; }
  .hero-top.sobre-claro .brand .logo-azul{ opacity:1; }
  .hero-top .brand img{ transition:height .35s ease, opacity .35s ease; }
  .hero-top.sobre-claro .menu-btn{ color:var(--azul-escuro); }
  .hero-top.sobre-claro .menu-btn .bars span{ background:var(--azul-escuro); }
  .hero-top .menu-btn{
    display:flex; align-items:center; gap:12px;
    background:none; border:none; color:#fff;
    font-family:'Montserrat', sans-serif;
    font-size:17px; cursor:pointer; padding:6px 2px;
  }
  /* lupa: leva para a listagem de imóveis; acompanha a cor do header */
  .hero-acoes{ display:flex; align-items:center; gap:22px; }
  .hero-top .busca-icone{
    display:flex; align-items:center; justify-content:center;
    color:#fff; padding:4px; transition:color .35s ease, opacity .3s ease;
  }
  .hero-top .busca-icone:hover{ opacity:.75; }
  .hero-top .busca-icone svg, .topo .busca svg{ width:26px; height:26px; }
  .hero-top.sobre-claro .busca-icone{ color:var(--azul-escuro); }
  .menu-btn .bars, .abrir-menu.menu-btn .bars{
    display:flex; flex-direction:column; justify-content:center;
    width:32px; height:32px; gap:8px; flex:none;
  }
  .menu-btn .bars span, .abrir-menu.menu-btn .bars span{
    width:32px; height:1.5px; background:currentColor; display:block;
  }

  /* ==================== MENU — mesmo painel em index/categoria/imovel ==================== */
  .menu-drawer{
    position:fixed; inset:0; z-index:60;
    background:#fff;
    display:flex; align-items:center; justify-content:center;
    opacity:0; visibility:hidden;
    transition:opacity .45s cubic-bezier(.62,.02,.24,1), visibility 0s linear .45s;
  }
  .menu-drawer.is-open{
    opacity:1; visibility:visible;
    transition:opacity .45s cubic-bezier(.62,.02,.24,1), visibility 0s linear 0s;
  }
  .menu-drawer nav{
    display:flex; flex-direction:column; align-items:center; gap:30px;
  }
  .menu-drawer nav a{
    font-family:'Montserrat', sans-serif;
    font-weight:300;
    font-size:clamp(1.6rem, 4.2vw, 2.6rem);
    color:var(--azul-escuro); text-decoration:none;
    /* estado fechado: deslocado e invisível — é daqui que a abertura parte,
       e é para cá que o fechamento volta (sem atraso, por isso o delay 0). */
    opacity:0; transform:translateY(20px);
    transition:opacity .5s ease, transform .5s cubic-bezier(.22,.7,.3,1), color .3s ease;
    transition-delay:0s;
  }
  .menu-drawer.is-open nav a{ opacity:1; transform:none; }
  /* escalonamento só na abertura: os itens sobem um depois do outro */
  .menu-drawer.is-open nav a:nth-child(1){ transition-delay:.10s; }
  .menu-drawer.is-open nav a:nth-child(2){ transition-delay:.16s; }
  .menu-drawer.is-open nav a:nth-child(3){ transition-delay:.22s; }
  .menu-drawer.is-open nav a:nth-child(4){ transition-delay:.28s; }
  .menu-drawer.is-open nav a:nth-child(5){ transition-delay:.34s; }
  .menu-drawer nav a:hover, .menu-drawer nav a:focus-visible{ color:var(--nude); }
  .menu-close{
    position:absolute; top:30px; right:5%;
    width:44px; height:44px; display:grid; place-items:center;
    background:none; border:none; color:var(--azul-escuro);
    cursor:pointer; padding:6px;
    opacity:0; transform:rotate(-90deg);
    transition:opacity .4s ease, transform .5s cubic-bezier(.22,.7,.3,1);
  }
  .menu-drawer.is-open .menu-close{ opacity:1; transform:none; transition-delay:.06s; }
  .menu-close svg{ width:32px; height:32px; }
  .menu-drawer.menu-positioned .menu-close{
    top:var(--menu-close-top); left:var(--menu-close-left); right:auto;
  }
  /* Evita deslocar o cabeçalho quando o menu bloqueia a rolagem da página. */
  html:has(.menu-drawer){ scrollbar-gutter:stable; }
  @media (prefers-reduced-motion: reduce){
    .menu-drawer nav a, .menu-close{ transition:none; transform:none; opacity:1; }
  }

  .hero-bottom{
    position:absolute; left:0; right:0; bottom:0;
    z-index:3;
    display:flex; align-items:flex-end; justify-content:center;
    gap:16px;
    padding:0 5% 24px;
  }
  .hero-cats{
    display:flex;
    gap:clamp(20px, 3.4vw, 46px);
    list-style:none; margin:0; padding:0;
    justify-content:center;
    overflow-x:auto; scrollbar-width:none;
  }
  .hero-cats::-webkit-scrollbar{ display:none; }
  .hero-cats a{
    position:relative; display:inline-block; white-space:nowrap;
    font-family:'Montserrat', sans-serif;
    font-size:clamp(15px, 1.5vw, 20px);
    font-weight:300; letter-spacing:.03em;
    color:rgba(255,255,255,.6);
    text-decoration:none;
    padding-bottom:12px;
    transition:color .35s ease;
  }
  .hero-cats a::after{
    content:"";
    position:absolute; left:0; right:100%; bottom:0;
    height:1px; background:var(--nude);
    transition:right .4s cubic-bezier(.62,.02,.24,1);
  }
  .hero-cats a.is-active{ color:#fff; }
  .hero-cats a.is-active::after{ right:0; }
  .hero-cats a:hover{ color:#fff; }
  .hero-cats a:focus-visible{ outline:2px solid var(--nude); outline-offset:4px; }

  .hero-progress{ display:flex; gap:6px; flex:none; padding-bottom:16px; position:absolute; right:5%; bottom:24px; }
  .hero-progress .hero-dot{
    width:24px; height:2px; padding:0; border:0; border-radius:0; cursor:pointer;
    background:rgba(255,255,255,.3);
    transition:background .35s ease;
  }
  .hero-progress .hero-dot.is-active{ background:#fff; }

  .hero-scrollcue{
    position:absolute; right:5%; top:50%;
    transform:translateY(-50%) rotate(90deg);
    z-index:2;
    font-family:'Montserrat', sans-serif;
    font-size:13px; letter-spacing:.14em;
    color:rgba(255,255,255,.6);
    display:flex; align-items:center; gap:12px;
    transition:opacity .4s ease;
    pointer-events:none;
  }
  .hero-scrollcue .line{ width:36px; height:1px; background:rgba(255,255,255,.45); }
  .hero-slider-sec.at-last .hero-scrollcue{ opacity:0; }

  @media (max-width: 860px){
    .hero-top .brand img{ height:50px; }
    .hero-copy{ left:20px; right:20px; bottom:20%; max-width:none; }
    .hero-copy h2{ font-size:clamp(1.75rem, 8vw, 2.4rem); }
    .hero-cats{ gap:22px; }
    .hero-cats a{ font-size:14px; }
    .hero-bottom{ flex-direction:column; align-items:center; gap:10px; }
    .hero-progress{ position:static; padding-bottom:0; }
    .hero-scrollcue{ display:none; }
    .hero-top{ padding:20px 5%; }
  }

  /* ==================== FRASE — dourado/azul esmaecido → azul-marinho sólido ====================
     Sem margin-top negativo: isso só fazia sentido enquanto o hero 1 era
     travado (position:sticky) e a seção deslizava por cima do trecho ainda
     preso na tela. Hero 1 virou uma seção estática de 100vh — sem trava,
     essa seção só precisa vir em seguida, no fluxo normal. */
  /* 300vh = 100vh de entrada + 100vh de coloração + 100vh de "pausa" (frase já colorida,
     presa na tela) — é durante essa pausa que o vídeo sobe por cima (cortina). */
  .welcome{
    position:relative;
    z-index:2;
    height:300vh;
    background:var(--surface);
  }
  .welcome-sticky{
    position:sticky; top:0; height:100vh;
    display:flex; align-items:center; justify-content:center;
    padding:0 6%;
  }
  .welcome-inner{ max-width:1080px; }
  .welcome p{
    font-family:'Montserrat', sans-serif;
    font-weight:300;
    font-size:clamp(1.6rem, 3.9vw, 3.4rem);
    line-height:1.34;
    letter-spacing:-.005em;
    margin:0;
    color:var(--word-off);
    text-wrap:balance;
  }
  .welcome .w{ display:inline-block; color:var(--word-off); }
  @supports ((-webkit-background-clip: text) or (background-clip: text)){
    .welcome .w{
      background-repeat:no-repeat;
      -webkit-background-clip:text; background-clip:text;
      -webkit-text-fill-color:transparent; color:transparent;
    }
  }
  /* só "BLiving" ganha peso extra — o único destaque tipográfico dentro
     da frase, sem itálico (cliente não gosta) e sem trocar de fonte. */
  .welcome .brandword{
    font-weight:700;
  }

  /* ==================== VÍDEO — o B cresce e estoura ==================== */
  /* z-index:2 (acima da Lançamentos sticky, z-index:1) pra cobri-la ao rolar por cima
     — senão ela ficaria pinada NA FRENTE e as seções de baixo "sumiriam". */
  /* z-index:3 + margin-top negativo = o vídeo (escuro) SOBE por cima da frase (cortina),
     igual a frase faz com a Lançamentos. (experimental — ajustável) */
  .reveal{ position:relative; z-index:3; margin-top:-100vh; height:260vh; background:var(--azul-escuro); }
  .reveal-sticky{
    position:sticky; top:0; height:100vh;
    overflow:hidden; background:var(--azul-escuro);
  }
  .reveal-media{
    position:absolute; inset:0;
    -webkit-mask-image:var(--b-mask); mask-image:var(--b-mask);
    -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
    -webkit-mask-position:center center; mask-position:center center;
    -webkit-mask-size:var(--mask-h, 30vh) auto; mask-size:var(--mask-h, 30vh) auto;
    will-change:mask-size;
  }
  .reveal-media video, .reveal-media iframe{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover;
    border:0;
    pointer-events:none; /* iframe do YouTube: clique/scroll continuam indo pra página */
  }
  .reveal-sticky.blown .reveal-media{ -webkit-mask-image:none; mask-image:none; }
  /* sem "punch" (zoom 1.13→1) nem flash branco: o efeito parecia um pulso no vídeo */
  .reveal-flash{
    position:absolute; inset:0; z-index:3;
    background:#fff; opacity:0; pointer-events:none;
  }
  .reveal-cap{
    position:absolute; left:0; right:0; bottom:17%;
    text-align:center; z-index:4; padding:0 8%;
    opacity:0; transition:opacity .5s ease; pointer-events:none;
  }
  .reveal.cap-on .reveal-cap{ opacity:1; }
  .reveal-cap p{
    font-family:'Montserrat', sans-serif;
    font-weight:300;
    font-size:clamp(1.3rem, 2.8vw, 2.2rem);
    line-height:1.4; color:#fff; margin:0;
    text-shadow:0 2px 24px rgba(7,36,50,.6);
    text-wrap:balance;
  }

  @media (max-width: 860px){
    .welcome{ height:280vh; }
    .reveal{ height:230vh; }
    .reveal-media{
      -webkit-mask-size:var(--mask-h, 20vh) auto;
      mask-size:var(--mask-h, 20vh) auto;
    }
  }

  /* ==================== SEÇÕES AINDA A PRODUZIR ====================
     Reservam o lugar de "BLiving na mídia" e "BLiving Blog" para o
     encadeamento da página ficar correto até o conteúdo real existir. */
  .aprod{
    background:var(--surface);
    padding:104px 6%;
    border-top:1px solid var(--linha, #E3DDD2);
  }
  .aprod + .aprod{ border-top:1px solid #E3DDD2; }
  .aprod-inner{ max-width:1160px; margin:0 auto; }
  .aprod .rotulo{
    display:flex; align-items:center; gap:16px;
    margin:0 0 30px;
  }
  .aprod .rotulo span{
    font-size:11px; font-weight:500; letter-spacing:.24em;
    text-transform:uppercase; color:var(--dourado); flex:none;
  }
  .aprod .rotulo::after{ content:""; flex:1; height:1px; background:#E3DDD2; }
  .aprod h2{
    font-family:'Montserrat', sans-serif;
    font-weight:300;
    font-size:clamp(1.6rem, 3.2vw, 2.5rem);
    line-height:1.2;
    color:var(--azul-escuro);
    margin:0 0 14px;
    text-wrap:balance;
  }
  .aprod p{
    font-weight:300; font-size:15px; line-height:1.7;
    color:var(--ink-soft); margin:0; max-width:62ch;
  }
  .aprod-cartoes{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(250px,1fr));
    gap:18px;
    margin-top:34px;
  }
  .aprod-vaga{
    border:1px dashed #D8D1C4;
    border-radius:3px;
    aspect-ratio:4/3;
    display:flex; align-items:center; justify-content:center;
    color:#B3AB9C;
    font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  }

  /* ==================== EQUIPE / CONTATO ==================== */
  .team{
    position:relative;
    min-height:100vh;
    background:var(--azul-escuro);
    display:flex; flex-direction:column;
    overflow:hidden;
  }
  .team::before{
    content:"";
    position:absolute; inset:0;
    background:radial-gradient(120% 80% at 50% 30%, rgba(47,65,86,.5) 0%, rgba(7,36,50,0) 62%);
  }
  /* o bloco de texto ocupa e centraliza todo o azul acima da foto */
  .team-inner{
    position:relative; z-index:2;
    flex:1;
    display:flex; flex-direction:column;
    align-items:center; justify-content:center;
    text-align:center;
    padding:80px 6%;
    max-width:1000px; margin:0 auto;
    width:100%;
  }
  .team-logo{ height:88px; width:auto; margin:0 auto 30px; }
  .team-inner .eyebrow{
    font-size:11px; font-weight:500; letter-spacing:.28em;
    text-transform:uppercase; color:var(--nude); margin:0 0 20px;
  }
  /* brilho espelhado percorrendo as palavras */
  .team-inner h2{
    font-family:'Montserrat', sans-serif;
    font-weight:300;
    font-size:clamp(1.8rem, 4.4vw, 3.4rem);
    line-height:1.14; letter-spacing:.01em;
    text-transform:uppercase; color:#fff;
    margin:0 0 20px; text-wrap:balance;
    /* o degradê é 3x mais largo que o texto e a posição fica sempre entre
       0% e 100% — assim o fundo nunca deixa de cobrir as letras, e o que
       anda é só o reflexo, não a frase inteira. */
    background-image:linear-gradient(105deg,
      #fff 0%, #fff 42%,
      var(--nude) 47%, #FFF7EC 50%, var(--nude) 53%,
      #fff 58%, #fff 100%);
    background-size:300% 100%;
    background-repeat:no-repeat;
  }
  @supports ((-webkit-background-clip: text) or (background-clip: text)){
    .team-inner h2{
      -webkit-background-clip:text; background-clip:text;
      -webkit-text-fill-color:transparent; color:transparent;
      animation:brilho 9s linear infinite;
    }
  }
  @keyframes brilho{
    from{ background-position:100% 0; }
    to{   background-position:0% 0; }
  }
  .team-inner .sub{
    font-weight:300;
    font-size:clamp(.95rem, 1.5vw, 1.1rem);
    line-height:1.6;
    color:rgba(240,233,225,.82);
    margin:0 auto 32px; max-width:58ch;
  }
  .team-rule{ width:58px; height:1px; background:var(--nude); margin:0 auto 30px; }
  .team-actions{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
  /* ==================== BOTÕES — modelo do manual de marca (pág. 08) ====================
     "CTA orgânico · navy + círculo camel + seta" e "CTA mídia paga · camel +
     círculo navy + info": pill totalmente arredondado, ícone dentro de um
     círculo à esquerda na cor oposta, e o rótulo com ênfase SemiBold na
     primeira palavra + Regular no resto (nunca caixa-alta). */
  .btn{
    display:inline-flex; align-items:center; gap:12px;
    font-family:'Montserrat', sans-serif;
    font-size:15px; font-weight:400; letter-spacing:0;
    text-decoration:none;
    padding:8px 26px 8px 8px;
    border-radius:999px;
    cursor:pointer;
    border:1px solid transparent;
    transition:background .3s ease, color .3s ease, border-color .3s ease;
  }
  .btn b{ font-weight:600; }
  /* o círculo do ícone é parte da assinatura do botão, não decoração */
  .btn .btn-icone{
    display:inline-flex; align-items:center; justify-content:center;
    width:38px; height:38px; border-radius:50%; flex:none;
  }
  .btn .btn-icone svg{ width:17px; height:17px; }
  .btn-primary{ background:var(--azul-escuro); color:#fff; border-color:var(--azul-escuro); }
  .btn-primary .btn-icone{ background:var(--nude); color:var(--azul-escuro); }
  .btn-primary:hover{ background:var(--azul-principal); border-color:var(--azul-principal); }
  .btn-ghost{ background:var(--nude); color:var(--azul-escuro); border-color:var(--nude); }
  .btn-ghost .btn-icone{ background:var(--azul-escuro); color:var(--nude); }
  .btn-ghost:hover{ background:var(--bege-claro); border-color:var(--bege-claro); }
  .btn:focus-visible{ outline:2px solid var(--nude); outline-offset:3px; }

  .team-photo{ position:relative; z-index:1; margin-top:40px; width:100%; line-height:0; }
  .team-photo img{ width:100%; height:auto; object-fit:cover; object-position:center bottom; }

  @media (max-width: 860px){
    .team-inner{ padding:64px 6% 0; }
    .team-logo{ height:64px; margin-bottom:22px; }
    .team-photo{ margin-top:28px; }
    .team-photo img{ height:230px; object-fit:cover; }
    .btn{ padding:14px 22px; font-size:12px; }
  }

  /* ==================== RODAPÉ — mesmo padrão de categoria.html/imovel.html ==================== */
  .rodape{
    background:var(--azul-escuro);
    color:rgba(240,233,225,.75);
    padding:56px 5%;
    text-align:center;
  }
  .rodape img{ height:74px; width:auto; margin:0 auto 22px; }
  .rodape p{ font-size:12.5px; margin:0 0 6px; }
  .rodape a{ color:var(--nude); }
  .rodape-nav{
    display:flex; flex-wrap:wrap; justify-content:center;
    gap:10px 26px;
    margin-top:22px; padding-top:20px;
    border-top:1px solid rgba(210,186,159,.25);
  }
  .rodape-nav a{
    font-size:12.5px; font-weight:300; letter-spacing:.04em;
    color:rgba(240,233,225,.7); text-decoration:none;
    transition:color .3s ease;
  }
  .rodape-nav a:hover{ color:var(--nude); }

  /* ==================== movimento reduzido ==================== */
  @media (prefers-reduced-motion: reduce){
    .hero-slide.is-active img{ animation:none; transform:scale(1.04); }
    .hero-track, .hero-copy{ transition:none; }
    .welcome .w{
      background-image:none !important;
      -webkit-text-fill-color:var(--azul-escuro);
      color:var(--azul-escuro);
    }
    .team-inner h2{
      animation:none;
      background-image:none;
      -webkit-text-fill-color:#fff;
      color:#fff;
    }
    .reveal-sticky.blown .reveal-media video,
    .reveal-sticky.blown .reveal-flash{ animation:none; }
  }

/* ===== BLiving — páginas internas (categoria / imóvel) ===== */
.topo{position:sticky;top:0;z-index:40;background:rgba(250,248,245,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--linha,#E3DDD2)}.topo-linha{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 5%}.marca img{height:62px;width:auto}.voltar{display:inline-flex;align-items:center;gap:9px;font-family:'Montserrat',sans-serif;font-size:16px;color:var(--azul-escuro);border-bottom:1px solid var(--azul-principal);padding-bottom:5px}.voltar svg{width:15px;height:15px}.topo-acoes{display:flex;align-items:center;gap:26px}.busca{display:flex;align-items:center;justify-content:center;color:var(--azul-escuro);background:none;border:none;padding:4px;cursor:pointer;transition:color .3s ease}.busca:hover{color:var(--dourado)}.busca svg{width:21px;height:21px}.abrir-menu{display:flex;align-items:center;gap:9px;font-family:'Montserrat',sans-serif;font-size:15px;color:var(--azul-escuro);background:none;border:none;cursor:pointer}.abrir-menu .bars{display:flex;flex-direction:column;gap:4px}.abrir-menu .bars span{width:19px;height:1px;background:var(--azul-escuro);display:block}
.abas{display:flex;gap:clamp(18px,3vw,44px);padding:0 5%;border-bottom:1px solid var(--linha,#E3DDD2);overflow-x:auto;scrollbar-width:none}.abas::-webkit-scrollbar{display:none}.abas a{position:relative;white-space:nowrap;font-family:'Montserrat',sans-serif;font-size:18px;font-weight:300;color:var(--ink-soft);padding:16px 0 15px;transition:color .3s ease}.abas a::after{content:"";position:absolute;left:0;right:100%;bottom:-1px;height:2px;background:var(--dourado);transition:right .35s cubic-bezier(.62,.02,.24,1)}.abas a:hover{color:var(--azul-escuro)}.abas a[aria-current="page"]{color:var(--azul-escuro)}.abas a[aria-current="page"]::after{right:0}
.listagem-topo{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;flex-wrap:wrap;padding:44px 5% 26px}
/* frase do título: mais fina e menor que antes; nome da categoria em destaque */
.listagem-frase{font-family:'Montserrat',sans-serif;font-weight:300;font-size:clamp(1.3rem,2.4vw,2rem);line-height:1.22;letter-spacing:-.005em;margin:0 0 8px;color:var(--azul-escuro);text-wrap:balance}
.listagem-frase em{font-style:normal;font-weight:600;color:var(--azul-escuro)}
.listagem-contagem{font-family:'Montserrat',sans-serif;font-size:12px;font-weight:500;letter-spacing:.08em;color:var(--dourado);margin:0}
.listagem-resumo{font-size:13px;line-height:1.6;color:var(--ink-soft);margin:6px 0 0;max-width:62ch}
/* ===== BLiving — seção "Categoria em destaque" (um widget por categoria) ===== */
.cat-destaque{padding:18px 0 4px}
.cat-destaque-topo{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin:0 0 18px}
.cat-destaque-titulo{font-family:'Montserrat',sans-serif;font-weight:300;font-size:clamp(1.35rem,2.3vw,1.95rem);line-height:1.15;color:var(--azul-escuro);margin:0;text-wrap:balance}
.cat-destaque-todos{display:inline-flex;align-items:center;gap:8px;font-family:'Montserrat',sans-serif;font-size:11.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--dourado);white-space:nowrap;text-decoration:none;transition:gap .25s ease}
.cat-destaque-todos:hover{gap:13px}
.cat-destaque-todos svg{width:15px;height:15px}
.cat-destaque .grade{padding-top:0;padding-bottom:0}
.secao-rotulo{display:flex;align-items:center;gap:16px;padding:0 5%;margin:26px 0 18px}.secao-rotulo span{font-size:11px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--dourado);flex:none}.secao-rotulo::after{content:"";flex:1;height:1px;background:var(--linha,#E3DDD2)}
.destaques{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 26px;padding:0 5%}.destaques .cartao-img{aspect-ratio:16/10}.destaques .cartao-titulo{font-size:16px}.grade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 26px;padding:0 5% 84px}.cartao{display:block}.cartao-img{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--cinza-claro)}.cartao-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,.5,.3,1)}.cartao:hover .cartao-img img{transform:scale(1.06)}.cartao-img::after{content:"";position:absolute;inset:auto 0 0 0;height:46%;background:linear-gradient(180deg,rgba(7,36,50,0) 0%,rgba(7,36,50,.72) 100%)}.cartao-preco{position:absolute;left:0;right:0;bottom:14px;z-index:2;text-align:center;font-size:13px;font-weight:600;letter-spacing:.04em;color:#fff;font-variant-numeric:tabular-nums}.cartao-selo{position:absolute;top:12px;left:12px;z-index:2;font-size:9.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--azul-escuro);background:var(--nude);padding:5px 10px}.cartao-titulo{font-family:'Montserrat',sans-serif;font-size:13px;font-weight:400;letter-spacing:.055em;text-transform:uppercase;line-height:1.5;color:var(--azul-escuro);margin:14px 0 4px;text-align:center;text-wrap:balance}.cartao-local{font-size:13px;color:var(--ink-soft)}.cartao-dados{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 8px;font-size:13px;color:var(--ink-soft);font-variant-numeric:tabular-nums;margin:0 0 4px}.cartao-dados span{display:inline-flex;align-items:center;gap:5px}.cartao-dados span:not(:first-child)::before{content:"·";margin-right:3px;opacity:.55}.vazio{grid-column:1/-1;text-align:center;padding:56px 0 80px;color:var(--ink-soft);font-size:14px}

.imovel{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:46px;padding:38px 5% 80px;max-width:1560px;margin:0 auto;align-items:start}.galeria{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px}.miniaturas{display:flex;flex-direction:column;gap:10px;max-height:74vh;overflow-y:auto;scrollbar-width:thin}.miniaturas button{padding:0;border:1px solid transparent;background:none;cursor:pointer;aspect-ratio:4/3;overflow:hidden;flex:none;opacity:.62;transition:opacity .3s ease,border-color .3s ease}.miniaturas button img{width:100%;height:100%;object-fit:cover}.miniaturas button:hover{opacity:1}.miniaturas button[aria-current="true"]{opacity:1;border-color:var(--dourado)}.principal{position:relative;background:var(--cinza-claro);overflow:hidden}.principal img{width:100%;aspect-ratio:3/2;object-fit:cover}.principal .seta{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:rgba(7,36,50,.55);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;transition:background .3s ease}.principal .seta:hover{background:rgba(7,36,50,.85)}.principal .seta svg{width:18px;height:18px}.principal .ant{left:14px}.principal .prox{right:14px}.principal .contador{position:absolute;right:14px;bottom:14px;background:rgba(7,36,50,.62);color:#fff;font-size:11.5px;letter-spacing:.08em;padding:5px 11px;font-variant-numeric:tabular-nums}
.trilha{font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 16px}.trilha a:hover{color:var(--dourado)}.info h1{font-family:'Montserrat',sans-serif;font-weight:300;font-size:clamp(1.55rem,2.5vw,2.3rem);line-height:1.2;color:var(--azul-escuro);margin:0 0 20px;text-wrap:balance}.info .descricao{font-weight:300;font-size:14.5px;line-height:1.75;color:var(--ink-soft);margin:0 0 30px}.ficha{width:100%;border-collapse:collapse;margin:0 0 30px}.ficha th,.ficha td{padding:13px 0;border-bottom:1px solid var(--linha,#E3DDD2);font-size:12px;text-align:left}.ficha th{font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft)}.ficha td{text-align:right;font-weight:500;color:var(--azul-escuro);font-variant-numeric:tabular-nums}.ficha .destaque td{font-family:'Montserrat',sans-serif;font-size:20px;font-weight:400;color:var(--dourado)}.acoes{display:flex;gap:12px;flex-wrap:wrap}.subtitulo{font-family:'Montserrat',sans-serif;font-weight:300;font-size:1.35rem;color:var(--azul-escuro);margin:40px 0 14px}.info .obs{font-size:13px;line-height:1.7;color:var(--ink-soft);margin:0}
@media (max-width:980px){.marca img{height:48px}.topo-linha{padding:14px 5%}.imovel{grid-template-columns:1fr;gap:26px;padding:0 0 64px}.galeria{display:block}.slides{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.slides::-webkit-scrollbar{display:none}.slides img{width:100%;flex:none;scroll-snap-align:start;aspect-ratio:4/3;object-fit:cover}.pontos{display:flex;justify-content:center;gap:6px;padding:14px 0 0}.pontos span{width:20px;height:2px;background:var(--cinza);transition:background .3s ease}.pontos span.on{background:var(--dourado)}.info{padding:0 5%}}
@media (min-width:981px){.slides{display:none}.pontos{display:none}}
@media (max-width:860px){.destaques,.grade{grid-template-columns:1fr}.grade{gap:30px}.listagem-topo{padding:32px 5% 20px}}
/* ===== BLiving — vence o reset de imagens do Elementor ===== */
body .topo .marca img{height:62px;width:auto;max-width:none}
body .rodape img{height:74px;width:auto}
.team-logo{height:auto!important}
.hero-top .brand img{height:60px!important;width:auto!important}
.hero-top.sobre-claro .brand img{height:60px!important}
.cartao-img img,.principal img,.miniaturas button img,.slides img{height:100%!important}
.principal img{height:auto!important}
@media (max-width:860px){body .topo .marca img{height:48px}}
/* ===== BLiving — barra de busca e paginação ===== */
.busca-barra{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px 18px;padding:22px 5%;background:var(--bege-claro);border-bottom:1px solid var(--linha,#E3DDD2)}
.busca-barra .campo{display:flex;flex-direction:column;gap:6px;flex:1 1 150px;min-width:0}
.busca-barra .campo>span{font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
.busca-barra input,.busca-barra select{font-family:'Montserrat',sans-serif;font-size:13.5px;color:var(--azul-escuro);background:#fff;border:1px solid var(--linha,#E3DDD2);border-radius:2px;padding:9px 10px;width:100%}
.busca-barra input:focus,.busca-barra select:focus{outline:none;border-color:var(--dourado)}
.busca-barra .campo-texto{flex:2 1 240px}
.busca-barra .campo-curto{flex:0 1 108px}
.busca-barra .faixa{display:flex;gap:6px}
.busca-barra .btn{align-self:flex-end}
.limpar-filtros{font-size:12px;color:var(--ink-soft);border-bottom:1px solid var(--linha,#E3DDD2);align-self:flex-end;padding-bottom:5px}
.limpar-filtros:hover{color:var(--dourado)}
.paginacao{display:flex;justify-content:center;gap:10px;padding:0 5% 70px}
.paginacao a{font-size:13px;color:var(--ink-soft);padding:7px 13px;border:1px solid var(--linha,#E3DDD2)}
.paginacao a.is-active{color:var(--azul-escuro);border-color:var(--dourado)}
@media (max-width:860px){.busca-barra{padding:18px 5%}.busca-barra .campo{flex:1 1 46%}.busca-barra .campo-curto{flex:1 1 46%}}
/* ===== BLiving — busca: todos os filtros sempre visíveis, código dentro da grade ===== */
/* gutter lateral vem do controle "lado" (margin) — igual ao da lista; a barra bege
   fica como um card destacado sobre o fundo da página, com borda e espaçamento */
.busca-barra{display:block;padding:18px 20px;margin-top:22px;margin-bottom:6px;background:var(--bege-claro);border:1px solid var(--linha,#E3DDD2);border-radius:4px}
/* BUSCAR: azul-escuro com texto branco, igual à referência. Sem troca de cor no
   hover (só leve zoom) — o reset.css do Hello Elementor força um rosa #CC3366 em
   button:hover, por isso travamos a cor em todos os estados. */
.busca-enviar{font-family:'Montserrat',sans-serif;font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--azul-escuro);border:0;border-radius:2px;padding:12px 40px;cursor:pointer;transition:transform .28s ease}
.busca-enviar:hover,.busca-enviar:focus{background:var(--azul-escuro);color:#fff;transform:scale(1.03)}
.busca-enviar:active{background:var(--azul-escuro);color:#fff;transform:scale(.985)}
.busca-enviar:focus-visible{outline:2px solid var(--dourado);outline-offset:3px}
.busca-campos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 18px;padding-top:2px}
.busca-livre .busca-campos{grid-template-columns:repeat(5,minmax(0,1fr))}
.busca-campos .campo{display:flex;flex-direction:column;gap:5px;min-width:0}
.campo-rotulo{font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.busca-campos input,.busca-campos select,.multi>summary{font-family:'Montserrat',sans-serif;font-size:13px;color:var(--azul-escuro);background:#fff;border:1px solid #DFE6EE;padding:7px 10px;width:100%;border-radius:2px}
.busca-campos input[type=search]{-webkit-appearance:none;appearance:none}
.busca-campos input:focus,.busca-campos select:focus{outline:none;border-color:var(--dourado)}
.multi{position:relative}
.multi>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.multi>summary::-webkit-details-marker{display:none}
.multi>summary::after{content:"";width:7px;height:7px;border-right:1px solid var(--ink-soft);border-bottom:1px solid var(--ink-soft);transform:rotate(45deg) translateY(-2px);flex:none}
.multi-painel{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid #DFE6EE;box-shadow:0 12px 30px rgba(7,36,50,.12);padding:10px}
.multi-busca{margin-bottom:8px}
.multi-lista{max-height:220px;overflow:auto;display:flex;flex-direction:column;gap:2px}
.multi-lista label{display:flex;align-items:center;gap:9px;font-size:13px;padding:7px 6px;cursor:pointer;color:var(--azul-escuro)}
.multi-lista label:hover{background:var(--surface)}
.multi-lista input{width:auto;margin:0}
.busca-campos .faixa{display:flex;gap:8px}
.busca-acoes{display:flex;align-items:center;justify-content:flex-start;gap:18px;padding-top:16px}
.busca-acoes .busca-enviar{padding:13px 44px}
@media (max-width:980px){.busca-campos,.busca-livre .busca-campos{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.busca-campos,.busca-livre .busca-campos{grid-template-columns:1fr}.busca-enviar{padding:12px}.busca-acoes{justify-content:center}}
/* ===== BLiving — ficha do imóvel sem o estilo de tabela do tema ===== */
body .ficha,body .ficha tbody,body .ficha tr,body .ficha th,body .ficha td{background:transparent;border:0}
body .ficha th,body .ficha td{border-bottom:1px solid var(--linha,#E3DDD2);padding:13px 0}
.imovel.sem-galeria{grid-template-columns:minmax(0,1fr);max-width:900px}
.imovel .info h1{margin-top:0}
body .ficha tr:nth-child(odd),body .ficha tr:nth-child(even),body .ficha tbody tr:nth-child(odd),body .ficha tbody tr:nth-child(even){background:transparent}
/* ===== BLiving — menu de tela cheia (precisa vir por último) ===== */
.menu-drawer{opacity:0;visibility:hidden}
.menu-drawer.is-open{opacity:1;visibility:visible}
/* padrão de espaçamento vertical da página do imóvel */
.imovel{padding-top:20px;padding-bottom:30px}
/* === BLIVING DETALHE v2 (layout aprovado) === */
.topo-voltar{background:transparent;border:0}
.topo-voltar .topo-linha{max-width:none;margin:0 auto;padding:22px 30px 4px;display:flex;align-items:center}
.voltar{display:inline-flex;align-items:center;gap:8px;font-family:inherit;font-size:14px;font-weight:400;letter-spacing:normal;text-transform:none;color:#072432;text-decoration:none;border-bottom:.8px solid #2f4156;padding-bottom:3px}
.voltar:hover{opacity:.65}
.voltar svg{width:14px;height:14px}

.imovel{display:grid;grid-template-columns:minmax(0,1.42fr) minmax(0,.58fr);gap:46px;max-width:none;margin:0 auto;padding:20px 30px 80px;align-items:start;background:transparent}
.galeria{display:flex;flex-direction:column;gap:14px;min-width:0}
.galeria .principal{position:relative;aspect-ratio:3/2;overflow:hidden;background:#f0f0f0}
.galeria .principal img{width:100%;height:100%!important;object-fit:cover;display:block}
.galeria .seta{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:#072432;display:flex;align-items:center;justify-content:center;cursor:pointer}
.galeria .seta:hover{background:#fff}
.galeria .seta.ant{left:14px}
.galeria .seta.prox{right:14px}
.galeria .contador{position:absolute;right:14px;bottom:14px;background:rgba(7,36,50,.62);color:#fff;font-size:11.5px;letter-spacing:.06em;padding:5px 11px;border-radius:0}
.galeria .miniaturas{display:flex;flex-direction:row;gap:10px;overflow-x:auto;padding-bottom:2px}
.galeria .miniaturas button{flex:0 0 112px;width:112px;padding:0;border:.8px solid transparent;background:none;cursor:pointer;opacity:.78;transition:opacity .25s,border-color .25s}
.galeria .miniaturas button:hover{opacity:1}
.galeria .miniaturas button[aria-current="true"]{opacity:1;border-color:#a87b3c}
.galeria .miniaturas button img{width:100%;aspect-ratio:4/3;height:auto!important;object-fit:cover;display:block}
.imovel .slides,.imovel .pontos{display:none}

.imovel .resumo{min-width:0}
.imovel .resumo .trilha{font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:#5c6b73;margin:0 0 16px}
.imovel .resumo h1{font-family:inherit;font-size:29px;line-height:1.2;font-weight:300;letter-spacing:-.005em;color:#072432;margin:0 0 10px}
.imovel .resumo .local{font-size:12.5px;font-weight:400;letter-spacing:.05em;text-transform:none;color:#5c6b73;margin:0 0 26px}
.imovel .resumo .descricao{font-size:14.5px;line-height:1.8;color:#101820;margin:0 0 28px}
.preco-bloco{border-top:.8px solid #e3ddd2;border-bottom:.8px solid #e3ddd2;padding:16px 0 18px;margin:0 0 26px;background:transparent}
.preco-rotulo{font-size:9.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#a87b3c;margin:0 0 9px}
.preco-bloco .preco{font-family:inherit;font-size:22px;line-height:1.25;font-weight:300;color:#072432;margin:0}
.imovel ul.specs{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 30px;padding:0}
.imovel ul.specs li{display:flex;flex-direction:column;gap:4px}
.imovel ul.specs .n{font-family:inherit;font-size:24px;line-height:1;font-weight:300;color:#072432}
.imovel ul.specs .n small{font-size:11px;font-weight:400;letter-spacing:.04em;margin-left:2px;color:#5c6b73}
.imovel ul.specs .l{font-size:9.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#5c6b73}
.ficha-titulo{font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#a87b3c;margin:0 0 14px}
.imovel dl.ficha{display:block;margin:0 0 30px;padding:0;border:0;background:none}
.imovel dl.ficha>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:9px 0}
.imovel dl.ficha>div+div{border-top:.8px solid #e3ddd2}
.imovel dl.ficha dt{font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:#5c6b73;margin:0}
.imovel dl.ficha dd{font-size:13px;font-weight:500;color:#072432;margin:0;text-align:right}
.imovel .acoes{display:flex;flex-wrap:wrap;gap:12px;margin:0}
.imovel .acoes .btn-primary,.imovel .acoes .btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 26px;border-radius:2px;font-size:12.5px;font-weight:500;letter-spacing:.08em;text-transform:none;text-decoration:none;transition:.25s;cursor:pointer}
.imovel .acoes .btn-primary{background:#072432;color:#fff;border:.8px solid #072432}
.imovel .acoes .btn-primary:hover{background:#0d3752;border-color:#0d3752}
.imovel .acoes .btn-primary svg{width:16px;height:16px;flex:0 0 16px}
.imovel .acoes .btn-ghost{background:transparent;color:#072432;border:.8px solid #d3d3d3}
.imovel .acoes .btn-ghost:hover{border-color:#072432}
.imovel .obs{font-size:11.5px;line-height:1.7;color:#5c6b73;margin:22px 0 0}

/* CTA de baixo: os dois blocos (chamada + form) centralizados e próximos, não espalhados ponta a ponta */
.imovel>.interesse{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:50px;align-items:center;justify-content:center;background:transparent;border-top:.8px solid #e3ddd2;margin:36px auto 0;padding:52px 0 8px;max-width:1120px}
/* mesmo layout quando vem do widget "BLiving — Formulário de contato" (fora do .imovel) */
.elementor-widget-bliving_form .interesse{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:50px;align-items:center;margin:0 auto;padding:8px 20px;max-width:1120px}
.elementor-widget-bliving_form .interesse-solo{max-width:1120px;margin:0 auto}
@media (max-width:860px){.elementor-widget-bliving_form .interesse{grid-template-columns:1fr;gap:26px}}
.interesse-cta{padding-left:0}
.interesse-cta .interesse-eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--dourado);margin:0 0 14px;max-width:none}
.interesse-cta h2{font-family:inherit;font-size:clamp(2rem,3vw,2.6rem);line-height:1.12;font-weight:300;color:#072432;margin:0 0 20px;text-wrap:balance}
.interesse-cta p{font-size:16px;line-height:1.8;color:#101820;margin:0;max-width:46ch}
.form-interesse{background:transparent;padding:0;border:0;box-shadow:none}

/* CF7 dentro do bloco de interesse */
.form-interesse form>p{margin:0 0 18px}
.form-interesse form>p:last-child{margin:0}
.form-interesse label{display:block;font-size:9.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#5c6b73;margin:0 0 7px}
.form-interesse .wpcf7-form-control-wrap{display:block}
.form-interesse input[type=text],.form-interesse input[type=email],.form-interesse input[type=tel],.form-interesse textarea{box-sizing:border-box;width:100%;max-width:100%;padding:6px 0 9px;border:0;border-bottom:.8px solid #d6cdbc;border-radius:0;background:transparent;font:inherit;font-size:14px;color:#072432;box-shadow:none}
.form-interesse textarea{min-height:52px;height:60px;resize:vertical;display:block}
.form-interesse input:focus,.form-interesse textarea:focus{outline:0;border-bottom-color:#a87b3c}
.form-interesse input[type=submit],.form-interesse button[type=submit]{box-sizing:border-box;width:100%;max-width:100%;margin-top:6px;padding:15px 26px;border:0;border-radius:999px;background:#072432;color:#fff;font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;white-space:normal;cursor:pointer;transition:transform .25s ease}
.form-interesse input[type=submit]:hover,.form-interesse button[type=submit]:hover{background:#072432;transform:scale(1.02)}
.form-interesse input[type=submit]:active,.form-interesse button[type=submit]:active{transform:scale(.99)}
.form-interesse .wpcf7-spinner{display:block;margin:8px auto 0}
.form-interesse .wpcf7-not-valid-tip{font-size:11px;color:#c0392b;margin-top:5px}
.form-interesse .wpcf7-response-output{margin:14px 0 0;padding:10px 12px;font-size:12px;border-width:1px}
/* CF7 deixa a caixa de resposta sempre no DOM (vazia) — some quando não há mensagem, some o vão embaixo do form */
.form-interesse .wpcf7-response-output:empty{display:none;margin:0;padding:0;border:0}
.form-nota{font-size:10.5px;line-height:1.5;color:#5c6b73;text-align:center;margin:14px 0 0}

@media (max-width:980px){
.topo-voltar .topo-linha{padding:16px 10px 2px}
.imovel{grid-template-columns:1fr;gap:28px;padding:24px 10px 60px}
.imovel .resumo h1{font-size:25px}
.imovel ul.specs{grid-template-columns:repeat(2,1fr)}
.imovel .acoes .btn-primary,.imovel .acoes .btn-ghost{width:100%}
.galeria .miniaturas button{flex-basis:88px;width:88px}
.imovel>.interesse{grid-template-columns:1fr;gap:26px;margin:26px 0 0;padding:34px 0 0}
.interesse-cta{padding-left:0}
.interesse-cta h2{font-size:26px}
.form-interesse{padding:0}
}
/* detalhe do imóvel no celular: foto grande + miniaturas, título, local, specs, descrição, ficha */
@media (max-width:767px){
.imovel{grid-template-columns:minmax(0,1fr);gap:0;padding-top:0;align-content:start}
.imovel .resumo{display:contents}
.imovel .galeria{order:0;margin:0 -10px 6px;gap:6px}
.imovel .resumo .trilha,.imovel .resumo h1,.imovel .resumo .local{order:1}
.imovel .resumo .trilha{margin-bottom:3px}
.imovel .resumo h1{margin-bottom:2px}
.imovel .resumo .local{margin-bottom:6px}
.imovel ul.specs{order:2;margin-bottom:6px;gap:6px 14px}
.imovel .resumo .descricao{order:4;margin-bottom:6px}
.imovel .resumo .descricao p{margin:0 0 6px}
.imovel .resumo .descricao p:last-child{margin-bottom:0}
.imovel .preco-bloco{order:4;margin-bottom:6px;padding:6px 0 7px}
.imovel .ficha-titulo,.imovel dl.ficha{order:5}
.imovel .ficha-titulo{margin-bottom:5px}
.imovel dl.ficha{margin-bottom:6px}
.imovel dl.ficha>div{padding:5px 0}
.imovel .acoes,.imovel .obs{order:6}
.imovel .obs{margin-top:8px}
.imovel>.interesse{order:7;margin-top:10px;padding-top:14px}
}
/* linha divisoria entre logo e menu (header interno) */
.topo .abas{border-top:1px solid var(--linha,#E3DDD2)}
.topo.sem-linha .abas{border-top:0}


/* ===== BLIVING-REVEAL-ANIM (ajustes B Living) ===== */
/* ocultar botao Voltar na pagina de imovel */
.elementor-widget-bliving_imovel .topo-voltar{display:none !important;}

/* animacao: surgir de baixo pra cima no scroll */
.reveal-up{opacity:0;transform:translateY(40px);will-change:opacity,transform;}
.reveal-up.is-visible{opacity:1;transform:translateY(0);transition:opacity .7s ease,transform .7s ease;}
@media (prefers-reduced-motion: reduce){.reveal-up{opacity:1 !important;transform:none !important;transition:none !important;}}

/* ===== BLIVING-REVEAL-CARDS — cards de busca/categoria precisam de !important p/ vencer a animacao do tema ===== */
/* cards de busca/categoria: entrada suave ESCALONADA ao carregar a pagina */
@keyframes blCardIn{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:translateY(0);}}
.grade .cartao{animation:blCardIn .7s ease both !important;}
.grade .cartao:nth-child(1){animation-delay:.05s !important;}
.grade .cartao:nth-child(2){animation-delay:.13s !important;}
.grade .cartao:nth-child(3){animation-delay:.21s !important;}
.grade .cartao:nth-child(4){animation-delay:.29s !important;}
.grade .cartao:nth-child(5){animation-delay:.37s !important;}
.grade .cartao:nth-child(6){animation-delay:.45s !important;}
.grade .cartao:nth-child(n+7){animation-delay:.5s !important;}
@media (prefers-reduced-motion: reduce){.grade .cartao{animation:none !important;}}

/* ===== BLIVING-EFEITO-ESPELHADO — brilho dourado no titulo. Aplique a classe  bl-shine  no widget de Titulo do Elementor. ===== */
@keyframes brilho{0%{background-position:100% 0;}100%{background-position:0 0;}}
.bl-shine .elementor-heading-title, .bl-shine{
  background-image:linear-gradient(105deg,#fff 0%,#fff 40%,rgba(168,123,60,.7) 46%,rgba(232,197,137,.85) 50%,rgba(168,123,60,.7) 54%,#fff 60%,#fff 100%) !important;
  background-size:300% 100% !important;
  background-repeat:no-repeat !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  -webkit-text-fill-color:transparent !important;
  color:#fff;
  animation:brilho 6s linear infinite;
}
@media (prefers-reduced-motion: reduce){
  .bl-shine .elementor-heading-title, .bl-shine{animation:none;-webkit-text-fill-color:#fff !important;}
}

/* ===== BLIVING-WIDGET-BOTAO-CSS — botao BLiving (pilula + badge circular, 3 modelos) ===== */
.bl-botao-wrap{display:flex;}
.bl-botao-wrap.bl-esq{justify-content:flex-start;}
.bl-botao-wrap.bl-centro{justify-content:center;}
.bl-botao-wrap.bl-dir{justify-content:flex-end;}
.bl-btn{display:inline-flex;align-items:center;gap:12px;font-family:Montserrat,sans-serif;font-size:15px;font-weight:400;letter-spacing:0;line-height:1.1;text-decoration:none;padding:5px 26px 5px 5px;border-radius:999px;cursor:pointer;border:1px solid transparent;transition:transform .28s ease,background .3s,color .3s,border-color .3s;}
.bl-btn b{font-weight:600;}
.bl-btn:hover{transform:scale(1.045);}
.bl-btn:active{transform:scale(.99);}
.bl-btn .bl-btn-icone{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;flex:0 0 auto;}
.bl-btn .bl-btn-icone svg{width:22px;height:22px;}
.bl-btn-nude{background:var(--nude);color:var(--azul-escuro);border-color:var(--nude);}
.bl-btn-nude .bl-btn-icone{background:var(--azul-escuro);color:var(--nude);}

.bl-btn-escuro{background:var(--azul-escuro);color:#fff;border-color:var(--azul-escuro);}
.bl-btn-escuro .bl-btn-icone{background:var(--nude);color:var(--azul-escuro);}

.bl-btn-branco{background:#fff;color:var(--azul-escuro);border-color:#fff;}
.bl-btn-branco .bl-btn-icone{background:var(--azul-escuro);color:#fff;}

.bl-btn-azul-branco{background:var(--azul-escuro);color:#fff;border-color:var(--azul-escuro);}
.bl-btn-azul-branco .bl-btn-icone{background:#fff;color:var(--azul-escuro);}

.bl-btn-cta{flex-direction:row-reverse;background:var(--azul-escuro);color:#fff;border-color:var(--azul-escuro);padding:5px 24px 5px 5px;font-weight:500;}
.bl-btn-cta .bl-btn-icone{background:var(--nude);color:var(--azul-escuro);}

.bl-btn:focus-visible{outline:2px solid var(--dourado);outline-offset:3px;}
@media (prefers-reduced-motion: reduce){.bl-btn{transition:none;}}
/* Blindagem contra os estilos de <a> do Hello Elementor (sublinhado + a:hover trocando cor).
   Seletor .bl-botao-wrap .bl-btn-X (0,2,0) vence a:hover / .page-content a (0,1,1),
   fixando cor do texto e removendo sublinhado em todos os estados. */
.bl-btn,.bl-btn:link,.bl-btn:visited,
.bl-btn:hover,.bl-btn:focus,.bl-btn:active{text-decoration:none;}
.bl-btn-nude,.bl-btn-nude:hover,.bl-btn-nude:focus,.bl-btn-nude:active,
.bl-btn-branco,.bl-btn-branco:hover,.bl-btn-branco:focus,.bl-btn-branco:active{color:var(--azul-escuro);}
.bl-btn-escuro,.bl-btn-escuro:hover,.bl-btn-escuro:focus,.bl-btn-escuro:active,
.bl-btn-azul-branco,.bl-btn-azul-branco:hover,.bl-btn-azul-branco:focus,.bl-btn-azul-branco:active,
.bl-btn-cta,.bl-btn-cta:hover,.bl-btn-cta:focus,.bl-btn-cta:active{color:#fff;}

/* ===== BLiving — variação do ícone do .bl-btn: círculo vazado (mesmo navy do botão + seta branca) =====
   Usada no CTA do hero, no BUSCAR e no WhatsApp da ficha, pra padronizar com o botão do Instagram. */
.bl-btn--ico-vazado .bl-btn-icone{background:transparent;border:1.5px solid rgba(255,255,255,.6);color:#fff;}
.bl-btn--ico-vazado .bl-btn-icone svg{color:#fff;}
/* Variação só-texto (sem ícone), pílula compacta — usada no BUSCAR */
.bl-btn--texto{padding:11px 30px;gap:0;font-size:12.5px;}
/* BUSCAR: era um retângulo; agora é pílula compacta sem ícone. */
.busca-acoes .busca-enviar.bl-btn{border-radius:999px;text-transform:none;letter-spacing:.04em;}
.busca-acoes .busca-enviar.bl-btn:hover,.busca-acoes .busca-enviar.bl-btn:focus{background:var(--azul-escuro);color:#fff;}

/* ===== BLIVING — Página 404 (usa o index.php do Hello Elementor) ===== */
/* área central ocupa a tela toda pra o rodapé não subir; fonte fina como os títulos */
body.error404 #content.site-main{
  min-height:64vh;display:flex;flex-direction:column;justify-content:center;
  max-width:1200px;margin:0 auto;padding:60px 5%;
}
body.error404 .page-header{margin:0 0 14px;padding:0;border:0}
body.error404 .entry-title{
  font-family:'Montserrat',sans-serif;font-weight:300;
  font-size:clamp(1.8rem,4vw,3.2rem);line-height:1.12;letter-spacing:-.01em;
  color:var(--azul-escuro);margin:0;text-wrap:balance;
}
body.error404 .page-content{padding:0}
body.error404 .page-content p{
  font-family:'Montserrat',sans-serif;font-weight:300;font-size:15px;
  line-height:1.7;color:var(--ink-soft);margin:0;max-width:52ch;
}
body.error404 .bliving-404-acao{margin-top:26px}

/* ===== BLIVING — MATA O ROSA DO TEMA nos botões de chrome (menu, fechar, busca, setas) =====
   O reset.css do Hello Elementor pinta TODO <button> com borda #c36 e fundo rosa
   no hover/focus/active. Aqui neutralizamos isso nos nossos botões, em todos os
   estados. Especificidade classe+pseudo (0,2,0) vence a do tema button:hover (0,1,1). */
.menu-btn,.abrir-menu,.menu-close,.topo .busca,.hero-top .busca-icone,
.menu-btn:hover,.menu-btn:focus,.menu-btn:active,.menu-btn:focus-visible,
.abrir-menu:hover,.abrir-menu:focus,.abrir-menu:active,.abrir-menu:focus-visible,
.menu-close:hover,.menu-close:focus,.menu-close:active,.menu-close:focus-visible,
.topo .busca:hover,.topo .busca:focus,.topo .busca:active,
.hero-top .busca-icone:hover,.hero-top .busca-icone:focus,.hero-top .busca-icone:active{
  background:transparent;border:0;border-radius:0;box-shadow:none;
}
/* cor do X e do hambúrguer por contexto (feedback discreto, sem fundo) */
.menu-close{color:var(--azul-escuro)}
.menu-close:hover,.menu-close:focus{color:var(--nude)}
.abrir-menu:hover,.abrir-menu:focus{color:var(--azul-escuro)}
.topo .busca:hover{color:var(--dourado)}

/* ===== BLiving — vídeo de fundo vindo do YouTube (iframe) =====
   object-fit:cover NÃO funciona em <iframe> — o player mantém o 16:9 dentro da
   caixa e sobra faixa preta nas laterais (foi o que apareceu nos prints). O jeito
   é superdimensionar o iframe em 16:9 e centralizar: ele passa a "vazar" para
   fora do container (que tem overflow:hidden) exatamente como um cover faria.
     min-width  = 16/9 da ALTURA da tela   -> cobre quando a tela é alta/estreita
     min-height =  9/16 da LARGURA da tela -> cobre quando a tela é larga/baixa
   O scale extra corta a moldura e qualquer resto de UI que fique junto às bordas. */
.hero-slide iframe,
.reveal-media iframe{
  position:absolute;
  top:50%; left:50%; right:auto; bottom:auto;
  width:100%; height:100%;
  min-width:177.78vh;
  min-height:56.25vw;
  transform:translate(-50%,-50%) scale(1.06);
  transform-origin:center center;
  border:0;
  pointer-events:none;   /* nada de hover/clique: o YouTube não desenha UI e o scroll passa direto */
}
/* mantém o "soco" do reveal sem perder a centralização do cover */
@media (prefers-reduced-motion: reduce){
  .reveal-sticky.blown .reveal-media iframe{ animation:none; }
}

/* ===== BLIVING-GLOBAL (gerado de site-html-fonte/global.css) ===== */
/* Vale para o site todo: WhatsApp flutuante + menu do hambúrguer responsivo (8 itens). */
.bl-whats{position:fixed;right:24px;bottom:24px;z-index:50;width:72px;height:72px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;box-shadow:0 4px 16px rgba(0,0,0,.3);transition:transform .2s ease,box-shadow .2s ease;cursor:pointer}
.bl-whats svg{width:42px;height:42px}
.bl-whats,.bl-whats:link,.bl-whats:visited,.bl-whats:hover,.bl-whats:active,.bl-whats:focus,.bl-whats:focus-visible{background:#25d366!important;color:#fff!important;text-decoration:none!important;border:0!important;outline:0;-webkit-tap-highlight-color:transparent}
.bl-whats svg,.bl-whats svg path,.bl-whats:hover svg,.bl-whats:hover svg path,.bl-whats:active svg,.bl-whats:active svg path,.bl-whats:focus svg,.bl-whats:focus svg path{fill:#fff!important;color:#fff!important}
.bl-whats:hover,.bl-whats:focus{background:#1ebe5b!important;transform:scale(1.08);box-shadow:0 6px 20px rgba(0,0,0,.38)}
.bl-whats:active{background:#1aa851!important;transform:scale(.96)}
.bl-whats:focus-visible{box-shadow:0 0 0 3px #fff,0 0 0 6px #25d366,0 6px 20px rgba(0,0,0,.38)}
.menu-drawer.is-open nav a:nth-child(6){transition-delay:.40s}
.menu-drawer.is-open nav a:nth-child(7){transition-delay:.46s}
.menu-drawer.is-open nav a:nth-child(8){transition-delay:.52s}
.menu-drawer{padding:30px 24px;box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;align-items:stretch}
.menu-drawer nav{gap:clamp(8px,3.4vh,34px);margin:0;min-height:100%;justify-content:space-between}
.menu-drawer nav a{font-size:clamp(1.05rem,min(6vw,4.6vh),2.45rem)!important;line-height:1.25;text-align:center}
@media(max-width:860px){.bl-whats{right:16px;bottom:16px;width:62px;height:62px}.bl-whats svg{width:36px;height:36px}}

/* ===== BLIVING-SECOES-HOME (Números, Conheça Floripa, Instagram, faixa de abas, ajustes da home) ===== */
/* Seções escritas à mão: Instagram + números. Valores lidos da página publicada. */
.bl-insta{background:#faf8f4;padding:96px 60px 32px;min-height:100vh;box-sizing:border-box;display:flex;flex-direction:column;font-family:'Montserrat',sans-serif;color:#1b2933}
.bl-insta__kicker{display:flex;align-items:center;gap:10px;margin:0}
.bl-insta__kicker h2{margin:0;font-size:13px;font-weight:400;line-height:1.2;text-transform:uppercase;color:#a87b3c;white-space:nowrap}
.bl-insta__linha{flex:1;border-top:1px solid #d2ba9f}
.bl-insta__handle{margin:0;padding:10px 0;font-size:32px;font-weight:300;line-height:38.4px}
.bl-insta__handle a{color:inherit;text-decoration:none}
.bl-insta__sub{margin:0 0 14px;font-size:14px;line-height:21px;color:#5c6b73}
.bl-insta__grade{list-style:none;margin:0;padding:12px 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));justify-content:stretch;align-content:center;gap:16px;flex:1;min-height:0}
.bl-insta__grade li{aspect-ratio:3/4;background:#ece7de;overflow:hidden}
.bl-insta__grade a,.bl-insta__grade img{display:block;width:100%;height:100%}
.bl-insta__grade img{object-fit:cover}
.bl-insta__cta{margin-top:16px;flex:none}
.bl-numeros{background:#072432;color:#f0e9e1;min-height:100vh;padding:60px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;text-align:center;font-family:'Montserrat',sans-serif;border-bottom:1px solid #3f4e50}
.bl-numeros__in{width:100%;max-width:1140px}
.bl-numeros__kicker{margin:0 0 20px;font-size:15px;font-weight:500;line-height:15px;color:#d2ba9f}
.bl-numeros__titulo{margin:0 0 48px;font-size:clamp(24px,2.6vw,34px);font-weight:300;line-height:1.25;text-transform:uppercase;color:#efe9e9}
.bl-numeros__grade{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:48px}
.bl-num{display:flex;flex-direction:column;align-items:center}
.bl-num__v{font-size:clamp(38px,4vw,54px);font-weight:300;line-height:1.1;color:#f0e9e1}.bl-num__suf{font-size:.5em;letter-spacing:.02em}
.bl-num__t{font-size:16px;font-weight:300;line-height:40px;color:#d6cdc6}
.bl-numeros__botoes{display:flex;justify-content:center;align-items:center;gap:20px;flex-wrap:wrap}
@media(max-width:860px){.bl-insta{padding:116px 20px 24px}.bl-insta__handle{font-size:26px}.bl-insta__grade{grid-template-columns:repeat(2,minmax(0,1fr))}.bl-numeros{padding:40px 20px}.bl-numeros__titulo{font-size:26px;line-height:32px}.bl-numeros__grade{grid-template-columns:1fr}.bl-num__v{font-size:52px;line-height:56px}}
.hero-slider-sec,.bl-insta,.bl-numeros,.bl-floripa{-webkit-user-select:none;user-select:none}
.hero-static,.welcome,.reveal{-webkit-user-select:none;user-select:none}
/* Botão "Ver lançamentos" (dourado): ícone azul */
.bl-hero-cta.bl-btn-nude .bl-btn-icone{background:transparent;border:1.5px solid var(--azul-escuro);color:var(--azul-escuro)}
.bl-hero-cta.bl-btn-nude .bl-btn-icone svg{color:var(--azul-escuro)}
.hero-static,.welcome,.reveal,.hero-slider-sec,.bl-insta,.bl-numeros{cursor:grab}
html.is-arrastando,html.is-arrastando *{cursor:grabbing!important}
html.bl-deck{overflow:hidden}
/* WhatsApp flutuante (padrão de mercado) */
.bl-whats{position:fixed;right:24px;bottom:24px;z-index:50;width:72px;height:72px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;box-shadow:0 4px 16px rgba(0,0,0,.3);transition:transform .2s ease,box-shadow .2s ease;cursor:pointer}
.bl-whats svg{width:42px;height:42px}
/* trava cor em TODOS os estados (o tema pinta links de azul em hover/active/focus) */
.bl-whats,.bl-whats:link,.bl-whats:visited,.bl-whats:hover,.bl-whats:active,.bl-whats:focus,.bl-whats:focus-visible{background:#25d366!important;color:#fff!important;text-decoration:none!important;border:0!important;outline:0;-webkit-tap-highlight-color:transparent}
.bl-whats svg,.bl-whats svg path,.bl-whats:hover svg,.bl-whats:hover svg path,.bl-whats:active svg,.bl-whats:active svg path,.bl-whats:focus svg,.bl-whats:focus svg path{fill:#fff!important;color:#fff!important}
.bl-whats:hover,.bl-whats:focus{background:#1ebe5b!important;transform:scale(1.08);box-shadow:0 6px 20px rgba(0,0,0,.38)}
.bl-whats:active{background:#1aa851!important;transform:scale(.96)}
.bl-whats:focus-visible{box-shadow:0 0 0 3px #fff,0 0 0 6px #25d366,0 6px 20px rgba(0,0,0,.38)}
.hero-progress{right:96px!important}
@media(max-width:860px){.bl-whats{right:16px;bottom:16px;width:62px;height:62px}.bl-whats svg{width:36px;height:36px}.hero-progress{right:auto!important}}
.hero-cats{justify-content:safe center}
/* faixa de 7 abas: mais compacta para não encostar nas barrinhas de progresso */
.hero-cats{gap:clamp(18px,2.1vw,32px)}
@media(max-width:860px){.hero-cats{gap:20px}}
.hero-bottom .hero-cats{max-width:100%}

/* Seção "Conheça Floripa" (tela cheia, título e botão centralizados) */
.bl-floripa{position:relative;height:100vh;overflow:hidden;background:var(--azul-escuro)}
.bl-floripa .hero-slide{position:relative;width:100%;height:100%;overflow:hidden}
.bl-floripa .hero-copy,.bl-floripa .hero-slide.is-active .hero-copy{inset:0;max-width:none;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transform:none}
.bl-floripa .hero-copy h2{margin:0 0 28px}
/* barrinhas de progresso dos slides escondidas por enquanto */
.hero-progress{display:none!important}
/* menu do hambúrguer com 7 itens */
.menu-drawer.is-open nav a:nth-child(6){transition-delay:.40s}
.menu-drawer.is-open nav a:nth-child(7){transition-delay:.46s}
/* celular: a faixa de abas fica só no menu do hambúrguer */
@media(max-width:860px){.hero-bottom .hero-cats{display:none}}
.bl-numeros{border-bottom:0!important}
/* Números: faixa de abas embaixo, como nos slides */
.bl-numeros{position:relative}
/* Slide inicial: overlay bem delicado (camada uniforme + o degradê que já existia) para dar contraste à frase */
.hero-static .hero-slide::after{background:linear-gradient(180deg,rgba(var(--bl-ov-rgb,7,36,50),calc(var(--bl-ov,1)*.33)) 0%,rgba(var(--bl-ov-rgb,7,36,50),calc(var(--bl-ov,1)*.02)) 30%,rgba(var(--bl-ov-rgb,7,36,50),calc(var(--bl-ov,1)*.30)) 66%,rgba(var(--bl-ov-rgb,7,36,50),calc(var(--bl-ov,1)*.76)) 100%),rgba(var(--bl-ov-rgb,7,36,50),calc(var(--bl-ov,1)*.07))}
/* Frases dos slides um pouco menores no desktop */
@media(min-width:861px){.hero-copy h2{font-size:clamp(2rem,4.4vw,3.2rem)}}
.menu-drawer.is-open nav a:nth-child(8){transition-delay:.52s}
/* Barrinha de rolagem escondida: ela aparecia/sumia quando a trava dos slides ligava e desligava,
   fazendo a página pular para o lado. A navegação é por slides, então ela não faz falta. */
html:has(body.home){scrollbar-width:none;scrollbar-gutter:auto!important}
body.home::-webkit-scrollbar,html:has(body.home)::-webkit-scrollbar{display:none;width:0;height:0}
/* Menu do hambúrguer: se adapta à altura E à largura da tela, com respiro mínimo nas bordas.
   Fonte e espaçamento encolhem juntos quando a tela é baixa ou estreita; se ainda assim não couber, rola. */
.menu-drawer{padding:30px 24px;box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;align-items:stretch}
.menu-drawer nav{gap:clamp(8px,3.4vh,34px);margin:0;min-height:100%;justify-content:space-between}
.menu-drawer nav a{font-size:clamp(1.05rem,min(6vw,4.6vh),2.45rem)!important;line-height:1.25;text-align:center}

/* ===== Seções novas dentro do Elementor: o bloco delas é uma coluna de largura total, e elas
   ficam por cima da Lançamentos (que fica presa no fundo por causa do efeito cortina). ===== */
.elementor-element:has(>.elementor-widget-bliving_numeros),
.elementor-element:has(>.elementor-widget-bliving_floripa),
.elementor-element:has(>.elementor-widget-bliving_instagram){display:block!important;padding:0!important;margin:0!important;gap:0!important;width:100%!important;max-width:none!important;min-height:0!important}
.bl-numeros,.bl-floripa,.bl-insta{position:relative;z-index:5}

/* Zoom lento das fotos dos slides: opção "Zoom lento na foto" no painel (desligada por padrão).
   Desligado, a foto fica parada e sem ampliação — sem perda de nitidez. */
.bl-sem-zoom .hero-slide img,.bl-sem-zoom .hero-slide.is-active img{animation:none!important;transform:none!important}
.bl-sem-zoom .hero-slide video{transform:none!important;image-rendering:auto}

/* Cabeçalho das páginas internas: ao rolar, SÓ a linha de cima (logo, lupa, menu) acompanha a
   página, fixa, com fundo claro bem transparente e blur suave; a logo fica menor (57,5% do tamanho; na home não muda).
   A barra de abas de categorias continua no fluxo (não acompanha). O home.js liga .bl-rolou
   e guarda a altura da linha em --bl-linha-h para a página não "pular". Home: sem blur. */
.topo{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.topo .marca img{transition:height .3s ease}
.topo.bl-rolou{padding-top:var(--bl-linha-h,98px)}
.topo.bl-rolou .topo-linha{position:fixed;top:var(--wp-admin--admin-bar--height,0px);left:0;right:0;z-index:70;padding-top:8px!important;padding-bottom:8px!important;background:rgba(250,248,245,.6);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid rgba(227,221,210,.55);animation:bl-topo-desce .3s ease}
body .topo.bl-rolou .marca img{height:calc(var(--bl-logo-h,62px) * .575)!important}
@keyframes bl-topo-desce{from{transform:translateY(-100%)}to{transform:none}}
.hero-top.sobre-claro{-webkit-backdrop-filter:none;backdrop-filter:none}
/* busca e categorias: menos espaço entre a grade de imóveis e o rodapé */
.grade{padding-bottom:24px}

/* Faixa de abas também na tela do vídeo (reveal): surge junto com a legenda */
.reveal .hero-bottom{opacity:0;transition:opacity .5s ease;pointer-events:none}
.reveal.cap-on .hero-bottom{opacity:1;pointer-events:auto}


/* ===== Listagem de imóveis — ajustes pedidos pela Nessa (05/10) ===== */
/* 3 por linha (o widget deixa o cliente escolher 1 a 4, por aparelho) */
.grade,.destaques{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1100px){.grade,.destaques{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.grade,.destaques{grid-template-columns:1fr}}
/* cartão: sem o filtro azul na foto; local e código na foto; preço embaixo */
.cartao-img::after{height:34%;background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.42) 100%)}
.cartao-local{position:absolute;left:14px;right:14px;bottom:12px;z-index:2;display:flex;align-items:center;gap:7px;color:#fff;font-size:13.5px;font-weight:400;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.cartao-local svg{width:17px;height:17px;flex:none}
.cartao-codigo{position:absolute;top:12px;right:12px;z-index:2;background:var(--nude);color:#fff;font-size:13px;font-weight:600;letter-spacing:.04em;padding:6px 12px;font-variant-numeric:tabular-nums}
.cartao-valor{margin:8px 0 0;text-align:center;font-family:'Montserrat',sans-serif;font-size:15px;font-weight:600;letter-spacing:.02em;color:var(--azul-escuro);font-variant-numeric:tabular-nums}
.cartao-dados .cartao-local{position:static;display:inline;color:inherit;text-shadow:none}
/* "7 imóveis encontrados" na mesma cor azul da frase */
.listagem-contagem{color:var(--azul-escuro)}
/* filtros: rótulos elegantes (só a 1ª letra maiúscula) e campos alinhados */
.campo-rotulo,.busca-barra .campo>span.campo-rotulo{font-size:12.5px;font-weight:500;letter-spacing:.02em;text-transform:none;color:var(--azul-escuro)}
.busca-campos{align-items:end}
.busca-principal{grid-template-columns:repeat(3,minmax(0,1fr))}
.busca-livre .busca-principal{grid-template-columns:repeat(4,minmax(0,1fr))}
.busca-campos .campo{justify-content:flex-end}
.busca-campos input,.busca-campos select,.multi>summary{height:42px;box-sizing:border-box;padding:0 12px;line-height:40px;display:block}
.multi>summary{display:flex;line-height:normal}
.busca-extras{margin-top:14px}
.busca-extras>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--azul-escuro)}
.busca-extras>summary::-webkit-details-marker{display:none}
.busca-extras>summary::before{content:"+";display:inline-grid;place-items:center;width:20px;height:20px;border:1px solid var(--azul-escuro);border-radius:50%;font-size:14px;line-height:1}
.busca-extras[open]>summary::before{content:"–"}
.busca-extras .busca-campos{margin-top:14px;grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:980px){.busca-principal,.busca-livre .busca-principal,.busca-extras .busca-campos{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.busca-principal,.busca-livre .busca-principal,.busca-extras .busca-campos{grid-template-columns:1fr}}

/* Foto do imóvel sem sombra por padrão (pedido da Nessa); o widget liga/ajusta */
.cartao-img::after{opacity:0}
.cartao-local{text-shadow:0 1px 3px rgba(0,0,0,.65),0 2px 14px rgba(0,0,0,.45)}

/* Carregar mais / rolagem infinita da lista de imóveis */
.bl-mais{display:flex;flex-direction:column;align-items:center;gap:14px;padding:6px 5% 56px}
.bl-mais__info{margin:0;font-family:'Montserrat',sans-serif;font-size:12.5px;letter-spacing:.04em;color:var(--ink-soft)}
.bl-mais__link{display:inline-flex;align-items:center;gap:9px;font-family:'Montserrat',sans-serif;font-size:12.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;white-space:nowrap;color:var(--dourado);padding:6px 2px;border-bottom:1px solid currentColor;transition:gap .25s ease,opacity .2s}
.bl-mais__link svg{width:16px;height:16px;flex:0 0 auto}
.bl-mais__link:hover,.bl-mais__link:focus{gap:14px;opacity:.85;color:var(--dourado)}
.bl-mais--azul .bl-mais__link,.bl-mais--azul .bl-mais__link:hover,.bl-mais--azul .bl-mais__link:focus{color:var(--azul-escuro)}
.bl-mais__fim{width:100%;height:1px}

/* Vídeo do "B": sobreposição editável (Estilo > Sobreposição). Desligada por padrão. */
.reveal-veu{position:absolute;inset:0;pointer-events:none;background:rgba(var(--bl-ov-rgb,7,36,50),calc(.55 * var(--bl-ov,0)))}

/* WhatsApp flutuante: anel suave que sai do botão e some (mesmo efeito do site nowdigital.com.br).
   Liga/desliga em: widget "BLiving — WhatsApp flutuante" > Aparência > Animação pulsante. Parado se o visitante pediu menos movimento. */
.bl-whats--pulsa::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--bl-whats-anel,#25d366);pointer-events:none;opacity:0;animation:blWhatsAnel 2.2s ease-out infinite}
@keyframes blWhatsAnel{0%{opacity:.8;transform:scale(1)}100%{opacity:0;transform:scale(1.6)}}
@media(prefers-reduced-motion:reduce){.bl-whats--pulsa::after{animation:none;opacity:0}}

/* Escolha única (Valor, Dormitórios, Suítes...): mesmo visual do dropdown de Bairros, sem o <select> nativo */
.multi-unico .multi-lista input{position:absolute;opacity:0;width:0;height:0;margin:0;pointer-events:none}
.multi-unico .multi-lista label.is-sel{background:var(--surface);font-weight:600}
.multi-unico .multi-lista label{font-family:'Montserrat',sans-serif}
.multi-grupo{font-family:'Montserrat',sans-serif;font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);padding:10px 6px 3px}
.multi-unico .multi-painel{min-width:100%;width:max-content;max-width:min(360px,92vw)}
.multi-unico .multi-lista{max-height:340px}

/* Faixas de abas (home e páginas internas): se a letra crescer ou faltar espaço, as abas DESCEM para a linha de baixo
   (antes ficavam em uma linha só, com rolagem escondida, e as últimas sumiam). */
.hero-cats{flex-wrap:wrap;overflow:visible;justify-content:center;row-gap:4px}
.abas{flex-wrap:wrap;overflow:visible;row-gap:0}

/* Busca e categorias no celular/tablet: nada passa da largura da tela (filtros e cartões de imóveis) */
.busca-barra,.busca-campos,.busca-extras,.busca-acoes,.grade,.destaques,.listagem-topo{max-width:100%;box-sizing:border-box}
.busca-campos>*,.busca-extras,.busca-barra .campo,.grade>*,.destaques>*{min-width:0}
.busca-campos .faixa>*,.busca-barra .faixa>*{flex:1 1 0;min-width:0;width:100%}
.busca-campos input,.busca-campos select,.multi>summary{max-width:100%;min-width:0}
.cartao,.cartao-img,.cartao-dados{max-width:100%;min-width:0}
.cartao-titulo,.cartao-dados{overflow-wrap:anywhere}
@media (max-width:767px){
  .busca-acoes{flex-wrap:wrap;justify-content:center}
  .busca-acoes .busca-enviar{width:100%}
  .multi-painel,.multi-unico .multi-painel{max-width:100%;width:100%}
}
/* Menu tela cheia: sem barra de rolagem; a lista se encolhe para caber na altura da tela (CSS em vh + ajuste fino no home.js, que respeita o tamanho escolhido no Elementor como máximo) */
.menu-drawer{overflow-y:hidden}
.menu-drawer nav{max-height:none;overflow:visible;padding:0 20px;gap:clamp(4px,2vh,34px)}
.menu-drawer nav a{font-size:clamp(.85rem,min(6vw,3.8vh),2.45rem)!important;line-height:1.2}

/* ===== Flutuantes globais: WhatsApp + seta de voltar ao topo (a seta se empilha em cima do WhatsApp) =====
   Valores de partida (iguais aos do .bl-whats). Os widgets, quando preenchidos, os sobrescrevem no <body>. */
html{--bl-whats-dir:24px;--bl-whats-base:24px;--bl-whats-size:72px}
@media(max-width:860px){html{--bl-whats-dir:16px;--bl-whats-base:16px;--bl-whats-size:62px}}
.bl-seta{position:fixed;z-index:49;right:var(--bl-seta-dir,24px);bottom:var(--bl-seta-base,24px);width:var(--bl-seta-size,48px);height:var(--bl-seta-size,48px);padding:0;border:0;border-radius:50%;display:grid;place-items:center;background:var(--bl-seta-fundo,#072432);color:var(--bl-seta-cor,#fff);box-shadow:0 4px 14px rgba(0,0,0,.28);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .3s ease,transform .3s ease,visibility 0s linear .3s}
.bl-seta svg{width:46%;height:46%}
.bl-seta.is-on{opacity:1;visibility:visible;transform:none;transition:opacity .3s ease,transform .3s ease}
.bl-seta:hover,.bl-seta:focus{background:var(--bl-seta-fundo-h,var(--bl-seta-fundo,#072432));color:var(--bl-seta-cor-h,var(--bl-seta-cor,#fff));transform:scale(1.07)}
/* com WhatsApp na página: a seta sobe para ficar logo acima dele, centralizada no mesmo eixo */
body.bl-tem-whats .bl-seta{right:calc(var(--bl-whats-dir) + (var(--bl-whats-size) - var(--bl-seta-size,48px)) / 2);bottom:calc(var(--bl-whats-base) + var(--bl-whats-size) + var(--bl-seta-gap,14px))}

/* ===== Página de contato (widget "BLiving — Página de contato") ===== */
.bl-contato{--bl-ct-linha:var(--azul-escuro);--bl-ct-icone:var(--azul-escuro);--bl-ct-icone-tam:22px;--bl-ct-borda:#d6cdbc;--bl-ct-foco:var(--dourado);--bl-ct-campo:#fff;display:flex;flex-direction:column;font-family:'Montserrat',sans-serif;color:var(--azul-escuro);background:#fff}
.bl-contato--tela{min-height:calc(100vh - 98px)}
.bl-contato__wrap{width:100%;max-width:1160px;margin:0 auto;padding:0 clamp(20px,5vw,48px);box-sizing:border-box}
.bl-contato__topo{background:var(--bege-claro);padding:clamp(34px,5vw,64px) 0 clamp(30px,4.4vw,56px)}
.bl-contato__kicker{display:flex;align-items:center;gap:16px;margin:0 0 16px;font-size:12px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--azul-escuro)}
.bl-contato__kicker i{display:block;width:58px;height:1px;background:var(--dourado)}
.bl-contato__titulo{margin:0 0 18px;font-family:'Montserrat',sans-serif;font-weight:300;font-size:clamp(2rem,4.6vw,3.6rem);line-height:1.1;color:var(--azul-escuro)}
.bl-contato__sub{margin:0;max-width:720px;font-size:clamp(15px,1.5vw,18px);font-weight:300;line-height:1.6;color:var(--ink-soft)}
.bl-contato__corpo{flex:1;display:flex;align-items:center;padding:clamp(34px,5vw,64px) 0;background:#fff}
.bl-contato__cols{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:0;align-items:start}
.bl-contato__col--form{padding-right:clamp(24px,4.4vw,64px)}
.bl-contato__col--conversa{align-self:stretch;padding-left:clamp(24px,4.4vw,64px);border-left:1px solid var(--bl-ct-linha-v,var(--bl-ct-linha))}
.bl-contato__h2{margin:0 0 14px;font-family:'Montserrat',sans-serif;font-weight:300;font-size:clamp(1.6rem,3vw,2.35rem);line-height:1.12;color:var(--azul-escuro)}
.bl-contato__txt,.bl-contato__nota{margin:0 0 22px;font-size:15px;font-weight:300;line-height:1.65;color:var(--ink-soft)}
.bl-contato__nota{margin:16px 0 0;font-size:12.5px}
.bl-contato__botao{margin:0 0 30px}
/* informações (endereço, e-mail) e redes */
.bl-contato__info{position:relative;display:flex;align-items:flex-start;gap:16px;padding:22px 0 0;margin-top:20px}
.bl-contato__traco{position:absolute;left:0;top:0;width:56px;height:1px;background:var(--bl-ct-linha)}
.bl-contato__info-ic{flex:0 0 auto;width:26px;height:26px;color:var(--bl-ct-icone)}
.bl-contato__info-ic svg{width:100%;height:100%;display:block}
.bl-contato__rotulo{margin:0 0 5px;font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--azul-escuro)}
.bl-contato__info-txt{margin:0;font-size:15px;font-weight:300;line-height:1.55;color:var(--ink-soft)}
.bl-contato__info-txt a{color:inherit;text-decoration:none;transition:color .25s}
.bl-contato__info-txt a:hover{color:var(--dourado)}
.bl-contato__info--redes{padding-top:22px}
.bl-contato__redes{display:flex;align-items:center;gap:22px}
.bl-contato__redes a{display:inline-flex;align-items:center;justify-content:center;color:var(--bl-ct-icone);font-size:var(--bl-ct-icone-tam);line-height:1;text-decoration:none;transition:color .25s,transform .25s}
.bl-contato__redes a:hover{color:var(--dourado);transform:translateY(-2px)}
.bl-contato__redes svg{width:var(--bl-ct-icone-tam);height:var(--bl-ct-icone-tam);fill:currentColor}
.bl-contato__redes i{color:inherit}
/* formulário do Contact Form 7 no desenho de campos com borda */
.bl-contato .form-interesse label{display:block;margin:0 0 7px;font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--azul-escuro)}
.bl-contato .form-interesse form>p,.bl-contato .bl-form>p{margin:0 0 16px}
.bl-contato .form-interesse input[type=text],.bl-contato .form-interesse input[type=email],.bl-contato .form-interesse input[type=tel],.bl-contato .form-interesse select,.bl-contato .form-interesse textarea{box-sizing:border-box;width:100%;max-width:100%;padding:6px 0 9px;border:0;border-bottom:.8px solid var(--bl-ct-borda);border-radius:0;background:transparent;font:inherit;font-size:14px;font-weight:400;color:var(--azul-escuro);box-shadow:none;transition:border-color .2s}
.bl-contato .form-interesse select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23072432' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 2px center;background-size:16px;padding-right:26px}
.bl-contato .form-interesse textarea{min-height:52px;height:60px;resize:vertical;display:block}
.bl-contato .form-interesse input:focus,.bl-contato .form-interesse select:focus,.bl-contato .form-interesse textarea:focus{outline:0;border-bottom-color:var(--bl-ct-foco)}
/* opção do widget: campos em caixa completa (em vez de só o risquinho embaixo) */
.bl-campos-caixa .bl-contato .form-interesse input[type=text],.bl-campos-caixa .bl-contato .form-interesse input[type=email],.bl-campos-caixa .bl-contato .form-interesse input[type=tel],.bl-campos-caixa .bl-contato .form-interesse select,.bl-campos-caixa .bl-contato .form-interesse textarea{padding:13px 16px;border:1px solid var(--bl-ct-borda);background:var(--bl-ct-campo)}
.bl-campos-caixa .bl-contato .form-interesse select{background-position:right 14px center;padding-right:42px}
.bl-campos-caixa .bl-contato .form-interesse textarea{min-height:120px;height:130px}
.bl-campos-caixa .bl-contato .form-interesse input:focus,.bl-campos-caixa .bl-contato .form-interesse select:focus,.bl-campos-caixa .bl-contato .form-interesse textarea:focus{border-color:var(--bl-ct-foco)}
.bl-contato .form-interesse ::placeholder{color:#8a979d;opacity:1}
/* botão de enviar com o desenho do tema (.bl-btn): o CF7 usa o <button class="bl-btn bl-btn-escuro"> do formulário */
.bl-contato .form-interesse button.bl-btn{width:auto;max-width:100%;margin:6px 0 0;padding:5px 26px 5px 5px;border-radius:999px;font-size:15px;font-weight:400;letter-spacing:0;text-transform:none;white-space:nowrap}
.bl-contato .form-interesse button.bl-btn:hover{transform:scale(1.045)}
.bl-contato .wpcf7-spinner{display:inline-block;margin:0 0 0 12px;vertical-align:middle}
.bl-contato .wpcf7-not-valid-tip{font-size:11.5px;color:#c0392b;margin-top:5px}
.bl-contato .wpcf7-response-output{margin:16px 0 0;padding:11px 14px;font-size:13px;border-width:1px}
.bl-contato .wpcf7-response-output:empty{display:none;margin:0;padding:0;border:0}
@media(max-width:900px){
  .bl-contato__cols{grid-template-columns:1fr}
  .bl-contato__col--form{padding-right:0}
  .bl-contato__col--conversa{padding-left:0;margin-top:44px;padding-top:36px;border-left:0;border-top:1px solid var(--bl-ct-linha-v,var(--bl-ct-linha))}
  .bl-contato--tela{min-height:0}
}
.bl-contato fieldset.hidden-fields-container,.bl-contato .hidden-fields-container{display:none!important;border:0;padding:0;margin:0}

/* Botão BRANCO nas seções da home (capa, slides, Conheça Floripa): o ícone "vazado" branco sumia no fundo branco; agora é azul, igual à letra */
.bl-hero-cta.bl-btn-branco .bl-btn-icone{background:transparent;border:1.5px solid var(--azul-escuro);color:var(--azul-escuro)}
.bl-hero-cta.bl-btn-branco .bl-btn-icone svg{color:var(--azul-escuro)}

/* Instagram: colunas escolhidas no widget (2 a 5, separadas para computador, tablet e celular) */
.bl-insta__grade{grid-template-columns:repeat(var(--bl-ig-cols,4),minmax(0,1fr))}
@media(max-width:1024px){.bl-insta__grade{grid-template-columns:repeat(var(--bl-ig-cols-t,var(--bl-ig-cols,4)),minmax(0,1fr))}}
@media(max-width:767px){.bl-insta__grade{grid-template-columns:repeat(var(--bl-ig-cols-m,2),minmax(0,1fr))}}

/* Rodapé: os widgets flutuantes (WhatsApp e seta) ficam em um bloco que não pode ocupar espaço — com 2 widgets, o primeiro ganhava a margem padrão (20px)
   e aparecia uma faixa bege embaixo do rodapé. Vale também no editor. */
body:not(.elementor-editor-active) .elementor-widget-bliving_whats,body:not(.elementor-editor-active) .elementor-widget-bliving_seta{margin:0!important;padding:0!important;height:0!important;min-height:0!important}
.elementor-widget-bliving_whats>.elementor-widget-container,.elementor-widget-bliving_seta>.elementor-widget-container{margin:0!important;padding:0!important}
.e-con:has(>.elementor-widget-bliving_whats),.e-con:has(>.elementor-widget-bliving_seta){--padding-top:0px!important;--padding-bottom:0px!important;--padding-left:0px!important;--padding-right:0px!important;--gap:0px!important;--row-gap:0px!important;--column-gap:0px!important;padding:0!important;gap:0!important;min-height:0!important;margin:0!important}

/* Seta ABAIXO do WhatsApp (opção do widget da seta): a seta ocupa o lugar de baixo e o WhatsApp sobe logo acima dela */
body.bl-tem-whats.bl-seta-abaixo .bl-seta{bottom:var(--bl-whats-base)}
body.bl-tem-whats.bl-seta-abaixo .bl-whats{bottom:calc(var(--bl-whats-base) + var(--bl-seta-size,48px) + var(--bl-seta-gap,14px))!important}

/* Página de texto (política de privacidade, termos...): faixa de título igual à do contato + texto livre embaixo */
.bl-ptexto__corpo{flex:1;padding:clamp(34px,5vw,64px) 0 clamp(54px,7vw,96px);background:#fff}
.bl-ptexto__texto{max-width:860px;font-family:'Montserrat',sans-serif;color:var(--ink-soft)}
.bl-ptexto__texto p,.bl-ptexto__texto li{margin:0 0 1em;font-size:15.5px;font-weight:300;line-height:1.75;color:var(--ink-soft)}
.bl-ptexto__texto strong{font-weight:600;color:var(--azul-escuro)}
.bl-ptexto__texto h2{margin:2.1em 0 .6em;font-family:'Montserrat',sans-serif;font-size:clamp(1.2rem,2vw,1.55rem);font-weight:400;line-height:1.25;color:var(--azul-escuro)}
.bl-ptexto__texto h2:first-child{margin-top:0}
.bl-ptexto__texto h3{margin:1.6em 0 .5em;font-family:'Montserrat',sans-serif;font-size:1.05rem;font-weight:600;color:var(--azul-escuro)}
.bl-ptexto__texto ul,.bl-ptexto__texto ol{margin:0 0 1.2em;padding-left:1.35em}
.bl-ptexto__texto li{margin-bottom:.45em}
.bl-ptexto__texto a{color:var(--dourado);text-decoration:underline;text-underline-offset:3px;transition:color .2s}
.bl-ptexto__texto a:hover{color:var(--azul-escuro)}

/* Botão branco com ícone vazado na página de contato: círculo azul, como a letra (o vazado padrão é branco) */
.bl-contato__botao .bl-btn-branco.bl-btn--ico-vazado .bl-btn-icone{background:transparent;border:1.5px solid var(--azul-escuro);color:var(--azul-escuro)}
.bl-contato__botao .bl-btn-branco.bl-btn--ico-vazado .bl-btn-icone svg{color:var(--azul-escuro)}

/* Aviso dos widgets flutuantes no editor do Elementor (o botão de verdade aparece no canto da tela, na posição real) */
.bl-flut-chip{display:block;margin:0;padding:6px 10px;font:12px/1.4 Montserrat,sans-serif;color:#072432;background:#f0e9e1;border:1px dashed #a87b3c;border-radius:4px;text-align:center}
.bl-flut-chip--off{color:#8a3b3b;background:#f7e9e9;border-color:#c98;}
