/*
Theme Name:   IBGP Child
Theme URI:    https://ibgp.com.br/
Description:  Tema-filho do Kadence para o site do IBGP — Instituto Brasileiro de
              Governança Pública. Todo CSS próprio do site mora aqui, para
              sobreviver às atualizações do Kadence.
Author:       IBGP
Author URI:   https://ibgp.com.br/
Template:     kadence
Version:      2.11.0
Text Domain:  ibgp-child
*/

/* ============================================================================
   O CSS da Etapa 1 JÁ ESTÁ COLADO ABAIXO — não precisa colar nada.

   É o conteúdo do arquivo 362-etapa1-home-css.css. Para alterá-lo depois, use
   Aparência → Editor de arquivos do tema → IBGP Child → style.css.

   Regras da casa, para não repetir os problemas do fórum:
   · todo seletor escopado sob .ibgp-home, .ibgp-rodape ou .ibgp-lista
   · nunca redefinir classe do Kadence (.site-footer, .button, .kb-*)
   · nunca redefinir classe global (.ibgp-card já existe no fórum)
   ============================================================================ */


/* ============================================================================
   IBGP — Etapa 1 (Homepage)  ·  CSS do tema-filho "ibgp-child"
   ----------------------------------------------------------------------------
   Onde colar: Aparência → Editor de temas → style.css do ibgp-child
               (ou Aparência → Personalizar → CSS adicional, para testar rápido)

   REGRAS SEGUIDAS (lições do projeto do fórum):
   · nada aqui é global — TODO seletor está escopado sob .ibgp-home ou .ibgp-rodape
   · nenhuma classe do Kadence é redefinida (.site-footer, .button, .kb-* etc.)
   · tokens de cor com prefixo --ibgp- para não colidir com --global-palette do Kadence

   O QUE SAIU em relação ao site atual:
   · todo o CSS do menu (.nav, .nav-links, .nav-toggle, .nav-overlay) — o cabeçalho
     passa a ser o Header Builder do Kadence, nativo e sticky

   ATUALIZADO NA ETAPA 2 (29/08/2026):
   · as regras de card, botão e skeleton agora usam o escopo
     `:is(.ibgp-home, .ibgp-lista)` — o mesmo card serve a home e as listagens de
     cursos, sem duplicar uma linha de CSS. Se você já tinha colado a versão
     anterior, **substitua o arquivo inteiro**.

   REVISADO EM 08/09/2026 (arquivo 362, substitui o 338) — ver o 361:
   · --ibgp-navy voltou para #0b2545. Conferido no CSS que o fórum serve hoje:
     #0b2545 é a cor do cabeçalho, do rodapé (#colophon) e dos heróis dele.
     O #001b4c fica onde o fórum de fato o usa — no palette8 do Kadence e no
     hover dos botões, configurados pelo Personalizar, não por este arquivo.
   · os dois derivados do rodapé acompanharam: #0b1f51 → #16294a, #122c65 → #1d365e
   · @font-face do Open Sans embutido, igual ao do fórum (um arquivo, pesos 300–800)
   · corrigida a regra de largura total, que criava barra de rolagem horizontal
   ============================================================================ */

/* ═══ FONTE ════════════════════════════════════════════════════════════════
   Mesma fonte e mesmo arquivo do fórum: um woff2 variável cobrindo os pesos
   300 a 800, sem nenhuma chamada ao Google Fonts.

   NÃO PRECISA FAZER NADA. O arquivo viaja dentro deste tema, em
   `ibgp-child/fonts/opensans-latin.woff2`, e o endereço abaixo é relativo a
   este style.css — funciona sozinho.

   Foi assim porque o WordPress recusa upload de .woff2 na Biblioteca de Mídia
   (o tipo não está na lista permitida). Guardar a fonte no tema resolve sem
   precisar afrouxar essa lista, sem plugin e sem FTP. E fica no mesmo domínio:
   apontar para o forum.ibgp.com.br não funcionaria, porque fonte de outro
   domínio exige cabeçalho CORS, que o fórum não envia — o navegador
   descartaria a fonte em silêncio.
   ══════════════════════════════════════════════════════════════════════════ */
@font-face {
  font-family: "Open Sans";
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url("fonts/opensans-latin.woff2") format("woff2");
}

/* ═══ TOKENS ═══════════════════════════════════════════════════════════════ */
:root {
  /* Navy das superfícies grandes — o MESMO que o fórum usa no cabeçalho, no
     rodapé e nos heróis. A anotação de 29/08 dizia que o navy do fórum era
     #001b4c; conferindo o CSS do fórum em 08/09, #001b4c só aparece no slot da
     paleta e no hover dos botões. Para trocar de tom, é só esta linha. */
  --ibgp-navy:      #0b2545;
  --ibgp-blue:      #1565c0;
  --ibgp-sky:       #1e88e5;
  --ibgp-bg-light:  #ddeeff;
  --ibgp-text:      #1a2a3a;
  --ibgp-muted:     #607d8b;
  --ibgp-card-bg:   #eef2f7;
}

/* Imagens de fundo — na Mídia do WordPress desde a 2.1.0 (13/09/2026);
   nada mais vem de ibgp.com.br nesta página. */
.ibgp-home {
  --ibgp-bg-acesso:  url("/wp-content/uploads/2026/09/fundo-acesso.webp");
  --ibgp-bg-cursos:  url("/wp-content/uploads/2026/09/fundo-cursos.webp");
  --ibgp-bg-online:  url("/wp-content/uploads/2026/09/fundo-plataforma-online.webp");
  --ibgp-bg-forum:   url("/wp-content/uploads/2026/09/fundo-forum.webp");

  font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  color: var(--ibgp-text);
}

.ibgp-home *,
.ibgp-home *::before,
.ibgp-home *::after { box-sizing: border-box; }

.ibgp-home p,
.ibgp-home h2,
.ibgp-home h3 { margin: 0; }

/* Título H1 da página — o site atual não tem H1 na home (achado da Etapa 0).
   Entra aqui acessível a leitores de tela e ao Google, sem alterar o desenho.
   Para deixá-lo visível, ver o item "H1" no passo a passo. */
.ibgp-home .ibgp-sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ═══ HERO ═════════════════════════════════════════════════════════════════ */
.ibgp-home .hero { display: block; background: #e6ecf3; }
.ibgp-home .hero img { display: block; width: 100%; height: auto; }

/* ═══ ACESSO RÁPIDO ════════════════════════════════════════════════════════ */
.ibgp-home .access-wrap {
  background-color: var(--ibgp-navy);
  background-image: var(--ibgp-bg-acesso);
  background-size: cover;
  background-position: center;
  padding: 32px 32px 40px;
}
.ibgp-home .access-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  max-width: 900px;
  margin: 0 auto;
}
.ibgp-home .access-item { display: flex; flex-direction: column; gap: 0; }

.ibgp-home .access-card {
  display: block;
  border-radius: 14px;
  overflow: hidden;
  position: relative;
  height: 200px;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  transition: transform .22s;
}
.ibgp-home .access-card:hover { transform: translateY(-3px); }

.ibgp-home .ac-online { background-image: var(--ibgp-bg-online); background-size: cover; background-position: center; }
.ibgp-home .ac-forum  { background-image: var(--ibgp-bg-forum);  background-size: cover; background-position: center; }

.ibgp-home .access-card::before {
  content: ""; position: absolute; inset: 0;
  background: rgba(5, 20, 55, .52);
  z-index: 1;
}
.ibgp-home .access-card-content {
  position: absolute; inset: 0; z-index: 2;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  text-align: center; padding: 16px;
}
.ibgp-home .access-card-title {
  font-size: 1rem; font-weight: 800; color: #fff;
  margin-bottom: 4px; line-height: 1.3;
}
.ibgp-home .access-card-label {
  font-size: .72rem; font-weight: 500; color: rgba(255,255,255,.75);
  text-transform: none; letter-spacing: .2px;
}
.ibgp-home .access-card-btns {
  background: #fff;
  border-radius: 0 0 14px 14px;
  display: flex; align-items: center;
  padding: 10px 16px;
  justify-content: space-between;
  gap: 12px;
}
.ibgp-home .btn-card {
  font-size: .68rem; font-weight: 700; padding: 6px 18px; border-radius: 20px;
  text-decoration: none; cursor: pointer; border: none; transition: .18s;
  white-space: nowrap;
}
.ibgp-home .btn-card-fill { background: var(--ibgp-sky); color: #fff; }
.ibgp-home .btn-card-fill:hover { background: var(--ibgp-blue); color: #fff; }
.ibgp-home .btn-card-label { font-size: .78rem; font-weight: 700; color: var(--ibgp-navy); }
.ibgp-home .btn-card-label strong { font-weight: 900; }

/* ═══ SEÇÕES DE CURSOS ═════════════════════════════════════════════════════ */
.ibgp-home .featured-outer {
  background-color: var(--ibgp-card-bg);
  background-image: var(--ibgp-bg-cursos);
  background-size: cover;
  background-position: center top;
  padding: 52px 32px 0;
  position: relative;
}
.ibgp-home .featured-events { padding-top: 8px; padding-bottom: 40px; }
.ibgp-home #courses-anchor + .categories-wrap { padding-top: 0; }
.ibgp-home .categories-wrap + .featured-events { padding-top: 40px; }
.ibgp-home .cards-container--standalone { margin-top: 0; }
.ibgp-home .cards-container--standalone::before { border-radius: 30px; }

.ibgp-home .featured-heading {
  font-size: 1.5rem; font-weight: 900; color: var(--ibgp-navy);
  text-align: center; text-transform: uppercase; letter-spacing: 1.5px;
  margin-bottom: 32px;
}
.ibgp-home #courses-anchor { scroll-margin-top: 108px; }

.ibgp-home .active-cat-wrap { max-width: 1200px; margin: 0 auto; }
.ibgp-home .active-cat-pill {
  display: flex; align-items: center; position: relative;
  width: fit-content; margin: 0 auto; z-index: 2;
}
.ibgp-home .active-cat-pill-circle {
  width: 100px; height: 100px; border-radius: 50%;
  border: 7px solid #fff;
  box-shadow: 0 2px 12px rgba(0,0,0,.2);
  flex-shrink: 0; z-index: 3; position: relative;
  background: var(--ibgp-blue);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.ibgp-home .active-cat-pill-circle svg {
  width: 38px; height: 38px; fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round;
}
.ibgp-home .cat-pill-image {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.ibgp-home .active-cat-pill-banner {
  background: var(--ibgp-sky);
  border-radius: 0 20px 0 0;
  margin-left: -20px;
  padding: 18px 36px 20px;
  min-width: 340px;
}
.ibgp-home .active-cat-pill-name {
  font-size: 1.1rem; font-weight: 800; color: #fff; letter-spacing: .2px; margin-left: 10px;
}

.ibgp-home .cards-container {
  border-radius: 20px;
  padding: 60px 70px;
  margin-top: -20px;
  position: relative;
  z-index: 1;
}
.ibgp-home .cards-container::before {
  content: "";
  background: var(--ibgp-blue);
  position: absolute;
  width: 100%; height: 180px;
  left: 0; top: 0;
  border-radius: 30px 30px 0 0;
}

:is(.ibgp-home, .ibgp-lista) .courses-grid {
  display: flex; flex-wrap: wrap; justify-content: flex-start;
  gap: 14px; transition: opacity .25s;
}
@keyframes ibgpFadeUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

:is(.ibgp-home, .ibgp-lista) .course-card,
:is(.ibgp-home, .ibgp-lista) .skeleton-card { flex: 0 1 calc(25% - 11px); max-width: calc(25% - 11px); }

:is(.ibgp-home, .ibgp-lista) .course-card {
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,.13);
  display: flex; flex-direction: column;
  transition: transform .2s, box-shadow .2s;
  animation: ibgpFadeUp .3s both;
}
:is(.ibgp-home, .ibgp-lista) .course-card:nth-child(2) { animation-delay: .05s; }
:is(.ibgp-home, .ibgp-lista) .course-card:nth-child(3) { animation-delay: .1s; }
:is(.ibgp-home, .ibgp-lista) .course-card:nth-child(4) { animation-delay: .15s; }
:is(.ibgp-home, .ibgp-lista) .course-card:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(0,0,0,.2); }

:is(.ibgp-home, .ibgp-lista) .card-thumb {
  height: 140px; position: relative; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
:is(.ibgp-home, .ibgp-lista) .card-thumb-icon { opacity: .18; }
:is(.ibgp-home, .ibgp-lista) .card-thumb-icon svg {
  width: 60px; height: 60px; fill: none; stroke: #fff; stroke-width: 1.5; stroke-linecap: round;
}
:is(.ibgp-home, .ibgp-lista) .card-thumb-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; display: block;
}

:is(.ibgp-home, .ibgp-lista) .card-date-bar {
  background: #fff;
  padding: 10px 12px;
  display: flex; align-items: center; justify-content: center;
  gap: 5px;
  font-size: .62rem; font-weight: 700; color: var(--ibgp-sky);
  border-radius: 30px;
  width: 80%; margin: -10px auto 0;
  z-index: 1; position: relative;
}
:is(.ibgp-home, .ibgp-lista) .card-date-bar svg {
  width: 10px; height: 10px; fill: none; stroke: var(--ibgp-sky); stroke-width: 2; flex-shrink: 0;
}

:is(.ibgp-home, .ibgp-lista) .card-body { padding: 12px 14px; flex: 1; display: flex; flex-direction: column; }
:is(.ibgp-home, .ibgp-lista) .card-title {
  font-size: .8rem; font-weight: 700; color: var(--ibgp-navy);
  line-height: 1.45; text-align: center; margin: 0 0 auto;
}
:is(.ibgp-home, .ibgp-lista) .card-title a { color: inherit; text-decoration: none; }
:is(.ibgp-home, .ibgp-lista) .card-title a:hover { color: var(--ibgp-sky); }
:is(.ibgp-home, .ibgp-lista) .card-divider { height: 1px; background: #dde6f0; margin: 10px 0; }
:is(.ibgp-home, .ibgp-lista) .card-footer { display: flex; align-items: center; gap: 8px; }

:is(.ibgp-home, .ibgp-lista) .tag-online {
  font-size: .6rem; font-weight: 700; color: #fff;
  background: var(--ibgp-sky); padding: 4px 12px; border-radius: 20px;
  white-space: nowrap;
}
:is(.ibgp-home, .ibgp-lista) .btn-detail {
  display: inline-block;
  font-size: .65rem; font-weight: 600; color: var(--ibgp-navy);
  border: 1px solid #b0bec5; padding: 4px 12px; border-radius: 6px;
  background: none; cursor: pointer; transition: .18s;
  text-decoration: none; line-height: 1.4;
}
:is(.ibgp-home, .ibgp-lista) .btn-detail:hover { background: var(--ibgp-navy); color: #fff; border-color: var(--ibgp-navy); }

/* ═══ SKELETON (só aparece ao trocar de categoria) ══════════════════════════ */
:is(.ibgp-home, .ibgp-lista) .skeleton-card {
  background: #fff; border-radius: 14px; overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,.13);
  display: flex; flex-direction: column;
}
:is(.ibgp-home, .ibgp-lista) .sk { position: relative; overflow: hidden; background: #e6ecf3; }
:is(.ibgp-home, .ibgp-lista) .sk::after {
  content: ""; position: absolute; inset: 0; transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.65), transparent);
  animation: ibgpSkeletonShimmer 1.2s infinite;
}
@keyframes ibgpSkeletonShimmer { 100% { transform: translateX(100%); } }
:is(.ibgp-home, .ibgp-lista) .sk-thumb { height: 140px; }
:is(.ibgp-home, .ibgp-lista) .sk-date  { height: 20px; width: 80%; margin: -10px auto 0; border-radius: 30px; }
:is(.ibgp-home, .ibgp-lista) .sk-body  { padding: 16px 14px 14px; display: flex; flex-direction: column; gap: 10px; }
:is(.ibgp-home, .ibgp-lista) .sk-line  { height: 12px; border-radius: 6px; }
:is(.ibgp-home, .ibgp-lista) .sk-line.short { width: 60%; }
:is(.ibgp-home, .ibgp-lista) .sk-footer { height: 24px; width: 70%; border-radius: 6px; margin-top: 8px; }

/* ═══ BOTÃO "VER CATEGORIA" / "VER TODOS" ══════════════════════════════════ */
:is(.ibgp-home, .ibgp-lista) .load-more-wrap { display: flex; justify-content: center; margin-top: 28px; }
:is(.ibgp-home, .ibgp-lista) .btn-load-more {
  font-size: .75rem; font-weight: 700; letter-spacing: .5px; text-transform: uppercase;
  color: #fff; background: var(--ibgp-sky);
  border: none; border-radius: 24px; padding: 12px 32px; cursor: pointer;
  box-shadow: 0 4px 14px rgba(30,136,229,.4);
  transition: background .18s, transform .18s, box-shadow .18s;
  text-decoration: none; display: inline-block;
}
:is(.ibgp-home, .ibgp-lista) .btn-load-more:hover {
  background: var(--ibgp-blue); color: #fff;
  transform: translateY(-2px); box-shadow: 0 6px 18px rgba(21,101,192,.45);
}
:is(.ibgp-home, .ibgp-lista) .btn-load-more:active { transform: translateY(0); }

/* ═══ GRADIENTES POR ÁREA (usados quando o curso não tem imagem) ════════════ */
:is(.ibgp-home, .ibgp-lista) .thumb-workshop    { background: linear-gradient(135deg,#0d3b6e,#1976d2); }
:is(.ibgp-home, .ibgp-lista) .thumb-digital     { background: linear-gradient(135deg,#0d47a1,#1e88e5); }
:is(.ibgp-home, .ibgp-lista) .thumb-corporativa { background: linear-gradient(135deg,#1a237e,#3949ab); }
:is(.ibgp-home, .ibgp-lista) .thumb-pessoas     { background: linear-gradient(135deg,#004d40,#00897b); }
:is(.ibgp-home, .ibgp-lista) .thumb-ti          { background: linear-gradient(135deg,#006064,#00acc1); }
:is(.ibgp-home, .ibgp-lista) .thumb-contratos   { background: linear-gradient(135deg,#1b5e20,#43a047); }
:is(.ibgp-home, .ibgp-lista) .thumb-riscos      { background: linear-gradient(135deg,#4a148c,#8e24aa); }
:is(.ibgp-home, .ibgp-lista) .thumb-seguranca   { background: linear-gradient(135deg,#b71c1c,#e53935); }

/* ═══ LISTA DE CATEGORIAS ══════════════════════════════════════════════════ */
.ibgp-home .categories-wrap {
  display: flex;
  background-color: var(--ibgp-card-bg);
  background-image: var(--ibgp-bg-cursos);
  background-size: cover;
  background-position: center bottom;
  padding: 40px 32px 60px;
}
.ibgp-home .categories-inner {
  margin: 0 auto;
  display: inline-flex; flex-direction: column;
  gap: 12px;
}
@media (min-width: 769px) {
  .ibgp-home .categories-inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 32px;
    width: 100%; max-width: 1000px;
  }
}

.ibgp-home .cat-pill-wrap { display: flex; align-items: center; cursor: pointer; position: relative; }
.ibgp-home .cat-pill-wrap.pos-left  { flex-direction: row; }
.ibgp-home .cat-pill-wrap.pos-right { flex-direction: row-reverse; }

.ibgp-home .cat-pill-circle {
  width: 78px; height: 78px; border-radius: 50%;
  flex-shrink: 0; z-index: 2; position: relative;
  border: 5px solid #fff;
  box-shadow: 0 2px 10px rgba(0,0,0,.15);
  background: var(--ibgp-blue);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  transition: transform .18s, box-shadow .18s;
}
.ibgp-home .cat-pill-circle svg {
  width: 28px; height: 28px; fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round;
}
.ibgp-home .cat-pill-banner {
  flex: 1;
  background: var(--ibgp-navy);
  padding: 16px 22px;
  display: flex; align-items: center;
  min-height: 52px;
  transition: background .18s;
}
.ibgp-home .pos-left  .cat-pill-circle { margin-right: -18px; }
.ibgp-home .pos-left  .cat-pill-banner { border-radius: 0 30px 0 0; padding-left: 30px; }
.ibgp-home .pos-right .cat-pill-circle { margin-left: -18px; }
.ibgp-home .pos-right .cat-pill-banner { border-radius: 30px 0 0 0; padding-right: 30px; justify-content: flex-end; }

.ibgp-home .cat-pill-name { font-size: .9rem; font-weight: 700; color: #fff; letter-spacing: .1px; }

.ibgp-home .cat-pill-wrap:hover .cat-pill-banner,
.ibgp-home .cat-pill-wrap.active .cat-pill-banner { background: var(--ibgp-sky); }
.ibgp-home .cat-pill-wrap:hover .cat-pill-circle,
.ibgp-home .cat-pill-wrap.active .cat-pill-circle {
  transform: scale(1.07);
  box-shadow: 0 4px 16px rgba(30,136,229,.45);
}

/* ═══ RODAPÉ ═══════════════════════════════════════════════════════════════
   Escopado em .ibgp-rodape — NÃO usa .site-footer, que é classe do Kadence.
   Este bloco vale para o site inteiro, não só para a home.

   ALTERADO EM 09/09/2026 (tema 1.4.0), a pedido do Geraldo:
   · endereço, nome do instituto, contatos e aviso de direitos autorais passaram de
     branco esmaecido para BRANCO puro;
   · a linha de direitos autorais ficou centralizada, agora que o crédito da IBS Web
     saiu do HTML e ela é o único elemento da faixa.

   Ganho de contraste sobre o navy #0b2545: o endereço estava em 4,20:1 e o aviso de
   direitos autorais em 3,09:1 — os dois ABAIXO do mínimo de 4,5:1 da WCAG AA para
   texto normal. Em branco, ambos vão a 15,38:1.

   O hover dos contatos passou a #64b5f6 (o mesmo azul dos títulos das colunas), para
   continuar havendo resposta visual agora que o estado normal já é branco.
   Os títulos das colunas (CONTATO, SIGA-NOS) seguem em #64b5f6: são rótulo, não texto
   corrido, e já tinham contraste suficiente.
   ══════════════════════════════════════════════════════════════════════════ */
.ibgp-rodape {
  background: var(--ibgp-navy);
  padding: 44px 32px 20px;

  /* Sangra até as bordas da tela (acrescentado em 08/09/2026, tema 1.3.0).
     Pôr a faixa do rodapé em "largura total" no Personalizar tira o limite de
     1475px, mas NÃO tira o respiro lateral do .site-container do Kadence — são
     24px de cada lado que impediam o navy de encostar nas bordas. Estas duas
     margens negativas anulam exatamente esse respiro, lendo a própria variável
     do tema, então acompanham a configuração se ela mudar.
     O conteúdo interno continua limitado a 1200px pelas regras abaixo.
     Testado em 375, 1030 e 1475px: sem rolagem horizontal. */
  margin-left:  calc(-1 * var(--global-content-edge-padding, 0px));
  margin-right: calc(-1 * var(--global-content-edge-padding, 0px));
  font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.ibgp-rodape *,
.ibgp-rodape *::before,
.ibgp-rodape *::after { box-sizing: border-box; }

.ibgp-rodape .footer-highlights {
  max-width: 1200px; margin: 0 auto 32px;
  display: flex; gap: 20px; flex-wrap: wrap;
}
.ibgp-rodape .footer-privacy {
  flex: 1 1 320px;
  display: flex; align-items: center; justify-content: center; gap: 12px;
  background: #16294a; border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px; padding: 18px 22px;
  color: #fff; text-decoration: none;
  font-size: .92rem; font-weight: 600; text-align: center;
  transition: background .18s, transform .18s;
}
.ibgp-rodape .footer-privacy:hover { background: #1d365e; color: #fff; transform: translateY(-2px); }
.ibgp-rodape .footer-privacy svg {
  width: 22px; height: 22px; flex-shrink: 0; fill: none; stroke: #64b5f6; stroke-width: 2;
}

.ibgp-rodape .footer-newsletter {
  flex: 1 1 320px;
  display: flex; align-items: center; gap: 16px;
  background: linear-gradient(135deg, var(--ibgp-blue), var(--ibgp-sky));
  border-radius: 12px; padding: 16px 20px; color: #fff;
}
.ibgp-rodape .footer-newsletter-icon { flex-shrink: 0; }
.ibgp-rodape .footer-newsletter-icon svg { width: 34px; height: 34px; fill: none; stroke: #fff; stroke-width: 1.8; }
.ibgp-rodape .footer-newsletter-text { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.ibgp-rodape .footer-newsletter-text strong {
  font-size: .85rem; font-weight: 800; text-transform: uppercase; letter-spacing: .3px; line-height: 1.3;
}
.ibgp-rodape .footer-newsletter-text span { font-size: .72rem; color: rgba(255,255,255,.88); }
.ibgp-rodape .footer-newsletter-btn {
  flex-shrink: 0;
  background: #fff; color: var(--ibgp-blue);
  font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .3px;
  padding: 10px 16px; border-radius: 20px; text-decoration: none; white-space: nowrap;
  transition: transform .18s, box-shadow .18s;
}
.ibgp-rodape .footer-newsletter-btn:hover { transform: translateY(-2px); box-shadow: 0 4px 14px rgba(0,0,0,.28); }

.ibgp-rodape .footer-grid {
  display: flex; gap: 48px; flex-wrap: wrap;
  margin: 0 auto 28px; max-width: 1200px;
}
.ibgp-rodape .footer-brand { max-width: 280px; }
.ibgp-rodape .footer-brand .logo-box {
  background: #fff; border-radius: 5px; padding: 3px 7px;
  font-size: .95rem; font-weight: 900; color: var(--ibgp-navy);
  display: inline-block; margin-bottom: 8px;
}
.ibgp-rodape .footer-brand-name {
  font-size: .58rem; font-weight: 600; color: #fff;
  text-transform: uppercase; letter-spacing: .5px; line-height: 1.4;
}
.ibgp-rodape .footer-address {
  font-size: .72rem; color: #fff; line-height: 1.6; margin-top: 12px;
}
.ibgp-rodape .footer-col h4 {
  font-size: .62rem; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase;
  color: #64b5f6; margin: 0 0 10px;
}
.ibgp-rodape .footer-col a {
  display: block; font-size: .75rem; color: #fff;
  text-decoration: none; margin-bottom: 6px; transition: color .18s;
}
.ibgp-rodape .footer-col a:hover { color: #64b5f6; }

.ibgp-rodape .footer-social { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 2px; }
.ibgp-rodape .footer-social a {
  width: 36px; height: 36px; margin: 0;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%; background: rgba(255,255,255,.08); color: #fff;
  transition: background .18s, transform .18s;
}
.ibgp-rodape .footer-social a:hover { background: var(--ibgp-sky); transform: translateY(-2px); }
.ibgp-rodape .footer-social svg {
  width: 18px; height: 18px; fill: none; stroke: currentColor;
  stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round;
}

.ibgp-rodape .footer-bottom {
  max-width: 1200px; margin: 0 auto;
  border-top: 1px solid rgba(255,255,255,.1); padding-top: 16px;
  font-size: .68rem; color: #fff;
  display: flex; align-items: center; justify-content: center; text-align: center;
  flex-wrap: wrap; gap: 10px;
}
.ibgp-rodape .footer-credit { color: rgba(255,255,255,.3); }
.ibgp-rodape .footer-credit img { max-width: 110px; height: auto; display: block; }

/* ═══ RESPONSIVO ═══════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .ibgp-home .course-card,
  .ibgp-home .skeleton-card { flex: 0 1 calc(50% - 7px); max-width: calc(50% - 7px); }
}
@media (max-width: 768px) {
  .ibgp-home .access-grid { grid-template-columns: 1fr; }
  .ibgp-home .featured-outer,
  .ibgp-home .categories-wrap { padding-left: 16px; padding-right: 16px; }
  .ibgp-home .cards-container { padding: 40px 12px 20px; }
  .ibgp-home .active-cat-pill { flex-direction: column; }
  .ibgp-home .active-cat-pill-banner { min-width: 200px; margin: 0; text-align: center; border-radius: 20px; }
  .ibgp-home .active-cat-pill-circle { width: 85px; height: 85px; margin-bottom: -20px; }
  .ibgp-home .cat-pill-circle { width: 75px; height: 75px; }
  .ibgp-home .cat-pill-banner { padding: 10px 22px; }

  .ibgp-rodape .footer-brand { max-width: 100%; text-align: center; }
  .ibgp-rodape .footer-col { text-align: center; width: 100%; }
  .ibgp-rodape .footer-social { justify-content: center; }
  .ibgp-rodape .footer-bottom { text-align: center; flex-direction: column; align-items: center; gap: 10px; }
}
@media (max-width: 500px) {
  .ibgp-home .course-card,
  .ibgp-home .skeleton-card { flex: 0 1 100%; max-width: 320px; }
  .ibgp-home .categories-inner { max-width: 100%; }

  .ibgp-rodape .footer-grid { flex-direction: column; gap: 24px; }
  .ibgp-rodape .footer-newsletter { flex-direction: column; text-align: center; }
  .ibgp-rodape .footer-newsletter-text { align-items: center; }
}
@media (prefers-reduced-motion: reduce) {
  .ibgp-home *, .ibgp-home *::before, .ibgp-home *::after,
  .ibgp-rodape *, .ibgp-rodape *::before, .ibgp-rodape *::after {
    animation: none !important;
    transition-duration: .01ms !important;
  }
}

/* ═══ AJUSTES DE INTEGRAÇÃO COM O KADENCE ══════════════════════════════════
   A home é full-width: o Kadence precisa entregar a página sem caixa, sem
   padding lateral e sem título. O caminho certo é marcar, no editor da página,
   Layout = "Largura total" + "Conteúdo sem caixa" + título oculto (passo 5 do
   arquivo 363). Quando isso está marcado, o Kadence põe a classe
   `content-width-fullwidth` no body e a regra abaixo NÃO precisa entrar.

   Ela fica só como rede de segurança, para o caso de a marcação não pegar.

   POR QUE NÃO É MAIS 50vw (corrigido em 08/09/2026):
   `50vw` inclui a largura da barra de rolagem. No Windows, com barra visível,
   a página estourava alguns pixels para cada lado e aparecia rolagem
   horizontal — justamente o item da sua lista de conferência. O Kadence
   publica a variável --scrollbar-offset com essa largura; descontando metade
   dela de cada lado, a conta fecha. O fórum usa a mesma variável no cabeçalho.
   ══════════════════════════════════════════════════════════════════════════ */
body:not(.content-width-fullwidth) .ibgp-home {
  margin-left:  calc(50% - 50vw + (var(--scrollbar-offset, 0px) / 2));
  margin-right: calc(50% - 50vw + (var(--scrollbar-offset, 0px) / 2));
}
.ibgp-home > section:first-child { margin-top: 0; }

/* Cinto de segurança: nada nesta home pode gerar rolagem horizontal. */
.ibgp-home { overflow-x: clip; }

/* ═══ CORREÇÃO DO CABEÇALHO DO KADENCE ═════════════════════════════════════
   Acrescentado em 08/09/2026 (tema 1.2.0). Ver o arquivo 367, passo 4.3.

   O PROBLEMA: o Kadence monta a linha do cabeçalho como uma grade de duas
   colunas `auto auto`. A coluna da esquerda (logo) absorve o espaço livre e
   sobra para o menu apenas a largura que ele ocupa DEPOIS de quebrar — o que
   confirma a quebra. É circular: encolher o menu encolhe a coluna junto, e o
   menu quebra de novo. Medido no site: a coluna entregava 563,844px para um
   menu de 564px — faltavam 0,156px.

   A CORREÇÃO: proibir a quebra. Sem ela, a largura natural do menu passa a ser
   a largura real dos 8 itens, e a grade entrega essa largura.

   Testado em 1030, 1100, 1366, 1475 e 1920px: uma linha só, sem rolagem
   horizontal em nenhuma delas.

   POR QUE ISTO TOCA EM CLASSE DO KADENCE, contrariando a regra da casa:
   não há como resolver pelo Personalizar — é comportamento da grade do tema.
   Por isso o escopo é o mais estreito possível: só a lista do menu, só dentro
   da seção direita do cabeçalho, e só acima de 1025px, que é onde o cabeçalho
   de computador existe. Abaixo disso vale o cabeçalho móvel, que não é tocado.
   ══════════════════════════════════════════════════════════════════════════ */
@media (min-width: 1025px) {
  .site-header-main-section-right .header-navigation ul.menu { flex-wrap: nowrap; }
  .site-header-main-section-right .header-navigation ul.menu > li > a { white-space: nowrap; }
}

/* ═══ PÁGINA /CURSOS — HUB DE CATEGORIAS ═══════════════════════════════════
   Acrescentado em 10/09/2026 (tema 1.5.0). Conteúdo no arquivo 374.

   Reproduz a página `ibgp.com.br/cursos`: faixa azul com busca, menu lateral
   de categorias e grade de cartões. Medidas e cores conferidas no site.

   TUDO escopado sob .ibgp-cursos-hub — nenhuma classe do Kadence é tocada e
   nada vaza para outras páginas. Prefixo `ich-` nos elementos internos, para
   não colidir com o `.ibgp-home` nem com o `.ibgp-lista` da Etapa 2.
   ══════════════════════════════════════════════════════════════════════════ */
.ibgp-cursos-hub{
  --ich-azul:       #295398;  /* texto das categorias e títulos dos cartões */
  --ich-azul-ativo: #4e70a9;  /* categoria selecionada                      */
  --ich-azul-link:  #476caa;  /* link "Detalhes"                            */
  --ich-borda:      #dfe4ec;
  --ich-cinza:      #f4f6f9;
  --ich-apoio:      #5a6b85;  /* textos secundários                         */
  --ich-data:       #3c7a3c;  /* verde da linha de data, como no site atual  */

  font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  color: #252525;
  line-height: 1.55;
}
.ibgp-cursos-hub *,
.ibgp-cursos-hub *::before,
.ibgp-cursos-hub *::after{ box-sizing: border-box; }

.ibgp-cursos-hub .ich-sr{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ─── faixa azul ─────────────────────────────────────────────────────────
   O azul NÃO está na imagem: `bg.jpg` é cinza quase branca. O site aplica um
   véu `rgba(49,94,171,.81)` por cima, num ::before. Sem o véu a faixa sai
   cinza. Conferido no CSS do Joomla em 10/09/2026.
   ──────────────────────────────────────────────────────────────────────── */
.ibgp-cursos-hub .ich-faixa{
  position:relative;padding:44px 24px;
  background:#f7f8fa url("/wp-content/uploads/2026/09/curso-bg.jpg") repeat fixed center top;
}
.ibgp-cursos-hub .ich-faixa::before{
  content:"";position:absolute;inset:0;background:rgba(49,94,171,.81);
}
.ibgp-cursos-hub .ich-faixa-inner{
  position:relative;z-index:1;max-width:1180px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
}
.ibgp-cursos-hub .ich-faixa h1{
  color:#fff;font-size:26px;font-weight:400;margin:0;line-height:1.3;
  text-shadow:0 1px 2px rgba(0,0,0,.15);
}
.ibgp-cursos-hub .ich-busca{ display:flex;gap:8px;flex-wrap:wrap; }
.ibgp-cursos-hub .ich-busca input{
  border:0;border-radius:4px;padding:9px 14px;font-size:.85rem;min-width:230px;
  font-family:inherit;background:#fff;color:#555;   /* branco, como no site atual (2.7.0) */
}
.ibgp-cursos-hub .ich-busca button{
  border:0;border-radius:4px;padding:9px 16px;background:#1e5bb8;color:#fff;
  cursor:pointer;font-size:.85rem;font-family:inherit;
}
.ibgp-cursos-hub .ich-busca button:hover{ background:#17499a; }
.ibgp-cursos-hub .ich-busca .ich-limpar{ background:#7d9ed6; }
.ibgp-cursos-hub .ich-busca .ich-limpar:hover{ background:#6a8dc9; }

/* ─── miolo: menu lateral + grade ────────────────────────────────────────── */
.ibgp-cursos-hub .ich-conteudo{
  max-width:1180px;margin:0 auto;padding:30px 24px 50px;
  display:grid;grid-template-columns:330px 1fr;gap:34px;align-items:start;
}
.ibgp-cursos-hub .ich-lateral{ position:sticky;top:112px; }
.ibgp-cursos-hub .ich-cat{
  display:block;
  border:1px solid var(--ich-borda);border-radius:4px;padding:10px 14px;margin-bottom:8px;
  color:var(--ich-azul);text-decoration:none;font-size:15px;background:#fff;
  transition:background .15s,color .15s,border-color .15s;
}
.ibgp-cursos-hub .ich-cat:hover{ background:var(--ich-cinza); }
.ibgp-cursos-hub .ich-cat.ich-ativa{
  background:var(--ich-azul-ativo);color:#fff;border-color:var(--ich-azul-ativo);
}

.ibgp-cursos-hub .ich-grade{ display:grid;grid-template-columns:repeat(2,1fr);gap:22px; }

/* ─── cartão de curso ────────────────────────────────────────────────────── */
.ibgp-cursos-hub .ich-cartao{
  border:1px solid var(--ich-borda);border-radius:4px;overflow:hidden;
  display:flex;flex-direction:column;background:#fff;
}
/* Obrigatório: o atributo `hidden` do navegador PERDE para o display do autor.
   Sem esta linha, filtrar por categoria não esconde cartão nenhum. */
.ibgp-cursos-hub .ich-cartao[hidden]{ display:none !important; }
.ibgp-cursos-hub .ich-vazio[hidden]{ display:none !important; }

.ibgp-cursos-hub .ich-cartao-img{ display:block;line-height:0;background:#e9edf3; }
.ibgp-cursos-hub .ich-cartao-img img{ width:100%;height:170px;object-fit:cover;display:block; }
.ibgp-cursos-hub .ich-cartao-corpo{ padding:0 14px 12px;flex:1; }
.ibgp-cursos-hub .ich-cartao-data{
  display:flex;align-items:center;gap:7px;font-size:.74rem;color:var(--ich-data);
  background:#fff;border:1px solid var(--ich-borda);border-radius:4px;
  padding:6px 10px;margin:-16px 0 12px;position:relative;width:fit-content;
}
.ibgp-cursos-hub .ich-cartao-data svg{
  width:13px;height:13px;fill:none;stroke:var(--ich-data);stroke-width:2;flex-shrink:0;
}
.ibgp-cursos-hub .ich-cartao h3{ font-size:.95rem;font-weight:400;line-height:1.4;margin:0 0 8px; }
.ibgp-cursos-hub .ich-cartao h3 a{ color:var(--ich-azul);text-decoration:none; }
.ibgp-cursos-hub .ich-cartao h3 a:hover{ text-decoration:underline; }
.ibgp-cursos-hub .ich-cartao-res{ font-size:.8rem;color:var(--ich-apoio);margin:0; }
.ibgp-cursos-hub .ich-cartao-rodape{
  display:flex;justify-content:space-between;align-items:center;
  border-top:1px solid var(--ich-borda);padding:10px 14px;font-size:.82rem;background:#fbfcfe;
}
.ibgp-cursos-hub .ich-modal{ color:var(--ich-apoio); }
.ibgp-cursos-hub .ich-detalhes{ color:var(--ich-azul-link);text-decoration:none; }
.ibgp-cursos-hub .ich-detalhes:hover{ text-decoration:underline; }

.ibgp-cursos-hub .ich-vazio{
  padding:40px;text-align:center;color:var(--ich-apoio);
  border:1px dashed var(--ich-borda);border-radius:6px;
}

/* ─── responsivo ─────────────────────────────────────────────────────────── */
@media (max-width:900px){
  .ibgp-cursos-hub .ich-conteudo{ grid-template-columns:1fr; }
  .ibgp-cursos-hub .ich-grade{ grid-template-columns:1fr; }
  .ibgp-cursos-hub .ich-lateral{ position:static; }
  .ibgp-cursos-hub .ich-faixa{ background-attachment:scroll; }
  .ibgp-cursos-hub .ich-faixa h1{ font-size:21px; }
}
@media (prefers-reduced-motion: reduce){
  .ibgp-cursos-hub *{ transition-duration:.01ms !important; }
}

/* ═══ CABEÇALHO MÓVEL — GATILHO SAINDO DA TELA ═════════════════════════════
   Acrescentado em 10/09/2026 (tema 1.5.2).

   O PROBLEMA: no celular o hambúrguer simplesmente não aparecia. Medido no
   site: o botão existe, é visível e tem 37×31 — mas fica em x=397 numa tela de
   375px, ou seja, fora dela.

   A CAUSA é a MESMA do menu do computador: a linha do cabeçalho é uma grade
   `auto auto`, e a coluna da esquerda (logo) reivindica mais espaço do que a
   linha tem — 373px dentro de um espaço de 327px. O que sobra para a direita é
   empurrado para fora.

   A CORREÇÃO: tornar a coluna da esquerda encolhível (`minmax(0,1fr)`) e a da
   direita do tamanho do conteúdo. O logo continua com os mesmos 200px.

   Testado em 320, 375 e 768px: o gatilho fica dentro da tela e não aparece
   rolagem horizontal em nenhuma delas.

   Escopo mínimo: só o cabeçalho móvel, só abaixo de 1025px. O cabeçalho de
   computador não é tocado — ele já tem a correção própria, mais acima.
   ══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  #mobile-header .site-header-row-has-sides {
    grid-template-columns: minmax(0, 1fr) auto;
  }
}

/* ═══ GAVETA DO MENU MÓVEL — FUNDO BRANCO EM TODAS AS LARGURAS ════════════
   Acrescentado em 10/09/2026 (tema 1.5.3). Diagnóstico no arquivo 377.

   O PROBLEMA: o padrão do Kadence pinta a gaveta de quase-preto —
   `.popup-drawer .drawer-inner{background:rgb(9,12,16)}`, SEM limite de largura.
   O controle "Popup Background" do Personalizar é responsivo (computador,
   tablet, celular) e, preenchido só no celular, gera a cor dentro de
   `@media (max-width:767px)`. Mas o cabeçalho móvel do Kadence vai até 1024px:
   sobra a faixa de 768 a 1024 com o preto do tema. Um celular DEITADO reporta
   ~900px — e era ali que a gaveta aparecia escura.

   POR QUE EM CSS E NÃO NO PERSONALIZAR: três tentativas de acertar pelos ícones
   de aparelho não pegaram, e o site continuava servindo só a regra de 767px.
   Aqui a cor fica num lugar só, previsível, e vale em qualquer largura.

   SE QUISER OUTRA COR NO FUTURO: troque nesta linha, não no Personalizar —
   esta regra tem especificidade maior e venceria a de lá.

   A especificidade (1,1,0) já supera a do tema (0,2,0), então não precisa de
   !important.
   ══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  #mobile-drawer .drawer-inner { background: #ffffff; }
}

/* ═══ PÁGINA /CERTIDOES ════════════════════════════════════════════════════
   Acrescentado em 10/09/2026 (tema 1.6.0). Conteúdo no arquivo 378.

   Reproduz a página `ibgp.com.br/certidoes`: faixa navy em degradê, título em
   Georgia e os cartões das certidões. Valores conferidos no site.

   Escopado sob .ibgp-certidoes; prefixo `ibgp-cert-` nos elementos internos.
   ══════════════════════════════════════════════════════════════════════════ */
.ibgp-certidoes{
  font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.ibgp-certidoes *,
.ibgp-certidoes *::before,
.ibgp-certidoes *::after{ box-sizing: border-box; }

/* CORRIGIDO 10/09/2026: o degradê do site é SEMITRANSPARENTE e assenta sobre
   BRANCO — no site atual a seção não tem cor de fundo e a página é branca.
   Eu havia posto #072a64 atrás, o que escurecia tudo. Sobre branco o degradê
   resulta em #1d3d72 → #2a5b75; sobre o navy resultava bem mais escuro. */
.ibgp-certidoes .ibgp-cert-faixa{
  background-color: #fff;
  background-image: linear-gradient(45deg, rgba(7,42,100,.91) 45%, rgba(7,64,94,.86) 65%);
  padding: 50px 24px 70px;
}
.ibgp-certidoes .ibgp-cert-inner{ max-width: 1180px; margin: 0 auto; }

.ibgp-certidoes h1{
  font-family: Georgia, "Times New Roman", serif;
  font-size: 50px; font-weight: 400; color: #fff;
  text-align: center; margin: 0 0 46px; line-height: 1.2;
}

.ibgp-certidoes .ibgp-cert-grade{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px 24px;
}

.ibgp-certidoes .ibgp-cert-item{
  display: flex; flex-direction: column; align-items: center;
  text-align: center; color: #fff; gap: 6px;
}
.ibgp-certidoes .ibgp-cert-icone{ display: block; margin-bottom: 10px; }
/* CORRIGIDO 10/09/2026: o ícone do site é SÓLIDO (Font Awesome fa-file-alt,
   36px, branco). Eu tinha desenhado um contorno fino, visivelmente diferente.
   Agora é preenchido, com as linhas do documento vazadas por fill-rule. */
.ibgp-certidoes .ibgp-cert-icone svg{
  width: 36px; height: 36px; display: block;
  fill: #fff; stroke: none;
}
/* Título da certidão: Georgia, negrito, 16px — como no original */
.ibgp-certidoes .ibgp-cert-item strong{
  font-family: Georgia, "Times New Roman", serif;
  font-size: 16px; font-weight: 700; color: #fffefe; line-height: 1.4;
}
.ibgp-certidoes .ibgp-cert-validade{ font-size: 15px; color: #fff; }
.ibgp-certidoes .ibgp-cert-links{ font-size: 15px; color: #fff; }
.ibgp-certidoes .ibgp-cert-links a{
  color: #fff; text-decoration: none; font-weight: 700;
  border-bottom: 1px solid rgba(255,255,255,.45);
  transition: border-color .18s, color .18s;
}
.ibgp-certidoes .ibgp-cert-links a:hover{ color: #bcd4f5; border-bottom-color: #bcd4f5; }

@media (max-width: 900px){
  .ibgp-certidoes .ibgp-cert-grade{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ibgp-certidoes h1{ font-size: 38px; }
}
@media (max-width: 560px){
  .ibgp-certidoes .ibgp-cert-grade{ grid-template-columns: 1fr; }
  .ibgp-certidoes h1{ font-size: 32px; }
}

/* ═══ FAIXA BRANCA ANTES DO RODAPÉ ════════════════════════════════════════
   Acrescentado em 10/09/2026 (tema 1.6.1).

   A linha do rodapé do Kadence (`.site-top-footer-inner-wrap`) tem 30px de
   respiro em cima e embaixo, e esse respiro aparece com a cor da página. Em
   páginas de fundo claro passa despercebido; na de Certidões, que termina em
   navy, virou uma faixa branca entre o conteúdo e o rodapé.

   O `.ibgp-rodape` já traz o próprio respiro (44px 32px 20px), então esses
   30px são sobra em qualquer página.

   Existe a opção equivalente no Personalizar (Rodapé → Footer Top → Padding),
   mas depois do episódio da gaveta prefiro deixar resolvido num lugar só.
   ══════════════════════════════════════════════════════════════════════════ */
.site-top-footer-inner-wrap{ padding-top: 0; padding-bottom: 0; }

/* ═══ PÁGINA /SOBRE ════════════════════════════════════════════════════════
   Acrescentado em 11/09/2026 (tema 1.7.0). Conteúdo no arquivo 384.

   Reproduz `ibgp.com.br/sobre`: 8 seções do Page Builder, com as mesmas
   cores, fundos, respiros e proporções de coluna — valores conferidos no
   site em 11/09/2026 (viewport 1366px).

   A grade segue a do Joomla: contêiner de 1140px com 15px de respiro, linha
   com margem -15px e colunas com 15px de cada lado. Assim as larguras batem
   ao pixel (coluna de 25% = 285px, conteúdo 255px).

   Escopado sob .ibgp-sobre; prefixo `ibs-` nos elementos internos.
   ══════════════════════════════════════════════════════════════════════════ */
.ibgp-sobre{
  font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px; line-height: 1.5; color: #252525;
}
.ibgp-sobre *,
.ibgp-sobre *::before,
.ibgp-sobre *::after{ box-sizing: border-box; }

/* Grade (espelha .sppb-row-container / .sppb-row / .sppb-row-column) */
.ibgp-sobre .ibs-inner{ max-width: 1140px; margin: 0 auto; padding: 0 15px; }
.ibgp-sobre .ibs-row{ display: flex; flex-wrap: wrap; margin: 0 -15px; }
.ibgp-sobre .ibs-col{ padding: 0 15px; flex: 0 0 100%; max-width: 100%; min-width: 0; }
.ibgp-sobre .ibs-col-1 { flex-basis: 8.333333%;  max-width: 8.333333%;  }
.ibgp-sobre .ibs-col-3 { flex-basis: 25%;        max-width: 25%;        }
.ibgp-sobre .ibs-col-4 { flex-basis: 33.333333%; max-width: 33.333333%; }
.ibgp-sobre .ibs-col-8 { flex-basis: 66.666667%; max-width: 66.666667%; }
.ibgp-sobre .ibs-col-10{ flex-basis: 83.333333%; max-width: 83.333333%; }

/* Texto e títulos — zera o que o Kadence põe por padrão.
   CORRIGIDO 11/09/2026 (1.7.1): o Kadence tem uma regra de especificidade (0,2,0)
   que zera o margin-bottom do ÚLTIMO parágrafo de cada bloco, e ela vence a
   minha `.ibgp-sobre p` por vir depois. Resultado no site: seções 8–16px
   mais baixas que o original. Com `.ibs-inner` no seletor (0,2,1) a minha vence
   — testado ao vivo. Mesma razão para `p.ibs-slogan` abaixo. */
.ibgp-sobre .ibs-inner p{ margin: 0 0 16px; }
.ibgp-sobre .ibs-justo{ text-align: justify; }
.ibgp-sobre img{ max-width: 100%; height: auto; display: inline-block; vertical-align: middle; }
.ibgp-sobre h1, .ibgp-sobre h2, .ibgp-sobre h3{
  font-family: inherit; margin: 0; padding: 0; letter-spacing: normal; text-transform: none;
}
.ibgp-sobre .ibs-titulo{         /* "SOBRE O IBGP" (h1) e "NOSSOS SERVIÇOS" (h2) */
  font-size: 28px; line-height: 1.2; font-weight: 700; color: #244ca2; text-align: center;
}
.ibgp-sobre .ibs-titulo-sub{     /* "1. Promover a Educação" etc. */
  font-size: 20px; line-height: 1.2; font-weight: 500; color: #244ca2; text-align: left;
}
.ibgp-sobre .ibs-espaco{ height: 40px; }
.ibgp-sobre a{ color: #0345bf; text-decoration: none; }
.ibgp-sobre a:hover{ text-decoration: underline; }

/* 1 · Herói: fundo azul fixo (parallax), logo branco, slogan azul-claro */
.ibgp-sobre .ibs-heroi{
  background: url("/wp-content/uploads/2026/09/fundo-ibgp.jpg") 0 0 / cover no-repeat fixed;
  padding: 6px 0 4px; text-align: center;
}
.ibgp-sobre .ibs-heroi img{ width: 441px; }
.ibgp-sobre p.ibs-slogan{
  font-size: 20px; line-height: 1.2; font-weight: 500; color: #b2d9ed;
  margin: 0 0 8px; text-align: center;
}

/* 2 · Sobre o IBGP */
.ibgp-sobre .ibs-sobre{ padding: 61px 0 3px; }

/* 3 · Quatro pilares */
.ibgp-sobre .ibs-pilares{ padding: 35px 0 45px; }

/* 4 e 5 · Serviços — fundo claro ondulado, também fixo */
.ibgp-sobre .ibs-servicos-titulo,
.ibgp-sobre .ibs-servicos{
  background: url("/wp-content/uploads/2026/09/fundo-branco-ibgp.jpg") 0 0 / cover no-repeat fixed;
}
.ibgp-sobre .ibs-servicos-titulo{ padding: 75px 0 43px; }
.ibgp-sobre .ibs-servicos{ padding: 0; }
.ibgp-sobre .ibs-servico{ text-align: center; }
.ibgp-sobre .ibs-servico > a{ display: block; }
.ibgp-sobre .ibs-servico img{ width: 100%; }

/* 6 · Dez anos */
.ibgp-sobre .ibs-dezanos{ padding: 75px 0; }
.ibgp-sobre .ibs-dezanos-lado{ text-align: center; }
.ibgp-sobre .ibs-dezanos-lado img{ width: 100%; }
.ibgp-sobre .ibs-botao{
  display: inline-block; margin-top: 16px;
  background: #3366ff; color: #fff; font-size: 14px; line-height: 21px;
  padding: 4px 8px; border-radius: 0; text-decoration: none;
  transition: background-color .2s;
}
.ibgp-sobre .ibs-botao:hover{ background: #0037dd; color: #fff; text-decoration: none; }

/* 7 · Clientes — título com o respiro das duas quebras de linha do original */
.ibgp-sobre .ibs-clientes{ padding: 0; }
.ibgp-sobre .ibs-clientes-titulo{
  font-size: 28px; line-height: 1.2; font-weight: 500; color: #020202;
  text-align: center; padding-top: 67px; margin: 0 0 50px;
}
.ibgp-sobre .ibs-carrossel{ overflow: hidden; }
.ibgp-sobre .ibs-trilho{ display: flex; }
.ibgp-sobre .ibs-trilho.ibs-anima{ transition: transform 2s ease; }
.ibgp-sobre .ibs-cliente{
  flex: 0 0 auto; padding: 15px 0;
  display: flex; align-items: center; justify-content: center;
}
.ibgp-sobre .ibs-cliente a{ display: flex; justify-content: center; }
.ibgp-sobre .ibs-cliente img{ height: 120px; width: auto; max-width: none; }
/* Sem JavaScript (ou com "reduzir movimento"): grade estática, nada some */
.ibgp-sobre .ibs-carrossel:not(.ibs-pronto) .ibs-trilho{
  flex-wrap: wrap; justify-content: center; gap: 0 30px;
}

/* 8 · Biblioteca */
.ibgp-sobre .ibs-biblioteca{ background: #0280c5; padding: 30px 0; text-align: center; }
.ibgp-sobre .ibs-biblioteca h2{
  font-size: 28px; line-height: 1.2; font-weight: 500; color: #fff; text-align: center;
}
.ibgp-sobre .ibs-biblioteca img{ width: 949px; }

/* Celular: as colunas empilham (o Joomla faz o mesmo em 767px) */
@media (max-width: 767px){
  .ibgp-sobre .ibs-col-1, .ibgp-sobre .ibs-col-3, .ibgp-sobre .ibs-col-4,
  .ibgp-sobre .ibs-col-8, .ibgp-sobre .ibs-col-10{ flex-basis: 100%; max-width: 100%; }
  .ibgp-sobre .ibs-vazio{ display: none; }
  .ibgp-sobre .ibs-servico{ max-width: 315px; margin: 0 auto; }
  .ibgp-sobre .ibs-dezanos-lado{ margin-top: 16px; }
  .ibgp-sobre .ibs-clientes-titulo{ padding-top: 40px; margin-bottom: 30px; }
}
@media (prefers-reduced-motion: reduce){
  .ibgp-sobre .ibs-trilho.ibs-anima{ transition: none; }
}

/* ═══ PÁGINA /IBGP-10-ANOS ═════════════════════════════════════════════════
   Acrescentado em 11/09/2026 (tema 1.8.0). Conteúdo no arquivo 389.

   Reproduz `ibgp.com.br/ibgp-10-anos`: banner sobre navy, título e textos em
   #485e88 / 27px, tabela dos premiados com cabeçalho navy, carrossel de
   apoiadores com pontinhos, foto da diretoria, e três blocos de evento com
   carrossel de fotos à esquerda e texto + botões azuis à direita.
   Valores medidos no site em 11/09/2026 (viewport 1366px).

   Grade igual à do Joomla (1140px + 15px; linha -15px; colunas 50% com 15px).
   Os parágrafos de texto usam `.ib10-texto` no seletor (especificidade 0,2,1)
   pela lição da página /sobre: o Kadence zera a margem do último parágrafo.

   Escopado sob .ibgp-dezanos; prefixo `ib10-`.
   ══════════════════════════════════════════════════════════════════════════ */
.ibgp-dezanos{
  font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px; line-height: 1.5; color: #252525;
}
.ibgp-dezanos *,
.ibgp-dezanos *::before,
.ibgp-dezanos *::after{ box-sizing: border-box; }

.ibgp-dezanos .ib10-inner{ max-width: 1140px; margin: 0 auto; padding: 0 15px; }
.ibgp-dezanos .ib10-row{ display: flex; flex-wrap: wrap; margin: 0 -15px; }
.ibgp-dezanos .ib10-col{ flex: 0 0 50%; max-width: 50%; padding: 0 15px; min-width: 0; }
.ibgp-dezanos .ib10-secao{ padding: 30px 0; }
.ibgp-dezanos img{ max-width: 100%; height: auto; }
.ibgp-dezanos a{ color: #0345bf; }

/* Títulos: no original são h2/h4 com o mesmo estilo; aqui h1/h2, mesmo visual */
.ibgp-dezanos h1, .ibgp-dezanos h2, .ibgp-dezanos h3{
  font-family: inherit; margin: 0; padding: 0; letter-spacing: normal; text-transform: none;
}
.ibgp-dezanos .ib10-titulo{
  font-size: 27px; line-height: 27px; font-weight: 600; color: #485e88;
  text-align: left; padding-bottom: 3px; margin: 0 0 30px;
}
.ibgp-dezanos .ib10-titulo.ib10-mb40{ margin-bottom: 40px; }
.ibgp-dezanos .ib10-titulo.ib10-mb10{ margin-bottom: 10px; }
.ibgp-dezanos .ib10-diretoria{          /* "Diretoria do IBGP": h3 sem estilo próprio no original */
  font-size: 28px; line-height: 1.2; font-weight: 500; color: #252525; text-align: left;
}

/* Blocos de texto (o Page Builder põe 20px em cima, à direita e embaixo) */
.ibgp-dezanos .ib10-texto{ margin: 20px 20px 20px 0; }
.ibgp-dezanos .ib10-texto p{ margin: 0 0 16px; }
.ibgp-dezanos .ib10-texto div{ margin: 0; }
.ibgp-dezanos .ib10-justo{ text-align: justify; }
.ibgp-dezanos .ib10-lado{ margin: 0 0 30px; }   /* texto ao lado das fotos: sem os 20px */
.ibgp-dezanos .ib10-semmargem{ margin: 0; }     /* "Resultado alcançado": sem margem nenhuma */

/* 1 · Banner */
.ibgp-dezanos .ib10-banner{ background: #021d42; text-align: center; margin-bottom: 30px; }
.ibgp-dezanos .ib10-banner img{ display: block; width: 100%; }

/* 2 · Tabela dos premiados */
.ibgp-dezanos .ib10-tabela{ margin: 0 0 20px; overflow-x: auto; }
.ibgp-dezanos .ib10-tabela table{
  width: 100%; border-collapse: collapse; font-size: 16px; line-height: 24px; margin: 0;
}
.ibgp-dezanos .ib10-tabela th,
.ibgp-dezanos .ib10-tabela td{
  border: 1px solid #000; padding: 10px; text-align: left; vertical-align: middle;
}
.ibgp-dezanos .ib10-tabela thead tr{ background: #000080; color: #fff; }
.ibgp-dezanos .ib10-tabela th{ font-weight: 700; color: #fff; }
.ibgp-dezanos .ib10-tabela td a{ color: #0345bf; }

/* 2 · Apoiadores: 190×159 alinhados à esquerda, pontinhos 30px abaixo,
   sobrepostos ao topo da foto seguinte — é assim no original */
.ibgp-dezanos .ib10-apoio{ margin: 0; }
.ibgp-dezanos .ib10-carrossel{ position: relative; }
.ibgp-dezanos .ib10-janela{ overflow: hidden; }
.ibgp-dezanos .ib10-trilho{ display: flex; }
.ibgp-dezanos .ib10-trilho.ib10-anima{ transition: transform 2s ease; }
.ibgp-dezanos .ib10-apoiador{ flex: 0 0 auto; padding: 15px 0; text-align: left; }
.ibgp-dezanos .ib10-apoiador img{ display: block; width: 190px; height: 159px; max-width: 100%; }
.ibgp-dezanos .ib10-carrossel:not(.ib10-pronto) .ib10-trilho{ flex-wrap: wrap; gap: 0 12px; }
.ibgp-dezanos .ib10-pontos{
  list-style: none; margin: 0; padding: 0; height: 20px; line-height: 20px;
  position: absolute; left: 0; right: 0; bottom: -30px; text-align: left; z-index: 1;
}
.ibgp-dezanos .ib10-pontos li{
  display: inline-block; width: 10px; height: 10px; margin: 0 5px;
  border-radius: 50%; background: rgba(0,0,0,.4); vertical-align: middle;
}
.ibgp-dezanos .ib10-pontos li.ib10-ativo{ background: #0080fe; }

/* 2 · Foto da diretoria */
.ibgp-dezanos .ib10-foto{ text-align: center; margin: 0 0 30px; }
.ibgp-dezanos .ib10-foto img{ width: 100%; }

/* 3 e 4 · Carrossel de fotos e botões */
.ibgp-dezanos .ib10-fotos{ position: relative; overflow: hidden; margin: 0 0 30px; transition: height .6s ease-in-out; }
.ibgp-dezanos .ib10-fotos-trilho{ display: flex; align-items: flex-start; }
.ibgp-dezanos .ib10-fotos-trilho.ib10-anima{ transition: transform .6s ease-in-out; }
.ibgp-dezanos .ib10-slide{ flex: 0 0 100%; max-width: 100%; }
.ibgp-dezanos .ib10-slide img{ display: block; width: 100%; }
.ibgp-dezanos .ib10-botao{
  display: block; width: 100%; margin: 0 0 30px;
  background: #337ab7; color: #fff; font-size: 16px; line-height: 20px;
  padding: 8px 12px; border: 1px solid transparent; border-radius: 4px;
  text-align: center; text-decoration: none; transition: background-color .2s;
}
.ibgp-dezanos .ib10-botao:hover{ background: #00e66e; color: #fff; text-decoration: none; }

/* Tablet e celular: colunas empilham em 991px, como o Joomla */
@media (max-width: 991px){
  .ibgp-dezanos .ib10-col{ flex-basis: 100%; max-width: 100%; }
}
@media (max-width: 767px){
  .ibgp-dezanos .ib10-titulo{ font-size: 24px; line-height: 1.2; }
  .ibgp-dezanos .ib10-texto{ margin-right: 0; }
}
@media (prefers-reduced-motion: reduce){
  .ibgp-dezanos .ib10-trilho.ib10-anima,
  .ibgp-dezanos .ib10-fotos-trilho.ib10-anima{ transition: none; }
}

/* ═══ PÁGINA /PROGRAMACAO ══════════════════════════════════════════════════
   Acrescentado em 11/09/2026 (tema 1.9.0). Conteúdo no arquivo 393.

   Reproduz `ibgp.com.br/programacao`: cabeçalho com fundo escuro (back-top),
   foto à esquerda, "Programação" branco, <h1> amarelo e frase de descontos;
   depois a tabela dos 48 cursos, listrada, com a coluna de data em azul e o
   botão navy arredondado. Valores medidos no site em 11/09/2026 (1366px).

   O cabeçalho e a tabela ocupam a LARGURA TOTAL (no Joomla o contêiner desta
   página não tem limite de 1140px); a tabela tem 50px de respiro lateral.

   Escopado sob .ibgp-programacao; prefixo `ibp-`.
   ══════════════════════════════════════════════════════════════════════════ */
.ibgp-programacao{
  font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px; line-height: 1.5; color: #212529;
}
.ibgp-programacao *,
.ibgp-programacao *::before,
.ibgp-programacao *::after{ box-sizing: border-box; }
.ibgp-programacao img{ max-width: 100%; height: auto; }
.ibgp-programacao h1, .ibgp-programacao p{ font-family: inherit; margin: 0; padding: 0; }

/* 1 · Cabeçalho: grade 4/7/1 do Page Builder (33,3% · 58,3% · 8,3%) */
.ibgp-programacao .ibp-topo{
  background: url("/wp-content/uploads/2026/09/back-top.webp") 50% 100% / cover no-repeat;
  padding: 0 0 10px;
}
.ibgp-programacao .ibp-topo-row{ display: flex; flex-wrap: wrap; margin: 0 -15px; }
.ibgp-programacao .ibp-topo-foto{ flex: 0 0 33.333333%; max-width: 33.333333%; padding: 0 15px; }
.ibgp-programacao .ibp-topo-foto img{ display: block; width: 100%; }
.ibgp-programacao .ibp-topo-texto{
  flex: 0 0 58.333333%; max-width: 58.333333%; padding: 0 15px;
  display: flex; align-items: center; text-align: center;
}
.ibgp-programacao .ibp-topo-texto > div{ width: 100%; }
.ibgp-programacao .ibp-topo-vazio{ flex: 0 0 8.333333%; max-width: 8.333333%; }
.ibgp-programacao .ibp-sobretitulo{
  font-size: 30px; line-height: 36px; font-weight: 300; color: #fff; margin: 0 0 10px;
}
.ibgp-programacao .ibp-titulo{
  font-size: 44px; line-height: 1.2; font-weight: 600; color: #ffd221;
  text-align: center; letter-spacing: normal; text-transform: none; margin: 0 0 30px;
}
.ibgp-programacao .ibp-descontos{
  font-size: 18px; line-height: 22px; font-weight: 200; color: #fff; padding-bottom: 2px;
}

/* 2 · Tabela (Bootstrap .table + regras do template, medidas no site) */
.ibgp-programacao .ibp-lista{ padding: 50px 0; }
.ibgp-programacao .ibp-tabela{ padding: 0 50px; overflow-x: auto; }
.ibgp-programacao .ibp-tabela table{
  width: 100%; border-collapse: collapse; margin: 0 0 16px;
  font-size: 16px; line-height: 24px; color: #212529;
}
.ibgp-programacao .ibp-tabela th,
.ibgp-programacao .ibp-tabela td{
  padding: 8px; border: 0; border-bottom: 1px solid #dee2e6; text-align: left;
}
.ibgp-programacao .ibp-tabela th{
  vertical-align: bottom; text-transform: uppercase; color: #111e49;
  font-size: 14px; line-height: 1.5; font-weight: 700;
}
.ibgp-programacao .ibp-tabela th.ibp-th-curso{ font-size: 18px; }
.ibgp-programacao .ibp-tabela td{ vertical-align: middle; }
.ibgp-programacao .ibp-tabela tbody tr:nth-child(odd) td{ background-color: #f8fbff; }
/* larguras medidas no original: 516 · 194 · 155 · 258 · 129 de 1251px (41,2 · 15,5 · 12,4 ·
   20,6 · 10,3%). 2.0.2 (13/09): a Open Sans é mais larga que a Segoe UI e a data quebrava
   em duas linhas; a coluna de data ganhou 1,4 ponto (22%), tirado da coluna do curso. O
   nowrap da 2.0.1 foi retirado: deixava a tabela rebalancear e espremia os títulos. */
.ibgp-programacao .ibp-tabela table{ table-layout: fixed; }
.ibgp-programacao .ibp-tabela th:nth-child(1){ width: 39.8%; }
.ibgp-programacao .ibp-tabela th:nth-child(2){ width: 15.5%; }
.ibgp-programacao .ibp-tabela th:nth-child(3){ width: 12.4%; }
.ibgp-programacao .ibp-tabela th:nth-child(4){ width: 22%; }
.ibgp-programacao .ibp-tabela th:nth-child(5){ width: 10.3%; }
.ibgp-programacao .ibp-curso a{ color: #1e7ed8; text-decoration: none; }
.ibgp-programacao .ibp-curso a:hover{ text-decoration: underline; }
.ibgp-programacao .ibp-icone{
  display: inline-block; width: 14px; height: 16px; fill: #212529;
  margin-right: 6px; vertical-align: -2px;
}
/* Coluna de data: precisa vencer a regra das linhas listradas (mesma especificidade, por isso vem depois e com tbody tr) */
.ibgp-programacao .ibp-tabela tbody tr td.ibp-data{ background-color: #1e7ed8; color: #fff; }
.ibgp-programacao .ibp-botao{
  display: inline-block; white-space: nowrap;
  background: #0e1e4e; border: 1px solid #09226c; border-radius: 25px; color: #fff;
  font-size: 13px; line-height: 1.5; padding: 5px 13px 5px 32px;   /* 32 = 13 + os 19px do ícone que não renderiza no original */
  text-decoration: none; transition: all 1s ease-out;
}
.ibgp-programacao .ibp-botao:hover{ background: #183384; border-color: #0e1e4e; color: #fff; text-decoration: none; }
.ibgp-programacao .ibp-oculto{
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}

/* Celular: a foto some e o texto ocupa tudo (sppb-hidden-sm/xs no original) */
@media (max-width: 767px){
  .ibgp-programacao .ibp-topo-foto, .ibgp-programacao .ibp-topo-vazio{ display: none; }
  .ibgp-programacao .ibp-topo-texto{ flex-basis: 100%; max-width: 100%; padding: 40px 15px; }
  .ibgp-programacao .ibp-titulo{ font-size: 32px; }
  .ibgp-programacao .ibp-tabela{ padding: 0 15px; }
}

/* ═══ PÁGINA DE CURSO (modelo do plugin IBGP — Cursos) ═════════════════════
   Acrescentado em 12/09/2026 (tema 2.0.0). HTML gerado pelo plugin 1.2.0.

   Reproduz `ibgp.com.br/cursos/{area}/{curso}` (medido em 12/09/2026, 1366px):
   destaque com fundo claro (bg.jpg), título roxo-azulado #545d94, duas
   pastilhas navy #2f4262 (carga e instrutor), logo "IBGP On-line" e a
   ilustração; faixa "Apresentação" navy; "Mais informações" com a capa ao
   lado; "Conteúdo Programático" em cartões de 3 colunas sobre cinza #eae8e8;
   faixa de informações navy-escuro #212f5b; formas de pagamento; e os dois
   botões flutuantes (rosa #e91e63 e verde #15a727).

   As três imagens do modelo (bg, logo, ilustração) ficam na Mídia do site:
   /wp-content/uploads/2026/09/curso-bg.jpg, curso-online_logo.png, curso-mb.png
   (regra da independência do Joomla, arquivo 397).

   Escopado sob .ibgp-curso; prefixo `ibc-`.
   ══════════════════════════════════════════════════════════════════════════ */
.ibgp-curso{
  font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px; line-height: 1.5; color: #252525;
}
.ibgp-curso *,
.ibgp-curso *::before,
.ibgp-curso *::after{ box-sizing: border-box; }
.ibgp-curso .ibc-inner{ max-width: 1180px; margin: 0 auto; padding: 0 15px; }
.ibgp-curso img{ max-width: 100%; height: auto; }
.ibgp-curso h1, .ibgp-curso h2, .ibgp-curso h3, .ibgp-curso h4{
  font-family: inherit; margin: 0; padding: 0; letter-spacing: normal; text-transform: none;
}
.ibgp-curso .ibc-ico{ width: 1em; height: 1em; vertical-align: -0.15em; }

/* 1 · Destaque */
.ibgp-curso .ibc-destaque{
  background: url("/wp-content/uploads/2026/09/curso-bg.jpg") 0 0 no-repeat;
}
.ibgp-curso .ibc-destaque-row{ display: flex; align-items: flex-start; }
.ibgp-curso .ibc-dados{ flex: 0 0 66.666667%; max-width: 66.666667%; padding: 40px 0 20px; }
.ibgp-curso .ibc-ilustra{ flex: 0 0 33.333333%; max-width: 33.333333%; padding: 0 10px; }
.ibgp-curso .ibc-ilustra img{ display: block; width: 100%; }
.ibgp-curso .ibc-titulo{
  font-size: 22px; line-height: 28px; font-weight: 400; text-transform: uppercase;
  color: #545d94; text-align: center; margin: 0 0 8px;
}
.ibgp-curso .ibc-subtitulo{ text-align: center; color: #545d94; margin: 0 0 8px; }
.ibgp-curso .ibc-pastilhas{ display: flex; gap: 10px; margin: 20px 0; }
.ibgp-curso .ibc-pastilha{
  flex: 1 1 0; max-width: 363px; background: #2f4262; color: #fff;
  border-radius: 10px; padding: 10px; text-align: center;
}
.ibgp-curso .ibc-p-cab{ font-size: 15px; line-height: 22.5px; color: #abb6ca; margin: 0; }
.ibgp-curso .ibc-p-cab .ibc-ico{ color: #fff; margin-right: 4px; }
.ibgp-curso .ibc-p-val{ font-size: 16px; line-height: 24px; color: #fff; margin: 0; }
.ibgp-curso .ibc-p-prof{
  display: inline-block; background: #4b6186; color: #fff; border-radius: 4px;
  padding: 0 5px; margin: 2px 3px; font-size: 16px; line-height: 24px; text-decoration: none;
}
.ibgp-curso .ibc-p-prof:hover{ background: #5d7499; color: #fff; text-decoration: none; }
.ibgp-curso .ibc-online{ display: block; width: 301px; height: auto; }

/* 2 · Apresentação */
.ibgp-curso .ibc-apresentacao{ background: #2f4262; color: #fff; padding: 20px 0; }
.ibgp-curso .ibc-ap-row{ display: flex; align-items: center; }
.ibgp-curso .ibc-apresentacao h2{ font-size: 32px; line-height: 1.2; font-weight: 500; color: #fff; margin: 0 20px 0 0; flex: 0 0 auto; }
.ibgp-curso .ibc-ap-texto{ flex: 1 1 auto; padding-left: 20px; border-left: 1px solid rgba(255,255,255,.35); }
.ibgp-curso .ibc-ap-texto p{ font-size: 15px; line-height: 22.5px; color: #fff; text-align: justify; margin: 0 0 16px; }
.ibgp-curso .ibc-ap-botoes{ display: flex; flex-wrap: wrap; gap: 10px; }
.ibgp-curso .ibc-btn-prof{
  display: inline-block; background: #198754; border: 1px solid #198754; color: #fff;
  padding: 16px; border-radius: 6px; font-size: 16px; line-height: 24px; text-decoration: none;
  transition: background-color .15s;
}
.ibgp-curso .ibc-btn-prof:hover{ background: #146c43; border-color: #13653f; color: #fff; text-decoration: none; }

/* 3 · Mais informações (capa + corpo do editor) */
.ibgp-curso .ibc-mais-row{ display: flex; align-items: center; padding-top: 40px; padding-bottom: 40px; }
.ibgp-curso .ibc-capa{ flex: 0 0 41.666667%; max-width: 41.666667%; padding: 0 6px 0 35px; }
.ibgp-curso .ibc-capa img{ display: block; width: 100%; }
.ibgp-curso .ibc-mais-texto{ flex: 0 0 58.333333%; max-width: 58.333333%; padding-left: 10px; }
.ibgp-curso .ibc-mais-texto p{ font-size: 16px; line-height: 24px; margin: 0 0 20px; }
.ibgp-curso .ibc-mais-texto ul{ margin: 0 0 16px; padding-left: 32px; }
.ibgp-curso .ibc-mais-texto li{ font-size: 16px; line-height: 24px; }
.ibgp-curso .ibc-mais-texto h2{ font-size: 32px; line-height: 1.2; font-weight: 500; color: #252525; margin: 0 0 8px; }
.ibgp-curso .ibc-mais-texto h3{ font-size: 28px; line-height: 1.2; font-weight: 500; margin: 0 0 8px; }
.ibgp-curso .ibc-mais-texto h4{ font-size: 24px; line-height: 1.2; font-weight: 500; margin: 0 0 8px; }
.ibgp-curso .ibc-mais-texto hr{ border: 0; border-top: 1px solid #252525; opacity: .25; margin: 16px 0; }

/* 4 · Conteúdo programático */
.ibgp-curso .ibc-programatico{ background: #eae8e8; padding: 30px 0 60px; }
.ibgp-curso .ibc-programatico h2{
  font-size: 32px; line-height: 1.2; font-weight: 400; text-transform: uppercase;
  color: #2f4262; text-align: center; margin: 30px 0;
}
.ibgp-curso .ibc-modulos{ display: flex; flex-wrap: wrap; margin: 0 -10px; }
.ibgp-curso .ibc-modulo{ flex: 0 0 33.333333%; max-width: 33.333333%; padding: 0 10px; margin-bottom: 18px; }
.ibgp-curso .ibc-modulo-caixa{ border: 1px solid #d0cfcf; height: 100%; }
.ibgp-curso .ibc-modulo-caixa h3{
  font-size: 14px; line-height: 16.8px; font-weight: 600; text-transform: uppercase;
  color: #2f4262; text-align: center; padding: 10px 30px 10px 10px; margin: 0;
}
.ibgp-curso .ibc-modulo-itens{ padding: 20px; }
.ibgp-curso .ibc-modulo-itens ul{ list-style: none; margin: 0; padding: 0; }
.ibgp-curso .ibc-modulo-itens li{
  font-size: 13px; line-height: 19.5px; font-weight: 600; color: #333; text-align: justify; margin: 0; padding: 5px 0;
}
.ibgp-curso .ibc-modulo-itens li::before{ content: "\2192"; color: #2f4262; font-size: 12px; margin-right: 5px; }

/* 5 · Informações */
.ibgp-curso .ibc-info{ background: #212f5b; color: #fff; padding: 10px; }
.ibgp-curso .ibc-info-row{ display: flex; justify-content: center; }
.ibgp-curso .ibc-info-col{ flex: 0 0 50%; max-width: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.ibgp-curso .ibc-info-item{ display: flex; align-items: center; padding: 0 10px; min-height: 64px; margin-bottom: 10px; }
.ibgp-curso .ibc-info-col-dir .ibc-info-item{ min-height: 40px; }
.ibgp-curso .ibc-info-ico{
  flex: 0 0 40px; width: 40px; height: 40px; border-radius: 100px; background: #eae8e8; color: #212f5b;
  display: inline-flex; align-items: center; justify-content: center; margin-right: 10px; font-size: 18px; text-decoration: none;
}
.ibgp-curso .ibc-info-h{ font-size: 16px; line-height: 24px; font-weight: 300; color: #d6dbe8; }
.ibgp-curso .ibc-info-c{ font-size: 16px; line-height: 24px; color: #fff; }
.ibgp-curso .ibc-info-col:first-child .ibc-info-h,
.ibgp-curso .ibc-info-col:first-child .ibc-info-c{ text-align: center; }
.ibgp-curso .ibc-info-h a{ color: #fff; text-decoration: none; font-weight: 300; }
.ibgp-curso .ibc-info-h a:hover{ text-decoration: underline; }

/* 6 · Formas de pagamento */
.ibgp-curso .ibc-pagamento{ padding: 40px 0 150px; }   /* 40 da seção + 110 que o Joomla deixa antes do rodapé */
.ibgp-curso .ibc-pagamento h2{ font-size: 32px; line-height: 1.2; font-weight: 400; color: #212f5b; text-align: center; margin: 0 0 10px; }
.ibgp-curso .ibc-pag-row{ display: flex; }
.ibgp-curso .ibc-pag-lista{ flex: 0 0 50%; max-width: 50%; list-style: none; margin: 0; padding: 0 0 0 10px; display: grid; grid-template-columns: max-content; justify-content: center; align-content: start; }   /* lista centrada como bloco, texto à esquerda — como no original */
.ibgp-curso .ibc-pag-lista li{ font-size: 15px; line-height: 22.5px; font-weight: 600; margin: 5px 0; }
.ibgp-curso .ibc-pag-lista .ibc-ico{ color: #485a94; font-size: 15px; margin-right: 5px; }
.ibgp-curso .ibc-pag-razao{ flex: 0 0 50%; max-width: 50%; padding-left: 10px; font-size: 15px; line-height: 22.5px; margin: 0 0 16px; display: grid; justify-content: center; align-content: start; }

/* 7 · Botões flutuantes */
.ibgp-curso .ibc-flutuantes{
  position: fixed; right: 20px; bottom: 10px; z-index: 50;
  display: flex; flex-direction: column; align-items: flex-end; gap: 14px;
}
.ibgp-curso .ibc-flu{
  display: inline-flex; align-items: center; color: #fff; font-size: 13px; font-weight: 600;
  padding: 13px 20px; text-decoration: none; box-shadow: 0 2px 8px rgba(0,0,0,.2);
}
.ibgp-curso .ibc-flu .ibc-ico{ font-size: 16px; margin-left: 8px; }
.ibgp-curso .ibc-flu-gratis{ background: #e91e63; border-radius: 60px 10px; }
.ibgp-curso .ibc-flu-proposta{ background: #15a727; border-radius: 6px; }
.ibgp-curso .ibc-flu:hover{ color: #fff; text-decoration: none; filter: brightness(1.08); }

/* Tablet e celular */
@media (max-width: 991px){
  .ibgp-curso .ibc-modulo{ flex-basis: 50%; max-width: 50%; }
}
@media (max-width: 767px){
  .ibgp-curso .ibc-destaque-row, .ibgp-curso .ibc-ap-row, .ibgp-curso .ibc-mais-row,
  .ibgp-curso .ibc-info-row, .ibgp-curso .ibc-pag-row{ flex-direction: column; }
  .ibgp-curso .ibc-dados, .ibgp-curso .ibc-ilustra, .ibgp-curso .ibc-capa, .ibgp-curso .ibc-mais-texto,
  .ibgp-curso .ibc-info-col, .ibgp-curso .ibc-pag-lista, .ibgp-curso .ibc-pag-razao,
  .ibgp-curso .ibc-modulo{ flex-basis: 100%; max-width: 100%; }
  .ibgp-curso .ibc-ilustra{ display: none; }
  .ibgp-curso .ibc-pastilhas{ flex-direction: column; }
  .ibgp-curso .ibc-pastilha{ max-width: none; }
  .ibgp-curso .ibc-apresentacao h2{ margin: 0 0 12px; }
  .ibgp-curso .ibc-ap-texto{ padding-left: 0; border-left: 0; }
  .ibgp-curso .ibc-capa{ padding: 0 0 20px; }
  .ibgp-curso .ibc-mais-texto{ padding-left: 0; }
  .ibgp-curso .ibc-flutuantes{ right: 10px; }
}


/* ═══ PÁGINA /CONTATO ══════════════════════════════════════════════════════
   Escrito em 13/09/2026 (2.2.0) e refeito em 14/09/2026 (2.3.0) para o
   Fluent Forms. Conteúdo no arquivo 416.

   Reproduz `ibgp.com.br/contato`: uma seção de 75px de respiro com duas
   colunas de 50% — à esquerda o formulário (Nome, E-mail, Telefone, Mensagem,
   reCAPTCHA e o botão verde "Enviar"), à direita o mapa do Google 600×300.
   A página do site atual não tem título visível nem texto de apoio.

   Medidas tiradas do site em 13/09/2026 (1366px): coluna 570 · campo 540×45 ·
   rótulo 16/24 · borda #b8cae1 raio 6 · 20px entre campos · caixa de mensagem
   de 2 linhas (62px) · botão #198754 · 40px depois do formulário.

   O formulário vem do Fluent Forms, com o shortcode chamado assim:
       [fluentform id="N" css_classes="ibct-ff" theme="ffs_inherit_theme"]
   O `theme="ffs_inherit_theme"` faz o plugin NÃO aplicar o visual dele —
   o desenho fica todo aqui. As regras levam `.fluentform` junto para vencer
   o CSS do plugin mesmo se alguém tirar esse parâmetro.

   Escopado sob .ibgp-contato; prefixo `ibct-`.
   ══════════════════════════════════════════════════════════════════════════ */
.ibgp-contato{
  font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px; line-height: 1.5; color: #252525;
}
.ibgp-contato *, .ibgp-contato *::before, .ibgp-contato *::after{ box-sizing: border-box; }

/* H1 só para leitores de tela e para o Google — a página atual não tem título
   visível. Para deixá-lo visível, ver o item "H1" no passo a passo. */
.ibgp-contato .ibct-sr{
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* 1 · Grade do Page Builder: seção 75px, contêiner 1140, duas colunas de 50% */
/* O recorte fica na seção (largura total), não na coluna: assim o mapa de 600px
   passa por cima da margem direita como no original, e em telas estreitas ele é
   cortado sem criar rolagem lateral — é o que o Joomla faz. (2.3.1) */
.ibgp-contato .ibct-secao{ padding: 75px 0; overflow: hidden; }
.ibgp-contato .ibct-container{ max-width: 1140px; margin: 0 auto; padding: 0 15px; }
.ibgp-contato .ibct-row{ display: flex; flex-wrap: wrap; margin: 0 -15px; }
.ibgp-contato .ibct-col{ flex: 0 0 50%; max-width: 50%; padding: 0 15px; }

/* Rede de proteção: se o shortcode for colado como "código em linha", o editor
   embrulha a saída num <code> e tudo vira fonte monoespaçada (foi o que
   aconteceu na /programacao). Isto desfaz o estrago. */
.ibgp-contato code{
  font: inherit; color: inherit; background: none; padding: 0; border: 0; display: block;
}

/* 2 · Mapa — 600×300 fixos, como no original. Quando a coluna fica menor que
   600px o mapa é recortado (é o que o site atual faz; sem o overflow aqui,
   apareceria uma barra de rolagem horizontal na página inteira). */
.ibgp-contato .ibct-mapa{ margin-bottom: 40px; }
/* o `max-width:none` é obrigatório: o WordPress/Kadence impõe
   `embed, iframe, object { max-width: 100% }`, que espremia o mapa para 540px */
.ibgp-contato .ibct-mapa iframe{
  display: block; width: 600px; max-width: none; height: 300px; border: 0;
}

/* 3 · Formulário (Fluent Forms) */
.ibgp-contato .fluentform{
  --fluentform-danger: #dd0000;
  --fluentform-border-color: #b8cae1;
  --fluentform-border-radius: 6px;
  --fluentform-secondary: #212529;
  /* 40px: o respiro que o bloco do Page Builder deixa depois do formulário.
     Os 20px finais do original já vêm da margem do último grupo, que no site
     entra na altura do formulário (medido ao vivo em 14/09 — 2.3.1). */
  margin: 0 0 40px;
}
.ibgp-contato .fluentform form{ margin: 0; }
.ibgp-contato .fluentform .ff-el-group{ margin-bottom: 20px; }
.ibgp-contato .fluentform .ff-el-input--label{
  display: block; float: none; margin: 0; padding: 0; text-align: left;
}
.ibgp-contato .fluentform .ff-el-input--label label{
  display: inline; margin: 0; padding: 0;
  font-family: inherit; font-size: 16px; font-weight: 400; line-height: 24px;
  color: #252525; text-transform: none; letter-spacing: 0;
}
.ibgp-contato .fluentform .ff-el-input--label.ff-el-is-required.asterisk-right label:after,
.ibgp-contato .fluentform .ff-el-input--label.ff-el-is-required.asterisk-left label:before{
  content: "*"; color: #dd0000; margin: 0 0 0 2px;
}
.ibgp-contato .fluentform .ff-el-input--label.ff-el-is-required.asterisk-left label:before{
  margin: 0 2px 0 0;
}
.ibgp-contato .fluentform .ff-el-input--content{ margin: 0; }
.ibgp-contato .fluentform .ff-el-form-control{
  display: block; width: 100%; max-width: 100%;
  height: 45px; margin: 0; padding: 6px 12px;
  font-family: inherit; font-size: 16px; line-height: 24px;
  color: #212529; background-color: #fff;
  border: 1px solid #b8cae1; border-radius: 6px;
  box-shadow: none;
}
.ibgp-contato .fluentform textarea.ff-el-form-control{
  height: 62px; min-height: 62px; resize: vertical;
}
/* Foco: o site atual não marca o campo em foco (o Joomla apaga o contorno do
   navegador). Aqui fica uma marca discreta — é a única diferença de propósito
   em relação ao original; para tirá-la, apagar as três linhas abaixo. */
.ibgp-contato .fluentform .ff-el-form-control:focus{
  border-color: #86b7fe; box-shadow: 0 0 0 3px rgba(13,110,253,.18); outline: 0;
}
/* Mensagens de erro e de sucesso na mesma família e tamanho da página */
.ibgp-contato .fluentform .error.text-danger{
  font-family: inherit; font-size: 14px; line-height: 21px; color: #dd0000; margin-top: 4px;
}
.ibgp-contato .fluentform .ff-message-success{
  font-family: inherit; font-size: 16px; line-height: 24px;
  border: 1px solid #ced4da; border-radius: 6px; padding: 15px; margin-top: 0;
}
/* Botão — a classe repetida sobe a especificidade acima do CSS que o próprio
   plugin gera para botões com estilo personalizado. */
.ibgp-contato .fluentform .ff-btn-submit.ff-btn-submit{
  display: inline-block; width: auto; min-width: 0; height: auto;
  margin: 0; padding: 6px 12px;
  font-family: inherit; font-size: 16px; font-weight: 400; line-height: 24px;
  color: #fff; background: #198754;
  border: 1px solid #198754; border-radius: 6px;
  text-align: center; text-transform: none; box-shadow: none; opacity: 1;
  transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out;
}
.ibgp-contato .fluentform .ff-btn-submit.ff-btn-submit:hover,
.ibgp-contato .fluentform .ff-btn-submit.ff-btn-submit:focus{
  color: #fff; background: #157347; border-color: #146c43; opacity: 1;
}

/* 4 · Celular — as duas colunas passam a 100%, como no original (≤767px) */
@media (max-width: 767px){
  .ibgp-contato .ibct-col{ flex-basis: 100%; max-width: 100%; }
}

/* ═══ JANELA "QUERO UMA PROPOSTA" (páginas de curso) ═══════════════════════
   Acrescentado em 14/09/2026 (tema 2.4.0). Marcação no plugin IBGP — Cursos
   1.5.0 (seção 13); o formulário dentro vem do Fluent Forms.

   Reproduz a janela do site atual (medida em 14/09/2026, 1366px): fundo preto
   a 80%, caixa branca de 700px a 20px do topo, cantos de 8px, sombra
   0 0 10px preto; cabeçalho com o nome do curso (24px/500) e risco cinza
   embaixo; "x" no canto superior direito; formulário com respiro de 10/20,
   linhas de duas colunas com 30px entre elas, campo 315×45, rótulo 16/24 com
   5px até o campo, 20px entre linhas e botão verde "Solicitar proposta".

   Escopado sob .ibgp-proposta; prefixo `ibpr-` (o `ibp-` já é da /programacao).
   ══════════════════════════════════════════════════════════════════════════ */

/* O atributo hidden só esconde se nenhuma regra nossa impuser display */
.ibgp-proposta[hidden]{ display: none; }

.ibgp-proposta{
  position: fixed; inset: 0; z-index: 99999;
  padding: 20px;
  overflow-y: auto;
  font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px; line-height: 1.5; color: #252525;
}
.ibgp-proposta *, .ibgp-proposta *::before, .ibgp-proposta *::after{ box-sizing: border-box; }
.ibgp-proposta .ibpr-fundo{
  position: fixed; inset: 0; background: rgba(0,0,0,.8);
}
.ibgp-proposta .ibpr-caixa{
  position: relative; z-index: 1;
  width: 700px; max-width: 100%;
  margin: 0 auto;
  padding: 15px 0;
  background: #fff; border-radius: 8px;
  box-shadow: 0 0 10px 0 #000;
  animation: ibpr-entra .3s ease-out;
}
@keyframes ibpr-entra{
  from{ opacity: 0; transform: translateY(-20px); }
  to{ opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce){
  .ibgp-proposta .ibpr-caixa{ animation: none; }
}
.ibgp-proposta .ibpr-cabecalho{
  padding: 10px 20px; border-bottom: 1px solid #ddd;
}
.ibgp-proposta .ibpr-titulo{
  margin: 0 0 8px; padding: 0;
  font-size: 24px; font-weight: 500; line-height: 28.8px; color: #252525;
}
/* "x" de fechar: dois riscos de 18×1px cruzados, como no original */
.ibgp-proposta .ibpr-fechar{
  position: absolute; top: 0; right: 0;
  width: 30px; height: 30px; margin: 10px; padding: 0;
  background: none; border: 0; cursor: pointer;
}
.ibgp-proposta .ibpr-fechar::before,
.ibgp-proposta .ibpr-fechar::after{
  content: ""; position: absolute; top: 50%; left: 50%;
  width: 18px; height: 1px; margin: -1px 0 0 -9px;
  background: #4a4a4a;
}
.ibgp-proposta .ibpr-fechar::before{ transform: rotate(45deg); }
.ibgp-proposta .ibpr-fechar::after{ transform: rotate(-45deg); }
.ibgp-proposta .ibpr-fechar:hover::before,
.ibgp-proposta .ibpr-fechar:hover::after{ background: #000; }
.ibgp-proposta .ibpr-corpo{ padding: 10px 20px; }

/* Formulário do Fluent Forms dentro da janela (mesmas medidas do /contato) */
.ibgp-proposta .fluentform{
  --fluentform-danger: #dd0000;
  --fluentform-border-color: #b8cae1;
  --fluentform-border-radius: 6px;
  --fluentform-secondary: #212529;
  margin: 0;
}
.ibgp-proposta .fluentform form{ margin: 0; }
.ibgp-proposta .fluentform .ff-el-group{ margin-bottom: 20px; }
.ibgp-proposta .fluentform .ff-t-container{ gap: 30px; }   /* 315 + 30 + 315 = 660, como no original */
.ibgp-proposta .fluentform .ff-el-input--label{
  display: block; float: none; margin: 0 0 5px; padding: 0; text-align: left;
}
.ibgp-proposta .fluentform .ff-el-input--label label{
  display: inline; margin: 0; padding: 0;
  font-family: inherit; font-size: 16px; font-weight: 400; line-height: 24px;
  color: #252525; text-transform: none; letter-spacing: 0;
}
.ibgp-proposta .fluentform .ff-el-input--label.ff-el-is-required.asterisk-right label:after{
  content: "*"; color: #dd0000; margin: 0 0 0 2px;
}
.ibgp-proposta .fluentform .ff-el-input--content{ margin: 0; }
.ibgp-proposta .fluentform .ff-el-form-control{
  display: block; width: 100%; max-width: 100%;
  height: 45px; margin: 0; padding: 6px 12px;
  font-family: inherit; font-size: 16px; line-height: 24px;
  color: #212529; background-color: #fff;
  border: 1px solid #b8cae1; border-radius: 6px;
  box-shadow: none;
}
.ibgp-proposta .fluentform .ff-el-form-control:focus{
  border-color: #86b7fe; box-shadow: 0 0 0 3px rgba(13,110,253,.18); outline: 0;
}
.ibgp-proposta .fluentform .error.text-danger{
  font-family: inherit; font-size: 14px; line-height: 21px; color: #dd0000; margin-top: 4px;
}
.ibgp-proposta .fluentform .ff-message-success{
  font-family: inherit; font-size: 16px; line-height: 24px;
  border: 1px solid #ced4da; border-radius: 6px; padding: 15px; margin: 0;
}
.ibgp-proposta .fluentform .ff-btn-submit.ff-btn-submit{
  display: inline-block; width: auto; min-width: 0; height: auto;
  margin: 0; padding: 6px 12px;
  font-family: inherit; font-size: 16px; font-weight: 400; line-height: 24px;
  color: #fff; background: #198754;
  border: 1px solid #198754; border-radius: 6px;
  text-align: center; text-transform: none; box-shadow: none; opacity: 1;
  transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out;
}
.ibgp-proposta .fluentform .ff-btn-submit.ff-btn-submit:hover,
.ibgp-proposta .fluentform .ff-btn-submit.ff-btn-submit:focus{
  color: #fff; background: #157347; border-color: #146c43; opacity: 1;
}

/* O botão flutuante virou <button>: tira a aparência de botão do navegador */
.ibgp-curso button.ibc-flu{
  border: 0; font-family: inherit; cursor: pointer; text-align: left;
}

/* Celular: a caixa ocupa a largura e as duas colunas viram uma */
@media (max-width: 767px){
  .ibgp-proposta{ padding: 10px; }
  .ibgp-proposta .ibpr-titulo{ font-size: 20px; line-height: 24px; }
  .ibgp-proposta .fluentform .ff-t-container{ display: block; }
  .ibgp-proposta .fluentform .ff-t-cell + .ff-t-cell{ margin-top: 20px; }
}

/* ═══ PÁGINA /MENTORING ════════════════════════════════════════════════════
   Acrescentado em 14/09/2026 (tema 2.5.0). Conteúdo no arquivo 428.

   Reproduz `ibgp.com.br/mentoring` (medido em 14/09/2026, 1366px):
   1 · herói com foto de fundo (cover), logo branco e H1 branco 30/40;
   2 · "Sobre" em fundo #e6e7e9, texto 17/28 #161c31, botão navy do folder,
       e a linha "Mentoria In Company" (ícone à esquerda, texto à direita);
   3 · mentores: título azul centrado e quatro fotos com o nome embaixo,
       mais o botão azul-claro para os professores no fórum;
   4 · formulário: logo azul à esquerda, faixa navy com o título e o
       formulário (Nome / E-mail + Telefone / Enviar).

   Grade do Page Builder: contêiner 1140 (padding 15), linha -15px, colunas
   em duodécimos. Abaixo de 992px todas as colunas viram 100%, como no original.

   Escopado sob .ibgp-mentoring; prefixo `ibm-`.
   ══════════════════════════════════════════════════════════════════════════ */
.ibgp-mentoring{
  font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px; line-height: 1.5; color: #252525;
}
.ibgp-mentoring *, .ibgp-mentoring *::before, .ibgp-mentoring *::after{ box-sizing: border-box; }
.ibgp-mentoring img{ max-width: 100%; height: auto; }

/* grade */
.ibgp-mentoring .ibm-container{ max-width: 1140px; margin: 0 auto; padding: 0 15px; }
.ibgp-mentoring .ibm-row{ display: flex; flex-wrap: wrap; margin: 0 -15px; }
.ibgp-mentoring .ibm-col{ padding: 0 15px; }
.ibgp-mentoring .ibm-c1 { flex: 0 0 8.3333%;  max-width: 8.3333%; }
.ibgp-mentoring .ibm-c2 { flex: 0 0 16.6666%; max-width: 16.6666%; }
.ibgp-mentoring .ibm-c3 { flex: 0 0 25%;      max-width: 25%; }
.ibgp-mentoring .ibm-c4 { flex: 0 0 33.3333%; max-width: 33.3333%; }
.ibgp-mentoring .ibm-c7 { flex: 0 0 58.3333%; max-width: 58.3333%; }
.ibgp-mentoring .ibm-c10{ flex: 0 0 83.3333%; max-width: 83.3333%; }
.ibgp-mentoring .ibm-c12{ flex: 0 0 100%;     max-width: 100%; }
/* a coluna do H1 no herói tem largura personalizada no Page Builder (431 de 1140) */
.ibgp-mentoring .ibm-c38{ flex: 0 0 37.8%;    max-width: 37.8%; }
.ibgp-mentoring .ibm-centro{ text-align: center; }
/* espaçadores invisíveis do original (addons "divider" sem linha) */
.ibgp-mentoring .ibm-espaco-97{ height: 97px; }
.ibgp-mentoring .ibm-espaco-56{ height: 56px; }

/* 1 · Herói */
.ibgp-mentoring .ibm-heroi{
  padding: 150px 0;
  background: url("/wp-content/uploads/2026/09/mentoring-fundo.jpg") 50% 50% / cover no-repeat;
}
.ibgp-mentoring .ibm-heroi-logo img{ display: block; width: 350px; margin-bottom: 30px; }
.ibgp-mentoring .ibm-heroi h1{
  margin: 0 0 20px; padding: 0;
  font-family: inherit; font-size: 30px; font-weight: 400; line-height: 40px;
  color: #fff; text-align: left; text-transform: none;
}

/* 2 · Sobre */
.ibgp-mentoring .ibm-sobre{ background: #e6e7e9; padding: 50px 0; }
.ibgp-mentoring .ibm-h2{
  margin: 5px 0 20px; padding: 0;
  font-family: inherit; font-size: 32px; font-weight: 500; line-height: 38.4px;
  color: #161c31; text-align: left; text-transform: none;
}
.ibgp-mentoring .ibm-h2 i{ font-style: italic; }
.ibgp-mentoring .ibm-texto p{
  margin: 0 0 16px; padding: 0;
  font-family: inherit; font-size: 17px; line-height: 28px; color: #161c31;
}
.ibgp-mentoring .ibm-texto p:last-child{ margin-bottom: 0; }
.ibgp-mentoring .ibm-justificado{ text-align: justify; }
.ibgp-mentoring .ibm-botao-linha{ margin: 20px 0 0; }

/* botões — o site atual usa ícones do Font Awesome 4 num Font Awesome 6, e
   eles NÃO aparecem; sobra o espaço de 16px antes do texto. Reproduzido. */
.ibgp-mentoring .ibm-btn{
  display: inline-block; padding: 8px 12px;
  font-family: inherit; font-size: 16px; font-weight: 300; line-height: 20px;
  color: #fff; text-decoration: none; border: 1px solid transparent; border-radius: 4px;
  transition: background-color .15s ease-in-out;
}
.ibgp-mentoring .ibm-btn:hover{ color: #fff; text-decoration: none; filter: brightness(1.08); }
.ibgp-mentoring .ibm-btn .ibm-ico{ display: inline-block; width: 16px; }
.ibgp-mentoring .ibm-btn-navy{ background: #161c31; }
.ibgp-mentoring .ibm-btn-azul{ background: #9cb1f4; }

/* linha "Mentoria In Company" */
.ibgp-mentoring .ibm-icone{ text-align: center; padding-top: 14px; }   /* o original desce o ícone 14px */
.ibgp-mentoring .ibm-icone img{ display: block; width: 183px; margin: 0 auto; }   /* o tema deixa as imagens em bloco: sem o auto, o ícone ia para a esquerda (2.5.1) */

/* 3 · Mentores */
.ibgp-mentoring .ibm-mentores{ padding: 50px 0 30px; }
.ibgp-mentoring .ibm-h2-mentores{
  margin: 0; padding: 0;
  font-family: inherit; font-size: 19px; font-weight: 500; line-height: 22.8px;
  color: #5369b9; text-align: center; text-transform: none;
}
.ibgp-mentoring .ibm-mentor{ text-align: center; margin-bottom: 10px; }
.ibgp-mentoring .ibm-mentor img{ display: inline-block; width: 100%; max-width: 380px; height: auto; }
.ibgp-mentoring .ibm-mentor h3{
  margin: 10px 0 8px; padding: 0;
  font-family: inherit; font-size: 16px; font-weight: 500; line-height: 22px;
  color: #4a4a4a; text-align: center; text-transform: none;
}

/* 4 · Formulário */
.ibgp-mentoring .ibm-formulario{ background: #e6e7e9; padding: 50px 0 10px; }
.ibgp-mentoring .ibm-logo-azul img{ width: 243px; }
.ibgp-mentoring .ibm-faixa{ background: #131d38; margin-bottom: 30px; }
.ibgp-mentoring .ibm-faixa h3{
  margin: 0; padding: 15px 10px;
  font-family: inherit; font-size: 18px; font-weight: 400; line-height: 21.6px;
  color: #fff; text-align: center; text-transform: none;
}
.ibgp-mentoring .ibm-faixa h3 i{ font-style: italic; }

/* formulário do Fluent Forms — mesmas medidas do /contato */
.ibgp-mentoring .fluentform{
  --fluentform-danger: #dd0000;
  --fluentform-border-color: #b8cae1;
  --fluentform-border-radius: 6px;
  --fluentform-secondary: #212529;
  margin: 0;
}
.ibgp-mentoring .fluentform form{ margin: 0; }
.ibgp-mentoring .fluentform .ff-el-group{ margin-bottom: 20px; }
.ibgp-mentoring .fluentform .ff-t-container{ gap: 30px; }
.ibgp-mentoring .fluentform .ff-el-input--label{
  display: block; float: none; margin: 0; padding: 0; text-align: left;
}
.ibgp-mentoring .fluentform .ff-el-input--label label{
  display: inline; margin: 0; padding: 0;
  font-family: inherit; font-size: 16px; font-weight: 400; line-height: 24px;
  color: #252525; text-transform: none; letter-spacing: 0;
}
.ibgp-mentoring .fluentform .ff-el-input--label.ff-el-is-required.asterisk-right label:after{
  content: "*"; color: #dd0000; margin: 0 0 0 2px;
}
.ibgp-mentoring .fluentform .ff-el-input--content{ margin: 0; }
.ibgp-mentoring .fluentform .ff-el-form-control{
  display: block; width: 100%; max-width: 100%;
  height: 45px; margin: 0; padding: 6px 12px;
  font-family: inherit; font-size: 16px; line-height: 24px;
  color: #212529; background-color: #fff;
  border: 1px solid #b8cae1; border-radius: 6px; box-shadow: none;
}
.ibgp-mentoring .fluentform .ff-el-form-control:focus{
  border-color: #86b7fe; box-shadow: 0 0 0 3px rgba(13,110,253,.18); outline: 0;
}
.ibgp-mentoring .fluentform .error.text-danger{
  font-family: inherit; font-size: 14px; line-height: 21px; color: #dd0000; margin-top: 4px;
}
.ibgp-mentoring .fluentform .ff-message-success{
  font-family: inherit; font-size: 16px; line-height: 24px;
  border: 1px solid #ced4da; border-radius: 6px; padding: 15px; margin: 0;
}
.ibgp-mentoring .fluentform .ff-btn-submit.ff-btn-submit{
  display: inline-block; width: auto; min-width: 0; height: auto;
  margin: 0; padding: 6px 12px;
  font-family: inherit; font-size: 16px; font-weight: 400; line-height: 24px;
  color: #fff; background: #198754;
  border: 1px solid #198754; border-radius: 6px;
  text-align: center; text-transform: none; box-shadow: none; opacity: 1;
  transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out;
}
.ibgp-mentoring .fluentform .ff-btn-submit.ff-btn-submit:hover,
.ibgp-mentoring .fluentform .ff-btn-submit.ff-btn-submit:focus{
  color: #fff; background: #157347; border-color: #146c43; opacity: 1;
}

/* Rede de proteção contra o shortcode colado como "código em linha" */
.ibgp-mentoring code{
  font: inherit; color: inherit; background: none; padding: 0; border: 0; display: block;
}

/* 5 · Tablet e celular — abaixo de 992px todas as colunas ocupam a largura */
@media (max-width: 991px){
  .ibgp-mentoring .ibm-col{ flex-basis: 100%; max-width: 100%; }
  .ibgp-mentoring .ibm-c1{ display: none; }
  .ibgp-mentoring .ibm-c2{ display: none; }
  .ibgp-mentoring .ibm-heroi-logo img{ width: 462px; }
  .ibgp-mentoring .ibm-mentor{ margin-bottom: 30px; }
  .ibgp-mentoring .ibm-espaco-97{ height: 60px; }
}

/* ═══ PÁGINA DE CURSO GRATUITO ═════════════════════════════════════════════
   Acrescentado em 15/09/2026 (tema 2.6.0). Marcação no plugin
   IBGP — Cursos Gratuitos 1.0.0 (seção 5).

   Reproduz a página de curso gratuito do site atual (medida em 15/09/2026,
   1366px): destaque com o mesmo fundo fixo dos cursos pagos, título verde,
   carga e instrutores, logo "gratuito" e a ilustração à direita; faixa verde
   da Apresentação; capa + programação; "Baixe em PDF" em outra faixa verde;
   Cursos Relacionados em cinza; e o botão rosa flutuante "Quero me inscrever".

   Contêiner de 1170 (padding 0 15), como o componente do Joomla.

   Escopado sob .ibgp-gratuito; prefixo `ibg-`.
   ══════════════════════════════════════════════════════════════════════════ */
.ibgp-gratuito{
  font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px; line-height: 1.5; color: #252525;
}
.ibgp-gratuito *, .ibgp-gratuito *::before, .ibgp-gratuito *::after{ box-sizing: border-box; }
.ibgp-gratuito img{ max-width: 100%; height: auto; }
.ibgp-gratuito .ibg-inner{ max-width: 1170px; margin: 0 auto; padding: 0 15px; }
.ibgp-gratuito .ibg-ico{
  width: 1em; height: 1em; vertical-align: -.125em;
  fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}

/* 1 · Destaque */
.ibgp-gratuito .ibg-destaque{
  padding: 0;
  background: url("/wp-content/uploads/2026/09/curso-bg.jpg") 0 0 no-repeat fixed;
}
.ibgp-gratuito .ibg-destaque-row{ display: flex; align-items: flex-start; gap: 10px; }
.ibgp-gratuito .ibg-dados{ flex: 1 1 auto; min-width: 0; padding: 40px 0 20px; text-align: center; }
.ibgp-gratuito .ibg-ilustra{ flex: 0 0 360px; max-width: 360px; }
.ibgp-gratuito .ibg-ilustra img{ display: block; width: 360px; }
.ibgp-gratuito .ibg-destaque h1{
  margin: 0 0 8px; padding: 0;
  font-family: inherit; font-size: 22px; font-weight: 400; line-height: 28px;
  color: #51b981; text-align: center; text-transform: uppercase;
}
/* as duas caixas verdes: fundo #298151, cantos de 10 e respiro de 10 (2.6.1) */
.ibgp-gratuito .ibg-pastilhas{
  display: flex; justify-content: center; align-items: center;   /* alturas próprias, centradas (2.6.2) */
  margin: 20px 0;
}
.ibgp-gratuito .ibg-pastilha{
  flex: 0 1 auto; width: 360px; max-width: 50%;
  margin: 10px; padding: 10px;
  background: #298151; border-radius: 10px; text-align: center;
}
.ibgp-gratuito .ibg-cab{
  margin: 0; font-size: 15px; line-height: 22.5px; color: #f2fdf7;
}
.ibgp-gratuito .ibg-ite{
  margin: 0; font-size: 16px; line-height: 24px; color: #fff;
}
.ibgp-gratuito .ibg-prof{
  display: inline-block; margin: 2px; padding: 0 5px;
  background: #53a97b; color: #fff; border-radius: 4px;
}
.ibgp-gratuito .ibg-logo{ display: block; width: 395px; height: auto; margin: 0; }
/* a imagem da mala direta, quando vem dentro da programação */
.ibgp-gratuito .ibg-prog img{ display: block; max-width: 100%; height: auto; }

/* 2 · Apresentação — faixa verde, título à esquerda e texto à direita */
.ibgp-gratuito .ibg-apresentacao{ background: #298151; padding: 20px 0; color: #fff; }
.ibgp-gratuito .ibg-ap-row{ display: flex; flex-wrap: wrap; align-items: flex-start; }
.ibgp-gratuito .ibg-apresentacao h2{
  flex: 0 0 auto;
  margin: 0 20px 8px 0; padding: 0;
  font-family: inherit; font-size: 32px; font-weight: 500; line-height: 38.4px;
  color: #fff; text-transform: none;
}
.ibgp-gratuito .ibg-ap-texto{ flex: 1 1 0; min-width: 0; padding: 0 10px 0 20px; }
.ibgp-gratuito .ibg-ap-texto p{
  margin: 0 0 16px; font-size: 15px; line-height: 22.5px; color: #fff;
}

/* 3 · Capa + programação */
.ibgp-gratuito .ibg-programa .ibg-inner{ padding: 40px; }
.ibgp-gratuito .ibg-prog-row{ display: flex; flex-wrap: wrap; align-items: flex-start; }
.ibgp-gratuito .ibg-capa{ flex: 0 0 41.6%; max-width: 41.6%; padding: 0 10px; }
.ibgp-gratuito .ibg-capa img{ display: block; width: 100%; height: auto; }
.ibgp-gratuito .ibg-prog{ flex: 0 0 58.4%; max-width: 58.4%; padding: 0 10px; }
.ibgp-gratuito .ibg-prog p{ margin: 0 0 16px; font-size: 16px; line-height: 24px; }
.ibgp-gratuito .ibg-prog h3{ margin: 0 0 12px; font-size: 18px; line-height: 26px; }
.ibgp-gratuito .ibg-prog img{ height: auto; }

/* 4 · Baixe em PDF */
.ibgp-gratuito .ibg-info{ background: #298151; padding: 30px; text-align: center; }
.ibgp-gratuito .ibg-info .ibg-inner{ display: flex; align-items: center; justify-content: center; min-height: 40px; }
.ibgp-gratuito .ibg-info a{
  color: #fff; font-size: 16px; font-weight: 300; text-decoration: none;
}
.ibgp-gratuito .ibg-info a:hover{ color: #fff; text-decoration: underline; }
.ibgp-gratuito .ibg-info .ibg-ico{ margin-right: 6px; }

/* 5 · Cursos relacionados */
.ibgp-gratuito .ibg-relacionados{ background: #f5f5f5; margin-top: 40px; padding: 40px 0; }
.ibgp-gratuito .ibg-relacionados h2{
  margin: 0 0 20px; padding: 0;
  font-family: inherit; font-size: 25.6px; font-weight: 500; line-height: 30.7px;
  color: #252525; text-transform: none;
}
.ibgp-gratuito .ibg-rel-grade{ display: flex; flex-wrap: wrap; margin: 0 -10px; }
.ibgp-gratuito .ibg-rel-item{
  flex: 0 0 33.3333%; max-width: 33.3333%; padding: 0 10px;
  color: #000; text-decoration: none;
}
.ibgp-gratuito .ibg-rel-item:hover{ color: #000; text-decoration: none; }
.ibgp-gratuito .ibg-rel-item img{
  display: block; width: 100%; height: 200px; object-fit: cover;
}
.ibgp-gratuito .ibg-rel-item h3{
  margin: 20px 0 0; font-size: 16px; font-weight: 500; line-height: 26px; color: #000;
}
.ibgp-gratuito .ibg-rel-data{
  margin: 6px 0 0; font-size: 12.8px; line-height: 20px; color: #6c757d;
}

/* 6 · Botão flutuante "Quero me inscrever" */
.ibgp-gratuito .ibg-flutuante{ position: fixed; right: 0; bottom: 10px; z-index: 50; }
.ibgp-gratuito .ibg-flutuante a{
  display: inline-flex; align-items: center; gap: 8px;
  padding: 13px 20px;
  font-size: 13px; font-weight: 600; line-height: 19.5px;
  color: #fff; background: #e91e63; text-decoration: none;
  min-width: 270px; border-radius: 60px 10px;
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
}
.ibgp-gratuito .ibg-flutuante a:hover{ color: #fff; text-decoration: none; filter: brightness(1.08); }

/* 7 · Tablet e celular */
@media (max-width: 991px){
  .ibgp-gratuito .ibg-destaque-row{ flex-direction: column; }
  .ibgp-gratuito .ibg-ilustra{ display: none; }
  .ibgp-gratuito .ibg-pastilha{ flex-basis: 100%; max-width: 100%; padding-right: 0; }
  .ibgp-gratuito .ibg-pastilha + .ibg-pastilha{ margin-top: 16px; }
  .ibgp-gratuito .ibg-logo{ width: 300px; }
  .ibgp-gratuito .ibg-capa, .ibgp-gratuito .ibg-prog{ flex-basis: 100%; max-width: 100%; padding: 0; }
  .ibgp-gratuito .ibg-prog{ margin-top: 24px; }
  .ibgp-gratuito .ibg-rel-item{ flex-basis: 100%; max-width: 100%; margin-bottom: 24px; }
  .ibgp-gratuito .ibg-programa .ibg-inner{ padding: 24px 15px; }
}
@media (max-width: 767px){
  .ibgp-gratuito .ibg-apresentacao h2{ flex-basis: 100%; }
  .ibgp-gratuito .ibg-ap-texto{ padding: 0; }
}

/* ============================================================================
   HUB DOS CURSOS GRATUITOS — ibgp.com/cursos-gratuitos
   Acrescentado em 15/09/2026 (tema 2.7.0).

   O hub dos cursos gratuitos usa a MESMA estrutura do hub dos cursos pagos
   (`.ibgp-cursos-hub`, prefixo `ich-`), porque no site atual os dois são o
   mesmo componente. O que muda entre eles, no site atual, é a COR — azul em
   `/cursos`, verde em `/cursos-gratuitos` — e o cartão, que no gratuito não
   traz resumo. É só isso que este bloco faz: vem depois do bloco do hub azul
   e troca as cores e o cartão, sempre sob `.ibgp-gratuitos-hub`.

   Cores e medidas conferidas em ibgp.com.br/cursos-gratuitos em 15/09/2026:
   véu verde rgba(37,167,98,.8) · categoria ativa #51b981 (borda #42aa72) ·
   texto das categorias #46ae76 · título do cartão #40a871 15px/600 ·
   pastilha branca com texto #437f5d, cantos 20px 0 0 0 · sem resumo ·
   rodapé em duas metades centradas, divididas por um fio #ddd.
   ══════════════════════════════════════════════════════════════════════════ */
.ibgp-gratuitos-hub{
  --ich-azul:       #46ae76;  /* texto das categorias                        */
  --ich-azul-ativo: #51b981;  /* categoria selecionada                       */
  --ich-azul-link:  #476caa;  /* "Detalhes" continua azul, como no original  */
  --ich-borda:      #c7c7c7;
  --ich-cinza:      #f3f9f5;
  --ich-apoio:      #949494;
  --ich-data:       #437f5d;
}

/* ─── faixa verde ────────────────────────────────────────────────────────
   Mesma textura do hub azul (o arquivo é byte a byte o mesmo no site atual),
   já na Mídia do WordPress. Muda só o véu, que aqui é verde.
   ──────────────────────────────────────────────────────────────────────── */
.ibgp-gratuitos-hub .ich-faixa{ padding: 50px 30px; }
.ibgp-gratuitos-hub .ich-faixa::before{ background: rgba(37,167,98,.8); }
.ibgp-gratuitos-hub .ich-faixa-inner{ max-width: 1170px; }
.ibgp-gratuitos-hub .ich-faixa h1{
  flex: 1 1 300px;   /* encolhe e quebra em duas linhas, em vez de empurrar a busca */
  font-size: 30px; font-weight: 100; line-height: 1.1; text-shadow: none;
}
/* No site atual a busca tem 323px: o campo e a lupa na primeira linha, o
   "Limpar" sozinho na segunda, alinhado à direita. */
.ibgp-gratuitos-hub .ich-busca{ flex: 0 0 323px; flex-wrap: wrap; justify-content: flex-end; }

/* ─── menu lateral ───────────────────────────────────────────────────────── */
.ibgp-gratuitos-hub .ich-conteudo{ grid-template-columns: 367px 1fr; gap: 10px; }
/* 15px, e não os 16px do site atual, DE PROPÓSITO: a Open Sans é ~6% mais larga
   que a fonte de sistema que o site atual usa. Com 16px, "Governança de
   Tecnologia da Informação - EAD" pede 354px e só há 345 — o texto quebra em
   duas linhas, o que no original não acontece. Com 15px a linha mede 332px
   contra os 337px do original: mesmo tamanho aparente, botão igual (367x45) e
   nenhuma quebra. Medido em 15/09/2026, a 1366px. */
.ibgp-gratuitos-hub .ich-cat{ font-size: 15px; padding: 10px; margin-bottom: 10px; }
.ibgp-gratuitos-hub .ich-cat.ich-ativa{ border-color: #42aa72; }

/* ─── cartão ─────────────────────────────────────────────────────────────
   No site atual o cartão do curso gratuito é quadrado (sem cantos), a capa
   guarda a proporção 356x225, a pastilha da data flutua sobre a capa, à
   direita, e a caixa branca do título sobe 31px por cima da capa.
   ──────────────────────────────────────────────────────────────────────── */
.ibgp-gratuitos-hub .ich-grade{ gap: 20px; }
.ibgp-gratuitos-hub .ich-cartao{ border-radius: 0; border-color: #ddd; }
.ibgp-gratuitos-hub .ich-cartao-img{ background: #e4e4e4; }
.ibgp-gratuitos-hub .ich-cartao-img img{ height: auto; aspect-ratio: 356 / 225; }

.ibgp-gratuitos-hub .ich-cartao-corpo{
  position: relative; margin-top: -31px; padding: 10px;
  background: #fff; box-shadow: 0 -1px 0 0 #cecece;
}
.ibgp-gratuitos-hub .ich-cartao-data{
  float: right; margin: -51px -10px 0 0; padding: 10px 10px 10px 20px;
  background: #fff; border: 0; border-radius: 20px 0 0 0;
  font-size: 14px; font-weight: 600; color: var(--ich-data);
}
.ibgp-gratuitos-hub .ich-cartao-data svg{ width: 14px; height: 14px; }
.ibgp-gratuitos-hub .ich-cartao h3{ font-size: 15px; line-height: 19.2px; margin: 0 0 8px; }
.ibgp-gratuitos-hub .ich-cartao h3 a{ color: #40a871; font-weight: 600; }

.ibgp-gratuitos-hub .ich-cartao-rodape{
  padding: 5px 10px; background: #fff; border-top: 1px solid #ddd; font-size: 16px;
}
.ibgp-gratuitos-hub .ich-modal{
  flex: 1 1 50%; text-align: center; color: #949494; font-weight: 600;
}
.ibgp-gratuitos-hub .ich-detalhes{
  flex: 1 1 50%; text-align: center; font-size: 15px; border-left: 1px solid #ddd;
}

@media (max-width: 900px){
  .ibgp-gratuitos-hub .ich-conteudo{ grid-template-columns: 1fr; }
  .ibgp-gratuitos-hub .ich-faixa h1{ font-size: 24px; }
  .ibgp-gratuitos-hub .ich-busca{ flex: 1 1 auto; }
}

/* ============================================================================
   FONTE DO TÍTULO DA BIBLIOTECA
   O site atual escreve "Biblioteca do IBGP" na fonte Redressed, puxada do Google
   Fonts. Aqui ela viaja dentro do tema (licença SIL OFL), como a Open Sans —
   nenhuma chamada a servidor de fora.
   ══════════════════════════════════════════════════════════════════════════ */
@font-face {
  font-family: "Redressed";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/redressed-latin.woff2") format("woff2");
}

/* ============================================================================
   POLÍTICA DE PRIVACIDADE — ibgp.com/politica-de-privacidade-ibgp
   Acrescentado em 15/09/2026 (tema 2.9.0). Bloco no arquivo 455.

   O bloco traz todo o estilo em `style=` nas próprias tags, como no site atual.
   O que está aqui é só o que o Kadence estragaria: a fonte dos títulos (que ele
   troca pela fonte de títulos do tema), o respiro dos parágrafos e das listas
   (que no site atual vem do CSS do Joomla) e o sublinhado dos links.
   Medido em ibgp.com.br/politica-de-privacidade-ibgp em 15/09/2026.
   ══════════════════════════════════════════════════════════════════════════ */
.ibgp-politica{ padding: 50px 0; }
.ibgp-politica h1,
.ibgp-politica h2{
  font-family: inherit; font-weight: 500; line-height: 1.2; letter-spacing: normal;
}
.ibgp-politica h2{ margin-bottom: 8px; }
.ibgp-politica p{ margin: 0 0 16px; }
.ibgp-politica ul{ margin: 0 0 16px; list-style: disc; }
.ibgp-politica a{ text-decoration: none; }

/* O botão do PDF fica fora da caixa branca do texto, centrado na página, 30px
   abaixo dela — como no site atual (medido: 249x38, #0f214f, cantos de 4). */
.ibgp-politica .ibpol-pdf{ margin-top: 30px; text-align: center; }
.ibgp-politica .ibpol-pdf a{
  display: inline-block; padding: 8px 12px;
  border: 1px solid transparent; border-radius: 4px;
  background: #0f214f; color: #fff;
  font-size: 16px; line-height: 20px; text-decoration: none;
}
.ibgp-politica .ibpol-pdf a:hover{ color: #fff; filter: brightness(1.15); }

/* ============================================================================
   BIBLIOTECA DO IBGP — ibgp.com/biblioteca-do-ibgp
   Acrescentado em 15/09/2026 (tema 2.9.0). Bloco no arquivo 454.

   Medido em ibgp.com.br/biblioteca-do-ibgp em 15/09/2026, a 1366px:
   herói 426 (40 + 346 + 40) · faixa 130 (20 + 90 + 20) · livros 1409
   (30 + 4x260 + 3x96 + 50) · capa 176x260 · texto 589 · cartão 255x383.
   ══════════════════════════════════════════════════════════════════════════ */
.ibgp-biblioteca{ color: #252525; line-height: 1.5; }
.ibgp-biblioteca *,
.ibgp-biblioteca *::before,
.ibgp-biblioteca *::after{ box-sizing: border-box; }
.ibgp-biblioteca .ibb-inner{ max-width: 1140px; margin: 0 auto; padding: 0 15px; }

/* ─── herói ──────────────────────────────────────────────────────────────
   As três colunas do site atual são 4/6/2 de doze, com 15px de respiro de cada
   lado — por isso a ilustração encosta na borda esquerda da tela.
   ──────────────────────────────────────────────────────────────────────── */
.ibgp-biblioteca .ibb-heroi{
  padding: 40px 0;
  background: linear-gradient(45deg, #000f44 0%, #053ba4 100%);
}
.ibgp-biblioteca .ibb-heroi-row{ display: flex; align-items: center; margin: 0 -15px; }
.ibgp-biblioteca .ibb-heroi-ilustra{ flex: 0 0 33.3333%; padding: 0 15px; }
.ibgp-biblioteca .ibb-heroi-ilustra img{ display: block; max-width: 100%; height: auto; }
.ibgp-biblioteca .ibb-heroi-txt{ flex: 0 0 50%; padding: 0 15px; text-align: center; }
.ibgp-biblioteca .ibb-heroi-vazio{ flex: 0 0 16.6667%; }
.ibgp-biblioteca .ibb-heroi h1{
  margin: 0 0 9px; font-family: "Redressed", cursive;
  font-size: 64px; font-weight: 300; line-height: 1.2;
}
.ibgp-biblioteca .ibb-heroi h1 a{ color: #0345bf; text-decoration: none; }
.ibgp-biblioteca .ibb-heroi h2{
  margin: 0 0 11px;   /* os 11px deixam o bloco 5px acima do centro, como no site atual */
  font-family: inherit; font-size: 26px; font-weight: 300;
  line-height: 1.2; color: #fff;
}

/* ─── faixa "Acesso GRATUITO" ────────────────────────────────────────────── */
.ibgp-biblioteca .ibb-faixa{ padding: 20px 0; background: #0280c5; color: #fff; text-align: center; }
.ibgp-biblioteca .ibb-faixa h3{
  margin: 0 0 8px; font-family: inherit; font-size: 28px; font-weight: 500;
  line-height: 1.2; color: #fff;
}
/* 15,5px, e não os 16px do site atual: o site carrega a Open Sans do Google
   (peso 700 e 400 estáticos), que é mais larga que a variável embutida no tema.
   A 16px o parágrafo vira TRÊS linhas e a faixa passa de 130 para 154 de altura.
   Medido no ar em 15/09/2026. */
.ibgp-biblioteca .ibb-faixa p{ margin: 0; font-size: 15.5px; line-height: 24px; }

/* ─── livros + cartão dos cursos ─────────────────────────────────────────
   Dentro dos 1110 do miolo: 15 de respiro + 795 de livro + 45 + 255 do cartão.
   O cartão fica centrado na vertical em relação à lista inteira, como no site
   atual (a 1366px ele começa 473px abaixo do primeiro livro).
   ──────────────────────────────────────────────────────────────────────── */
.ibgp-biblioteca .ibb-livros{ padding: 30px 0 50px; }
.ibgp-biblioteca .ibb-livros-row{ display: flex; align-items: center; gap: 45px; }
.ibgp-biblioteca .ibb-lista{ flex: 1 1 auto; min-width: 0; padding-left: 15px; }
.ibgp-biblioteca .ibb-cursos{ flex: 0 0 255px; }
.ibgp-biblioteca .ibb-cursos img{ display: block; width: 255px; height: auto; }

.ibgp-biblioteca .ibb-livro{ display: flex; align-items: center; gap: 30px; min-height: 260px; }
.ibgp-biblioteca .ibb-livro + .ibb-livro{ margin-top: 96px; }
.ibgp-biblioteca .ibb-capa{ flex: 0 0 176px; display: block; line-height: 0; }
.ibgp-biblioteca .ibb-capa img{ display: block; width: 176px; height: auto; }
.ibgp-biblioteca .ibb-texto{ flex: 1 1 auto; min-width: 0; }
/* 22px, e não os 24px do site atual, pelo mesmo motivo do menu dos cursos
   gratuitos: a fonte daqui é mais larga que a fonte de sistema que o site atual
   usa. A 24px, "Desafios da Governança…" pede 616px e só há 589 — quebraria em
   duas linhas, o que lá não acontece. A 22px as linhas medem 562 e 564, contra
   573 e 580 do original. MEDIDO NO AR (não na prévia): o site serve a Open Sans
   do Google, mais larga que a variável embutida no tema — a 23px ainda quebrava.
   15/09/2026. */
.ibgp-biblioteca .ibb-livro h2{
  margin: 0 0 12px; font-family: inherit; font-size: 22px; font-weight: 700;
  line-height: 28px; letter-spacing: normal;
}
.ibgp-biblioteca .ibb-livro h2 a{ color: inherit; text-decoration: none; }
.ibgp-biblioteca .ibb-livro p{ margin: 0; font-size: 16px; line-height: 24px; color: #252525; }

.ibgp-biblioteca .ibb-cor-1 h2{ color: #b12ab1; }
.ibgp-biblioteca .ibb-cor-2 h2{ color: #5b863e; }
.ibgp-biblioteca .ibb-cor-3 h2{ color: #184294; }
.ibgp-biblioteca .ibb-cor-4 h2{ color: #1a8bd3; }

/* ─── tablet e celular ───────────────────────────────────────────────────── */
@media (max-width: 991px){
  .ibgp-biblioteca .ibb-heroi-row{ flex-wrap: wrap; }
  .ibgp-biblioteca .ibb-heroi-ilustra{ flex: 0 0 100%; text-align: center; }
  .ibgp-biblioteca .ibb-heroi-ilustra img{ margin: 0 auto; }
  .ibgp-biblioteca .ibb-heroi-txt{ flex: 0 0 100%; margin-top: 24px; }
  .ibgp-biblioteca .ibb-heroi h1{ font-size: 44px; }
  .ibgp-biblioteca .ibb-heroi h2{ font-size: 20px; }
  .ibgp-biblioteca .ibb-heroi-vazio{ display: none; }
  .ibgp-biblioteca .ibb-livros-row{ flex-wrap: wrap; gap: 40px; }
  .ibgp-biblioteca .ibb-lista{ flex: 0 0 100%; padding-left: 0; }
  .ibgp-biblioteca .ibb-cursos{ flex: 0 0 100%; text-align: center; }
  .ibgp-biblioteca .ibb-cursos img{ margin: 0 auto; }
}
@media (max-width: 600px){
  .ibgp-biblioteca .ibb-livro{ flex-direction: column; align-items: flex-start; gap: 18px; min-height: 0; }
  .ibgp-biblioteca .ibb-livro + .ibb-livro{ margin-top: 48px; }
  .ibgp-biblioteca .ibb-heroi h1{ font-size: 36px; }
}

/* ============================================================================
   FONTES DAS PÁGINAS DE LIVRO
   O site atual escreve o título da faixa em Oswald e o nome do autor em Dancing
   Script, as duas puxadas do Google Fonts. Aqui elas viajam dentro do tema
   (licença SIL OFL), como a Open Sans e a Redressed.
   ══════════════════════════════════════════════════════════════════════════ */
@font-face {
  font-family: "Oswald";
  font-style: normal;
  font-weight: 200 700;
  font-display: swap;
  src: url("fonts/oswald-latin.woff2") format("woff2");
}
@font-face {
  font-family: "Dancing Script";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("fonts/dancingscript-latin.woff2") format("woff2");
}

/* ============================================================================
   PÁGINAS DE LIVRO — ibgp.com/livro-…
   Acrescentado em 15/09/2026 (tema 2.10.0). Blocos nos arquivos 466 a 469.

   As quatro páginas têm a mesma estrutura, medida em
   ibgp.com.br/livro-desafios-da-governaca-e-da-gestao-publica-brasileira
   em 15/09/2026, a 1366px:

   faixa do título  181 (50 + 50 de linha + 31 + 50)   fundo #712d72
   "Acesse agora"   204 (50 + ícone 96 + 20 + 38)
   apresentação     837 (50 + 737 + 50) — capa 500x737 e coluna #0a0443 de 555
   faixa do download 166
   cursos           386 (30 + faixa 326 #421921 + 30)
   ══════════════════════════════════════════════════════════════════════════ */
.ibgp-livro{ color: #252525; }
.ibgp-livro *,
.ibgp-livro *::before,
.ibgp-livro *::after{ box-sizing: border-box; }
.ibgp-livro .ibl-inner{ max-width: 1140px; margin: 0 auto; padding: 0 15px; }

/* ─── faixa do título ────────────────────────────────────────────────────── */
.ibgp-livro .ibl-faixa{ background: #712d72; padding: 50px 0; }
.ibgp-livro .ibl-faixa h1{
  margin: 0 0 31px; font-family: "Oswald", sans-serif;
  font-size: 40px; font-weight: 500; line-height: 50px;
  color: #fff; text-align: center; text-transform: uppercase; letter-spacing: normal;
}

/* ─── "Acesse agora o livro GRATUITAMENTE." ──────────────────────────────── */
.ibgp-livro .ibl-acesse{ padding: 50px 0 0; text-align: center; }
.ibgp-livro .ibl-mao{ display: block; width: 72px; height: 96px; margin: 0 auto; fill: #712d72; }
.ibgp-livro .ibl-acesse h2{
  margin: 20px 0 0; font-family: inherit; font-size: 32px; font-weight: 500;
  line-height: 38.4px; text-align: center; letter-spacing: normal;
}
.ibgp-livro .ibl-acesse h2 a{ color: #0345bf; text-decoration: none; }
.ibgp-livro .ibl-acesse h2 a:hover{ text-decoration: underline; }

/* ─── apresentação ───────────────────────────────────────────────────────
   Duas colunas coladas: a capa (500) e a caixa azul-escura (555) — os 55px que
   sobram à direita dos 1110 são assim no site atual.
   ──────────────────────────────────────────────────────────────────────── */
.ibgp-livro .ibl-apresentacao{ padding: 50px 0; }
.ibgp-livro .ibl-ap-row{ display: flex; align-items: stretch; }
.ibgp-livro .ibl-capa{ flex: 0 0 45.05%; }
.ibgp-livro .ibl-capa img{ display: block; width: 100%; height: auto; }
.ibgp-livro .ibl-texto{
  flex: 0 0 50%; background: #0a0443; color: #fff; padding: 31px 40px 15px;
  display: flex; flex-direction: column;
}
.ibgp-livro .ibl-texto h2{
  margin: 0 0 21px; font-family: inherit; font-size: 24px; font-weight: 500;
  line-height: 28.8px; color: #e6bc04; text-align: center; letter-spacing: normal;
}
.ibgp-livro .ibl-corpo{ font-size: 14px; line-height: 21px; }
.ibgp-livro .ibl-corpo p,
.ibgp-livro .ibl-corpo div{ margin: 0 0 16px; }
.ibgp-livro .ibl-corpo p:last-child,
.ibgp-livro .ibl-corpo div:last-child{ margin-bottom: 0; }

/* margin-top:auto — a assinatura encosta no pé da caixa, como no site atual */
.ibgp-livro .ibl-autor{ display: flex; gap: 35px; padding-left: 46px; margin-top: auto; padding-top: 20px; }
.ibgp-livro .ibl-autor img{ display: block; width: 130px; height: 148px; }
.ibgp-livro .ibl-autor-txt{ padding-top: 24px; }
.ibgp-livro .ibl-nome{
  margin: 0; font-family: "Dancing Script", cursive; font-size: 30px; font-weight: 500;
  line-height: 36px; color: #fff; text-align: left; letter-spacing: normal;
}
.ibgp-livro .ibl-cargo{
  margin: 10px 0 15px; font-family: inherit; font-size: 16px; font-weight: 200;
  line-height: 20px; color: #fff; text-align: left; letter-spacing: normal;
}

/* ─── faixa do download ──────────────────────────────────────────────────── */
.ibgp-livro .ibl-download{ background: #712d72; padding: 20px 0; }
.ibgp-livro .ibl-download h2{
  margin: 40px 0 30px; font-family: inherit; font-size: 26px; font-weight: 500;
  line-height: 28px; color: #fff; text-align: center; letter-spacing: normal;
}

/* ─── "Conheça nossos cursos" ────────────────────────────────────────────── */
.ibgp-livro .ibl-cursos{ padding: 30px 0; }
.ibgp-livro .ibl-cursos-faixa{ display: flex; gap: 30px; background: #421921; }
.ibgp-livro .ibl-cursos-img{ flex: 0 0 calc(50% - 15px); }
.ibgp-livro .ibl-cursos-img img{ display: block; width: 100%; height: auto; }
.ibgp-livro .ibl-cursos-txt{ flex: 0 0 calc(50% - 15px); padding: 39px 0 0; text-align: center; color: #fff; }
.ibgp-livro .ibl-cursos-txt h2{
  margin: 0 0 20px; font-family: inherit; font-size: 35px; font-weight: 500;
  line-height: 42px; color: #fff; letter-spacing: normal;
}
.ibgp-livro .ibl-cursos-txt h3{
  margin: 0 0 31px; font-family: inherit; font-size: 24px; font-weight: 300;
  line-height: 28.8px; color: #fff; letter-spacing: normal;
}
.ibgp-livro .ibl-botao{
  display: inline-block; padding: 8px 12px; border-radius: 4px;
  background: #03e16d; color: #fff; font-size: 16px; line-height: 20px; text-decoration: none;
}
.ibgp-livro .ibl-botao:hover{ color: #fff; filter: brightness(1.08); }
.ibgp-livro .ibl-logo{ display: block; width: 188px; height: 60px; margin: 30px auto 0; }

/* ─── tablet e celular ───────────────────────────────────────────────────── */
@media (max-width: 991px){
  .ibgp-livro .ibl-faixa h1{ font-size: 30px; line-height: 38px; margin-bottom: 20px; }
  .ibgp-livro .ibl-acesse h2{ font-size: 24px; line-height: 30px; }
  .ibgp-livro .ibl-ap-row{ flex-wrap: wrap; }
  .ibgp-livro .ibl-capa{ flex: 0 0 100%; text-align: center; }
  .ibgp-livro .ibl-capa img{ max-width: 500px; margin: 0 auto; }
  .ibgp-livro .ibl-texto{ flex: 0 0 100%; }
  .ibgp-livro .ibl-cursos-faixa{ flex-wrap: wrap; }
  .ibgp-livro .ibl-cursos-img,
  .ibgp-livro .ibl-cursos-txt{ flex: 0 0 100%; }
  .ibgp-livro .ibl-cursos-txt{ padding: 30px 20px; }
  .ibgp-livro .ibl-cursos-txt h2{ font-size: 28px; line-height: 34px; }
}
@media (max-width: 600px){
  .ibgp-livro .ibl-autor{ padding-left: 0; gap: 20px; }
  .ibgp-livro .ibl-texto{ padding: 24px 20px 30px; }
}

/* ============================================================================
   Aviso do reCAPTCHA v3 (2.11.0) — texto que os termos do Google exigem quando
   o selo flutuante fica escondido. Entra depois do botão nos três formulários.
   O grupo do botão já deixa 20px embaixo; o aviso desconta 10 para ficar colado.
   ========================================================================== */
.fluentform .ibgp-aviso-recaptcha{
  margin: -10px 0 0; padding: 0;
  font-family: inherit; font-size: 12px; line-height: 18px; color: #6c757d;
}
.fluentform .ibgp-aviso-recaptcha a{
  color: inherit; text-decoration: underline;
}
.fluentform .ibgp-aviso-recaptcha a:hover,
.fluentform .ibgp-aviso-recaptcha a:focus{ color: #0d6efd; }
