/* MG Personen – Frontend */

.mgp-raster {
	--mgp-groesse: 180px;
	--mgp-spalten: 4;
	--mgp-abstand: 24px;
	--mgp-rahmen: 0px;
	--mgp-rahmenfarbe: #e2001a;
	--mgp-namensgroesse: 16px;
	--mgp-textfarbe: #222;

	display: grid;
	grid-template-columns: repeat(var(--mgp-spalten), minmax(0, 1fr));
	gap: calc(var(--mgp-abstand) * 1.4) var(--mgp-abstand);
	margin: 0 0 1.5em;
	padding: 0;
	list-style: none;
}

.mgp-person {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	margin: 0;
	padding: 0;
}

.mgp-raster.mgp-links .mgp-person {
	align-items: flex-start;
	text-align: left;
}

.mgp-person[data-mgp-popup] {
	cursor: pointer;
}

.mgp-kreis {
	width: var(--mgp-groesse);
	height: var(--mgp-groesse);
	max-width: 100%;
	border-radius: 50%;
	overflow: hidden;
	position: relative;
	background: #f0f0f0;
	flex: 0 0 auto;
	box-sizing: border-box;
}

.mgp-kreis {
	border: var(--mgp-rahmen) solid var(--mgp-rahmenfarbe);
}

.mgp-kreis .mgp-bild,
.mgp-kreis img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	margin: 0;
	border-radius: 50%;
	transition: transform 0.25s ease;
}

.mgp-person[data-mgp-popup]:hover .mgp-kreis img {
	filter: brightness(1.04);
}

.mgp-platzhalter {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	font-size: calc(var(--mgp-groesse) / 2.5);
	color: #9a9a9a;
	background: #ececec;
	text-transform: uppercase;
}

.mgp-daten {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin-top: 0.7em;
	color: var(--mgp-textfarbe);
	line-height: 1.35;
}

.mgp-name {
	font-size: var(--mgp-namensgroesse);
	font-weight: 700;
}

.mgp-funktion {
	font-size: calc(var(--mgp-namensgroesse) * 0.85);
	opacity: 0.75;
}

.mgp-text {
	font-size: calc(var(--mgp-namensgroesse) * 0.85);
	opacity: 0.9;
	margin-top: 0.3em;
}

.mgp-kontakt {
	font-size: calc(var(--mgp-namensgroesse) * 0.8);
}

.mgp-kontakt a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid currentColor;
}

.mgp-kontakt a:hover {
	opacity: 0.7;
}

/* Popup */
.mgp-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.6);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	z-index: 99999;
}

.mgp-dialog {
	background: #fff;
	color: #222;
	border-radius: 10px;
	max-width: 520px;
	width: 100%;
	max-height: 85vh;
	overflow: auto;
	padding: 28px;
	position: relative;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

.mgp-dialog .mgp-popup-kopf {
	display: flex;
	gap: 18px;
	align-items: center;
	margin-bottom: 14px;
}

.mgp-dialog .mgp-popup-bild {
	width: 110px;
	height: 110px;
	border-radius: 50%;
	object-fit: cover;
	flex: 0 0 auto;
}

.mgp-dialog h3 {
	margin: 0 0 4px;
	font-size: 1.3em;
}

.mgp-popup-funktion {
	margin: 0;
	opacity: 0.7;
}

.mgp-popup-text {
	margin: 0 0 12px;
	line-height: 1.5;
}

.mgp-popup-kontakt a {
	display: inline-block;
	margin-right: 14px;
}

.mgp-schliessen {
	position: absolute;
	top: 8px;
	right: 12px;
	background: none;
	border: 0;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	color: #666;
	padding: 4px 8px;
}

.mgp-schliessen:hover {
	color: #000;
}

/* Responsiv */
@media (max-width: 900px) {
	.mgp-raster {
		grid-template-columns: repeat(min(var(--mgp-spalten), 3), minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.mgp-raster {
		grid-template-columns: repeat(min(var(--mgp-spalten), 2), minmax(0, 1fr));
	}

	.mgp-kreis {
		width: min(var(--mgp-groesse), 40vw);
		height: min(var(--mgp-groesse), 40vw);
	}
}
