/**
 * Junco Theme - Fixes CSS
 * Correções críticas de bugs e melhorias
 */

/* === Hero da página /trabalhe-conosco/ ===
   Mesmo padrão usado em .section-marcas, .section-quemsomos, .section-contato (140/100):
   margin-top:0 + padding-top:140px (compensa menu fixo de 85px) + padding-bottom:100px.
   Também troca a imagem de fundo (era sede.webp) por 410.webp, centralizada. */
.section {
  margin-top: 0 !important;
  padding-top: 140px !important;
  padding-bottom: 100px !important;
  background-image: radial-gradient(circle, #1dbdeac9, #1e8ecdf7), url('../images/410.webp') !important;
  background-position: 0 0, center center !important;
  background-repeat: repeat, no-repeat !important;
  background-size: auto, cover !important;
}
@media (max-width: 767px) {
  .section {
    padding-top: 120px !important;
    padding-bottom: 70px !important;
  }
}

/* === Vídeo Institucional no fim do Quem Somos === */
.s-video-quemsomos {
  padding: 60px 0 100px;
  background: #fff;
}
.s-video-quemsomos .video-container-hgn {
  position: relative;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  aspect-ratio: 16 / 9;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 12px 40px rgba(12, 57, 109, 0.15);
}
.s-video-quemsomos .hgn-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (max-width: 767px) {
  .s-video-quemsomos { padding: 40px 0 60px; }
}

/* ===================================
   FIX 0: REMOVER ELEMENTOS WEBFLOW DESNECESSÁRIOS
   O elemento .nojq cria espaçamento indesejado
   =================================== */

.nojq,
div.nojq {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ===================================
   FIX 1: MENU MOBILE E DESKTOP - MÁXIMA FORÇA
   Remove TODO espaçamento do menu
   =================================== */

/* Menu GRUDADO no topo - ZERO espaços */
.s-menu,
header.s-menu,
div.s-menu,
#menu.s-menu {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  height: 85px !important;
}

/* Container do navbar - padronizado com .container-padrao do site (1200px max, 90% em telas menores) */
.s-menu .navbar-no-shadow-container,
.s-menu .junco-nav {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}
.s-menu .container-regular {
  display: flex !important;
  align-items: center !important;
  height: 85px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  width: 1200px !important;
  max-width: 90% !important;
  box-sizing: border-box !important;
}
.s-menu .navbar-wrapper {
  display: flex !important;
  align-items: center !important;
  height: 85px !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Menu mobile SEM margin-top de 85px */
.nav-menu-wrapper,
#junco-nav-menu.nav-menu-wrapper,
#junco-nav-menu,
.s-menu .nav-menu-wrapper {
  margin-top: 0 !important;
  padding-top: 0 !important;
  top: 85px !important;
}

/* Admin bar WordPress */
.admin-bar .s-menu {
  top: 32px !important;
}

@media screen and (max-width: 782px) {
  .admin-bar .s-menu {
    top: 46px !important;
  }

  .admin-bar #junco-nav-menu {
    top: calc(46px + 85px) !important;
  }
}

/* ===================================
   DESKTOP: HEADER LAYOUT
   [ LOGO esquerda ] [ MENU centralizado ] [ BUSCA direita ]
   =================================== */
@media (min-width: 992px) {

  /* Esconder botão hamburguer no desktop */
  .menu-button,
  #junco-menu-button {
    display: none !important;
  }

  /* Wrapper principal do header em 3 zonas */
  .s-menu .navbar-wrapper {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 24px !important;
    width: 100% !important;
  }

  /* LOGO - lado esquerdo, sem flex-grow */
  .s-menu .navbar-brand,
  .s-menu .custom-logo-link {
    flex: 0 0 auto !important;
    margin: 0 !important;
  }

  /* NAV - meio, centralizado, ocupa o espaço restante */
  .s-menu .nav-menu-wrapper,
  #junco-nav-menu,
  #junco-nav-menu.nav-menu-wrapper {
    position: static !important;
    inset: auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  /* Lista UL horizontal */
  .s-menu .nav-menu,
  #junco-nav-menu .nav-menu {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    background: transparent !important;
    width: auto !important;
    min-height: 0 !important;
  }

  .s-menu .nav-menu .list-item-5 {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    border: none !important;
  }

  /* Esconder ícones / sociais que ficavam no menu */
  .s-menu .nav-menu .list-item-5-copy,
  .s-menu .list-item-5-copy,
  .s-menu .nav-menu .social-icon,
  .s-menu .nav-menu .junco-social-links {
    display: none !important;
  }

  /* Links do menu - reset visual completo, sem traço/sublinhado */
  .s-menu .nav-link,
  .s-menu .nav-link.ext,
  .s-menu .nav-link.w--current {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    padding: 8px 10px !important;
    margin: 0 !important;
    border: none !important;
    border-radius: 999px !important;
    background-color: transparent !important;
    background-image: none !important;
    color: var(--1) !important;
    font-family: Montserrat, Barlow, Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    letter-spacing: 0.1px !important;
    text-decoration: none !important;
    text-transform: none !important;
    white-space: nowrap !important;
    transition: color 0.25s ease, background-color 0.25s ease, transform 0.25s ease !important;
  }

  /* Hover: pill suave + cor da marca + leve lift */
  .s-menu .nav-link:hover,
  .s-menu .nav-link:focus-visible,
  .s-menu .nav-link.ext:hover,
  .s-menu .nav-link.ext:focus-visible {
    color: var(--2) !important;
    background-color: rgba(12, 57, 109, 0.06) !important;
    text-decoration: none !important;
    outline: none !important;
  }

  /* Página atual - destaque com pill colorido */
  .s-menu .nav-link.w--current {
    color: var(--2) !important;
    background-color: rgba(205, 36, 43, 0.08) !important;
  }

  .s-menu .nav-link.w--current:hover {
    background-color: rgba(205, 36, 43, 0.14) !important;
  }

  /* BUSCA - largura controlada, botão sobreposto ao input */
  .s-menu .search-b-co {
    position: relative !important;
    flex: 0 0 auto !important;
    width: 240px !important;
    max-width: 240px !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    min-height: 0 !important;
  }

  /* Estado mobile "is-open" não deve afetar desktop */
  #junco-nav-menu.is-open {
    box-shadow: none !important;
  }

  /* Input mantém o estilo original; só ganha espaço à direita pro botão sobreposto */
  .s-menu .search-b-co .search-input {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding-right: 50px !important;
    height: 40px !important;
    min-height: 40px !important;
    font-size: 14px !important;
  }

  /* Botão sobreposto à direita, dentro do input */
  .s-menu .search-b-co .search-button {
    position: absolute !important;
    right: 4px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 50% !important;
    background-size: 13px !important;
  }

  /* Telas estreitas (992-1199): reduzir busca e padding dos links */
  @media (max-width: 1199px) {
    .s-menu .nav-link,
    .s-menu .nav-link.ext,
    .s-menu .nav-link.w--current {
      padding: 6px 7px !important;
      font-size: 12px !important;
    }
    .s-menu .search-b-co {
      width: 170px !important;
      max-width: 170px !important;
    }
    .s-menu .navbar-wrapper {
      gap: 8px !important;
    }
  }
}

/* ===================================
   MOBILE: ordem do header [LOGO] ... [☰]
   Nav é dropdown slide-in já estilizado em wordpress.css
   =================================== */
@media (max-width: 991px) {
  .s-menu .navbar-wrapper {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .s-menu .navbar-brand {
    flex: 0 0 auto !important;
    margin: 0 !important;
  }
  .s-menu .search-b-co {
    display: none !important;
  }
  .s-menu #junco-menu-button {
    flex: 0 0 auto !important;
    margin-left: auto !important;
    margin-right: 0 !important;
  }
}

/* MOBILE: Container 100% da largura — logo grudado à esquerda, MENU à direita COM RESPIRO */
@media (max-width: 991px) {
  .s-menu .navbar-no-shadow-container,
  .s-menu .junco-nav,
  .s-menu .container-regular,
  .s-menu .navbar-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
  }
  /* Container do header com padding lateral — o 24px direito é o respiro
     entre o pill MENU e a borda da tela. NÃO MOVE o pill, só dá espaço. */
  div.s-menu div.container-regular,
  .s-menu .container-regular {
    padding-left: 20px !important;
    padding-right: 24px !important;
  }
  /* Reforço: margem direita explícita no próprio botão pra blindar contra
     qualquer reset cascateado */
  .s-menu #junco-menu-button,
  div.s-menu #junco-menu-button {
    margin-right: 0 !important;
  }

  .nav-menu-wrapper,
  #junco-nav-menu.nav-menu-wrapper,
  #junco-nav-menu,
  .s-menu .nav-menu-wrapper {
    top: 85px !important;
    margin-top: 0 !important;
  }
}

/* ===================================
   FIX 2: SLIDES DA HOME E PRIMEIRAS SEÇÕES
   Alinhamento vertical e espaçamento
   =================================== */

/* Remover margin-top das primeiras seções (compensar menu fixo)
   NOTA: .section-22 (hero da home) NÃO entra aqui — ele precisa de margin-top: 85px
   para que o carrossel apareça ABAIXO do menu fixo, não atrás dele. */
.section-quemsomos,
.section-marcas,
.section-contato,
.s-busca-inicio,
body > section:first-of-type:not(.section-22) {
  margin-top: 0 !important;
}

/* Todas as primeiras seções devem ter padding-top para compensar menu fixo */
.section-quemsomos,
.section-marcas,
.section-contato,
.section-onde-encontrar,
.section-trabalhe-conosco,
.section-blog,
.section-politica {
  padding-top: 85px !important;
}

/* ===================================
   JUNCO HERO — slider próprio (sem Webflow)
   3 slides empilhados em position:absolute, fade via opacity
   Slide 1 (novo): bg placeholder + overlay azul gradient + texto
   Slide 2 e 3: bg gradient azul + foto + grid texto/imagem
   =================================== */
.section-22.junco-hero {
  position: relative;
  width: 100%;
  height: calc(80vh - 85px);
  min-height: 480px;
  margin-top: 85px !important; /* compensa o menu fixo de 85px — !important pq concorre com reset global */
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 0;
  padding: 0;
  overflow: hidden;
  background: #1e8ecd; /* v1.1.66: paleta clara - fallback enquanto carrega */
}

/* Compensação do WP admin bar: o WP injeta html{margin-top:32px}
   quando user logado. Como o hero já tem margin-top:85px, sobra gap
   de 32px entre menu fixo (top:0) e início do slide. Descontar aqui. */
body.admin-bar .section-22.junco-hero {
  margin-top: calc(85px - 32px) !important;
}
@media screen and (max-width: 782px) {
  body.admin-bar .section-22.junco-hero {
    margin-top: calc(85px - 46px) !important;
  }
}

.junco-hero .junco-hero-track {
  position: relative;
  width: 100%;
  height: 100%;
}

.junco-hero .junco-hero-slide {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.6s ease, visibility 0s linear 0.6s;
}

.junco-hero .junco-hero-slide.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  z-index: 2;
  transition: opacity 0.6s ease, visibility 0s linear 0s;
}

/* === Slide tipo "imagem flutuante" (slides 2 e 3) === */
.junco-hero .junco-hero-slide-inner {
  position: relative;
  width: 100%;
  height: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 5%;
  box-sizing: border-box;
  display: flex;
  align-items: center;
}

.junco-hero .junco-hero-slide-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  align-items: center;
  width: 100%;
}

.junco-hero .junco-hero-slide-text .heading-13,
.junco-hero .junco-hero-slide-text .paragraph-11 {
  color: #fff;
}

/* v1.1.66 -> 1.1.67: TODO o texto dos slides eh branco (incluindo o destaque).
   text-span-8 originalmente era azul claro (var(--4) #1dbdea), mas com fundo claro
   ficaria invisivel. Forcado pra branco aqui. */
.junco-hero .heading-13 .text-span-8 {
  color: #fff;
}

.junco-hero .junco-hero-slide-text .paragraph-11 {
  margin: 16px 0 0 0;
}

.junco-hero .junco-hero-slide-cta {
  margin-top: 24px;
}

.junco-hero .junco-hero-slide-img {
  display: flex;
  justify-content: center;
  align-items: center;
}

.junco-hero .junco-hero-slide-img img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* v1.1.68: slides 2 e 3 agora usam o modificador --novo (mesma estrutura do slide 1).
   As regras antigas .junco-hero-slide--imagem-1991 e --imagem-30anos sao obsoletas
   (mantidas como no-op pra nao quebrar nenhum cache/referencia). */
.junco-hero-slide--imagem-1991,
.junco-hero-slide--imagem-30anos {
  background: transparent;
}

/* === Slide novo: placeholder cinza + overlay azul gradient + texto à esquerda === */
.junco-hero-slide--novo .junco-hero-slide-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-color: #d9d9d9;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #9a9a9a;
}

.junco-hero-slide--novo .junco-hero-slide-bg svg {
  width: 96px;
  height: 96px;
  stroke: #9a9a9a;
}

.junco-hero-slide--novo .junco-hero-slide-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  /* v1.1.66: overlay azul CLARO (era escuro #0c396d) */
  background: linear-gradient(
    to right,
    rgba(30, 142, 205, 0.90) 0%,
    rgba(30, 142, 205, 0.90) 50%,
    rgba(30, 142, 205, 0) 85%,
    rgba(30, 142, 205, 0) 100%
  );
}

.junco-hero-slide--novo .junco-hero-slide-content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1200px;
  height: 100%;
  margin: 0 auto;
  padding: 0 5%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}

.junco-hero-slide--novo .junco-hero-slide-content .heading-13 {
  max-width: 50%;
  color: #fff;
  margin: 0 0 16px 0;
}

.junco-hero-slide--novo .junco-hero-slide-content .paragraph-11 {
  max-width: 50%;
  color: #fff;
  margin: 0;
}

/* === Setas e dots === */
.junco-hero-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease, transform 0.2s ease;
}

.junco-hero-arrow:hover {
  background: rgba(255, 255, 255, 0.3);
}

.junco-hero-arrow svg {
  width: 20px;
  height: 20px;
  /* v1.1.72: pointer-events:none pra clique passar direto pro botao
     (SVG estava absorvendo o clique no mobile e o botao nao navegava) */
  pointer-events: none;
}

.junco-hero-arrow--prev { left: 16px; }
.junco-hero-arrow--next { right: 16px; }

.junco-hero-dots {
  position: absolute;
  bottom: 20px;
  left: 0; right: 0;
  z-index: 5;
  display: flex;
  justify-content: center;
  gap: 8px;
  /* v1.1.73: container ocupa largura inteira e estava sobrepondo as setas no mobile
     (mesmo z-index, dots vem depois no DOM = ficava em cima). Container nao clicavel,
     so as bolinhas em si. */
  pointer-events: none;
}

.junco-hero-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 2px solid #fff;
  background: transparent;
  padding: 0;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
  pointer-events: auto;
}

.junco-hero-dot.is-active {
  background: #fff;
  transform: scale(1.15);
}

/* === MOBILE === */
@media (max-width: 991px) {
  .section-22.junco-hero {
    height: auto;
    min-height: 70vh;
  }

  .junco-hero .junco-hero-slide {
    position: absolute;
  }

  .junco-hero .junco-hero-slide-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .junco-hero .junco-hero-slide-inner {
    padding: 100px 5% 60px;
  }

  .junco-hero-slide--novo .junco-hero-slide-content {
    padding: 100px 5% 60px;
    justify-content: flex-start;
  }

  .junco-hero-slide--novo .junco-hero-slide-content .heading-13,
  .junco-hero-slide--novo .junco-hero-slide-content .paragraph-11 {
    max-width: 100%;
  }

  .junco-hero-slide--novo .junco-hero-slide-overlay {
    /* v1.1.68: paleta clara no mobile tambem (era #0c396d) */
    background: linear-gradient(
      to bottom,
      rgba(30, 142, 205, 0.90) 0%,
      rgba(30, 142, 205, 0.90) 50%,
      rgba(30, 142, 205, 0) 85%,
      rgba(30, 142, 205, 0) 100%
    );
  }

  /* v1.1.71: no mobile, as setas saem do meio da tela e vao pro rodape, do lado dos 3 dots */
  .junco-hero-arrow {
    width: 36px;
    height: 36px;
    top: auto !important;
    bottom: 8px !important;
    transform: none !important;
  }
  .junco-hero-arrow--prev {
    left: calc(50% - 70px) !important;
    right: auto !important;
  }
  .junco-hero-arrow--next {
    right: calc(50% - 70px) !important;
    left: auto !important;
  }
}

/* ===================================
   FIX 3: BUSCA - RESULTADOS
   Estilos para página de resultados
   =================================== */

#search-results {
  padding: 40px 20px;
  max-width: 1200px;
  margin: 0 auto;
}

#search-results h2 {
  color: #0c396e;
  font-size: 28px;
  margin-bottom: 30px;
  font-family: Montserrat, sans-serif;
}

.search-results-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.search-result-item {
  display: flex;
  gap: 16px;
  padding: 20px;
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  transition: all 0.3s ease;
}

.search-result-item:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  border-color: #1dbdea;
  transform: translateY(-2px);
}

.result-icon {
  font-size: 24px;
  flex-shrink: 0;
}

.result-content {
  flex: 1;
}

.result-content h3 {
  margin: 0 0 8px 0;
  font-size: 20px;
  font-family: Montserrat, sans-serif;
}

.result-content h3 a {
  color: #0c396e;
  text-decoration: none;
}

.result-content h3 a:hover {
  color: #CD242B;
  text-decoration: underline;
}

.result-content p {
  margin: 0 0 8px 0;
  color: #666;
  line-height: 1.6;
  font-family: Montserrat, sans-serif;
}

.result-url {
  font-size: 13px;
  color: #1dbdea;
  font-family: Montserrat, sans-serif;
}

/* Highlight de termos buscados */
.result-content mark {
  background-color: #fff3cd;
  color: #856404;
  padding: 2px 4px;
  border-radius: 3px;
  font-weight: 600;
}

.no-results {
  text-align: center;
  padding: 60px 20px;
}

.no-results h3 {
  color: #0c396e;
  font-size: 24px;
  margin-bottom: 12px;
  font-family: Montserrat, sans-serif;
}

.no-results p {
  color: #666;
  font-size: 16px;
  margin-bottom: 8px;
  font-family: Montserrat, sans-serif;
}

/* ===================================
   FIX 4: RESPONSIVIDADE MELHORADA
   =================================== */

/* Centralizar título da seção de blog no mobile */
@media (max-width: 991px) {
  .section-15 .h2.centro-copy-copy {
    text-align: center !important;
  }
}

@media (max-width: 768px) {
  #search-results {
    padding: 30px 15px;
  }

  #search-results h2 {
    font-size: 22px;
  }

  .search-result-item {
    flex-direction: column;
    padding: 16px;
  }

  .result-icon {
    font-size: 20px;
  }

  .result-content h3 {
    font-size: 18px;
  }
}

/* ===================================
   FIX 5: PREVENÇÃO DE BUGS WEBFLOW
   =================================== */

/* REMOVIDO - estava quebrando layouts */

/* ===================================
   FIX 6: PERFORMANCE & ACESSIBILIDADE
   =================================== */

/* Smooth scroll */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 85px;
}

/* Focus visível para acessibilidade */
a:focus,
button:focus,
input:focus {
  outline: 2px solid #1dbdea;
  outline-offset: 2px;
}

/* Melhoria de performance em animações */
* {
  will-change: auto;
}

.nav-menu-wrapper,
.menu-button .div-block-292 {
  will-change: transform;
}

/* ===================================
   FIX 7: WHATSAPP BUTTON
   Garantir que botão não conflite
   =================================== */

.whatsapp-btn {
  position: fixed;
  bottom: 20px !important;
  right: 20px !important;
  z-index: 996;
  transition: all 0.3s ease;
}

.whatsapp-btn:hover {
  transform: scale(1.1);
}

@media (max-width: 768px) {
  .whatsapp-btn {
    bottom: 20px !important;
    right: 15px !important;
  }
}

/* ===================================
   FIX 8: DROPDOWN DE BUSCA
   Estilos movidos do JS inline para CSS
   =================================== */

.search-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: white;
  border-radius: 0 0 8px 8px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.15);
  max-height: 400px;
  overflow-y: auto;
  display: none;
  z-index: 9999;
  margin-top: 4px;
}

.search-dropdown.show {
  display: block;
}

/* ===================================
   FIX 9: NOTIFICAÇÕES DE BUSCA
   Animações para toasts de notificação
   =================================== */

@keyframes slideIn {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes slideOut {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(100%);
    opacity: 0;
  }
}

/* ===================================
   FIX 10: BLOG CARDS SEM IMAGEM
   Altura mínima e placeholder visual
   =================================== */

.div-block-359 {
  min-height: 350px;
  display: flex;
  flex-direction: column;
}

.div-block-359 .blog-card-link {
  flex: 1;
  min-height: 200px;
  background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  overflow: hidden;
}

.div-block-359 .blog-card-link img.blog-card-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Placeholder quando não há imagem */
.div-block-359 .blog-card-link:empty::before {
  content: "";
  display: block;
  width: 64px;
  height: 64px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ccc'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-5-7l-3 3.72L9 13l-3 4h12l-4-5z'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* ===================================
   FIX 11: SLIDER DOTS - ESTADO ATIVO
   Melhor feedback visual para navegação
   =================================== */

.w-slider-nav .w-slider-dot {
  width: 12px;
  height: 12px;
  background-color: rgba(255, 255, 255, 0.5);
  border: 2px solid #fff;
  margin: 0 6px;
  transition: all 0.3s ease;
  cursor: pointer;
}

.w-slider-nav .w-slider-dot.w-active {
  background-color: #CD242B;
  border-color: #CD242B;
  transform: scale(1.2);
}

.w-slider-nav .w-slider-dot:hover:not(.w-active) {
  background-color: rgba(255, 255, 255, 0.8);
}

/* ===================================
   FIX 12: MENU MOBILE - VISIBILIDADE
   Esconder botão hamburger no desktop
   (REMOVIDO - estava quebrando o menu desktop)
   =================================== */

/* ===================================
   FIX 13: COMMENTS SECTION
   Estilos para área de comentários
   =================================== */

.comments-area {
  margin-top: 40px;
  padding: 30px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.comments-title {
  color: #0c396e;
  font-size: 24px;
  margin-bottom: 20px;
  font-family: Montserrat, sans-serif;
}

.comment-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.comment-body {
  padding: 20px;
  border-bottom: 1px solid #eee;
  margin-bottom: 10px;
}

.comment-body:last-child {
  border-bottom: none;
}

.comment-author-name {
  color: #0c396e;
  font-weight: 600;
}

.comment-date {
  color: #999;
  font-size: 13px;
  text-decoration: none;
}

.comment-content {
  margin-top: 10px;
  line-height: 1.6;
}

.comment-awaiting-moderation {
  color: #f0ad4e;
  font-style: italic;
  font-size: 14px;
}

/* ===================================
   FIX 14: 404 PAGE STYLING
   Estilo para página de erro 404
   =================================== */

.utility-page-wrap {
  min-height: calc(100vh - 85px);
  padding-top: 85px;
}

.utility-page-content {
  text-align: center;
  padding: 60px 20px;
}

.heading-11 {
  color: #0c396e;
  font-size: 48px;
  margin-bottom: 16px;
  font-family: Montserrat, sans-serif;
}

.text-block-28 {
  color: #666;
  font-size: 18px;
  margin-bottom: 30px;
  font-family: Montserrat, sans-serif;
}

/* ===================================
   FIX 15: PÁGINA DE BUSCA - LAYOUT COMPLETO
   Baseado no search.html do Webflow
   =================================== */

/* CRÍTICO: Corrigir body na página de busca */
/* O Webflow define body como inline-flex com overflow:hidden */
body.search-results,
body.search,
.search-results body,
body:has(.s-busca-inicio) {
  display: block !important;
  overflow: visible !important;
  overflow-x: hidden !important;
  height: auto !important;
  min-height: 100vh !important;
}

/* Hero da Busca - Alta especificidade para sobrescrever junco-site.css */
body .s-busca-inicio,
.body .s-busca-inicio,
section.s-busca-inicio {
  background-image: linear-gradient(135deg, rgba(12, 57, 110, 0.9), rgba(29, 189, 234, 0.8)), url('../images/equipe.webp') !important;
  background-size: cover !important;
  background-position: center !important;
  padding: 160px 0 80px !important;
  margin-top: 0 !important;
  text-align: center;
  position: relative;
  z-index: 1;
}

.s-busca-inicio .div-block-298 {
  max-width: 800px;
  margin: 0 auto;
}

.s-busca-inicio .div-block-361 {
  margin-bottom: 20px;
}

.s-busca-inicio .div-block-361 a,
.s-busca-inicio .breadcrumb a {
  color: rgba(255, 255, 255, 0.8);
}

.s-busca-inicio .div-block-361 a:hover,
.s-busca-inicio .breadcrumb a:hover {
  color: #fff;
}

.s-busca-inicio .heading {
  color: #fff;
  font-size: 42px;
  font-weight: 700;
  margin: 0 0 16px 0;
  font-family: Montserrat, sans-serif;
  line-height: 1.2;
}

.s-busca-inicio .search-query-highlight {
  color: #fff;
  font-style: italic;
}

.s-busca-inicio .search-count {
  color: rgba(255, 255, 255, 0.9);
  font-size: 18px;
  margin: 0 0 30px 0;
  font-family: Montserrat, sans-serif;
}

/* Formulário de busca no hero - IGUAL AO MENU */
.s-busca-inicio .search-b-co,
.s-busca-inicio .search-hero-form,
.s-busca-inicio form.search-b-co {
  max-width: 500px;
  margin: 0 auto;
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  min-height: 50px;
  height: 50px;
  background: #fff !important;
  border-radius: 50px !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
  overflow: visible !important;
  padding: 0 !important;
}

.s-busca-inicio .search-b-co .search-input,
.s-busca-inicio .search-hero-form .search-input,
.s-busca-inicio .search-input.w-input,
.s-busca-inicio form.search-b-co input.search-input {
  flex: 1;
  width: calc(100% - 60px) !important;
  padding: 12px 20px !important;
  border: none !important;
  border-radius: 50px 0 0 50px !important;
  font-size: 16px;
  font-family: Montserrat, sans-serif;
  background: transparent !important;
  outline: none !important;
  box-shadow: none !important;
  height: 50px !important;
  min-height: 50px !important;
  max-height: 50px !important;
}

/* BOTÃO AZUL - PADRONIZADO COM RESTO DO SITE */
.s-busca-inicio .search-b-co .search-button,
.s-busca-inicio .search-hero-form .search-button,
.s-busca-inicio .search-button.w-button,
.s-busca-inicio form.search-b-co input.search-button,
.s-busca-inicio input.search-button.w-button,
body .s-busca-inicio .search-button {
  position: absolute !important;
  right: 5px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  max-width: 40px !important;
  min-height: 40px !important;
  max-height: 40px !important;
  border-radius: 50% !important;
  background-color: var(--1) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M15.5 14h-.79l-.28-.27a6.5 6.5 0 0 0 1.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 0 0-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 0 0 5.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 18px !important;
  border: none !important;
  cursor: pointer !important;
  transition: background-color 0.3s ease !important;
  padding: 0 !important;
  margin: 0 !important;
}

.s-busca-inicio .search-b-co .search-button:hover,
.s-busca-inicio .search-hero-form .search-button:hover,
.s-busca-inicio .search-button.w-button:hover,
body .s-busca-inicio .search-button:hover {
  background-color: #082b54 !important;
}

/* Seção de Resultados - Alta especificidade */
body .s-busca,
.body .s-busca,
section.s-busca {
  padding: 60px 0 80px !important;
  background: #f8f9fa !important;
  display: block !important;
}

body .s-busca .container,
body .s-busca .w-container {
  display: block !important;
  max-width: 1200px !important;
  width: 90% !important;
  margin: 0 auto !important;
}

body .s-busca .div-block-297,
.s-busca .div-block-297 {
  max-width: 1000px !important;
  margin: 0 auto !important;
  display: block !important;
}

/* Grid de Resultados */
.search-results-grid {
  display: grid;
  gap: 24px;
}

.search-result-card {
  display: flex;
  gap: 20px;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  transition: all 0.3s ease;
}

.search-result-card:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

.search-result-image {
  flex-shrink: 0;
  width: 200px;
  height: 160px;
  overflow: hidden;
}

.search-result-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.search-result-card:hover .search-result-image img {
  transform: scale(1.05);
}

.search-result-content {
  flex: 1;
  padding: 20px 20px 20px 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.search-result-type {
  display: inline-block;
  font-size: 12px;
  color: #1dbdea;
  font-weight: 600;
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-family: Montserrat, sans-serif;
}

.search-result-title {
  margin: 0 0 10px 0;
  font-size: 20px;
  font-weight: 600;
  font-family: Montserrat, sans-serif;
  line-height: 1.3;
}

.search-result-title a {
  color: #0c396e;
  text-decoration: none;
  transition: color 0.2s ease;
}

.search-result-title a:hover {
  color: #CD242B;
}

.search-result-excerpt {
  margin: 0 0 12px 0;
  color: #666;
  font-size: 14px;
  line-height: 1.6;
  font-family: Montserrat, sans-serif;
}

.search-result-link {
  color: #CD242B;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  font-family: Montserrat, sans-serif;
  transition: color 0.2s ease;
}

.search-result-link:hover {
  color: #0c396e;
}

/* Card sem imagem */
.search-result-card:not(:has(.search-result-image)) .search-result-content {
  padding-left: 24px;
}

/* Paginação */
.search-pagination {
  margin-top: 40px;
  text-align: center;
}

.search-pagination .nav-links {
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
}

.search-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  background: #fff;
  color: #0c396e;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 500;
  font-family: Montserrat, sans-serif;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.search-pagination .page-numbers:hover {
  background: #0c396e;
  color: #fff;
}

.search-pagination .page-numbers.current {
  background: #CD242B;
  color: #fff;
}

/* Sem Resultados */
.no-results-container {
  text-align: center;
  padding: 60px 20px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.no-results-icon {
  font-size: 64px;
  margin-bottom: 20px;
}

.no-results-container h2 {
  color: #0c396e;
  font-size: 28px;
  margin: 0 0 12px 0;
  font-family: Montserrat, sans-serif;
}

.no-results-container > p {
  color: #666;
  font-size: 16px;
  margin: 0 0 30px 0;
  font-family: Montserrat, sans-serif;
}

.search-suggestions {
  text-align: left;
  max-width: 400px;
  margin: 0 auto 30px;
  padding: 20px;
  background: #f8f9fa;
  border-radius: 8px;
}

.search-suggestions h4 {
  color: #0c396e;
  font-size: 16px;
  margin: 0 0 12px 0;
  font-family: Montserrat, sans-serif;
}

.search-suggestions ul {
  margin: 0;
  padding-left: 20px;
}

.search-suggestions li {
  color: #666;
  font-size: 14px;
  margin-bottom: 8px;
  font-family: Montserrat, sans-serif;
}

.quick-links h4 {
  color: #0c396e;
  font-size: 16px;
  margin: 0 0 16px 0;
  font-family: Montserrat, sans-serif;
}

.quick-links-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

.quick-link-btn {
  display: inline-block;
  padding: 10px 20px;
  background: #0c396e;
  color: #fff;
  border-radius: 50px;
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  font-family: Montserrat, sans-serif;
  transition: all 0.2s ease;
}

.quick-link-btn:hover {
  background: #CD242B;
  transform: translateY(-2px);
}

/* ===================================
   MOBILE: CORREÇÃO DE BORDA/ESPAÇAMENTO
   Remove qualquer borda ou margem extra
   =================================== */

@media (max-width: 991px) {
  /* Remove qualquer borda/margem em volta da tela */
  html, body {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  body {
    display: block !important;
    min-height: 100vh !important;
  }

  /* Container principal sem margens laterais */
  .body,
  .w-body,
  main,
  .main-wrapper {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Seções ocupam 100% da largura */
  section,
  .section,
  [class*="section-"] {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Containers internos com padding adequado */
  .container,
  .w-container,
  .container-padrao {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 15px !important;
    padding-right: 15px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
  }
}

/* Responsivo - Busca */
@media (max-width: 768px) {
  .s-busca-inicio {
    padding: 140px 0 60px !important;
  }

  .s-busca-inicio .heading {
    font-size: 24px !important;
    word-wrap: break-word;
    overflow-wrap: break-word;
    padding: 0 10px;
  }

  .s-busca-inicio .search-count {
    font-size: 16px;
  }

  .s-busca-inicio .div-block-298 {
    padding: 0 15px;
  }

  /* Cards de resultado - CORRIGIR VAZAMENTO LATERAL */
  .search-results-grid {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  .search-result-card {
    flex-direction: column;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  .search-result-image {
    width: 100%;
    height: 180px;
  }

  .search-result-content {
    padding: 20px;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
  }

  .search-result-title {
    font-size: 18px;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
  }

  .search-result-excerpt {
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
  }

  /* Container de busca no mobile */
  .s-busca .div-block-297,
  body .s-busca .div-block-297 {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 15px !important;
    box-sizing: border-box !important;
  }

  /* Seção sem resultados - mobile */
  .no-results-container {
    padding: 40px 16px;
    max-width: 100%;
    overflow: hidden;
  }

  .no-results-icon {
    font-size: 48px;
  }

  .no-results-container h2 {
    font-size: 20px !important;
    word-wrap: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
    padding: 0 10px;
  }

  .no-results-container > p {
    font-size: 14px;
    padding: 0 10px;
    word-wrap: break-word;
  }

  .search-suggestions {
    margin: 0 auto 20px;
    max-width: 100%;
  }

  .quick-links-grid {
    gap: 8px;
  }

  .quick-link-btn {
    padding: 8px 14px;
    font-size: 13px;
  }

  /* Container de resultados no mobile */
  body .s-busca .container,
  body .s-busca .w-container {
    width: 95% !important;
    padding: 0 10px !important;
  }
}

/* ===================================
   MARCAS DO BLOG - IMAGEM CLICÁVEL
   =================================== */

.collection-list-2.w-dyn-items {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.collection-item-2 img.image-461 {
  max-width: 80px;
  height: auto;
  display: block;
}

/* ===================================
   FIX 16: BLOG CARDS - IMAGEM DESTACADA
   Sobrescreve o placeholder do Webflow na div-block-367
   =================================== */

/* ===================================
   FIX 17: HERO SECTIONS INTERNAS
   Espaçamento INTERNO (padding-top) para separar do menu fixo
   O margin-top é apenas para compensar o menu fixo (85px)
   O padding-top cria espaço INTERNO dentro da Hero
   =================================== */

/* Hero grudada no menu - SEM margin-top */
/* Desktop: espaçamento IGUAL em cima e embaixo */
html body .section-encontrar,
html body .section-blog,
html body .section-contato,
html body .s-busca-inicio,
html body .section-politica,
html body .section-quemsomos,
html body .section-marcas,
body.page-template-page-trabalhe-conosco .section {
  margin-top: 0 !important;
  padding-top: 140px !important;
  padding-bottom: 100px !important;
}

/* Página Onde Encontrar - Hero equilibrada */
html body .section-encontrar {
  padding-bottom: 100px !important;
  margin-bottom: 0 !important;
}

/* Container interno da Hero - largura 100% para centralização funcionar */
html body .section-encontrar > .w-layout-blockcontainer {
  width: 100% !important;
}

/* Seção da busca e seção dos cards - FUNDO BRANCO */
html body .parceiros-busca-wrapper,
html body .section-18 {
  background-color: #fff !important;
}

/* Reduzir espaçamento entre busca e cards */
html body .section-18 {
  padding-top: 20px !important;
}

/* ===================================
   FIX 18: PARCEIROS - GRID E CARDS
   Estilos para a página Onde Encontrar
   =================================== */

/* Wrapper da busca de parceiros */
.parceiros-search-wrapper {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
}

.parceiros-search-wrapper .search-input {
  flex: 1;
  min-width: 200px;
  max-width: 400px;
}

.parceiros-estado-select {
  padding: 12px 16px;
  border: 1px solid #ddd;
  border-radius: 8px;
  font-size: 14px;
  color: #333;
  background: white;
  min-width: 180px;
  cursor: pointer;
}

.parceiros-estado-select:focus {
  outline: none;
  border-color: #1dbdea;
}

/* Filtro ativo */
.parceiros-filtro-ativo {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  margin-top: 20px;
  font-size: 14px;
  color: #666;
}

.parceiros-filtro-ativo p {
  margin: 0;
}

.limpar-filtro {
  color: #CD242B;
  text-decoration: underline;
  font-weight: 500;
}

.limpar-filtro:hover {
  color: #a01d23;
}

/* Grid de parceiros */
.parceiros-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 30px;
  padding: 20px 0;
}

/* Card do parceiro */
.parceiro-card {
  background: white;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.parceiro-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
}

/* Mapa do parceiro */
.parceiro-mapa {
  width: 100%;
  height: 200px;
  overflow: hidden;
  background: #f5f5f5;
}

.parceiro-mapa iframe {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}

/* Placeholder quando não tem mapa */
.parceiro-mapa-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #f0f4f8 0%, #e8eef3 100%);
}

.mapa-placeholder-content {
  text-align: center;
  color: #999;
}

.mapa-placeholder-icon {
  width: 48px;
  height: 48px;
  opacity: 0.5;
}

/* Informações do parceiro */
.parceiro-info {
  padding: 30px 20px;
}

.parceiro-nome {
  font-size: 18px;
  font-weight: 700;
  color: #0c396e;
  margin: 0 0 4px 0;
  line-height: 1.3;
}

.parceiro-cidade {
  font-size: 14px;
  color: #666;
  margin: 0;
}

.parceiro-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.parceiro-link {
  display: inline-block;
  font-size: 14px;
}

/* Estado vazio */
.parceiros-empty {
  text-align: center;
  padding: 60px 20px;
  background: #f9f9f9;
  border-radius: 15px;
}

.parceiros-empty .empty-icon {
  margin-bottom: 20px;
}

.parceiros-empty .empty-icon img {
  width: 64px;
  height: 64px;
  opacity: 0.4;
}

.parceiros-empty h3 {
  font-size: 24px;
  color: #0c396e;
  margin: 0 0 10px 0;
}

.parceiros-empty p {
  font-size: 16px;
  color: #666;
  margin: 0 0 20px 0;
}

/* Estado vazio full width */
.parceiros-empty-full {
  grid-column: 1 / -1;
}

/* ===================================
   FIX 19: BUSCA AVANÇADA DE PARCEIROS
   Wrapper flutuante - 50% no Hero, 50% fora
   =================================== */

/* Wrapper que fica flutuando entre as seções - próximo da Hero */
.parceiros-busca-wrapper {
  position: relative;
  z-index: 10;
  margin-top: -20px;
  padding: 20px 20px 20px 20px;
  background-color: transparent !important;
}

.parceiros-busca-avancada {
  margin-top: 0;
  background-color: transparent;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

.parceiros-filtros {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  align-items: flex-end;
  justify-content: center;
  background: white;
  padding: 25px;
  border-radius: 20px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.filtro-grupo {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.filtro-grupo label {
  font-size: 12px;
  font-weight: 600;
  color: #0c396e;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.filtro-input,
.filtro-select {
  padding: 12px 20px;
  border: 1px solid #e0e0e0;
  border-radius: 50px;
  font-size: 14px;
  color: #333;
  background: #f9f9f9;
  min-width: 200px;
  transition: all 0.2s ease;
}

.filtro-input:focus,
.filtro-select:focus {
  outline: none;
  border-color: #1dbdea;
  background: white;
  box-shadow: 0 0 0 3px rgba(29, 189, 234, 0.1);
}

.filtro-input::placeholder {
  color: #999;
}

.filtro-botoes {
  display: flex;
  gap: 10px;
  flex-direction: row;
  align-items: flex-end;
}

.btn-buscar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 28px;
  background: #CD242B;
  color: white;
  border: none;
  border-radius: 50px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.btn-buscar:hover {
  background: #a01d23;
  transform: translateY(-2px);
}

.btn-buscar svg {
  width: 16px;
  height: 16px;
}

.btn-limpar {
  padding: 12px 24px;
  background: transparent;
  color: #666;
  border: 1px solid #ddd;
  border-radius: 50px;
  font-size: 14px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.btn-limpar:hover {
  background: #f5f5f5;
  border-color: #ccc;
}

.parceiros-contador {
  text-align: center;
  margin-top: 20px;
  font-size: 14px;
  color: #666;
}

.parceiros-contador span {
  font-weight: 700;
  color: #0c396e;
}

/* Loading */
.parceiros-loading {
  text-align: center;
  padding: 60px 20px;
}

.loading-spinner {
  width: 40px;
  height: 40px;
  border: 3px solid #f3f3f3;
  border-top: 3px solid #CD242B;
  border-radius: 50%;
  margin: 0 auto 20px;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.parceiros-loading p {
  color: #666;
  margin: 0;
}

/* Responsivo */
@media screen and (max-width: 991px) {
  .parceiros-filtros {
    flex-direction: column;
    align-items: stretch;
  }

  .filtro-grupo {
    width: 100%;
  }

  .filtro-input,
  .filtro-select {
    width: 100%;
    min-width: auto;
  }

  .filtro-botoes {
    flex-direction: row;
    justify-content: center;
  }
}

@media screen and (max-width: 767px) {
  .parceiros-search-wrapper {
    flex-direction: column;
  }

  .parceiros-search-wrapper .search-input,
  .parceiros-estado-select {
    width: 100%;
    max-width: 100%;
  }

  .parceiros-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .parceiros-filtro-ativo {
    flex-direction: column;
    gap: 10px;
  }

  /* Mobile: Hero grudada no menu - espaçamento equilibrado */
  /* Menu mobile ~70px, então padding-top 150px = 80px visível = igual ao padding-bottom */
  html body .section-encontrar,
  html body .section-blog,
  html body .section-contato,
  html body .s-busca-inicio,
  html body .section-politica,
  html body .section-quemsomos,
  html body .section-marcas,
  body.page-template-page-trabalhe-conosco .section {
    margin-top: 0 !important;
    padding-top: 150px !important;
    padding-bottom: 80px !important;
  }

  html body .section-encontrar {
    padding-bottom: 80px !important;
  }

  /* Container interno da Hero mobile */
  html body .section-encontrar > .w-layout-blockcontainer {
    width: 100% !important;
  }

  .parceiros-busca-wrapper {
    margin-top: -20px;
    padding: 20px 15px 20px 15px;
    background-color: #fff !important;
  }

  .parceiros-filtros {
    border-radius: 20px;
  }

  html body .section-18 {
    padding-top: 20px !important;
  }

  .parceiros-filtros {
    padding: 20px 15px;
  }

  .filtro-botoes {
    width: 100%;
  }

  .btn-buscar,
  .btn-limpar {
    flex: 1;
    justify-content: center;
  }
}

/* ===================================
   FIX 20: FORMULÁRIO DE CONTATO
   Estilos para mensagens de feedback
   =================================== */

.contact-form-message {
  padding: 15px 20px;
  border-radius: 8px;
  margin: 15px 0;
  font-size: 14px;
  line-height: 1.5;
  text-align: center;
}

.contact-form-message.success {
  background-color: #d4edda;
  color: #155724;
  border: 1px solid #c3e6cb;
}

.contact-form-message.error {
  background-color: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
}

#contact-submit-btn:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

/* ===================================
   FIX 24: CATÁLOGOS - GRID E CARDS
   Estilização da listagem de catálogos
   =================================== */

.catalogos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 30px;
  padding: 20px 0;
}

.catalogo-card {
  background: #fff;
  border-radius: 16px;
  padding: 20px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
  display: flex;
  flex-direction: column;
}

.catalogo-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15);
}

/* Capa do catálogo - Mockup de livro 3D */
.catalogo-capa {
  margin-bottom: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 30px 20px;
  background: linear-gradient(135deg, #f0f4f8 0%, #e2e8f0 100%);
  border-radius: 12px;
  perspective: 1000px;
}

/* Container do livro 3D */
.catalogo-capa .book-3d {
  position: relative;
  transform-style: preserve-3d;
  transform: rotateY(-25deg);
  transition: transform 0.5s ease;
}

.catalogo-card:hover .catalogo-capa .book-3d {
  transform: rotateY(-15deg);
}

/* Capa frontal do livro */
.catalogo-capa .book-cover {
  position: relative;
  display: block;
  box-shadow:
    0 15px 30px rgba(0,0,0,0.2),
    0 5px 15px rgba(0,0,0,0.1);
  border-radius: 0 4px 4px 0;
  overflow: hidden;
  background: #fff;
}

.catalogo-capa .book-cover img {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: 200px !important;
  max-height: 280px !important;
  object-fit: contain !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* Lombada do livro (lateral esquerda) */
.catalogo-capa .book-cover::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 15px;
  background: linear-gradient(90deg,
    #c0c0c0 0%,
    #e8e8e8 30%,
    #f5f5f5 50%,
    #e0e0e0 70%,
    #d0d0d0 100%
  );
  transform: translateX(-100%) rotateY(-90deg);
  transform-origin: right center;
  box-shadow: inset -2px 0 5px rgba(0,0,0,0.1);
}

/* Páginas do livro (efeito lateral) */
.catalogo-capa .book-cover::after {
  content: '';
  position: absolute;
  right: 0;
  top: 3px;
  bottom: 3px;
  width: 12px;
  background: linear-gradient(90deg,
    #f8f8f8 0%,
    #fff 20%,
    #f5f5f5 40%,
    #fff 60%,
    #f8f8f8 80%,
    #eee 100%
  );
  transform: translateX(100%) rotateY(90deg);
  transform-origin: left center;
  border-radius: 0 2px 2px 0;
}

/* Sombra interna para dar profundidade na capa */
.catalogo-capa .book-shine {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
    110deg,
    transparent 0%,
    transparent 40%,
    rgba(255,255,255,0.1) 45%,
    rgba(255,255,255,0.2) 50%,
    rgba(255,255,255,0.1) 55%,
    transparent 60%,
    transparent 100%
  );
  pointer-events: none;
  border-radius: 0 4px 4px 0;
}

/* Sombra da lombada na capa */
.catalogo-capa .book-spine-shadow {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 20px;
  background: linear-gradient(90deg,
    rgba(0,0,0,0.15) 0%,
    rgba(0,0,0,0.05) 50%,
    transparent 100%
  );
  pointer-events: none;
}

/* Título do catálogo */
.catalogo-titulo {
  margin: 0 0 15px 0;
  font-size: 18px;
  font-weight: 600;
  color: #0c396e;
}

/* Container de botões */
.catalogo-botoes {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: auto;
  padding-top: 10px;
}

/* Botão Ver Catálogo - fundo transparente, borda vermelha, texto preto */
.btn-ver-catalogo {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: transparent;
  color: #000 !important;
  border: 2px solid #CD242B;
  padding: 12px 24px;
  border-radius: 50px;
  font-weight: 600;
  font-size: 14px;
  text-decoration: none !important;
  transition: all 0.3s ease;
  font-family: 'Montserrat', sans-serif;
  box-shadow: none;
}

.btn-ver-catalogo svg {
  flex-shrink: 0;
  color: #000;
}

.btn-ver-catalogo:hover {
  background: #CD242B;
  color: #fff !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(205, 36, 43, 0.3);
}

.btn-ver-catalogo:hover svg {
  color: #fff;
}

/* Botão Download - ícone redondo */
.btn-download-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  min-width: 48px;
  background: #fff;
  border: 2px solid #0c396e;
  border-radius: 50%;
  color: #0c396e;
  transition: all 0.3s ease;
  text-decoration: none !important;
}

.btn-download-icon svg {
  flex-shrink: 0;
}

.btn-download-icon:hover {
  background: #0c396e;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(12, 57, 110, 0.3);
}

/* Estado vazio - sem catálogos */
.catalogos-empty {
  text-align: center;
  padding: 80px 40px;
  background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
  border-radius: 20px;
  margin: 20px 0;
}

.catalogos-empty-icon {
  margin-bottom: 25px;
  color: #adb5bd;
}

.catalogos-empty-icon svg {
  width: 80px;
  height: 80px;
}

.catalogos-empty-title {
  font-family: 'Montserrat', sans-serif;
  font-size: 28px;
  font-weight: 700;
  color: #0c396e;
  margin: 0 0 15px 0;
}

.catalogos-empty-text {
  font-family: 'Montserrat', sans-serif;
  font-size: 16px;
  color: #6c757d;
  max-width: 500px;
  margin: 0 auto;
  line-height: 1.6;
}

/* Responsivo - Tablets */
@media (max-width: 992px) {
  .catalogos-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
  }
}

/* Responsivo - Mobile */
@media (max-width: 768px) {
  .catalogos-grid {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 10px 0;
  }

  .catalogo-card {
    padding: 15px;
    border-radius: 12px;
  }

  .catalogo-capa {
    padding: 25px 15px;
    border-radius: 10px;
    perspective: none;
  }

  /* Desabilitar transformações 3D no mobile - causa bugs em iOS Safari */
  .catalogo-capa .book-3d {
    transform-style: flat;
    transform: none !important;
  }

  .catalogo-capa .book-cover {
    box-shadow:
      -8px 0 0 -2px #e8e8e8,
      -16px 0 0 -4px #ddd,
      0 10px 25px rgba(0,0,0,0.15);
    border-radius: 4px;
  }

  .catalogo-capa .book-cover img {
    display: block !important;
    max-width: 180px !important;
    max-height: 250px !important;
    border-radius: 4px;
    visibility: visible !important;
    opacity: 1 !important;
  }

  /* Esconder efeitos 3D no mobile */
  .catalogo-capa .book-cover::before,
  .catalogo-capa .book-cover::after {
    display: none;
  }

  .catalogo-capa .book-spine-shadow {
    display: none;
  }

  .catalogo-botoes {
    gap: 10px;
  }

  .btn-ver-catalogo {
    padding: 12px 20px;
    font-size: 13px;
    gap: 8px;
  }

  .btn-ver-catalogo svg {
    width: 16px;
    height: 16px;
  }

  .btn-download-icon {
    width: 44px;
    height: 44px;
    min-width: 44px;
  }

  .btn-download-icon svg {
    width: 18px;
    height: 18px;
  }

  /* Estado vazio mobile */
  .catalogos-empty {
    padding: 50px 25px;
    border-radius: 16px;
  }

  .catalogos-empty-icon svg {
    width: 60px;
    height: 60px;
  }

  .catalogos-empty-title {
    font-size: 22px;
  }

  .catalogos-empty-text {
    font-size: 14px;
  }
}

/* ===================================
   FIX 25: CORREÇÃO GLOBAL DE DISTORÇÃO DE IMAGENS
   Garantir que TODAS as imagens mantenham proporções
   =================================== */

/* REGRA GLOBAL: Todas as imagens devem ter height:auto por padrão */
img {
  height: auto;
}

/* ---- .image-473 - Blog Homepage (CRÍTICO) ---- */
/* Container da imagem - não esticar */
.section-15 .grid-16 > div:first-child {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Imagem do blog - tamanho original, sem distorção */
.section-15 .grid-16 .image-473,
.section-15 .image-473,
img.image-473 {
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 400px !important;
  object-fit: contain !important;
  border-radius: 20px;
}

/* ---- .image-459 - Blog Cards ---- */
img.image-459,
.image-459 {
  width: 100%;
  height: auto !important;
  object-fit: cover;
  aspect-ratio: 16/10;
}

/* ---- .image-462 - Posts Relacionados ---- */
img.image-462,
.image-462 {
  width: 100%;
  height: auto !important;
  object-fit: cover;
  aspect-ratio: 16/10;
}

/* ---- .image-464 - Logos Marcas ---- */
img.image-464,
.image-464 {
  width: 100%;
  height: auto !important;
  max-height: 150px;
  object-fit: contain;
}

/* ---- .image-466 - Seção Imagem ---- */
img.image-466,
.image-466 {
  width: 100%;
  height: auto !important;
  object-fit: cover;
}

/* ---- .image-471 - Seção Imagem ---- */
img.image-471,
.image-471 {
  width: 100%;
  height: auto !important;
  object-fit: cover;
}

/* ---- .image-475 - Quem Somos / 404 Page ---- */
img.image-475,
.image-475 {
  width: 100%;
  height: auto !important;
  object-fit: cover;
}

/* ---- .image-476 - Seção Imagem ---- */
img.image-476,
.image-476 {
  width: 100%;
  height: auto !important;
  object-fit: cover;
}

/* ---- .image-477 - Seção Imagem ---- */
img.image-477,
.image-477 {
  width: 100%;
  height: auto !important;
  object-fit: cover;
}

/* ---- .image-478 - Mockup Loja ---- */
img.image-478,
.image-478 {
  width: 100%;
  height: auto !important;
  object-fit: contain;
}

/* ---- .image-5 - Banner Home ---- */
img.image-5,
.image-5 {
  width: 100%;
  height: auto !important;
  object-fit: contain;
}

/* ---- .featured-image - Single Post ---- */
.post-featured-image img.featured-image,
img.featured-image,
.featured-image {
  width: 100%;
  height: auto !important;
  max-height: 500px;
  object-fit: cover;
  border-radius: 12px;
}

/* Mobile - manter proporções */
@media (max-width: 991px) {
  .section-15 .grid-16 .image-473,
  .section-15 .image-473,
  img.image-473 {
    max-height: 350px !important;
  }

  .post-featured-image img.featured-image,
  img.featured-image {
    max-height: 400px;
  }
}

@media (max-width: 768px) {
  .section-15 .grid-16 .image-473,
  .section-15 .image-473,
  img.image-473 {
    max-height: 300px !important;
  }

  .post-featured-image img.featured-image,
  img.featured-image {
    max-height: 300px;
  }
}

/* Mobile pequeno */
@media (max-width: 480px) {
  .catalogo-card {
    padding: 12px;
  }

  .catalogo-capa {
    padding: 20px 10px;
  }

  .catalogo-capa .book-cover img {
    max-width: 160px;
    max-height: 220px;
  }

  .catalogo-capa .book-cover::before {
    width: 10px;
  }

  .catalogo-capa .book-cover::after {
    width: 8px;
  }

  .btn-ver-catalogo {
    padding: 11px 16px;
    font-size: 12px;
  }

  .btn-download-icon {
    width: 40px;
    height: 40px;
    min-width: 40px;
  }
}


/* ===================================
   FIX 26: BLOG HOMEPAGE - GRID DE 3 POSTS
   Exibe os 3 últimos posts na Homepage
   =================================== */

.blog-home-posts-wrapper {
  width: 100%;
}

.blog-home-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.blog-home-card {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  display: flex;
  flex-direction: column;
}

.blog-home-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
}

.blog-home-card-image {
  position: relative;
  width: 100%;
  height: 200px;
  overflow: hidden;
}

.blog-home-card-image img.blog-home-thumb,
img.blog-home-thumb {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.3s ease;
}

.blog-home-card:hover .blog-home-card-image img {
  transform: scale(1.05);
}

.blog-home-card-content {
  padding: 20px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.blog-home-card-title {
  font-size: 18px;
  font-weight: 600;
  color: #1a1a2e;
  margin: 0 0 10px 0;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.blog-home-card-excerpt {
  font-size: 14px;
  color: #666;
  line-height: 1.6;
  margin-bottom: 15px;
  flex-grow: 1;
}

.blog-home-card-btn {
  margin-top: auto;
}

.blog-home-card-btn .button.w-button {
  display: inline-block;
  padding: 10px 20px;
  font-size: 14px;
}

/* ---- Responsivo: Tablet ---- */
@media screen and (max-width: 991px) {
  .blog-home-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
  }
}

/* ---- Responsivo: Mobile ---- */
@media screen and (max-width: 767px) {
  .blog-home-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .blog-home-card-image {
    height: 180px;
  }

  .blog-home-card-title {
    font-size: 16px;
  }
}

/* ---- Ajuste do layout da seção Blog Homepage ---- */
.section-15 .grid-13 {
  grid-template-columns: 1fr !important;
  gap: 40px !important;
}

.section-15 .div-block-372 {
  text-align: center !important;
  max-width: 700px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Centralizar título e subtítulo */
.section-15 .div-block-372 .h2,
.section-15 .div-block-372 h2,
.section-15 .h2.centro-copy-copy,
.section-15 h2.centro-copy-copy {
  text-align: center !important;
}

.section-15 .div-block-372 .paragraph-10,
.section-15 .div-block-372 p {
  text-align: center !important;
}

/* Tag "Blog" - manter tamanho original, apenas centralizada */
.section-15 .div-block-372 .div-block-358 {
  width: auto !important;
}

.section-15 .div-block-373 {
  text-align: center;
  margin-top: 30px;
}

/* Mostrar o botão "IR PARA O BLOG" que estava escondido */
.section-15 .div-block-373 .div-block-371 {
  display: block !important;
  margin-top: 0;
}

/* Wrapper dos posts centralizado */
.section-15 .blog-home-posts-wrapper {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

/* Botão "Acessar o blog" agora fica logo abaixo da descrição (dentro do bloco de texto) */
.section-15 .div-block-372 .div-block-373 {
  margin-top: 24px;
}
/* Remove o sublinhado azul herdado do <a> no botão "Acessar o blog" */
.section-15 .div-block-373 .link-block-4,
.section-15 .div-block-373 .link-block-4 .wf-text-large,
.section-15 .div-block-373 a {
  text-decoration: none !important;
}

/* Frase "Confira nossas matérias mais recentes:" antes dos cards */
.section-15 .blog-home-recentes {
  text-align: center;
  font-size: 18px;
  font-weight: 600;
  color: var(--1, #0c396d);
  margin: 0 0 6px;
}


/* ===================================
   FIX 27: SINGLE POST - SIDEBAR DEPOIS DO CONTEÚDO NO MOBILE
   No mobile, a postagem vem primeiro, depois a sidebar
   =================================== */

@media screen and (max-width: 991px) {
  /* Transforma o grid em flexbox para poder usar order */
  .single-post-grid {
    display: flex !important;
    flex-direction: column !important;
  }

  /* Conteúdo do post vem primeiro */
  .single-post-content {
    order: 1 !important;
  }

  /* Sidebar vem depois */
  .single-sidebar {
    order: 2 !important;
    margin-top: 40px;
  }
}


/* ===================================
   FIX 28: TIMELINE - ANIMAÇÃO DE SCROLL
   A linha vermelha preenche conforme o usuário rola a página
   Usa position:sticky para criar o efeito de preenchimento
   =================================== */

/* Linha de progresso vermelha - animação com sticky */
.timeline10_progress-line {
  z-index: 0;
  background-color: #cd242b;
  width: 3px;
  height: 50vh;
  margin-top: -50vh;
  position: sticky;
  top: 0;
}

/* ===================================
   FIX 29: TIMELINE MOBILE - LAYOUT CORRIGIDO
   Corrige alinhamento dos cards no mobile
   Usa flexbox com order para garantir: círculo à esquerda, card à direita
   =================================== */

@media screen and (max-width: 767px) {
  /* Container da timeline - padding lateral */
  .timeline10_component-2 {
    padding: 0 15px;
  }

  /* Lista de itens - espaçamento entre rows */
  .timeline10_list {
    grid-row-gap: 1.5rem !important;
  }

  /* CRÍTICO: Cada row usa flexbox para reordenar elementos */
  .timeline10_row {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 15px !important;
  }

  /* Esconde COMPLETAMENTE o espaço vazio */
  .timeline10_empty-space {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    flex: 0 !important;
  }

  /* Wrapper do círculo - SEMPRE primeiro (ordem 1) */
  .timeline10_circle-wrapper {
    order: 1 !important;
    flex-shrink: 0 !important;
    width: 24px !important;
    display: flex !important;
    justify-content: center !important;
  }

  /* Círculo - tamanho mobile */
  .timeline10_circle {
    width: 12px !important;
    height: 12px !important;
    margin-top: 1.25rem !important;
    box-shadow: 0 0 0 4px #fff !important;
  }

  /* Card - SEMPRE segundo (ordem 2), ocupa espaço restante */
  .timeline10_item {
    order: 2 !important;
    flex: 1 !important;
    width: auto !important;
    max-width: none !important;
    padding: 1rem 1.25rem !important;
    margin: 0 !important;
  }

  /* Card azul (2023) - mesmas regras */
  .timeline10_item.is-alternate {
    order: 2 !important;
    flex: 1 !important;
  }

  /* Barra de progresso - posição à esquerda */
  .timeline10_progress {
    left: 26px !important;
    width: 24px !important;
  }

  /* Linha cinza e vermelha - centralizada */
  .timeline10_line,
  .timeline10_progress-line {
    width: 3px !important;
  }

  /* Textos ajustados para mobile */
  .timeline10_item .heading-style-h6 {
    font-size: 1.4rem !important;
  }

  .timeline10_item .timeline-heading {
    font-size: 0.95rem !important;
  }

  .timeline10_item .text-size-tiny {
    font-size: 0.85rem !important;
    line-height: 1.35 !important;
  }

  /* Título em coluna no mobile */
  .timeline10_item .div-block-17 {
    flex-direction: column !important;
    gap: 0.15rem !important;
  }
}

/* =====================================================
   Parceiros - Campos extras (Endereço, Telefone, Produto)
   ===================================================== */
.parceiro-endereco,
.parceiro-telefone {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 6px 0 0 0;
    font-size: 13px;
    color: #666;
    line-height: 1.4;
}

.parceiro-endereco .parceiro-icon,
.parceiro-telefone .parceiro-icon {
    flex-shrink: 0;
    margin-top: 1px;
}

/* Botão Buscar - azul padrão da marca */
.btn-buscar {
    background-color: #0c396e !important;
    border-color: #0c396e !important;
    color: #fff !important;
}

.btn-buscar:hover {
    background-color: #092d58 !important;
    border-color: #092d58 !important;
}

/* Estado vazio / inicial - centralizado */
.parceiros-grid .parceiros-empty,
.parceiros-grid .parceiros-empty-full {
    grid-column: 1 / -1;
    text-align: center;
}

/* Filtro com 4 campos - ajuste de layout */
.parceiros-filtros {
    flex-wrap: wrap !important;
}

.parceiros-filtros .filtro-grupo {
    flex: 1 1 180px;
    min-width: 160px;
}

.parceiros-filtros .filtro-grupo.filtro-botoes {
    flex: 0 0 auto;
}

/* =====================================================
   Paginação Numerada
   ===================================================== */
.parceiros-paginacao {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 30px 0 10px;
    flex-wrap: wrap;
}

.pag-numeros {
    display: flex;
    align-items: center;
    gap: 4px;
}

.pag-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 8px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #fff;
    color: #333;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
}

.pag-num:hover {
    background: #f0f4f8;
    border-color: #0c396e;
    color: #0c396e;
}

.pag-num.pag-atual {
    background: #0c396e;
    color: #fff;
    border-color: #0c396e;
    cursor: default;
    font-weight: 700;
}

.pag-reticencias {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 36px;
    color: #999;
    font-size: 14px;
}

.pag-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 8px 16px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #fff;
    color: #0c396e;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
}

.pag-btn:hover {
    background: #0c396e;
    color: #fff;
    border-color: #0c396e;
}

.pag-desabilitado {
    opacity: 0.35;
    cursor: default;
    pointer-events: none;
}

@media screen and (max-width: 767px) {
    .pag-btn {
        padding: 8px 10px;
        font-size: 12px;
    }

    .pag-num {
        min-width: 32px;
        height: 32px;
        font-size: 13px;
    }
}

/* Inputs da busca em caixa alta (Sankhya armazena tudo uppercase) */
.filtro-input {
    text-transform: uppercase;
}

.filtro-input::placeholder {
    text-transform: none;
}

/* =====================================================
   Parceiros - Produtos como Tags
   ===================================================== */
/* Grupos de informação dentro do card */
.parceiro-grupo-nome {
    margin-bottom: 14px;
}

.parceiro-grupo-nome .parceiro-nome {
    margin-bottom: 4px;
}

.parceiro-grupo-contato {
    margin-bottom: 0;
}

/* Telefone clicável */
.parceiro-telefone-link {
    color: #0c396e;
    text-decoration: none;
    transition: color 0.2s ease;
}

.parceiro-telefone-link:hover {
    color: #CD242B;
    text-decoration: underline;
}

/* =====================================================
   Parceiros - Dropdown de Produtos
   ===================================================== */
.parceiro-card {
    position: relative;
}

.parceiro-dropdown {
    margin-top: 14px;
    border-top: 1px solid #eee;
    padding-top: 10px;
}

.parceiro-dropdown-content {
    position: relative;
    z-index: 10;
}

.parceiro-dropdown-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    background: none;
    border: none;
    padding: 6px 0;
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
    color: #0c396e;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: color 0.2s ease;
}

.parceiro-dropdown-toggle:hover {
    color: #CD242B;
}

.parceiro-dropdown-arrow {
    transition: transform 0.3s ease;
    flex-shrink: 0;
}

.parceiro-dropdown.aberto .parceiro-dropdown-arrow {
    transform: rotate(180deg);
}

.parceiro-dropdown-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, padding 0.35s ease;
    padding-top: 0;
}

.parceiro-dropdown.aberto .parceiro-dropdown-content {
    max-height: 500px;
    padding-top: 8px;
}

.parceiro-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.parceiro-tag {
    display: inline-block;
    background-color: #eef3f9;
    color: #0c396e;
    font-size: 10px;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 20px;
    border: 1px solid rgba(12, 57, 110, 0.15);
    line-height: 1.4;
    text-transform: capitalize;
}

/* =====================================================
   Parceiros - Google Maps Link no Endereço
   ===================================================== */
.parceiro-endereco-link {
    color: #0c396e;
    text-decoration: none;
    transition: color 0.2s ease;
}

.parceiro-endereco-link:hover {
    color: #CD242B;
    text-decoration: underline;
}

/* =====================================================
   Estado Inicial - Logos das Marcas (minimalista)
   ===================================================== */
.empty-logos {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    margin-bottom: 24px;
    flex-wrap: nowrap;
}

.empty-logo {
    width: 120px;
    max-width: 150px;
    height: auto;
    opacity: 0.25;
    transition: opacity 0.3s ease;
    flex-shrink: 0;
}

.empty-logo:hover {
    opacity: 0.5;
}

@media screen and (max-width: 767px) {
    .parceiros-filtros .filtro-grupo {
        flex: 1 1 100%;
    }

    .empty-logos {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
        max-width: 280px;
        margin-left: auto;
        margin-right: auto;
    }

    .empty-logo {
        width: 100%;
        max-width: 110px;
        justify-self: center;
    }
}

/* =====================================================================
   RESPONSIVO MOBILE — Pass completo (v1.1.11)
   Tudo aqui é isolado em @media (max-width: ...) — não afeta desktop.
   Para reverter: deletar deste bloco até o fim do arquivo.
   ===================================================================== */

/* ---------- (A) TABLET + MOBILE: até 991px ---------- */
@media (max-width: 991px) {

  /* ---- A.0 Containers fixos 1200px → fluido ---- */
  .container,
  .container-padrao,
  .container-regular,
  .container-7,
  .w-container,
  [class*="container"] {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }

  /* Padding lateral consistente nas seções principais */
  .s-home-video > .container,
  .s-home-video > .w-container,
  .section-14 > .container,
  .section-14 > .w-container,
  .section-15 > .container,
  .section-15 > .w-container,
  .section-16 > .container,
  .section-16 > .w-container,
  .section-23 > .container,
  .section-23 > .w-container {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  /* ---- A.1 HERO: garantir que só o slide .is-active aparece ----
     (CSS já tinha opacity/visibility, mas reforçando com !important
     pra blindar contra qualquer regra cascateada que reapareça) */
  .junco-hero .junco-hero-slide:not(.is-active) {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
  .junco-hero .junco-hero-slide.is-active {
    opacity: 1 !important;
    visibility: visible !important;
  }
  /* Altura mobile: PRECISA ser fixa (não auto) pq slides são position:absolute
     e dependem do .junco-hero-track ter altura concreta. Com auto, slide vira 0
     e a foto do bg desaparece. */
  .section-22.junco-hero {
    height: 620px !important;
    min-height: 620px !important;
  }
  .junco-hero .junco-hero-track {
    height: 100% !important;
    min-height: 620px !important;
    position: relative !important;
  }

  /* Tipografia do hero — fonte gigante de desktop estoura no mobile.
     v1.1.71/74: +3px titulo (32 -> 38) e descricao (15 -> 21) */
  .junco-hero .heading-13,
  .junco-hero-slide--novo .junco-hero-slide-content .heading-13 {
    font-size: 38px !important;
    line-height: 1.15 !important;
    max-width: 100% !important;
  }
  .junco-hero .paragraph-11,
  .junco-hero-slide--novo .junco-hero-slide-content .paragraph-11 {
    font-size: 21px !important;
    line-height: 1.5 !important;
    max-width: 100% !important;
  }

  /* Imagens do hero (slides 2 e 3) — limitar pra não vazar */
  .junco-hero .junco-hero-slide-img img {
    max-width: 100% !important;
    height: auto !important;
    max-height: 220px !important;
    object-fit: contain !important;
  }
  .junco-hero .junco-hero-slide-img {
    max-height: 240px !important;
    overflow: hidden;
  }

  /* Slides 2/3 com layout texto+imagem: empilhar texto em cima, imagem embaixo,
     CENTRALIZAR VERTICALMENTE o conjunto, largura máxima 270px (não encosta nas setas) */
  .junco-hero .junco-hero-slide-inner {
    padding: 90px 60px 40px !important; /* 60px lateral = afasta texto das setas */
    align-items: center !important;
    justify-content: center !important; /* centraliza vertical */
    text-align: center !important;
  }
  .junco-hero .junco-hero-slide-grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    width: 100% !important;
    align-content: center !important;
    align-items: center !important;
  }
  .junco-hero .junco-hero-slide-text {
    order: 1 !important;
    max-width: 90% !important;
    margin: 0 auto !important;
    text-align: center !important;
  }
  .junco-hero .junco-hero-slide-img {
    order: 2 !important;
    margin: 0 auto !important;
  }
  .junco-hero .junco-hero-slide-text .heading-13,
  .junco-hero .junco-hero-slide-text .paragraph-11 {
    max-width: 90% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }
  .junco-hero-slide--imagem-1991,
  .junco-hero-slide--imagem-30anos {
    min-height: 620px !important;
  }

  /* SLIDE 1 (novo): overlay CHAPADO com opacidade — v1.1.70: paleta clara (#1e8ecd) */
  .junco-hero-slide--novo .junco-hero-slide-overlay {
    background: rgba(30, 142, 205, 0.75) !important;
  }
  /* Slide 1 conteúdo: CENTRALIZADO VERTICAL + largura máxima 270px (não encosta nas setas) */
  .junco-hero-slide--novo .junco-hero-slide-content {
    padding: 90px 60px 40px !important;
    align-items: center !important;
    justify-content: center !important; /* centraliza vertical */
    text-align: center !important;
  }
  .junco-hero-slide--novo .junco-hero-slide-content .heading-13,
  .junco-hero-slide--novo .junco-hero-slide-content .paragraph-11 {
    max-width: 90% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  /* ---- A.2 CONTADORES (s-home-video grid-20) ---- */
  .s-home-video .grid-20,
  .s-home-video [class*="grid"] {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .s-home-video .bloco-numero {
    text-align: center;
  }

  /* ---- A.3 MARCAS (section-14 bloco-marcas-home) ---- */
  /* NÃO afetar .bm-grid (grade bento dos cards) — tem regras próprias mais abaixo */
  .section-14 .bloco-marcas-home,
  .section-14 [class*="grid"]:not(.w-layout-grid):not(.bloco-marcas-home):not(.bm-grid):not([class*="bm-grid"]) {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  /* Card de marca: padding e altura menores */
  .bloco-marcas-home {
    padding: 28px 20px !important;
    min-height: 0 !important;
    height: auto !important;
  }
  .bloco-marcas-home .image,
  .bloco-marcas-home img {
    max-height: 70px !important;
    width: auto !important;
    object-fit: contain;
  }

  /* ---- A.4 BLOG (section-15) ---- */
  .section-15 .blog-home-grid,
  .section-15 [class*="grid"] {
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
  }

  /* ---- A.5 E-COMMERCE CTA (section-23 grid-17) ---- */
  .section-23 .grid-17,
  .section-23 [class*="grid"] {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  /* ---- A.6 DEPOIMENTOS (section-16 grid-12) ---- */
  .section-16 .grid-12,
  .section-16 [class*="grid"] {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  /* ---- A.7 QUEM SOMOS (grid-8) ---- */
  .section-quemsomos .grid-8,
  .section-quemsomos [class*="grid"] {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .section-19 [class*="grid"],
  .section-11 [class*="grid"] {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  /* ---- A.8 MARCAS (page-marcas section-21 grid catálogos) ---- */
  .section-marcas [class*="grid"],
  .section-21 [class*="grid"],
  .catalogos-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
  }

  /* ---- A.9 CONTATO ---- */
  .section-contato [class*="grid"],
  .section-7 [class*="grid"],
  .grid-4 {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  /* ---- A.10 ONDE ENCONTRAR — cards de parceiros ---- */
  .parceiros-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  /* ---- A.11 TRABALHE CONOSCO ---- */
  .section-trabalhe-conosco [class*="grid"] {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  /* ---- A.12 BLOG (archive) ---- */
  .section-blog [class*="grid"] {
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
  }

  /* ---- A.13 Imagens: nunca vazar ---- */
  img {
    max-width: 100%;
    height: auto;
  }

  /* ---- A.14 WhatsApp btn — afastar da borda inferior ---- */
  .whatsapp-btn {
    bottom: 16px !important;
    right: 16px !important;
  }
}

/* ---------- (B) MOBILE ESTRITO: até 767px ---------- */
@media (max-width: 767px) {

  /* ---- B.1 HERO: ainda menor ---- v1.1.72/74: +3px novamente (31->34 titulo, 17->20 descricao) */
  .junco-hero .heading-13,
  .junco-hero-slide--novo .junco-hero-slide-content .heading-13 {
    font-size: 34px !important;
  }
  .junco-hero .paragraph-11,
  .junco-hero-slide--novo .junco-hero-slide-content .paragraph-11 {
    font-size: 20px !important;
  }
  .section-22.junco-hero {
    height: 600px !important;
    min-height: 600px !important;
  }
  .junco-hero .junco-hero-track {
    min-height: 600px !important;
  }

  /* ---- B.2 Headings genéricos: reduzir ---- */
  .heading-12,
  h2.heading-12 {
    font-size: 22px !important;
    line-height: 1.2 !important;
  }
  .heading-19 {
    font-size: 20px !important;
    line-height: 1.25 !important;
  }
  .heading-2,
  h2.heading-2 {
    font-size: 24px !important;
    line-height: 1.2 !important;
  }

  /* ---- B.3 Blog em 1 coluna no mobile estrito ---- */
  .section-15 .blog-home-grid,
  .section-15 [class*="grid"],
  .section-blog [class*="grid"] {
    grid-template-columns: 1fr !important;
  }

  /* ---- B.4 Marcas (page-marcas) em 1 coluna ---- */
  .section-marcas [class*="grid"],
  .section-21 [class*="grid"],
  .catalogos-grid {
    grid-template-columns: 1fr !important;
  }

  /* ---- B.5 Padding lateral global das seções ---- */
  .s-home-video,
  .section-14,
  .section-15,
  .section-16,
  .section-23,
  .section-quemsomos,
  .section-marcas,
  .section-contato,
  .section-blog,
  .section-trabalhe-conosco,
  .section-onde-encontrar,
  .section-politica {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* ---- B.6 Hero slide content: padding razoável no celular ---- */
  .junco-hero-slide--novo .junco-hero-slide-content {
    padding: 80px 20px 60px !important;
  }
  .junco-hero .junco-hero-slide-inner {
    padding: 80px 20px 60px !important;
  }
}
/* ===== FIM do bloco RESPONSIVO MOBILE — Pass completo (v1.1.11) ===== */


/* =====================================================================
   CARDS DE MARCA (home / section-14) — Reestruturação v1.1.19
   Layout: [grade bento à esquerda] + [logo + nome + texto + botões à direita]
   4 variações de grade bento (uma por marca) pra ficar criativo.
   Placeholders cinza com ícone de imagem até user mandar fotos reais.
   ===================================================================== */

/* Card raiz — sobrescreve o grid-template-columns default (1fr 1fr) com proporção
   mais favorável à grade e ajusta padding/gap pra layout mais respirado */
.bloco-marcas-home.bm-card {
  grid-template-columns: 1.15fr 1fr;
  grid-column-gap: 32px;
  grid-row-gap: 32px;
  padding: 32px;
  align-items: stretch;
}

/* ============= GRADE BENTO ============= */
.bm-grid {
  display: grid;
  gap: 8px;
  min-height: 340px;
  width: 100%;
}

/* Placeholder cinza com ícone de imagem (até virem fotos reais).
   Quando user fornecer fotos: substituir background-image deste data-svg
   pela URL da foto + remover background-size:32px / background-repeat */
.bm-thumb {
  background-color: #e8e8e8;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a0a0a0' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='2'/><circle cx='8.5' cy='8.5' r='1.5'/><path d='M21 15l-5-5L5 21'/></svg>");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 36px;
  border-radius: 14px;
  transition: background-color 0.3s ease, transform 0.3s ease;
}
.bm-thumb:hover {
  background-color: #dcdcdc;
  transform: scale(1.015);
}

/* ----- VARIANT 1 (JUNCO) — "L invertido"
   ┌─────────┬─────┐
   │         │  b  │
   │    a    ├─────┤
   │         │  c  │
   ├─────────┴─────┤
   │       d       │
   └───────────────┘ */
.bm-grid--variant-1 {
  grid-template-columns: 1.6fr 1fr;
  grid-template-rows: 1fr 1fr 0.9fr;
}
.bm-grid--variant-1 .bm-thumb--a { grid-column: 1; grid-row: 1 / span 2; }
.bm-grid--variant-1 .bm-thumb--b { grid-column: 2; grid-row: 1; }
.bm-grid--variant-1 .bm-thumb--c { grid-column: 2; grid-row: 2; }
.bm-grid--variant-1 .bm-thumb--d { grid-column: 1 / span 2; grid-row: 3; }

/* ----- VARIANT 2 (HAPPY LIFE) — "L espelhado"
   ┌─────┬─────────┐
   │  a  │         │
   ├─────┤    b    │
   │  c  │         │
   ├─────┴─────────┤
   │       d       │
   └───────────────┘ */
.bm-grid--variant-2 {
  grid-template-columns: 1fr 1.6fr;
  grid-template-rows: 1fr 1fr 0.9fr;
}
.bm-grid--variant-2 .bm-thumb--a { grid-column: 1; grid-row: 1; }
.bm-grid--variant-2 .bm-thumb--b { grid-column: 2; grid-row: 1 / span 2; }
.bm-grid--variant-2 .bm-thumb--c { grid-column: 1; grid-row: 2; }
.bm-grid--variant-2 .bm-thumb--d { grid-column: 1 / span 2; grid-row: 3; }

/* ----- VARIANT 3 (FÃ) — "diagonal / xadrez assimétrico"
   ┌─────┬─────────┐
   │  a  │    b    │
   ├─────┴───┬─────┤
   │    c    │  d  │
   └─────────┴─────┘ */
.bm-grid--variant-3 {
  grid-template-columns: 1fr 1.4fr 1fr;
  grid-template-rows: 1fr 1fr;
}
.bm-grid--variant-3 .bm-thumb--a { grid-column: 1; grid-row: 1; }
.bm-grid--variant-3 .bm-thumb--b { grid-column: 2 / span 2; grid-row: 1; }
.bm-grid--variant-3 .bm-thumb--c { grid-column: 1 / span 2; grid-row: 2; }
.bm-grid--variant-3 .bm-thumb--d { grid-column: 3; grid-row: 2; }

/* ----- VARIANT 4 (DOCES TEMPOS) — "T" (longa em cima, 3 quadradas embaixo)
   ┌───────────────┐
   │       a       │
   ├─────┬─────┬───┤
   │  b  │  c  │ d │
   └─────┴─────┴───┘ */
.bm-grid--variant-4 {
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: 1.4fr 1fr;
}
.bm-grid--variant-4 .bm-thumb--a { grid-column: 1 / span 3; grid-row: 1; }
.bm-grid--variant-4 .bm-thumb--b { grid-column: 1; grid-row: 2; }
.bm-grid--variant-4 .bm-thumb--c { grid-column: 2; grid-row: 2; }
.bm-grid--variant-4 .bm-thumb--d { grid-column: 3; grid-row: 2; }

/* ============= LADO DIREITO: logo + nome + texto + botões ============= */
.bm-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}
.bm-logo {
  display: block;
  max-height: 58px; /* desktop — 20% maior que os 48px originais */
  width: auto;
  margin: 0 0 20px 0; /* aumentado pq o nome em texto foi removido (era logo→nome→desc, agora logo→desc) */
}

/* ============= MOBILE — empilhar grade em cima + conteúdo embaixo CENTRALIZADO =============
   Importante: uso #marcas (ID) pra blindar contra regras antigas de
   .section-14 [class*="grid"] que existem mais acima no arquivo com !important
   e mais specificity que classes encadeadas conseguem. */
@media (max-width: 991px) {
  #marcas .bloco-marcas-home.bm-card {
    grid-template-columns: 1fr !important;
    padding: 24px !important;
    gap: 28px !important; /* espaço entre grade de fotos e bloco de conteúdo */
  }
  /* v1.1.77: removida a regra que forcava grade 2x2 no mobile.
     Agora todas as marcas usam variant-1 (mesma do Junco) e o layout assimetrico
     se mantem em qualquer largura — apenas escala. */
  /* CENTRALIZAR tudo: logo, título, descrição, botões */
  #marcas .bm-content {
    align-items: center !important;
    text-align: center !important;
  }
  #marcas .bm-logo {
    max-height: 53px !important; /* mobile — 20% maior que 44px */
    margin: 0 auto 24px auto !important; /* aumentado pq sem nome em texto, logo vai direto pra descrição */
    display: block !important;
  }
  #marcas .bm-content .heading-12 {
    text-align: center !important;
    margin: 0 auto 12px auto !important;
    width: 100%;
  }
  #marcas .bm-content .paragraph-8 {
    text-align: center !important;
    max-width: 320px !important;
    margin: 0 auto 20px auto !important;
  }
  /* BOTÕES lado a lado, centralizados, larguras compactas pra caber sem quebrar */
  #marcas .bm-content .div-block-350 {
    display: flex !important;
    flex-direction: row !important;
    justify-content: center !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    width: 100% !important;
    align-self: stretch !important;
    margin-top: 0 !important;
  }
  #marcas .bm-content .div-block-366 {
    margin-top: 0 !important;
    width: auto !important;
    flex: 0 1 auto !important;
  }
  #marcas .bm-content .btn-ext-2,
  #marcas .bm-content .btn-ext-3 {
    width: auto !important;
    min-width: 0 !important;
    flex: 0 1 auto !important;
    padding: 10px 14px !important;
    font-size: 11px !important;
    min-height: 40px !important;
    white-space: nowrap !important;
    line-height: 1.2 !important;
  }

  /* Rodapé da seção marcas: centralizar o botão "Onde Encontrar"
     (o texto já tá centralizado mas o botão ficava colado à esquerda) */
  #marcas .div-block-351 #w-node-onde-encontrar-btn,
  #marcas .div-block-351 .grid-14 > div:last-child {
    text-align: center !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
  }
  #marcas .div-block-351 #btn.btn-ext {
    margin: 0 auto !important;
    display: inline-block !important;
    width: auto !important;
  }
}
/* ===== FIM do bloco CARDS DE MARCA v1.1.19 ===== */


/* =====================================================================
   BANNER CTA "Soluções para o seu negócio" (rodapé seção Marcas) v1.1.27
   Título adicionado acima da descrição. Mantém layout: texto à esquerda,
   botão à direita (desktop); centralizado no mobile.
   ===================================================================== */
/* SEÇÃO full-width: degradê azul Junco ocupando 100% da largura, conteúdo
   dentro do container-padrao. Espaço acima (separa de Marcas), encostado embaixo. */
.section-cta-negocio {
  background-image: linear-gradient(125deg, var(--1), var(--5));
  width: 100%;
  margin-top: 40px;
  padding: 90px 0; /* seção maior (mais respiro topo/base) */
}
/* 3 colunas no desktop: [imagem pin] [texto] [botões] */
.section-cta-negocio .grid-14 {
  grid-template-columns: auto 1fr auto !important;
  gap: 40px !important;
  align-items: center;
}
.section-cta-negocio .cta-img {
  display: flex;
  align-items: center;
  justify-content: center;
}
.cta-img-pin {
  display: block;
  width: 220px; /* desktop: pin mais alto, ~altura do bloco título+descrição */
  height: auto;
}

/* Coluna texto: hierarquia título > descrição, alinhados à esquerda */
.section-cta-negocio .banner-cta-titulo {
  color: #fff;
  font-size: 42px; /* título maior */
  line-height: 1.12;
  font-weight: 700;
  margin: 0 0 16px 0;
  text-align: left;
}
.section-cta-negocio .paragraph-9 {
  font-size: 17px !important;
  line-height: 1.5 !important;
  font-weight: 400 !important;
  max-width: 480px !important;
  margin: 0 !important;
  text-align: left !important;
}

/* Coluna ações: 2 botões EMPILHADOS, mesma largura, alinhados à direita */
.section-cta-negocio #w-node-onde-encontrar-btn {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.cta-botoes {
  display: flex;
  flex-direction: column;
  gap: 14px;
  width: 100%;
  max-width: 320px; /* botões empilhados com mesma largura */
}
.section-cta-negocio .cta-botoes .btn-ext {
  width: 100%;
  text-align: center;
  box-sizing: border-box;
}
/* Botões com ícone à esquerda (carrinho / pin): sem a seta de fundo,
   conteúdo centralizado. "Acessar loja online" = carrinho; "Onde encontrar" = pin */
.btn-ext--local,
.btn-ext--loja {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background-image: none !important;
  padding: 15px 24px !important;
}
.btn-local-icon,
.btn-cart-icon {
  width: 18px;
  height: 18px;
  filter: brightness(0) invert(1); /* deixa o ícone branco */
}

/* MOBILE: empilha colunas, centraliza tudo; botões mesma largura centralizados */
@media (max-width: 991px) {
  .section-cta-negocio { padding: 56px 0; }
  .section-cta-negocio .grid-14 {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    text-align: center;
    justify-items: center;
  }
  .section-cta-negocio .cta-img {
    order: -1; /* imagem no topo */
  }
  .cta-img-pin {
    width: 90px;
  }
  .section-cta-negocio .banner-cta-titulo {
    text-align: center !important;
    font-size: 30px !important;
    margin-bottom: 12px !important;
  }
  .section-cta-negocio .paragraph-9 {
    text-align: center !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
    max-width: 360px !important;
    margin: 0 auto !important;
  }
  .section-cta-negocio #w-node-onde-encontrar-btn {
    align-items: center !important;
  }
  .cta-botoes {
    margin: 0 auto;
  }
}
/* ===== FIM da seção CTA Soluções v1.1.27 ===== */

/* ===== v1.1.29 - Seção "Faça Seus Pedidos com Autonomia" (section-23) ===== */
/* Centraliza verticalmente a coluna de texto (estava colada no topo) */
.section-23 .grid-17 {
  align-items: center;
}
.section-23 .div-block-383 {
  align-self: center;
}
/* Garante que o <strong> do CNPJ na nova redação herde o peso correto */
.section-23 .paragraph-10-copygn strong {
  font-weight: 700;
  color: inherit;
}
/* ===== FIM v1.1.29 ===== */

/* ===== v1.1.30 - Placeholder vazio do mockup (Customizer sem imagem selecionada) ===== */
.section-23 .mockup-placeholder {
  display: block;
  width: 100%;
  aspect-ratio: 939 / 635;
  background: transparent;
}
/* ===== FIM v1.1.30 ===== */

/* ===== v1.1.31 - Carrossel de Depoimentos (section-16) ===== */
/* Imune ao initScrollReveal (cards no carrossel não devem ter fade-in inicial,
   senão cards fora da viewport inicial nunca aparecem) */
.depoimentos-track .depoimento-card {
  opacity: 1 !important;
  transform: none !important;
  display: flex;
  flex-direction: column;
}
/* Inner wrapper preenche toda a altura do card; label "Regional X" cola no rodapé */
.depoimentos-track .depoimento-card > div:first-child {
  display: flex;
  flex-direction: column;
  flex: 1;
  width: 100%;
}
.depoimentos-track .depoimento-card .text-block-23 {
  margin-top: auto;
}
/* Foto do cliente (quando houver) ocupa o círculo da aspa; senão usa o ícone citar.svg */
.depoimentos-track .depoimento-card .depoimento-foto {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}

/* Cabeçalho: título centralizado com descrição abaixo (anula o grid-13 de 2 colunas) */
.section-16 .grid-13 {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  gap: 12px !important;
  grid-template-columns: none !important;
}
.section-16 .div-block-389,
.section-16 .div-block-389 h2,
.section-16 .paragraph-10 {
  text-align: center !important;
}
.section-16 .paragraph-10 {
  max-width: 680px;
  margin: 0 auto !important;
}

.depoimentos-carousel {
  position: relative;
}
/* padding-top abre espaço para a badge da aspa (margin-top:-35px) aparecer
   inteira sem ser cortada pelo overflow:hidden do viewport */
.depoimentos-viewport {
  overflow: hidden;
  padding-top: 45px;
}
.depoimentos-track {
  display: flex;
  gap: 24px;
  transition: transform 0.45s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: transform;
}
.depoimentos-track > .depoimento-card {
  flex: 0 0 calc((100% - 48px) / 3);
  min-width: 0;
}

/* Controles (setas) centralizados abaixo dos cards */
.depoimentos-controls {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  margin-top: 32px;
}
.depoimentos-arrow {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(28, 56, 124, 0.18);
  background: #fff;
  color: #1c387c;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  box-shadow: 0 6px 16px rgba(28, 56, 124, 0.10);
  transition: opacity 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.depoimentos-arrow:hover:not([disabled]) {
  background: #1c387c;
  color: #fff;
}
.depoimentos-arrow[disabled],
.depoimentos-arrow[aria-disabled="true"] {
  opacity: 0.35;
  cursor: default;
}
.depoimentos-arrow svg {
  width: 20px;
  height: 20px;
  display: block;
}

/* Botão "Veja os nossos depoimentos no Google" (discreto, abaixo do carrossel) */
.depoimentos-google {
  display: flex;
  justify-content: center;
  margin-top: 24px;
}
.depoimentos-google-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 11px 22px;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 40px;
  background: #fff;
  color: #3c4043;
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}
.depoimentos-google-btn:hover {
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
  border-color: rgba(0, 0, 0, 0.2);
}

@media (max-width: 991px) {
  .depoimentos-track > .depoimento-card {
    flex: 0 0 calc((100% - 24px) / 2);
  }
}
@media (max-width: 767px) {
  /* 1 card por vez; altura IGUAL entre todos (stretch), igual ao desktop */
  .depoimentos-track {
    gap: 16px;
    align-items: stretch;
  }
  .depoimentos-track > .depoimento-card {
    flex: 0 0 100%;
  }
  .depoimentos-arrow {
    width: 40px;
    height: 40px;
  }
}
/* ===== FIM v1.1.31 ===== */

/* ===== v1.1.35 - Rodapé: contato reformulado + âncoras de marca ===== */
.footer-contato-intro {
  color: #fff; /* texto branco no fundo azul do rodapé (estava escuro/invisível) */
  font-size: 13px;
  opacity: 0.85;
  margin: 6px 0 16px;
  line-height: 1.5;
  max-width: 260px;
}
.footer-contato-sub {
  display: block;
  color: #fff; /* texto branco no fundo azul do rodapé */
  font-size: 12px;
  opacity: 0.7;
  margin: 2px 0 8px;
}
/* Âncoras de marca: FORA do fluxo (não entram na grade do card) + offset do header fixo.
   Antes usavam display:block e quebravam o layout "grade à esquerda / infos à direita". */
.section-14 .bm-card,
.section-14 .bloco-marcas-home {
  position: relative;
}
.marca-anchor {
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  overflow: hidden;
  pointer-events: none;
  scroll-margin-top: 110px;
}
/* ===== FIM v1.1.35 ===== */

/* ===== v1.1.36 - Espaçamento entre linhas dos títulos do rodapé ===== */
.rodape .title-small,
.rodape .title-small-copy {
  line-height: 1.35;
}
@media (max-width: 767px) {
  .rodape .title-small,
  .rodape .title-small-copy {
    line-height: 1.4;
  }
}
/* ===== FIM v1.1.36 ===== */

/* ===== v1.1.37 - 0800 da loja online como texto (não clicável; 0800 não abre WhatsApp) ===== */
.footer-contato-texto {
  cursor: default;
  text-decoration: none;
}
/* ===== FIM v1.1.37 ===== */

/* ===== v1.1.41 - Intro da página de contatos (título + descrição movidos do rodapé) ===== */
.section-7 .contato-intro {
  margin: 4px 0 18px;
  font-size: 15px;
  line-height: 1.5;
  max-width: 380px;
}
/* ===== FIM v1.1.41 ===== */

/* ===== v1.1.42 - Página Contatos: novo fundo do hero + rótulos de grupo ===== */
.section-contato {
  background-image: radial-gradient(circle, #1dbdeac9, #1e8ecdf7), url('../images/contato-bg.webp') !important;
  background-position: center center, center center !important;
  background-size: cover, cover !important;
  background-repeat: no-repeat, no-repeat !important;
}
.section-7 .contato-grupo-label {
  font-weight: 700;
  color: #1c387c;
  margin: 18px 0 8px;
  font-size: 14px;
  line-height: 1.4;
}
/* ===== FIM v1.1.42 ===== */

/* ===== v1.1.53/55 - Filtro unificado do /blog/ (sidebar com checkboxes + AJAX) =====
   Layout compacto, sem scroll interno, marcas como logos. */
.junco-blog-filters {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 22px;
}
.junco-filter-search input[type="search"] {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid #d8dde5;
  border-radius: 6px;
  font-family: Barlow, Arial, sans-serif;
  font-size: 14px;
  color: #1a2238;
  background: #fff;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.junco-filter-search input[type="search"]:focus {
  border-color: #1e8ecd;
  box-shadow: 0 0 0 3px rgba(30,142,205,.15);
}
.junco-filter-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.junco-filter-title {
  font-family: Barlow, Arial, sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: #0c396d;
  text-transform: uppercase;
  letter-spacing: .03em;
  margin-top: 14px;
  margin-bottom: 12px;
  padding: 0;
  border: 0;
}
/* Categorias e Tags: pills inline (mesmo visual de antes do .text-block-19).
   Sem checkbox visivel; o input fica escondido e a propria label eh o "pill" clicavel. */
.junco-filter-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 5px;
  margin: 0;
}
.junco-filter-item {
  display: inline-flex;
  align-items: center;
  position: relative;
  margin: 0;
  cursor: pointer;
}
.junco-filter-item input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 0;
  height: 0;
}
.junco-filter-label {
  display: inline-block;
  color: #000;
  border: 1px solid #cd242b45;
  border-radius: 200px;
  padding: 3px 10px;
  font-family: Barlow, Arial, sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.3;
  text-decoration: none;
  background: #fff;
  transition: all .25s ease;
  user-select: none;
}
.junco-filter-item:hover .junco-filter-label { background-color: #cd242b17; }
.junco-filter-item:has(input:checked) .junco-filter-label {
  background-color: #cd242b;
  border-color: #cd242b;
  color: #fff;
}
.junco-filter-count { color: #8b94a8; font-size: 12px; margin-left: 4px; }
.junco-filter-item:has(input:checked) .junco-filter-count { color: #ffd1d4; }

/* Marcas: logos em grid 2 colunas, destaque quando marcada (igual antes) */
.junco-filter-marcas {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.junco-marca-item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 10px 8px;
  background: #fff;
  border: 2px solid #e5eaf2;
  border-radius: 8px;
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease;
}
.junco-marca-item input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 0;
  height: 0;
}
.junco-marca-item img {
  width: 100%;
  height: auto;
  max-height: 36px;
  object-fit: contain;
  filter: grayscale(100%);
  transition: filter .25s ease;
}
.junco-marca-item:hover img { filter: none; }
.junco-marca-item:has(input:checked) {
  border-color: #cd242b;
  background: #fff7f7;
}
.junco-marca-item:has(input:checked) img { filter: none; }
.junco-marca-name {
  font-family: Barlow, Arial, sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: #3c4a63;
  text-align: center;
}
.junco-marca-item:has(input:checked) .junco-marca-name { color: #cd242b; }

.junco-filter-actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}
.junco-filter-clear,
.junco-filter-search-btn {
  flex: 1;
  border: 0;
  border-radius: 200px;
  padding: 12px 20px;
  font-family: Barlow, Arial, sans-serif;
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .03em;
  cursor: pointer;
  transition: background .25s ease, transform .1s ease;
}
.junco-filter-clear {
  background: #f0f3f8;
  color: #0c396d;
}
.junco-filter-clear:hover { background: #e1e7f1; }
.junco-filter-clear:active { transform: translateY(1px); }
.junco-filter-search-btn {
  background: #cd242b;
  color: #fff;
}
.junco-filter-search-btn:hover { background: #b21d23; }
.junco-filter-search-btn:active { transform: translateY(1px); }

/* Loading state do grid de resultados */
#junco-blog-results { transition: opacity .15s ease; }
#junco-blog-results.is-loading { opacity: .45; pointer-events: none; }

/* Mobile: sidebar (filtros) tem que vir ANTES dos resultados.
   O Webflow original deixou order:9999 no #w-node-...cf61b9d9 em telas <= 479px,
   o que joga o filtro pro final da pagina. Aqui forcamos a voltar pra ordem natural
   (filtro em cima, posts embaixo) em todas as larguras de mobile. */
@media (max-width: 767px) {
  #w-node-_70b3dbf1-ede0-8988-16c8-9aeb5fbb1aff-cf61b9d9 { order: 0 !important; }
}

/* ===== v1.1.45 - Remover parallax (background-attachment:fixed) de TODOS os heros ===== */
.section,
.section-contato,
.section-blog,
.section-blog-template,
.section-blog-tag,
.section-blog-marcas,
.section-encontrar,
.section-quemsomos,
.section-marcas {
  background-attachment: scroll !important;
}
/* ===== FIM v1.1.45 ===== */

/* ===== v1.1.60 - Hero do /blog/ - troca imagem de fundo (7413.webp -> 6196.webp) centralizada ===== */
.section-blog {
  background-image: radial-gradient(circle, #1dbdeac9, #1e8ecdf7), url('../images/6196.webp') !important;
  background-position: 0 0, center center !important;
  background-repeat: repeat, no-repeat !important;
  background-size: auto, cover !important;
}

/* ===== v1.1.62 - Single post: largura cheia, breadcrumb flutuante, redes ao lado do "Voltar" ===== */

/* Breadcrumb no single post: tira a "pilula" azul (background + borda), fica so o texto flutuando */
body.single .div-block-358 {
  background-color: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}

/* Single post sem sidebar - container menor (800px / 90%) so nesta pagina */
.single-post-fullwidth {
  width: 800px;
  max-width: 90%;
  margin-left: auto;
  margin-right: auto;
}

/* Hero do single + sobreposicao do container.
   Padrao baseado em .section-marcas (140/100 desktop, ja aprovado em outras heros)
   + 50px no padding-bottom pra compor a sobreposicao do container.
   !important no margin-top porque .container-padrao tem margin-top:0 que estava
   anulando o negativo. */
body.single .div-block-356 {
  padding-top: 140px !important;
  padding-bottom: 150px !important;
}
body.single .section-8 {
  padding-top: 0 !important;
}
body.single .single-post-fullwidth {
  position: relative;
  z-index: 2;
  margin-top: -50px !important;
}
@media (max-width: 767px) {
  body.single .div-block-356 {
    padding-top: 130px !important;
    padding-bottom: 110px !important;
  }
  body.single .single-post-fullwidth { margin-top: -30px !important; }
}

/* Bloco do botao "Voltar para o Blog" + redes sociais (lado a lado no desktop) */
.single-back-social {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px;
  margin-top: 30px;
}
.single-back-social .div-block-324 { margin-right: 0; }
.single-social-block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.single-social-block .text-block-18 {
  margin-bottom: 0;
  color: var(--1);
  font-weight: 600;
}

/* Mobile: empilha botao em cima, redes embaixo */
@media (max-width: 767px) {
  .single-back-social {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }
}

/* ===== v1.1.75/76 - "Conheca a Trajetoria da Junco" (.s-home-video) =====
   - Bloco 1: imagem trocada (021A5940-1.webp -> slide-12.webp), centralizada
   - Overlay azul #1e8ecd reduzido de 90% (e6) para 82% (d1) nos 3 blocos */
.bloco-numero._1 {
  background-image: linear-gradient(#1e8ecdd1, #1e8ecdd1), url('../images/slide-12.webp') !important;
  background-position: 0 0, 50% 50% !important;
  background-repeat: repeat, no-repeat !important;
  background-size: auto, cover !important;
}
.bloco-numero._2 {
  background-image: linear-gradient(#1e8ecdd1, #1e8ecdd1), url('../images/equipe.webp') !important;
  background-position: 0 0, 50% 50% !important;
  background-repeat: repeat, no-repeat !important;
  background-size: auto, cover !important;
}
.bloco-numero._3 {
  background-image: linear-gradient(#1e8ecdd1, #1e8ecdd1), url('../images/sede.webp') !important;
  background-position: 0 0, 50% 50% !important;
  background-repeat: repeat, no-repeat !important;
  background-size: auto, cover !important;
}

/* =========================================================================
   /marcas/ - filtro de catalogos (v1.1.81)
   Layout = pegada do blog: .section-8 + .w-layout-grid.grid-5 nativos.
   Aqui so o estado de loading e o flatten dos cards (sem fundo branco/sombra)
   pra alinhar com o visual do blog.
   ========================================================================= */
#junco-catalogo-results { transition: opacity .15s ease; }
#junco-catalogo-results.is-loading { opacity: .45; pointer-events: none; }

/* Sobrescreve o card branco com sombra: nesta pagina os cards ficam flat,
   herdando o respiro do .grid-5 (que ja e o padrao do blog). */
#junco-catalogo-results .catalogo-card {
  background: transparent;
  box-shadow: none;
  padding: 0;
  border-radius: 0;
}
#junco-catalogo-results .catalogo-card:hover {
  transform: none;
  box-shadow: none;
}

/* Card inteiro clicavel: anchor envolve capa + titulo + link minimalista */
#junco-catalogo-results .catalogo-card-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  text-decoration: none;
  color: inherit;
  outline: none;
}
#junco-catalogo-results .catalogo-card-link.is-static { cursor: default; }
#junco-catalogo-results .catalogo-card-link:focus-visible {
  outline: 2px solid #1e8ecd;
  outline-offset: 6px;
  border-radius: 4px;
}
#junco-catalogo-results .catalogo-card-link .heading-19,
#junco-catalogo-results .catalogo-card-link .catalogo-titulo {
  color: inherit;
  transition: color .25s ease;
  margin-top: 18px;
  margin-bottom: 10px;
}
#junco-catalogo-results .catalogo-card-link:hover .catalogo-titulo {
  color: #1e8ecd;
}

/* Reaproveita o hover do livro 3D ja existente (rotateY -15deg) tambem
   quando o card-link e que recebe :hover. */
#junco-catalogo-results .catalogo-card-link:hover .catalogo-capa .book-3d {
  transform: rotateY(-15deg);
}

/* Link minimalista "Ver Catalogo" - sem borda, sublinhado animado entre icone e texto */
#junco-catalogo-results .catalogo-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .3px;
  text-transform: uppercase;
  color: #1e8ecd;
  position: relative;
  padding-bottom: 4px;
  transition: color .25s ease, gap .25s ease;
}
#junco-catalogo-results .catalogo-link svg {
  flex-shrink: 0;
  transition: transform .3s ease;
}
#junco-catalogo-results .catalogo-link-text { line-height: 1; }
#junco-catalogo-results .catalogo-link::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 2px;
  background: currentColor;
  transition: width .35s cubic-bezier(.4, 0, .2, 1);
}
#junco-catalogo-results .catalogo-card-link:hover .catalogo-link {
  gap: 10px;
  color: #0c396d;
}
#junco-catalogo-results .catalogo-card-link:hover .catalogo-link svg {
  transform: translateX(2px);
}
#junco-catalogo-results .catalogo-card-link:hover .catalogo-link::after {
  width: 100%;
}

/* Estado vazio centralizado dentro da coluna de resultados. */
#junco-catalogo-results .catalogos-empty {
  padding: 60px 20px;
  text-align: center;
}

/* =========================================================================
   /quem-somos/ - Subtitulo do topo (v1.1.94)
   Override APENAS no .section-quemsomos. A classe `.text-block-15-copyf`
   tem `width: 400px` no junco-site.css (mais curta que o `.text-block-15`
   de 600px das outras paginas). Aqui dobramos pra 800px porque o texto
   ficou longo (2 paragrafos do antigo .qs-intro). Mobile mantem 90% via
   `max-width` ja herdado. NAO mexer na classe global (afetaria
   /trabalhe-conosco/ que tem texto curto).
   ========================================================================= */
.section-quemsomos .text-block-15-copyf {
  width: 800px;
  max-width: 90%;
  line-height: 1.5;
}

/* =========================================================================
   /quem-somos/ - Timeline (v1.1.84 placeholder + v1.1.91 centralizacao,
   uniformidade e animacao scroll-reveal)
   No mobile (<=767px) `.timeline10_empty-space` ja recebe `display:none`
   no junco-site.css, entao o placeholder some junto.
   ========================================================================= */

/* Cada linha estica conteudo na vertical pra coluna texto e imagem ficarem
   com a mesma altura. Texto centralizado verticalmente. */
.timeline10_row {
  align-items: stretch;
}
.timeline10_row .timeline10_item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-self: stretch;
}

.timeline10_empty-space.qs-tl-placeholder {
  display: flex;
  align-items: stretch;
  justify-content: center;
  padding: 0;
  align-self: stretch;
}
.qs-tl-placeholder__inner {
  width: 100%;
  max-width: 380px;
  min-height: 200px;
  border: 2px dashed rgba(30, 142, 205, 0.45);
  border-radius: 16px;
  background:
    linear-gradient(135deg, rgba(30, 142, 205, 0.04), rgba(29, 189, 234, 0.02)),
    repeating-linear-gradient(45deg, transparent 0 12px, rgba(30, 142, 205, 0.035) 12px 13px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  color: #1e8ecd;
  text-align: center;
  transition: border-color .25s ease, background .25s ease;
}
.qs-tl-placeholder:hover .qs-tl-placeholder__inner {
  border-color: rgba(30, 142, 205, 0.7);
  background:
    linear-gradient(135deg, rgba(30, 142, 205, 0.08), rgba(29, 189, 234, 0.04)),
    repeating-linear-gradient(45deg, transparent 0 12px, rgba(30, 142, 205, 0.06) 12px 13px);
}
.qs-tl-placeholder__icon { width: 44px; height: 44px; opacity: 0.7; }
.qs-tl-placeholder__label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #0c396d;
  opacity: 0.65;
}

@media (max-width: 991px) {
  .qs-tl-placeholder__inner {
    max-width: 280px;
    min-height: 170px;
  }
  .qs-tl-placeholder__icon { width: 36px; height: 36px; }
}

/* ---------- Animacao scroll-reveal das linhas da timeline (v1.1.91) ----------
   JS adiciona .tl-revealed quando a linha entra na viewport.
   Texto e imagem entram suavemente, vindo da direcao do proprio lado. */
.timeline10_row {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .7s ease, transform .7s ease;
}
.timeline10_row.tl-revealed {
  opacity: 1;
  transform: translateY(0);
}
.timeline10_row > .timeline10_item,
.timeline10_row > .timeline10_empty-space {
  opacity: 0;
  transition: opacity .8s ease .15s, transform .8s ease .15s;
}
.timeline10_row > .timeline10_item:first-child,
.timeline10_row > .timeline10_empty-space:first-child {
  transform: translateX(-32px);
}
.timeline10_row > .timeline10_item:last-child,
.timeline10_row > .timeline10_empty-space:last-child {
  transform: translateX(32px);
}
.timeline10_row.tl-revealed > .timeline10_item,
.timeline10_row.tl-revealed > .timeline10_empty-space {
  opacity: 1;
  transform: translateX(0);
}
/* Respeita preferencia do usuario por menos animacao */
@media (prefers-reduced-motion: reduce) {
  .timeline10_row,
  .timeline10_row > .timeline10_item,
  .timeline10_row > .timeline10_empty-space {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* =========================================================================
   /quem-somos/ - Proposito + Valores (substitui o grid de 2 cards) (v1.1.83)
   ========================================================================= */
.qs-pv {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin-top: 60px;
}
.qs-pv__lead {
  max-width: 820px;
  margin: 0 auto 60px;
}
.qs-pv__lead .h2 {
  margin-bottom: 16px;
}
.qs-pv__lead .divisor.centro {
  margin-bottom: 28px;
}
.qs-pv__texto {
  color: #4a5568;
  font-size: 17px;
  line-height: 1.7;
}
.qs-valores {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 16px;
  width: 100%;
  padding: 0;
  margin: 0;
  list-style: none;
}
.qs-valor {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  padding: 28px 14px;
  background: #fff;
  border: 1px solid rgba(30, 142, 205, 0.12);
  border-radius: 16px;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.qs-valor:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(12, 57, 109, 0.10);
  border-color: rgba(30, 142, 205, 0.35);
}
.qs-valor__icon {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(30, 142, 205, 0.10), rgba(29, 189, 234, 0.06));
  border-radius: 50%;
}
.qs-valor__icon img {
  width: 28px;
  height: 28px;
  object-fit: contain;
}
.qs-valor__label {
  color: #0c396d;
  font-weight: 600;
  font-size: 14px;
  line-height: 1.3;
  text-align: center;
}

@media (max-width: 991px) {
  .qs-valores { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
  .qs-pv__lead { margin-bottom: 40px; }
}
@media (max-width: 600px) {
  .qs-valores { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qs-valor { padding: 22px 10px; }
  .qs-valor__icon { width: 48px; height: 48px; }
  .qs-valor__icon img { width: 24px; height: 24px; }
}

/* =========================================================================
   /quem-somos/ - Card de citacao do Proposito (v1.1.86)
   Mesma estetica do card do final de /marcas/ (.div-block-333 + aspas em
   badge circular). Vive DENTRO do .qs-pv, abaixo da .qs-valores. Sem botao.
   Fonte reduzida porque o texto e bem mais longo que o do /marcas/.
   ========================================================================= */
.qs-pv__citacao {
  margin-top: 60px;
  padding-bottom: 70px; /* compensa ausencia do botao da versao /marcas/ */
  /* v1.1.91 - card preenche a largura do container igual aos outros
     (parente .qs-pv usa align-items:center e estava limitando ao conteudo) */
  width: 100%;
  box-sizing: border-box;
  align-self: stretch;
}
.qs-pv__citacao .heading-10 {
  font-size: 22px;
  line-height: 1.6;
  font-weight: 500;
  max-width: 820px;
  margin: 0 auto;
}

@media (max-width: 991px) {
  .qs-pv__citacao { margin-top: 50px; padding-bottom: 56px; }
  .qs-pv__citacao .heading-10 { font-size: 19px; line-height: 1.55; }
}
@media (max-width: 600px) {
  .qs-pv__citacao { margin-top: 40px; padding-bottom: 44px; }
  .qs-pv__citacao .heading-10 { font-size: 16.5px; line-height: 1.55; }
}

/* =========================================================================
   /quem-somos/ - Instituto Junco Sonezao (full-width, azul escuro) (v1.1.83)
   ========================================================================= */
.qs-instituto {
  position: relative;
  padding: 100px 0;
  background:
    radial-gradient(80% 60% at 12% 50%, rgba(30, 142, 205, 0.28), transparent 60%),
    radial-gradient(60% 50% at 100% 0%, rgba(29, 189, 234, 0.18), transparent 60%),
    linear-gradient(180deg, #0c396d 0%, #041f3d 100%);
  color: #fff;
  overflow: hidden;
}
.qs-instituto__inner {
  position: relative;
  width: 1200px;
  max-width: 90%;
  margin: 0 auto;
  display: grid;
  /* v1.1.91b - grid `auto 1fr` + gap 60. Badge fica ANCORADO na borda
     esquerda do container, texto preenche todo o restante. Zera o buraco
     vazio que havia entre a borda esquerda do container e o badge. */
  grid-template-columns: auto 1fr;
  gap: 60px;
  align-items: center;
}
.qs-instituto__decor {
  width: 340px;
  height: 340px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.10), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.14);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.25);
  overflow: hidden; /* corta a foto no contorno do circulo */
  flex-shrink: 0;
}
/* Modo icone (original): SVG centralizado branco */
.qs-instituto__decor:not(.qs-instituto__decor--photo) img {
  width: 100px;
  height: 100px;
  object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: .92;
}
/* Modo foto: foto preenche o circulo todo via object-fit cover (v1.1.88) */
.qs-instituto__decor--photo {
  border: 3px solid rgba(255, 255, 255, 0.85);
  padding: 0;
}
.qs-instituto__decor--photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 55% 40%; /* favorece rosto */
  display: block;
}
.qs-instituto__eyebrow {
  display: inline-block;
  font-size: 13px;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 700;
  color: #1dbdea;
  margin-bottom: 14px;
}
.qs-instituto__title {
  color: #fff;
  font-size: 42px;
  line-height: 1.1;
  margin: 0 0 18px;
  font-weight: 700;
}
.qs-instituto__divisor {
  background-color: #1dbdea;
  margin-bottom: 26px;
}
.qs-instituto__texto {
  color: rgba(255, 255, 255, 0.92);
  font-size: 17px;
  line-height: 1.7;
  margin: 0;
  /* v1.1.91 - sem max-width pra texto preencher sua coluna 1fr (igual outros) */
}

@media (max-width: 991px) {
  .qs-instituto { padding: 70px 0; }
  .qs-instituto__inner {
    grid-template-columns: 1fr;
    gap: 36px;
    text-align: center;
  }
  .qs-instituto__decor {
    width: 160px;
    height: 160px;
    margin: 0 auto;
  }
  .qs-instituto__decor:not(.qs-instituto__decor--photo) img { width: 76px; height: 76px; }
  .qs-instituto__title { font-size: 34px; }
  .qs-instituto__divisor { margin-left: auto; margin-right: auto; }
  .qs-instituto__texto { margin-left: auto; margin-right: auto; }
}
@media (max-width: 600px) {
  .qs-instituto { padding: 56px 0; }
  .qs-instituto__title { font-size: 28px; }
  .qs-instituto__texto { font-size: 16px; }
}

/* =========================================================================
   /quem-somos/ - Trabalhe Conosco CTA card (v1.1.83)
   v1.1.91: a `<section class="qs-trabalhe">` foi removida do PHP. O card
   agora mora DENTRO da `.s-video-quemsomos` (mesma section do video).
   Espaco entre video e card vem do `margin-top` deste card.
   ========================================================================= */
.qs-trabalhe__card {
  margin-top: 80px;
  position: relative;
  display: block;
  width: 100%;
  border-radius: 24px;
  overflow: hidden;
  isolation: isolate;
  text-decoration: none;
  color: #fff;
  min-height: 380px;
  padding: 80px 40px;
  text-align: center;
  box-shadow: 0 24px 60px rgba(12, 57, 109, 0.18);
  transition: transform .35s ease, box-shadow .35s ease;
}
.qs-trabalhe__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 32px 80px rgba(12, 57, 109, 0.28);
}
.qs-trabalhe__bg {
  position: absolute;
  inset: 0;
  background: url('../images/equipe.webp') center/cover no-repeat;
  transform: scale(1.05);
  transition: transform 1s cubic-bezier(.2, 0, .2, 1);
  z-index: -2;
}
.qs-trabalhe__card:hover .qs-trabalhe__bg {
  transform: scale(1.12);
}
.qs-trabalhe__overlay {
  position: absolute;
  inset: 0;
  /* v1.1.96 - filtro chapado azul Junco, opacidade alinhada com a hero
     section (.section-quemsomos usa radial entre #1dbdeac9 ~78% e
     #1e8ecdf7 ~97%). Aqui vai chapado num valor entre os dois (~85%)
     pra dar a mesma sensacao de blue forte da hero, mantendo um pouco
     da foto da equipe visivel. */
  background: rgba(30, 142, 205, 0.85);
  z-index: -1;
}
.qs-trabalhe__content {
  position: relative;
  max-width: 700px;
  margin: 0 auto;
}
.qs-trabalhe__title {
  color: #fff;
  font-size: 44px;
  line-height: 1.1;
  font-weight: 700;
  margin: 0 0 14px;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.qs-trabalhe__divisor {
  background-color: #fff !important;
  margin-bottom: 26px;
}
.qs-trabalhe__texto {
  color: rgba(255, 255, 255, 0.95);
  font-size: 17px;
  line-height: 1.7;
  margin: 0 0 32px;
}
/* v1.1.95 - botao padrao .btn-ext.w-button (substituiu o CTA minimalista
   antigo `.qs-trabalhe__cta`). Mantem todo o estilo do .btn-ext herdado
   do junco-site.css (pill rounded + arrow icon + hover translate).
   `.qs-trabalhe__btn` so adiciona o respiro vertical dentro do card e
   se comporta como span (sem nested <a> dentro do card-link). */
.qs-trabalhe__btn {
  margin-top: 8px;
  pointer-events: none; /* clique segue indo pro card inteiro */
}
.qs-trabalhe__card:hover .qs-trabalhe__btn {
  background-color: var(--2);
  transform: translate(-3px, -3px);
}
.qs-trabalhe__card:focus-visible {
  outline: 3px solid #1dbdea;
  outline-offset: 4px;
}

@media (max-width: 991px) {
  .qs-trabalhe__card { margin-top: 60px; padding: 64px 28px; min-height: 320px; border-radius: 20px; }
  .qs-trabalhe__title { font-size: 36px; }
}
@media (max-width: 600px) {
  .qs-trabalhe__card { margin-top: 50px; padding: 52px 22px; min-height: 280px; border-radius: 16px; }
  .qs-trabalhe__title { font-size: 28px; letter-spacing: .5px; }
  .qs-trabalhe__texto { font-size: 15px; }
}
