/* Momenti Galerie – Schrift aus dem Theme, Typografie im Momenti-Stil (Versalien, gesperrt, leicht) */

.single-mg_galerie {
	--mg-breite: min(1440px, calc(100vw - 64px));
	--mg-linie: rgba(0, 0, 0, .12);
	--mg-leise: rgba(0, 0, 0, .55);
}

/* Theme-Kopf (Vega) auf Galerieseiten ausblenden: Titel steht im eigenen Kopf */
.single-mg_galerie #wrapper { overflow-x: clip; }
.single-mg_galerie #page_caption { padding: 0 !important; background: #fff !important; }
.single-mg_galerie #page_caption_wrapper,
.single-mg_galerie #social_share_wrapper { display: none !important; }
.single-mg_galerie #page_content_wrapper { padding: 0 0 80px !important; background: #fff !important; }

/* ---------- Kopf mit Titelbild ---------- */

.mg-hero {
	position: relative;
	width: 100vw !important;
	max-width: none !important;
	height: min(76vh, 860px);
	min-height: 420px;
	margin: 0 0 0 calc(50% - 50vw) !important;
	overflow: hidden;
	background: #111;
	color: #fff;
}
.mg-hero img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	max-width: none !important;
	height: 100% !important;
	max-height: none !important;
	object-fit: cover;
	object-position: var(--mg-x, 50%) var(--mg-y, 55%);
	animation: mg-einblenden 1.2s ease both;
}
.mg-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, rgba(0, 0, 0, .15), rgba(0, 0, 0, 0) 35%, rgba(0, 0, 0, .55));
}
.mg-hero__text {
	position: absolute;
	right: 0;
	bottom: 9%;
	left: 0;
	z-index: 1;
	padding: 0 24px;
	text-align: center;
}
.mg-hero--oben::after { background: linear-gradient(to bottom, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0) 55%); }
.mg-hero--oben .mg-hero__text { top: 15%; bottom: auto; }
.mg-hero--mitte::after { background: rgba(0, 0, 0, .3); }
.mg-hero--mitte .mg-hero__text { top: 50%; bottom: auto; transform: translateY(-50%); }

.mg-hero__label,
.mg-hero__info {
	margin: 0 !important;
	padding: 0 !important;
	color: inherit;
	line-height: 1.6 !important;
	font-size: 11px !important;
	font-weight: 400;
	letter-spacing: .32em;
	text-transform: uppercase;
	opacity: .85;
}
.mg-hero__titel {
	margin: 16px 0 !important;
	padding: 0 !important;
	color: inherit;
	font-size: clamp(28px, 4.4vw, 58px) !important;
	font-weight: 400 !important;
	line-height: 1.12 !important;
	letter-spacing: .12em !important;
	text-transform: uppercase;
}
.mg-hero .mg-hero__titel { color: #fff !important; }

.mg-kopf-schlicht {
	width: var(--mg-breite) !important;
	max-width: none !important;
	margin: 0 0 0 calc(50% - var(--mg-breite) / 2) !important;
	padding: 72px 0 40px;
	text-align: center;
}
.mg-kopf-schlicht .mg-hero__info { color: var(--mg-leise); }

@keyframes mg-einblenden { from { opacity: 0; transform: scale(1.03); } to { opacity: 1; transform: none; } }

/* ---------- Galerie: eine gemeinsame Kante für Leiste und Raster ---------- */

.mg-galerie {
	box-sizing: border-box;
	width: var(--mg-breite) !important;
	max-width: none !important;
	margin: 0 0 0 calc(50% - var(--mg-breite) / 2) !important;
	padding: 0 !important;
	float: none !important;
	text-align: left;
}

.mg-leiste {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin: 0 0 24px;
	padding: 28px 0;
	border-bottom: 1px solid var(--mg-linie);
}
.mg-galerie .mg-tipp {
	max-width: 560px;
	margin: 0 !important;
	padding: 0 !important;
	color: var(--mg-leise);
	font-size: 14px !important;
	line-height: 1.6 !important;
	text-align: left;
}

/* Knöpfe */
.mg-galerie .mg-knopf,
.mg-box .mg-knopf {
	display: inline-flex;
	box-sizing: border-box;
	align-items: center;
	justify-content: center;
	gap: .6em;
	margin: 0;
	padding: 14px 26px;
	border: 1px solid #111;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: #111;
	font: inherit;
	font-size: 11px;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: .2em;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s;
}
.mg-galerie .mg-knopf--voll,
.mg-galerie .mg-knopf:hover,
.mg-galerie .mg-knopf:focus-visible { background: #111; color: #fff; }
.mg-galerie .mg-knopf--voll:hover { background: #333; border-color: #333; }

/* Download-Menü */
.mg-download { position: relative; flex: none; }
.mg-download summary { list-style: none; }
.mg-download summary::-webkit-details-marker { display: none; }
.mg-download summary::after { content: "▾"; font-size: 10px; letter-spacing: 0; }
.mg-download[open] summary::after { content: "▴"; }
.mg-download__menue {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	z-index: 20;
	box-sizing: border-box;
	width: 340px;
	max-width: calc(100vw - 32px);
	padding: 18px 20px 10px;
	border: 1px solid var(--mg-linie);
	background: #fff;
	box-shadow: 0 18px 40px rgba(0, 0, 0, .12);
}
.mg-download__menue p { margin: 0 0 8px !important; padding: 0 !important; line-height: 1.5 !important; color: var(--mg-leise); font-size: 12px; text-align: left; }
.mg-download__menue ul { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.mg-download__menue li { margin: 0 !important; padding: 0 !important; border-top: 1px solid var(--mg-linie); list-style: none !important; }
.mg-download__menue li::before { content: none; }
.mg-download__menue a {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 12px 0;
	color: #111;
	font-size: 12px;
	letter-spacing: .14em;
	text-decoration: none;
	text-transform: uppercase;
}
.mg-download__menue a span { color: var(--mg-leise); letter-spacing: .04em; }
.mg-download__menue a:hover { color: #000; text-decoration: underline; }
.mg-download__menue a.mg-startet { color: var(--mg-leise); text-transform: none; letter-spacing: .02em; }

/* Raster: Zeilen in Blocksatz, jedes Bild behält sein Seitenverhältnis */
.mg-galerie .mg-raster {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.mg-galerie .mg-raster::after { content: ""; flex-grow: 999999; }
.mg-galerie .mg-raster > li {
	flex: var(--r) 1 calc(var(--r) * 240px);
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.mg-galerie .mg-raster > li::before { content: none; }

.mg-galerie .mg-bild {
	position: relative;
	display: block;
	width: 100%;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: #eee;
	box-shadow: none;
	overflow: hidden;
	cursor: zoom-in;
}
.mg-galerie .mg-bild img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	border-radius: 0;
	transition: transform .6s ease, opacity .3s;
}
.mg-galerie .mg-bild:hover img { transform: scale(1.025); opacity: .92; }
.mg-galerie .mg-bild:focus-visible { outline: 2px solid #111; outline-offset: 2px; }

.mg-marke {
	position: absolute;
	top: 8px;
	right: 8px;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: 11px;
	background: #fff;
	color: #111;
	font-size: 12px;
	line-height: 22px;
	text-align: center;
	box-shadow: 0 1px 4px rgba(0, 0, 0, .3);
}
.mg-marke[hidden] { display: none; }

.mg-hinweis { padding: 1em; border: 1px dashed currentColor; }

/* Passwortseite */
.mg-passwort {
	box-sizing: border-box;
	max-width: 520px;
	margin: 56px auto 0;
	padding: 0 16px;
	text-align: center;
}
.mg-passwort__intro { margin: 0 0 24px !important; font-size: 16px !important; line-height: 1.6 !important; }
.mg-passwort .post-password-form p { margin: 0; }
.mg-passwort .post-password-form label { display: block; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; }
.mg-passwort input[type="password"] {
	box-sizing: border-box;
	display: block;
	width: 100%;
	margin: 10px 0 12px;
	padding: 14px;
	border: 1px solid #111;
	border-radius: 0;
	font-size: 16px;
	text-align: center;
}
.mg-passwort input[type="submit"] { width: 100%; }

/* ---------- Großansicht ---------- */
html.mg-offen { overflow: hidden; }

.mg-box {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	background: #0f0f0f;
	color: #eee;
	font-size: 16px;
}
.mg-box[hidden] { display: none; }
.mg-box:not([hidden]) { animation: mg-auf .22s ease-out; }
@keyframes mg-auf { from { opacity: 0; } to { opacity: 1; } }
.mg-galerie .mg-bild:active img { transform: scale(.985); transition-duration: .1s; }
.mg-knopf:active { transform: scale(.97); }

.mg-box__buehne {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 0;
	padding: 24px 64px;
}
.mg-box__bild {
	max-width: 100%;
	max-height: calc(100vh - 48px);
	max-height: calc(100dvh - 48px);
	object-fit: contain;
	user-select: none;
	transition: opacity .2s;
}
.mg-laedt .mg-box__bild { opacity: .2; }

/* Ladeanzeige: erscheint, solange das Bild lädt */
.mg-box__lader {
	position: absolute;
	top: 50%;
	left: 50%;
	display: none;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	transform: translate(-50%, -50%);
	font-size: 11px;
	letter-spacing: .2em;
	text-align: center;
	text-transform: uppercase;
	pointer-events: none;
}
.mg-laedt .mg-box__lader,
.mg-fehler .mg-box__lader { display: flex; }
.mg-box__kreis {
	width: 36px;
	height: 36px;
	border: 2px solid rgba(255, 255, 255, .2);
	border-top-color: #fff;
	border-radius: 50%;
	animation: mg-drehen .8s linear infinite;
}
.mg-fehler .mg-box__kreis { display: none; }
.mg-fehler .mg-box__ladetext { text-transform: none; letter-spacing: .02em; }
@keyframes mg-drehen { to { transform: rotate(360deg); } }

.mg-box button.mg-box__nav,
.mg-box button.mg-box__schliessen {
	position: absolute;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: #fff;
	line-height: 1;
	cursor: pointer;
	opacity: .75;
}
.mg-box button.mg-box__nav:hover,
.mg-box button.mg-box__schliessen:hover { opacity: 1; background: transparent; }
.mg-box button.mg-box__nav {
	top: 50%;
	width: 48px;
	height: 80px;
	font-size: 48px;
	transform: translateY(-50%);
}
.mg-box__nav--zurueck { left: 8px; }
.mg-box__nav--weiter { right: 8px; }
.mg-box button.mg-box__schliessen {
	top: 10px;
	right: 14px;
	z-index: 2;
	width: 44px;
	height: 44px;
	font-size: 34px;
}

.mg-box__seite {
	overflow-y: auto;
	padding: 22px 24px 32px;
	border-left: 1px solid #262626;
	background: #171717;
	font-family: Helvetica, Arial, sans-serif;
	font-weight: 300;
}
.mg-box__nummer { margin: 0 0 4px; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; opacity: .7; }
.mg-box__datei { margin: 0 0 18px; font-size: 12px; opacity: .5; word-break: break-all; }
.mg-box .mg-knopf { width: 100%; border-color: #eee; color: #eee; }
.mg-box .mg-knopf:hover,
.mg-box .mg-knopf:focus-visible { background: #eee; color: #111; }
.mg-box .mg-knopf:disabled { opacity: .5; cursor: default; }
.mg-box .mg-knopf.mg-startet { background: #eee; color: #111; }
.mg-box .mg-box__fotos { margin-bottom: 10px; background: #eee; color: #111; }
.mg-box .mg-box__fotos[hidden],
.mg-box__fotohinweis[hidden] { display: none; }
.mg-box__fotohinweis { margin: -2px 0 12px; font-size: 13px; opacity: .75; }

.mg-box__titel { margin: 30px 0 8px; color: inherit; font: inherit; font-size: 11px; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; }
.mg-box__leer { margin: 0 0 12px; font-size: .9em; opacity: .65; }
.mg-box__leer[hidden] { display: none; }
.mg-box__liste { margin: 0 0 16px; padding: 0; list-style: none; }
.mg-box__liste li { margin: 0; padding: 10px 0; border-top: 1px solid #2a2a2a; }
.mg-box__liste p { margin: 0; font-size: .92em; white-space: pre-line; }
.mg-box__liste .mg-box__wer { margin-bottom: 4px; font-size: .78em; opacity: .6; }
.mg-box button.mg-box__loeschen { margin: 6px 0 0; padding: 0; border: 0; background: none; color: #eee; font: inherit; font-size: 12px; text-decoration: underline; opacity: .6; cursor: pointer; }
.mg-box button.mg-box__loeschen:hover { background: none; opacity: 1; }

.mg-box__form label { display: block; margin-bottom: 10px; font-size: .8em; opacity: .85; }
.mg-box__form input,
.mg-box__form textarea {
	display: block;
	box-sizing: border-box;
	width: 100%;
	margin-top: 4px;
	padding: 10px;
	border: 1px solid #333;
	border-radius: 0;
	background: #0f0f0f;
	color: #eee;
	font: inherit;
	font-size: 16px;
}
.mg-box__form input:focus,
.mg-box__form textarea:focus { border-color: #888; outline: none; }
.mg-box__status { min-height: 1.2em; margin: 10px 0 0; font-size: .85em; }

/* ---------- Handy und Tablet ---------- */
@media (max-width: 860px) {
	.single-mg_galerie { --mg-breite: calc(100vw - 32px); }
	.mg-hero { height: 68vh; min-height: 360px; }
	.mg-hero__text { bottom: 7%; }
	.mg-leiste { flex-direction: column; align-items: stretch; gap: 16px; padding: 20px 0; }
	.mg-download summary { width: 100%; }
	.mg-download__menue { left: 0; width: auto; }
	.mg-galerie .mg-raster { gap: 4px; }
	.mg-galerie .mg-raster > li { flex-basis: calc(var(--r) * 130px); }

	.mg-box { display: block; overflow-y: auto; }
	.mg-box__buehne { height: 75vh; height: 75dvh; padding: 52px 8px 12px; }
	.mg-box__bild { max-height: calc(75dvh - 64px); }
	.mg-box button.mg-box__nav { width: 40px; font-size: 38px; }
	.mg-box button.mg-box__schliessen { position: fixed; }
	.mg-box__seite { border-left: 0; border-top: 1px solid #262626; }
}

@media (prefers-reduced-motion: reduce) {
	.mg-hero img,
	.mg-box:not([hidden]) { animation: none; }
	.mg-box__kreis { animation-duration: 2s; }
}

/* ---------- Chat „Galerie-Hilfe“ (AI Engine) ---------- */
.single-mg_galerie .mwai-chat .mwai-trigger .mwai-icon-text-container { display: none !important; }
.single-mg_galerie .mwai-chat .mwai-trigger .mwai-icon-container {
	width: 52px !important;
	height: 52px !important;
	padding: 0 !important;
	overflow: hidden;
	border-radius: 50% !important;
	background: transparent !important;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .22) !important;
	transition: transform .15s ease;
}
.single-mg_galerie .mwai-chat .mwai-trigger .mwai-icon-container:active { transform: scale(.94); }
.single-mg_galerie .mwai-chat .mwai-trigger img.mwai-icon {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	border-radius: 50%;
	object-fit: cover;
}
.single-mg_galerie .mwai-chat,
.single-mg_galerie .mwai-chat textarea,
.single-mg_galerie .mwai-chat button { font-family: Helvetica, Arial, sans-serif !important; font-weight: 300; }
/* In der Großansicht stört der Chat-Knopf nur */
html.mg-offen .mwai-chat { display: none !important; }
/* ABACI ergänzt die vorhandene Galerie, ohne deren Gestaltung zu ersetzen. */
.abaci-intro{margin-bottom:40px}.abaci-text{width:var(--mg-breite);max-width:760px;margin:0 auto;padding:56px 24px 0;box-sizing:border-box;text-align:center;font-family:inherit;font-weight:300}.abaci-text h2{font-family:inherit;font-weight:300;font-size:clamp(21px,2.4vw,30px);line-height:1.5;letter-spacing:.12em;text-transform:uppercase;text-wrap:balance;margin:0 0 28px}.abaci-text p{line-height:1.8;margin:0 0 24px}.abaci-sprung{display:flex;justify-content:center;flex-wrap:wrap;gap:16px 32px;padding:24px 0}.abaci-sprung a{color:inherit;text-decoration:underline;text-underline-offset:5px}.abaci-filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;padding:24px 0;border-bottom:1px solid var(--mg-linie);margin-bottom:24px;scroll-margin-top:90px}.abaci-filter button{font:inherit;letter-spacing:.12em;text-transform:uppercase;font-size:12px;min-height:44px;padding:8px 0;background:none;border:0;border-bottom:2px solid transparent;color:#555;cursor:pointer}.abaci-filter button[aria-pressed=true]{color:#111;border-bottom-color:#111}.abaci-anzahl{font-size:12px;margin-left:auto}.mg-raster>li[hidden],.abaci-filme[hidden]{display:none!important}.abaci-filme{padding:48px 0;scroll-margin-top:90px}.abaci-filme h2,.abaci-musik h2{font:inherit;font-size:22px;letter-spacing:.12em;text-transform:uppercase}.abaci-film{margin-bottom:40px}.abaci-film h3{font:inherit;font-size:18px}.abaci-film video{display:block;width:100%;max-height:75vh;background:#111;margin:20px 0}.abaci-musik{padding:32px 0;border-top:1px solid var(--mg-linie)}.abaci-musik select{display:block;min-height:44px;max-width:100%;margin:12px 0;font:inherit}.abaci-musik audio{width:100%;max-width:540px}.abaci-credits{padding:48px 0;border-top:1px solid var(--mg-linie)}.abaci-credits nav{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}.abaci-credits a{color:inherit;text-decoration:none;font:inherit}.abaci-credits span{display:block;color:#555;font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-top:6px}.abaci-filter button:focus-visible,.abaci-credits a:focus-visible,.abaci-sprung a:focus-visible{outline:2px solid #111;outline-offset:4px}@media(max-width:600px){.abaci-text{padding:32px 0 0}.abaci-filter{gap:8px 16px}.abaci-anzahl{width:100%;margin:0}.abaci-credits nav{grid-template-columns:1fr}}

.abaci-filtergruppe{display:flex;flex-wrap:wrap;gap:8px 24px}.abaci-filtergruppe[hidden]{display:none!important}.abaci-fotografen{margin-left:24px;padding-left:24px;border-left:1px solid var(--mg-linie)}.abaci-text{max-width:940px;padding-top:64px;padding-bottom:16px}.abaci-text p{font-size:16px;line-height:1.9}.abaci-text h2{font-size:clamp(22px,2.5vw,32px);font-weight:300;letter-spacing:.1em}@media(max-width:800px){.abaci-fotografen{width:100%;margin-left:0;padding-left:0;border-left:0}.abaci-anzahl{margin-left:0}}

/* Kompakte Galerie-Werkzeugleiste mit nativen, tastaturbedienbaren Dropdowns. */
.abaci-filter{display:grid;grid-template-columns:180px minmax(220px,300px) 1fr;gap:20px;align-items:end;padding:28px 0;margin-bottom:24px;border-top:1px solid var(--mg-linie);border-bottom:1px solid var(--mg-linie)}
.abaci-filterfeld{display:block;margin:0;min-width:0}.abaci-filterfeld>span{display:block;margin-bottom:9px;font-size:10px;line-height:1.4;font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:#666}
.abaci-filter select{display:block;box-sizing:border-box;width:100%;min-height:48px;margin:0;padding:12px 42px 12px 16px;font:inherit;font-size:14px;font-weight:300;line-height:1.5;letter-spacing:.01em;color:#111;background-color:#fff;border:1px solid #c9c9c9;border-radius:0;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23111' stroke-width='1.2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;cursor:pointer;transition:border-color .15s}
.abaci-filter select:hover{border-color:#111}.abaci-filter select:focus-visible{outline:2px solid #111;outline-offset:3px}.abaci-fotografen{width:auto;margin:0;padding:0;border:0}.abaci-fotografen[hidden]{display:none!important}.abaci-anzahl{justify-self:end;align-self:end;margin:0;padding-bottom:15px;color:#666;font-size:12px;line-height:1.5;letter-spacing:.03em}.abaci-filter:has(.abaci-fotografen[hidden]){grid-template-columns:180px 1fr}
@media(max-width:600px){.abaci-filter{grid-template-columns:1fr;gap:18px;padding:24px 0}.abaci-filter:has(.abaci-fotografen[hidden]){grid-template-columns:1fr}.abaci-anzahl{justify-self:start;width:auto;padding:0}.abaci-filter select{min-height:50px;font-size:16px}}

/* Film dauerhaft vor der Fotogalerie; nur noch Fotografenfilter. */
.abaci-filter{grid-template-columns:minmax(220px,300px) 1fr}.abaci-filme{padding:16px 0 48px}.abaci-film-start:focus-visible{outline:3px solid #fff;outline-offset:-6px}@media(max-width:600px){.abaci-filter{grid-template-columns:1fr}.abaci-filme{padding:0 0 28px}}
