/**
 * Teammodul v1.0.0
 * Bootstrap-5-Ergänzungen ohne Tailwind.
 * Bewusst unminifiziert, damit Anpassungen im Projekt einfach möglich bleiben.
 */

.mm-team {
	--color-sky-50: #e2edf4;
	--color-sky-100: #c5d8e6;
	--color-sky-200: #a6c1d5;
	--color-sky-300: #86a9c3;
	--color-sky-400: #5f86a4;
	--color-sky-500: #2f516a;
	--color-sky-600: #29475d;
	--color-sky-700: #233d50;
	--color-sky-800: #1c3343;
	--color-sky-900: #162936;
	--color-emerald-50: #e8f3e2;
	--color-emerald-100: #d2e7c7;
	--color-emerald-200: #bbdba9;
	--color-emerald-500: #79b255;
	--color-emerald-600: #6ca04c;
	--color-emerald-700: #5f8e43;
	position: relative;
}

.mm-team--bg-white { background: #ffffff; }
.mm-team--bg-sky { background:linear-gradient(to right bottom in oklab, rgb(226, 237, 244) 0%, rgb(232, 243, 226) 100%) }
.mm-team--bg-emerald { background: linear-gradient(135deg, var(--color-emerald-50), #ffffff 62%); }
.mm-team--bg-neutral { background: #f9fafb; }
.mm-team--bg-transparent { background: transparent; }

.mm-team--space-compact { padding-block: 4rem; }
.mm-team--space-default { padding-block: 5rem; }
.mm-team--space-large { padding-block: 6rem; }

.mm-team__container {
	position: relative;
	z-index: 1;
	padding-inline: 1rem;
}

.mm-team__container--wide {
	max-width: 80rem;
	margin-inline: auto;
}

.mm-team__container--fluid {
	padding-inline: clamp(1rem, 4vw, 3rem);
}

.mm-team__header {
	margin-bottom: 3.5rem;
}

.mm-team--header-center .mm-team__header {
	text-align: center;
}

.mm-team__badge {
	display: inline-flex;
	align-items: center;
	margin-bottom: 1rem;
	padding: 0.5rem 1rem;
	border-radius: 999rem;
	font-size: 0.875rem;
	font-weight: 800;
	line-height: 1.4;
}

.mm-team-design--emerald { color: var(--color-emerald-700); background: var(--color-emerald-100); }
.mm-team-design--sky { color: var(--color-sky-700); background: var(--color-sky-100); }
.mm-team-design--amber { color: #92400e; background: #fef3c7; }
.mm-team-design--rose { color: #be123c; background: #ffe4e6; }
.mm-team-design--neutral { color: #374151; background: #f3f4f6; }

.mm-team__title {
	margin: 0 0 1rem;
	color: #111827;
	font-size: clamp(1.875rem, 4vw, 2.5rem);
	font-weight: 800;
	line-height: 1.2;
}

.mm-team__intro {
	max-width: 36rem;
	margin: 0;
	color: #4b5563;
	line-height: 1.65;
}

.mm-team--header-center .mm-team__intro {
	margin-inline: auto;
}

.mm-team__grid {
	display: grid;
	gap: 1.5rem;
}

.mm-team--gap-4 .mm-team__grid { gap: 1rem; }
.mm-team--gap-5 .mm-team__grid { gap: 1.5rem; }
.mm-team--gap-6 .mm-team__grid { gap: 2rem; }

.mm-team--cols-mobile-1 .mm-team__grid { grid-template-columns: 1fr; }
.mm-team--cols-mobile-2 .mm-team__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

@media (min-width: 768px) {
	.mm-team--cols-tablet-1 .mm-team__grid { grid-template-columns: 1fr; }
	.mm-team--cols-tablet-2 .mm-team__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mm-team--cols-tablet-3 .mm-team__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 992px) {
	.mm-team--cols-desktop-1 .mm-team__grid { grid-template-columns: 1fr; }
	.mm-team--cols-desktop-2 .mm-team__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mm-team--cols-desktop-3 .mm-team__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mm-team--cols-desktop-4 .mm-team__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.mm-team__item {
	min-width: 0;
}

.mm-team--equal-height .mm-team__item {
	display: flex;
}

.mm-team-card {
	--team-accent: var(--color-emerald-500);
	--team-accent-strong: var(--color-emerald-700);
	--team-accent-soft: var(--color-emerald-50);
	--team-accent-soft-strong: var(--color-emerald-100);
	--team-border-hover: var(--color-emerald-200);
	display: flex;
	flex-direction: column;
	width: 100%;
	overflow: hidden;
	border: 0.125rem solid transparent;
	border-radius: 1.5rem;
	background: linear-gradient(135deg, var(--team-accent-soft), var(--team-accent-soft-strong));
	transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}

.mm-team-card--emerald {
	--team-accent: var(--color-emerald-500);
	--team-accent-strong: var(--color-emerald-700);
	--team-accent-soft: var(--color-emerald-50);
	--team-accent-soft-strong: var(--color-emerald-100);
	--team-border-hover: var(--color-emerald-200);
}

.mm-team-card--sky {
	--team-accent: var(--color-sky-500);
	--team-accent-strong: var(--color-sky-700);
	--team-accent-soft: var(--color-sky-50);
	--team-accent-soft-strong: var(--color-sky-100);
	--team-border-hover: var(--color-sky-200);
}

.mm-team-card--amber {
	--team-accent: #f59e0b;
	--team-accent-strong: #b45309;
	--team-accent-soft: #fffbeb;
	--team-accent-soft-strong: #fef3c7;
	--team-border-hover: #fcd34d;
}

.mm-team-card--rose {
	--team-accent: #f43f5e;
	--team-accent-strong: #be123c;
	--team-accent-soft: #fff1f2;
	--team-accent-soft-strong: #ffe4e6;
	--team-border-hover: #fda4af;
}

.mm-team-card--neutral {
	--team-accent: #6b7280;
	--team-accent-strong: #374151;
	--team-accent-soft: #f9fafb;
	--team-accent-soft-strong: #f3f4f6;
	--team-border-hover: #d1d5db;
	box-shadow: 0 1.25rem 2.5rem rgba(15, 23, 42, 0.08);
	border: 0.125rem solid #d1d5db;
}

.mm-team-card--hover:hover,
.mm-team-card--hover:focus-within {
	border-color: var(--team-border-hover);
	box-shadow: 0 1.25rem 2.5rem rgba(15, 23, 42, 0.12);
	transform: translateY(-0.25rem);
}

.mm-team-card__media {
	position: relative;
	overflow: hidden;
	height: 13rem;
}

.mm-team-card--image-compact .mm-team-card__media { height: 11rem; }
.mm-team-card--image-large .mm-team-card__media { height: 16rem; }

.mm-team-card__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--mm-team-image-position, center center);
	transition: transform 0.5s ease;
}

.mm-team-card--hover:hover .mm-team-card__image,
.mm-team-card--hover:focus-within .mm-team-card__image {
	transform: scale(1.05);
}

.mm-team-card__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, color-mix(in srgb, var(--team-accent-strong) 70%, transparent), transparent);
}

.mm-team-card__image-badge {
	position: absolute;
	bottom: 0.75rem;
	left: 0.75rem;
	display: inline-flex;
	align-items: center;
	padding: 0.125rem 0.55rem;
	border-radius: 999rem;
	color: #ffffff;
	background: var(--team-accent);
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.35;
}

.mm-team-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 1.25rem;
}

.mm-team-card__name {
	margin: 0 0 0.25rem;
	color: #111827;
	font-size: 1.125rem;
	font-weight: 800;
	line-height: 1.25;
}

.mm-team-card__position {
	margin: 0 0 0.5rem;
	color: var(--team-accent-strong);
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.4;
}

.mm-team-card__text {
	margin: 0;
	color: #6b7280;
	font-size: 0.8125rem;
	line-height: 1.65;
}

.mm-team-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	margin-top: 3rem;
	padding: 2rem;
	border: 0.0625rem solid var(--team-cta-border, var(--color-emerald-100));
	border-radius: 1.5rem;
	background: var(--team-cta-bg, linear-gradient(90deg, var(--color-emerald-50), var(--color-sky-50)));
}

.mm-team-cta--emerald-sky {
	--team-cta-border: var(--color-emerald-100);
	--team-cta-bg: linear-gradient(90deg, var(--color-emerald-50), var(--color-sky-50));
	--team-cta-button-bg: linear-gradient(90deg, var(--color-emerald-500), var(--color-sky-500));
	--team-cta-button-hover-bg: linear-gradient(90deg, var(--color-emerald-600), var(--color-sky-600));
}

.mm-team-cta--sky {
	--team-cta-border: var(--color-sky-100);
	--team-cta-bg: linear-gradient(90deg, var(--color-sky-50), #ffffff);
	--team-cta-button-bg: var(--color-sky-500);
	--team-cta-button-hover-bg: var(--color-sky-700);
}

.mm-team-cta--emerald {
	--team-cta-border: var(--color-emerald-100);
	--team-cta-bg: linear-gradient(90deg, var(--color-emerald-50), #ffffff);
	--team-cta-button-bg: var(--color-emerald-500);
	--team-cta-button-hover-bg: var(--color-emerald-700);
}

.mm-team-cta--amber {
	--team-cta-border: #fde68a;
	--team-cta-bg: linear-gradient(90deg, #fffbeb, #ffffff);
	--team-cta-button-bg: #f59e0b;
	--team-cta-button-hover-bg: #b45309;
}

.mm-team-cta--neutral {
	--team-cta-border: #e5e7eb;
	--team-cta-bg: linear-gradient(90deg, #f9fafb, #ffffff);
	--team-cta-button-bg: #374151;
	--team-cta-button-hover-bg: #111827;
}

.mm-team-cta__title {
	margin: 0 0 0.5rem;
	color: #111827;
	font-size: 1.25rem;
	font-weight: 800;
	line-height: 1.3;
}

.mm-team-cta__text {
	margin: 0;
	color: #4b5563;
	font-size: 0.875rem;
	line-height: 1.65;
}

.mm-team-cta__button {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 1rem 1.75rem;
	border-radius: 1rem;
	color: #ffffff !important;
	background: var(--team-cta-button-bg);
	box-shadow: 0 0.75rem 1.4rem rgba(15, 23, 42, 0.14);
	font-weight: 800;
	line-height: 1.2;
	text-decoration: none;
	transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

.mm-team-cta__button:hover,
.mm-team-cta__button:focus-visible {
	color: #ffffff;
	background: var(--team-cta-button-hover-bg);
	box-shadow: 0 1rem 1.75rem rgba(15, 23, 42, 0.18);
	text-decoration: none;
	transform: translateY(-0.08rem);
}

.mm-team-cta__button-icon {
	width: 1.25rem;
	height: 1.25rem;
}

.mm-team--animate .mm-team__header,
.mm-team--animate .mm-team__grid,
.mm-team--animate .mm-team-cta {
	opacity: 0;
	transform: translateY(1rem);
	transition: opacity 0.55s ease, transform 0.55s ease;
}

.mm-team--animate.is-visible .mm-team__header,
.mm-team--animate.is-visible .mm-team__grid,
.mm-team--animate.is-visible .mm-team-cta {
	opacity: 1;
	transform: translateY(0);
}

.mm-team--animate.is-visible .mm-team__grid { transition-delay: 0.08s; }
.mm-team--animate.is-visible .mm-team-cta { transition-delay: 0.16s; }

@media (max-width: 767.98px) {
	.mm-team-cta {
		align-items: flex-start;
		flex-direction: column;
	}

	.mm-team-cta__button {
		width: 100%;
	}
}

@media (max-width: 575.98px) {
	.mm-team--space-default { padding-block: 4rem; }
	.mm-team--space-large { padding-block: 5rem; }
}

@media (prefers-reduced-motion: reduce) {
	.mm-team-card,
	.mm-team-card__image,
	.mm-team-cta__button,
	.mm-team--animate .mm-team__header,
	.mm-team--animate .mm-team__grid,
	.mm-team--animate .mm-team-cta {
		opacity: 1;
		transform: none;
		transition: none;
	}
}


.mm-team__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 2rem;
}

.mm-team__grid:has(> .mm-team__item:only-child) {
	grid-template-columns: minmax(260px, 360px);
	justify-content: center;
}

.mm-team__grid:has(> .mm-team__item:only-child) > .mm-team__item {
	width: 100%;
	max-width: 360px;
}