.publico .galeria-publica { max-width: 1220px; margin: 0 auto; padding: 1.5rem 0 4.5rem; }
.publico .galeria-hero { max-width: 770px; padding: clamp(2rem, 5vw, 4.7rem) 0 2rem; }
.publico .galeria-selo { margin: 0 0 .8rem; color: #27783a; font-size: .76rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.publico .galeria-hero h1 { margin: 0; color: #183220; font-size: clamp(2.45rem, 6vw, 5rem); line-height: .98; letter-spacing: -.06em; }
.publico .galeria-hero > p:not(.galeria-selo) { max-width: 590px; margin: 1.4rem 0 0; color: #5a6c5f; font-size: clamp(1rem, 2vw, 1.16rem); line-height: 1.65; }
.publico .galeria-busca { display: flex; align-items: center; gap: .65rem; max-width: 650px; margin-top: 2rem; padding: .46rem .5rem .46rem 1rem; background: #fff; border: 1px solid #d5e3d5; border-radius: 1rem; box-shadow: 0 12px 30px rgba(22, 59, 30, .07); }
.publico .galeria-busca svg { width: 20px; height: 20px; flex: none; fill: none; stroke: #52705a; stroke-width: 2; stroke-linecap: round; }
.publico .galeria-busca input { min-width: 0; flex: 1; border: 0; outline: 0; color: #233f2a; font: inherit; background: transparent; }
.publico .galeria-busca input::placeholder { color: #809084; }
.publico .galeria-busca button { border: 0; border-radius: .7rem; padding: .72rem 1rem; background: #287d3b; color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.publico .galeria-busca button:hover { background: #1d672e; }
.publico .galeria-filtros { display: flex; gap: .65rem; overflow-x: auto; padding: 1rem 0 1.5rem; scrollbar-width: thin; }
.publico .galeria-filtros a { display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap; border: 1px solid #d9e6d9; border-radius: 999px; padding: .58rem .85rem; color: #406148; background: #fbfdf9; font-size: .9rem; font-weight: 700; text-decoration: none; }
.publico .galeria-filtros a:hover, .publico .galeria-filtros a.ativo { border-color: #2d8440; background: #e6f2e8; color: #1d6330; }
.publico .galeria-filtros span { min-width: 1.35rem; padding: .05rem .32rem; border-radius: 999px; background: #d8eadb; color: #236d33; text-align: center; font-size: .73rem; }
.publico .galeria-resultados { margin: .2rem 0 1rem; color: #708172; font-size: .9rem; }
.publico .galeria-grade { columns: 3 260px; column-gap: 1.1rem; }
.publico .galeria-cartao { position: relative; break-inside: avoid; overflow: hidden; margin: 0 0 1.1rem; border-radius: 1.1rem; background: #24442c; isolation: isolate; box-shadow: 0 9px 24px rgba(23, 52, 29, .12); }
.publico .galeria-cartao-botao { display: block; width: 100%; padding: 0; border: 0; color: inherit; background: transparent; cursor: zoom-in; text-align: left; font: inherit; }
.publico .galeria-cartao img { display: block; width: 100%; min-height: 210px; max-height: 580px; object-fit: cover; transition: transform .45s ease; }
.publico .galeria-cartao::after { position: absolute; inset: 35% 0 0; z-index: -1; background: linear-gradient(transparent, rgba(12, 31, 16, .92)); content: ""; }
.publico .galeria-cartao:hover img { transform: scale(1.045); }
.publico .galeria-cartao-legenda { position: absolute; right: 0; bottom: 0; left: 0; padding: 2.9rem 1.1rem 1.05rem; color: #fff; }.publico .galeria-cartao-legenda>span { display: block; margin: 0 0 .25rem; color: #d5eed9; font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }.publico .galeria-cartao-legenda strong { display: block; color: #fff; font-size: 1.18rem; line-height: 1.18; }.publico .galeria-cartao-legenda small { display: block; margin-top: .45rem; color: #e8f4ea; font-size: .85rem; line-height: 1.4; }
.publico .galeria-modal { width: min(96vw, 1280px); max-width: none; max-height: 94vh; margin: auto; padding: 0; border: 0; border-radius: 1rem; background: #102014; color: #fff; box-shadow: 0 28px 90px rgba(0,0,0,.55); }.publico .galeria-modal::backdrop { background: rgba(5, 15, 8, .88); backdrop-filter: blur(4px); }.publico .galeria-modal figure { display: flex; flex-direction: column; max-height: 94vh; margin: 0; }.publico .galeria-modal figure img { display: block; width: 100%; min-height: 0; max-height: calc(94vh - 96px); object-fit: contain; }.publico .galeria-modal figcaption { padding: .85rem 3.6rem .95rem 1rem; }.publico .galeria-modal figcaption strong,.publico .galeria-modal figcaption span { display: block; }.publico .galeria-modal figcaption span { margin-top: .25rem; color: #d5e4d6; font-size: .88rem; }.publico .galeria-modal-fechar { position: absolute; z-index: 1; top: .7rem; right: .7rem; width: 2.45rem; height: 2.45rem; border: 1px solid rgba(255,255,255,.32); border-radius: 50%; color: #fff; background: rgba(0,0,0,.48); font-size: 1.75rem; line-height: 1; cursor: pointer; }
.publico .galeria-modal-navegar { position: absolute; z-index: 1; top: 50%; width: 2.8rem; height: 3.4rem; border: 1px solid rgba(255,255,255,.32); border-radius: .7rem; color: #fff; background: rgba(0,0,0,.48); font-size: 2.5rem; line-height: 1; cursor: pointer; transform: translateY(-50%); }.publico .galeria-modal-anterior { left: .75rem; }.publico .galeria-modal-proxima { right: .75rem; }.publico .galeria-modal-navegar:hover,.publico .galeria-modal-fechar:hover { background: rgba(40,125,59,.9); }
.publico .galeria-vazia { max-width: 520px; margin: 2rem auto; padding: 3.4rem 1.5rem; border: 1px solid #d9e6d9; border-radius: 1.2rem; background: #fff; text-align: center; }
.publico .galeria-vazia > span { display: block; color: #318443; font-size: 2.4rem; }
.publico .galeria-vazia h2 { margin: .65rem 0 .35rem; color: #23422a; }
.publico .galeria-vazia p { margin: 0; color: #65786a; }
.publico .galeria-vazia a { display: inline-block; margin-top: 1.1rem; color: #216f32; font-weight: 800; }
@media (max-width: 640px) { .publico .galeria-publica { padding: .75rem 0 3rem; } .publico .galeria-busca { align-items: stretch; flex-wrap: wrap; } .publico .galeria-busca input { min-width: calc(100% - 34px); } .publico .galeria-busca button { width: 100%; } .publico .galeria-grade { columns: 1; } .publico .galeria-cartao img { max-height: none; } }

/* Modo Escuro para Galeria */
[data-theme="dark"] .publico .galeria-hero h1 { color: var(--text); }
[data-theme="dark"] .publico .galeria-hero > p:not(.galeria-selo) { color: var(--text-2); }
[data-theme="dark"] .publico .galeria-busca { background: var(--surface); border-color: var(--border); box-shadow: 0 12px 30px rgba(0, 0, 0, 0.4); }
[data-theme="dark"] .publico .galeria-busca input { color: var(--text); }
[data-theme="dark"] .publico .galeria-busca input::placeholder { color: var(--text-2); }
[data-theme="dark"] .publico .galeria-filtros a { background: var(--surface-2); border-color: var(--border); color: var(--text-2); }
[data-theme="dark"] .publico .galeria-filtros a:hover, [data-theme="dark"] .publico .galeria-filtros a.ativo { background: color-mix(in srgb, var(--primary) 18%, var(--surface)); border-color: var(--primary); color: var(--primary-ink); }
[data-theme="dark"] .publico .galeria-filtros span { background: var(--surface); color: var(--text-2); }
[data-theme="dark"] .publico .galeria-vazia { background: var(--surface); border-color: var(--border); }
[data-theme="dark"] .publico .galeria-vazia h2 { color: var(--text); }
[data-theme="dark"] .publico .galeria-vazia p { color: var(--text-2); }

