/* Popup-Bilder aus dem Platzhalter [popup_image = ...] */
.popup-image {
  /* Dauer Schließen muss zu ANIMATION_MS in popup-image.js passen */
  --popup-open: .6s;
  --popup-close: .45s;
  position: fixed;
  inset: 0;
  z-index: 1080;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.popup-image[hidden] { display: none; }

.popup-image__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .65);
  opacity: 0;
  transition: opacity var(--popup-open) ease;
}

.popup-image__dialog {
  position: relative;
  display: block;
  max-width: min(900px, 100%);
  max-height: 100%;
  opacity: 0;
  transform: scale(.85) translateY(20px);
  transition: opacity var(--popup-open) ease, transform var(--popup-open) cubic-bezier(.2, .9, .3, 1.2);
}

.popup-image__img {
  display: block;
  max-width: 100%;
  max-height: calc(100vh - 2rem);
  max-height: calc(100dvh - 2rem);
  border-radius: .5rem;
  box-shadow: 0 10px 40px rgba(0, 0, 0, .45);
}

.popup-image__close {
  position: absolute;
  top: .5rem;
  right: .5rem;
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #fff;
  background: rgba(0, 0, 0, .3);
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.popup-image__close:hover,
.popup-image__close:focus-visible {
  background: rgba(0, 0, 0, .8);
  transform: rotate(90deg);
}
.popup-image__close:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

/* Einblenden */
.popup-image.is-open .popup-image__backdrop { opacity: 1; }
.popup-image.is-open .popup-image__dialog { opacity: 1; transform: none; }

/* Ausblenden */
.popup-image.is-closing .popup-image__backdrop { opacity: 0; transition-duration: var(--popup-close); }
.popup-image.is-closing .popup-image__dialog {
  opacity: 0;
  transform: scale(.9) translateY(10px);
  transition: opacity var(--popup-close) ease, transform var(--popup-close) ease-in;
}

body.popup-image-open { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  .popup-image__backdrop,
  .popup-image__dialog,
  .popup-image__close { transition: opacity .15s linear; transform: none !important; }
}
