/* Projekt-Detailseite, Medienblock (12.09.2026, zuerst Vacamio) — Vorlage „Projekte Single – Medienblock".
   Klassen setzt die Vorlage: ao-pv-projektbild, ao-pv-rechts, ao-pv-box, ao-pv-galerie, ao-pv-video. */

/* Projektbild oben: Geräte-Kombination im Querformat statt Hochformat-Plakat. */
.e-con > .elementor-widget.ao-pv-projektbild {
	flex: 0 0 360px;
	width: 360px;
	max-width: 42%;
}
.ao-pv-projektbild img {
	width: 100% !important;
	height: auto !important;
	max-height: 210px;
	object-fit: contain;
}

/* Rechte Spalte reicht bis zur Unterkante der linken (dort endet das Video). */
.e-con.ao-pv-rechts {
	align-self: stretch;
}
/* Das Raster liegt absolut im Galerie-Widget: so bestimmt die Zeilenhöhe der linken Spalte seine
   Höhe und nicht die Bildgrößen (das Hochformat-Handybild würde die Zeile sonst auf 400 px ziehen). */
.e-con > .elementor-widget.ao-pv-galerie {
	flex: 1 1 auto;
	position: relative;
	min-height: 264px;
}
.ao-pv-galerie > .elementor-widget-container,
.ao-pv-galerie .elementor-shortcode {
	position: static !important;
}

/* Raster der Bildschirmfotos */
.ao-pgal {
	position: absolute;
	inset: 0;
	display: grid;
	grid-template-columns: repeat(var(--ao-pgal-spalten, 2), minmax(0, 1fr));
	grid-auto-rows: minmax(120px, 1fr);
	gap: 12px;
}
.ao-pgal__bild {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 7px;
	border: 1px solid rgba(126, 126, 126, .35);
	background: #0b0c0e;
	box-shadow: 5px 4px 6px rgba(0, 0, 0, .22);
}
.ao-pgal__bild img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: left top;
	transition: transform .5s ease, filter .5s ease;
}
.ao-pgal__bild::after {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: inherit;
	box-shadow: inset 0 0 0 1px transparent;
	transition: box-shadow .3s ease;
	pointer-events: none;
}
.ao-pgal__bild:hover img,
.ao-pgal__bild:focus-visible img {
	transform: scale(1.04);
}
.ao-pgal__bild:hover::after,
.ao-pgal__bild:focus-visible::after {
	box-shadow: inset 0 0 0 2px #00ABD7, 0 0 14px rgba(0, 171, 215, .45);
}
.ao-pgal__bild:focus-visible {
	outline: 2px solid #00ABD7;
	outline-offset: 2px;
}

/* Firmenbox: weniger Innenabstand, kleinere Schrift — weniger Umbrüche. */
.e-con.ao-pv-box {
	--padding-top: 26px;
	--padding-right: 26px;
	--padding-bottom: 26px;
	--padding-left: 26px;
}
.ao-pv-box .elementor-widget-theme-post-excerpt {
	font-size: 14px;
	line-height: 22px;
}
.ao-pv-box .elementor-widget-theme-post-excerpt p,
.ao-pv-box .elementor-widget-theme-post-excerpt .elementor-widget-container {
	font-size: inherit;
	line-height: inherit;
}
.ao-pv-box .projekt-logo {
	max-width: 240px;
}

.ao-pv-video {
	margin-top: 12px;
}

@media (max-width: 1024px) {
	.ao-pv-projektbild.elementor-widget-image { flex-basis: auto; width: 100%; max-width: 100%; }
	/* Einspaltig gibt es keine Nachbarspalte, an der das Raster enden könnte: normale Höhe je Bild. */
	.e-con.ao-pv-rechts { align-self: auto; }
	.e-con > .elementor-widget.ao-pv-galerie { flex: 0 0 auto; min-height: 0; }
	/* Zeilenhöhe in vw statt aspect-ratio: das umgebende Elementor-Raster misst die Galerie vorab mit
	   Spaltenbreite 0, aspect-ratio ergäbe dort Höhe 0 und die Firmenbox rutschte über die Bilder.
	   16:10 bei zwei Spalten: (Breite − 30 px Rand − 12 px Abstand) / 2 × 0,625. */
	.ao-pgal { position: static; grid-auto-rows: calc((100vw - 42px) * .3125); }
}
@media (prefers-reduced-motion: reduce) {
	.ao-pgal__bild img, .ao-pgal__bild::after { transition: none; }
	.ao-pgal__bild:hover img, .ao-pgal__bild:focus-visible img { transform: none; }
}

/* Lightbox (Elementor) im Ackermann-Stil: Miniaturenleiste rechts, Beschreibung immer sichtbar.
   Die Klasse ao-lb setzt js/projekt-lightbox.js, sobald eine Galerie mit mehreren Bildern geöffnet ist. */
.elementor-lightbox.ao-lb {
	z-index: 100000;
	background-color: rgba(6, 8, 10, .95);
	--lightbox-ui-color: rgba(255, 255, 255, .78);
	--lightbox-ui-color-hover: #00ABD7;
	--lightbox-text-color: #D6D6D6;
}
.elementor-lightbox.ao-lb .ao-lb-leiste {
	position: fixed;
	top: 78px;
	right: 18px;
	bottom: 78px;
	width: 112px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	overflow-y: auto;
	overscroll-behavior: contain;
	z-index: 10;
	padding: 3px;
	scrollbar-width: thin;
	scrollbar-color: rgba(255, 255, 255, .3) transparent;
}
.ao-lb-mini {
	flex: 0 0 auto;
	width: 106px;
	height: 72px;
	padding: 0;
	border: 0;
	border-radius: 5px;
	overflow: hidden;
	cursor: pointer;
	background: #0b0c0e;
	opacity: .45;
	box-shadow: 0 0 0 1px rgba(126, 126, 126, .5);
	transition: opacity .25s ease, box-shadow .25s ease;
}
.ao-lb-mini img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: left top;
}
.ao-lb-mini:hover,
.ao-lb-mini:focus-visible {
	opacity: .9;
	outline: none;
}
.ao-lb-mini.ist-aktiv {
	opacity: 1;
	box-shadow: 0 0 0 2px #00ABD7, 0 0 12px rgba(0, 171, 215, .55);
}
.elementor-lightbox.ao-lb.hat-miniaturen .swiper,
.elementor-lightbox.ao-lb.hat-miniaturen .swiper-container {
	width: calc(100% - 150px);
	margin-left: 0;
}
.elementor-lightbox.ao-lb .elementor-slideshow__footer,
.elementor-lightbox.ao-lb .elementor-slideshow__title,
.elementor-lightbox.ao-lb .elementor-slideshow__description {
	opacity: 1 !important;
	transform: none !important;
}
.elementor-lightbox.ao-lb .elementor-slideshow__footer {
	padding: 22px 32px 26px;
	text-align: left;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, .82) 45%);
}
.elementor-lightbox.ao-lb .elementor-slideshow__title {
	margin: 0 0 6px;
	font-family: Manrope, sans-serif;
	font-weight: 700;
	font-size: 19px;
	line-height: 26px;
	color: #FFFFFF;
}
.elementor-lightbox.ao-lb .elementor-slideshow__description {
	max-width: 780px;
	font-family: Manrope, sans-serif;
	font-weight: 400;
	font-size: 15px;
	line-height: 24px;
	color: #D6D6D6;
}
@media (max-width: 1024px) {
	.elementor-lightbox.ao-lb .ao-lb-leiste { display: none; }
	.elementor-lightbox.ao-lb.hat-miniaturen .swiper,
	.elementor-lightbox.ao-lb.hat-miniaturen .swiper-container { width: 100%; }
	.elementor-lightbox.ao-lb .elementor-slideshow__footer { padding: 16px 18px 20px; }
}
