/**
 * WPBakery Elemente: Kinderpark Standorte Grid + Standort Card
 * Bootstrap-5-Ergänzungen, vollständig modulgekapselt.
 */

.mm-kpl-grid {
	--mm-kpl-section-bg: #f9fafb;
	position: relative;
}

.mm-kpl-grid--bg-light {
	background-color: #f9fafb;
}

.mm-kpl-grid--bg-white {
	background-color: #fff;
}

.mm-kpl-grid--bg-gradient {
	background-image: linear-gradient(135deg, #ecfdf5, #f9fafb 50%, #f0fdfa);
}

.mm-kpl-grid--bg-custom {
	background-color: var(--mm-kpl-section-bg);
}

.mm-kpl-grid--space-compact {
	padding-block: 3.5rem;
}

.mm-kpl-grid--space-default {
	padding-block: 4rem;
}

.mm-kpl-grid--space-large {
	padding-block: 5rem;
}

.mm-kpl-grid__container {
	padding-inline: 1rem;
}

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

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

.mm-kpl-grid__header {
	margin-bottom: 3rem;
}

.mm-kpl-grid--header-center .mm-kpl-grid__header {
	text-align: center;
}

.mm-kpl-grid__badge {
	display: inline-block;
	margin-bottom: 1rem;
	padding: .5rem 1rem;
	border-radius: 50rem;
	color: #5f8e43;
	background: #d1fae5;
	font-size: .875rem;
	font-weight: 500;
}

.mm-kpl-grid__title {
	margin: 0 0 1rem;
	color: #111827;
	font-size: clamp(1.875rem, 4vw, 2.25rem);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -.025em;
}

.mm-kpl-grid__intro {
	color: #4b5563;
	font-size: 1rem;
	line-height: 1.65;
}

.mm-kpl-grid__intro p:last-child {
	margin-bottom: 0;
}

.mm-kpl-grid--header-center .mm-kpl-grid__intro {
	margin-inline: auto;
}

.mm-kpl-grid--intro-narrow .mm-kpl-grid__intro {
	max-width: 30rem;
}

.mm-kpl-grid--intro-default .mm-kpl-grid__intro {
	max-width: 36rem;
}

.mm-kpl-grid--intro-wide .mm-kpl-grid__intro {
	max-width: 48rem;
}

.mm-kpl-card {
	--mm-kpl-accent: #059669;
	--mm-kpl-accent-dark: #065f46;
	--mm-kpl-soft: #ecfdf5;
	--mm-kpl-soft-text: #047857;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 .625rem 1.5rem rgba(15, 23, 42, .08), 0 .25rem .625rem rgba(15, 23, 42, .05);
	transition: box-shadow .3s ease, transform .3s ease;
}

.mm-kpl-grid--equal-height .mm-kpl-card,
.mm-kpl-grid--equal-height .mm-kpl-card__column {
	height: 100%;
}

.mm-kpl-card--emerald {
	--mm-kpl-accent: #79b255;
	--mm-kpl-accent-dark: #436a31;;
	--mm-kpl-soft: #e8f3e2;
	--mm-kpl-soft-text: #517c3a;
}

.mm-kpl-card--teal {
	--mm-kpl-accent: #14b8a6;
	--mm-kpl-accent-dark: #134e4a;
	--mm-kpl-soft: #f0fdfa;
	--mm-kpl-soft-text: #0f766e;
}

.mm-kpl-card--amber {
	--mm-kpl-accent: #f59e0b;
	--mm-kpl-accent-dark: #78350f;
	--mm-kpl-soft: #fffbeb;
	--mm-kpl-soft-text: #b45309;
}

.mm-kpl-card--sky {
	--mm-kpl-accent: #0ea5e9;
	--mm-kpl-accent-dark: #0c4a6e;
	--mm-kpl-soft: #f0f9ff;
	--mm-kpl-soft-text: #0369a1;
}

.mm-kpl-card--custom {
	--mm-kpl-accent-dark: var(--mm-kpl-accent);
	--mm-kpl-soft: color-mix(in srgb, var(--mm-kpl-accent) 10%, #fff);
	--mm-kpl-soft-text: var(--mm-kpl-accent);
}

.mm-kpl-card--radius-small {
	border-radius: .75rem;
}

.mm-kpl-card--radius-default {
	border-radius: 1.5rem;
}

.mm-kpl-card--radius-large {
	border-radius: 2rem;
}

.mm-kpl-card--hover:hover {
	box-shadow: 0 1.25rem 2.5rem rgba(15, 23, 42, .13), 0 .5rem 1rem rgba(15, 23, 42, .07);
}

.mm-kpl-card__media {
	position: relative;
	overflow: hidden;
	flex-shrink: 0;
}

.mm-kpl-card__image {
	display: block;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}

.mm-kpl-card--hover:hover .mm-kpl-card__image {
	transform: scale(1.05);
}

.mm-kpl-card--height-compact .mm-kpl-card__media {
	height: 10.5rem;
}

.mm-kpl-card--height-default .mm-kpl-card__media {
	height: 13rem;
}

.mm-kpl-card--height-large .mm-kpl-card__media {
	height: 16rem;
}

.mm-kpl-card__overlay {
	position: absolute;
	inset: 0;
	background-image: linear-gradient(to top, color-mix(in srgb, var(--mm-kpl-accent-dark) 72%, transparent), transparent 65%);
}

.mm-kpl-card__label {
	position: absolute;
	bottom: 1rem;
	left: 1rem;
	padding: .3rem .75rem;
	border-radius: 50rem;
	color: #fff;
	background: var(--mm-kpl-accent);
	font-size: .75rem;
	font-weight: 500;
	line-height: 1.4;
}

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

.mm-kpl-card__title {
	margin: 0 0 .5rem;
	color: #111827;
	font-family: var(--mm-kpl-font-heading, inherit);
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.3;
}

.mm-kpl-card__description {
	margin-bottom: 1rem;
	color: #4b5563;
	font-size: 1rem;
	line-height: 1.6;
}

.mm-kpl-card__description p:last-child {
	margin-bottom: 0;
}

.mm-kpl-card__features {
	display: grid;
	gap: .5rem;
	margin: 0 0 1rem;
	color: #4b5563;
	font-size: .875rem;
	line-height: 1.5;
}

.mm-kpl-card__feature-custom-icon {
	flex: 0 0 auto;
	line-height: 1.5;
}

.mm-kpl-card__dot {
	flex: 0 0 auto;
	width: .5rem;
	height: .5rem;
	margin-top: .4rem;
	border-radius: 50%;
	background: var(--mm-kpl-accent);
}

.mm-kpl-card__details {
	margin-top: auto;
}

.mm-kpl-card__detail {
	padding: 1rem;
	border-radius: 1rem;
	color: var(--mm-kpl-soft-text);
	background: var(--mm-kpl-soft);
}

.mm-kpl-card__detail-title {
	margin: 0 0 .25rem;
	font-size: .875rem;
	font-weight: 700;
	line-height: 1.45;
}

.mm-kpl-card__detail-text {
	margin: 0;
	color: var(--mm-kpl-soft-text);
	font-size: .875rem;
	line-height: 1.55;
	word-break: break-word;
}

.mm-kpl-card__detail-link {
	display: inline-block;
	text-decoration: underline;
	text-underline-offset: .15em;
}

.mm-kpl-card__detail-link:hover,
.mm-kpl-card__detail-link:focus-visible {
	color: var(--mm-kpl-accent-dark);
}

.mm-kpl-card__detail-image {
	flex: 0 0 auto;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	object-fit: cover;
}

.mm-kpl-card__cta {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	align-self: flex-start;
	margin-top: 1.25rem;
	color: var(--mm-kpl-soft-text);
	font-weight: 600;
	text-decoration: none;
}

.mm-kpl-card__cta svg {
	width: 1.1rem;
	height: 1.1rem;
	transition: transform .2s ease;
}

.mm-kpl-card__cta:hover,
.mm-kpl-card__cta:focus-visible {
	color: var(--mm-kpl-accent-dark);
}

.mm-kpl-card__cta:hover svg,
.mm-kpl-card__cta:focus-visible svg {
	transform: translateX(.2rem);
}

.mm-kpl-grid--animate .mm-kpl-card__column {
	opacity: 0;
	transform: translateY(1.25rem);
	transition: opacity .55s ease, transform .55s ease;
}

.mm-kpl-grid--animate.is-visible .mm-kpl-card__column {
	opacity: 1;
	transform: translateY(0);
}

.mm-kpl-grid--animate.is-visible .mm-kpl-card__column:nth-child(2) {
	transition-delay: .08s;
}

.mm-kpl-grid--animate.is-visible .mm-kpl-card__column:nth-child(3) {
	transition-delay: .16s;
}

.mm-kpl-grid--animate.is-visible .mm-kpl-card__column:nth-child(4) {
	transition-delay: .24s;
}

@media (min-width: 576px) {
	.mm-kpl-grid--space-default {
		padding-block: 5rem;
	}

	.mm-kpl-grid--space-large {
		padding-block: 6rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mm-kpl-card,
	.mm-kpl-card__image,
	.mm-kpl-card__cta svg,
	.mm-kpl-grid--animate .mm-kpl-card__column {
		opacity: 1;
		transform: none;
		transition: none;
	}
}
