/* Acessibilidade (28/09/2026): contraste mínimo 4,5:1 (WCAG AA) nos textos dos formulários.
   O cinza #7b7a7a sobre #f3f3f1 dava 3,85:1; #595858 dá 6,4:1. */
body .wpcf7-form .item_fieldForm > label,
body .wpcf7-form .inputText,
body .wpcf7-form .wpcf7-list-item-label,
body .wpcf7-form label.radio {
  color: #595858;
}
body .wpcf7-form .inputText::placeholder {
  color: #6b6a6a;
  opacity: 1;
}

/* CLS: o seletor "Todos os Conteúdos" da busca é trocado por um seletor estilizado via jQuery
   depois que a página carrega (23px de altura para 40px), empurrando o botão Pesquisar.
   O <select> nativo já nasce com o mesmo tamanho e visual do estilizado. */
.custom-select-wrapper {
  width: 220px;
  max-width: 100%;
}
.custom-select-wrapper select.post-type-filter:not(.select-hidden) {
  -webkit-appearance: none;
  appearance: none;
  width: 220px;
  max-width: 100%;
  height: 40px;
  padding: 8px 15px;
  border: 0;
  border-radius: 30px;
  background: #009fe3;
  color: #fff;
  font: 500 14px/23.8px 'Rubik', Arial, sans-serif;
}

/* Área de toque: rádios do formulário de curso tinham 13px (mínimo recomendado: 24px com espaço). */
body .wpcf7-form .wpcf7-list-item input[type="radio"],
body .wpcf7-form .wpcf7-list-item input[type="checkbox"] {
  width: 20px;
  height: 20px;
  margin-right: 6px;
  vertical-align: middle;
  accent-color: #009fe3;
}

/* Menu do topo: item da seção atual em negrito (classe stance-secao, stance_menu_classes). */
.et-db #et-boc .et-l .et_pb_menu.et_pb_menu ul li.stance-secao > a,
.uk-offcanvas .menu-item.stance-secao > a { font-weight: 700; }

/* Títulos sobre as fotos de topo das seções (29/09/2026): sombra branca para destacar do fundo. Com
   filter (drop-shadow), não text-shadow: o título do blog é texto em degradê (background-clip) e o
   text-shadow ficaria por cima das letras. */
body.post-type-archive .et_pb_section_0_tb_body h1,
body.blog .et_pb_section_0_tb_body h1,
body.search .et_pb_section_0_tb_body h1 {
  filter: drop-shadow(0 0 2px #fff) drop-shadow(0 0 6px #fff) drop-shadow(0 0 14px #fff) drop-shadow(0 0 26px rgba(255, 255, 255, .95));
  /* O Divi só zera o espaçamento do título no CSS dos módulos, lido no fim da página: até lá o título
     tinha 30px a mais e a página inteira subia depois da primeira pintura (CLS). */
  padding-bottom: 0;
  margin-bottom: 0;
}

/* Menu do topo (29/09/2026): ao passar o mouse, negrito no lugar do sublinhado do Theme Builder. A
   largura do negrito fica reservada por um ::before invisível (data-texto), então os itens vizinhos
   não se mexem; o ::after continua livre para a seta dos itens com submenu. Para a reserva caber sem
   empurrar o botão "Solicitar orçamento", o respiro entre itens cai de 11 para 9px de cada lado. */
.et-db #et-boc .et-l .et_pb_menu.et_pb_menu ul.et-menu > li { padding-left: 9px; padding-right: 9px; }
.et-db #et-boc .et-l .et_pb_menu.et_pb_menu ul.et-menu > li > a[data-texto] { display: inline-flex; flex-direction: column; align-items: center; }
.et-db #et-boc .et-l .et_pb_menu.et_pb_menu ul.et-menu > li > a[data-texto]::before {
  content: attr(data-texto);
  height: 0;
  overflow: hidden;
  visibility: hidden;
  font-weight: 700;
  pointer-events: none;
}
.et-db #et-boc .et-l .et_pb_menu.et_pb_menu ul.et-menu li > a:hover,
.et-db #et-boc .et-l .et_pb_menu.et_pb_menu ul.et-menu li > a:focus-visible { text-decoration: none; font-weight: 700; }

/* Filtros das vitrines, do blog e da home: a fonte provisória tem a largura da Rubik (fonts/rubik/rubik.css). */
.scrollable-tabs-container a,
ul.filtros-nav a,
.filtro-tipo { font-family: 'Rubik', 'Rubik Fallback', Arial, sans-serif; }

/* Foto do topo com desfoque suave (29/09/2026): uma camada por cima do fundo, com a mesma imagem
   (background: inherit, inclusive a posição do parallax) desfocada; o conteúdo fica acima dela. */
body.post-type-archive-consultoria .et_pb_section_0_tb_body::before,
body.post-type-archive-auditoria .et_pb_section_0_tb_body::before,
body.post-type-archive-diagnostico .et_pb_section_0_tb_body::before,
body.post-type-archive-solucao .et_pb_section_0_tb_body::before,
body.post-type-archive-cursos .et_pb_section_0_tb_body::before,
body.blog .et_pb_section_0_tb_body::before,
body.search .et_pb_section_0_tb_body::before {
  content: "";
  position: absolute;
  inset: -12px;
  z-index: 0;
  background: inherit;
  filter: blur(3px);
  pointer-events: none;
}
body.post-type-archive-consultoria .et_pb_section_0_tb_body > .et_pb_row,
body.post-type-archive-auditoria .et_pb_section_0_tb_body > .et_pb_row,
body.post-type-archive-diagnostico .et_pb_section_0_tb_body > .et_pb_row,
body.post-type-archive-solucao .et_pb_section_0_tb_body > .et_pb_row,
body.post-type-archive-cursos .et_pb_section_0_tb_body > .et_pb_row,
body.blog .et_pb_section_0_tb_body > .et_pb_row,
body.search .et_pb_section_0_tb_body > .et_pb_row { position: relative; z-index: 1; }

/* Rodapé no celular (29/09/2026): o copyright tinha 800px fixos e era cortado; agora quebra em duas
   linhas centralizadas ("Stance © ... reservados." e "Desenvolvido por ..."). */
@media (max-width: 767px) {
  .et_pb_code_1_tb_footer,
  .et_pb_code_1_tb_footer .et_pb_code_inner,
  .et_pb_code_1_tb_footer .et_pb_code_inner > div { width: 100% !important; max-width: 100% !important; }
  .et_pb_code_1_tb_footer .copy_rdp {
    width: 100% !important;
    max-width: 100% !important;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px 12px;
    padding-left: 16px;
    padding-right: 16px;
    box-sizing: border-box;
  }
  .et_pb_code_1_tb_footer .copy_rdp > * { flex: 0 1 100%; max-width: 100%; text-align: center; }
  /* "Desenvolvido por" + logo numa linha só. */
  .et_pb_code_1_tb_footer .copy_rdp > :last-child { display: flex; align-items: center; justify-content: center; gap: 8px; white-space: nowrap; }
  .et_pb_code_1_tb_footer .copy_rdp > :last-child * { width: auto !important; flex: 0 0 auto; }
  /* Caixa da assinatura colada no fim da tela, na largura toda (16px de respiro) e em duas linhas:
     "Stance © ... reservados." e "Desenvolvido por ...". Sem folga grande embaixo: o botão flutuante
     do WhatsApp some enquanto a assinatura está na tela (stance-global.js). */
  .et_pb_row_2_tb_footer { width: calc(100% - 32px) !important; max-width: none !important; }
  .et_pb_code_1_tb_footer { padding-bottom: 0 !important; margin-bottom: 0 !important; }
  .et_pb_code_1_tb_footer .copy_rdp { padding: 14px 12px 18px !important; row-gap: 4px !important; border-bottom-left-radius: 0 !important; border-bottom-right-radius: 0 !important; margin-bottom: 0 !important; }
  .et_pb_code_1_tb_footer .copy_rdp > * { font-size: 13.5px !important; line-height: 1.6 !important; }
  #container_Whatsapp_General { transition: transform .5s, opacity .25s, visibility .25s !important; }
  body.stance-no-rodape #container_Whatsapp_General { opacity: 0 !important; visibility: hidden !important; }
}
@media (max-width: 374px) {
  .et_pb_code_1_tb_footer .copy_rdp > * { font-size: 12.5px !important; }
}

/* Hero da home e da página Sobre (29/09/2026): título e subtítulo um pouco menores e com mais respiro entre título,
   subtítulo e botão. */
:is(body.home, body.page-id-8706) #et-boc .et_pb_text_0 h1 { font-size: 36px; }
:is(body.home, body.page-id-8706) #et-boc .et_pb_text_1,
:is(body.home, body.page-id-8706) #et-boc .et_pb_text_1 p { font-size: 16px; }
@media (min-width: 768px) {
  :is(body.home, body.page-id-8706) #et-boc .et_pb_text_1 { margin-top: 16px !important; }
  :is(body.home, body.page-id-8706) #et-boc .et_pb_button_0_wrapper { margin-top: 26px !important; }
}
@media (max-width: 767px) {
  :is(body.home, body.page-id-8706) #et-boc .et_pb_text_0 h1 { font-size: 31px; }
  :is(body.home, body.page-id-8706) #et-boc .et_pb_text_1,
  :is(body.home, body.page-id-8706) #et-boc .et_pb_text_1 p { font-size: 14px; }
}

/* Rodapé, coluna "Entre em Conformidade" (29/09/2026): ícones brancos genéricos com a sigla. */
.wrapFooter .conformidade {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(78px, 1fr));
  gap: 16px 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.wrapFooter .conformidade .selo {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  margin: 0;
  padding: 0;
  color: #fff;
  text-align: center;
  list-style: none;
}
.wrapFooter .conformidade .selo svg {
  width: 52px;
  height: 52px;
  padding: 10px;
  border: 1.5px solid rgba(255, 255, 255, .75);
  border-radius: 50%;
  box-sizing: border-box;
  color: #fff;
}
.wrapFooter .conformidade .selo span { font: 600 13px/1.2 'Rubik', 'Rubik Fallback', Arial, sans-serif; letter-spacing: .04em; color: #fff; }
@media (max-width: 767px) {
  .wrapFooter .conformidade { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px 6px; }
  .wrapFooter .conformidade .selo svg { width: 48px; height: 48px; padding: 9px; }
  .wrapFooter .conformidade .selo span { font-size: 11.5px; letter-spacing: .02em; }
}

/* Home, "Por que escolher a Stance?" (29/09/2026): o card inteiro abre o modal, não só o "Saiba mais".
   O ::after do próprio link cobre o card (que já é position: relative), então o clique em qualquer
   ponto da foto é o clique no link; teclado e leitores de tela seguem usando o botão. */
.item_trat { cursor: pointer; }
.item_trat .btn_trat::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  cursor: pointer;
}

/* Cor de cada tipo de card (a mesma da coluna do ícone). */
.item.consultoria { --cor-card: #e96c00; }
.item.auditoria { --cor-card: #4d9ad1; }
.item.diagnostico { --cor-card: #009e5e; }
.item.solucao { --cor-card: #ce1620; }
.item.treinamento { --cor-card: #009e5e; }
/* Cards das vitrines (consultoria, auditoria, diagnóstico, solução e cursos; 29/09/2026): a área vira
   uma tarja na cor do card com texto branco no
   canto inferior direito da foto (o cabeçalho do card tem 120px fixos em todas as larguras), título
   menor e card mais baixo; borda branca de 1px e sombra um pouco mais escura. Só CSS: o HTML dos
   cards não muda. */
.uk-grid-match .item:is(.consultoria, .auditoria, .diagnostico, .solucao, .treinamento) .uk-card {
  border: 1px solid #fff;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .16);
}
.uk-grid-match .item:is(.consultoria, .auditoria, .diagnostico, .solucao, .treinamento) .ttlCards { padding: 14px 16px 16px; }
.uk-grid-match .item:is(.consultoria, .auditoria, .diagnostico, .solucao, .treinamento) .ttlPost { font-size: 18px; line-height: 1.3; }
.uk-grid-match .item:is(.consultoria, .auditoria, .diagnostico, .solucao, .treinamento) .tipoPost {
  position: absolute;
  top: 120px;
  right: 10px;
  z-index: 3;
  max-width: calc(100% - 75px); /* não invade a coluna do ícone */
  padding: 4px 10px;
  border-radius: 6px;
  background: var(--cor-card, #e96c00);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  text-align: right;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .25);
  transform: translateY(calc(-100% - 10px));
}
@media (max-width: 767px) {
  .uk-grid-match .item:is(.consultoria, .auditoria, .diagnostico, .solucao, .treinamento) .ttlPost { font-size: 17px; }
}

/* Cards das vitrines, mouse por cima (29/09/2026, mesmo padrão do bloco de serviços da home): o
   card cresce 12% por cima dos vizinhos e a foto destacada cobre o card inteiro em fade, sob um véu
   escuro, com texto branco. A foto vem do .featureImg (js/stance-vitrine.js, variável --foto). A área
   do card na grade não muda, então nada se desloca. Só em aparelhos com mouse. */
@media (hover: hover) and (pointer: fine) {
  .uk-grid-match .item:is(.consultoria, .auditoria, .diagnostico, .solucao, .treinamento) { position: relative; }
  .uk-grid-match .item:is(.consultoria, .auditoria, .diagnostico, .solucao, .treinamento) .uk-card {
    overflow: hidden;
    transition: transform .7s cubic-bezier(.22, .61, .36, 1), box-shadow .7s ease;
    will-change: transform;
  }
  .uk-grid-match .item:is(.consultoria, .auditoria, .diagnostico, .solucao, .treinamento):hover { z-index: 20; }
  .uk-grid-match .item:is(.consultoria, .auditoria, .diagnostico, .solucao, .treinamento):hover .uk-card {
    transform: scale(1.12);
    transition-delay: .08s;
    box-shadow: 0 20px 44px rgba(0, 0, 0, .3);
  }
  .uk-grid-match .item:is(.consultoria, .auditoria, .diagnostico, .solucao, .treinamento) .uk-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(0deg, rgba(0, 0, 0, .72) 0%, rgba(0, 0, 0, .45) 55%, rgba(0, 0, 0, .3) 100%), var(--foto, none) center / cover no-repeat;
    border-radius: inherit;
    opacity: 0;
    transition: opacity .6s ease;
    pointer-events: none;
  }
  .uk-grid-match .item:is(.consultoria, .auditoria, .diagnostico, .solucao, .treinamento):hover .uk-card::before { opacity: 1; }
  /* Só o título sobe acima do véu (o bloco do texto fica estático: a tarja da área se posiciona pelo card). */
  .uk-grid-match .item:is(.consultoria, .auditoria, .diagnostico, .solucao, .treinamento) .ttlPost { position: relative; z-index: 3; transition: color .4s ease; }
  .uk-grid-match .item:is(.consultoria, .auditoria, .diagnostico, .solucao, .treinamento):hover .ttlPost {
    color: #fff;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .9), 0 0 8px rgba(0, 0, 0, .6);
  }
  /* Primeira e última coluna crescem para dentro da grade. */
  .uk-grid-match > .item:is(.consultoria, .auditoria, .diagnostico, .solucao, .treinamento).uk-first-column .uk-card { transform-origin: left center; }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: reduce) {
  .uk-grid-match .item:is(.consultoria, .auditoria, .diagnostico, .solucao, .treinamento):hover .uk-card { transform: none; }
}

/* Cards do blog (29/09/2026; só na grade das listagens /blog, pesquisa e categorias, não no carrossel
   "Conteúdos novos" da home e dos artigos, que usa o mesmo card): título menor, resumo em 2 linhas e a categoria numa tarja azul com
   texto branco no canto inferior direito da foto (220px de altura fixa); card mais baixo. Só CSS. */
.uk-grid-match > .mini-card-grid .mini-card { position: relative; }
.uk-grid-match > .mini-card-grid .mini-card .wrapcBlog { padding: 16px 18px 18px; }
.uk-grid-match > .mini-card-grid .mini-card .mini-card-title { font-size: 17px; line-height: 1.3; }
.uk-grid-match > .mini-card-grid .mini-card .mini-card-description {
  padding: 8px 0 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.uk-grid-match > .mini-card-grid .mini-card .categoriaPost {
  position: absolute;
  top: 220px;
  right: 10px;
  z-index: 3;
  max-width: calc(100% - 20px);
  padding: 4px 10px;
  border-radius: 6px;
  background: #0077aa;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  text-align: right;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .25);
  transform: translateY(calc(-100% - 10px));
}
.uk-grid-match > .mini-card-grid .mini-card .categoriaPost img { display: none; }

/* Mouse por cima (mesmo padrão das vitrines e da home): o card cresce 12% e a foto cobre o card
   inteiro em fade (sem escurecer) e o título aparece numa tarja branca no pé. Foto copiada do .featImage para --foto
   (js/stance-vitrine.js). Só em aparelhos com mouse. */
@media (hover: hover) and (pointer: fine) {
  .uk-grid-match > .mini-card-grid { position: relative; }
  .uk-grid-match > .mini-card-grid .mini-card {
    overflow: hidden;
    transition: transform .7s cubic-bezier(.22, .61, .36, 1), box-shadow .7s ease;
    will-change: transform;
  }
  .uk-grid-match > .mini-card-grid:hover { z-index: 20; }
  .uk-grid-match > .mini-card-grid:hover .mini-card {
    transform: scale(1.12);
    transition-delay: .08s;
    overflow: visible; /* a camada da foto sai do card em cima e embaixo (mais vertical) */
  }
  .uk-grid-match > .mini-card-grid .mini-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    background: var(--foto, none) center / cover no-repeat; /* foto sem escurecer (29/09/2026) */
    border-radius: 12px;
    opacity: 0;
    transition: opacity .6s ease, top .6s cubic-bezier(.22, .61, .36, 1), bottom .6s cubic-bezier(.22, .61, .36, 1), box-shadow .6s ease;
    pointer-events: none;
  }
  /* Na ampliação a foto ganha 26px em cima e embaixo (proporção mais vertical, mostra mais da foto) e
     leva a sombra forte; o espaço do card na grade não muda. */
  .uk-grid-match > .mini-card-grid:hover .mini-card::before {
    opacity: 1;
    top: -26px;
    bottom: -26px;
    box-shadow: 0 34px 80px 6px rgba(0, 0, 0, .52);
  }
  /* No hover só o título aparece: data, categoria, resumo e o título original somem em fade, e uma
     cópia do título (criada no primeiro hover pelo js/stance-vitrine.js) surge numa tarja branca no pé do card.
     Nada no fluxo muda de tamanho, então o card não encolhe sob o mouse. */
  .uk-grid-match > .mini-card-grid .mini-card .datePost,
  .uk-grid-match > .mini-card-grid .mini-card .mini-card-title,
  .uk-grid-match > .mini-card-grid .mini-card .mini-card-description,
  .uk-grid-match > .mini-card-grid .mini-card .categoriaPost { transition: opacity .35s ease; }
  .uk-grid-match > .mini-card-grid:hover .mini-card .datePost,
  .uk-grid-match > .mini-card-grid:hover .mini-card .mini-card-title,
  .uk-grid-match > .mini-card-grid:hover .mini-card .mini-card-description,
  .uk-grid-match > .mini-card-grid:hover .mini-card .categoriaPost { opacity: 0; }
  .uk-grid-match > .mini-card-grid .mini-card .mini-card-ttl-hover {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 3;
    padding: 14px 18px 16px;
    background: #fff; /* tarja branca no pé do card, título azul da marca */
    color: #009fe3;
    font: 700 18px/1.3 'Rubik', 'Rubik Fallback', Arial, sans-serif;
    letter-spacing: .02em;
    box-shadow: 0 -6px 16px rgba(0, 0, 0, .12);
    border-radius: 0 0 12px 12px;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .5s ease, transform .6s cubic-bezier(.22, .61, .36, 1), bottom .6s cubic-bezier(.22, .61, .36, 1);
    pointer-events: none;
  }
  .uk-grid-match > .mini-card-grid:hover .mini-card .mini-card-ttl-hover { bottom: -26px; opacity: 1; transform: none; transition-delay: .1s; }
}
/* Com um artigo sob o mouse, os demais da grade ficam esmaecidos (29/09/2026). */
@media (hover: hover) and (pointer: fine) {
  .uk-grid-match > .mini-card-grid .mini-card { transition: transform .7s cubic-bezier(.22, .61, .36, 1), box-shadow .7s ease, opacity .45s ease, filter .45s ease; }
  .uk-grid-match:has(> .mini-card-grid:hover) > .mini-card-grid:not(:hover) .mini-card { opacity: .8; filter: saturate(.8); } /* esmaece 20% */
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: reduce) {
  .uk-grid-match > .mini-card-grid:hover .mini-card { transform: none; }
}

/* Resultado da pesquisa (29/09/2026): tarja no canto superior esquerdo da foto com o que o item é
   (snippet grid-blog, só na pesquisa). Cor de cada tipo; páginas soltas em cinza com o nome da página. */
.mini-card .tipoResultado {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 3;
  max-width: calc(100% - 20px);
  padding: 4px 10px;
  border-radius: 6px;
  background: #0077aa;
  color: #fff;
  font: 600 12px/1.35 'Rubik', 'Rubik Fallback', Arial, sans-serif;
  letter-spacing: .02em;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .25);
  transition: opacity .35s ease;
}
.mini-card .tipoResultado--consultoria { background: #e96c00; }
.mini-card .tipoResultado--auditoria { background: #4d9ad1; }
.mini-card .tipoResultado--diagnostico,
.mini-card .tipoResultado--cursos { background: #009e5e; }
.mini-card .tipoResultado--solucao { background: #ce1620; }
.mini-card .tipoResultado--page { background: #4a5560; }
@media (hover: hover) and (pointer: fine) {
  .uk-grid-match > .mini-card-grid:hover .mini-card .tipoResultado { opacity: 0; } /* no hover, só o título */
}

/* Rodapé, ícones de conformidade (29/09/2026): no hover (ou foco do teclado) o ícone sobe levemente, o
   círculo ganha destaque e aparece um tooltip com a explicação (span.selo__dica, texto real no HTML). */
.wrapFooter .conformidade .selo { position: relative; }
/* Cada ícone é um link para a pesquisa com o tema (script 50): cursor de mão. */
.wrapFooter .conformidade .selo__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  color: #fff;
  text-decoration: none;
  cursor: pointer;
  outline: none;
}
.wrapFooter .conformidade .selo__link:focus-visible svg { outline: 2px solid #fac300; outline-offset: 3px; }
.wrapFooter .conformidade .selo svg { transition: transform .35s cubic-bezier(.22, .61, .36, 1), background-color .35s ease, border-color .35s ease; }
.wrapFooter .conformidade .selo:hover svg,
.wrapFooter .conformidade .selo:focus-within svg {
  transform: translateY(-4px) scale(1.06);
  background-color: rgba(255, 255, 255, .14);
  border-color: #fac300;
}
.wrapFooter .conformidade .selo span.selo__dica { /* span.: vence a regra das siglas (.selo span, branco) */
  position: absolute;
  bottom: calc(100% + 10px);
  left: 50%;
  z-index: 10;
  width: 230px;
  padding: 10px 12px;
  border-radius: 8px;
  background: #fff;
  color: #333;
  font: 400 12.5px/1.45 'Rubik', 'Rubik Fallback', Arial, sans-serif;
  letter-spacing: 0;
  text-align: left;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .3);
  opacity: 0;
  transform: translate(-50%, 6px);
  transition: opacity .25s ease, transform .3s ease;
  pointer-events: none;
}
.wrapFooter .conformidade .selo__dica::after { /* setinha */
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -6px;
  border: 6px solid transparent;
  border-top-color: #fff;
}
.wrapFooter .conformidade .selo:hover .selo__dica,
.wrapFooter .conformidade .selo:has(:focus-visible) .selo__dica { opacity: 1; transform: translate(-50%, 0); }
/* Mouse passando rápido de um ícone para outro: os demais fecham na hora (sem fade), nunca dois abertos. */
.wrapFooter .conformidade:hover .selo:not(:hover) span.selo__dica { opacity: 0; transition: none; }
/* Primeira e última coluna: o tooltip abre para dentro, sem sair da tela. */
.wrapFooter .conformidade .selo:nth-child(5n+1) .selo__dica { left: 0; transform: translate(0, 6px); }
.wrapFooter .conformidade .selo:nth-child(5n+1):hover .selo__dica,
.wrapFooter .conformidade .selo:nth-child(5n+1):has(:focus-visible) .selo__dica { transform: translate(0, 0); }
.wrapFooter .conformidade .selo:nth-child(5n+1) .selo__dica::after { left: 26px; }
.wrapFooter .conformidade .selo:nth-child(5n) .selo__dica { left: auto; right: 0; transform: translate(0, 6px); }
.wrapFooter .conformidade .selo:nth-child(5n):hover .selo__dica,
.wrapFooter .conformidade .selo:nth-child(5n):has(:focus-visible) .selo__dica { transform: translate(0, 0); }
.wrapFooter .conformidade .selo:nth-child(5n) .selo__dica::after { left: auto; right: 26px; }
@media (max-width: 767px) { .wrapFooter .conformidade .selo__dica { width: 200px; } }
@media (prefers-reduced-motion: reduce) { .wrapFooter .conformidade .selo:hover svg { transform: none; } }

/* Carrossel de artigos ("Artigos relacionados" nos posts e "Conteúdos novos" na home), 29/09/2026:
   título um pouco menor e resumo em 2 linhas. */
.post-sliders .mini-card .mini-card-title { font-size: 19px; line-height: 1.3; }
.post-sliders .mini-card .mini-card-description {
  padding: 0; /* o respiro de baixo mostrava o começo da 3ª linha: vira margem */
  margin: 12px 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
@media (max-width: 767px) {
  .post-sliders .mini-card .mini-card-title { font-size: 18px; }
}
/* Home, "Conteúdos novos" (29/09/2026): mesmo visual dos "Artigos relacionados" dos posts (card cinza,
   sombra lateral mais escura, data e resumo em cinza escuro; título continua azul). */
body.home .post-sliders .mini-card {
  background-color: #f2f2f2 !important;
  box-shadow: rgb(68, 68, 68) -32px 0 48px -32px !important;
}
body.home .post-sliders .mini-card .datePost,
body.home .post-sliders .mini-card .mini-card-description { color: #444 !important; }

/* Carrossel de artigos, padrão da consultoria (29/09/2026): fundo cinza claro, 20px entre o título e os
   cards, bloco de 1080px e 40px até o botão "Ver mais artigos". Vale para consultoria, auditoria,
   diagnóstico, solução, cursos e posts ("Artigos relacionados") e para a home ("Conteúdos novos"). */
body:not(.home) .et_pb_section:has(.post-sliders) { background-color: #f8f8f8 !important; row-gap: 20px !important; }
body.home .et_pb_column:has(> .et_pb_code .post-sliders) { row-gap: 20px !important; }
body.home .post-sliders {
  max-width: 1080px;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.home .et_pb_column:has(> .et_pb_code .post-sliders) > .et_pb_button_module_wrapper { margin-top: -40px !important; }

/* Imagem destacada nas páginas de consultoria, auditoria, diagnóstico, solução e curso (29/09/2026):
   borda branca de 2px e sombra, mantendo os cantos arredondados do layout. Desde 16/10/2026 vale também para a
   imagem secundária (et_pb_image_1), ao lado do texto de detalhe, para os dois blocos terem a mesma moldura. */
body.single-consultoria .et_pb_image_0_tb_body .et_pb_image_wrap,
body.single-auditoria .et_pb_image_0_tb_body .et_pb_image_wrap,
body.single-diagnostico .et_pb_image_0_tb_body .et_pb_image_wrap,
body.single-solucao .et_pb_image_0_tb_body .et_pb_image_wrap,
body.single-cursos .et_pb_image_0_tb_body .et_pb_image_wrap,
body.single-consultoria .et_pb_image_1_tb_body .et_pb_image_wrap,
body.single-auditoria .et_pb_image_1_tb_body .et_pb_image_wrap,
body.single-diagnostico .et_pb_image_1_tb_body .et_pb_image_wrap,
body.single-solucao .et_pb_image_1_tb_body .et_pb_image_wrap {
  border: 2px solid #fff;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .2);
  overflow: hidden;
  box-sizing: border-box;
}

/* Página Sobre (29/09/2026): mapa do Google abaixo do endereço e mais espaço entre o texto e o
   "Saiba mais" dos cartões de serviços. */
.qs-mapa { max-width: 900px; margin: 18px auto 22px; border: 2px solid #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 8px 18px -8px rgba(0, 0, 0, .25); }
.qs-mapa iframe { display: block; width: 100%; height: 320px; border: 0; }
@media (max-width: 767px) { .qs-mapa iframe { height: 260px; } }
/* Página Sobre (16/10/2026): foto do prédio à esquerda do mapa, na mesma altura e com a mesma moldura;
   no celular a foto fica acima do mapa. */
.qs-local { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); grid-template-rows: 450px; gap: 20px; max-width: 900px; margin: 18px auto 22px; }
.qs-local .qs-mapa { max-width: none; margin: 0; }
.qs-local > p:empty { display: none; } /* o wpautop deixa um </p> solto depois da foto; vazio, não vira célula da grade */
.qs-local .qs-mapa iframe { height: 100%; }
.qs-predio { display: block; box-sizing: border-box; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; border: 2px solid #fff; border-radius: 12px; box-shadow: 0 8px 18px -8px rgba(0, 0, 0, .25); }
@media (max-width: 767px) {
  .qs-local { grid-template-columns: minmax(0, 1fr); grid-template-rows: 380px 260px; gap: 16px; }
}
.qs-serv-card .qs-serv-link { margin-top: 18px; }
.qs-contato-valor.btn_whats { cursor: pointer; }
button.qs-contato-valor.btn_whats { padding: 0; border: 0; background: none; font: inherit; font-size: 17px; font-weight: 600; color: #444; }
@media (hover: hover) { button.qs-contato-valor.btn_whats:hover { color: #0a5fa3; } }

/* Home, vídeo "Sobre a STANCE" (29/09/2026): o iframe tem 1080x608 fixos e, com 510px de largura,
   ficava 608px de altura (retrato). Agora 16:9, um pouco menor e centralizado com o texto. */
body.home .et_pb_row:has(> .et_pb_column > .et_pb_video) { align-items: center !important; }
body.home .et_pb_video_0 { width: 100%; max-width: 480px; height: auto !important; align-self: center; margin: 0 auto; }
body.home .et_pb_video_0 .et_pb_video_box { aspect-ratio: 16 / 9; height: auto !important; border-radius: inherit; overflow: hidden; }
body.home .et_pb_video_0 .et_pb_video_box iframe { width: 100% !important; height: 100% !important; }
body.home .et_pb_column:has(> .et_pb_video_0) { height: auto !important; justify-content: center; }

/* "Somos especialistas em" (29/09/2026): cartões viraram links (script 62). */
a.uk-card.stance_sld { display: block; color: inherit !important; text-decoration: none !important; cursor: pointer; transition: transform .25s ease, box-shadow .25s ease; }
@media (hover: hover) { a.uk-card.stance_sld:hover { transform: translateY(-4px); box-shadow: 0 12px 26px rgba(0, 0, 0, .14); } a.uk-card.stance_sld:hover .uk-card-title { color: #0077aa; } }
a.uk-card.stance_sld:focus-visible { outline: 2px solid #009fe3; outline-offset: 3px; }

/* Endereço (rodapé e página Sobre, 29/09/2026): partes separadas por ponto pequeno, desenhado no fim de
   cada parte (fica grudado nela); a linha só quebra entre as partes. */
.stance-endereco { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 0; font-style: normal; }
.wrapFooter .stance-endereco { margin: 0 0 14px; }
.stance-endereco > span { white-space: nowrap; }
.stance-endereco > span:not(:last-child)::after { content: "•"; display: inline-block; margin: 0 8px; font-size: .7em; opacity: .75; vertical-align: .1em; }
.stance-endereco--centro { justify-content: center; margin: 0; text-align: center; }

/* Logo do rodapé (29/09/2026): o branco do menu, 25% maior que no menu (242 → 302px; celular 209 → 261px). */
/* O módulo de imagem do Divi fixa 200px no bloco, no link e no invólucro: todos seguem a largura. */
.et_pb_image_0_tb_footer.et_pb_image,
.et_pb_image_0_tb_footer > a,
.et_pb_image_0_tb_footer .et_pb_image_wrap,
.et_pb_image_0_tb_footer img { width: 302px !important; max-width: 100% !important; height: auto !important; }
@media (max-width: 767px) {
  .et_pb_image_0_tb_footer.et_pb_image,
  .et_pb_image_0_tb_footer > a,
  .et_pb_image_0_tb_footer .et_pb_image_wrap,
  .et_pb_image_0_tb_footer img { width: 261px !important; }
}

/* Tarja do tipo na pesquisa e nas categorias (29/09/2026): o dobro do tamanho e sombra mais forte. */
.mini-card .tipoResultado {
  top: 12px;
  left: 12px;
  padding: 7px 18px;
  border-radius: 9px;
  font-size: 22px;
  line-height: 1.2;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .45);
}
@media (max-width: 767px) { .mini-card .tipoResultado { font-size: 18px; padding: 6px 14px; } }

/* Sobre, hero: 4º cartão "Normas ISO & NRs" (script 72), no canto de cima à direita da foto, com o
   mesmo visual dos outros e ícone de selo. */
body.page-id-8706 .items__layer:nth-child(4) .items__item {
  top: 30px;
  left: 330px;
  width: 180px;
  padding: 18px 20px;
  border-radius: 12px;
  background: #fff;
}
body.page-id-8706 .items__layer:nth-child(4) .items__item::after {
  content: "";
  position: absolute;
  top: -28px;
  right: -22px;
  width: 53px;
  height: 53px;
  border-radius: 15px;
  background: #009fe3 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='9' r='6'/%3E%3Cpath d='M8.8 14 7.5 21.5 12 19.5l4.5 2L15.2 14'/%3E%3Cpath d='m9.4 9 1.8 1.8 3.4-3.4'/%3E%3C/svg%3E") center / 60% no-repeat;
  box-shadow: 0 5px 10px rgba(0, 0, 0, .25);
}
@media (max-width: 980px) {
  body.page-id-8706 .items__layer:nth-child(4) .items__item { top: 10px; left: auto; right: 10px; width: 150px; padding: 12px 14px; font-size: 14px; }
}

/* Sobre, hero: ícones azuis por cima dos cartões brancos (antes ficavam atrás) e, entre 981 e 1279px,
   cartões da direita recolhidos para não passar da borda da tela. */
body.page-id-8706 .items__layer .items__item::after { z-index: 2; }
@media (min-width: 981px) and (max-width: 1279px) {
  body.page-id-8706 .items__layer:nth-child(2) .items__item { left: 250px; }
  body.page-id-8706 .items__layer:nth-child(4) .items__item { left: 230px; top: 20px; }
}

/* Cena do parallax (hero da Home e da Sobre): as mesmas posições que o Parallax.js aplicava inline, para a
   cena ficar certa sem ele (celular, tablet, "reduzir movimento") e não pular quando ele carrega no desktop
   (stance-global.js). */
#js-scene { position: relative; }
#js-scene > .layer { position: absolute; display: block; left: 0; top: 0; }
#js-scene > .layer:first-child { position: relative; }

/* Sobre no tablet (768 a 980px, 29/09/2026): texto e cena da foto empilhados (lado a lado, o cartão
   "Meio Ambiente" saía da tela e o "Normas ISO" cobria o título); a cena fica centralizada com as
   posições do desktop. */
@media (min-width: 768px) and (max-width: 980px) {
  body.page-id-8706 #et-boc .et_pb_section_0 .et_pb_row_0 { width: calc(100% - 64px) !important; max-width: none !important; flex-wrap: wrap !important; }
  body.page-id-8706 #et-boc .et_pb_section_0 .et_pb_column_0,
  body.page-id-8706 #et-boc .et_pb_section_0 .et_pb_column_1 { width: 100% !important; flex: 0 0 100% !important; margin-right: 0 !important; }
  body.page-id-8706 #et-boc .et_pb_section_0 .et_pb_text_1 { max-width: none !important; width: 100% !important; }
  body.page-id-8706 #et-boc .et_pb_section_0 .et_pb_code_0 { left: 0 !important; }
  body.page-id-8706 #js-scene { width: 507px; max-width: 100%; margin: 48px auto 0; }
  body.page-id-8706 .items__layer:nth-child(4) .items__item { top: 30px; left: 330px; right: auto; width: 180px; padding: 18px 20px; font-size: inherit; }
}

/* Rodapé (29/09/2026): divisão de cima com curva longa e suave (140px no desktop). */
.et_pb_section_0_tb_footer { border-top-left-radius: 140px !important; border-top-right-radius: 140px !important; }
@media (max-width: 980px) { .et_pb_section_0_tb_footer { border-top-left-radius: 100px !important; border-top-right-radius: 100px !important; } }
@media (max-width: 767px) { .et_pb_section_0_tb_footer { border-top-left-radius: 60px !important; border-top-right-radius: 60px !important; } }

/* Rodapé (29/09/2026): logo da General Marketing com altura automática (vinha 120x20 inline, menor que a
   proporção 141x26, e a parte de baixo era cortada). */
.copy_rdp img { height: auto !important; }

/* Quem somos, hero (29/09/2026): o mesmo vídeo da Home (capa como fundo, vídeo por cima depois do
   carregamento, via stance-global.js) sob o mesmo véu escuro, que acompanha os cantos arredondados; título
   em azul-claro e branco e descrição em branco. A foto e os cartões ficam por cima do véu. */
body.page-id-8706 .et_pb_section_0 {
  background-image: url(/wp-content/uploads/2026/09/stance-hero-poster.webp) !important;
  background-size: cover !important;
  background-position: center !important;
  background-blend-mode: normal !important;
  background-color: #0e1a24 !important;
}
@media (max-width: 767px) {
  body.page-id-8706 .et_pb_section_0 { background-image: url(/wp-content/uploads/2026/09/stance-hero-poster-480.webp) !important; }
}
body.page-id-8706 .et_pb_section_0 .stance-hero-video {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
  opacity: 0;
  transition: opacity 1.2s ease;
  pointer-events: none;
}
body.page-id-8706 .et_pb_section_0 .stance-hero-video.is-tocando { opacity: 1; }
body.page-id-8706 .et_pb_section_0::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  /* 30/09/2026: preto na esquerda (texto) puxando para o azul da marca na lateral direita */
  background: linear-gradient(90deg, rgba(8, 18, 28, .85) 0%, rgba(8, 18, 28, .66) 40%, rgba(0, 62, 110, .6) 72%, rgba(0, 124, 190, .62) 100%);
  pointer-events: none;
}
body.page-id-8706 .et_pb_section_0 > .et_pb_row { position: relative; z-index: 2; }
body.page-id-8706 #et-boc .et_pb_section_0 .et_pb_text_0 h1 { color: #fff !important; text-shadow: 0 2px 12px rgba(0, 0, 0, .35); }
body.page-id-8706 #et-boc .et_pb_section_0 .et_pb_text_0 h1 span { color: #4cc6ff !important; }
body.page-id-8706 #et-boc .et_pb_section_0 .et_pb_text_1,
body.page-id-8706 #et-boc .et_pb_section_0 .et_pb_text_1 p { color: rgba(255, 255, 255, .92) !important; }
@media (max-width: 980px) {
  body.page-id-8706 .et_pb_section_0::before { background: linear-gradient(160deg, rgba(8, 18, 28, .85) 0%, rgba(8, 18, 28, .72) 45%, rgba(0, 62, 110, .66) 75%, rgba(0, 124, 190, .6) 100%); }
}

/* Quem somos, hero (29/09/2026): foto do casal encostada no fim do hero. A cena cresce para baixo o mesmo
   tanto do padding de baixo da seção (--stance-pb, fixado aqui para as duas medidas baterem) e a foto se
   ancora no fundo; a margem negativa mantém a altura da seção e os cartões no lugar. No celular a cena
   sobe para não sobrar vazio acima da foto. */
body.page-id-8706 #et-boc .et_pb_section_0 { --stance-pb: 50px; padding-bottom: var(--stance-pb) !important; }
@media (min-width: 981px) { body.page-id-8706 #et-boc .et_pb_section_0 { --stance-pb: min(4vw, 54px); } }
body.page-id-8706 #js-scene {
  box-sizing: border-box !important;
  height: calc(400px + var(--stance-pb)) !important;
  min-height: calc(400px + var(--stance-pb)) !important;
  padding-bottom: var(--stance-pb);
  margin-bottom: calc(-1 * var(--stance-pb));
  background-origin: content-box !important;
  background-position: center bottom calc(-1 * var(--stance-pb)) !important;
}
@media (max-width: 767px) {
  body.page-id-8706 #js-scene { margin-top: -90px !important; }
  body.page-id-8706 .items__layer:nth-child(4) .items__item { top: 100px !important; }
}
@media (max-width: 374px) {
  body.page-id-8706 #js-scene { margin-top: -60px !important; }
  body.page-id-8706 .items__layer:nth-child(4) .items__item { top: 100px !important; }
}

/* Quem somos, hero (29/09/2026): foto do casal sem o retângulo branco com sombra que havia atrás deles e
   sem as linhas de sombra embaixo (a foto parecia não encostar no fim do hero). */
body.page-id-8706 #js-scene { background-image: url(/wp-content/uploads/2026/09/clientes_satisfeitos-sem-fundo.webp) !important; }

/* Botões do Divi já com a Rubik no primeiro quadro (29/09/2026): a regra do Divi com a fonte do botão vem
   num <style> no fim da página; até lá valia a fonte do UIkit (-apple-system...), o "Solicitar orçamento"
   nascia 15px mais estreito e o menu, alinhado à direita, deslizava ao carregar cada página. */
.et_pb_button { font-family: 'Rubik', Helvetica, Arial, Lucida, sans-serif; }

/* Quem somos no celular largo (560 a 767px): a cena sobe menos, para o ícone do cartão "Normas ISO" não
   encostar no botão "Entre em contato". */
@media (min-width: 560px) and (max-width: 767px) {
  body.page-id-8706 #js-scene { margin-top: -60px !important; }
}
/* Quem somos em telas de até 340px: "Meio Ambiente" desce um pouco para não cobrir "Treinamentos". */
@media (max-width: 340px) {
  body.page-id-8706 .items__layer:nth-child(2) .items__item { translate: 0 52px; }
}

/* Grades de cards com UIkit (vitrines, cursos, Home; 29/09/2026): os layouts do Divi têm
   "li.item.uk-first-column { margin-left: -7.5px }", mas a classe uk-first-column só é posta pelo
   JavaScript do UIkit depois do carregamento, e a linha de cards pulava 7,5px para a esquerda. O mesmo
   deslocamento vai na grade desde o primeiro quadro, e a margem tardia é anulada (resultado final igual). */
.uk-grid:has(> li.item) { position: relative; left: -7.5px; }
.uk-grid > li.item.uk-first-column { margin-left: 0 !important; }

/* Paginação (29/09/2026): o <a> que envolve o número não muda o visual do item. */
.pagination li > a { display: contents; color: inherit; text-decoration: none; }

/* Vitrines (29/09/2026): H1 mais longo ("Consultoria em Sistemas de Gestão e Normas ISO"); no celular a fonte
   baixa para caber em até 3 linhas. */
@media (max-width: 767px) {
  body.post-type-archive .et_pb_section_0_tb_body h1 { font-size: 28px !important; }
}

/* Títulos de seção promovidos de h3 para h2 (script 85, 29/09/2026): quatro deles tinham o tamanho
   definido fora do estilo h3 do módulo; estes valores repetem o visual de antes. */
body.home #et-boc .et_pb_text_7 h2,
body.page-id-8706 #et-boc .et_pb_text_10 h2 { font-size: 28px !important; line-height: 1.4em !important; }
body.home #et-boc .et_pb_text_20 h2 { line-height: 1.4em !important; }
body.single-cursos #et-boc .et_pb_text_0_tb_body h2 { font-size: 32px !important; line-height: 1.4em !important; }
@media (max-width: 767px) {
  body.home #et-boc .et_pb_text_7 h2,
  body.page-id-8706 #et-boc .et_pb_text_10 h2 { font-size: 18px !important; }
  body.home #et-boc .et_pb_text_20 h2 { font-size: 32px !important; }
}

/* Revisão de celular e tablet (29/09/2026, subagentes): correções de layout e de toque. */

/* "Artigos relacionados" e "Conteúdos novos": o leque de cards sobrepostos (-130px) não cabe abaixo de
   ~1366px e cortava o primeiro card fora da tela; ali os cards viram grade. */
@media (min-width: 600px) and (max-width: 1365px) {
  .post-slider .mini-card-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; justify-content: stretch; }
  .post-slider .mini-card-grid .mini-card { min-width: 0 !important; max-width: none !important; margin-left: 0 !important; }
}
@media (min-width: 1024px) and (max-width: 1365px) {
  .post-slider .mini-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Blog, categorias e busca no tablet: a grade ficava com 4 colunas de ~103 a 190px (títulos quebrando no
   meio da palavra); 2 colunas até 959px e 3 até 1199px. */
@media (min-width: 640px) and (max-width: 959px) {
  .uk-grid-match > .mini-card-grid { width: 50% !important; }
}
@media (min-width: 960px) and (max-width: 1199px) {
  .uk-grid-match > .mini-card-grid { width: 33.333% !important; }
}
.mini-card-grid .mini-card-title { overflow-wrap: break-word; }

/* Selos "Entre em Conformidade" do rodapé no tablet: a coluna ficava com 162px e os 10 selos empilhavam em
   1 coluna (~900px de altura); a coluna passa a ocupar a linha toda, com os selos em 5 colunas. */
@media (min-width: 768px) and (max-width: 1023px) {
  .wrapFooter { flex-wrap: wrap; }
  .wrapFooter .solucoes { flex: 0 0 100% !important; }
  .wrapFooter ul.conformidade { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
}

/* FAQ: o "+" flutuava à esquerda e a segunda linha do texto voltava para baixo dele. */
.faq_stance .uk-accordion-title { display: flex; align-items: flex-start; }
.faq_stance .uk-accordion-title::before { float: none; flex: 0 0 auto; }

/* WhatsApp flutuante: fora do caminho com o menu lateral aberto. */
html.uk-offcanvas-page #container_Whatsapp_General { visibility: hidden !important; }

/* Paginação: o link ocupa o item inteiro (focável e clicável em toda a área); no celular, alvo de 44px. */
.pagination li > a { display: flex !important; align-items: center; justify-content: center; width: 100%; height: 100%; color: inherit; text-decoration: none; }
@media (max-width: 767px) {
  .pagination ul { flex-wrap: wrap; justify-content: center; }
  .pagination li { min-width: 44px; min-height: 44px; }
}

/* Cabeçalho fixo e menu lateral: alvos de toque de 44px; em telas de até 340px o logo encolhe para o
   botão do menu não passar da borda; com a busca aberta no celular, o campo não cobre o logo. */
.stance-sticky__burger, .stance-sticky__busca-btn { min-width: 44px; min-height: 44px; }
.uk-offcanvas-close { min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: center; }
/* Menu fixo em telas de até 340px: ajuste movido para stance-header-fixo.css (29/09/2026). */
@media (max-width: 767px) { html.stance-busca-aberta .stance-sticky__logo { visibility: hidden; } }

/* Artigos: compartilhar, "Ouvir artigo", velocidade e índice com alvo de 44px. */
.share-btn { min-width: 44px; min-height: 44px; }
.stance-listen__toggle, .stance-listen__rate select { min-height: 44px; }
.stance-toc__toggle { min-width: 44px; min-height: 44px; }

/* Formulários no celular: 16px nos campos, senão o iPhone dá zoom ao tocar. */
@media (max-width: 767px) {
  .wpcf7 input, .wpcf7 select, .wpcf7 textarea { font-size: 16px !important; }
}

/* WhatsApp flutuante some enquanto a assinatura do rodapé está na tela também no tablet (antes só celular). */
body.stance-no-rodape #container_Whatsapp_General { opacity: 0 !important; visibility: hidden !important; transition: transform .5s, opacity .25s, visibility .25s !important; }

/* Topo dos artigos no tablet (768 a 1023px, 29/09/2026): imagem (280px) e texto lado a lado não cabiam na
   coluna de 614px; quando a Rubik carregava, a largura mínima do texto crescia e tudo pulava (CLS 0,17).
   Empilhados, imagem em cima e texto na largura toda. */
@media (min-width: 768px) and (max-width: 1023px) {
  body.single-post #et-boc .et_pb_column_0_tb_body { flex-direction: column !important; align-items: center !important; gap: 24px !important; }
  body.single-post #et-boc .et_pb_row_1_tb_body { width: 100% !important; max-width: 100% !important; min-width: 0 !important; flex: 0 0 auto !important; }
}

/* Vitrine de cursos: bloco "Cursos por categoria" (links para as páginas de categoria, 29/09/2026). */
.stance-cursos-cats { padding: 40px 0 70px; }
.stance-cursos-cats__in { width: 80%; max-width: 1080px; margin: 0 auto; }
@media (max-width: 767px) { .stance-cursos-cats__in { width: calc(100% - 32px); } }
.stance-cursos-cats h2 { font-family: 'Rubik', Arial, sans-serif; font-size: 28px; font-weight: 700; color: #444; line-height: 1.3; margin: 0 0 18px; padding: 0; }
.stance-cursos-cats ul { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.stance-cursos-cats li { margin: 0; padding: 0; list-style: none; }
.stance-cursos-cats a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; border: 1px solid #cfe6f3; border-radius: 999px; background: #fff; color: #0079ad; font-family: 'Rubik', Arial, sans-serif; font-size: 15px; line-height: 1.3; text-decoration: none; transition: background .2s, border-color .2s; }
.stance-cursos-cats a span { margin-left: 4px; color: #6b7a86; font-size: 13px; }
.stance-cursos-cats a:hover, .stance-cursos-cats a:focus-visible { background: #eaf6fc; border-color: #009fe3; }

/* "Artigos Relacionados" (consultoria, auditoria, treinamento, cursos, solução, diagnóstico e posts), 30/09/2026:
   mesmo visual do "Conteúdos novos" da home (#headingGrad): 42px (32px no celular), degradê #009fe3 → #fac300
   recortado no texto, centralizado, com respiro maior até os cards. Classe aplicada pelo script 93. */
body #page-container #et-boc .et-l h2.stance-sec.stance-grad {
  display: block;
  width: fit-content;
  margin: 0 auto 14px !important;
  padding: 0 !important;
  font-family: 'Rubik', sans-serif;
  font-size: 42px !important;
  font-weight: 700 !important;
  line-height: 1.4em !important;
  text-align: center !important;
  color: #444444;
  background: -webkit-linear-gradient(0deg, #009fe3, #fac300);
  background: linear-gradient(90deg, #009fe3, #fac300);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
@media (max-width: 767px) {
  /* 32px como a home, mas encolhe em telas estreitas para "Artigos Relacionados" caber numa linha só */
  body #page-container #et-boc .et-l h2.stance-sec.stance-grad { font-size: min(32px, 7.4vw) !important; white-space: nowrap; }
}

/* Quem somos, hero (16/10/2026): "Normas ISO & NRs" virou "Normas ISO" e entrou o 5º cartão "Cursos de NRs",
   no canto de cima à esquerda da foto (no celular, ao lado de "Normas ISO"), com ícone de capacete (o mesmo
   desenho do selo NR da Home). */
body.page-id-8706 .items__layer:nth-child(5) .items__item {
  top: 40px;
  left: -60px;
  width: 170px;
  padding: 18px 20px;
  border-radius: 12px;
  background: #fff;
}
body.page-id-8706 .items__layer:nth-child(5) .items__item::after {
  content: "";
  position: absolute;
  top: -28px;
  left: -22px;
  width: 53px;
  height: 53px;
  border-radius: 15px;
  background: #009fe3 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 10V5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v5'/%3E%3Cpath d='M14 6a6 6 0 0 1 6 6v3'/%3E%3Cpath d='M4 15v-3a6 6 0 0 1 6-6'/%3E%3Crect x='2' y='15' width='20' height='4' rx='1'/%3E%3C/svg%3E") center / 58% no-repeat;
  box-shadow: 0 5px 10px rgba(0, 0, 0, .25);
}
@media (max-width: 767px) {
  body.page-id-8706 .items__layer:nth-child(5) .items__item { top: 116px; left: -32px; width: 118px; padding: 10px 12px; font-size: 13px; }
  body.page-id-8706 .items__layer:nth-child(5) .items__item::after { top: -22px; left: -12px; width: 40px; height: 40px; border-radius: 12px; }
}

/* Home, carrossel ao lado de "Lideramos em inovação e tendências" (16/10/2026, pedido do Diego): os cards têm a
   mesma altura (uk-grid-match) e o módulo usava justify-content: space-around, então nos textos curtos o título
   descia e o espaço até o texto crescia. Conteúdo alinhado ao topo e 12px fixos entre título e texto. */
.container_certificacao .stance_sld { justify-content: flex-start; }
.container_certificacao .stance_sld .ctt_slider { margin-top: 12px; }

/* Texto abaixo do título no topo das páginas (16/10/2026, pedido do Diego): sobre a foto de fundo o cinza perdia
   contraste nas áreas escuras da imagem. Halo branco atrás das letras (o texto é escuro, sombra preta pioraria).
   Vale para as listagens de consultoria, diagnóstico, auditoria, solução, cursos e blog e para as páginas de
   auditoria, diagnóstico e solução (subtítulo logo abaixo do H1). */
body.post-type-archive-consultoria .et_pb_section_0_tb_body .et_pb_text:has(h1) + .et_pb_text,
body.post-type-archive-diagnostico .et_pb_section_0_tb_body .et_pb_text:has(h1) + .et_pb_text,
body.post-type-archive-auditoria .et_pb_section_0_tb_body .et_pb_text:has(h1) + .et_pb_text,
body.post-type-archive-solucao .et_pb_section_0_tb_body .et_pb_text:has(h1) + .et_pb_text,
body.post-type-archive-cursos .et_pb_section_0_tb_body .et_pb_text:has(h1) + .et_pb_text,
body.blog .et_pb_section_0_tb_body .et_pb_text:has(h1) + .et_pb_text,
body.single-auditoria .et_pb_section_0_tb_body .et_pb_heading:has(h1) + .et_pb_text,
body.single-diagnostico .et_pb_section_0_tb_body .et_pb_heading:has(h1) + .et_pb_text,
body.single-solucao .et_pb_section_0_tb_body .et_pb_heading:has(h1) + .et_pb_text {
  text-shadow: 0 0 2px rgba(255, 255, 255, .95), 0 0 8px rgba(255, 255, 255, .9), 0 0 16px rgba(255, 255, 255, .7);
}

/* Selos do rodapé no celular (19/10/2026, revisão de responsividade): em 5 colunas de ~65px os nomes
   longos ("Responsabilidade" tem 102px em 12px) encostavam nos vizinhos e a fonte caía para 10px; em 3
   colunas cabem em 12px. */
@media (max-width: 600px) {
  .wrapFooter ul.conformidade { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 16px 8px; }
  .wrapFooter .conformidade .selo span:not(.selo__dica) { font-size: 12px; letter-spacing: 0; }
  .wrapFooter ul.conformidade > :last-child:nth-child(3n+1) { grid-column: 2; }
}

/* Seção "Sobre a STANCE" (19/10/2026): a imagem que substituiu o vídeo recebe o raio de 12px do módulo
   no wrapper, sem overflow; o raio vai também na própria imagem. */
.et_pb_image img[src*="stance-consultoria-auditoria-industria"] { border-radius: 12px; }

/* Banner de cookies do Complianz (19/10/2026): no desktop o banner é uma caixa compacta no canto inferior
   esquerdo e não encosta no General Chat (canto direito). No celular o banner ocupa a largura da tela e
   cobria o botão "Preferências". No celular o chat é prioridade (pedido do Diego, 19/10): fica visível, por
   cima do banner e logo acima dele; --stance-cmplz-h é a altura do banner aberto (js/stance-global.js). */
@media (max-width: 767px) {
  #container_Whatsapp_General {
    bottom: calc(20px + var(--stance-cmplz-h, 0px)) !important;
    z-index: 2147483001 !important;
    transition: transform .5s, opacity .25s, visibility .25s, bottom .3s ease !important;
  }
}

/* ===== Revisão de responsividade, celular e tablet (19/10/2026) ===== */

/* Paginação no celular: a regra das opções do tema (et-divi-customizer) deixava a lista sem quebra e os
   9 itens de 44px passavam da tela em 360px (scroll lateral no blog e na busca). */
@media (max-width: 767px) {
  .pagination ul { flex-wrap: wrap !important; gap: 6px; padding: 8px 0 !important; }
  .pagination li.numb, .pagination li.btn { margin: 0 !important; }
}

/* Formulários de proposta e inscrição no celular: 16px nos campos. O stance-form.css usa 15px com
   !important e vencia a regra geral; com 15px o iPhone dá zoom ao tocar no campo. */
@media (max-width: 767px) {
  html body :is(div[id^="wpcf7-f688"], div[id^="wpcf7-f1226"]) .wpcf7-form :is(input.wpcf7-text, select.wpcf7-select, textarea.wpcf7-textarea, input[type="date"]) { font-size: 16px !important; }
}

/* Política de Privacidade e página 404 não usam o corpo do Theme Builder: sem o espaço do topo, o
   cabeçalho do celular (80px) cobria a primeira linha do título. */
@media (max-width: 980px) {
  body.page-id-9403 #main-content .container,
  body.error404 #main-content .container { padding-top: 110px !important; }
}

/* 404: a barra lateral padrão mostrava "Recent Posts" e "Recent Comments" em inglês. */
body.error404 #sidebar { display: none; }
body.error404 #left-area { width: 100%; padding-right: 0; }
body.error404 #main-content .container::before { display: none; }

/* Política de Privacidade: as tabelas de cookies do Complianz passavam da largura da tela no celular. */
@media (max-width: 767px) {
  body.page-id-9403 .cmplz-document :is(table, h4) { max-width: 100%; overflow-wrap: anywhere; }
  body.page-id-9403 .cmplz-document .cookies-per-purpose > div { min-width: 0; overflow-wrap: anywhere; }
  body.page-id-9403 .cmplz-document summary.cmplz-service-header { min-height: 44px; }
}
@media (max-width: 600px) {
  /* Grupos com vários cookies (ex.: "Diversos") não cabem no grid: uma coluna, sem os títulos de coluna. */
  body.page-id-9403 .cmplz-document .cmplz-dropdown { max-width: 100%; overflow: hidden; }
  body.page-id-9403 .cmplz-document .cookies-per-purpose { display: block !important; }
  body.page-id-9403 .cmplz-document .cookies-per-purpose :is(.name-header, .retention-header, .function-header) { display: none !important; }
  body.page-id-9403 .cmplz-document .cookies-per-purpose :is(.name, .retention, .function) { display: block; width: 100% !important; margin-bottom: 4px; }
  body.page-id-9403 .cmplz-document .cookies-per-purpose .name { font-weight: 600; margin-top: 10px; }
  /* Cookie sem retenção ou função sai com <div> sem fechar e o resto da lista fica aninhado; o padding de
     15px de cada nível virava uma escada. Sem padding, a lista aninhada aparece plana. */
  body.page-id-9403 .cmplz-document .cookies-per-purpose div { padding: 2px 0 !important; min-width: 0; overflow-wrap: anywhere; }
  body.page-id-9403 .cmplz-document .cmplz-dropdown .cookies-per-purpose { padding: 8px 14px 12px !important; }
}

/* Quem somos: o <br> do título deixava "Treinamentos" sozinho na última linha no celular; em 26px
   "Conheça a Stance" cabe numa linha e o resto se divide em duas. */
@media (max-width: 480px) {
  body.page-id-8706 h1 { font-size: 26px !important; }
  body.page-id-8706 h1 br { display: none; }
}

/* Balão "Precisa de ajuda?" do chat cobria o conteúdo no celular e no celular deitado. */
@media (max-width: 480px), (max-height: 500px) {
  #container_Whatsapp_General .balao_chamada { display: none !important; }
}

/* Celular deitado: o banner de cookies cobria mais da metade da altura. Mais largo, botões numa linha só. */
/* O próprio Complianz, até 400px de altura, encolhe tudo com zoom 0.5/0.6 (letra de 5 a 8px): zoom anulado. */
@media (max-height: 500px) and (orientation: landscape) {
  html body .cmplz-cookiebanner, html body .cmplz-cookiebanner * { zoom: 1 !important; }
  html body .cmplz-cookiebanner { left: 12px !important; right: auto !important; bottom: 12px !important; width: calc(100vw - 24px) !important; max-width: 720px !important; height: auto !important; max-height: 60vh; overflow-y: auto; padding: 10px 14px !important; gap: 8px !important; }
  html body .cmplz-cookiebanner :is(.cmplz-header, .cmplz-divider) { display: none !important; }
  html body .cmplz-cookiebanner .cmplz-message { font-size: 13px !important; line-height: 1.4 !important; margin: 0 !important; }
  html body .cmplz-cookiebanner .cmplz-buttons { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 8px; }
  html body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn { zoom: 1 !important; width: 100% !important; margin: 0 !important; padding: 8px 10px !important; font-size: 14px !important; line-height: 1.2 !important; height: auto !important; min-height: 40px !important; white-space: normal !important; }
  html body .cmplz-cookiebanner :is(.cmplz-documents, .cmplz-information) { zoom: 1 !important; }
  html body .cmplz-cookiebanner .cmplz-documents a { font-size: 13px !important; }
}

/* Selos do topo da home: em 5 colunas de 59px os nomes caíam para 10px e se sobrepunham. Até 700px, 3
   colunas com nome em 12px (o último selo, sozinho, fica no centro); de 701 a 980px, 5 colunas com 12px. */
@media (max-width: 980px) {
  body.home .hero-selos .hero-selo__nome { font-size: 12px !important; }
}
@media (max-width: 700px) {
  body.home .hero-selos { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; column-gap: 8px !important; row-gap: 18px !important; }
  body.home .hero-selos > :last-child:nth-child(3n+1) { grid-column: 2; }
}

/* Rodapé de 601 a 767px e de 1024 a 1279px: os selos ficavam espremidos ao lado das outras colunas
   (27px por selo em 767px, 3 colunas com "Legal" sozinho em 1024px); passam para uma linha própria em 5
   colunas, como já acontece de 768 a 1023px. */
@media (min-width: 601px) and (max-width: 767px), (min-width: 1024px) and (max-width: 1279px) {
  .wrapFooter { flex-wrap: wrap; }
  .wrapFooter .solucoes { flex: 0 0 100% !important; }
  .wrapFooter ul.conformidade { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
}

/* Home, "Lideramos em inovação e tendências": no tablet o carrossel mostrava 2 cards em 245px (123px cada,
   ~13 letras por linha); até 1099px mostra 1 card por vez. */
@media (min-width: 640px) and (max-width: 1099px) {
  body.home .uk-slider-items.uk-child-width-1-2\@m > * { width: 100% !important; }
}

/* Vitrine de cursos de 640 a 959px: a grade só tinha classe para 4 colunas a partir de 960px e ficava em 1
   coluna de 600px (39 cards em fila); passa a 2 colunas. */
@media (min-width: 640px) and (max-width: 959px) {
  ul.uk-grid-match.uk-child-width-1-4\@m:not([class*="uk-child-width-1-2@s"]) > * { width: 50%; }
}

/* Artigos relacionados nas páginas de serviço: 2 colunas com 3 cards deixavam o terceiro sozinho; de 700 a
   1023px, 3 colunas. */
@media (min-width: 700px) and (max-width: 1023px) {
  .mini-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 12px !important; }
}

/* Quem somos, princípios: 3 colunas de 194px no tablet (21 letras por linha); até 899px, 2 colunas e o
   último card na largura toda. */
@media (min-width: 601px) and (max-width: 899px) {
  .qs-princ-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .qs-princ-grid > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}
/* De 1100 a 1279px eram 5 colunas de 176px (18 letras por linha). */
@media (min-width: 1100px) and (max-width: 1279px) {
  .qs-princ-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

/* Ícone do menu do cabeçalho: chega vazio e o UIkit (defer) injeta o SVG de 40px depois da primeira pintura,
   o que empurrava o cabeçalho (CLS ~0,02 no celular). Espaço reservado. */
.uk-navbar-right > span[uk-icon] { display: inline-block; min-width: 40px; min-height: 40px; }

/* Títulos sem palavra sozinha na última linha. */
h1, h2, h3, .mini-card-title { text-wrap: balance; }

/* Banner de cookies no celular, compacto (19/10): sem o título, mensagem em 13px e os 3 botões numa linha só
   (~230px de altura para ~170px). */
@media (max-width: 767px) {
  html body .cmplz-cookiebanner { padding: 12px 14px !important; gap: 8px !important; grid-row-gap: 8px !important; }
  html body .cmplz-cookiebanner :is(.cmplz-header, .cmplz-divider) { display: none !important; }
  html body .cmplz-cookiebanner .cmplz-message { font-size: 13px !important; line-height: 1.4 !important; margin: 0 !important; }
  html body .cmplz-cookiebanner .cmplz-buttons { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  html body .cmplz-cookiebanner .cmplz-buttons .cmplz-btn { width: 100% !important; margin: 0 !important; padding: 6px 4px !important; font-size: 13px !important; line-height: 1.2 !important; height: auto !important; min-height: 40px !important; white-space: normal !important; }
  html body .cmplz-cookiebanner .cmplz-documents a { font-size: 12.5px !important; }
}

/* Telas de toque: alvos de 44px no menu lateral, filtros, links do rodapé, perguntas frequentes, setas de
   carrossel e botões. Só em ponteiro grosso (celular e tablet); no desktop nada muda. */
@media (pointer: coarse) {
  .uk-offcanvas-bar .uk-nav > li > a { min-height: 44px; display: flex; align-items: center; }
  .scrollable-tabs-container ul li a, .filtros-nav a, a.pill_cpt, a.pillsCat, button.filtro-tipo, a.stance-busca-tipo {
    min-height: 44px; display: inline-flex; align-items: center;
  }
  .wrapFooter .menu a, .wrapFooter .treinamentos a { display: inline-block; padding: 10px 0; }
  .wrapFooter a.uk-icon { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  a.uk-accordion-title { padding-top: 10px; padding-bottom: 10px; }
  .uk-slidenav, a.uk-position-center-left-out, a.uk-position-center-right-out { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  .et_pb_button { min-height: 44px; }
  ul.filtros-nav.uk-subnav > li.stance-busca-li > button.stance-busca-abrir { width: 44px !important; min-width: 44px; min-height: 44px; }
  /* Paginação, setas dos filtros e pontos do carrossel: área de toque invisível de 44px, visual igual. */
  .stance-pg, .stance-rolo__seta, .uk-dotnav > * > * { position: relative; }
  .stance-rolo__seta { position: absolute; }
  html body .uk-dotnav > * > * { overflow: visible !important; font-size: 0; color: transparent; }
  .et_pb_section a.uk-icon:not([class*="uk-position"]):not(.uk-close) { position: relative; }
  /* ::before, porque o ::after dos ícones das redes é o rótulo flutuante (Instagram, LinkedIn...). */
  .et_pb_section a.uk-icon:not([class*="uk-position"]):not(.uk-close)::before { content: ""; position: absolute; top: 50%; left: 50%; width: 44px; height: 44px; transform: translate(-50%, -50%); }
  /* Telefones: área de toque maior sem mexer no layout. */
  html body .container_logos_rdp .chamada a, .wrapFooter a[href^="tel:"] { padding-top: 10px !important; padding-bottom: 10px !important; margin-top: -10px; margin-bottom: -10px; }
  .pagination li.btn a { min-width: 44px; display: inline-flex; align-items: center; justify-content: center; }
  .stance-pg::after, .stance-rolo__seta::after, .uk-dotnav > * > *::after { content: ""; position: absolute; top: 50%; left: 50%; width: 44px; height: 44px; transform: translate(-50%, -50%); }
  /* Pontos ficam a 22px um do outro: área de 44px invadiria o vizinho. */
  .uk-dotnav > * > *::after { width: 22px; }
}

/* Barra de rolagem vertical (19/10/2026): no desktop ela aparecia depois da primeira pintura, a área útil
   perdia ~15px e tudo que é centralizado andava (CLS 0,205 na vitrine de consultoria). O espaço dela fica
   reservado desde o início; no celular a barra é sobreposta e nada muda. */
html { scrollbar-gutter: stable; }

/* Obrigado e 404 (19/10/2026, pedido do Diego): Instagram, LinkedIn e Facebook abaixo dos botões, com o
   mesmo visual do bloco de redes dos artigos (o stance-artigo.css só carrega nos posts). */
.stance-redes-final { display: flex; justify-content: center; margin-top: 28px; }
.stance-redes-final .stance-artigo-redes__icones { display: flex; gap: 12px; }
.stance-redes-final .stance-artigo-redes__icones a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%;
  background: #009fe3; color: #fff !important; text-decoration: none !important;
  transition: background-color .2s ease;
}
.stance-redes-final .stance-artigo-redes__icones a svg { transition: transform .2s ease; }
@media (hover: hover) { .stance-redes-final .stance-artigo-redes__icones a:hover { background: #0077aa; } .stance-redes-final .stance-artigo-redes__icones a:hover svg { transform: translateY(-2px); } }
.stance-redes-final .stance-artigo-redes__icones a:focus-visible { outline: 2px solid #0077aa; outline-offset: 2px; }

/* 404 do Theme Builder (19/10/2026): no contexto de 404 o CSS dinâmico do Divi deixava a coluna do corpo
   com ~48% e flutuando, a linha não a continha e o rodapé subia para o lado. Mesmo layout da página 809. */
body.error404 .et-l--body .et_pb_row { display: flow-root; }
body.error404 .et-l--body .et_pb_column_4_4 { width: 100% !important; float: none !important; }

/* Mapa da Quem somos (Google Maps bloqueado pelo Complianz até o aceite), 19/10/2026:
   depois do aceite o estilo do Complianz encolhia o iframe para 150px; antes do aceite a imagem
   genérica (mapa de outra região) parecia um mapa quebrado. Fundo neutro com o aviso no centro. */
iframe[data-service="google-maps"] { width: 100%; height: 320px !important; }
.cmplz-placeholder-parent:has(iframe[data-service="google-maps"]) { min-height: 320px; }
.cmplz-blocked-content-container:has(iframe[data-service="google-maps"]) {
    background: #e8f1f7 !important;
    background-image: none !important;
    border-radius: 12px;
}
