/* PestoZirkus — Ergänzungen zum Original-Stylesheet */

/* Astro-Inseln sind nur Hüllen aus dem SSR-Export */
astro-island { display: contents; }

html { scroll-behavior: smooth; }

/* ---------- Kontaktformular: Honeypot & Meldungen ---------- */
.pz-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.pz-form-msg {
  border-radius: 10px; padding: 14px 18px; margin-bottom: 18px;
  font-family: var(--font-secondary, Verdana, sans-serif); font-size: 15px;
}
.pz-form-msg--ok { background: #e7f6e7; border: 1px solid #9fd29f; color: #1c4f1c; }
.pz-form-msg--error { background: #fdecec; border: 1px solid #eba9a9; color: #7e1b1b; }

/* ---------- Fotogalerie-Bereiche (datenbankgesteuert) ---------- */
.pz-gallery-block { padding: 32px 16px; }
.pz-bg-green { background: rgb(248, 255, 229); }
.pz-bg-white { background: rgb(255, 255, 255); }
.pz-gallery-inner { max-width: 1224px; margin: 0 auto; }
.pz-gallery-head { margin-bottom: 24px; text-align: center; }
.pz-gallery-head h5 { margin-bottom: 8px; }
.pz-gallery-grid {
  display: grid; gap: 16px;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 346px;
  grid-auto-flow: dense;
}
.pz-tile {
  display: block; border-radius: 10px; overflow: hidden; background: #f3f3f1;
}
.pz-tile--portrait { grid-row: span 2; }
.pz-tile img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .35s ease;
}
.pz-tile:hover img { transform: scale(1.04); }
@media (max-width: 920px) {
  .pz-gallery-block { padding: 32px 16px; }
  .pz-gallery-grid { grid-template-columns: 1fr; grid-auto-rows: 230px; }
  .pz-tile--portrait { grid-row: span 2; }
}

/* ---------- Lightbox ---------- */
.pz-lightbox {
  position: fixed; inset: 0; z-index: 9999; display: none;
  align-items: center; justify-content: center;
  background: rgba(13, 20, 26, .92);
}
.pz-lightbox.open { display: flex; }
.pz-lightbox img {
  max-width: min(92vw, 1600px); max-height: 88vh; border-radius: 6px;
  box-shadow: 0 10px 50px rgba(0,0,0,.5);
}
.pz-lightbox button {
  position: absolute; background: none; border: 0; color: #fff; cursor: pointer;
  font-size: 34px; line-height: 1; padding: 18px; opacity: .85;
}
.pz-lightbox button:hover { opacity: 1; }
.pz-lb-close { top: 8px; right: 12px; font-size: 44px; }
.pz-lb-prev { left: 4px; top: 50%; transform: translateY(-50%); }
.pz-lb-next { right: 4px; top: 50%; transform: translateY(-50%); }
@media (max-width: 640px) {
  .pz-lb-prev, .pz-lb-next { font-size: 26px; padding: 14px 10px; }
}

/* Ohne JavaScript bleiben alle animierten Elemente sichtbar */
noscript + * [data-animation-role] { opacity: 1 !important; }
