/* Galerie-Grossansicht */
.pfg-gallery-wrapper .pfg-item { cursor: zoom-in; }
.pfg-gallery-wrapper .pfg-item:focus-visible { outline: 3px solid #98be33; outline-offset: 2px; }

html.tt-lb-open, html.tt-lb-open body { overflow: hidden; }

.tt-lb { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; }
.tt-lb[hidden] { display: none; }
.tt-lb__backdrop { position: absolute; inset: 0; background: rgba(10, 18, 6, .92); }

.tt-lb__figure { position: relative; margin: 0; max-width: 100vw; max-height: 100vh; width: 100%; height: 100%;
  display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 3.5rem 4rem 3rem; box-sizing: border-box; }
.tt-lb__img { max-width: 100%; max-height: calc(100vh - 8.5rem); width: auto; height: auto; object-fit: contain;
  border-radius: 6px; box-shadow: 0 8px 40px rgba(0, 0, 0, .55); background: #1b2614; transition: opacity .2s ease; }
.tt-lb__img.is-loading { opacity: .25; }

.tt-lb__cap { display: flex; gap: 1rem; justify-content: center; align-items: baseline; margin-top: .8rem; color: #fff;
  font-size: 1rem; text-align: center; }
.tt-lb__title { font-weight: 600; }
.tt-lb__count { opacity: .7; font-size: .9rem; white-space: nowrap; }

.tt-lb__btn { position: absolute; z-index: 2; border: 0; cursor: pointer; color: #fff; background: rgba(255, 255, 255, .14);
  width: 3rem; height: 3rem; border-radius: 50%; font-size: 1.6rem; line-height: 1; display: flex; align-items: center; justify-content: center;
  transition: background .15s ease; padding: 0; }
.tt-lb__btn:hover, .tt-lb__btn:focus-visible { background: rgba(255, 255, 255, .3); outline: none; }
.tt-lb__btn:focus-visible { box-shadow: 0 0 0 3px #98be33; }
.tt-lb__btn[hidden] { display: none; }
.tt-lb__close { top: 1rem; right: 1rem; font-size: 2rem; }
.tt-lb__prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.tt-lb__next { right: 1rem; top: 50%; transform: translateY(-50%); }

@media (max-width: 640px) {
  .tt-lb__figure { padding: 3.5rem .5rem 4.5rem; }
  .tt-lb__img { max-height: calc(100vh - 9rem); }
  .tt-lb__prev, .tt-lb__next { top: auto; bottom: .8rem; transform: none; width: 2.8rem; height: 2.8rem; }
  .tt-lb__prev { left: 1rem; }
  .tt-lb__next { right: 1rem; }
  .tt-lb__cap { flex-direction: column; gap: .15rem; padding: 0 4rem; }
}
