/* PhotoArt Gallery – Frontend */

.pae-gallery {
	--pae-cols: var(--pae-cols-d, 4);
	--pae-rh: var(--pae-row-h, 240px);
	--pae-accent: #129e00;
	margin: 1.5em 0;
	box-sizing: border-box;
}
.pae-gallery *,
.pae-gallery *::before,
.pae-gallery *::after { box-sizing: border-box; }

@media (max-width: 1024px) {
	.pae-gallery { --pae-cols: var(--pae-cols-t, 3); --pae-rh: calc(var(--pae-row-h, 240px) * .8); }
}
@media (max-width: 640px) {
	.pae-gallery { --pae-cols: var(--pae-cols-m, 2); --pae-rh: calc(var(--pae-row-h, 240px) * .55); }
}

.pae-notice { padding: .75em 1em; background: rgba(127,127,127,.12); border-radius: 4px; }

/* ---------- Basis-Kachel ---------- */
.pae-item { margin: 0; padding: 0; position: relative; min-width: 0; }
.pae-gallery .pae-item { margin: 0; padding: 0; }
.pae-gallery .pae-tile,
.pae-gallery .pae-link { margin: 0 !important; }
.pae-gallery .pae-link { padding: 0 !important; }
.pae-item[hidden] { display: none !important; }

.pae-link {
	display: block;
	position: relative;
	overflow: hidden;
	border-radius: var(--pae-radius, 4px);
	line-height: 0;
	text-decoration: none;
	box-shadow: none;
	outline-offset: 3px;
}
a.pae-link { cursor: pointer; }
a.pae-lb { cursor: zoom-in; }
a.pae-link:focus-visible { outline: 2px solid var(--pae-accent); }

.pae-img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	/* Abstände, Rahmen und Schatten, die das Theme allen Bildern gibt, dürfen die Kachel nicht verschieben. */
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
	vertical-align: top;
	transition: transform .5s cubic-bezier(.2, .7, .2, 1), filter .35s ease;
}

/* Theme-Dekoration an Links (Unterstreichung, Pseudo-Elemente, Innenabstand) von den Kacheln fernhalten. */
.pae-link { padding: 0; background-image: none; text-decoration: none; }
.pae-link::before { content: none !important; }
.pae-gallery:not(.pae-border) .pae-link::after { content: none !important; }

/* ---------- Layout: Grid ---------- */
.pae-layout-grid .pae-items {
	display: grid;
	grid-template-columns: repeat(var(--pae-cols), minmax(0, 1fr));
	gap: var(--pae-gap, 12px);
}
.pae-layout-grid .pae-link { aspect-ratio: var(--pae-ratio, 1 / 1); }
.pae-layout-grid .pae-img,
.pae-layout-justified .pae-img,
.pae-layout-custom .pae-img {
	position: absolute;
	top: 0;
	left: 0;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}

/* ---------- Layout: Masonry (Positionierung per JavaScript, Reihenfolge von links nach rechts) ---------- */
/* Ohne JavaScript: einfaches Raster – ebenfalls zeilenweise. */
.pae-layout-masonry .pae-items {
	display: grid;
	grid-template-columns: repeat(var(--pae-cols), minmax(0, 1fr));
	gap: var(--pae-gap, 12px);
	align-items: start;
}
.pae-layout-masonry.pae-masonry-js .pae-items { display: block; position: relative; }
.pae-layout-masonry.pae-masonry-js .pae-item { position: absolute; top: 0; left: 0; margin: 0; }

/* ---------- Layout: Eigenes Raster (Größe und Position je Bild) ---------- */
.pae-layout-custom .pae-items {
	display: grid;
	grid-template-columns: repeat(var(--pae-cols), minmax(0, 1fr));
	grid-auto-rows: var(--pae-rh);
	grid-auto-flow: row;
	gap: var(--pae-gap, 12px);
}
.pae-layout-custom.pae-flow-dense .pae-items { grid-auto-flow: row dense; }
.pae-layout-custom .pae-item {
	--sw: var(--sw-d, 1);
	grid-column: span var(--sw);
	grid-row: span var(--sh, 1);
	min-height: 0;
}
@media (max-width: 1024px) { .pae-layout-custom .pae-item { --sw: var(--sw-t, 1); } }
@media (max-width: 640px) { .pae-layout-custom .pae-item { --sw: var(--sw-m, 1); } }
/* Feste Spalte/Zeile nur am Desktop (auf kleineren Geräten folgt alles der Reihenfolge). */
@media (min-width: 1025px) {
	.pae-layout-custom .pae-pin-col { grid-column: var(--col) / span var(--sw); }
	.pae-layout-custom .pae-pin-row { grid-row: var(--row) / span var(--sh, 1); }
}
.pae-layout-custom .pae-tile,
.pae-layout-custom .pae-link { height: 100%; }
.pae-layout-custom .pae-link { aspect-ratio: auto; }

/* ---------- Layout: Justified (Flex-Zeilen) ---------- */
.pae-layout-justified .pae-items {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pae-gap, 12px);
}
.pae-layout-justified .pae-item {
	flex: calc(var(--ar) * 100) 1 calc(var(--ar) * var(--pae-rh));
}
.pae-layout-justified .pae-items::after { content: ""; flex-grow: 1000000; }
.pae-layout-justified .pae-link { aspect-ratio: var(--ar); }

/* ---------- Hover-Effekte ---------- */
.pae-hover-zoom .pae-tile:hover .pae-img,
.pae-hover-zoom .pae-tile:focus-within .pae-img { transform: scale(1.06); }
.pae-hover-fade .pae-tile:hover .pae-img,
.pae-hover-fade .pae-tile:focus-within .pae-img { filter: brightness(.7); }

/* ---------- Bildunterschrift ---------- */
.pae-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	padding: 1em;
	line-height: 1.35;
	background: linear-gradient(to top, rgba(13, 19, 16, .85) 0%, rgba(13, 19, 16, 0) 60%);
	opacity: 0;
	transition: opacity .3s ease;
	pointer-events: none;
}
.pae-overlay-empty { display: none; }
.pae-cap {
	color: #f3f2ec;
	font-size: .9rem;
	transform: translateY(8px);
	transition: transform .3s ease;
}
.pae-tile:hover .pae-overlay,
.pae-tile:focus-within .pae-overlay { opacity: 1; }
.pae-tile:hover .pae-cap,
.pae-tile:focus-within .pae-cap { transform: none; }
/* Touch-Geräte haben kein Hover: Beschriftung dauerhaft zeigen. */
@media (hover: none) {
	.pae-overlay { opacity: 1; }
	.pae-cap { transform: none; }
}

.pae-below {
	margin: .5em 0 0;
	font-size: .875rem;
	line-height: 1.4;
	opacity: .85;
}

/* ---------- Kachel + Hover-Symbole (Lupe, Shop) ---------- */
.pae-tile { position: relative; border-radius: var(--pae-radius, 4px); }

.pae-icons {
	position: absolute;
	top: .6rem;
	right: .6rem;
	z-index: 3;
	display: flex;
	gap: .4rem;
	opacity: 0;
	transform: translateY(-4px);
	transition: opacity .25s ease, transform .25s ease;
	pointer-events: none; /* Klick auf die Lupe geht an die Kachel (Lightbox) durch */
}
.pae-tile:hover .pae-icons,
.pae-tile:focus-within .pae-icons { opacity: 1; transform: none; }

.pae-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: rgba(13, 19, 16, .8);
	border: 1px solid rgba(243, 242, 236, .28);
	color: #f3f2ec;
	line-height: 0;
	text-decoration: none;
	box-shadow: none;
}
.pae-icon svg {
	width: 18px;
	height: 18px;
	stroke: currentColor;
	fill: none;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}
a.pae-icon-shop {
	pointer-events: auto;
	background: var(--pae-accent);
	border-color: var(--pae-accent);
	color: #fff;
	transition: background .2s ease, color .2s ease, transform .2s ease;
}
a.pae-icon-shop:hover,
a.pae-icon-shop:focus-visible { background: #f3f2ec; color: var(--pae-accent); transform: scale(1.08); outline: none; }

/* Touch-Geräte haben kein Hover: Symbole dauerhaft zeigen. */
@media (hover: none) {
	.pae-icons { opacity: 1; transform: none; }
}

/* ---------- Schutz: Bilder nicht ziehbar/auswählbar ---------- */
.pae-gallery:not([data-protect="off"]) .pae-img,
.pae-lb-overlay[data-protect="1"] .pae-lb-img {
	-webkit-user-drag: none;
	-webkit-user-select: none;
	user-select: none;
	-webkit-touch-callout: none;
}

/* ---------- Buttons ---------- */
.pae-more-wrap { text-align: center; margin-top: 1.5em; }
.pae-btn { display: inline-block; text-align: center; text-decoration: none; cursor: pointer; }
/* Eigener Stil – nur wenn der Theme-Button-Stil abgeschaltet ist. */
.pae-btn:not(.pae-btn-theme) {
	appearance: none;
	padding: .7em 1.6em;
	border: 2px solid var(--pae-accent, #129e00);
	border-radius: 4px;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: .85rem;
	font-weight: 700;
	letter-spacing: .05em;
	line-height: 1.2;
	text-transform: uppercase;
	box-shadow: none;
	transition: background .2s ease, color .2s ease;
}
.pae-btn:not(.pae-btn-theme):hover,
.pae-btn:not(.pae-btn-theme):focus-visible { background: var(--pae-accent, #129e00); color: #fff; outline: none; }
.pae-loadmore[hidden] { display: none; }

/* ---------- Lightbox ---------- */
.pae-lb-overlay {
	--pae-accent: #129e00;
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: none;
	flex-direction: column;
	background: rgba(8, 12, 10, .96);
	color: #f3f2ec;
	-webkit-user-select: none;
	user-select: none;
	touch-action: pan-y;
}
.pae-lb-overlay.is-open { display: flex; animation: pae-fade .25s ease; }
@keyframes pae-fade { from { opacity: 0; } to { opacity: 1; } }

.pae-lb-stage {
	position: relative;
	flex: 1 1 auto;
	min-height: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 3.5rem 4rem 1rem;
}
.pae-lb-img {
	margin: 0 !important;
	padding: 0 !important;
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	opacity: 0;
	transition: opacity .25s ease;
	border-radius: 2px;
}
.pae-lb-img.is-loaded { opacity: 1; }

.pae-lb-spinner {
	position: absolute;
	width: 34px;
	height: 34px;
	border: 3px solid rgba(243, 242, 236, .2);
	border-top-color: var(--pae-accent);
	border-radius: 50%;
	animation: pae-spin .8s linear infinite;
}
.pae-lb-spinner[hidden] { display: none; }
@keyframes pae-spin { to { transform: rotate(360deg); } }

.pae-lb-bar {
	flex: 0 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 1rem;
	padding: .5rem 1.25rem 1.25rem;
	min-height: 3.2rem;
}
.pae-lb-caption { font-size: .95rem; line-height: 1.45; max-width: 70ch; }
.pae-lb-shop {
	position: absolute;
	top: .75rem;
	right: 4.25rem;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	height: 48px;
	padding: 0 1.25rem 0 1rem;
	border: 2px solid var(--pae-accent);
	border-radius: 999px;
	background: var(--pae-accent);
	color: #fff;
	font-size: .85rem;
	font-weight: 700;
	letter-spacing: .05em;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
	transition: background .2s ease, color .2s ease;
}
.pae-lb-shop svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.pae-lb-shop:hover,
.pae-lb-shop:focus-visible { background: #f3f2ec; border-color: #f3f2ec; color: var(--pae-accent); outline: none; }
.pae-lb-shop[hidden] { display: none; }
@media (max-width: 640px) {
	.pae-lb-shop { padding: 0; width: 48px; justify-content: center; }
	.pae-lb-shop-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
.pae-lb-counter { font-size: .85rem; opacity: .65; white-space: nowrap; font-variant-numeric: tabular-nums; }

.pae-lb-btn {
	appearance: none;
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(243, 242, 236, .08);
	color: #f3f2ec;
	cursor: pointer;
	transition: background .2s ease;
}
.pae-lb-btn:hover,
.pae-lb-btn:focus-visible { background: var(--pae-accent); outline: none; }
.pae-lb-btn svg { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.pae-lb-close { top: .75rem; right: .75rem; }
.pae-lb-prev { left: .75rem; top: 50%; margin-top: -24px; }
.pae-lb-next { right: .75rem; top: 50%; margin-top: -24px; }
.pae-lb-overlay.is-single .pae-lb-prev,
.pae-lb-overlay.is-single .pae-lb-next,
.pae-lb-overlay.is-single .pae-lb-counter { display: none; }

@media (max-width: 640px) {
	.pae-lb-stage { padding: 3.5rem .5rem .5rem; }
	.pae-lb-prev, .pae-lb-next { top: auto; bottom: .75rem; margin-top: 0; width: 44px; height: 44px; }
	.pae-lb-prev { left: .75rem; }
	.pae-lb-next { right: .75rem; }
	.pae-lb-bar { padding-bottom: 4.5rem; }
}

body.pae-lb-lock { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
	.pae-img, .pae-overlay, .pae-cap, .pae-lb-img { transition: none; }
	.pae-lb-overlay.is-open { animation: none; }
}

/* ---------- Sicherheitshinweis (DEV-Tools) ---------- */
html.pae-guard-on, html.pae-guard-on body { overflow: hidden !important; }
html.pae-guard-on body > *:not(.pae-guard-overlay) { visibility: hidden !important; }
.pae-guard-overlay {
	position: fixed;
	inset: 0;
	z-index: 2147483647;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	padding: 2rem;
	background: #0d1310;
	color: #f3f2ec;
	text-align: center;
	visibility: visible !important;
}
.pae-guard-title {
	margin: 0;
	font-family: "Big Shoulders Display", "Arial Black", Impact, sans-serif;
	font-size: clamp(2rem, 6vw, 3.6rem);
	font-weight: 900;
	letter-spacing: .12em;
	line-height: 1.1;
	text-transform: uppercase;
	color: #f3f2ec;
}
.pae-guard-text {
	margin: 0;
	font-family: "Work Sans", system-ui, sans-serif;
	font-size: 1rem;
	color: #f3f2ec;
}
.pae-guard-btn { margin-top: .5rem; }
.pae-guard-btn:not(.pae-btn-theme) {
	display: inline-block;
	margin-top: .5rem;
	padding: 1rem 2.2rem;
	border: 1px solid rgba(243, 242, 236, .25);
	background: transparent;
	color: #f3f2ec;
	font-family: "Big Shoulders Display", "Arial Black", Impact, sans-serif;
	font-size: 1rem;
	font-weight: 900;
	letter-spacing: .12em;
	text-decoration: none;
	text-transform: uppercase;
	transition: border-color .2s ease, color .2s ease;
}
.pae-guard-btn:not(.pae-btn-theme):hover,
.pae-guard-btn:not(.pae-btn-theme):focus-visible { border-color: #129e00; color: #129e00; outline: none; }

/* ---------- Alben ---------- */
.pae-album .pae-overlay { opacity: 1; padding: 1.1em; background: linear-gradient(to top, rgba(13, 19, 16, .9) 0%, rgba(13, 19, 16, .1) 65%, rgba(13, 19, 16, 0) 100%); }
.pae-album .pae-cap { transform: none; font-size: 1.05rem; }
.pae-album .pae-cap strong,
.pae-album-caption strong { display: block; font-weight: 700; letter-spacing: .02em; }
.pae-album .pae-cap small,
.pae-album-caption small { display: block; margin-top: .2em; font-size: .78em; opacity: .75; font-weight: 400; }
.pae-album-caption { font-size: 1rem; opacity: 1; }
.pae-album a.pae-link { cursor: pointer; }

/* Stapel-Darstellung: weitere Fotos der Galerie liegen – leicht gedreht, mit hellem Fotorand – unter dem Titelbild */
.pae-album-style-stack .pae-item { padding: 16px 16px 22px; }
.pae-album-style-stack .pae-tile { isolation: isolate; }
.pae-album-style-stack .pae-album-caption { position: relative; z-index: 2; margin-top: 1.6rem; }
.pae-stack-layer {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	border-radius: var(--pae-radius, 4px);
	background: rgba(127, 127, 127, .3);
	box-shadow: 0 0 0 4px #f3f2ec, 0 10px 22px rgba(0, 0, 0, .45);
	pointer-events: none;
	transition: transform .35s cubic-bezier(.2, .7, .2, 1);
}
.pae-stack-layer .pae-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}
.pae-stack-1 { transform: rotate(-5deg) translate(-3px, 4px); }
.pae-stack-2 { transform: rotate(4.5deg) translate(4px, 2px); }
.pae-album-style-stack .pae-link {
	z-index: 1;
	box-shadow: 0 0 0 4px #f3f2ec, 0 12px 26px rgba(0, 0, 0, .5);
}
@media (hover: hover) {
	.pae-album-style-stack .pae-tile:hover .pae-stack-1 { transform: rotate(-8deg) translate(-8px, 5px); }
	.pae-album-style-stack .pae-tile:hover .pae-stack-2 { transform: rotate(7deg) translate(9px, 3px); }
}
@media (prefers-reduced-motion: reduce) {
	.pae-stack-layer { transition: none; }
}

/* Geöffnete Galerie im Album */
.pae-album-view { margin: 1.5em 0; }
.pae-album-nav {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1.5rem;
	text-align: center;
}
.pae-album-nav-row,
.pae-album-pager { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; }
/* Theme-Unterstreichung an Links in der Navigation abschalten */
.pae-album-nav a { text-decoration: none !important; background-image: none !important; box-shadow: none !important; }
.pae-album-nav a::before,
.pae-album-nav a::after { content: none !important; }

/* Galerie-Namen zum Auswählen */
.pae-album-switch {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.pae-album-switch li { margin: 0; padding: 0; list-style: none; }
.pae-album-switch li::before { content: none !important; }
.pae-chip {
	display: inline-block;
	padding: .55em 1.05em;
	border: 1px solid rgba(243, 242, 236, .28);
	border-radius: 4px;
	background-color: transparent;
	color: inherit;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .05em;
	line-height: 1.2;
	text-transform: uppercase;
	transition: border-color .2s ease, color .2s ease, background-color .2s ease;
}
.pae-chip:hover,
.pae-chip:focus-visible { border-color: var(--pae-accent); color: var(--pae-accent); outline: none; }
.pae-chip.is-current { border-color: var(--pae-accent); background-color: var(--pae-accent); color: #fff; }
.pae-album-title { margin: .25em 0 .6em; text-align: center; }

/* ---------- Fester Rahmen (eigene Farbe) ---------- */
.pae-border .pae-link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	width: auto;
	height: auto;
	margin: 0;
	background: none;
	transform: none;
	border: var(--pae-border-w, 2px) solid var(--pae-border-c, #129e00);
	border-radius: inherit;
	pointer-events: none;
}

/* ---------- Hover-Rahmen (eigene Farbe, unabhängig vom festen Rahmen) ---------- */
.pae-frame-hover .pae-tile::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 3;
	border: var(--pae-frame-w, 2px) solid var(--pae-frame-c, #129e00);
	border-radius: var(--pae-radius, 4px);
	opacity: 0;
	pointer-events: none;
	transition: opacity .25s ease;
}
@media (hover: hover) {
	.pae-frame-hover .pae-tile:hover::after { opacity: 1; }
}
.pae-frame-hover .pae-tile:has(:focus-visible)::after { opacity: 1; }

/* ---------- Button „Zurück zu den Alben“ über einer Galerie ---------- */
.pae-back-wrap { margin: 0 0 1.25rem; text-align: center; }
.pae-back-link { text-decoration: none !important; background-image: none !important; box-shadow: none !important; }
.pae-back-link::before,
.pae-back-link::after { content: none !important; }

/* ---------- Symbol „externer Link“ (Alben) ---------- */
.pae-icon-ext { background: var(--pae-accent); border-color: var(--pae-accent); color: #fff; }

/* ---------- Album-Design „Theme-Karte“ ---------- */
.pae-album-style-theme {
	--pae-card-bg: #111813;
	--pae-card-border: rgba(243, 242, 236, .12);
	--pae-card-text: #f3f2ec;
	--pae-card-muted: rgba(243, 242, 236, .6);
}
.pae-album-style-theme .pae-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--pae-card-border);
	border-radius: var(--pae-radius, 4px);
	background: var(--pae-card-bg);
	color: var(--pae-card-text);
	transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
/* Hervorhebung nur mit echter Maus bzw. Tastaturfokus – auf Touch-Geräten bleibt sie sonst nach dem Tippen „hängen“. */
@media (hover: hover) {
	.pae-album-style-theme .pae-card:hover {
		border-color: var(--pae-accent);
		transform: translateY(-3px);
		box-shadow: 0 14px 34px rgba(0, 0, 0, .35);
	}
}
.pae-album-style-theme .pae-card:has(:focus-visible) {
	border-color: var(--pae-accent);
	box-shadow: 0 14px 34px rgba(0, 0, 0, .35);
}

/* Bild füllt den Rahmen vollständig aus (keine Lücke über oder unter dem Bild). */
.pae-album-style-theme .pae-card .pae-tile { flex: 0 0 auto; border-radius: 0; }
.pae-album-style-theme .pae-card .pae-link {
	aspect-ratio: var(--pae-ratio, 4 / 3);
	border-radius: 0;
}
.pae-album-style-theme.pae-layout-masonry .pae-card .pae-link,
.pae-album-style-theme.pae-layout-justified .pae-card .pae-link { aspect-ratio: var(--ar); }
.pae-album-style-theme .pae-card .pae-img {
	position: absolute;
	top: 0;
	left: 0;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}

.pae-album-style-theme .pae-card-body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: .3rem;
	min-width: 0;
	padding: 1rem 1.1rem 1.15rem;
	border-top: 2px solid var(--pae-accent);
}
/* Schrift und Farben kommen vom Theme; hier nur Größe und Umbruch. */
.pae-album-style-theme .pae-card-title {
	margin: 0;
	min-width: 0;
	font-size: 1.3rem;
	font-weight: 800;
	letter-spacing: .05em;
	line-height: 1.15;
	text-transform: uppercase;
	color: var(--pae-card-text);
	overflow-wrap: anywhere;
	word-break: normal;
	hyphens: auto;
}
.pae-album-style-theme .pae-card-title a { color: inherit; text-decoration: none; box-shadow: none; }
.pae-album-style-theme .pae-card-title a:hover { color: var(--pae-accent); }
.pae-album-style-theme .pae-card-meta {
	margin: 0;
	font-size: .82rem;
	line-height: 1.3;
	color: var(--pae-card-muted);
}

@media (max-width: 1024px) {
	.pae-album-style-theme .pae-card-title { font-size: 1.15rem; }
}
@media (max-width: 640px) {
	.pae-album-style-theme .pae-card-body { padding: .75rem .8rem .9rem; gap: .2rem; }
	.pae-album-style-theme .pae-card-title { font-size: .98rem; letter-spacing: .035em; }
	.pae-album-style-theme .pae-card-meta { font-size: .75rem; }
}

/* ---------- Album: Titel-Farben, Ausrichtung, Beschreibung ---------- */
.pae-album-caption { text-align: var(--pae-title-align, left); color: var(--pae-title-c, inherit); }
.pae-has-title-bg .pae-album-caption { padding: .7rem .9rem; background: var(--pae-title-bg); }
.pae-album .pae-cap { width: 100%; text-align: var(--pae-title-align, left); color: var(--pae-title-c, #f3f2ec); }
.pae-has-title-bg .pae-overlay { padding: 0; background: none; }
.pae-has-title-bg .pae-cap { padding: .7rem .9rem; background: var(--pae-title-bg); }
.pae-album-desc { display: block; margin-top: .3em; font-size: .85em; font-weight: 400; opacity: .8; }
.pae-album-style-theme .pae-card-body { background: var(--pae-title-bg, transparent); text-align: var(--pae-title-align, left); }
.pae-album-style-theme .pae-card-title { color: var(--pae-title-c, var(--pae-card-text)); }
.pae-card-text { margin: .35rem 0 0; font-size: .85rem; line-height: 1.4; color: var(--pae-card-muted); }
.pae-album-view-desc { margin: 0 0 1.2rem; text-align: center; opacity: .8; }

/* ---------- Lightbox: Diashow und Vollbild ---------- */
.pae-lb-play { top: .75rem; left: .75rem; }
.pae-lb-fs { top: .75rem; left: 4.25rem; }
.pae-lb-play[hidden], .pae-lb-fs[hidden] { display: none; }
.pae-lb-play .ico-pause,
.pae-lb-fs .ico-fsx { display: none; }
.pae-lb-play.is-playing .ico-play { display: none; }
.pae-lb-play.is-playing .ico-pause { display: block; }
.pae-lb-play.is-playing { background: var(--pae-accent); }
.pae-lb-fs.is-active .ico-fs { display: none; }
.pae-lb-fs.is-active .ico-fsx { display: block; }
.pae-lb-play svg path[d^="M8 5l"] { fill: currentColor; }

.pae-lb-progress {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 3;
	width: 0;
	height: 3px;
	background: var(--pae-accent);
	pointer-events: none;
}
.pae-lb-progress.is-running { animation: pae-progress var(--pae-dur, 5000ms) linear forwards; }
@keyframes pae-progress { from { width: 0; } to { width: 100%; } }
.pae-lb-overlay.is-single .pae-lb-play { display: none; }

/* ---------- Passwortgeschützte Galerie ---------- */
.pae-pw {
	max-width: 460px;
	margin: 2rem auto;
	padding: 1.6rem 1.6rem 1.4rem;
	border: 1px solid rgba(127, 127, 127, .35);
	border-radius: var(--pae-radius, 4px);
	text-align: center;
}
.pae-pw-title { margin: 0 0 .6rem; }
.pae-pw p { margin: 0 0 .9rem; }
.pae-pw label { display: block; }
.pae-pw input[type="password"] {
	width: 100%;
	max-width: 280px;
	margin: .4rem 0 .8rem;
	padding: .6rem .8rem;
	border: 1px solid rgba(127, 127, 127, .5);
	border-radius: 4px;
	background: transparent;
	color: inherit;
	font: inherit;
	text-align: center;
}
.pae-pw input[type="submit"] { cursor: pointer; }
.pae-pw .pae-pw-lock { font-size: 1.1em; }
.pae-lock-badge { background: rgba(13, 19, 16, .85) !important; border-color: rgba(243, 242, 236, .3) !important; color: #f3f2ec; }
