/* Галерея: «Альбомы» и «Курсовые и дипломы» (06.11). Снимки не кадрируем:
   в карточках — целиком на светлом поле, на страницах — в исходных пропорциях. */
.gal-kroshki { font-size: 14px; color: var(--muted); margin: 0 0 20px; }
.gal-kroshki a { color: var(--muted); text-decoration: underline; text-underline-offset: 3px; }
.gal-god { font: italic 400 64px/1 var(--serif); color: var(--accent); margin: 0 0 28px; }
.gal-god + .grid { margin-bottom: 72px; }
.gal-kartochka img { object-fit: contain; background: var(--alt); }
.gal-kartochka .caption { margin: 0; }
.gal-kartochka.bez-foto { box-shadow: none; padding: 28px; }
.gal-filtr { margin: 32px 0 0; }

.gal-meta { display: grid; grid-template-columns: max-content 1fr; gap: 8px 24px; margin: 28px 0 0; font-size: 17px; }
.gal-meta dt { color: var(--muted); }
.gal-meta dd { margin: 0; }

.gal-video { position: relative; aspect-ratio: 16/9; border-radius: var(--radius-img); overflow: hidden; background: #000; }
.gal-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.gal-lenta { display: grid; gap: 40px; }
.gal-lenta figure, .gal-kolonki figure { margin: 0; }
.gal-lenta img { width: 100%; height: auto; display: block; border-radius: 8px; cursor: zoom-in; }
.gal-kolonki { columns: 3 280px; column-gap: 22px; }
.gal-kolonki figure { break-inside: avoid; margin-bottom: 26px; }
.gal-kolonki img { width: 100%; height: auto; display: block; border-radius: var(--radius-img); cursor: zoom-in; }
.gal-lenta figcaption, .gal-kolonki figcaption { font-size: 14px; color: var(--muted); margin-top: 8px; }
.gal-lenta a, .gal-kolonki a { display: block; }
.gal-mesto { display: inline-block; margin-right: 8px; padding: 3px 10px; border-radius: 999px; font-size: 12px;
  letter-spacing: .08em; text-transform: uppercase; background: var(--accent); color: #fff; vertical-align: 1px; }
.gal-mesto.m1 { background: var(--accent-hover); }

/* лайтбокс */
.lb { position: fixed; inset: 0; z-index: 100000; background: #0c0a09; display: none;
  align-items: center; justify-content: center; flex-direction: column; padding: 56px 64px 24px; }
.lb.otkryt { display: flex; }
.lb img { max-width: 100%; max-height: calc(100vh - 140px); width: auto; height: auto; object-fit: contain; }
.lb .lb-podpis { color: #e9e4dd; font-size: 15px; margin-top: 14px; text-align: center; }
.lb button { position: absolute; background: none; border: 0; color: #fff; font-size: 40px; line-height: 1;
  cursor: pointer; padding: 12px 16px; opacity: .8; }
.lb button:hover { opacity: 1; color: var(--accent-hover); }
.lb .lb-zakryt { top: 8px; right: 12px; }
.lb .lb-nazad { left: 6px; top: 50%; transform: translateY(-50%); }
.lb .lb-vpered { right: 6px; top: 50%; transform: translateY(-50%); }
body.lb-zhdet { overflow: hidden; }

@media (max-width: 760px) {
  .gal-god { font-size: 44px; }
  .gal-lenta { gap: 24px; }
  .lb { padding: 48px 8px 16px; }
  .lb .lb-nazad, .lb .lb-vpered { top: auto; bottom: 6px; transform: none; }
}
