/* ds-galeria */
.ds-galeria {
  --_colunas: 2;
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(var(--_colunas), minmax(0, 1fr)); gap: var(--ds-espaco-2);
}
@media (min-width: 768px) { .ds-galeria { --_colunas: 3; gap: var(--ds-espaco-4); } }
@media (min-width: 1024px) { .ds-galeria--4 { --_colunas: 4; } }
.ds-galeria__item { display: block; overflow: hidden; border-radius: var(--ds-raio-md); }
.ds-galeria__item img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; transition: transform var(--ds-duracao-lenta) var(--ds-curva); }
.ds-galeria__item:hover img { transform: scale(1.04); }

/* Lightbox (criado pelo JS) */
.ds-galeria-caixa {
  width: 100%; max-width: 100%; height: 100%; max-height: 100%;
  margin: 0; padding: var(--ds-espaco-12) var(--ds-espaco-2) var(--ds-espaco-4);
  border: 0; background: transparent; color: var(--ds-cor-sobre-marca);
}
.ds-galeria-caixa::backdrop { background: var(--ds-cor-fundo-marca); opacity: 0.95; }
.ds-galeria-caixa[open] { display: flex; flex-direction: column; align-items: center; justify-content: center; }
.ds-galeria-caixa__figura { margin: 0; display: flex; flex-direction: column; align-items: center; gap: var(--ds-espaco-2); min-height: 0; flex: 1; justify-content: center; }
.ds-galeria-caixa__figura img { max-width: 100%; max-height: calc(100vh - 10rem); width: auto; height: auto; object-fit: contain; border-radius: var(--ds-raio-md); }
.ds-galeria-caixa__legenda { font-size: var(--ds-tamanho-pequeno); text-align: center; }
.ds-galeria-caixa__barra { display: flex; align-items: center; gap: var(--ds-espaco-4); margin-top: var(--ds-espaco-2); }
.ds-galeria-caixa button {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; padding: 0; cursor: pointer;
  border: var(--ds-borda-largura) solid var(--ds-cor-sobre-marca); border-radius: 50%;
  background: transparent; color: var(--ds-cor-sobre-marca);
}
.ds-galeria-caixa button:focus-visible { outline-color: var(--ds-cor-sobre-marca); }
.ds-galeria-caixa__fechar { position: absolute; top: var(--ds-espaco-2); right: var(--ds-espaco-2); }
.ds-galeria-caixa__contagem { min-width: 4rem; text-align: center; font-size: var(--ds-tamanho-pequeno); }
html:has(dialog.ds-galeria-caixa[open]) { overflow: hidden; }
