/* Site da ANPG — layout novo (proposta de 22/10/2026, Base DNE 09-Plataforma-DNE/layout-novo-anpg/src/estilo.css,
   revisada pelo revisor-layout), mais o que as páginas do site precisam e a proposta não desenhou: listagem, busca,
   página institucional, 404 e o texto que vem do WordPress (listas, tabelas, imagens, vídeos). Fontes servidas pelo
   próprio site (OFL), com a reserva de métrica ajustada para a troca não pular a página.
   Tokens: as 3 cores do logo (azul #135B9E, amarelo #FFCC29, grafite #373435) sobre papel claro. Estilo editorial:
   filetes, sem sombra dura. Assinatura visual: o triângulo amarelo da bandeira do logo. */

@font-face { font-family: 'Atkinson Hyperlegible'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/atkinson-400-latin.woff2') format('woff2'); }
@font-face { font-family: 'Atkinson Hyperlegible'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/atkinson-700-latin.woff2') format('woff2'); }
@font-face { font-family: 'Newsreader'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/newsreader-700-latin.woff2') format('woff2'); }
/* reservas com a métrica das fontes (largura média do português contra a Arial e a Georgia Bold) */
@font-face { font-family: 'Atkinson Reserva'; src: local('Arial'); font-weight: 400; ascent-override: 95.63%; descent-override: 29.19%; line-gap-override: 0%; size-adjust: 99.34%; }
@font-face { font-family: 'Atkinson Reserva'; src: local('Arial Bold'), local('Arial'); font-weight: 700; ascent-override: 95.35%; descent-override: 29.11%; line-gap-override: 0%; size-adjust: 99.63%; }
@font-face { font-family: 'Newsreader Reserva'; src: local('Georgia Bold'), local('Georgia'); font-weight: 700; ascent-override: 84.04%; descent-override: 30.3%; line-gap-override: 0%; size-adjust: 87.46%; }

:root {
  --azul: #135B9E;
  --azul-esc: #0C3F70;
  --azul-cl: #E3EDF7;
  --amarelo: #FFCC29;
  --amarelo-cl: #FFF1C2;
  --grafite: #373435;
  --tinta: #1F1D1E;
  --texto: #2B292A;
  --suave: #5C5859;
  --fundo: #FFFFFF;
  --papel: #F7F5F0;
  --linha: #E2DDD3;

  --f-titulo: 'Newsreader', 'Newsreader Reserva', Georgia, 'Times New Roman', serif;
  --f-texto: 'Atkinson Hyperlegible', 'Atkinson Reserva', system-ui, sans-serif;

  --r: 12px;
  --r-sm: 8px;
  --toque: 48px;
  --gutter: 16px;
  --max: 1200px;
  --t: 160ms;
}

* { box-sizing: border-box; }
/* scroll-padding: "Ir para o conteúdo", âncoras e o foco por Tab não param embaixo do cabeçalho fixo */
html { background: var(--fundo); color: var(--texto); font: 400 1.0625rem/1.6 var(--f-texto); -webkit-text-size-adjust: 100%; scroll-padding-top: 88px; }
.nq { white-space: nowrap; } /* "Pós-Graduandos", "pós-graduação": não rachar no hífen (o molde marca no texto) */
html.fonte-maior { font-size: 118.75%; }
body { margin: 0; overflow-x: clip; overflow-wrap: break-word; }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--azul); text-underline-offset: 3px; }
svg.i { width: 24px; height: 24px; fill: currentColor; flex: none; }
.wrap { max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pular { position: absolute; left: 8px; top: -60px; z-index: 50; background: var(--tinta); color: #fff; padding: 12px 16px; border-radius: 8px; font-weight: 700; }
.pular:focus { top: 8px; }
/* foco em anel duplo (branco · tinta · branco): visível no papel, no azul e no alto contraste */
:focus-visible { outline: 3px solid var(--tinta); outline-offset: 2px; box-shadow: 0 0 0 8px #fff !important; }

h1, h2, h3 { font-family: var(--f-titulo); font-weight: 700; line-height: 1.15; letter-spacing: -0.01em; margin: 0; color: var(--tinta); }
h1, h2, h3, .btn { overflow-wrap: break-word; }
h2 { font-size: 1.75rem; }

/* título de seção com o triângulo do logo */
.titulo-secao { display: flex; align-items: center; gap: 12px; }
.titulo-secao::before { content: ""; flex: none; width: 14px; height: 18px; background: var(--amarelo); clip-path: polygon(0 0, 100% 50%, 0 100%); }

/* ---------- botões ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: var(--toque); padding: 10px 22px;
  border-radius: var(--r-sm); font: 700 1rem/1.2 var(--f-texto); text-decoration: none; border: 2px solid transparent; cursor: pointer;
  transition: background-color var(--t), transform var(--t); }
.btn-amarelo { background: var(--amarelo); color: var(--tinta); }
.btn-amarelo:hover { background: #F2BC0D; }
.btn-azul { background: var(--azul); color: #fff; }
.btn-azul:hover { background: var(--azul-esc); }
.btn-contorno { background: transparent; color: #fff; border-color: #fff; }
.btn-contorno:hover { background: rgba(255, 255, 255, .12); }

/* ---------- barra de acessibilidade (computador) ---------- */
.a11y { display: none; background: var(--grafite); color: #fff; font-size: .875rem; }
.a11y .wrap { display: flex; justify-content: flex-end; align-items: center; gap: 4px; min-height: 40px; }
.a11y span { margin-right: 8px; }
.a11y .redes-topo { margin-right: auto; display: flex; gap: 2px; }
.a11y .redes-topo a { display: inline-grid; place-items: center; width: 40px; height: 40px; color: #fff; border-radius: 6px; }
.a11y .redes-topo a:hover { background: rgba(255, 255, 255, .12); }
.a11y .redes-topo svg.i { width: 18px; height: 18px; }
.a11y button, .menu-a11y button { background: none; border: 0; color: inherit; font: 700 .875rem var(--f-texto); min-height: 40px; min-width: 48px;
  padding: 0 10px; display: inline-flex; align-items: center; gap: 6px; border-radius: 6px; cursor: pointer; }
.a11y button svg.i { width: 18px; height: 18px; }
.a11y button[aria-pressed="true"], .menu-a11y button[aria-pressed="true"] { background: var(--amarelo); color: var(--tinta); }

/* ---------- cabeçalho ---------- */
.topo { position: sticky; top: 0; z-index: 20; background: #fff; border-bottom: 1px solid var(--linha); }
.topo .wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; min-height: 68px; }
.logo { display: flex; align-items: center; min-height: var(--toque); flex: none; margin-right: auto; }
.logo img { width: 112px; height: auto; }
.nav { display: none; }
.icone-btn { flex: none; display: inline-flex; align-items: center; justify-content: center; width: var(--toque); height: var(--toque); border-radius: var(--r-sm);
  border: 0; background: none; color: var(--tinta); cursor: pointer; }
.icone-btn:hover { background: var(--papel); }
.topo .btn { min-height: var(--toque); padding: 8px 14px; font-size: .9375rem; gap: 6px; }
.topo .btn svg.i { width: 20px; height: 20px; }
.topo .btn .longo { display: none; }

/* menu do computador: botão de grupo + painel (padrão "disclosure"), Esc e clique fora fecham */
.nav > ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 2px; }
/* dentro dos <dialog> (rolagem própria) o anel vai para dentro do item, senão as laterais são cortadas */
.menu :focus-visible, .busca :focus-visible { outline-offset: -3px; box-shadow: inset 0 0 0 6px #fff !important; }
.nav li { position: relative; }
.nav .grupo-btn { display: inline-flex; align-items: center; gap: 2px; min-height: var(--toque); padding: 0 10px; border: 0; border-radius: var(--r-sm);
  background: none; color: var(--tinta); font: 700 1rem var(--f-texto); cursor: pointer; white-space: nowrap; }
.nav .grupo-btn svg.i { width: 20px; height: 20px; transition: transform var(--t); }
.nav .grupo-btn:hover { background: var(--papel); }
.nav .grupo-btn[aria-expanded="true"] { background: var(--azul-cl); }
.nav .grupo-btn[aria-expanded="true"] svg.i { transform: rotate(180deg); }
.nav .grupo-btn.atual { box-shadow: inset 0 -3px 0 var(--amarelo); }
.nav .painel { position: absolute; top: calc(100% + 6px); left: 0; min-width: 250px; margin: 0; padding: 8px; list-style: none; background: #fff;
  border: 1px solid var(--linha); border-top: 3px solid var(--azul); border-radius: 0 0 var(--r) var(--r); box-shadow: 0 12px 28px rgba(31, 29, 30, .14); }
.nav .painel[hidden] { display: none; }
.nav .painel a { display: flex; align-items: center; min-height: 44px; padding: 0 12px; border-radius: 6px; color: var(--tinta); text-decoration: none; }
.nav .painel a:hover { background: var(--papel); }

/* menu do celular: <dialog> com grupos que abrem e fecham */
.menu { margin: 0 0 0 auto; height: 100dvh; max-height: none; width: min(100%, 400px); border: 0; padding: 0; background: #fff; color: var(--texto); }
.menu::backdrop { background: rgba(31, 29, 30, .55); }
.menu-topo { display: flex; justify-content: space-between; align-items: center; padding: 10px var(--gutter); border-bottom: 1px solid var(--linha); }
.menu-topo img { width: 96px; }
.menu-grupos { list-style: none; margin: 0; padding: 0; }
.menu-grupos > li { border-bottom: 1px solid var(--linha); }
.menu-grupos .grupo-btn { width: 100%; display: flex; align-items: center; justify-content: space-between; min-height: 56px; padding: 0 var(--gutter);
  background: none; border: 0; font: 700 1.25rem var(--f-titulo); color: var(--tinta); cursor: pointer; text-align: left; }
.menu-grupos .grupo-btn svg.i { color: var(--azul); transition: transform var(--t); }
.menu-grupos .grupo-btn[aria-expanded="true"] svg.i { transform: rotate(180deg); }
.menu-grupos ul { list-style: none; margin: 0; padding: 0 0 10px; }
.menu-grupos ul[hidden] { display: none; }
.menu-grupos ul a { display: flex; align-items: center; min-height: var(--toque); padding: 0 var(--gutter) 0 calc(var(--gutter) + 12px); color: var(--texto); text-decoration: none; }
.menu-grupos ul a:hover { background: var(--papel); }
.menu .btn { margin: 20px var(--gutter); width: calc(100% - 2 * var(--gutter)); }
.menu-a11y { display: flex; gap: 8px; flex-wrap: wrap; padding: 0 var(--gutter) 24px; }
.menu-a11y button { border: 1px solid var(--grafite); min-height: var(--toque); }

/* ---------- hero (banner fixo: tipo "Banner" no Publicador) ---------- */
.hero { background: var(--azul); color: #fff; position: relative; overflow: hidden; }
/* o triângulo amarelo do logo, decorativo, sempre longe do texto */
/* no celular não há canto livre de texto (de 370 a 500 px ele caía atrás do tema e de "Ver a agenda"): só no computador */
.hero .bandeira { display: none; position: absolute; pointer-events: none; background: var(--amarelo); clip-path: polygon(0 0, 100% 50%, 0 100%); }
.hero .wrap { position: relative; display: grid; gap: 24px; padding-top: 36px; padding-bottom: 44px; }
.hero .selo { display: inline-flex; align-items: center; gap: 8px; justify-self: start; max-width: 100%; background: var(--amarelo); color: var(--tinta);
  font: 700 .875rem var(--f-texto); padding: 6px 12px; border-radius: 6px; }
.hero .selo svg.i { width: 18px; height: 18px; }
.hero h1 { color: #fff; font-size: clamp(1.75rem, 8.5vw, 4rem); line-height: 1.05; max-width: 14em; }
.hero h1 .num { color: var(--amarelo); }
.hero .tema { margin: 0; font-size: 1.125rem; max-width: 34em; }
.hero .tema strong { display: block; font-size: .8125rem; text-transform: uppercase; letter-spacing: .08em; color: #D6E4F2; margin-bottom: 2px; }
.hero .acoes { display: flex; flex-wrap: wrap; gap: 12px; }
.hero .texto-hero { display: grid; gap: 18px; }
.hero .cartao { display: none; }

/* ---------- acesso rápido ---------- */
.rapido { position: relative; z-index: 2; margin-top: -20px; }
.rapido ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.rapido a { display: flex; align-items: center; gap: 14px; min-height: 76px; padding: 14px 16px; background: #fff; border: 1px solid var(--linha); border-radius: var(--r);
  box-shadow: 0 6px 18px rgba(31, 29, 30, .08); color: var(--tinta); text-decoration: none; transition: border-color var(--t), transform var(--t); }
.rapido a:hover { border-color: var(--azul); transform: translateY(-2px); }
.rapido .ic { flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 10px; background: var(--azul-cl); color: var(--azul); }
.rapido .carteira .ic { background: var(--amarelo); color: var(--tinta); }
.rapido strong { display: block; font-size: 1.0625rem; line-height: 1.25; }
.rapido small { display: block; color: var(--suave); font-size: .9375rem; line-height: 1.35; margin-top: 2px; }
.rapido .seta { margin-left: auto; color: var(--azul); }

/* ---------- seções ---------- */
.secao { padding: 48px 0; }
.secao.papel { background: var(--papel); }
.secao-cabeca { display: flex; justify-content: space-between; align-items: end; gap: 8px 16px; margin-bottom: 20px; flex-wrap: wrap; }
.secao-cabeca p { margin: 6px 0 0; color: var(--suave); }
.ver-todas { display: inline-flex; align-items: center; gap: 4px; min-height: var(--toque); font-weight: 700; color: var(--azul); }

/* cards de notícia */
.grade { display: grid; gap: 20px; }
.card { display: flex; flex-direction: column; border: 1px solid var(--linha); border-radius: var(--r); overflow: hidden; background: #fff; position: relative;
  transition: border-color var(--t); }
.card:hover { border-color: var(--azul); }
.card .capa { aspect-ratio: 16 / 9; object-fit: cover; width: 100%; background: var(--papel); }
.card .corpo { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.tag { align-self: flex-start; font: 700 .75rem var(--f-texto); text-transform: uppercase; letter-spacing: .06em; padding: 4px 10px; border-radius: 4px;
  background: var(--azul-cl); color: var(--azul-esc); }
.tag.t-amarelo { background: var(--amarelo-cl); color: var(--tinta); }
.tag.t-grafite { background: #ECEAE7; color: var(--tinta); }
.card h3 { font-size: 1.25rem; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.card h3 a { color: inherit; text-decoration: none; }
.card h3 a::after { content: ""; position: absolute; inset: 0; }
/* o h3 corta o anel (line-clamp); o foco é desenhado no card inteiro, que é o alvo do clique */
@supports selector(:has(a)) { .card h3 a:focus-visible { outline: none; box-shadow: none !important; } }
.card:has(h3 a:focus-visible) { outline: 3px solid var(--tinta); outline-offset: 2px; box-shadow: 0 0 0 8px #fff; }
.card .resumo { margin: 0; color: var(--texto); }
.card .meta { margin-top: auto; display: flex; flex-wrap: wrap; gap: 4px 14px; color: var(--suave); font-size: .875rem; }
.card .meta span { display: inline-flex; align-items: center; gap: 4px; }
.card .meta svg.i { width: 16px; height: 16px; }

/* artigo de opinião em destaque */
/* o card inteiro é o alvo do clique (o link do título estica por ::after) */
.opiniao { display: grid; grid-template-columns: minmax(0, 1fr); border-top: 3px solid var(--grafite); padding-top: 24px; gap: 20px; position: relative; }
.opiniao h3 a::after { content: ""; position: absolute; inset: 0; }
@supports selector(:has(a)) { .opiniao h3 a:focus-visible { outline: none; box-shadow: none !important; } }
.opiniao:has(h3 a:focus-visible) { outline: 3px solid var(--tinta); outline-offset: 4px; box-shadow: 0 0 0 10px #fff; }
.opiniao .capa { border-radius: var(--r); aspect-ratio: 16 / 9; object-fit: cover; width: 100%; }
.opiniao blockquote { margin: 0; font: 700 1.5rem/1.3 var(--f-titulo); color: var(--tinta); }
.opiniao blockquote::before { content: "“"; color: var(--amarelo); font-size: 3rem; line-height: 0; vertical-align: -0.35em; margin-right: 4px; }
.opiniao h3 { font-size: 1.25rem; }
.opiniao h3 a { color: var(--tinta); }
.autor { display: flex; align-items: center; gap: 10px; color: var(--suave); font-size: .9375rem; }
.autor .avatar { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--grafite); color: #fff;
  font: 700 1rem var(--f-titulo); }
.autor strong { color: var(--tinta); }

/* agenda */
.agenda { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--linha); }
.agenda li { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--linha); align-items: start; position: relative; }
/* a linha inteira do evento é o alvo do clique (≥ 72 px) */
.agenda h3 a::after { content: ""; position: absolute; inset: 0; }
@supports selector(:has(a)) { .agenda h3 a:focus-visible { outline: none; box-shadow: none !important; } }
.agenda li:has(h3 a:focus-visible) { outline: 3px solid var(--tinta); outline-offset: 2px; box-shadow: 0 0 0 8px #fff; }
.agenda li:hover h3 a { text-decoration: underline; }
.agenda .dia { display: grid; justify-items: center; align-content: center; min-height: 72px; border-radius: var(--r-sm); background: #fff; border: 1px solid var(--linha);
  font: 700 1.75rem/1 var(--f-titulo); color: var(--tinta); text-align: center; }
.agenda .dia.intervalo { font-size: 1.125rem; letter-spacing: -0.02em; }
.agenda .dia small { font: 700 .75rem var(--f-texto); text-transform: uppercase; letter-spacing: .08em; color: var(--azul); margin-top: 4px; }
.agenda .destaque .dia { background: var(--azul); border-color: var(--azul); color: #fff; }
.agenda .destaque .dia small { color: var(--amarelo); }
.agenda h3 { font-size: 1.1875rem; }
.agenda h3 a { color: var(--tinta); text-decoration: none; }
.agenda h3 a:hover { text-decoration: underline; }
.agenda p { margin: 4px 0 0; color: var(--suave); display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; font-size: .9375rem; }
.agenda p span { display: inline-flex; align-items: center; gap: 4px; }
.agenda p svg.i { width: 16px; height: 16px; }

/* movimento */
.movimento .wrap { display: grid; gap: 24px; }
.movimento p { margin: 10px 0 0; font-size: 1.125rem; }
.movimento ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.movimento li a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 60px; padding: 0 18px; border-radius: var(--r-sm);
  background: #fff; border: 1px solid var(--linha); color: var(--tinta); text-decoration: none; font: 700 1.125rem var(--f-titulo); }
.movimento li a:hover { border-color: var(--azul); }
.movimento li a svg.i { color: var(--azul); }

/* ---------- rodapé ---------- */
.rodape { background: var(--grafite); color: #E7E4E1; padding: 48px 0 24px; border-top: 6px solid var(--amarelo); }
.rodape .wrap { display: grid; gap: 28px; }
.rodape .wrap > * { min-width: 0; overflow-wrap: anywhere; }
.rodape .marca { display: inline-block; background: #fff; border-radius: var(--r-sm); padding: 10px 14px; }
.rodape .marca img { width: 132px; }
.rodape .sobre { margin: 14px 0 0; max-width: 26em; }
.rodape h2 { font: 700 .875rem var(--f-texto); color: #fff; margin: 0 0 6px; text-transform: uppercase; letter-spacing: .08em; }
.rodape ul { list-style: none; margin: 0; padding: 0; }
.rodape li a, .rodape .contato a { display: inline-flex; align-items: center; gap: 6px; min-height: var(--toque); min-width: var(--toque); color: #fff; text-decoration: none; }
.rodape li a:hover, .rodape .contato a:hover { text-decoration: underline; }
.redes { display: flex; gap: 10px; margin-top: 12px; }
.redes a { display: grid; place-items: center; width: var(--toque); height: var(--toque); border-radius: 50%; border: 1px solid rgba(255, 255, 255, .45); color: #fff; }
.redes a:hover { border-color: var(--amarelo); }
.rodape .parceiros { border-top: 1px solid rgba(255, 255, 255, .2); padding-top: 18px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 20px; font-size: .9375rem; }
.rodape .parceiros a { color: #fff; display: inline-flex; min-height: var(--toque); align-items: center; }
.rodape .base { border-top: 1px solid rgba(255, 255, 255, .2); padding-top: 18px; font-size: .875rem; display: flex; flex-wrap: wrap; gap: 6px 24px; justify-content: space-between; }

/* ---------- busca (<dialog>) ---------- */
.busca { width: min(100%, 720px); max-width: none; margin: 0 auto auto; padding: 0; border: 0; border-radius: 0 0 var(--r) var(--r); background: #fff; color: var(--texto); }
.busca::backdrop { background: rgba(31, 29, 30, .55); }
.busca form { display: flex; align-items: center; gap: 8px; padding: 12px var(--gutter); border-bottom: 1px solid var(--linha); }
.busca input { flex: 1; min-width: 0; min-height: var(--toque); border: 0; font: 400 1.125rem var(--f-texto); color: var(--tinta); background: none; }
.busca input:focus { outline: none; }
.busca form:focus-within { box-shadow: inset 0 -3px 0 var(--azul); }
.busca .sugestoes { list-style: none; margin: 0; padding: 8px 0; max-height: 50vh; overflow: auto; }
.busca .sugestoes li a { display: block; padding: 12px var(--gutter); color: var(--tinta); text-decoration: none; }
.busca .sugestoes li a[aria-selected="true"], .busca .sugestoes li a:hover { background: var(--papel); }
.busca .sugestoes small { display: block; color: var(--suave); }
.busca .aviso { padding: 12px var(--gutter); margin: 0; color: var(--suave); }
.busca .dicas { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 4px var(--gutter) 18px; }
.busca .dicas strong { margin-right: 4px; color: var(--tinta); }
.busca .dicas a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border-radius: 999px; background: var(--papel); color: var(--tinta);
  text-decoration: none; border: 1px solid var(--linha); }

/* =================== notícia =================== */
.trilha ol { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 2px; padding: 0; margin: 16px 0 0; font-size: .875rem; color: var(--suave); }
.trilha a { color: var(--suave); display: inline-flex; min-height: var(--toque); min-width: var(--toque); align-items: center; }
.trilha svg.i { width: 16px; height: 16px; }
.artigo-cabeca { padding: 12px 0 24px; max-width: 50rem; }
.artigo-cabeca .tag { display: inline-block; font-size: .8125rem; background: var(--grafite); color: #fff; }
.artigo-cabeca h1 { font-size: clamp(2rem, 7vw, 3.25rem); line-height: 1.1; margin: 14px 0 14px; }
.linha-fina { font-size: 1.25rem; line-height: 1.5; color: var(--texto); margin: 0; }
.artigo-cabeca .autor { margin-top: 20px; font-size: 1rem; }
.artigo-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin-top: 12px; color: var(--suave); font-size: .9375rem; }
.artigo-meta span { display: inline-flex; align-items: center; gap: 6px; }
.artigo-meta svg.i { width: 18px; height: 18px; }
.compartilhar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 14px 0; border-top: 1px solid var(--linha); border-bottom: 1px solid var(--linha); margin-bottom: 28px; }
.compartilhar .rot { font-weight: 700; color: var(--tinta); margin-right: 2px; }
.compartilhar a, .compartilhar button { display: inline-flex; align-items: center; gap: 6px; min-height: var(--toque); min-width: var(--toque); justify-content: center;
  padding: 0 14px; border: 1px solid var(--grafite); border-radius: var(--r-sm); background: #fff; color: var(--tinta); font: 700 .9375rem var(--f-texto); text-decoration: none; cursor: pointer; }
.compartilhar a:hover, .compartilhar button:hover { background: var(--papel); }
.compartilhar .zap { background: #0F7A40; color: #fff; border-color: #0F7A40; }
.compartilhar .zap:hover { background: #0B6233; }
.compartilhar .status { font-size: .875rem; color: #0B6233; font-weight: 700; min-width: 1px; }
.compartilhar .so-nativo[hidden] { display: none; }
.capa-artigo { margin: 0 0 28px; }
.capa-artigo img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--r); }
.capa-artigo figcaption { font-size: .875rem; color: var(--suave); margin-top: 8px; }
.artigo-grade { display: grid; gap: 32px; padding-bottom: 48px; }
.artigo-grade > * { min-width: 0; }
.texto { max-width: 42rem; font-size: 1.0625rem; line-height: 1.7; } /* 18 px (§3.2) */
.texto p { margin: 0 0 1.15em; }
.texto > p:first-child::first-letter { float: left; font: 700 3.6em/0.85 var(--f-titulo); color: var(--azul); margin: .06em .1em 0 0; }
.citacao { margin: 1.6em 0; padding: 4px 0 4px 22px; border-left: 4px solid var(--amarelo); }
.citacao blockquote { margin: 0; font: 700 1.5rem/1.35 var(--f-titulo); color: var(--tinta); }
.citacao figcaption { margin-top: 10px; font-size: .9375rem; color: var(--suave); }
.assinatura { margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--linha); }
.lateral { display: grid; gap: 20px; align-content: start; }
.cta-lateral { border-radius: var(--r); padding: 22px; background: var(--azul); color: #fff; }
.cta-lateral h2 { color: #fff; font-size: 1.375rem; }
.cta-lateral p { margin: 8px 0 16px; }
.evento-lateral { border: 1px solid var(--linha); border-top: 3px solid var(--amarelo); border-radius: var(--r); padding: 20px; }
.evento-lateral h2 { font-size: 1.25rem; }
.evento-lateral p { margin: 8px 0 12px; color: var(--suave); }
.relacionadas { border-top: 1px solid var(--linha); }

/* =================== larguras =================== */
@media (min-width: 640px) {
  .grade { grid-template-columns: repeat(2, 1fr); }
  .rapido ul { grid-template-columns: repeat(3, 1fr); }
  .rapido a { flex-direction: column; align-items: flex-start; min-height: 100%; }
  .rapido .seta { display: none; }
  .rodape .wrap { grid-template-columns: repeat(2, 1fr); }
  .rodape .parceiros, .rodape .base { grid-column: 1 / -1; }
  .opiniao { grid-template-columns: 1fr 1fr; align-items: center; gap: 32px; }
}
@media (min-width: 1024px) {
  :root { --gutter: 32px; }
  .a11y { display: block; }
  .logo img { width: 132px; }
  .topo .wrap { min-height: 84px; gap: 8px; }
  .topo .btn .longo { display: inline; } .topo .btn .curto { display: none; }
  html { scroll-padding-top: 140px; }
  .hero .bandeira { display: block; width: 420px; height: 520px; right: -120px; top: -40px; }
  .hero .wrap { grid-template-columns: 1.4fr 1fr; align-items: center; padding-top: 64px; padding-bottom: 88px; }
  .hero .cartao { display: block; position: relative; justify-self: end; max-width: 340px; background: #fff; color: var(--texto); border-radius: var(--r);
    padding: 24px; box-shadow: 0 16px 40px rgba(12, 63, 112, .35); }
  .hero .cartao h2 { font-size: 1.375rem; }
  .hero .cartao p { margin: 8px 0 16px; }
  .rapido { margin-top: -40px; }
  .secao { padding: 72px 0; }
  h2 { font-size: 2.25rem; }
  .grade { grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .grade.pauta { grid-template-columns: 1.6fr 1fr; }
  .grade.pauta .manchete { grid-row: 1 / 4; }
  .grade.pauta .card:not(.manchete) .meta { margin-top: 4px; }
  .grade.pauta .manchete h3 { font-size: 1.875rem; -webkit-line-clamp: 4; }
  .grade.pauta .card:not(.manchete) .capa { display: none; }
  .grade.pauta .card:not(.manchete) { border-top: 3px solid var(--azul); }
  .agenda-wrap { display: grid; grid-template-columns: 1fr 2fr; gap: 48px; }
  .movimento .wrap { grid-template-columns: 1.2fr 1fr; gap: 64px; align-items: center; }
  .rodape .wrap { grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr; }
  .artigo-grade { grid-template-columns: minmax(0, 1fr) 320px; gap: 64px; }
  .lateral { position: sticky; top: 140px; }
}
/* no computador o menu desce para uma segunda linha do cabeçalho: os 5 grupos (770 px) + logo + busca + CTA
   não cabem numa linha de 1200 px */
@media (min-width: 1024px) {
  .so-celular { display: none !important; }
  .nav { display: block; order: 10; flex-basis: 100%; border-top: 1px solid var(--linha); margin: 0 calc(-1 * var(--gutter)); padding: 4px calc(var(--gutter) - 10px); }
  .topo .wrap { row-gap: 0; }
}
@media (max-width: 399px) {
  .logo img { width: 84px; }
  .topo .btn { padding: 8px 10px; gap: 4px; }
  .topo .wrap { gap: 2px; }
}
/* até 359 px (ou com fonte aumentada até 399) o CTA perde o ícone: logo + busca + "Carteira" + menu cabem numa linha */
@media (max-width: 359px) { .topo .btn svg.i { display: none; } }
@media (max-width: 399px) { html.fonte-maior .topo .btn svg.i { display: none; } html.fonte-maior .logo img { width: 72px; } }

/* alto contraste: preto, branco e amarelo, sem sombra decorativa */
html.contraste { --azul: #000; --azul-esc: #000; --azul-cl: #FFF; --grafite: #000; --suave: #000; --texto: #000; --tinta: #000; --papel: #FFF; --amarelo-cl: #FFF; --linha: #000; }
html.contraste .hero .bandeira { display: none; }
html.contraste .tag { border: 2px solid #000; }
html.contraste .agenda .destaque .dia small { color: #FFE600; }
html.contraste .texto a, html.contraste .rodape a, html.contraste .trilha a { text-decoration: underline; }
html.contraste .rapido a, html.contraste .hero .cartao, html.contraste .nav .painel { box-shadow: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
  .rapido a:hover { transform: none; }
}

/* =================== páginas do site (fora da proposta) =================== */
/* listagem (h2 nos cartões), igual aos cartões da home (h3) */
.card h2 { font-size: 1.25rem; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.card h2 a { color: inherit; text-decoration: none; }
.card h2 a::after { content: ""; position: absolute; inset: 0; }
@supports selector(:has(a)) { .card h2 a:focus-visible { outline: none; box-shadow: none !important; } }
.card:has(h2 a:focus-visible) { outline: 3px solid var(--tinta); outline-offset: 2px; box-shadow: 0 0 0 8px #fff; }
.card.manchete h2 { font-size: 1.625rem; -webkit-line-clamp: 4; }
/* sem capa (80% dos posts): o símbolo da ANPG no azul */
.card .capa.padrao { display: grid; place-items: center; background: var(--azul); }
.card .capa.padrao img { width: 72px; height: 72px; background: #fff; border-radius: 50%; padding: 6px; }
.card[hidden] { display: none; }
.vazio { padding: 24px; border: 2px dashed var(--linha); border-radius: var(--r); text-align: center; color: var(--suave); }
.vazio h2 { font-size: 1.375rem; }
.opiniao-texto { display: grid; gap: 14px; }
.agenda-sub { color: var(--suave); margin: 8px 0 0; }

.cabeca-pagina { background: var(--papel); border-bottom: 1px solid var(--linha); }
.cabeca-pagina .wrap { padding-bottom: 28px; }
.cabeca-pagina h1 { font-size: clamp(2rem, 7vw, 3.25rem); line-height: 1.1; margin: 8px 0 0; max-width: 22em; }
.cabeca-pagina .sub { margin: 10px 0 0; color: var(--texto); font-size: 1.125rem; max-width: 40em; }
.cabeca-pagina .busca-pagina { margin-top: 20px; }
.corpo-pagina { padding-top: 28px; padding-bottom: 56px; }
.corpo-pagina .artigo-grade { padding-bottom: 0; }
.corpo-pagina .dicas { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 32px; }
.corpo-pagina .dicas strong { margin-right: 4px; color: var(--tinta); }
.corpo-pagina .dicas a { display: inline-flex; align-items: center; min-height: var(--toque); padding: 0 16px; border-radius: 999px; background: var(--papel);
  color: var(--tinta); text-decoration: none; border: 1px solid var(--linha); }

/* temas */
.chips { display: flex; gap: 8px; overflow-x: auto; padding: 10px 10px 12px; margin: -6px -10px 12px; scrollbar-width: none; }
.chips::-webkit-scrollbar { display: none; }
.chip { flex: none; display: inline-flex; align-items: center; min-height: var(--toque); padding: 0 18px; border: 1px solid var(--grafite); border-radius: 999px;
  background: #fff; color: var(--tinta); font: 700 .9375rem var(--f-texto); text-decoration: none; }
.chip[aria-current="page"] { background: var(--azul); border-color: var(--azul); color: #fff; }
.chip:hover { background: var(--papel); } .chip[aria-current="page"]:hover { background: var(--azul-esc); }
.vazio .chips { justify-content: center; flex-wrap: wrap; overflow: visible; margin: 16px 0 0; }

/* busca (formulário na página da listagem, da busca e do 404) */
.busca-pagina { display: flex; align-items: center; gap: 8px; max-width: 640px; background: #fff; border: 1px solid var(--grafite); border-radius: 999px; padding: 4px 4px 4px 16px; }
.busca-pagina svg.i { color: var(--suave); }
.busca-pagina input { flex: 1; min-width: 0; min-height: var(--toque); border: 0; background: none; font: 400 1.0625rem var(--f-texto); color: var(--tinta); }
.busca-pagina input:focus { outline: none; }
.busca-pagina:focus-within { outline: 3px solid var(--tinta); outline-offset: 2px; }
.busca-pagina .btn { min-height: var(--toque); padding: 8px 18px; border-radius: 999px; }

/* paginação */
.paginacao { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 32px; }
.paginacao a, .paginacao span { display: inline-flex; align-items: center; justify-content: center; gap: 4px; min-width: var(--toque); min-height: var(--toque);
  padding: 0 14px; border: 1px solid var(--grafite); border-radius: 999px; background: #fff; color: var(--tinta); font-weight: 700; text-decoration: none; }
.paginacao span { border-color: transparent; background: none; }
.paginacao a:hover { background: var(--papel); }
.paginacao a[aria-current="page"] { background: var(--azul); border-color: var(--azul); color: #fff; }

/* notícia: o autor, e a capa dentro da coluna do texto (as capas do acervo são pequenas: 14 das 24 recentes não
   passam de 960 px) */
.artigo-meta .por { font-weight: 700; color: var(--texto); }
.capa-artigo { max-width: 42rem; }
.capa-artigo img { background: var(--papel); }

/* texto que vem do WordPress (sem capitular: o 1º parágrafo do acervo nem sempre é texto corrido) */
.texto > p:first-child::first-letter { float: none; font: inherit; color: inherit; margin: 0; }
.texto > :first-child { margin-top: 0; }
.texto h2, .texto h3, .texto h4 { font-family: var(--f-titulo); color: var(--tinta); line-height: 1.2; }
.texto h2 { font-size: 1.5rem; margin: 1.6em 0 .6em; }
.texto h3 { font-size: 1.25rem; margin: 1.4em 0 .5em; }
.texto h4 { font-size: 1.0625rem; margin: 1.2em 0 .4em; }
.texto ul, .texto ol { margin: 0 0 1.15em; padding-left: 1.4em; }
.texto li { margin-bottom: .35em; }
.texto img { height: auto; border-radius: var(--r-sm); margin: 1em 0; }
.texto figure { margin: 1.4em 0; }
.texto figcaption, .texto .wp-caption-text { font-size: .875rem; color: var(--suave); margin-top: 6px; }
.texto .wp-caption { max-width: 100%; }
.texto .aligncenter { margin-left: auto; margin-right: auto; }
.texto blockquote { margin: 1.4em 0; padding: 4px 0 4px 18px; border-left: 4px solid var(--amarelo); color: var(--tinta); }
.texto iframe { display: block; max-width: 100%; border: 0; margin: 1.2em 0; }
.texto iframe[src*="youtube"], .texto iframe[src*="vimeo"], .texto iframe[src*="facebook.com/plugins/video"] { width: 100%; height: auto; aspect-ratio: 16 / 9; }
.texto .tabela { overflow-x: auto; margin: 1.4em 0; border: 1px solid var(--linha); border-radius: var(--r-sm); }
.texto table { border-collapse: collapse; width: 100%; font-size: .9375rem; }
.texto th, .texto td { border: 1px solid var(--linha); padding: 8px 10px; text-align: left; vertical-align: top; }
.texto th { background: var(--papel); }
.texto a { overflow-wrap: anywhere; }
.texto hr { border: 0; border-top: 2px solid var(--linha); margin: 2em 0; }
.documento { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 16px 18px; border: 1px solid var(--grafite); border-radius: var(--r);
  text-decoration: none; color: var(--tinta); margin: 1.4em 0; }
.documento:hover { background: var(--papel); }
.documento > svg.i { width: 40px; height: 40px; color: #B91C1C; }
.documento strong { display: block; } .documento small { color: var(--suave); font-size: .875rem; }
.documento .baixar { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; font-weight: 700; }

/* links (404) */
.links-pagina { list-style: none; margin: 32px 0 0; padding: 0; display: grid; gap: 12px; }
.links-pagina a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 60px; padding: 0 20px; border: 1px solid var(--linha);
  border-radius: var(--r-sm); color: var(--tinta); text-decoration: none; font: 700 1.125rem var(--f-titulo); background: #fff; }
.links-pagina a:hover { border-color: var(--azul); }
.links-pagina a svg.i { color: var(--azul); }
.erro-codigo { font: 700 clamp(4rem, 18vw, 8rem)/1 var(--f-titulo); color: var(--azul); margin: 32px 0 0; }

@media (min-width: 640px) {
  .links-pagina { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .chips { flex-wrap: wrap; overflow: visible; }
  .cabeca-pagina .wrap { padding-bottom: 40px; }
}
html.contraste .cabeca-pagina { background: #fff; }
html.contraste .chip[aria-current="page"], html.contraste .paginacao a[aria-current="page"] { background: #000; color: #fff; }

/* texto a 200%: palavra longa não alarga a coluna mínima da grade nem o cabeçalho das seções */
.links-pagina > li, .grade > *, .secao-cabeca > * { min-width: 0; }
/* anel de foco por dentro onde a caixa encosta na borda (sugestões da busca) */
.busca .sugestoes li a:focus-visible { outline-offset: -4px; box-shadow: inset 0 0 0 7px #fff !important; }
.busca .sugestoes li a[aria-selected="true"] { box-shadow: inset 4px 0 0 var(--tinta); }
/* revisão de layout (22/10/2026) */
/* listas em que cada item é só um link (os sites das APGs; o molde marca): alvo de 48 px */
.texto .lista-links a { display: inline-block; padding: 10px 0; }
