/* Gemeinsame Bildvergrösserung (js/lightbox.js) – Dialog im Top-Layer über allem, auch über dem Kopf */
html.lb-lock { overflow: hidden; scrollbar-gutter: stable; }
dialog.lb {
  position: fixed; inset: 0; width: 100vw; height: 100vh; height: 100dvh; max-width: none; max-height: none;
  margin: 0; padding: 0; border: 0; background: rgba(4, 8, 15, .985); color: #EEF3FA; overflow: hidden; outline: none;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, 'Helvetica Neue', sans-serif;
}
dialog.lb::backdrop { background: rgba(4, 8, 15, .6); }
.lb-stage { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 64px 76px 20px; cursor: zoom-out; }
.lb-fig { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; max-width: 100%; max-height: 100%; min-width: 0; }
.lb-img { display: block; max-width: 100%; max-height: calc(100vh - 140px); max-height: calc(100dvh - 140px); width: auto; height: auto;
  object-fit: contain; border-radius: 10px; background: #fff; box-shadow: 0 24px 70px rgba(0, 0, 0, .55); transition: opacity .15s; }
.lb-img.lb-loading { opacity: .35; }
.lb-cap { font-size: .86rem; line-height: 1.5; color: #B9CDE3; text-align: center; max-width: 80ch; }
.lb-count { position: fixed; top: 22px; left: 50%; transform: translateX(-50%); margin: 0; font-size: .8rem; color: #8EA6C0; font-variant-numeric: tabular-nums; pointer-events: none; }
.lb-btn { position: fixed; z-index: 2; display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; padding: 0;
  border-radius: 50%; border: 1px solid rgba(255, 255, 255, .35); background: rgba(15, 30, 51, .92); color: #fff; cursor: pointer;
  box-shadow: 0 6px 20px rgba(0, 0, 0, .45); transition: background .15s, transform .15s; -webkit-tap-highlight-color: transparent; }
.lb-btn:hover { background: #1B8FE0; border-color: #1B8FE0; }
.lb-btn:focus-visible { outline: 3px solid #7cc4ff; outline-offset: 2px; }
.lb-btn[hidden] { display: none; }
.lb-close { top: 12px; right: 12px; background: #fff; color: #09111E; border-color: #fff; }
.lb-close:hover { background: #E8F1FB; border-color: #E8F1FB; }
.lb-prev, .lb-next { top: 50%; transform: translateY(-50%); }
.lb-prev { left: 14px; } .lb-next { right: 14px; }
.lb-prev:active, .lb-next:active { transform: translateY(-50%) scale(.94); }
/* Auslöser */
a[data-lb] { cursor: zoom-in; }
figure.shot[role="button"]:focus-visible { outline: 2px solid #1B8FE0; outline-offset: 3px; }
@media (max-width: 640px) {
  .lb-stage { padding: 66px 8px 72px; }
  .lb-img { max-height: calc(100vh - 170px); max-height: calc(100dvh - 170px); border-radius: 6px; }
  .lb-cap { font-size: .8rem; padding: 0 6px; }
  .lb-prev, .lb-next { top: auto; bottom: 14px; transform: none; }
  .lb-prev:active, .lb-next:active { transform: scale(.94); }
  .lb-prev { left: calc(50% - 58px); } .lb-next { right: calc(50% - 58px); }
}
@media (prefers-reduced-motion: reduce) { .lb-img, .lb-btn { transition: none; } }
