/* emg-base — estilos públicos. Usam as variáveis do tema (--cor-1, --cor-2...), com valores de reserva. */

.emg-filtros { background: var(--papel, #fff); border: 1px solid var(--linha, #d0d7de); border-radius: 8px; padding: 1rem 1.2rem; margin-bottom: 1.5rem; }
.emg-filtros__grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: .4rem 1rem; }
.emg-filtros p { margin: 0 0 .6rem; }
.emg-filtros label { display: block; font-size: .875rem; font-weight: 600; margin-bottom: .2rem; }
.emg-filtros input, .emg-filtros select { width: 100%; font: inherit; padding: .5rem .6rem; border: 1px solid var(--linha, #d0d7de); border-radius: 6px; min-height: 44px; background: var(--papel, #fff); color: var(--texto, #1b2733); }

.emg-lista { list-style: none; margin: 0; padding: 0; }
.emg-item { background: var(--papel, #fff); border: 1px solid var(--linha, #d0d7de); border-left: 4px solid var(--cor-2, #f2a900); border-radius: 8px; padding: .9rem 1.1rem; margin-bottom: .8rem; }
.emg-item h2, .emg-item h3 { margin: 0 0 .2rem; font-size: 1.05rem; }
.emg-item p { margin: .2rem 0; }
.emg-meta { color: var(--suave, #4a5663); font-size: .875rem; }
.emg-baixar::before { content: '⬇ '; }
.emg-baixar { font-weight: 600; }

.emg-dados { display: grid; gap: .5rem; margin: 1rem 0; }
.emg-dados > div { display: grid; grid-template-columns: minmax(110px, 160px) 1fr; gap: .5rem; border-bottom: 1px solid var(--linha, #d0d7de); padding-bottom: .4rem; }
.emg-dados dt { font-weight: 700; color: var(--suave, #4a5663); }
.emg-dados dd { margin: 0; }

.emg-selo { display: inline-block; font-size: .75rem; font-weight: 700; padding: .1rem .6rem; border-radius: 99px; background: var(--fundo, #eef2f6); border: 1px solid var(--linha, #d0d7de); }

/* álbuns e fotos */
.emg-albuns { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1.2rem; }
.emg-fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.2rem; margin-top: 1.5rem; }
.emg-fotos figure { margin: 0; background: var(--papel, #fff); border: 1px solid var(--linha, #d0d7de); border-radius: 8px; overflow: hidden; }
.emg-fotos img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.emg-fotos figcaption { padding: .6rem .8rem .8rem; font-size: .9rem; }
.emg-fotos figcaption > * { display: block; }

/* vídeos */
.emg-videos { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.2rem; margin-top: 1rem; }
.emg-video-card { background: var(--papel, #fff); border: 1px solid var(--linha, #d0d7de); border-radius: 8px; overflow: hidden; }
.emg-video-card__corpo { padding: .8rem 1rem 1rem; }
.emg-video-card h3 { font-size: 1.02rem; margin: 0 0 .2rem; }
.emg-video-card p { margin: .2rem 0; }
.emg-video-quadro { position: relative; aspect-ratio: 16 / 9; background: #000; overflow: hidden; }
.emg-video-quadro iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.emg-video-unico { max-width: 760px; margin: 1rem 0 1.5rem; }
.emg-video-unico .emg-video-quadro { border-radius: 8px; }
.emg-player { all: unset; cursor: pointer; display: block; width: 100%; height: 100%; position: relative; }
.emg-player:focus-visible { outline: 3px solid var(--foco, #ffbf47); outline-offset: -3px; }
.emg-video-fundo { position: absolute; inset: 0; background: linear-gradient(135deg, var(--cor-1, #0b5d3b), #0a2a1d); }
.emg-player__play { position: absolute; left: 1rem; bottom: 1rem; display: inline-flex; gap: .5rem; align-items: center; background: rgba(0, 0, 0, .78); color: #fff; padding: .6rem 1rem; border-radius: 8px; font-weight: 700; }

/* calendário */
.emg-cal { background: var(--papel, #fff); border: 1px solid var(--linha, #d0d7de); border-radius: 8px; padding: .8rem; margin-bottom: 1.5rem; }
.emg-cal__nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: .6rem; gap: .5rem; }
.emg-cal__nav a { padding: .5rem .3rem; white-space: nowrap; }
.emg-cal__nav strong { text-align: center; }
.emg-cal__tabela { width: 100%; border-collapse: collapse; table-layout: fixed; }
.emg-cal__tabela th { font-size: .8125rem; padding: .3rem; background: var(--fundo, #eef2f6); }
.emg-cal__tabela td { border: 1px solid var(--linha, #d0d7de); vertical-align: top; height: 4.4rem; padding: .2rem .3rem; font-size: .8125rem; overflow: hidden; }
.emg-cal__tabela td.vazio { background: var(--fundo, #eef2f6); }
.emg-cal__tabela td.hoje .dia { background: var(--cor-1, #0b5d3b); color: #fff; border-radius: 50%; padding: 0 .35rem; }
.emg-cal__tabela td.tem-evento { background: #fff6dd; }
.emg-cal__evento { display: block; font-size: .75rem; line-height: 1.2; margin-top: .15rem; font-weight: 700; word-break: break-word; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 700px) {
  .emg-cal__tabela td { height: 3.4rem; padding: .1rem; }
  .emg-cal__evento { font-size: 0; height: 10px; width: 10px; background: var(--cor-1, #0b5d3b); border-radius: 50%; display: inline-block; margin: 2px 1px 0 0; }
  .emg-dados > div { grid-template-columns: 1fr; gap: .1rem; }
}

/* aviso de cookies */
.emg-cookies { position: fixed; left: 0; right: 0; bottom: 0; z-index: 150; background: #14202b; color: #fff; box-shadow: 0 -4px 18px rgba(0, 0, 0, .3); }
.emg-cookies[hidden] { display: none; }
.emg-cookies a { color: #ffd966; }
.emg-cookies__linha { display: flex; flex-wrap: wrap; gap: .8rem 1.5rem; align-items: center; justify-content: space-between; padding-block: .9rem; width: min(1180px, 100% - 2rem); margin-inline: auto; }
.emg-cookies__texto { margin: 0; flex: 1 1 360px; font-size: .875rem; line-height: 1.45; }
@media (max-width: 600px) { .emg-cookies__linha { padding-block: .6rem; gap: .5rem; } .emg-cookies .botao { padding: .4rem 1.2rem; min-height: 44px; } }

/* alto contraste */
.alto-contraste .emg-filtros, .alto-contraste .emg-item, .alto-contraste .emg-video-card, .alto-contraste .emg-cal, .alto-contraste .emg-fotos figure { background: #000; border-color: #fff; color: #fff; }
.alto-contraste .emg-cal__tabela td, .alto-contraste .emg-cal__tabela th { border-color: #fff; background: #000; color: #fff; }
.alto-contraste .emg-cal__tabela td.tem-evento { outline: 2px solid #ff0; }
.alto-contraste .emg-cal__evento { color: #ff0; }
.alto-contraste .emg-filtros input, .alto-contraste .emg-filtros select { background: #000; color: #fff; border-color: #fff; }
.alto-contraste .emg-meta { color: #fff; }
