/* Google Font */
@import url("https://fonts.googleapis.com/css2?family=Palanquin:wght@300;400;500;600;700&display=swap");

/* === BLOCK: html_bigptest === */
.bp-full-width-banner {
  background-color: #6b4fa0;
  background-image: linear-gradient(rgba(45, 26, 61, 0.72), rgba(45, 26, 61, 0.72)), url('../../../image/catalog/assets/2024/11/bigpires-slide-header2@2x-scaled.jpg');
  background-size: cover;
  background-position: center;
  width: 100vw;
  position: relative;
  left: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  margin-top: 0;
  box-sizing: border-box;
}

.bp-inner-container {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 60px;
  max-width: 960px;
  min-height: 220px;
  margin: 0 auto;
  padding: 32px 24px;
  box-sizing: border-box;
}

.bp-column {
  display: flex;
  align-items: center;
  box-sizing: border-box;
}

.bp-col-logo {
  flex: 0 0 auto;
  justify-content: center;
}

.bp-col-text {
  flex: 1 1 300px;
  justify-content: flex-start;
}

.bp-logo-img {
  display: block;
  width: 180px;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

.bp-text {
  font-family: 'Palanquin', sans-serif;
  font-size: 1.1rem;
  font-weight: 400;
  line-height: 1.75;
  color: #ffffff;
  margin: 0;
}

/* Tablet (≤ 768px) — coluna única, centrado */
@media (max-width: 768px) {
  .bp-inner-container {
    flex-direction: column;
    gap: 28px;
    padding: 48px 24px;
    text-align: center;
  }
  .bp-col-text {
    justify-content: center;
  }
  .bp-text {
    text-align: center;
    font-size: 1rem;
  }
  .bp-logo-img {
    width: 140px;
  }
}

/* Mobile (≤ 480px) */
@media (max-width: 480px) {
  .bp-inner-container {
    padding: 36px 20px;
    gap: 20px;
  }
  .bp-logo-img {
    width: 120px;
  }
  .bp-text {
    font-size: 0.95rem;
  }
}

/* === BLOCK: html_imgbanner (fundida com html_collormodule) === */
/* Secção única full-bleed: foto (esquerda) + seletor de cor (direita) */
.bp-color-section-wrapper {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  background: #fff;
  overflow: hidden;
  box-sizing: border-box;
}

.bp-color-section-container {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 0;
  width: 100%;
  margin: 0;
  box-sizing: border-box;
}

/* ── Coluna da foto (esquerda) ── */
.bp-color-photo-col {
  flex: 1 1 42%;
  min-width: 0;
}

/* CONTENTOR DO SLIDER — preenche a altura da coluna */
.bp-slider {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 640px;
    background-color: #000;
}

/* CONFIGURAÇÃO BASE DE CADA SLIDE */
.bp-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    box-sizing: border-box;
    /* Animação infinita de fade (3 slides = 9 segundos no total, 3s cada) */
    animation: bpFadeSlider 9s infinite ease-in-out;
}

/* Contentor da Imagem de Fundo */
.bp-slide-img-container {
    width: 100%;
    height: 100%;
}

.bp-slide-img-container img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Garante que preenche sem distorcer */
    object-position: center;
}

/* TEXTO SOBREPOSTO (Centralizado vertical e horizontalmente) */
.bp-slide-content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: end;
    align-items: center;
    padding: 0 100px;
    box-sizing: border-box;
}

.bp-slide-text {
    font-family: 'Palanquin', 'Roboto', sans-serif;
    font-size: 64px; /* --e-global-typography-primary-font-size */
    font-weight: 500;
    line-height: 1.2;
    color: #ffffff;
    text-align: center;
    text-shadow: 2px 2px 8px rgba(0,0,0,0.5);
}

/* Cor específica para a palavra "seguro" extraída do teu HTML */
.bp-slide-text span {
    font-weight: 700;
    color: #39323D; /* Mantido o cinza escuro original do teu span */
    padding: 0 15px;
    border-radius: 4px;
    display: inline-block;
}

/* TIMINGS DA ANIMAÇÃO DE FADE AUTOMÁTICO (Sem JavaScript) */
.bp-slide:nth-child(1) { animation-delay: 0s; }
.bp-slide:nth-child(2) { animation-delay: 3s; }
.bp-slide:nth-child(3) { animation-delay: 6s; }

@keyframes bpFadeSlider {
    0% { opacity: 0; visibility: hidden; }
    4% { opacity: 1; visibility: visible; }
    33.33% { opacity: 1; visibility: visible; }
    37.33% { opacity: 0; visibility: hidden; }
    100% { opacity: 0; visibility: hidden; }
}

/* RESPONSIVIDADE (Alturas adaptadas exatamente ao teu código Elementor) */

/* Tablets: a foto empilha por cima do seletor de cor */
@media (max-width: 1024px) {
    .bp-color-section-container {
        flex-direction: column;
    }
    .bp-color-photo-col {
        flex: none;
        width: 100%;
    }
    .bp-slider {
        min-height: 470px; /* slider_height_tablet */
    }
    .bp-slide-text {
        font-size: 46px;
    }
}

/* Smartphones */
@media (max-width: 768px) {
    .bp-slider {
        min-height: 300px; /* slider_height_mobile */
    }
    .bp-slide-text {
        font-size: 28px;
    }
    .bp-slide-text span {
        padding: 0 8px;
    }
}

/* ── Coluna do seletor de cor (direita) ── */
.bp-switcher-container {
  flex: 1 1 58%;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 40px;
  padding: 48px 40px;
  box-sizing: border-box;
}

/* ── Coluna esquerda: largura fixa ── */
.bp-switcher-info {
  flex: 0 0 360px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 36px;
}

/* ── Paleta de cores ── */
.bp-color-palette {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.bp-color-btn {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  border: 1.5px solid rgba(0,0,0,0.1);
  cursor: pointer;
  padding: 0;
  outline: none;
  transition: transform 0.18s ease, outline 0.12s ease;
}

.bp-color-btn:hover  { transform: scale(1.12); }
.bp-color-btn.active { outline: 3px solid #333; outline-offset: 3px; }

.color-preto    { background: #262729; }
.color-cinza    { background: #6c7576; }
.color-bege     { background: #f7dcb4; }
.color-azul     { background: #034b8c; }
.color-ciano    { background: #1be0d7; }
.color-marrom   { background: #7d4b36; }
.color-verde    { background: #7a9467; }
.color-vermelho { background: #be2942; }
.color-vinho    { background: #9c2a57; }

/* ── Título ── */
.bp-switcher-title {
  font-family: 'Palanquin', sans-serif;
  font-size: clamp(2rem, 3vw, 3.2rem);
  font-weight: 400;
  line-height: 1.2;
  color: #33313b;
  margin: 0;
}
.bp-switcher-title b { font-weight: 700; }

/* ── Botão CTA ── */
.bp-btn-more {
  display: inline-block;
  font-family: 'Palanquin', sans-serif;
  font-size: 0.9rem;
  color: #333;
  background: #fff;
  text-decoration: none;
  padding: 12px 28px;
  border: 1.5px solid #999;
  border-radius: 6px;
  transition: background 0.2s, border-color 0.2s;
}
.bp-btn-more:hover {
  background: #f5f5f5;
  border-color: #333;
  color: #333;
  text-decoration: none;
}

/* ── Galeria: cresce para preencher, mantém proporção 16:9 ── */
.bp-switcher-gallery {
  flex: 1 1 0;
  position: relative;
  aspect-ratio: 16 / 9;
  min-width: 0;
}

/* Todos os frames empilhados, invisíveis */
.bp-image-frame {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.35s ease;
  pointer-events: none;
}

/* Só o frame activo é visível */
.bp-image-frame.active {
  opacity: 1;
  pointer-events: auto;
}

.bp-image-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 16px;
  box-shadow: 0 12px 32px rgba(0,0,0,0.10);
  display: block;
}

/* ── Tablet (≤ 992px): coluna única ── */
@media (max-width: 992px) {
  .bp-switcher-container {
    flex-direction: column;
    padding: 48px 20px;
    gap: 32px;
  }
  .bp-switcher-info {
    flex: none;
    width: 100%;
    align-items: center;
    text-align: center;
  }
  .bp-switcher-title {
    text-align: center;
  }
  .bp-color-palette {
    justify-content: center;
  }
  .bp-switcher-gallery {
    width: 100%;
    flex: none;
  }
}

/* ── Mobile (≤ 576px) ── */
@media (max-width: 576px) {
  .bp-switcher-container {
    padding: 36px 16px;
    gap: 24px;
  }
  .bp-color-btn {
    width: 34px;
    height: 34px;
    border-radius: 6px;
  }
  .bp-btn-more {
    font-size: 0.85rem;
    padding: 10px 20px;
    text-align: center;
  }
}

/* === BLOCK: html_marquee === */
/* FORÇAR 100% DA LARGURA DA TELA NO OPENCART */
.bp-studios-marquee-wrapper {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    overflow: hidden;
    background-color: #ffffff;
    box-sizing: border-box;
    padding: 0;
}

/* CONTAINER TOTAL DO MARQUEE FIXADO EM 70% DA TELA */
.bp-studios-marquee-container {
    position: relative;
    width: 100%;
    height: 40vh;
    display: flex;
    overflow: hidden;
    box-sizing: border-box;
}

/* TRACK DA ANIMAÇÃO INFINITA (Calculado com base na largura das 16 fotos) */
.bp-marquee-track {
    display: flex;
    width: calc(50vh * 16);
    height: 100%;
    animation: bpMarqueeRun 45s linear infinite; /* Movimento ligeiramente ajustado devido ao tamanho */
}

/* Pausa a animação ao passar o rato */
.bp-marquee-track:hover {
    animation-play-state: paused;
}

/* CADA IMAGEM ADAPTADA PROPORCIONALMENTE EM RELAÇÃO AOS 70VH */
.bp-marquee-slide {
    width: 50vh;
    height: 100%;
    flex-shrink: 0;
}

.bp-marquee-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Garante o enquadramento sem esticar horizontalmente */
    display: block;
}

/* EMBLEMA DO LOGÓTIPO (AMPLIADO PARA O TAMANHO DE 70VH) */
.bp-marquee-logo-badge {
    position: absolute;
    bottom: 0;
    left: 0;
    background-color: #ffffff;
    padding: 0px 60px 3px 40px; /* Aumentado ligeiramente o preenchimento branco */
    border-top-right-radius: 80px; /* Curvatura maior para bater certo com a escala */
    box-shadow: 5px -5px 25px rgba(0, 0, 0, 0.06);
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
}

.bp-marquee-logo-badge img {
    max-width: 290px; /* Logótipo mais imponente acompanhando a altura */
    height: auto;
    display: block;
}

/* LÓGICA DE MOVIMENTO NO DESKTOP */
@keyframes bpMarqueeRun {
    0% { transform: translateX(0); }
    100% { transform: translateX(calc(-50vh * 8)); } /* Move exatamente metade do comprimento da track */
}

/* ==========================================================================
   REGRAS DE RESPONSIVIDADE EM ALTURA E MOBILE
   ========================================================================== */

/* Em Tablets ou ecrãs horizontais menores, o 70vh pode ficar muito alto; suavizamos */
@media (max-width: 1024px) {
    .bp-studios-marquee-container {
        height: 34vh; /* Altura otimizada para tablets não quebrarem o layout */
    }
    .bp-marquee-track {
        width: calc(40vh * 16);
    }
    .bp-marquee-slide {
        width: 40vh;
    }
    @keyframes bpMarqueeRun {
        0% { transform: translateX(0); }
        100% { transform: translateX(calc(-40vh * 8)); }
    }
    .bp-marquee-logo-badge {
        padding: 25px 45px 15px 25px;
        border-top-right-radius: 55px;
    }
    .bp-marquee-logo-badge img {
        max-width: 200px;
    }
}

/* Smartphones (Aqui tiramos o VH para evitar problemas com teclados virtuais e barras de navegação) */
@media (max-width: 768px) {
    .bp-studios-marquee-container {
        height: 220px; /* Altura fixa segura e imponente para smartphones */
    }
    .bp-marquee-slide {
        width: 240px;
        height: 100%;
    }
    .bp-marquee-track {
        width: calc(240px * 16);
        animation-duration: 28s;
    }
    @keyframes bpMarqueeRun {
        0% { transform: translateX(0); }
        100% { transform: translateX(calc(-240px * 8)); }
    }
    .bp-marquee-logo-badge {
        padding: 15px 30px 10px 15px;
        border-top-right-radius: 40px;
    }
    .bp-marquee-logo-badge img {
        max-width: 150px;
    }
}

/* === BLOCK: html_servicos === */
/* ── Wrapper full-width ── */
.bp-stats-wrapper {
  width: 100vw;
  position: relative;
  left: 50%;
  margin-left: -50vw;
  background: #f5f5f5;
  box-sizing: border-box;
}

/* ── Container: 2 colunas separadas por linha vertical ── */
.bp-stats-container {
  display: flex;
  flex-direction: row;
  align-items: center;
  max-width: 1100px;
  margin: 0 auto;
  padding: 40px 24px;
  box-sizing: border-box;
}

/* ── Coluna esquerda ── */
.bp-stats-left {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding-right: 56px;
}

.bp-stats-main-title {
  font-family: 'Palanquin', sans-serif;
  font-size: clamp(2rem, 3.2vw, 3.2rem);
  font-weight: 500;
  line-height: 1.15;
  color: #39323D;
  margin: 0;
}

/* "100 estúdios" em roxo, na linha seguinte */
.bp-stats-main-title b {
  font-weight: 700;
  color: #6b4fa0;
  display: block;
}

.bp-stats-sub-title {
  font-family: 'Palanquin', sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 2px;
  color: #999;
  text-transform: uppercase;
  margin: 0;
}

/* ── Coluna direita: separador vertical à esquerda ── */
.bp-stats-right {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  gap: 32px;
  border-left: 1.5px solid #ddd;
  padding-left: 56px;
}

.bp-stats-text {
  font-family: 'Palanquin', sans-serif;
  font-size: 1rem;
  line-height: 1.75;
  color: #39323D;
  margin: 0;
}

.bp-stats-btn {
  display: inline-block;
  align-self: flex-start;
  font-family: 'Palanquin', sans-serif;
  font-size: 0.95rem;
  font-weight: 500;
  color: #fff !important;
  background: #6b4fa0;
  text-decoration: none;
  padding: 13px 28px;
  border-radius: 6px;
  transition: background 0.2s, transform 0.18s;
}

.bp-stats-btn:hover {
  background: #5a3d8a;
  transform: translateY(-2px);
  color: #fff !important;
  text-decoration: none;
}

/* ── Tablet / Mobile (≤ 768px): empilha, separador horizontal ── */
@media (max-width: 768px) {
  .bp-stats-container {
    flex-direction: column;
    align-items: flex-start;
    padding: 48px 20px;
  }
  .bp-stats-left {
    padding-right: 0;
    padding-bottom: 32px;
    width: 100%;
  }
  .bp-stats-right {
    border-left: none;
    border-top: 1.5px solid #ddd;
    padding-left: 0;
    padding-top: 32px;
    width: 100%;
    gap: 24px;
  }
  .bp-stats-btn {
    align-self: stretch;
    text-align: center;
  }
}

/* ── Mobile pequeno (≤ 480px) ── */
@media (max-width: 480px) {
  .bp-stats-container { padding: 40px 16px; }
}

/* === BLOCK: html_brands === */
/* PREENCHIMENTO COMPLETO DA LARGURA DA TELA */
.bp-clients-carousel-wrapper {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    background-color: #f5f5f5; /* Cor cinza clara original (DIV-0) */
    overflow: hidden;
    box-sizing: border-box;
    padding: 24px 0; /* Padding vertical elegante para afastar das secções vizinhas */
}

/* CONTENTOR PRINCIPAL */
.bp-clients-carousel-container {
    width: 100%;
    display: flex;
    overflow: hidden;
    position: relative;
    align-items: center;
}

/* TRACK COORDENADA COM ANIMAÇÃO (Acomoda 26 slides de 160px) */
.bp-clients-track {
    display: flex;
    width: calc(160px * 26);
    animation: bpClientsMarquee 40s linear infinite;
}

/* Pausa a animação ao passar o rato (pause_on_hover: yes) */
.bp-clients-track:hover {
    animation-play-state: paused;
}

/* CARACTERÍSTICAS DOS SLIDES INDIVIDUAIS */
.bp-clients-slide {
    width: 160px; /* Alinhamento uniforme para exibir múltiplos logótipos em simultâneo */
    height: 150px; /* Altura exata da imagem extraída do teu código (IMG-0) */
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 0 15px;
    box-sizing: border-box;
}

.bp-clients-slide img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain; /* Garante que os logótipos não ficam distorcidos */
    display: block;
    filter: grayscale(100%); /* Opcional: Torna os logos cinzentos uniformes */
    opacity: 0.7;
    transition: opacity 0.2s, filter 0.2s;
}

/* Destaca o logótipo original em hover */
.bp-clients-slide img:hover {
    filter: grayscale(0%);
    opacity: 1;
}

/* ANIMAÇÃO EM KEYFRAME PARA O DESLIZAMENTO INFINITO */
@keyframes bpClientsMarquee {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(calc(-160px * 13)); /* Move exatamente a metade correspondente aos primeiros 13 logos */
    }
}

/* RESPONSIVIDADE AUTOMÁTICA EM COMPUTAÇÃO MÓVEL */
@media (max-width: 768px) {
    .bp-clients-carousel-wrapper {
        padding: 25px 0;
    }
    .bp-clients-slide {
        width: 120px; /* Ajusta o tamanho dos logos para telemóveis pequenos */
        height: 110px;
    }
    .bp-clients-track {
        width: calc(120px * 26);
        animation-duration: 25s; /* Ajusta a velocidade proporcionalmente */
    }
    @keyframes bpClientsMarquee {
        0% { transform: translateX(0); }
        100% { transform: translateX(calc(-120px * 13)); }
    }
}

/* === BLOCK: html_materia === */
/* FORÇAR 100% LARGURA DA TELA NO OPENCART */
.bp-materials-wrapper {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    background-color: #f5f5f5;
    box-sizing: border-box;
    overflow: hidden;
}

/* CONTAINER INTEGRADO A 70VH DA ALTURA DA TELA */
.bp-materials-container {
    max-width: 1440px;
    min-height: 70vh;
    margin: 0 auto;
    padding: 60px 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 50px;
    box-sizing: border-box;
    animation: bpMaterialFadeInUp 0.8s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

.bp-materials-header {
    display: flex;
    flex-direction: column;
    align-items: center; 
    text-align: center;  
    width: 100%;
}

.bp-mat-subtitle {
    font-family: 'Palanquin', 'Roboto', sans-serif;
    font-size: 18px;
    font-weight: 500;
    color: #68467C;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 5px;
}

.bp-materials-main-title {
    font-family: 'Palanquin', sans-serif;
    font-size: 64px;
    font-weight: 500;
    line-height: 1.15;
    color: #39323D;
    margin: 0;
}

.bp-materials-main-title b {
    font-weight: 700;
}

/* GRELHA DOS TRÊS CARDS */
.bp-materials-grid {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 30px;
    width: 100%;
}

/* CONFIGURAÇÃO DOS CARDS */
.bp-mat-card {
    flex: 1 1 350px;
    border-radius: 20px;
    position: relative; 
    overflow: hidden;
    min-height: 240px;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.bp-mat-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 30px rgba(0,0,0,0.1);
}

/* IMAGEM ESTRUTURAL (PREENCHE TODO O CARD COMO SE FOSSE O BACKGROUND-COLOR) */
.bp-card-bg-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* Garante o recorte perfeito e responsivo */
    z-index: 1; /* Fica no fundo total, sem overlays por cima */
    pointer-events: none;
}

/* CAMADA DO CONTEÚDO (TEXTOS) */
.bp-mat-content {
    position: relative;
    z-index: 2; /* Renderiza acima da imagem */
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
}

.bp-mat-card-title {
    font-family: 'Palanquin', sans-serif;
    font-size: 26px;
    font-weight: 700;
    margin: 0;
}

.bp-mat-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.bp-mat-list li {
    font-family: 'Palanquin', sans-serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.4;
}

.bp-mat-item-icon {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* ESQUEMA DE CORES: Tema Escuro (Madeira e Estofamento) */
.text-dark-theme .bp-mat-card-title,
.text-dark-theme .bp-mat-list li {
    color: #39323D; /* Cinza escuro original */
}
.text-dark-theme .bp-mat-item-icon svg {
    color: #39323D;
}

/* ESQUEMA DE CORES: Tema Claro (Inversão para o bloco de Aço devido ao tom escuro da imagem) */
.text-light-theme .bp-mat-card-title,
.text-light-theme .bp-mat-list li {
    color: #ffffff; /* Letras brancas limpas diretamente sobre a foto */
}
.text-light-theme .bp-mat-item-icon svg {
    color: #ffffff;
}

/* ANIMAÇÃO NATIVA FADEINUP */
@keyframes bpMaterialFadeInUp {
    0% {
        opacity: 0;
        transform: translate3d(0, 40px, 0);
    }
    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

/* RESPONSIVIDADE ADAPTADA */
@media (max-width: 1200px) {
    .bp-materials-main-title {
        font-size: 46px;
    }
}

@media (max-width: 992px) {
    .bp-materials-container {
        min-height: auto;
        padding: 50px 20px;
        gap: 35px;
    }
    
    .bp-materials-main-title {
        font-size: 36px;
    }
    
    .bp-mat-content {
        padding: 30px;
        text-align: center;
        align-items: center;
    }
    
    .bp-mat-item-icon {
        justify-content: center;
    }
}

/* === BLOCK: html_showroom === */
/* SECTOR EM 100% LARGURA DA TELA */
.bp-showroom-wrapper {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    background-color: #ffffff;
    box-sizing: border-box;
    overflow: hidden;
}

/* CONTAINER ALTERADO PARA 80% DA ALTURA DA TELA (80vh) */
.bp-showroom-container {
    display: flex;
    flex-direction: row;
    max-width: 1440px;
    min-height: 50vh;  /* Ajustado de 70vh para 80vh para maior amplitude */
    margin: 0 auto;
    padding: 60px 20px;
    gap: 60px;
    align-items: center; /* Garante a centralização vertical perfeita a 80vh */
    box-sizing: border-box;

    /* Animação nativa do Elementor */
    animation: bpFadeInUp 0.9s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

/* COLUNA ESQUERDA: Galeria Assimétrica */
.bp-showroom-gallery {
    flex: 1 1 550px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    box-sizing: border-box;
    overflow: hidden;
}

.bp-showroom-top-row {
    display: flex;
    flex-direction: row;
    gap: 8px;
    width: 100%;
    align-items: stretch;
    height: 600px;
}

/* Vídeo vertical (YouTube Shorts embutido), sozinho na coluna esquerda */
.bp-showroom-video {
    flex: 1 1 46%;
    position: relative;
    overflow: hidden;
    background: #000;
    min-width: 0;
}

.bp-showroom-video iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    border: 0;
}

/* 3 fotos de detalhe, empilhadas na coluna direita */
.bp-showroom-stack {
    flex: 1 1 54%;
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.bp-img-stack-item {
    flex: 1 1 33.33%;
    min-height: 0;
    overflow: hidden;
}

.bp-img-stack-item img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.bp-img-bottom-row {
    display: flex;
    flex-direction: row;
    gap: 8px;
    width: 100%;
}

.bp-img-bottom {
    flex: 1;
}

.bp-img-bottom img {
    width: 100%;
    height: 100%;
    max-height: 220px;
    display: block;
    object-fit: cover;
}

/* COLUNA DIREITA: Textos */
.bp-showroom-info {
    flex: 1 1 500px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    box-sizing: border-box;
}

.bp-showroom-subtitle {
    font-family: 'Palanquin', 'Roboto', sans-serif;
    font-size: 16px;
    font-weight: 500;
    color: #68467C; 
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 15px;
}

.bp-showroom-title {
    font-family: 'Palanquin', 'Roboto', sans-serif;
    font-size: 56px; 
    font-weight: 500;
    line-height: 1.15;
    color: #39323D;
    margin: 0 0 25px 0;
}

.bp-showroom-title span {
    font-weight: 700;
}

.bp-showroom-text {
    font-family: 'Palanquin', 'Roboto', sans-serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.6;
    color: #39323D;
    margin: 0 0 40px 0;
    max-width: 540px;
    text-align: left;
}

.bp-showroom-btn {
    display: inline-block;
    font-family: 'Palanquin', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #ffffff !important;
    background-color: #68467C;
    text-decoration: none;
    padding: 14px 32px;
    border-radius: 10px; 
    transition: background-color 0.2s, transform 0.2s, box-shadow 0.2s;
    box-shadow: 0 4px 15px rgba(104, 70, 124, 0.15);
}

.bp-showroom-btn:hover {
    background-color: #533763;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(104, 70, 124, 0.25);
}

@keyframes bpFadeInUp {
    0% {
        opacity: 0;
        transform: translate3d(0, 40px, 0);
    }
    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

/* RESPONSIVIDADE (Desativa os 80vh no mobile para o conteúdo fluir sem cortes) */
@media (max-width: 992px) {
    .bp-showroom-container {
        flex-direction: column;
        min-height: auto;
        padding: 50px 20px;
        gap: 40px;
    }
    
    .bp-showroom-info {
        align-items: center;
        text-align: center;
    }
    
    .bp-showroom-title {
        font-size: 38px;
        text-align: center;
    }
    
    .bp-showroom-text {
        text-align: center;
        font-size: 16px;
    }
}

@media (max-width: 480px) {
    .bp-showroom-top-row {
        flex-direction: column;
        height: auto;
    }
    .bp-showroom-video,
    .bp-showroom-stack {
        flex: none;
        width: 100%;
    }
    .bp-showroom-video {
        aspect-ratio: 9 / 16;
    }
    .bp-img-stack-item {
        flex: none;
    }
    .bp-img-stack-item img {
        max-height: 220px;
    }
}

/* === BLOCK: html_beneficio === */
/* ── Wrapper full-width ── */
.bp-services-wrapper {
  width: 100vw;
  position: relative;
  left: 50%;
  margin-left: -50vw;
  overflow: hidden;
  box-sizing: border-box;
}

/* ── Imagem de fundo ── */
.bp-services-bg-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 1;
  pointer-events: none;
  user-select: none;
}

/* ── Película roxa (bug corrigido: faltava background-color!) ── */
.bp-services-overlay {
  position: absolute;
  inset: 0;
  background: rgba(45, 26, 61, 0.65);
  z-index: 2;
}

.bp-services-container {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  max-width: 1200px;
  min-height: 120px;
  margin: 0 auto;
  padding: 20px 24px;
  box-sizing: border-box;
}

/* ── Coluna info (esquerda) ── */
.bp-services-info {
  flex: 0 0 auto;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 24px;
}

.bp-services-main-title {
  font-family: 'Palanquin', sans-serif;
  font-size: clamp(1.4rem, 2vw, 1.8rem);
  font-weight: 500;
  line-height: 1.15;
  color: #fff;
  margin: 0;
}

.bp-services-subtitle {
  font-family: 'Palanquin', sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 2.5px;
  color: rgba(255, 255, 255, 0.82);
  text-transform: uppercase;
}

.bp-services-btn {
  display: inline-block;
  font-family: 'Palanquin', sans-serif;
  font-size: 0.95rem;
  font-weight: 500;
  color: #fff !important;
  background: transparent;
  text-decoration: none;
  padding: 12px 28px;
  border: 1.5px solid rgba(255, 255, 255, 0.75);
  border-radius: 8px;
  transition: background 0.2s, color 0.2s;
}

.bp-services-btn:hover {
  background: #fff;
  color: #39323D !important;
  text-decoration: none;
}

/* ── Lista de serviços (direita) ── */
.bp-services-list {
  flex: 1 1 auto;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  flex-wrap: wrap;
}

/* Desktop: icon à esquerda, título à direita */
.bp-service-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
}

.bp-service-icon {
  width: 28px;
  flex-shrink: 0;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.bp-service-icon img {
  width: 100%;
  height: auto;
  display: block;
  filter: brightness(0) invert(1);
}

.bp-service-title {
  font-family: 'Palanquin', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  margin: 0;
  line-height: 1.2;
}

/* ── Tablet (≤ 992px): empilha — serviços no TOPO, info em baixo ── */
@media (max-width: 992px) {
  .bp-services-container {
    flex-direction: column;
    min-height: auto;
    padding: 32px 20px;
    gap: 24px;
    justify-content: center;
  }

  .bp-services-list { order: 1; width: 100%; justify-content: center; }
  .bp-services-info { order: 2; flex: none; width: 100%; flex-direction: column; align-items: center; text-align: center; gap: 16px; }
  .bp-services-main-title { text-align: center; }

  /* Mobile: icon centrado em cima, título abaixo */
  .bp-service-item {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 6px;
    width: 30%;
  }

  .bp-service-icon { width: 32px; }
  .bp-service-title { font-size: 0.9rem; }
}

/* ── Mobile pequeno (≤ 480px) ── */
@media (max-width: 480px) {
  .bp-services-container { padding: 32px 16px; gap: 24px; }
  .bp-service-item { width: 45%; }
  .bp-services-btn { align-self: stretch; text-align: center; }
}

/* === BLOCK: html_testimonials === */
*{box-sizing:border-box}
.ts-wrap{font-family:'Palanquin',sans-serif;background:#fff;padding:60px 0 80px;text-align:center;overflow:hidden}
.ts-label{font-size:15px;font-weight:600;color:#68467c;text-transform:uppercase;letter-spacing:.12em;margin-bottom:12px}
.ts-heading{font-size:clamp(32px,5vw,68px);font-weight:400;color:#39323d;line-height:1.15;margin:0 0 20px;padding:0 20px}
.ts-heading b{font-weight:700}
.ts-google-badge{display:inline-flex;align-items:center;gap:8px;margin:0 0 40px;padding:8px 18px;border-radius:30px;border:1px solid #e0e0e0;text-decoration:none;font-size:14px;font-weight:600;color:#39323d;transition:box-shadow .2s,border-color .2s}
.ts-google-badge:hover{box-shadow:0 4px 14px rgba(0,0,0,.08);border-color:#c8c8c8}
.ts-google-icon{flex-shrink:0}
.ts-stage{position:relative;overflow:hidden;padding:20px 60px;max-width:1240px;margin:0 auto}
.ts-track{display:flex;gap:28px;transition:transform .5s cubic-bezier(.4,0,.2,1);will-change:transform;align-items:stretch;cursor:grab}
.ts-track:active{cursor:grabbing}
.ts-card{flex:0 0 calc(33.333% - 19px);background:#fff;border-radius:20px;box-shadow:10px 15px 40px rgba(201,173,217,.45);padding:40px 40px 36px;display:flex;flex-direction:column;gap:0;text-align:left;min-height:320px;user-select:none}
.ts-name-link{text-decoration:none;color:inherit;display:inline-block}
.ts-name-link:hover .ts-name{color:#68467c;text-decoration:underline}
.ts-name{font-family:'Palanquin',sans-serif;font-size:22px;font-weight:700;color:#1a1a1a;margin:0 0 20px;transition:color .15s}
.ts-text{font-family:'Palanquin',sans-serif;font-size:16px;font-weight:400;color:#39323d;line-height:1.7;margin:0;flex:1}
.ts-stars{margin-top:28px;color:#68467c;font-size:22px;letter-spacing:4px}
.ts-arrow{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;border:1px solid #d0d0d0;background:#f5f5f5;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#39323d;z-index:10;transition:background .15s;padding:0}
.ts-arrow:hover{background:#e8e8e8}
.ts-arrow.prev{left:12px}
.ts-arrow.next{right:12px}
.ts-arrow svg{width:10px;height:17px;fill:none;stroke:#39323d;stroke-width:2}

/* Media Queries para Responsividade Clássica */
@media (max-width: 992px) {
  .ts-stage{padding:20px 50px}
  .ts-arrow.prev{left:5px}
  .ts-arrow.next{right:5px}
}
@media (max-width: 768px) {
  .ts-wrap{padding:40px 0 60px}
  .ts-stage{padding:20px 45px}
  .ts-card{padding:30px 25px}
}

/* === BLOCK: html_contacto === */
/* REGRAS 100% LARGURA EM BRANCO PURO */
.bp-budget-section-wrapper {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    background-color: #ffffff;
    overflow: hidden;
    box-sizing: border-box;
}

/* CONTAINER EM 80VH COM DUAS COLUNAS ASSIMÉTRICAS */
.bp-budget-section-container {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    max-width: 1140px;
    min-height: 50vh;
    margin: 0 auto;
    padding: 60px 20px;
    gap: 40px;
    align-items: center;
    box-sizing: border-box;
}

/* COLUNA ESQUERDA: TÍTULO EM PALANQUIN */
.bp-budget-title-side {
    flex: 1 1 450px;
    box-sizing: border-box;
}

.bp-budget-title-side h2 {
    font-family: 'Palanquin', sans-serif;
    font-size: clamp(38px, 5vw, 56px);
    font-weight: 400;
    line-height: 1.2;
    color: #39323d;
    margin: 0;
    text-align: left;
}

.bp-budget-title-side b { font-weight: 700; }

.bp-title-block {
    display: block;
}

/* COLUNA DIREITA: FORMULÁRIO */
.bp-budget-form-side {
    flex: 1 1 500px;
    box-sizing: border-box;
    width: 100%;
}

.bp-clean-contact-form {
    display: flex;
    flex-direction: column;
    gap: 32px;
    width: 100%;
}

.bp-input-group {
    position: relative;
    width: 100%;
}

.bp-clean-input, .bp-clean-textarea {
    width: 100%;
    border: none;
    border-bottom: 1px solid #39323d;
    background: transparent;
    padding: 10px 0;
    font-family: 'Roboto', sans-serif;
    font-size: 15px;
    color: #39323d;
    outline: none;
    transition: border-color 0.2s;
}

.bp-clean-textarea {
    height: 90px;
    resize: none;
}

.bp-clean-label {
    position: absolute;
    top: 10px;
    left: 0;
    font-family: 'Roboto', sans-serif;
    font-size: 15px;
    color: #7c7c7c;
    pointer-events: none;
    transition: transform 0.2s ease, font-size 0.2s ease, color 0.2s;
}

.bp-clean-input:focus ~ .bp-clean-label,
.bp-clean-input:not(:placeholder-shown) ~ .bp-clean-label,
.bp-clean-textarea:focus ~ .bp-clean-label,
.bp-clean-textarea:not(:placeholder-shown) ~ .bp-clean-label {
    transform: translateY(-22px);
    font-size: 12px;
    color: #68467c;
}

.bp-clean-input:focus, .bp-clean-textarea:focus {
    border-bottom-width: 2px;
    border-color: #68467c;
}

.bp-clean-agreement {
    display: flex;
    align-items: center;
    gap: 10px;
    text-align: left;
    margin-top: -5px;
}

.bp-clean-agreement input[type="checkbox"] {
    width: 16px;
    height: 16px;
    accent-color: #68467c;
    cursor: pointer;
}

.bp-clean-agreement label {
    font-family: 'Roboto', sans-serif;
    font-size: 13px;
    color: #555555;
    cursor: pointer;
}

.bp-clean-submit-zone {
    text-align: left;
}

.bp-clean-btn-submit {
    font-family: 'Palanquin', sans-serif;
    font-size: 24px;
    color: #68467c;
    background-color: #ffffff;
    border: 1px solid #68467c;
    padding: 8px 52px;
    border-radius: 30px;
    cursor: pointer;
    transition: background-color 0.2s, color 0.2s;
}

.bp-clean-btn-submit:hover {
    background-color: #68467c;
    color: #ffffff;
}

/* ==========================================================================
   MUDANÇA CRUCIAL PARA CORRIGIR A ALTURA DA DIV NO MOBILE
   ========================================================================== */
@media (max-width: 992px) {
    .bp-budget-section-container {
        flex-direction: column;
        justify-content: center;
        min-height: auto; 
        padding: 50px 20px;
        gap: 30px; 
    }
    
    /* Destrói a altura fixa herdada do flex ou de classes globais no mobile */
    .bp-budget-title-side {
        flex: none !important;
        height: auto !important;
        min-height: auto !important;
        width: 100% !important;
    }
    
    .bp-budget-title-side h2 { 
        text-align: center; 
    }
}

@media (max-width: 576px) {
    .bp-title-block {
        display: inline;
    }
    
    .bp-title-block:not(:last-child)::after {
        content: " ";
    }

    .bp-budget-title-side h2 {
        font-size: 32px; 
        line-height: 1.25;
        text-align: center;
    }
    
    /* Remove padding excessivo e cola o formulário ao título */
    .bp-budget-section-container {
        padding: 40px 15px;
        gap: 15px; 
    }
    
    .bp-budget-form-side {
        margin-top: 0 !important;
        flex: none !important;
        height: auto !important;
    }

    .bp-clean-contact-form {
        gap: 26px; 
    }
    
    .bp-clean-btn-submit {
        width: 100%; 
        text-align: center;
    }
}


/* ================================================================
   Barra de Benefícios (nova)
   ================================================================ */
.bp-benefits-bar {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  background-color: #3b2a20;
  color: #ffffff;
  padding: 18px 0;
  box-sizing: border-box;
}

.bp-benefits-bar__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  padding: 0 24px;
}

.bp-benefits-bar__item {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 1 1 0;
  justify-content: center;
  padding: 0 24px;
  border-right: 1px solid rgba(255, 255, 255, 0.2);
}

.bp-benefits-bar__item:last-child {
  border-right: 0;
}

.bp-benefits-bar__item i {
  font-size: 1.6rem;
  color: #ffffff;
  flex-shrink: 0;
}

.bp-benefits-bar__text {
  display: flex;
  flex-direction: column;
  line-height: 1.3;
}

.bp-benefits-bar__title {
  font-family: 'Palanquin', sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.bp-benefits-bar__subtitle {
  font-family: 'Palanquin', sans-serif;
  font-size: 0.85rem;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.85);
}

@media (max-width: 768px) {
  .bp-benefits-bar__inner {
    flex-direction: column;
    gap: 16px;
    align-items: stretch;
  }

  .bp-benefits-bar__item {
    justify-content: flex-start;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
    padding: 0 0 14px;
  }

  .bp-benefits-bar__item:last-child {
    border-bottom: 0;
    padding-bottom: 0;
  }
}
