/* Dedensen – Galerie + Video (separat, keine Inline-Styles)
   Body-Hintergrund ist bewusst transparent (kommt von html aus default.css) */
:root {
  --container-max: 1200px;
  --gap: 14px;
  --tile-radius: 12px;
  --thumb-ratio: 4 / 3;
  --tile-shadow: 0 4px 18px rgba(0,0,0,.06);
  --accent: #0d6efd;
}

body { margin: 0; color: #111; }

.container { width: min(100% - 32px, var(--container-max)); margin-inline: auto; }

.page-header { padding: clamp(16px, 2vw, 28px) 0; }
.page-title { margin: .25rem 0 0; font-size: clamp(22px, 4vw, 34px); }

.hint { background: #fff; padding: 1rem; border-radius: 12px; box-shadow: var(--tile-shadow); }

/* Zurück-Buttons */
.btn-back {
  display: inline-block;
  border: 1px solid #111;
  border-radius: 999px;
  padding: .6rem 1rem;
  text-decoration: none;
  background: #fff;
  transition: transform .15s ease, box-shadow .15s ease;
}
.btn-back:hover { transform: translateY(-1px); box-shadow: 0 6px 14px rgba(0,0,0,.07); }
.btn-back.bottom { display:block; width:max-content; margin: 1.2rem 0; }

/* Galerie-Grid */
.gallery { display: grid; gap: var(--gap); }
@media (max-width: 599px)  { .gallery { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 600px) and (max-width: 899px) { .gallery { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 900px) and (max-width: 1199px){ .gallery { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1200px) and (max-width: 1599px){ .gallery { grid-template-columns: repeat(5, 1fr); } }
@media (min-width: 1600px) { .gallery { grid-template-columns: repeat(6, 1fr); } }

/* Kacheln */
.tile {
  display: block; border: 0; padding: 0; background: transparent;
  cursor: pointer; border-radius: var(--tile-radius); overflow: hidden; box-shadow: var(--tile-shadow);
}
.tile img {
  width: 100%; aspect-ratio: var(--thumb-ratio); object-fit: cover; object-position: center; display: block;
}

/* Eingebettetes Video */
.video-embed { margin: 2rem 0 3rem; }
.video-card { display:block; width:100%; overflow:hidden; border-radius:14px; box-shadow: var(--tile-shadow); background:#fff; padding:14px; }
.video-start { position: relative; border: 0; padding: 0; cursor: pointer; background: transparent; display: block; border-radius: 12px; overflow: hidden; box-shadow: var(--tile-shadow); }
.video-start img { width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; display:block; border-radius:12px; }
.video-start .play { position:absolute; inset:0; width:72px; height:72px; margin:auto; border-radius:50%; background:rgba(0,0,0,.55); }
.video-start .play::before { content:''; position:absolute; inset:0; margin:auto; width:0; height:0; border-left:22px solid #fff; border-top:14px solid transparent; border-bottom:14px solid transparent; transform:translateX(5px); }
.video-meta h2 { margin:.2rem 0 .2rem; font-size: clamp(18px, 2.4vw, 22px); }
.video-meta p { margin: 0; color: #444; }
.video-stage { width:100%; }
.video-stage video { width:100%; height:auto; aspect-ratio:16/9; display:block; border-radius:12px; background:#000; }

/* Lightbox */
.lightbox[hidden] { display: none !important; }
.lightbox { position: fixed; inset: 0; background: rgba(0,0,0,.9); display: grid; grid-template-columns: 1fr; grid-template-rows: auto 1fr; align-items: center; justify-items: center; z-index: 9999; }
.lb-stage { margin: 0; width: min(96vw, 1400px); height: min(86vh, 900px); display: grid; place-items: center; padding: 12px; }
#lb-image { max-width: 100%; max-height: 100%; object-fit: contain; }
.lb-close { position: fixed; top: 18px; right: 18px; width: 44px; height: 44px; border-radius: 50%; background: rgba(255,255,255,.15); color: #fff; border: 0; font-size: 28px; line-height: 1; cursor: pointer; }
.lb-nav { position: fixed; top: 50%; width: 56px; height: 56px; border-radius: 50%; transform: translateY(-50%); background: rgba(255,255,255,.2); color: #fff; border: 0; font-size: 34px; line-height: 1; cursor: pointer; }
.lb-nav.prev { left: 16px; } .lb-nav.next { right: 16px; }
.lb-nav:hover, .lb-close:hover { background: rgba(255,255,255,.33); }