/* Esporte MG — estilo editorial. Cores do Personalizar (--cor-1, --cor-2). Sora (títulos) e Inter (texto) locais. */

:root {
  --cor-1: #0f3d2e;
  --cor-1-texto: #ffffff;
  --cor-2: #f59e0b;
  --cor-2-texto: #0b1220;
  --acao: color-mix(in srgb, var(--cor-1) 62%, #3fbf6a);
  --cor-1-escura: color-mix(in srgb, var(--cor-1) 88%, #000);
  --cor-1-clara: color-mix(in srgb, var(--cor-1) 7%, #fff);
  --fundo: #f7f8f5;
  --papel: #ffffff;
  --texto: #0b1220;
  --suave: #4a5663;
  --linha: #dfe4de;
  --foco: #f59e0b;
  --raio: 16px;
  --sombra-1: 0 1px 2px rgba(11, 18, 32, .06), 0 4px 16px rgba(11, 18, 32, .06);
  --sombra-2: 0 14px 34px rgba(11, 18, 32, .16);
  --display: 'Sora', 'Inter', system-ui, sans-serif;
  --cab: 72px;
}

*, *::before, *::after { box-sizing: border-box; }
html { font-size: 100%; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--cab) + 16px); }
body { margin: 0; font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; font-size: 1.0625rem; line-height: 1.65; color: var(--texto); background: var(--fundo); }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--cor-1-escura); text-underline-offset: 3px; }
a:hover { color: var(--acao); }
:focus-visible { outline: 3px solid var(--foco); outline-offset: 3px; border-radius: 4px; }
h1, h2, h3 { font-family: var(--display); font-weight: 700; line-height: 1.12; letter-spacing: -.02em; color: var(--cor-1-escura); margin: 0 0 .5em; }
h2 { font-size: clamp(1.75rem, 3.2vw, 2.5rem); }
h3 { font-size: clamp(1.125rem, 1.6vw, 1.375rem); line-height: 1.25; letter-spacing: -.01em; }
p { margin: 0 0 1em; }
main:focus { outline: none; }
.container { width: min(1240px, 100% - 2.5rem); margin-inline: auto; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.icone { width: 22px; height: 22px; flex: none; }

/* --- atalhos -------------------------------------------------------------- */
.pular { list-style: none; margin: 0; padding: 0; position: absolute; left: 0; top: 0; z-index: 400; }
.pular a { position: absolute; left: -9999px; background: var(--foco); color: #000; padding: .7rem 1.1rem; font-weight: 700; white-space: nowrap; border-radius: 0 0 8px 0; }
.pular a:focus { left: 0; top: 0; }
kbd { font: inherit; font-size: .85em; border: 1px solid currentColor; border-radius: 4px; padding: 0 .35em; }

/* --- botões e chips --------------------------------------------------------- */
.botao { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; background: var(--cor-2); color: var(--cor-2-texto); font: inherit; font-weight: 700; text-decoration: none; padding: .8rem 1.5rem; border-radius: 999px; min-height: 48px; border: 2px solid var(--cor-2); cursor: pointer; transition: transform .18s, box-shadow .18s, background .18s; }
.botao:hover { color: var(--cor-2-texto); transform: translateY(-1px); box-shadow: 0 8px 20px rgba(245, 158, 11, .35); }
.botao--vazado { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .75); }
.botao--vazado:hover { background: #fff; color: var(--cor-1); box-shadow: none; }
.chip { display: inline-block; margin: 0 0 .9rem; background: var(--cor-2); color: var(--cor-2-texto); font-weight: 800; font-size: .8125rem; letter-spacing: .06em; text-transform: uppercase; padding: .25rem .85rem; border-radius: 999px; }
.chip--foto { position: absolute; left: .8rem; top: .8rem; margin: 0; }
.meta { color: var(--suave); font-size: .875rem; margin: 0 0 .4rem; display: flex; gap: .4rem; align-items: center; flex-wrap: wrap; }
.meta .icone { width: 16px; height: 16px; }

/* --- cabeçalho único ------------------------------------------------------- */
.cabecalho { position: sticky; top: 0; z-index: 200; height: var(--cab); border-bottom: 1px solid var(--linha); transition: border-color .2s; }
.cabecalho::before { content: ''; position: absolute; inset: 0; z-index: -1; background: rgba(255, 255, 255, .92); -webkit-backdrop-filter: saturate(1.4) blur(12px); backdrop-filter: saturate(1.4) blur(12px); transition: background .2s; }
.admin-bar .cabecalho { top: 32px; }
.cab__linha { display: flex; align-items: center; gap: 1.25rem; height: var(--cab); width: min(1400px, 100% - 2.5rem); margin-inline: auto; }
.marca { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; color: var(--cor-1-escura); flex: none; }
.brasao { width: auto; height: 44px; max-width: 70px; object-fit: contain; flex: none; }
.marca__texto { display: flex; flex-direction: column; line-height: 1.15; }
.marca__nome { font-family: var(--display); font-weight: 700; font-size: 1.0625rem; letter-spacing: -.01em; }
.marca__sub { font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--suave); }
.menu { flex: 1; display: flex; justify-content: center; align-items: center; min-width: 0; }
.menu__lista, .submenu { list-style: none; margin: 0; padding: 0; }
.menu__lista { display: flex; align-items: center; }
.menu__item { position: relative; display: flex; align-items: stretch; }
.menu__item > a { color: var(--texto); text-decoration: none; font-weight: 600; font-size: .875rem; padding: .55rem .55rem; border-radius: 999px; white-space: nowrap; transition: background .15s, color .15s; }
.menu__item > a:hover { background: var(--cor-1-clara); color: var(--cor-1); }
.menu__item.atual > a { color: var(--cor-1); background: var(--cor-1-clara); box-shadow: inset 0 -3px 0 var(--cor-2); border-radius: 12px 12px 4px 4px; }
.submenu-botao { width: 22px; border: 0; background: transparent; cursor: pointer; margin-left: -8px; padding: 0; }
.submenu-botao::after { content: ''; display: block; margin: auto; width: 6px; height: 6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); }
.submenu { display: none; position: absolute; left: 0; top: 100%; z-index: 50; min-width: 240px; padding: .4rem; background: var(--papel); border-radius: 14px; box-shadow: var(--sombra-2); }
.menu__item:hover > .submenu, .menu__item:focus-within > .submenu, .menu__item.aberto > .submenu { display: block; }
.submenu .menu__item > a { display: block; width: 100%; border-radius: 10px; padding: .55rem .8rem; }
.cab__acoes { display: flex; align-items: center; gap: .4rem; margin-left: auto; flex: none; }
.icone-botao { display: inline-flex; align-items: center; gap: .45rem; min-width: 44px; height: 44px; justify-content: center; padding: 0 .75rem; font: inherit; font-weight: 600; font-size: .875rem; color: var(--texto); background: transparent; border: 1px solid transparent; border-radius: 999px; cursor: pointer; transition: background .15s; }
.icone-botao:hover, .icone-botao[aria-expanded="true"] { background: var(--cor-1-clara); color: var(--cor-1); }
.icone-botao__rot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.cab__cta { padding: .55rem 1.1rem; min-height: 44px; font-size: .875rem; }
.menu__cta, .menu__fechar, .menu-botao, .menu-fundo { display: none; }

/* home: cabeçalho sobre o hero, transparente no topo */
body.home .cabecalho { position: fixed; left: 0; right: 0; }
body.home .cabecalho:not(.rolou) { border-color: transparent; }
body.home .cabecalho:not(.rolou)::before { background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
body.home .cabecalho:not(.rolou) :is(.marca, .marca__sub, .menu__item > a, .icone-botao) { color: #fff; }
body.home .cabecalho:not(.rolou) .menu__item > a:hover, body.home .cabecalho:not(.rolou) .icone-botao:hover { background: rgba(255, 255, 255, .16); color: #fff; }
body.home .cabecalho:not(.rolou) .menu__item.atual > a { background: rgba(255, 255, 255, .16); color: #fff; }
body.home .cabecalho:not(.rolou) .brasao--img { background: rgba(255, 255, 255, .9); border-radius: 8px; padding: 3px; }

/* busca por ícone e painel de acessibilidade */
.busca { position: absolute; left: 0; right: 0; top: 100%; background: var(--papel); border-bottom: 1px solid var(--linha); box-shadow: var(--sombra-2); padding: 1rem 0; }
.busca[hidden], .painel-acess[hidden] { display: none; }
.busca__linha { width: min(760px, 100% - 2.5rem); margin-inline: auto; display: flex; gap: .6rem; }
.busca input { flex: 1; min-width: 0; font: inherit; padding: .7rem 1.1rem; border: 2px solid var(--cor-1); border-radius: 999px; min-height: 50px; background: #fff; color: var(--texto); }
.painel-acess { position: absolute; right: max(1.25rem, calc((100% - 1400px) / 2)); top: calc(100% + 8px); width: min(340px, 100% - 2rem); background: var(--papel); color: var(--texto); border-radius: var(--raio); box-shadow: var(--sombra-2); padding: 1rem 1.2rem 1.2rem; z-index: 5; }
.painel-acess__cab { display: flex; justify-content: space-between; align-items: center; margin-bottom: .8rem; font-family: var(--display); }
.painel-acess__cab button { font-size: 1.6rem; line-height: 1; background: none; border: 0; cursor: pointer; width: 40px; height: 40px; border-radius: 50%; color: inherit; }
.painel-acess__grupo { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin-bottom: .6rem; }
.painel-acess button[data-acao] { font: inherit; font-weight: 700; min-height: 46px; border-radius: 12px; border: 2px solid var(--linha); background: var(--fundo); color: var(--texto); cursor: pointer; }
.painel-acess button[data-acao]:hover, .painel-acess button[aria-pressed="true"] { background: var(--cor-1); color: var(--cor-1-texto); border-color: var(--cor-1); }
.painel-acess__contraste { width: 100%; margin-bottom: .8rem; }
.painel-acess__links { list-style: none; margin: 0 0 .8rem; padding: 0; display: grid; gap: .2rem; }
.painel-acess__links a { display: block; padding: .45rem .2rem; font-weight: 600; }
.painel-acess__atalhos { margin: 0; font-size: .8125rem; color: var(--suave); }

/* --- hero --------------------------------------------------------------------- */
.hero { position: relative; background: #07140f; color: #fff; }
.hero__slide { position: relative; min-height: max(560px, 74vh); display: flex; align-items: flex-end; }
.hero__slide[hidden] { display: none; }
.hero__midia { position: absolute; inset: 0; overflow: hidden; }
.hero__img { width: 100%; height: 100%; object-fit: cover; }
.hero__midia::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(4, 16, 11, .94) 0%, rgba(4, 16, 11, .72) 32%, rgba(4, 16, 11, .12) 66%, rgba(4, 16, 11, .45) 100%); }
.hero__conteudo { position: relative; padding: calc(var(--cab) + 3rem) 0 7rem; width: min(1240px, 100% - 2.5rem); }
.hero__texto { max-width: 820px; }
.hero__titulo { font-size: clamp(2.25rem, 5.4vw, 4.5rem); line-height: 1.05; color: #fff; margin-bottom: .35em; text-wrap: balance; }
.hero__titulo a { color: inherit; text-decoration: none; }
.hero__titulo a:hover { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 6px; }
.hero__resumo { font-size: clamp(1.0625rem, 1.5vw, 1.25rem); max-width: 60ch; color: #e8eee9; }
.hero__botoes { display: flex; flex-wrap: wrap; gap: .8rem; margin: 1.6rem 0 0; }
.hero__nav { position: absolute; left: 50%; transform: translateX(-50%); bottom: 1.6rem; display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; }
.hero__lista { list-style: none; margin: 0; padding: 0; display: flex; gap: .75rem; flex: 1; min-width: 0; }
.hero__lista li { flex: 1 1 0; min-width: 0; }
.hero__lista button { width: 100%; display: flex; flex-direction: column; gap: .15rem; text-align: left; font: inherit; color: rgba(255, 255, 255, .78); background: none; border: 0; border-top: 3px solid rgba(255, 255, 255, .3); padding: .6rem .2rem 0; cursor: pointer; transition: color .2s, border-color .2s; }
.hero__lista button:hover, .hero__lista button[aria-current="true"] { color: #fff; border-top-color: var(--cor-2); }
.hero__num { font-family: var(--display); font-weight: 700; font-size: .8125rem; color: var(--cor-2); }
.hero__chamada { font-size: .875rem; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hero__controles { display: flex; gap: .5rem; flex: none; }
.hero__controles button { width: 48px; height: 48px; border-radius: 50%; font-size: 1.5rem; line-height: 1; color: #fff; background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .5); cursor: pointer; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.hero__controles button:hover { background: var(--cor-2); color: var(--cor-2-texto); border-color: var(--cor-2); }

/* faixa de números */
.numeros { background: var(--cor-1); color: var(--cor-1-texto); }
.numeros__lista { list-style: none; margin: 0 auto; padding: 1.6rem 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.numeros__lista li { display: flex; flex-direction: column; border-left: 3px solid var(--cor-2); padding-left: 1rem; }
.numeros__lista strong { font-family: var(--display); font-size: clamp(2rem, 4vw, 3rem); line-height: 1; }
.numeros__lista span { font-size: .9375rem; opacity: .88; }

/* --- seções ---------------------------------------------------------------- */
.secao { padding-block: clamp(56px, 8vw, 96px); }
.secao--clara { background: #fff; }
.secao__cab { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; margin-bottom: clamp(1.4rem, 3vw, 2.2rem); }
.secao__cab h2 { margin: 0; }
.sobretitulo { font-size: .8125rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--acao); margin: 0 0 .5rem; }
.sobretitulo--claro { color: var(--cor-2); }
.secao__mais { display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; text-decoration: none; white-space: nowrap; padding: .5rem 0; }
.secao__mais .icone { width: 20px; height: 20px; transition: transform .18s; }
.secao__mais:hover .icone { transform: translateX(4px); }

/* programas (classes do emg-programas): cartão com foto, chip da modalidade e selo */
.emg-programas__filtros { display: flex; flex-wrap: wrap; gap: .8rem 1rem; align-items: flex-end; background: var(--papel); border-radius: var(--raio); box-shadow: var(--sombra-1); padding: 1.1rem 1.3rem; margin-bottom: 2rem; }
.emg-programas__filtros .emg-campo { display: flex; flex-direction: column; gap: .25rem; font-size: .875rem; font-weight: 700; }
.emg-programas__filtros select { font: inherit; font-weight: 400; padding: .55rem .8rem; border: 2px solid var(--linha); border-radius: 12px; min-height: 48px; background: #fff; color: var(--texto); }
.emg-botao { display: inline-flex; align-items: center; background: var(--cor-2); color: var(--cor-2-texto); font: inherit; font-weight: 700; padding: .8rem 1.5rem; border-radius: 999px; min-height: 48px; border: 2px solid var(--cor-2); cursor: pointer; text-decoration: none; }
.emg-programas .emg-programas__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.5rem; }
.emg-programas .emg-programa-card { display: flex; }
.emg-programas .emg-programa-card__corpo { position: relative; width: 100%; background: var(--papel); border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra-1); transition: transform .2s, box-shadow .2s; border: 0; }
.emg-programas .emg-programa-card__corpo:hover, .emg-programas .emg-programa-card__corpo:focus-within { transform: translateY(-4px); box-shadow: var(--sombra-2); }
.emg-programas .emg-programa-card__foto { display: block; background: var(--cor-1-clara); }
.emg-programas .emg-programa-card__foto img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.emg-programas .emg-programa-card__texto { padding: 1.1rem 1.3rem 1.4rem; }
.emg-programas .emg-programa-card .emg-selo { position: absolute; right: .8rem; top: .8rem; z-index: 2; border: 0; box-shadow: 0 2px 8px rgba(0, 0, 0, .18); }
.emg-programas .emg-programa-card__titulo { font-size: 1.375rem; margin: 0 0 .6rem; }
.emg-programas .emg-programa-card__titulo a { color: var(--cor-1-escura); text-decoration: none; }
.emg-programas .emg-programa-card__titulo a::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.emg-programas .emg-programa-card__dados { display: block; margin: 0; font-size: .9375rem; color: var(--suave); }
.emg-programas .emg-programa-card__dados dt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.emg-programas .emg-programa-card__dados dd { display: inline; margin: 0; }
.emg-programas .emg-programa-card__dados dd:nth-of-type(n+3)::before { content: ' · '; }
.emg-programas .emg-programa-card__dados dd:first-of-type { position: absolute; left: .8rem; top: .8rem; z-index: 2; background: var(--cor-2); color: var(--cor-2-texto); font-weight: 800; font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; padding: .25rem .8rem; border-radius: 999px; }
.emg-programas .emg-selo { display: inline-block; font-size: .75rem; font-weight: 700; padding: .2rem .75rem; border-radius: 999px; background: #fff; border: 1px solid var(--linha); color: var(--texto); }
.emg-programas .emg-selo--andamento { background: #fff; color: #14532d; }
.emg-programas .emg-selo--planejado { background: #fff; color: #1e3a8a; }
.emg-programas .emg-selo--concluido { background: #fff; color: #374151; }
.emg-programas .emg-selo--suspenso { background: #fff; color: #7c2d12; }
.emg-programas .emg-programa-card .emg-selo--andamento::before { content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #16a34a; margin-right: .4rem; }
.emg-paginacao { margin-top: 2rem; text-align: center; }
.emg-programas__vazio { padding: 2rem; text-align: center; background: var(--papel); border-radius: var(--raio); }
.emg-programa__ficha { display: grid; grid-template-columns: max-content 1fr; gap: 0 2rem; margin: 0 0 1rem; font-size: 1rem; }
.emg-programa__ficha dt, .emg-programa__ficha dd { padding: .6rem 0; border-bottom: 1px solid var(--linha); margin: 0; }
.emg-programa__ficha dt { font-weight: 700; color: var(--suave); }
.emg-programa__subtitulo { font-size: 1.5rem; margin: 2rem 0 .8rem; }
.emg-programa__titulo { font-size: clamp(1.5rem, 3vw, 2rem); }
.emg-programa__numeros { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .8rem; }
.emg-programa__numeros li { background: var(--cor-1-clara); border-radius: 12px; padding: .9rem; text-align: center; }
.emg-programa__numeros strong { display: block; font-family: var(--display); font-size: 1.75rem; color: var(--cor-1-escura); }
.emg-programa__fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.emg-programa__fotos figure { margin: 0; }
.emg-programa__fotos img { border-radius: 12px; }

/* notícias: 1 grande + 4 em lista */
.noticias-ed { display: grid; grid-template-columns: 1.25fr 1fr; gap: clamp(1.5rem, 3vw, 3rem); align-items: start; }
.noticia-grande__foto { display: block; border-radius: var(--raio); overflow: hidden; background: var(--cor-1-clara); }
.noticia-grande__foto img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .4s; }
.noticia-grande:hover .noticia-grande__foto img { transform: scale(1.03); }
.noticia-grande__corpo { padding-top: 1.2rem; }
.noticia-grande h3 { font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.15; margin-bottom: .5rem; }
.noticia-grande h3 a, .noticia-item h3 a, .cartao h3 a, .evento-card h3 a { color: var(--cor-1-escura); text-decoration: none; }
.noticia-grande h3 a:hover, .noticia-item h3 a:hover, .cartao h3 a:hover, .evento-card h3 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.noticias-lista { list-style: none; margin: 0; padding: 0; }
.noticia-item { display: grid; grid-template-columns: 128px 1fr; gap: 1.1rem; align-items: center; padding: 1rem 0; border-bottom: 1px solid var(--linha); }
.noticia-item:first-child { padding-top: 0; }
.noticia-item:last-child { border-bottom: 0; }
.noticia-item__foto { border-radius: 12px; overflow: hidden; display: block; background: var(--cor-1-clara); }
.noticia-item__foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.noticia-item h3 { font-size: 1.0625rem; margin: 0; }
.noticia-item .meta { margin-bottom: .25rem; }

/* agenda: trilha horizontal de cartões */
.trilha-eventos { list-style: none; margin: 0 calc(50% - 50vw); padding: .5rem max(1.25rem, calc(50vw - 620px)) 1.5rem; display: flex; gap: 1.25rem; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin; }
.evento-card { position: relative; flex: 0 0 min(320px, 80vw); scroll-snap-align: start; background: var(--papel); border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra-1); transition: transform .2s, box-shadow .2s; }
.evento-card:hover { transform: translateY(-4px); box-shadow: var(--sombra-2); }
.evento-card__foto { display: block; background: var(--cor-1); }
.evento-card__foto img, .evento-card__vazio { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; background: var(--cor-1); }
.evento-card__data { position: absolute; left: 1rem; top: 1rem; background: #fff; color: var(--cor-1); border-radius: 12px; text-align: center; padding: .4rem .8rem; line-height: 1; box-shadow: 0 4px 14px rgba(0, 0, 0, .2); }
.evento-card__dia { display: block; font-family: var(--display); font-weight: 800; font-size: 1.75rem; }
.evento-card__mes { display: block; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--acao); margin-top: .15rem; }
.evento-card__corpo { padding: 1rem 1.2rem 1.3rem; }
.evento-card h3 { font-size: 1.125rem; margin: 0 0 .5rem; }
.evento-card h3 a::after { content: ''; position: absolute; inset: 0; }
.evento-card .meta { margin-bottom: .2rem; }

/* galeria em mosaico */
.mosaico { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 190px; gap: 1rem; }
.mosaico li { position: relative; border-radius: var(--raio); overflow: hidden; background: var(--cor-1-clara); }
.mosaico a { display: block; height: 100%; }
.mosaico img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.mosaico a:hover img { transform: scale(1.05); }
.mosaico__leg { position: absolute; left: 0; right: 0; bottom: 0; padding: 2rem 1rem .8rem; color: #fff; font-size: .875rem; font-weight: 600; background: linear-gradient(to top, rgba(0, 0, 0, .75), transparent); opacity: 0; transition: opacity .2s; }
.mosaico a:hover .mosaico__leg, .mosaico a:focus-visible .mosaico__leg { opacity: 1; }
.mosaico:not(.mosaico--simples) li:nth-child(1) { grid-row: span 2; }
.mosaico:not(.mosaico--simples) li:nth-child(4) { grid-column: span 2; }
.mosaico:not(.mosaico--simples) li:nth-child(5) { grid-column: span 2; }
.mosaico:not(.mosaico--simples) li:nth-child(6) { grid-row: span 2; }

/* transparência */
.transparencia { background: var(--cor-1); color: var(--cor-1-texto); padding-block: clamp(56px, 7vw, 88px); position: relative; overflow: hidden; }
.transparencia::before { content: ''; position: absolute; right: -80px; top: 50%; width: 420px; height: 420px; transform: translateY(-50%); border-radius: 50%; border: 3px solid rgba(255, 255, 255, .1); box-shadow: 0 0 0 40px rgba(255, 255, 255, .03); }
.transparencia::after { content: ''; position: absolute; right: 130px; top: 0; bottom: 0; width: 3px; background: rgba(255, 255, 255, .08); }
.transparencia__grade { position: relative; z-index: 1; display: grid; grid-template-columns: 1.5fr 1fr; gap: 2rem; align-items: center; }
.transparencia h2 { color: #fff; font-size: clamp(1.75rem, 3.4vw, 2.75rem); }
.transparencia p:not(.sobretitulo) { max-width: 62ch; color: #e1ebe5; margin: 0; }
.transparencia__acoes { display: flex; flex-direction: column; gap: .8rem; align-items: stretch; }

/* documentos: lista compacta */
.emg-docs { display: grid; gap: .6rem; }
.emg-docs .emg-item { display: grid; grid-template-columns: 52px 1fr auto; column-gap: 1rem; align-items: center; background: var(--papel); border: 0; border-radius: 14px; box-shadow: var(--sombra-1); padding: .9rem 1.2rem; margin: 0; }
.emg-docs .emg-item::before { content: ''; grid-row: 1 / 3; width: 44px; height: 52px; border-radius: 8px; background: var(--cor-1-clara) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f3d2e' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h9l4 4v14H6z'/%3E%3Cpath d='M14 3v5h5M9 13h7M9 17h5'/%3E%3C/svg%3E") center / 26px no-repeat; }
.emg-docs .emg-item h3 { grid-column: 2; font-size: 1.0625rem; margin: 0; }
.emg-docs .emg-item .emg-meta { grid-column: 2; margin: 0; }
.emg-docs .emg-item p:not(.emg-meta) { margin: 0; }
.emg-docs .emg-item p:last-child:not(.emg-meta) { grid-column: 3; grid-row: 1 / 3; }
.emg-docs .emg-item p:nth-of-type(2):not(:last-child) { display: none; }
.emg-baixar { display: inline-flex; font-weight: 700; text-decoration: none; padding: .5rem 1rem; border-radius: 999px; background: var(--cor-1-clara); white-space: nowrap; }
.emg-baixar:hover { background: var(--cor-1); color: #fff; }
.emg-baixar::before { content: '↓ '; margin-right: .3rem; }
.emg-meta { color: var(--suave); font-size: .875rem; }
.emg-lista { list-style: none; margin: 0; padding: 0; }
.emg-item { background: var(--papel); border-radius: 14px; box-shadow: var(--sombra-1); padding: 1rem 1.3rem; margin-bottom: .8rem; }
.emg-item h2, .emg-item h3 { margin: 0 0 .2rem; font-size: 1.125rem; }
.emg-filtros { display: block; background: var(--papel); border-radius: var(--raio); box-shadow: var(--sombra-1); padding: 1.1rem 1.3rem; margin-bottom: 2rem; }
.emg-filtros input, .emg-filtros select { border: 2px solid var(--linha); border-radius: 12px; min-height: 48px; }
.emg-videos { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.5rem; }
.emg-video-card { border-radius: var(--raio); overflow: hidden; border: 0; box-shadow: var(--sombra-1); }
.emg-fotos figure { border: 0; border-radius: var(--raio); box-shadow: var(--sombra-1); }
.emg-cal { border: 0; border-radius: var(--raio); box-shadow: var(--sombra-1); }

/* --- páginas internas -------------------------------------------------------- */
.topo-pagina { background: var(--cor-1); color: var(--cor-1-texto); padding: clamp(2.2rem, 5vw, 4rem) 0 clamp(2rem, 4.5vw, 3.4rem); position: relative; overflow: hidden; }
.topo-pagina::before { content: ''; position: absolute; right: -120px; top: -140px; width: 440px; height: 440px; border-radius: 50%; border: 3px solid rgba(255, 255, 255, .08); }
.topo-pagina .container { position: relative; }
.trilha { font-size: .875rem; color: rgba(255, 255, 255, .8); margin-bottom: 1.1rem; }
.trilha a { color: #fff; }
.topo-pagina__titulo { font-size: clamp(2rem, 4.6vw, 3.5rem); color: #fff; max-width: 22ch; margin-bottom: .3em; text-wrap: balance; }
.topo-pagina__sub { font-size: 1.125rem; color: #dcebe2; max-width: 64ch; margin: 0; }
.etiquetas { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 .9rem; }
.etiqueta { font-size: .8125rem; font-weight: 700; text-decoration: none; padding: .2rem .8rem; border-radius: 999px; background: var(--cor-2); color: var(--cor-2-texto); }
.etiqueta--publico { background: rgba(255, 255, 255, .16); color: #fff; }
.etiqueta:hover { filter: brightness(1.08); color: inherit; }
.pagina { padding-block: clamp(2rem, 5vw, 3.5rem) clamp(3rem, 7vw, 5.5rem); }
.conteudo { background: var(--papel); border-radius: var(--raio); box-shadow: var(--sombra-1); padding: clamp(1.4rem, 4vw, 3rem); }
.conteudo--livre { background: transparent; box-shadow: none; padding: 0; border-radius: 0; }
.emg-filtros select, .emg-filtros input { max-width: 380px; }
.pagina--noticia .conteudo { max-width: 920px; margin-inline: auto; margin-top: -4.5rem; position: relative; }
.texto { max-width: 72ch; font-size: 1.125rem; }
.texto--largo { max-width: none; }
.texto h2 { font-size: 1.75rem; margin-top: 1.6em; }
.texto :is(table) { width: 100%; border-collapse: collapse; margin: 1rem 0; }
.texto :is(th, td) { border: 1px solid var(--linha); padding: .55rem .8rem; text-align: left; }
.texto th { background: var(--fundo); }
.texto img { border-radius: 12px; }
.destaque { margin: 0 0 1.6rem; }
.destaque img { border-radius: 14px; width: 100%; }
.destaque figcaption { font-size: .8125rem; color: var(--suave); margin-top: .5rem; }
.meta--linha { margin-bottom: 1.2rem; font-size: .9375rem; }
.h-secundario { font-size: 1.5rem; margin: 2rem 0 1rem; }
.relacionado { margin-top: 2rem; padding: 1rem 1.2rem; background: var(--cor-1-clara); border-radius: 12px; }
.atualizado { font-size: .875rem; color: var(--suave); font-style: italic; margin-top: 1.5rem; }
.compartilhar { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-top: 1.5rem; padding-top: 1.2rem; border-top: 1px solid var(--linha); }
.compartilhar a, .compartilhar button { font: inherit; font-size: .9375rem; font-weight: 600; text-decoration: none; color: var(--cor-1-escura); background: var(--fundo); border: 1px solid var(--linha); border-radius: 999px; padding: .5rem 1.1rem; cursor: pointer; min-height: 44px; }
.compartilhar a:hover, .compartilhar button:hover { background: var(--cor-1); color: var(--cor-1-texto); }
.leia-tambem { max-width: 1240px; margin: 3.5rem auto 0; }
.filtros { display: flex; flex-wrap: wrap; gap: .6rem 1rem; align-items: flex-end; background: var(--papel); border-radius: var(--raio); box-shadow: var(--sombra-1); padding: 1.1rem 1.3rem; margin-bottom: 2rem; }
.filtros p { margin: 0; }
.filtros label { display: block; font-size: .875rem; font-weight: 700; margin-bottom: .25rem; }
.filtros select { min-width: 220px; font: inherit; padding: .55rem .8rem; border: 2px solid var(--linha); border-radius: 12px; min-height: 48px; background: #fff; color: var(--texto); }
.noticias__grade, .emg-albuns { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 1.5rem; }
.cartao { background: var(--papel); border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra-1); transition: transform .2s, box-shadow .2s; display: flex; flex-direction: column; }
.cartao:hover { transform: translateY(-4px); box-shadow: var(--sombra-2); }
.cartao__img { position: relative; display: block; background: var(--cor-1-clara); }
.cartao__img img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.cartao__corpo { padding: 1.1rem 1.3rem 1.4rem; }
.cartao h3 { margin-bottom: .5rem; }
.cartao p { color: var(--suave); font-size: .9375rem; margin: 0 0 .4rem; }
.cartao__data { font-size: .8125rem !important; letter-spacing: .04em; text-transform: uppercase; }
.paginacao { margin-top: 2.5rem; text-align: center; }
.paginacao .page-numbers { display: inline-block; padding: .55rem 1rem; border-radius: 999px; text-decoration: none; background: var(--papel); margin: 0 .1rem; min-width: 44px; box-shadow: var(--sombra-1); }
.paginacao .current { background: var(--cor-1); color: var(--cor-1-texto); }
.paginacao .screen-reader-text { position: absolute; left: -9999px; }
.mapa { padding-left: 1.2rem; }

/* --- rodapé escuro ---------------------------------------------------------- */
.rodape { background: color-mix(in srgb, var(--cor-1) 78%, #000); color: #d6e3da; margin-top: 0; }
.rodape a { color: #fff; }
.rodape a:hover { color: var(--cor-2); }
.rodape__grade { display: grid; grid-template-columns: 1.3fr 1fr 1.2fr 1.2fr; gap: 2.5rem; padding-block: clamp(3rem, 6vw, 4.5rem) 2.5rem; }
.rodape__titulo { font-family: var(--display); font-size: .9375rem; color: var(--cor-2); letter-spacing: .02em; margin: 0 0 1rem; }
.rodape .marca { color: #fff; margin-bottom: 1.2rem; }
.rodape .marca__sub { color: #b9cdc0; }
.rodape .brasao--img { background: #fff; border-radius: 8px; padding: 4px; }
.rodape__texto { font-style: normal; margin: 0 0 .7rem; font-size: .9375rem; }
.rodape__lista, .rodape__redes { list-style: none; margin: 0; padding: 0; font-size: .9375rem; }
.rodape__lista a { display: inline-block; padding: .3rem 0; text-decoration: none; }
.rodape__lista a:hover { text-decoration: underline; }
.rodape__lista li { padding: .05rem 0; }
.rodape__redes { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.rodape__redes a { display: inline-block; padding: .4rem .9rem; border: 1px solid rgba(255, 255, 255, .35); border-radius: 999px; text-decoration: none; font-weight: 600; }
.rodape__redes a:hover { background: var(--cor-2); color: var(--cor-2-texto); border-color: var(--cor-2); }
.rodape__base { border-top: 1px solid rgba(255, 255, 255, .14); font-size: .875rem; }
.rodape__base-linha { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; padding-block: 1.2rem; }
.rodape__base p { margin: 0; }

/* --- alto contraste ---------------------------------------------------------- */
.alto-contraste, .alto-contraste body { --cor-1: #000; --cor-1-texto: #fff; --cor-1-escura: #fff; --cor-1-clara: #000; --cor-2: #ff0; --cor-2-texto: #000; --acao: #ff0; --fundo: #000; --papel: #000; --texto: #fff; --suave: #fff; --linha: #fff; --foco: #ff0; --sombra-1: none; --sombra-2: none; }
.alto-contraste body { background: #000; color: #fff; }
.alto-contraste a { color: #ff0; }
.alto-contraste .cabecalho, .alto-contraste .cabecalho:not(.rolou) { border-bottom: 1px solid #fff; }
.alto-contraste .cabecalho::before, .alto-contraste .cabecalho:not(.rolou)::before { background: #000; }
.alto-contraste :is(.marca, .marca__sub, .menu__item > a, .icone-botao) { color: #ff0 !important; }
.alto-contraste .menu__item.atual > a, .alto-contraste .menu__item > a:hover { background: #000; outline: 2px solid #ff0; }
.alto-contraste :is(.cartao, .evento-card, .emg-programa-card__corpo, .emg-docs .emg-item, .conteudo, .filtros, .emg-programas__filtros, .painel-acess, .submenu, .busca, .mosaico li, .emg-item, .emg-filtros, .emg-cal, .emg-fotos figure, .emg-video-card) { border: 1px solid #fff; background: #000; color: #fff; }
.alto-contraste .botao, .alto-contraste .emg-botao { background: #ff0; color: #000; border-color: #ff0; }
.alto-contraste .botao--vazado { background: #000; color: #ff0; border-color: #ff0; }
.alto-contraste :is(.topo-pagina, .transparencia, .numeros, .rodape) { background: #000; border-block: 1px solid #fff; }
.alto-contraste .hero__midia::after { background: rgba(0, 0, 0, .82); }
.alto-contraste :is(.hero__titulo, .hero__resumo) { color: #fff; }
.alto-contraste :is(.chip, .etiqueta, .emg-programa-card__dados dd:first-of-type) { background: #ff0; color: #000; }
.alto-contraste .evento-card__data { background: #ff0; color: #000; }
.alto-contraste .evento-card__mes { color: #000; }
.alto-contraste :is(.filtros select, .emg-programas__filtros select, .busca input) { background: #000; color: #fff; border-color: #fff; }
.alto-contraste .secao--clara { background: #000; }
.alto-contraste .emg-docs .emg-item::before { filter: invert(1); }
.alto-contraste .emg-selo { background: #000; color: #ff0; border: 1px solid #ff0; }

/* --- responsivo ---------------------------------------------------------------- */
@media (min-width: 1500px) { .icone-botao__rot { position: static; width: auto; height: auto; overflow: visible; clip: auto; } }
@media (max-width: 1360px) { .cab__cta { display: none; } }
@media (max-width: 1179px) {
  :root { --cab: 64px; }
  .menu-botao { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; background: transparent; border-radius: 50%; cursor: pointer; color: inherit; }
  .menu-botao__barras, .menu-botao__barras::before, .menu-botao__barras::after { display: block; width: 22px; height: 2px; background: currentColor; position: relative; border-radius: 2px; }
  .menu-botao__barras::before, .menu-botao__barras::after { content: ''; position: absolute; left: 0; }
  .menu-botao__barras::before { top: -7px; }
  .menu-botao__barras::after { top: 7px; }
  body.home .cabecalho:not(.rolou) .menu-botao { color: #fff; }
  .menu { position: fixed; top: 0; right: 0; bottom: 0; width: min(88vw, 380px); z-index: 300; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; background: var(--cor-1); padding: 4.5rem 1.2rem 1.5rem; transform: translateX(100%); visibility: hidden; transition: transform .22s, visibility .22s; overflow-y: auto; }
  .menu.aberto { transform: none; visibility: visible; }
  .menu__fechar { display: block; position: absolute; right: .8rem; top: .8rem; width: 44px; height: 44px; font-size: 2rem; line-height: 1; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; cursor: pointer; }
  .menu__lista { flex-direction: column; align-items: stretch; }
  .menu__item { flex-wrap: wrap; }
  .menu__item > a, body.home .cabecalho:not(.rolou) .menu__item > a { flex: 1; color: #fff !important; font-family: var(--display); font-size: 1.25rem; padding: .9rem .4rem; border-radius: 0; border-bottom: 1px solid rgba(255, 255, 255, .14); background: none !important; box-shadow: none !important; }
  .menu__item.atual > a { color: var(--cor-2) !important; }
  .submenu-botao { width: 48px; margin: 0; color: #fff; border-bottom: 1px solid rgba(255, 255, 255, .14); }
  .submenu { position: static; width: 100%; box-shadow: none; background: rgba(0, 0, 0, .2); border-radius: 0; }
  .submenu .menu__item > a { font-size: 1rem; }
  .menu__cta { display: inline-flex; margin-top: 1.4rem; }
  .menu-fundo { position: fixed; inset: 0; z-index: 250; background: rgba(4, 16, 11, .6); }
  .menu-fundo:not([hidden]) { display: block; }
  .brasao { height: 38px; }
  .hero__slide { min-height: max(520px, 68vh); }
  .hero__lista { display: none; }
  .hero__nav { justify-content: flex-end; width: calc(100% - 2.5rem); }
  .hero__conteudo { padding-bottom: 5.5rem; }
  .numeros__lista { grid-template-columns: repeat(2, 1fr); }
  .noticias-ed, .transparencia__grade { grid-template-columns: 1fr; }
  .transparencia__acoes { flex-direction: row; flex-wrap: wrap; }
  .rodape__grade { grid-template-columns: 1fr 1fr; }
  .pagina--noticia .conteudo { margin-top: -2.5rem; }
}
@media (max-width: 700px) {
  body { font-size: 1rem; }
  .marca__sub { display: none; }
  .hero__titulo { font-size: 2.25rem; }
  .hero__botoes .botao { flex: 1 1 100%; min-height: 52px; }
  .secao__cab { flex-direction: column; align-items: flex-start; }
  .noticia-item { grid-template-columns: 104px 1fr; }
  .mosaico { display: flex; overflow-x: auto; gap: .8rem; scroll-snap-type: x proximity; margin: 0 -1.25rem; padding: 0 1.25rem .8rem; }
  .mosaico li { flex: 0 0 78vw; height: 58vw; scroll-snap-align: start; grid-row: auto !important; grid-column: auto !important; }
  .mosaico__leg { opacity: 1; }
  .rodape__grade { grid-template-columns: 1fr; gap: 2rem; }
  .emg-docs .emg-item { grid-template-columns: 44px 1fr; }
  .emg-docs .emg-item p:last-child:not(.emg-meta) { grid-column: 2; grid-row: auto; margin-top: .6rem; }
  .botao, .emg-botao { min-height: 48px; }
  .filtros select, .emg-programas__filtros select { min-width: 0; width: 100%; }
  .emg-programas__filtros .emg-campo, .filtros p { width: 100%; }
}
@media (max-width: 430px) {
  .cab__linha { gap: .4rem; }
  .marca { gap: .5rem; min-width: 0; }
  .marca__nome { font-size: .9375rem; }
  .brasao { height: 34px; max-width: 44px; }
  .cab__acoes { gap: 0; }
  .icone-botao, .menu-botao { min-width: 40px; width: auto; padding: 0 .45rem; height: 44px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
