/* Event141 – Galerie der öffentlichen Website: Albumkarten (Event-Seite, Reiter „Alben“, „Weitere Alben“),
   Bildraster + Lightbox (Insel GalleryLightbox: Bericht, Albumseite, „Alle Fotos“), Reiter und Filter-Chips
   der Galerie-Seite (GalleryAllPhotos). Wird von PublicLayout nach public.css geladen; nutzt dieselben
   Theme-Variablen (--mud-palette-*, --e141-radius) und die data-shape-Formen des Wurzel-Elements. */

/* Albumkarten */
.e141-gcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
@media (max-width: 599.98px) { .e141-gcards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }
.e141-gcard { display: block; color: inherit; text-decoration: none; overflow: hidden; }
.e141-gcard__img { position: relative; aspect-ratio: 4 / 3; background: var(--mud-palette-background-gray); display: flex; align-items: center; justify-content: center; color: var(--mud-palette-text-secondary); }
.e141-gcard__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .2s ease; }
.e141-gcard:hover .e141-gcard__img img { transform: scale(1.03); }
.e141-gcard__kind { position: absolute; right: 8px; top: 8px; padding: 4px; border-radius: 50%; background: rgba(0,0,0,.55); color: #fff; box-sizing: content-box; }
.e141-gcard__body { padding: 10px 14px 12px; display: grid; gap: 2px; }
.e141-gcard__body strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.e141-gcard__sub { font-size: .78rem; line-height: 1.3; color: var(--mud-palette-text-secondary); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.e141-gcard__body span { font-size: .82rem; color: var(--mud-palette-text-secondary); }
.e141-gcard:hover { box-shadow: var(--mud-elevation-6); }
@media (max-width: 599.98px) { .e141-gcard__body { padding: 8px 10px 10px; } }

/* Reiter + Filter-Chips der Galerie-Seite */
.e141-gtabs .mud-tabs-toolbar { border-bottom: 1px solid var(--mud-palette-lines-default); }
.e141-gtabs .mud-tab { text-transform: none; font-weight: 600; }
.e141-gtabs .mud-tabs-panels { padding-top: 16px; }
.e141-gchips { display: flex; align-items: center; gap: 4px 8px; flex-wrap: wrap; margin: 0 0 14px; }
.e141-gchips .mud-chip { margin: 0; }
.e141-gchips__n { display: inline-block; margin-left: 6px; padding: 0 6px; border-radius: 999px; font-size: .72rem; line-height: 1.5; background: rgba(0,0,0,.08); }
.e141-dark .e141-gchips__n { background: rgba(255,255,255,.14); }
.mud-chip-selected .e141-gchips__n { background: rgba(255,255,255,.28); }

/* Bildraster + Lightbox (Insel) */
.e141-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.e141-grid--dense { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
@media (min-width: 1200px) { .e141-grid--dense { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (max-width: 899.98px) { .e141-grid--dense { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 599.98px) { .e141-grid, .e141-grid--dense { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.e141-grid figure { margin: 0; min-width: 0; }
.e141-grid button { display: block; width: 100%; padding: 0; border: 0; background: var(--mud-palette-background-gray); cursor: zoom-in; border-radius: var(--e141-radius, 6px); overflow: hidden; }
.e141-grid button:focus-visible { outline: 2px solid var(--mud-palette-primary); outline-offset: 2px; }
.e141-grid img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .2s ease; }
.e141-grid button:hover img { transform: scale(1.03); }
.e141-grid figcaption { font-size: .8rem; color: var(--mud-palette-text-secondary); padding: 4px 2px 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.e141-lightbox { position: fixed; inset: 0; z-index: 1400; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,.92); color: #fff; outline: none; touch-action: pan-y; }
.e141-lightbox figure { margin: 0; max-width: 92vw; max-height: 92vh; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.e141-lightbox img { max-width: 92vw; max-height: 84vh; object-fit: contain; border-radius: 4px; }
.e141-lightbox figcaption { font-size: .9rem; opacity: .9; text-align: center; padding: 0 12px; }
.e141-lightbox__tools { position: absolute; top: 10px; right: 10px; display: flex; gap: 4px; }
.e141-lightbox__close, .e141-lightbox__download { color: #fff !important; }
.e141-lightbox__nav { position: absolute; top: 50%; transform: translateY(-50%); color: #fff !important; background: rgba(255,255,255,.12) !important; }
.e141-lightbox__nav--prev { left: 10px; }
.e141-lightbox__nav--next { right: 10px; }
.e141-lightbox__count { position: absolute; top: 16px; left: 16px; font-size: .85rem; opacity: .8; }
@media (max-width: 599.98px) {
    .e141-lightbox img { max-height: 76vh; }
    .e141-lightbox__nav { top: auto; bottom: 14px; transform: none; }
}

/* Formen der Design-Vorlage (data-shape am Wurzel-Element, siehe public.css) */
.e141-root[data-shape="square"] :is(.e141-gcard, .e141-grid button, .e141-lightbox img) { border-radius: 2px; }
.e141-root[data-shape="pill"] .e141-gcard { border-radius: 18px; }
.e141-root[data-shape="pill"] .e141-grid button { border-radius: 12px; }
