/* =================================================================
   Benefacto - Tema WordPress
   v1.1.0 - Sistema de design refinado (handoff de alta fidelidade).
   v1.2.6 - Revisão do site (itens corrigíveis no tema): contraste do cinza
            secundário elevado p/ WCAG AA (#8A8A8A → #646B78); página 404 com
            atalhos de tema (chips); + no functions.php: emojis do WP
            desativados, título da busca em PT e item de menu não acende na
            home. (SEO de conteúdo — meta da home, títulos/descrições de
            categoria, og:image — e o plugin genesis-blocks ficam no painel.)
   v1.2.5 - Desktop: a linha verde do item ativo deixa de aparecer solta
            dentro dos dropdowns. O indicador agora vale só para itens de
            topo (filhos diretos da nav-list); o item ativo dentro do
            submenu recebe destaque sutil em verde/negrito.
   v1.2.4 - Ajustes finos de mobile: (a) hero deixa de "comer" o conteúdo
            nas bordas (o atalho de padding zerava o respiro lateral; agora
            32px em tablet / 20px no celular); (b) FAB do WhatsApp com ícone
            100% centralizado (oculta o ponto-pulso e o gap no celular);
            (c) botão de busca do topo ganha contorno bege (destaque).
   v1.2.3 - Correções pós-deploy validadas no site real: (a) some o estouro
            de ~14px que restava em telas de exatamente 1500px; (b) alinha o
            indicador verde do item de menu ativo à borda do cabeçalho
            (antes flutuava ~5px abaixo, no hero — bottom -29px → -24px).
   v1.2.2 - Revisão de UX/UI mobile (validada por varredura 320-1680px):
            header colapsa no burger abaixo de 1280px (a nav inline é larga
            e só cabe sem estouro a partir de ~1280px; antes estourava já
            em 768px/1024px), com tier compacto 1280-1499px (busca vira
            ícone, nav apertada) e nav plena a partir de 1500px. Ajuste de
            marca em ≤360px. Newsletter e botões do hero corrigidos, tabelas
            com rolagem, FAB do WhatsApp circular. Menu burger inalterado.
   Headings em Lora (serifada), interface/corpo em Inter.
   ================================================================= */

:root {
  --c-azul: #13315C;
  --c-azul-medio: #1D4E89;
  --c-azul-deep: #0E2647;
  --c-verde: #2A9D8F;
  --c-verde-d: #1E7468;
  --c-verde-soft: #E9F4F1;
  --c-azul-soft: #EAF0F7;
  --c-areia: #F4F1EC;
  --c-areia-2: #FAF8F4;
  --c-grafite: #222831;
  --c-grafite-soft: #525C6A;
  --c-cinza: #646B78; /* cinza de texto secundário — WCAG AA em branco e areia (≥4,7:1) */
  --c-cinza-areia: #D9D5CC;
  --c-branco: #FFFFFF;

  --ln: rgba(19,49,92,0.10);
  --ln-2: rgba(19,49,92,0.16);

  --ff-serif: 'Lora', Georgia, 'Times New Roman', serif;
  --ff-sans: 'Inter', system-ui, -apple-system, sans-serif;

  --fs-wordmark: 25px;
  --fs-hero-h1: 50px;
  --fs-article-h1: 38px;
  --fs-h2: 33px;
  --fs-h3: 20px;
  --fs-body: 18px;
  --fs-lead: 20px;
  --fs-meta: 14px;
  --fs-kicker: 12px;
  --fs-button: 15px;

  --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-6: 24px;
  --s-8: 32px; --s-12: 48px; --s-16: 64px; --s-24: 96px;

  --r-sm: 10px; --r-md: 14px; --r-lg: 18px; --r-btn: 11px; --r-pill: 999px;

  --sh-card: 0 1px 2px rgba(19,49,92,0.05), 0 6px 16px -8px rgba(19,49,92,0.12);
  --sh-card-hover: 0 2px 6px rgba(19,49,92,0.05), 0 22px 48px -22px rgba(19,49,92,0.28);
  --sh-header: 0 1px 0 var(--ln), 0 6px 20px -12px rgba(19,49,92,0.18);

  --max-w: 1180px;
  --read-w: 720px;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--ff-sans);
  font-size: var(--fs-body);
  line-height: 1.7;
  color: var(--c-grafite-soft);
  background: var(--c-branco);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; }
a { color: var(--c-azul-medio); }
h1, h2, h3, h4 { font-family: var(--ff-serif); color: var(--c-azul); }
[hidden] { display: none !important; }

/* ---------- Acessibilidade ---------- */
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 999;
  background: var(--c-azul); color: #fff; padding: 12px 20px;
  border-radius: 0 0 var(--r-sm) 0; font-weight: 600; text-decoration: none;
}
.skip-link:focus { left: 0; }
.screen-reader-text {
  border: 0; clip: rect(1px,1px,1px,1px); height: 1px; width: 1px;
  overflow: hidden; position: absolute !important; padding: 0; margin: -1px; word-wrap: normal !important;
}
a:focus-visible, button:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible, .article-card:focus-visible {
  outline: 3px solid rgba(42,157,143,0.55); outline-offset: 2px; border-radius: var(--r-sm);
}

/* ---------- Layout ---------- */
.container { max-width: var(--max-w); margin: 0 auto; padding: 0 40px; }
.section { padding: 88px 0; }
.section--areia { background: var(--c-areia); }
.section--azul { background: var(--c-azul); color: #fff; }
.section--branco { background: var(--c-branco); }
.site-main { display: block; }

/* ---------- Tipografia ---------- */
.wordmark {
  font-family: var(--ff-serif); font-weight: 700; font-size: var(--fs-wordmark);
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-azul);
  line-height: 1; text-decoration: none;
}
.wordmark.light { color: #fff; }

/* Cursor: garante "mãozinha" em todo elemento interativo (botões não recebem por padrão) */
a[href], button, [role="button"], label[for], summary,
.btn, .icon-btn-circle, .search-mini, input[type="submit"], input[type="button"] { cursor: pointer; }
button:disabled, .btn:disabled, [aria-disabled="true"] { cursor: not-allowed; }

.brand-stack { display: inline-flex; flex-direction: column; line-height: 1; gap: 4px; text-decoration: none; cursor: pointer; }
.brand-stack:hover, .brand-stack:focus { text-decoration: none; }
.brand-stack .wordmark, .brand-stack .brand-tag { text-decoration: none; border-bottom: 0; }
.brand-stack .brand-tag {
  font: 600 10px/1 var(--ff-sans); letter-spacing: 0.24em; text-transform: uppercase;
  color: var(--c-verde-d);
}
.kicker {
  font: 600 var(--fs-kicker)/1.4 var(--ff-sans); text-transform: uppercase;
  letter-spacing: 0.15em; color: var(--c-verde-d); text-decoration: none; display: inline-block;
}
.kicker--light { color: #A9DCD4; }
a.kicker:hover { color: var(--c-azul-medio); }
.h1-hero { font: 700 var(--fs-hero-h1)/1.05 var(--ff-serif); letter-spacing: -0.025em; margin: 14px 0 0; text-wrap: balance; }
.h1-article { font: 700 var(--fs-article-h1)/1.15 var(--ff-serif); letter-spacing: -0.02em; margin: 0; color: var(--c-azul); text-wrap: balance; }
.h2 { font: 700 var(--fs-h2)/1.15 var(--ff-serif); color: var(--c-azul); margin: 0 0 var(--s-3); letter-spacing: -0.018em; text-wrap: balance; }
.lead { font: 400 var(--fs-lead)/1.6 var(--ff-sans); color: var(--c-grafite-soft); margin: 0; }
.meta { font: 400 var(--fs-meta)/1.5 var(--ff-sans); color: var(--c-cinza); }

/* ---------- Botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  appearance: none; border: 1.5px solid transparent; font: 600 var(--fs-button)/1 var(--ff-sans);
  padding: 13px 22px; border-radius: var(--r-btn); cursor: pointer;
  text-decoration: none; transition: all 0.18s; min-height: 46px; white-space: nowrap;
}
.btn svg { width: 18px; height: 18px; }
.btn--primary { background: var(--c-azul); color: #fff; }
.btn--primary:hover { background: var(--c-azul-medio); color: #fff; transform: translateY(-1px); }
.btn--accent {
  background: var(--c-verde); color: #06302B; font-weight: 700;
  box-shadow: 0 1px 2px rgba(19,49,92,0.10), 0 10px 22px -10px rgba(42,157,143,0.55);
}
.btn--accent:hover { background: var(--c-verde-d); color: #fff; transform: translateY(-1px); }
.btn--ghost { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.4); color: #fff; }
.btn--ghost:hover { border-color: #fff; background: rgba(255,255,255,0.10); }
.btn--block { display: flex; width: 100%; }

/* ---------- Top bar ---------- */
.topbar { background: var(--c-azul-deep); color: #AFC0D6; }
.topbar .container { display: flex; align-items: center; justify-content: space-between; height: 38px; }
.topbar-left { display: inline-flex; align-items: center; gap: 8px; color: #9FD3CC; font: 500 12.5px/1 var(--ff-sans); }
.topbar-left svg { width: 15px; height: 15px; }
.topbar-right { display: flex; gap: 18px; }
.topbar-right a { color: #C6D2E2; text-decoration: none; font: 400 12.5px/1 var(--ff-sans); }
.topbar-right a:hover { color: #fff; }

/* ---------- Header ---------- */
.header {
  position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,0.9);
  -webkit-backdrop-filter: saturate(140%) blur(10px); backdrop-filter: saturate(140%) blur(10px);
  border-bottom: 1px solid var(--ln); transition: box-shadow 0.2s;
}
.header.scrolled { box-shadow: var(--sh-header); }
.header-inner { height: 78px; display: flex; align-items: center; gap: 30px; }
.header-brand { flex-shrink: 0; }
.header-brand .custom-logo-link { display: inline-flex; }
.nav { display: flex; flex: 1; justify-content: center; }
.nav-list { display: flex; gap: 6px; list-style: none; margin: 0; padding: 0; }
.nav-list li { position: relative; }
.nav-list a {
  display: flex; align-items: center; gap: 4px; padding: 10px 13px;
  font: 500 14.5px/1 var(--ff-sans); color: #36404F; text-decoration: none;
  border-radius: var(--r-sm); white-space: nowrap;
}
.nav-list a:hover { color: var(--c-verde-d); background: var(--c-areia-2); }
.nav-list > .current-menu-item > a,
.nav-list > .current-menu-parent > a { color: var(--c-azul); }
/* Indicador (linha verde) APENAS nos itens de topo (filhos diretos da
   nav-list). Nos submenus o offset negativo do ::after caía no meio do
   dropdown, criando uma linha solta sob um item interno. */
.nav-list > .current-menu-item > a::after,
.nav-list > .current-menu-parent > a::after {
  content: ''; position: absolute; bottom: -24px; left: 13px; right: 13px;
  height: 2px; background: var(--c-verde);
}
/* Item ativo dentro do dropdown: destaque sutil em verde, sem linha flutuante. */
.nav-list .sub-menu .current-menu-item > a,
.nav-list .sub-menu .current-menu-item > a:hover { color: var(--c-verde-d); font-weight: 600; }
.nav-list ul.sub-menu {
  position: absolute; top: calc(100% + 8px); left: 0; min-width: 246px;
  background: #fff; border: 1px solid var(--ln); border-radius: var(--r-md);
  box-shadow: var(--sh-card-hover); padding: 8px; list-style: none; margin: 0;
  opacity: 0; visibility: hidden; transform: translateY(6px); transition: all 0.16s; z-index: 49;
}
.nav-list li:hover > ul.sub-menu,
.nav-list li:focus-within > ul.sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.nav-list ul.sub-menu a { border-radius: var(--r-sm); }
.header-actions { display: flex; align-items: center; gap: 12px; }
.search-mini {
  display: inline-flex; align-items: center; gap: 8px; color: var(--c-cinza);
  border: 1px solid var(--ln); border-radius: var(--r-pill); padding: 9px 15px;
  font: 500 13.5px/1 var(--ff-sans); background: var(--c-areia-2); cursor: pointer; transition: 0.15s;
}
.search-mini:hover { border-color: var(--ln-2); color: var(--c-grafite-soft); }
.search-mini svg { width: 15px; height: 15px; }
.icon-btn-circle {
  width: 44px; height: 44px; border-radius: var(--r-pill); background: transparent;
  border: 0; color: var(--c-azul); cursor: pointer; display: flex;
  align-items: center; justify-content: center; transition: background 0.15s;
}
.icon-btn-circle:hover { background: var(--c-areia); }
.header-burger { display: none; }
.header-search { padding: 12px 0 16px; background: #fff; border-bottom: 1px solid var(--ln); }

/* Mobile menu */
.mobile-menu-overlay { position: fixed; inset: 0; background: rgba(14,38,71,0.45); z-index: 60; }
.mobile-menu {
  position: fixed; top: 0; right: 0; width: 88%; max-width: 360px; height: 100%;
  background: #fff; z-index: 61; display: flex; flex-direction: column;
  transform: translateX(100%); transition: transform 0.25s cubic-bezier(0.4,0,0.2,1);
}
.mobile-menu[data-open="true"] { transform: translateX(0); }
.mobile-menu-header {
  height: 64px; display: flex; align-items: center; justify-content: space-between;
  padding: 0 24px; border-bottom: 1px solid var(--ln);
}
.mobile-menu-list { flex: 1; overflow-y: auto; padding: 8px 0; }
.mobile-menu-nav, .mobile-menu-nav ul { list-style: none; margin: 0; padding: 0; }
.mobile-menu-nav a {
  display: block; padding: 15px 24px; border-bottom: 1px solid var(--ln);
  font: 500 16px/1.3 var(--ff-sans); color: var(--c-grafite); text-decoration: none;
}
.mobile-menu-nav a:hover { background: var(--c-areia); color: var(--c-azul); }
.mobile-menu-nav .sub-menu a { padding-left: 40px; font-size: 15px; color: var(--c-cinza); }
.mobile-menu-footer { padding: 16px 24px 24px; border-top: 1px solid var(--ln); }

/* ---------- Breadcrumb ---------- */
.crumbs {
  font: 400 14px/1.5 var(--ff-sans); padding: 22px 0;
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.crumbs a { color: var(--c-azul-medio); text-decoration: none; }
.crumbs a:hover { color: var(--c-verde-d); text-decoration: underline; }
.crumbs .sep { color: var(--c-cinza-areia); }
.crumbs .current { color: var(--c-cinza); }

/* ---------- Busca ---------- */
.benefacto-search {
  position: relative; display: flex; align-items: center; background: #fff;
  border: 1px solid var(--ln); border-radius: var(--r-md);
  transition: border-color 0.15s, box-shadow 0.15s; overflow: hidden; max-width: 560px;
}
.benefacto-search:focus-within { border-color: var(--c-verde); box-shadow: 0 0 0 3px rgba(42,157,143,0.15); }
.search-icon { padding: 0 0 0 16px; color: var(--c-cinza); display: flex; }
.benefacto-search input[type="search"] {
  flex: 1; border: 0; padding: 14px 16px; font: 400 16px/1 var(--ff-sans);
  color: var(--c-grafite); background: transparent; outline: none; width: 100%;
}
.benefacto-search .search-submit {
  border: 0; background: var(--c-verde); color: #06302B; padding: 0 22px; margin: 5px;
  border-radius: var(--r-sm); font: 700 14px/1 var(--ff-sans); cursor: pointer; align-self: stretch;
}
.benefacto-search .search-submit:hover { background: var(--c-verde-d); color: #fff; }
.cat-search .benefacto-search, .error-404-search .benefacto-search { margin-top: 8px; }

/* ---------- Hero ---------- */
.hero {
  position: relative; color: #fff; overflow: hidden;
  background: radial-gradient(120% 130% at 88% 8%, #235197 0%, #16386c 42%, #11305a 100%);
}
.hero-decor { position: absolute; top: -18%; right: -6%; width: 520px; height: 520px; pointer-events: none; opacity: 0.09; }
.hero-decor circle { fill: none; stroke: var(--decor-stroke, #fff); stroke-width: 1; }
.hero-grid { position: relative; display: grid; grid-template-columns: 1.04fr 0.96fr; gap: 54px; align-items: center; padding: 78px 0 84px; }
.hero-copy { max-width: 560px; }
.hero h1 { color: #fff; }
.hero .kicker-pill {
  display: inline-flex; align-items: center; gap: 9px; color: #A9DCD4;
  font: 600 13px/1 var(--ff-sans); letter-spacing: 0.01em; background: rgba(42,157,143,0.14);
  border: 1px solid rgba(95,184,168,0.3); padding: 8px 14px; border-radius: var(--r-pill);
}
.hero .kicker-pill svg { width: 16px; height: 16px; color: #6FC6B6; }
.hero-sub { font: 400 var(--fs-lead)/1.6 var(--ff-sans); color: #CFDAE8; margin: 20px 0 26px; max-width: 520px; }
.hero .benefacto-search { box-shadow: 0 10px 30px -10px rgba(5,18,40,0.5); border-color: transparent; }
.hero-actions { display: flex; gap: 12px; margin: 22px 0 24px; flex-wrap: wrap; }
.hero-trust { display: flex; gap: 22px; margin-top: 4px; flex-wrap: wrap; font: 400 13.5px/1.4 var(--ff-sans); color: #ABC0D6; }
.hero-trust-item { display: flex; align-items: center; gap: 8px; }
.hero-trust-item .tck {
  width: 18px; height: 18px; border-radius: 50%; background: rgba(95,184,168,0.18);
  display: flex; align-items: center; justify-content: center;
}
.hero-trust-item .tck svg { width: 12px; height: 12px; color: #7FCFBF; }

/* Hero card (guia em destaque) */
.hero-card {
  display: block; text-decoration: none; cursor: pointer;
  background: #fff; color: var(--c-grafite-soft); border-radius: var(--r-lg);
  box-shadow: 0 26px 60px -24px rgba(4,16,38,0.6); overflow: hidden; border: 1px solid rgba(255,255,255,0.5);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.hero-card:hover, .hero-card:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 34px 70px -22px rgba(4,16,38,0.66);
}
.hero-card:focus-visible { outline: 2px solid var(--c-verde); outline-offset: 3px; }
.hero-card:hover .hc-title { color: var(--c-azul-medio); }
.hero-card .hc-acc { height: 4px; background: var(--c-verde); }
.hero-card .hc-top { padding: 20px 22px 14px; }
.hero-card .hc-tag { display: inline-flex; align-items: center; gap: 7px; font: 700 11px/1 var(--ff-sans); letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-verde-d); }
.hero-card .hc-tag svg { width: 13px; height: 13px; }
.hero-card .hc-title { font: 700 20px/1.24 var(--ff-serif); color: var(--c-azul); margin-top: 9px; }
.hero-card ul { list-style: none; padding: 4px 22px 8px; margin: 0; }
.hero-card li { display: flex; gap: 11px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--ln); font: 400 13.5px/1.4 var(--ff-sans); color: #3c4759; }
.hero-card li:last-child { border-bottom: 0; }
.hero-card li .n { font: 700 13px/1 var(--ff-serif); color: var(--c-verde-d); min-width: 18px; }
.hero-card .hc-auth { display: flex; align-items: center; gap: 12px; padding: 15px 22px; border-top: 1px solid var(--ln); background: #FBFAF7; }
.hc-auth .nm { font: 600 13.5px/1.3 var(--ff-sans); color: var(--c-grafite); }
.hc-auth .ob { font: 400 12px/1.3 var(--ff-sans); color: var(--c-cinza); margin-top: 2px; }

/* Avatar (monograma) */
.avatar {
  width: 40px; height: 40px; border-radius: 50%; flex: none; letter-spacing: 0.02em;
  background: linear-gradient(140deg, #1D4E89, #13315C); color: #fff;
  display: flex; align-items: center; justify-content: center; font: 700 14px/1 var(--ff-sans);
}
.avatar.lg { width: 74px; height: 74px; font-size: 24px; }
/* Avatar com foto real da responsável */
img.avatar { object-fit: cover; object-position: center top; background: var(--c-areia-2); }
.avatar--photo { display: block; }

/* ---------- Faixa de fontes oficiais ---------- */
.sources { background: var(--c-areia-2); border-top: 1px solid var(--ln); border-bottom: 1px solid var(--ln); }
.sources .container { display: flex; align-items: center; justify-content: center; gap: 14px; flex-wrap: wrap; padding: 15px 40px; font: 400 12.5px/1.4 var(--ff-sans); color: var(--c-cinza); }
.sources b { color: var(--c-grafite-soft); font-weight: 600; }
.sources .dot { width: 4px; height: 4px; border-radius: 50%; background: var(--c-verde); }

/* ---------- Section head ---------- */
.section-head { margin-bottom: 48px; max-width: 660px; }
.section-head--center { margin-left: auto; margin-right: auto; text-align: center; }
.section-head .h2 { margin-bottom: 10px; }
.section-head p { font: 400 17px/1.55 var(--ff-sans); color: var(--c-cinza); margin: 0; }

/* ---------- Roteador de situação ---------- */
.situacao { background: var(--c-areia); }
.situacao-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
.situacao-card {
  background: #fff; border: 1px solid var(--ln); border-radius: var(--r-md); padding: 24px 22px;
  box-shadow: var(--sh-card); transition: 0.18s; text-decoration: none; color: inherit; display: block;
}
.situacao-card:hover { transform: translateY(-4px); box-shadow: var(--sh-card-hover); border-color: transparent; }
.situacao-card .si {
  width: 48px; height: 48px; border-radius: 13px; background: var(--c-verde-soft); color: var(--c-verde-d);
  display: flex; align-items: center; justify-content: center; margin-bottom: 16px;
}
.situacao-card h3 { font: 700 18.5px/1.25 var(--ff-serif); color: var(--c-azul); margin: 0 0 7px; }
.situacao-card p { font: 400 13.5px/1.55 var(--ff-sans); color: var(--c-cinza); margin: 0; }
.situacao-card .go { display: inline-flex; align-items: center; gap: 7px; color: var(--c-verde-d); font: 600 13.5px/1 var(--ff-sans); margin-top: 15px; }
.situacao-card .go svg { width: 15px; height: 15px; transition: transform 0.18s; }
.situacao-card:hover .go svg { transform: translateX(3px); }

/* ---------- Card de tema ---------- */
.theme-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
.theme-card {
  background: #fff; border: 1px solid var(--ln); border-radius: var(--r-md);
  padding: 22px; display: flex; flex-direction: column; gap: 6px; cursor: pointer;
  text-decoration: none; color: inherit; transition: all 0.18s;
}
.theme-card:hover { box-shadow: var(--sh-card); transform: translateY(-2px); border-color: var(--ln-2); }
.theme-card-icon {
  width: 46px; height: 46px; border-radius: 13px;
  background: linear-gradient(155deg, #EEF4FA, #E4EFEC);
  box-shadow: inset 0 0 0 1px rgba(19,49,92,0.06);
  display: flex; align-items: center; justify-content: center; color: var(--c-azul); margin-bottom: 10px;
  transition: box-shadow 0.18s, transform 0.18s;
}
.theme-card:hover .theme-card-icon {
  box-shadow: inset 0 0 0 1px rgba(42,157,143,0.30); transform: translateY(-1px);
}
.theme-card-name { font: 700 17px/1.2 var(--ff-serif); color: var(--c-azul); }
.theme-card-count { color: var(--c-verde-d); font: 600 12.5px/1 var(--ff-sans); letter-spacing: 0.02em; margin: 5px 0 2px; }
.theme-card-desc { font: 400 13px/1.5 var(--ff-sans); color: var(--c-cinza); }
.theme-card-arrow { display: none; }

/* ---------- Comece por aqui (destaques) ---------- */
.destaque-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.destaque-card {
  border: 1px solid var(--ln); border-radius: var(--r-lg); overflow: hidden; background: #fff;
  display: flex; flex-direction: column; transition: 0.18s; text-decoration: none; color: inherit;
}
.destaque-card:hover { transform: translateY(-4px); box-shadow: var(--sh-card-hover); border-color: transparent; }
.destaque-thumb { height: 128px; position: relative; overflow: hidden; background: linear-gradient(135deg,#16386c,#1D4E89); }
.destaque-thumb .mtf { position: absolute; right: -40px; top: -40px; width: 180px; height: 180px; opacity: 0.16; }
.destaque-thumb .mtf circle { fill: none; stroke: #fff; stroke-width: 2; }
.destaque-thumb .dic { position: absolute; left: 20px; top: 18px; color: rgba(255,255,255,0.92); }
.destaque-thumb .dic svg { width: 26px; height: 26px; }
.destaque-thumb .badge { position: absolute; left: 20px; bottom: -13px; background: var(--c-verde); color: #06302B; font: 700 11.5px/1 var(--ff-sans); padding: 6px 12px; border-radius: 9px; }
.destaque-body { padding: 26px 22px 22px; display: flex; flex-direction: column; flex: 1; }
.destaque-body h3 { font: 700 18.5px/1.26 var(--ff-serif); color: var(--c-azul); margin: 0 0 9px; }
.destaque-body p { font: 400 13.5px/1.55 var(--ff-sans); color: var(--c-cinza); margin: 0 0 16px; flex: 1; }
.destaque-meta { display: flex; align-items: center; justify-content: space-between; }
.destaque-meta .read { display: inline-flex; align-items: center; gap: 7px; color: var(--c-cinza); font: 400 12.5px/1 var(--ff-sans); }
.destaque-meta .read svg { width: 15px; height: 15px; }
.destaque-meta .arr { color: var(--c-verde-d); transition: transform 0.18s; }
.destaque-card:hover .destaque-meta .arr { transform: translateX(3px); }

/* ---------- Card de artigo ---------- */
.article-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.related-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.article-card {
  background: #fff; border: 1px solid var(--ln); border-radius: var(--r-md);
  overflow: hidden; display: flex; flex-direction: column; cursor: pointer;
  text-decoration: none; color: inherit; transition: all 0.18s;
}
.article-card:hover { box-shadow: var(--sh-card-hover); transform: translateY(-3px); border-color: transparent; }
.article-card-image {
  display: block; aspect-ratio: 16/9; background: var(--c-cinza-areia);
  background-size: cover; background-position: center;
}
.article-card-image--placeholder { background: linear-gradient(135deg, var(--c-azul), var(--c-azul-medio)); }
.article-card-body { padding: 20px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.article-card-title {
  font: 700 18px/1.32 var(--ff-serif); color: var(--c-azul); margin: 4px 0;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.article-card-summary {
  font: 400 14px/1.55 var(--ff-sans); color: var(--c-cinza);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.article-card-meta { margin-top: auto; padding-top: 12px; display: flex; gap: 8px; font: 400 13px/1 var(--ff-sans); color: var(--c-cinza); }
.article-card-meta-sep { color: var(--c-cinza-areia); }
.article-card--page .article-card-body { padding: 24px 20px; }

/* ---------- E-E-A-T (confiança + autor) ---------- */
.eeat { background: var(--c-areia); }
.eeat-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 46px; align-items: center; }
.trust-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.trust-item { display: flex; gap: 14px; align-items: flex-start; background: #fff; border: 1px solid var(--ln); border-radius: var(--r-md); padding: 18px 20px; }
.trust-item-icon {
  width: 42px; height: 42px; color: var(--c-verde-d); display: flex; align-items: center;
  justify-content: center; border-radius: 11px; background: var(--c-verde-soft); flex: none;
}
.trust-item h3 { font: 700 15px/1.3 var(--ff-sans); color: var(--c-grafite); margin: 0 0 3px; }
.trust-item p { font: 400 12.5px/1.5 var(--ff-sans); color: var(--c-cinza); margin: 0; }
.author-card { background: #fff; border: 1px solid var(--ln); border-radius: var(--r-lg); padding: 30px 28px; box-shadow: var(--sh-card-hover); text-align: center; position: relative; overflow: hidden; }
.author-card .ac-acc { position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--c-verde); }
.author-card .avatar { margin: 6px auto 16px; }
.author-card .ac-name { font: 700 21px/1.2 var(--ff-serif); color: var(--c-azul); }
.author-card .ac-oab { display: inline-flex; align-items: center; gap: 7px; margin: 10px 0 14px; background: var(--c-verde-soft); color: var(--c-verde-d); font: 600 12.5px/1 var(--ff-sans); padding: 7px 13px; border-radius: var(--r-pill); }
.author-card .ac-oab svg { width: 14px; height: 14px; }
.author-card p { font: 400 13.5px/1.6 var(--ff-sans); color: var(--c-cinza); margin: 0; }
.author-card a { display: inline-flex; align-items: center; gap: 7px; color: var(--c-azul); font: 600 14px/1 var(--ff-sans); margin-top: 16px; text-decoration: none; }
.author-card a svg { width: 15px; height: 15px; }

/* ---------- Newsletter ---------- */
.newsletter { position: relative; overflow: hidden; background: linear-gradient(120deg,#1D4E89,#15386c); color: #fff; border-radius: var(--r-lg); padding: 44px 48px; display: grid; grid-template-columns: 1.3fr 1fr; gap: 34px; align-items: center; }
.newsletter .mtf { position: absolute; right: -30px; bottom: -80px; width: 300px; height: 300px; opacity: 0.1; }
.newsletter .mtf circle { fill: none; stroke: #fff; stroke-width: 2; }
.newsletter h2 { color: #fff; font: 700 26px/1.2 var(--ff-serif); margin: 0; }
.newsletter p { color: #CFDAE8; font: 400 14.5px/1.55 var(--ff-sans); margin: 10px 0 0; }
.newsletter form { display: flex; gap: 10px; background: #fff; padding: 7px; border-radius: var(--r-md); position: relative; z-index: 1; }
.newsletter input { flex: 1; border: 0; outline: 0; padding: 0 14px; font: 400 14.5px/1 var(--ff-sans); color: var(--c-grafite); background: transparent; }

/* ---------- CTA ---------- */
.cta-band { background: radial-gradient(120% 140% at 50% 0%, #1D4E89 0%, #13315C 60%); color: #fff; text-align: center; padding: 84px 0; position: relative; overflow: hidden; }
.cta-band .hero-decor { opacity: 0.06; right: -200px; top: -150px; }
.cta-band-inner { position: relative; max-width: 600px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.cta-band-inner .cta-rule { width: 46px; height: 3px; background: var(--c-verde); border-radius: 2px; margin-bottom: 8px; }
.cta-band h2 { color: #fff; font: 700 34px/1.15 var(--ff-serif); margin: 0; letter-spacing: -0.02em; }
.cta-band p { color: #CFD9E8; font: 400 17px/1.6 var(--ff-sans); margin: 0 0 10px; }
.cta-side {
  background: var(--c-areia); border: 1px solid var(--ln); border-radius: var(--r-md);
  padding: 24px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 10px;
}
.cta-side-title { font: 700 18px/1.3 var(--ff-serif); color: var(--c-azul); margin: 0; }
.cta-side p { font: 400 14px/1.5 var(--ff-sans); color: var(--c-grafite-soft); margin: 0 0 4px; }

/* =================================================================
   Artigo: layout + corpo + blocos
   ================================================================= */
.article-layout { display: grid; grid-template-columns: var(--read-w) 1fr; gap: 64px; align-items: start; padding-top: 8px; }
.article-main { max-width: var(--read-w); min-width: 0; }
.article-aside { position: sticky; top: 96px; display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.article-hd { padding-bottom: 32px; border-bottom: 1px solid var(--ln); margin-bottom: 32px; }
.article-hd .kicker { margin-bottom: 12px; }
.article-hd .h1-article { margin: 0 0 16px; }
.article-meta-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; font: 400 14px/1.4 var(--ff-sans); color: var(--c-cinza); }
.article-meta-row-left { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.author-mini { display: flex; align-items: center; gap: 8px; }
.author-mini img, .author-mini-avatar-img { width: 32px; height: 32px; border-radius: var(--r-pill); object-fit: cover; object-position: center top; }
.author-mini-name { font-weight: 600; color: var(--c-grafite); }
.meta-dot { width: 3px; height: 3px; border-radius: 50%; background: var(--c-cinza-areia); display: inline-block; }
.share-row { display: flex; gap: 4px; }
.share-btn {
  width: 36px; height: 36px; border-radius: var(--r-pill); background: var(--c-areia);
  border: 0; color: var(--c-azul); cursor: pointer; display: flex; align-items: center;
  justify-content: center; transition: all 0.15s;
}
.share-btn:hover { background: var(--c-azul); color: #fff; }
.share-btn.copied { background: var(--c-verde); color: #fff; }

/* Corpo do artigo */
.article-body { font: 400 var(--fs-body)/1.7 var(--ff-sans); color: var(--c-grafite); }
.article-body > * { margin: 0 0 24px; }
.article-body > *:last-child { margin-bottom: 0; }
.article-body p { margin: 0 0 24px; }
.article-body > p:first-of-type { font-size: var(--fs-lead); line-height: 1.6; color: var(--c-grafite); }
.article-body h2 { font: 700 28px/1.25 var(--ff-serif); color: var(--c-azul); margin: 48px 0 16px; scroll-margin-top: 96px; letter-spacing: -0.01em; }
.article-body h3 { font: 600 21px/1.35 var(--ff-serif); color: var(--c-azul); margin: 32px 0 12px; }
.article-body a { color: var(--c-azul-medio); text-decoration: underline; text-underline-offset: 3px; }
.article-body a:hover { color: var(--c-verde-d); }
.article-body ul, .article-body ol { padding-left: 24px; margin: 0 0 24px; }
.article-body li { margin-bottom: 8px; }
.article-body strong { color: var(--c-azul); font-weight: 700; }
.article-body figure { margin: 0 0 24px; }
.article-body .wp-block-image img { border-radius: var(--r-md); display: block; width: 100%; }
.article-body .wp-block-image figcaption { font: 400 13px/1.5 var(--ff-sans); color: var(--c-cinza); margin-top: 8px; }
.article-body hr, .wp-block-separator { border: 0; border-top: 1px solid var(--ln); margin: 40px 0; }

/* Bloco: Resumo rápido (tldr-box) */
.article-body .tldr-box { background: var(--c-areia); border-left: 4px solid var(--c-verde); border-radius: var(--r-md); padding: 24px 28px; margin: 32px 0; }
.article-body .tldr-box h2 { font: 700 16px/1.2 var(--ff-sans); color: var(--c-azul); margin: 0 0 12px; text-transform: uppercase; letter-spacing: 0.04em; }
.article-body .tldr-box ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.article-body .tldr-box li { position: relative; padding-left: 24px; font: 400 16px/1.55 var(--ff-sans); margin: 0; }
.article-body .tldr-box li::before { content: ''; position: absolute; left: 0; top: 9px; width: 8px; height: 8px; border-radius: 50%; background: var(--c-verde); }

/* Bloco: Tabela */
.article-body .wp-block-table { margin: 32px 0; overflow-x: auto; }
.article-body table { width: 100%; border-collapse: collapse; border: 1px solid var(--ln); border-radius: var(--r-md); overflow: hidden; }
.article-body table thead { background: var(--c-azul); }
.article-body table th { color: #fff; padding: 14px 16px; text-align: left; font: 600 14px/1.4 var(--ff-sans); text-transform: uppercase; letter-spacing: 0.04em; }
.article-body table td { padding: 14px 16px; border-top: 1px solid var(--ln); font: 400 15px/1.5 var(--ff-sans); }
.article-body table tr:nth-child(even) td { background: var(--c-areia); }

/* Bloco: CTA (cta-box) */
.article-body .cta-box { margin: 40px 0; border-radius: var(--r-md) !important; }
.article-body .cta-box p { color: #fff; margin: 0 0 16px; }
.article-body .cta-box .wp-block-buttons { display: flex; justify-content: center; }
.article-body .cta-box .wp-block-button__link { background: var(--c-verde); color: var(--c-azul); font-weight: 700; border-radius: var(--r-sm); padding: 14px 28px; text-decoration: none; }
.article-body .cta-box .wp-block-button__link:hover { background: #fff; }

/* Bloco: Caixa do autor (author-box) */
.article-body .author-box { border: 1px solid var(--ln); border-radius: var(--r-md) !important; margin: 32px 0; }
.article-body .author-box a { color: var(--c-azul-medio); }

/* Caixa de autoria/revisão (item fixo do tema, fim do artigo) */
.post-author-box {
  display: flex; gap: 16px; align-items: flex-start;
  margin: 40px 0 18px; padding: 20px 22px;
  background: var(--c-areia-2); border: 1px solid var(--ln); border-radius: var(--r-md);
}
.post-author-box .avatar.lg { width: 60px; height: 60px; flex: none; }
.post-author-box .pab-body { min-width: 0; }
.post-author-box .pab-line { font: 400 14.5px/1.5 var(--ff-sans); color: var(--c-grafite); margin: 0 0 4px; }
.post-author-box .pab-line a { color: var(--c-azul-medio); font-weight: 600; text-decoration: none; }
.post-author-box .pab-line a:hover { text-decoration: underline; }
.post-author-box .pab-bio { font: 400 13.5px/1.6 var(--ff-sans); color: var(--c-cinza); margin: 0; }

/* Disclaimer (OAB) ao fim do artigo */
.disclaimer {
  display: flex; gap: 12px; align-items: flex-start;
  margin: 0 0 8px; padding: 14px 16px;
  border-left: 3px solid var(--c-verde); background: #fbfaf7; border-radius: 0 var(--r-sm) var(--r-sm) 0;
}
.disclaimer svg { flex: none; color: var(--c-verde-d); margin-top: 2px; }
.disclaimer p { font: 400 12.5px/1.6 var(--ff-sans); color: var(--c-cinza); margin: 0; }

/* TOC */
.toc { background: #fff; border: 1px solid var(--ln); border-radius: var(--r-md); padding: 20px; }
.toc-head { font: 700 13px/1 var(--ff-sans); color: var(--c-azul); text-transform: uppercase; letter-spacing: 0.06em; margin: 0 0 12px; display: flex; align-items: center; gap: 8px; }
.toc-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 2px; border-left: 2px solid var(--ln); }
.toc-list a { display: block; padding: 8px 14px; font: 400 14px/1.4 var(--ff-sans); color: var(--c-grafite); text-decoration: none; border-left: 2px solid transparent; margin-left: -2px; }
.toc-list a:hover { color: var(--c-azul); }
.toc-list a.active { color: var(--c-verde-d); font-weight: 600; border-left-color: var(--c-verde); }

/* ---------- Arquivo / categoria ---------- */
.cat-header { padding: 56px 0; background: var(--c-areia); border-bottom: 1px solid var(--ln); }
.cat-header h1 { font: 700 42px/1.12 var(--ff-serif); letter-spacing: -0.02em; color: var(--c-azul); margin: 8px 0 12px; }
.cat-header h1 span { color: var(--c-verde-d); }
.cat-header p { font: 400 17px/1.55 var(--ff-sans); color: var(--c-grafite-soft); margin: 0; max-width: 640px; }
.cat-count { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; font: 500 14px/1 var(--ff-sans); color: var(--c-cinza); }
.cat-search { margin-top: 16px; max-width: 560px; }
.empty-state { font: 400 17px/1.6 var(--ff-sans); color: var(--c-cinza); padding: 32px 0; }

/* ---------- Paginação ---------- */
.pagination { margin-top: 48px; }
.pagination .nav-links { display: flex; justify-content: center; align-items: center; gap: 6px; flex-wrap: wrap; }
.pagination .page-numbers { min-width: 40px; height: 40px; border: 1px solid var(--ln); background: #fff; border-radius: var(--r-pill); font: 500 14px/1 var(--ff-sans); color: var(--c-grafite); display: inline-flex; align-items: center; justify-content: center; padding: 0 12px; text-decoration: none; }
.pagination .page-numbers:hover { border-color: var(--c-azul-medio); color: var(--c-azul); }
.pagination .page-numbers.current { background: var(--c-azul); color: #fff; border-color: var(--c-azul); }

/* ---------- Páginas institucionais ---------- */
.page-hero { background: var(--c-areia); border-bottom: 1px solid var(--ln); padding: 56px 0; }
.page-hero-inner { max-width: 720px; }
.page-hero h1 { font: 700 44px/1.12 var(--ff-serif); letter-spacing: -0.02em; color: var(--c-azul); margin: 8px 0 16px; text-wrap: balance; }
.page-hero p { font: 400 18px/1.55 var(--ff-sans); color: var(--c-grafite-soft); margin: 0; max-width: 640px; }
.page-body-wrap { max-width: var(--read-w); }
.page-featured { margin: 0 0 32px; }
.page-featured img { border-radius: var(--r-md); }

/* ---------- Formulário de contato ---------- */
.benefacto-form { max-width: var(--read-w); }
.benefacto-hp { position: absolute; left: -9999px; }
.form-field { margin-bottom: 20px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.form-field label { display: block; font: 600 14px/1.4 var(--ff-sans); color: var(--c-azul); margin-bottom: 6px; }
.form-field .req { color: var(--c-verde); }
.benefacto-form input, .benefacto-form textarea { width: 100%; border: 1px solid var(--ln); border-radius: var(--r-sm); padding: 12px 14px; font: 400 16px/1.5 var(--ff-sans); color: var(--c-grafite); background: #fff; font-family: var(--ff-sans); }
.benefacto-form input:focus, .benefacto-form textarea:focus { outline: none; border-color: var(--c-verde); box-shadow: 0 0 0 3px rgba(42,157,143,0.15); }
.benefacto-form input.invalid, .benefacto-form textarea.invalid { border-color: #c0392b; }
.form-aviso { font: 400 13px/1.5 var(--ff-sans); color: var(--c-cinza); margin: 0 0 16px; }
.form-actions { display: flex; }
.form-erros { background: #fdecea; border-left: 4px solid #c0392b; border-radius: var(--r-sm); padding: 14px 18px; margin-bottom: 20px; }
.form-erros ul { margin: 0; padding-left: 18px; font: 400 14px/1.6 var(--ff-sans); color: #922b21; }
.form-sucesso { background: rgba(42,157,143,0.08); border: 1px solid var(--c-verde); border-radius: var(--r-md); padding: 32px; text-align: center; max-width: var(--read-w); }
.form-sucesso svg { color: var(--c-verde); }
.form-sucesso h3 { font: 700 22px/1.3 var(--ff-serif); color: var(--c-azul); margin: 12px 0 8px; }
.form-sucesso p { font: 400 16px/1.6 var(--ff-sans); color: var(--c-grafite-soft); margin: 0; }

/* ---------- 404 ---------- */
.error-404 { max-width: var(--read-w); }
.error-404 .lead { margin: 16px 0 24px; }
.error-404-search { margin-bottom: 24px; }
.error-404-temas { margin: 0 0 28px; }
.error-404-temas-label { font: 500 14px/1.5 var(--ff-sans); color: var(--c-grafite-soft); margin: 0 0 12px; }

/* Chips de navegação (atalhos de tema) */
.chip-row { display: flex; flex-wrap: wrap; gap: 10px; }
.chip {
  display: inline-flex; align-items: center; padding: 9px 16px; border-radius: var(--r-pill);
  background: var(--c-areia-2); border: 1px solid var(--c-cinza-areia);
  font: 600 13.5px/1 var(--ff-sans); color: var(--c-azul); text-decoration: none; transition: 0.15s;
}
.chip:hover { background: var(--c-verde-soft); border-color: var(--c-verde); color: var(--c-verde-d); }

/* ---------- Voltar ao topo + toast + WhatsApp flutuante ---------- */
.to-top { position: fixed; bottom: 24px; right: 24px; width: 48px; height: 48px; border-radius: var(--r-pill); background: var(--c-azul); color: #fff; border: 0; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 24px rgba(19,49,92,0.25); z-index: 40; transition: opacity 0.2s, transform 0.2s; }
.to-top:hover { background: var(--c-azul-medio); }
.benefacto-toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%); background: var(--c-azul); color: #fff; padding: 12px 20px; border-radius: var(--r-pill); font: 500 14px/1 var(--ff-sans); box-shadow: 0 12px 30px rgba(0,0,0,0.3); z-index: 200; display: flex; align-items: center; gap: 8px; }
.wa-float { position: fixed; right: 24px; bottom: 84px; z-index: 41; display: inline-flex; align-items: center; gap: 10px; background: var(--c-verde); color: #06302B; font: 700 14px/1 var(--ff-sans); padding: 13px 18px; border-radius: var(--r-pill); text-decoration: none; box-shadow: 0 12px 34px -8px rgba(42,157,143,0.6); }
.wa-float svg { width: 21px; height: 21px; }
.wa-float .wa-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--c-verde-d); box-shadow: 0 0 0 3px rgba(30,116,104,0.25); }
.wa-float:hover { background: var(--c-verde-d); color: #fff; }
.page-links { margin-top: 24px; font: 500 14px/1 var(--ff-sans); }
.page-links a, .page-links > span { padding: 6px 10px; border: 1px solid var(--ln); border-radius: var(--r-sm); margin-right: 6px; text-decoration: none; }

/* ---------- Footer ---------- */
.footer { background: var(--c-azul-deep); color: #9DAEC4; padding: 62px 0 28px; }
.footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 34px; padding-bottom: 34px; border-bottom: 1px solid rgba(255,255,255,0.1); }
.footer-tagline { font: 400 15px/1.5 var(--ff-sans); color: rgba(255,255,255,0.85); margin: 12px 0 0; }
.footer-desc { font: 400 13.5px/1.6 var(--ff-sans); color: #8B9DB5; margin: 14px 0 16px; max-width: 280px; }
.footer-social { display: flex; gap: 10px; }
.footer-social a { width: 34px; height: 34px; border-radius: 9px; border: 1px solid rgba(255,255,255,0.16); display: flex; align-items: center; justify-content: center; color: #B7C4D6; }
.footer-social a:hover { background: rgba(255,255,255,0.08); color: #fff; }
.footer-social svg { width: 18px; height: 18px; }
.footer-title { font: 700 12px/1 var(--ff-sans); text-transform: uppercase; letter-spacing: 0.1em; color: #fff; margin: 0 0 16px; }
.footer-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.footer-list a { color: rgba(255,255,255,0.75); text-decoration: none; font: 400 14px/1.4 var(--ff-sans); }
.footer-list a:hover { color: #fff; }
.footer-bottom { padding-top: 22px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font: 400 12.5px/1.5 var(--ff-sans); color: #7E91AB; }
.footer-bottom .sig { display: inline-flex; align-items: center; gap: 9px; color: #B7C4D6; }
.footer-bottom .sig svg { width: 16px; height: 16px; color: var(--c-verde); flex: none; }

/* =================================================================
   Responsivo
   ================================================================= */

/* Cabeçalho compacto para a faixa 1025-1499px (laptops e tablets em
   paisagem). A navegação inline da Benefacto é larga ("CNIS e Tempo de
   Contribuição"); sem isto ela estoura a largura abaixo de ~1500px.
   Aqui a busca vira ícone e o espaçamento aperta — a nav continua visível. */
@media (min-width: 1280px) and (max-width: 1499px) {
  .header-inner { gap: 18px; }
  .nav-list { gap: 2px; }
  .nav-list a { padding: 9px 10px; font-size: 14px; }
  .header-actions { gap: 8px; }
  .search-mini { padding: 0; width: 44px; height: 44px; justify-content: center; border-radius: var(--r-pill); background: var(--c-areia-2); border: 1px solid var(--c-cinza-areia); }
  .search-mini-label { display: none; }
}
/* Desktop pleno (≥1500px): a busca volta a ser pílula "Buscar"; um leve
   aperto na nav garante que a navegação caiba sem estouro também em telas
   de exatamente 1500px (antes sobravam ~14px). */
@media (min-width: 1500px) {
  .nav-list { gap: 3px; }
  .nav-list a { padding: 9px 11px; }
}

/* Colapso do cabeçalho para o menu off-canvas (burger).
   O burger e seu JS permanecem inalterados; aqui só decidimos QUANDO
   trocar a navegação inline pelo burger. Abaixo de 1280px (celulares,
   tablets em retrato E paisagem, e laptops em janela estreita) usamos
   sempre o burger — a nav inline da Benefacto só cabe sem estouro a
   partir de ~1280px. Acima disso ela reaparece (compacta até 1499px,
   plena a partir de 1500px). */
@media (max-width: 1279px) {
  .nav { display: none; }
  .header-cta { display: none; }
  .header-burger { display: flex; }
  .header-inner { gap: 16px; }
  .header-actions { gap: 6px; margin-left: auto; }
  /* Busca continua acessível, agora como ícone */
  /* Busca como ícone, com contorno bege para destacar do cabeçalho */
  .search-mini { padding: 0; width: 44px; height: 44px; justify-content: center; border-radius: var(--r-pill); background: var(--c-areia-2); border: 1px solid var(--c-cinza-areia); color: var(--c-azul); }
  .search-mini:hover { background: var(--c-areia); border-color: var(--c-cinza); }
  .search-mini-label { display: none; }
}

@media (max-width: 1024px) {
  .container { padding: 0 32px; }
  .article-layout { grid-template-columns: 1fr; gap: 40px; }
  .article-aside { display: none; }
  /* Hero passa a respeitar o respiro lateral (antes o padding lateral era
     zerado pelo atalho de padding, colando o conteúdo nas bordas) */
  .hero-grid { grid-template-columns: 1fr; gap: 40px; padding-left: 32px; padding-right: 32px; }
  .hero-card { max-width: 460px; }
  .eeat-grid { grid-template-columns: 1fr; gap: 32px; }
  .situacao-grid, .theme-grid { grid-template-columns: repeat(2,1fr); }
  .destaque-grid, .article-grid { grid-template-columns: repeat(2,1fr); }
  .related-grid { grid-template-columns: 1fr; }
  /* Newsletter em coluna única — impede que o form estoure a caixa */
  .newsletter { grid-template-columns: 1fr; }
  .newsletter > div, .newsletter form { min-width: 0; }
  .newsletter form { flex-wrap: wrap; }
  .newsletter input { min-width: 0; }
}
@media (max-width: 900px) {
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .trust-grid { grid-template-columns: 1fr 1fr; }
  .topbar { display: none; }
}
@media (max-width: 640px) {
  :root {
    --fs-hero-h1: 34px; --fs-article-h1: 27px; --fs-h2: 25px; --fs-h3: 18px;
    --fs-body: 17px; --fs-lead: 18px; --fs-meta: 13px;
  }
  .container { padding: 0 20px; }
  .section { padding: 52px 0; }
  .section-head { margin-bottom: 32px; }
  .header-inner { height: 62px; }
  .hero-grid { padding: 44px 20px 52px; }
  .hero-card { max-width: none; }
  .situacao-grid, .theme-grid, .article-grid, .destaque-grid, .trust-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .footer-bottom { flex-direction: column; gap: 10px; }

  /* Hero: botões empilhados e em largura cheia (alvos de toque maiores) */
  .hero-actions { gap: 10px; }
  .hero-actions .btn { flex: 1 1 100%; width: 100%; }

  /* Faixa de fontes: respeita o respiro lateral do mobile */
  .sources .container { padding: 14px 20px; gap: 8px 12px; }

  /* Newsletter: form totalmente empilhado, sem corte */
  .newsletter { padding: 28px 22px; }
  .newsletter h2 { font-size: 23px; }
  .newsletter form { flex-direction: column; align-items: stretch; gap: 8px; }
  .newsletter input { padding: 13px 14px; }
  .newsletter form .btn { width: 100%; justify-content: center; }

  /* CTA final um pouco mais compacto */
  .cta-band { padding: 60px 0; }
  .cta-band h2 { font-size: 26px; }
  .cat-header h1, .page-hero h1 { font-size: 30px; }
  .form-row { grid-template-columns: 1fr; }

  /* Tabelas do artigo: rolagem horizontal garantida + células mais enxutas */
  .article-body table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; white-space: nowrap; }
  .article-body table th, .article-body table td { padding: 11px 13px; font-size: 14px; }

  /* TLDR e blocos com respiro lateral menor */
  .article-body .tldr-box { padding: 20px 18px; }
  .post-author-box { padding: 18px 16px; gap: 14px; }

  /* Botões flutuantes: FAB circular do WhatsApp + voltar ao topo, sem sobrepor */
  /* FAB do WhatsApp circular: oculta rótulo e o ponto-pulso (que ficava à
     esquerda do ícone e o desalinhava) e zera o gap → ícone 100% centralizado */
  .wa-float { padding: 0; width: 54px; height: 54px; gap: 0; justify-content: center; border-radius: 50%; right: 18px; bottom: 80px; }
  .wa-float span.wa-label { display: none; }
  .wa-float .wa-dot { display: none; }
  .to-top { width: 44px; height: 44px; right: 18px; bottom: 22px; }
}

/* Celulares muito estreitos (≤360px: iPhone SE 1ª ger., Android pequenos).
   Reduz a marca para o cabeçalho caber sem estouro lateral. */
@media (max-width: 360px) {
  :root { --fs-wordmark: 21px; }
  .container { padding: 0 16px; }
  .brand-stack .brand-tag { letter-spacing: 0.18em; }
  .header-actions { gap: 2px; }
}

/* Reduz movimento */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}


/* =================================================================
   v1.4.0 - Home captação-first (hero claro + foto, 3 painéis de serviços,
   prova social, transparência, FAQ, botões na cor do WhatsApp).
   ================================================================= */


/* ====== Hero claro (estilo referencia) com foto a direita ====== */
.hero-lite{position:relative;background:linear-gradient(125deg,#e8f0f9 0%,#edf3ef 55%,#f4f1ec 100%);overflow:hidden}
.hl-decor{position:absolute;inset:0;pointer-events:none;background:radial-gradient(55% 75% at 88% 6%,rgba(42,157,143,.10),transparent 60%),radial-gradient(45% 60% at 6% 96%,rgba(29,78,137,.08),transparent 60%)}
.hero-lite-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:end;min-height:600px}
.hero-lite-copy{padding:92px 0 104px;max-width:600px}
.hl-eyebrow{display:inline-block;font:600 14px/1 var(--ff-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--c-cinza);margin-bottom:18px}
.hl-title{font:700 60px/1.02 var(--ff-serif);text-transform:uppercase;letter-spacing:-.01em;color:var(--c-azul-medio);margin:0 0 22px}
.hl-sub{font:400 19px/1.65 var(--ff-sans);color:var(--c-grafite-soft);margin:0 0 30px;max-width:545px}
.hl-sub b{color:var(--c-azul-medio);font-weight:700}
.hl-actions{margin-bottom:26px}
.btn--lg{padding:16px 28px;min-height:56px;font-size:16px}

/* ====== Botoes na paleta original do WhatsApp (#25D366) ====== */
.btn--wa{background:#00B71C;color:#fff;border-color:#00B71C;font-weight:700;box-shadow:0 1px 2px rgba(19,49,92,.10),0 10px 22px -10px rgba(0,183,28,.55)}
.btn--wa:hover{background:#10D32E;border-color:#10D32E;color:#fff;transform:translateY(-1px)}
.btn--wa svg{color:#fff}
.btn--wa-outline{background:#fff;border:1.5px solid #00B71C;color:#048018;font-weight:700}
.btn--wa-outline:hover{background:#10D32E;border-color:#10D32E;color:#fff;transform:translateY(-1px)}
.wa-float{background:#00B71C;color:#fff;box-shadow:0 12px 34px -8px rgba(0,183,28,.6)}
.wa-float:hover{background:#10D32E;color:#fff}
.wa-float .wa-dot{background:#007012;box-shadow:0 0 0 3px rgba(0,112,18,.25)}

.hl-trust{display:flex;flex-direction:column;gap:9px;font:500 14.5px/1.4 var(--ff-sans);color:var(--c-grafite-soft)}
.hl-trust span{display:inline-flex;align-items:center;gap:9px}
.hl-trust svg{color:var(--c-verde-d);flex:none}
.hero-lite-photo{position:relative;align-self:end;display:flex;align-items:flex-end;justify-content:center;min-height:600px}
.hlp-stage{position:relative;width:100%;max-width:380px;height:560px;border-radius:20px 20px 0 0;background:linear-gradient(180deg,#dbe7f4,#eaf1f8);display:flex;align-items:flex-end;justify-content:center;overflow:hidden;box-shadow:0 34px 70px -34px rgba(19,49,92,.5)}
.hlp-img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.hlp-silhouette{width:90%;height:auto;color:#a9c0db;fill:currentColor;display:block}
.hlp-note{position:absolute;top:20px;left:0;right:0;text-align:center;font:600 12px/1 var(--ff-sans);letter-spacing:.06em;text-transform:uppercase;color:#5f6f86}
.hlp-badge{position:absolute;z-index:3;background:#fff;border-radius:12px;padding:10px 14px;font:600 13px/1 var(--ff-sans);color:var(--c-grafite);box-shadow:0 16px 34px -14px rgba(19,49,92,.34);display:flex;align-items:center;gap:8px;white-space:nowrap;max-width:none}
.hlp-badge svg{flex:none;display:block}
.hb-tx{display:inline-block;line-height:1}
.hlp-badge b{color:var(--c-azul)}
.hlp-badge svg{color:var(--c-verde-d)}
.hlp-badge--a{top:56px;left:-8px}
.hlp-badge--b{bottom:150px;left:-10px}
.hl-wave{position:absolute;left:0;bottom:-1px;width:100%;height:64px;z-index:1;display:block}
@media(max-width:1024px){
  .hero-lite-grid{grid-template-columns:1fr;min-height:auto;gap:8px}
  .hero-lite-copy{padding:60px 0 16px}
  .hero-lite-photo{min-height:auto}
  .hlp-stage{height:440px;max-width:340px;margin:0 auto}
  .hl-title{font-size:46px}
}
@media(max-width:640px){
  .hl-title{font-size:36px}
  .hl-sub{font-size:17px}
  .hlp-stage{height:360px;max-width:300px}
  .hlp-badge--a{left:0}
  .hlp-badge--b{left:0}
  .hl-actions .btn{width:100%}
}

/* Hero: 2 linhas + retrato */
.h1-hero .accent{color:#7FE0CF;display:block}
.hero-portrait{display:flex;justify-content:center;align-items:center;position:relative}
.hp-frame{position:relative;width:100%;max-width:360px;background:linear-gradient(165deg,#1f4885,#0e2a51);border:1px solid rgba(255,255,255,.14);border-radius:22px;padding:34px 28px 28px;text-align:center;box-shadow:0 34px 80px -34px rgba(3,12,30,.85)}
.hp-online{display:inline-flex;align-items:center;gap:7px;background:rgba(42,157,143,.16);border:1px solid rgba(95,184,168,.35);color:#A9DCD4;font:600 11.5px/1 var(--ff-sans);letter-spacing:.04em;text-transform:uppercase;padding:7px 13px;border-radius:999px;margin-bottom:18px}
.hp-online .pdot{width:7px;height:7px;border-radius:50%;background:#5FE0CB;box-shadow:0 0 0 3px rgba(95,224,203,.22)}
.hp-photo{width:128px;height:128px;border-radius:50%;margin:0 auto;display:flex;align-items:center;justify-content:center;background:linear-gradient(140deg,#2A9D8F,#1D4E89);color:#fff;font:700 42px/1 var(--ff-sans);letter-spacing:.02em;box-shadow:0 0 0 6px rgba(255,255,255,.08),0 16px 30px -12px rgba(0,0,0,.5)}
.hp-name{color:#fff;font:700 22px/1.2 var(--ff-serif);margin:18px 0 0}
.hp-role{color:#9FD3CC;font:600 11.5px/1.4 var(--ff-sans);letter-spacing:.08em;text-transform:uppercase;margin:6px 0 0}
.hp-bio{color:#C8D6E8;font:400 13px/1.6 var(--ff-sans);margin:12px 0 16px}
.hp-photo-wrap{position:relative;width:128px;margin:0 auto}
.hp-verify{position:absolute;right:0;bottom:2px;width:38px;height:38px;border-radius:50%;background:var(--c-verde);color:#06302B;display:flex;align-items:center;justify-content:center;border:4px solid #15396c;box-shadow:0 6px 16px -6px rgba(0,0,0,.55)}
.hp-verify svg{width:18px;height:18px}
.hp-stats{display:flex;align-items:stretch;justify-content:center;gap:0;margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.13)}
.hp-stat{flex:1;display:flex;flex-direction:column;gap:3px;padding:0 6px}
.hp-stat b{font:800 21px/1 var(--ff-serif);color:#fff;letter-spacing:-.01em}
.hp-stat span{font:500 10px/1.2 var(--ff-sans);color:#9FB4CE;text-transform:uppercase;letter-spacing:.05em}
.hp-div{width:1px;background:rgba(255,255,255,.14);margin:2px 0}
/* Intro band */
.intro{background:#fff}
.intro-inner{max-width:780px;margin:0 auto;text-align:center}
.intro-inner .h2{margin-bottom:14px}
.intro-inner p{font:400 18px/1.65 var(--ff-sans);color:var(--c-grafite-soft);margin:0 0 24px}
/* ====== Areas de atuacao: 3 paineis ricos ====== */
.svc-panels{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch}
.svc-panel{position:relative;background:#fff;border:1px solid var(--ln);border-radius:var(--r-lg);padding:32px 30px;display:flex;flex-direction:column;box-shadow:var(--sh-card)}
.svc-panel--feature{border:2px solid var(--c-azul-medio);box-shadow:var(--sh-card-hover)}
.sv-badge{position:absolute;top:20px;right:0;background:var(--c-azul-medio);color:#fff;font:700 11px/1 var(--ff-sans);letter-spacing:.08em;text-transform:uppercase;padding:9px 15px;border-radius:8px 0 0 8px}
.svc-panel-ic{width:62px;height:62px;border-radius:16px;background:linear-gradient(155deg,#EEF4FA,#E4EFEC);box-shadow:inset 0 0 0 1px rgba(19,49,92,.07);display:flex;align-items:center;justify-content:center;color:var(--c-azul);margin-bottom:20px}
.svc-panel h3{font:700 26px/1.12 var(--ff-serif);color:var(--c-azul-medio);margin:0 0 22px;letter-spacing:-.01em}
.svc-list{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-direction:column;gap:17px;flex:1}
.svc-list .it-name{font:700 16px/1.3 var(--ff-sans);color:var(--c-grafite);display:block;margin-bottom:3px}
.svc-list .it-desc{font:400 14px/1.5 var(--ff-sans);color:var(--c-cinza);display:block}
.svc-intro{font:400 15px/1.65 var(--ff-sans);color:var(--c-grafite-soft);margin:0 0 20px}
.svc-intro b{color:var(--c-azul-medio);font-weight:700}
.svc-checks{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:13px;flex:1}
.svc-checks li{display:flex;gap:10px;align-items:flex-start;font:600 14.5px/1.4 var(--ff-sans);color:var(--c-grafite)}
.svc-checks li svg{color:var(--c-verde-d);flex:none;margin-top:1px}
.svc-foot{font:400 14px/1.55 var(--ff-sans);color:var(--c-grafite-soft);margin:0 0 16px}
.svc-foot b{color:var(--c-azul-medio);font-weight:700}
.svc-panel .btn{width:100%;margin-top:auto}
.btn--outline{background:#fff;border:1.5px solid var(--c-azul-medio);color:var(--c-azul-medio)}
.btn--outline:hover{background:var(--c-azul-soft);color:var(--c-azul);transform:translateY(-1px)}
/* Por que */
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.why-points{display:flex;flex-direction:column;gap:14px}
.why-point{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid var(--ln);border-radius:var(--r-md);padding:18px 20px;box-shadow:var(--sh-card)}
.why-point .wpi{width:42px;height:42px;border-radius:11px;background:var(--c-verde-soft);color:var(--c-verde-d);display:flex;align-items:center;justify-content:center;flex:none}
.why-point h4{font:700 15.5px/1.3 var(--ff-sans);color:var(--c-grafite);margin:0 0 3px}
.why-point p{font:400 13px/1.55 var(--ff-sans);color:var(--c-cinza);margin:0}
/* Faixa de numeros */
.stats-band{background:radial-gradient(120% 150% at 50% 0%,#1D4E89 0%,#13315C 62%);color:#fff;padding:66px 0;position:relative;overflow:hidden}
.stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;text-align:center;position:relative;max-width:1120px;margin:0 auto}
.stat{padding:6px 4px}
.stat-num{font:700 40px/1 var(--ff-serif);color:#fff;letter-spacing:-.02em;min-height:40px;display:flex;align-items:center;justify-content:center;gap:0}
.stat-num--sm{font-size:25px;letter-spacing:0}
.stat-num .u{color:#7FE0CF}
.stat-label{font:400 13px/1.45 var(--ff-sans);color:#CFDAE8;margin-top:9px}
.stat-tag{display:inline-block;margin-top:7px;font:600 10px/1 var(--ff-sans);letter-spacing:.06em;text-transform:uppercase;color:#0E2647;background:#7FE0CF;border-radius:999px;padding:4px 8px}
.stat--ph .stat-num{color:#A9DCD4}
.stats-note{text-align:center;color:#9DB2CE;font:400 12.5px/1.5 var(--ff-sans);margin-top:26px;position:relative}
/* Presenca na midia */
.media-band{background:#fff;border-bottom:1px solid var(--ln);padding:36px 0}
.media-label{text-align:center;font:600 12px/1 var(--ff-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--c-cinza);margin:0 0 20px}
.media-logos{display:flex;align-items:center;justify-content:center;gap:34px;flex-wrap:wrap}
.media-logo{display:inline-flex;align-items:center;justify-content:center;min-width:150px;height:60px;padding:0 26px;border:1px dashed var(--c-cinza-areia);border-radius:12px;background:var(--c-areia-2);font:700 28px/1 var(--ff-serif);color:#7a8493}
/* Transparencia */
.transp-wrap{margin-top:46px;padding-top:38px;border-top:1px solid var(--ln)}
.transp-kicker{display:block;text-align:center;font:600 12px/1 var(--ff-sans);letter-spacing:.15em;text-transform:uppercase;color:var(--c-verde-d);margin-bottom:20px}
.transp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.transp-card{background:#fff;border:1px solid var(--ln);border-radius:var(--r-md);padding:20px;display:flex;gap:13px;align-items:flex-start;box-shadow:var(--sh-card)}
.transp-card .ti{width:40px;height:40px;border-radius:10px;background:var(--c-verde-soft);color:var(--c-verde-d);display:flex;align-items:center;justify-content:center;flex:none}
.transp-card .tl{font:600 11px/1.2 var(--ff-sans);color:var(--c-cinza);text-transform:uppercase;letter-spacing:.05em}
.transp-card .tv{font:700 14.5px/1.3 var(--ff-serif);color:var(--c-azul);margin-top:5px}
/* FAQ */
.faq-wrap{max-width:840px;margin:0 auto}
.faq-group-title{font:700 13px/1 var(--ff-sans);text-transform:uppercase;letter-spacing:.1em;color:var(--c-verde-d);margin:32px 0 14px}
.faq-item{border:1px solid var(--ln);border-radius:var(--r-md);background:#fff;margin-bottom:12px;overflow:hidden;box-shadow:var(--sh-card)}
.faq-item summary{list-style:none;cursor:pointer;padding:18px 22px;font:700 16.5px/1.4 var(--ff-serif);color:var(--c-azul);display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary .fq-ic{color:var(--c-verde-d);transition:transform .2s;flex:none;display:flex}
.faq-item[open] summary .fq-ic{transform:rotate(180deg)}
.faq-item .faq-a{padding:0 22px 20px;font:400 15px/1.65 var(--ff-sans);color:var(--c-grafite-soft)}
.faq-item .faq-a p{margin:0}
/* Blog thumbs */
.bcard-thumb{position:relative;display:flex;align-items:center;justify-content:center}
.bcard-ic{color:rgba(255,255,255,.92)}
.bcard-badge{position:absolute;left:14px;bottom:12px;background:var(--c-verde);color:#06302B;font:700 11px/1 var(--ff-sans);padding:6px 11px;border-radius:8px}
/* Responsivo */
@media(max-width:1024px){
  .why-grid{grid-template-columns:1fr;gap:32px}
  .svc-panels{grid-template-columns:1fr;max-width:600px;margin:0 auto}
  .transp-grid{grid-template-columns:repeat(2,1fr)}
  .stats-grid{grid-template-columns:repeat(3,1fr);gap:30px 16px}
  .hp-frame{max-width:420px}
}
@media(max-width:640px){
  .transp-grid{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .stats-grid .stat:last-child{grid-column:1 / -1}
  .stat-num{font-size:32px}
  .hp-stat b{font-size:19px}
  .intro-inner p{font-size:16.5px}
  .svc-panel{padding:26px 22px}
}

.media-logo-img{max-height:46px;width:auto;filter:grayscale(1);opacity:.85}

/* =================================================================
   v1.3.0 - Revisão de layout de 25/09/2026 (itens P0 e P1)
   ================================================================= */
/* Caixa de CTA do corpo: o negrito herdava o azul e sumia no fundo azul */
.article-body .cta-box strong { color: inherit; }
/* Caixas de CTA de fundo claro (#f4f4f4): o parágrafo branco não aparecia; texto escuro */
.article-body .cta-box[style*="f4f4f4"] p { color: var(--c-grafite); }
.article-body .cta-box[style*="f4f4f4"] strong { color: var(--c-azul); }

/* Contraste WCAG AA nos botões: verde do WhatsApp mais escuro (4,5:1) e teal um tom mais claro com texto escuro (4,8:1) */
.btn--wa { background: #008A1F; border-color: #008A1F; box-shadow: 0 1px 2px rgba(19,49,92,.10), 0 10px 22px -10px rgba(0,138,31,.55); }
.btn--wa:hover { background: #007518; border-color: #007518; }
.btn--wa-outline { border-color: #008A1F; color: #007518; }
.btn--wa-outline:hover { background: #007518; border-color: #007518; }
.wa-float { background: #008A1F; box-shadow: 0 12px 34px -8px rgba(0,138,31,.6); }
.wa-float:hover { background: #007518; }
.btn--accent { background: #30A698; }
.benefacto-search .search-submit { background: #30A698; }
.article-body .cta-box .wp-block-button__link { background: #30A698; color: var(--c-azul-deep); }
.section--azul .kicker { color: #8FE3D6; }

/* Botão flutuante some ao rolar para baixo (celular) e quando cobre a caixa lateral (desktop) */
.wa-float { transition: opacity .25s, transform .25s; }
.wa-float.is-oculto { opacity: 0; transform: translateY(16px); pointer-events: none; }

/* Tabelas: a figura é a área rolável e recebe foco pelo teclado */
.article-body .wp-block-table:focus-visible { outline: 3px solid rgba(42,157,143,0.55); outline-offset: 2px; }

/* Busca: título, contagem e "mostrar mais"; a área reservada evita o salto da faixa de CTA */
#busca-resultados { min-height: calc(100vh - 160px); }
.busca-contagem { margin-top: 12px; }
.busca-mais { display: flex; justify-content: center; margin-top: 40px; }

/* Página de todos os guias */
.guias-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.guia-tema { background: #fff; border: 1px solid var(--ln); border-radius: var(--r-md); padding: 26px 24px; display: flex; flex-direction: column; }
.guia-tema h2 { font: 700 21px/1.25 var(--ff-serif); color: var(--c-azul); margin: 0 0 6px; }
.guia-tema h2 a { color: inherit; text-decoration: none; }
.guia-tema h2 a:hover { text-decoration: underline; }
.guia-tema .cat-count { margin: 0 0 14px; }
.guia-tema ul { list-style: none; margin: 0 0 18px; padding: 0; flex: 1; }
.guia-tema li { border-top: 1px solid var(--ln); }
.guia-tema li a { display: block; padding: 10px 0; font: 500 15px/1.4 var(--ff-sans); color: var(--c-grafite); text-decoration: none; }
.guia-tema li a:hover { color: var(--c-azul-medio); text-decoration: underline; }
.guia-tema-mais { font: 600 14.5px/1 var(--ff-sans); color: var(--c-azul-medio); text-decoration: none; }
.guia-tema-mais:hover { text-decoration: underline; }

@media (max-width: 1024px) {
  .guias-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .to-top { display: none !important; }
  .wa-float { bottom: 22px; }
  .article-body table { display: table; overflow: visible; }
  .guias-grid { grid-template-columns: 1fr; }
}
