.crs-galeria-imagens-imovel {position:relative}
/* Apenas nos cards da campanha: permite que as setas do Swiper fiquem acima da tarja.
   O container do slider nao pode formar um contexto de empilhamento separado. */
.card-imovel:has(> .bf-ribbon) > .crs-galeria-imagens-imovel {
  z-index: auto !important;
}
.card-imovel:has(> .bf-ribbon) > .crs-galeria-imagens-imovel .swiper-button-ant,
.card-imovel:has(> .bf-ribbon) > .crs-galeria-imagens-imovel .swiper-button-prox {
  z-index: 30;
}
/* Swiper com apenas uma imagem (ou placeholder) no modo lista.
   Evita que a largura intrinseca do slide encolha a galeria no grid. */
.card-imovel.menor.grid-card-new > .crs-galeria-imagens-imovel.list {
  width: 100% !important;
  min-width: 0;
}
.card-imovel.menor.grid-card-new > .crs-galeria-imagens-imovel.list > .swiper-wrapper > .swiper-slide:only-child {
  width: 100% !important;
  min-width: 0;
}
.card-imovel.menor.grid-card-new > .crs-galeria-imagens-imovel.list > .swiper-wrapper > .swiper-slide:only-child .img-imovel-site {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Identidade da campanha Black Friday - escopo restrito. */
.bf-menu-link.lk-menu {display:inline-flex;align-items:center;justify-content:center;background:#101010!important;color:#ffdd43!important;border:1px solid #ffdd43;border-radius:7px;padding:10px 16px!important;font-family:Poppins,sans-serif;font-size:14px;font-weight:700;line-height:1.2;text-decoration:none;white-space:nowrap;transition:background .2s,color .2s,transform .2s}
.bf-menu-link.lk-menu:hover,.bf-menu-link.lk-menu:focus-visible {background:#ffdd43!important;color:#111!important;transform:translateY(-1px)}
/* Faixa diagonal prolongada para o interior dos cards 279x300 (lista) e 346x300 (grid).
   Area exterior transparente, recorte exclusivamente no canto superior direito. */
.bf-ribbon {
  position: absolute;
  top: 0;
  right: 0;
  width: 222px;
  height: 182px;
  overflow: hidden;
  background: transparent;
  pointer-events: none;
  z-index: 5;
}
.bf-ribbon-label {
  position: absolute;
  top: 45px;
  right: -60px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 298px;
  height: 40px;
  padding: 0;
  transform: rotate(43deg);
  transform-origin: center;
  background: linear-gradient(180deg,#262626 0%,#090909 56%,#161616 100%);
  border-top: 2px solid #f7dd89;
  border-bottom: 2px solid #cb8b2c;
  box-shadow: 0 5px 10px rgba(0,0,0,.25);
  color: transparent;
  -webkit-text-fill-color: transparent;
  font-family: Poppins,Arial,sans-serif;
  font-size: 0;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .02em;
  text-align: center;
  white-space: nowrap;
}
/* O texto fica centralizado na parte visivel da diagonal (nao no trecho recortado). */
.bf-ribbon-label::after {
  content: "BLACK FRIDAY";
  position: absolute;
  left: calc(50% + 12px);
  top: 50%;
  transform: translate(-50%, -50%);
  color: #f6dc84;
  -webkit-text-fill-color: #f6dc84;
  font: 800 15px/1 Poppins,Arial,sans-serif;
  letter-spacing: .02em;
  white-space: nowrap;
  text-align: center;
}
/* Menus mobile existentes mantidos. A tarja reduz proporcionalmente. */
@media(max-width:767px) {
  .bf-menu-link.lk-menu.vs-mobile {display:inline-flex;width:fit-content;max-width:calc(100% - 30px);margin:8px 15px 16px}
  .bf-ribbon {width:188px;height:168px}
  .bf-ribbon-label {top:46px;right:-43px;width:244px;height:37px;transform:rotate(43deg)}
  .bf-ribbon-label::after {left:calc(50% + 9px);font-size:13px}
}

/* Cabecalho da campanha: desktop compacto, sem quebra em 1024px. */
.bf-topbar-link {display:none!important}
@media screen and (min-width:992px) and (max-width:1199px) {
  .ec-cont.estilo-topo {
    width:calc(100% - 24px);
    max-width:none;
    padding-left:16px;
    gap:6px;
    flex-flow:row nowrap;
    justify-content:space-between;
  }
  .ec-cont.estilo-topo > .logo {
    flex:0 0 118px;
    width:118px;
    min-width:0;
  }
  .ec-cont.estilo-topo > #topo-pc {
    flex:1 1 auto;
    min-width:0;
    margin:0;
    justify-content:center!important;
    gap:0;
    white-space:nowrap;
  }
  #topo-pc > .lk-menu {
    margin-left:0;
    margin-right:0;
    padding:8px 7px;
    font-size:12px;
    white-space:nowrap;
  }
  #topo-pc > .bf-menu-link.lk-menu {
    margin-left:5px;
    padding:9px 10px!important;
    font-size:12px;
  }
  .ec-cont.estilo-topo > .cont-botoes-topo {
    flex:0 0 auto;
    right:0;
  }
  .ec-cont.estilo-topo .bts-topo {
    padding-left:12px;
    padding-right:12px;
  }
}
/* Tablet e celular: botao promocional visivel na faixa branca, ao lado da logo. */
@media screen and (max-width:991px) {
  .ec-cont.estilo-topo > .logo {flex:0 1 150px;min-width:0}
  .ec-cont.estilo-topo > .bf-topbar-link.lk-menu {
    display:inline-flex!important;
    flex:0 0 auto;
    margin:0 clamp(30px, 9vw, 95px) 0 auto;
    padding:10px 13px!important;
    font-size:13px;
    line-height:1.2;
  }
}
@media screen and (max-width:479px) {
  .ec-cont.estilo-topo {padding-right:8px}
  .ec-cont.estilo-topo > .logo {flex:0 1 118px;width:118px;margin-left:8px}
  .ec-cont.estilo-topo > .bt-menu {flex-basis:50px;width:50px;padding-left:12px;padding-right:12px}
  .ec-cont.estilo-topo > .bf-topbar-link.lk-menu {
    margin-right:clamp(12px, 5vw, 28px);
    padding:9px 10px!important;
    font-size:12px;
  }
}

/* v15: a tarja pertence ao card e nao ao Swiper.
   Nao alterar dimensoes, altura ou distribuicao das fotografias. */
.card-imovel:has(> .bf-ribbon) {
  position: relative;
}
.card-imovel > .bf-ribbon {
  top: 0;
  right: 0;
}
/* Na lista, a fotografia ocupa os primeiros 40% do card;
   a tarja deve terminar no limite dessa coluna, nao no texto. */
.card-imovel.menor.grid-card-new > .bf-ribbon {
  right: 60%;
}
