
.service-grid {
	position: relative;
	overflow: hidden;

	background: var(--bg-item-animation);

	background-repeat: no-repeat;
	background-position: right;
	background-size: cover;
	z-index: 1;
}

/* =========================================================
   Überschrift
========================================================= */
.heading-swim-lessons {
	text-align: center;
	text-transform: uppercase;
	color: var(--color-heading-swim-lessons);
	font-weight: bold;
	font-size: clamp(2rem, 2vw, 3.5rem);
}

/* =========================================================
   Bootstrap-Zeile und Kartenspalten
========================================================= */

.service-grid__row {
	position: relative;
}

.service-card-column {
	display: flex;
}


/*
 * Bei sieben Karten steht nach sechs Karten nur eine Karte
 * in der letzten Zeile. Im geöffneten Zustand wird diese
 * automatisch mittig positioniert.
 */
.service-grid.is-expanded .service-card-column:last-child {
	margin-right: auto;
	margin-left: auto;
}


/* =========================================================
   Einzelne Leistungskarte
========================================================= */

.service-card {
	--service-card-color: #ee6401;

	position: relative;

	display: flex;
	width: 100%;
	min-height: 220px;
	overflow: hidden;

	background-color: var(--bg-service-card);
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 8px;

	box-shadow:
		0 8px 24px rgba(0, 0, 0, 0.06);

	transition:
		transform 0.3s ease,
		box-shadow 0.3s ease;
}


/* Leichte Bewegung der gesamten Karte */
.service-card:hover,
.service-card:focus-within {
	transform: translateY(-4px);

	box-shadow:
		0 14px 34px rgba(0, 0, 0, 0.12);
}


/* =========================================================
   Vorderseite
========================================================= */

.service-card__front {
	position: relative;
	z-index: 1;

	display: flex;
	align-items: center;
	gap: 18px;

	width: 100%;
	min-height: 220px;
	padding: 35px;

	opacity: 1;
	transform: rotate(0deg) scale(1);

	transition:
		opacity 0.3s ease 0.25s,
		transform 0.4s ease 0.25s;

		background-color: var(--bg-service-card-front);
}

.service-card__front::after {
	content: "";
    position: absolute;
    z-index: -2;
    right: -12%;
    bottom: -28%;
    width: 72%;
    height: 58%;
    border-radius: 55% 0 0 0;
    background: linear-gradient(
145deg, rgb(234 165 44 / 35%), rgb(212 157 69 / 5%));
    transform: rotate(-6deg);
    pointer-events: none;
}

.service-card__front::before {
	content: "";
    position: absolute;
    z-index: -2;
    top: -18%;
    left: -10%;
    width: 58%;
    height: 52%;
    border-radius: 0 0 70% 0;
    background: linear-gradient(145deg, rgba(226, 222, 215, 0.7), rgba(255, 255, 255, 0.5));
    transform: rotate(-5deg);
    pointer-events: none;
}



/* Vorderseite beim Hover ausblenden */
.service-card:hover .service-card__front,
.service-card:focus-within .service-card__front {
	opacity: 0;
	transform: rotate(-8deg) scale(0.7);

	transition-delay: 0s;
}


/* =========================================================
   Icon
========================================================= */

.service-card__icon-wrapper {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;

	width: 100px;
	height: 100px;

	border-radius: 50%;

}

.service-card__icon {
	display: block;

	width: 100px;
	height: 100px;

	object-fit: contain;
}


/* =========================================================
   Überschrift und Zusatztext
========================================================= */

.service-card__heading {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.service-card__title {
	margin: 0;

	font-size: clamp(1.25rem, 2vw, 1.5rem);
	font-weight: 700;
	line-height: 1.25;

	color: #202020;
	color: var(--color-service-card-title);
}

.service-card__subtitle {
	margin: 0;

	font-size: 0.95rem;
	line-height: 1.45;

	color: var(--color-service-card-subtitle);
}


/* =========================================================
   Hover-Fläche
========================================================= */

.service-card__overlay {
	position: absolute;
	inset: 0;
	z-index: 2;

	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 20px;

	width: 100%;
	min-height: 220px;
	padding: 35px;

	background:
		linear-gradient(
			135deg,
			color-mix(
				in srgb,
				var(--service-card-color),
				white 12%
			) 0%,
			var(--service-card-color) 55%,
			color-mix(
				in srgb,
				var(--service-card-color),
				black 16%
			) 100%
		), #000;

	opacity: 0;
	transform: rotate(180deg) scale(0);

	transition:
		opacity 0.3s ease,
		transform 0.4s ease;
}


/* Hover-Fläche einblenden */
.service-card:hover .service-card__overlay,
.service-card:focus-within .service-card__overlay {
	opacity: 1;
	transform: rotate(0deg) scale(1);

	transition-delay: 0.18s;
}


/* =========================================================
   Text im Hover-Bereich
========================================================= */

.service-card__text {
	max-width: 100%;
	margin: 0;

	font-size: 1.05rem;
	line-height: 1.55;

	color: #ffffff;

	opacity: 0;
	transform: translateY(12px);

	transition:
		opacity 0.3s ease,
		transform 0.3s ease;
}


/* Text verzögert einblenden */
.service-card:hover .service-card__text,
.service-card:focus-within .service-card__text {
	opacity: 1;
	transform: translateY(0);

	transition-delay: 0.48s;
}


/* =========================================================
   Link im Hover-Bereich
========================================================= */

.service-card__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;

	padding: 9px 16px;

	border: 2px solid #ffffff;
	border-radius: 4px;

	background-color: transparent;

	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	text-transform: uppercase;

	color: #ffffff;

	opacity: 0;
	transform: translateY(12px);

	transition:
		opacity 0.3s ease,
		transform 0.3s ease,
		background-color 0.25s ease,
		color 0.25s ease;
}

.service-card:hover .service-card__link,
.service-card:focus-within .service-card__link {
	opacity: 1;
	transform: translateY(0);

	transition-delay: 0.56s;
}

.service-card__link:hover,
.service-card__link:focus-visible {
	background-color: #ffffff;
	color: var(--service-card-color);
}

.service-card__link:focus-visible {
	outline: 3px solid rgba(255, 255, 255, 0.65);
	outline-offset: 3px;
}

.service-card__link svg {
	width: 13px;
	height: 13px;

	transition: transform 0.25s ease;
}

.service-card__link:hover svg,
.service-card__link:focus-visible svg {
	transform: translateX(4px);
}


/* =========================================================
   Kartenfarben
========================================================= */

.service-card--orange {
	--service-card-color: #e45f0a;
}

.service-card--yellow {
	--service-card-color: #d9a900;
}

.service-card--turquoise {
	--service-card-color: #15a9a9;
}

.service-card--green {
	--service-card-color: #168116;
}

.service-card--olive {
	--service-card-color: #8c7b00;
}

.service-card--blue {
	--service-card-color: #244b9b;
}

.service-card--purple {
	--service-card-color: #7250a5;
}

.service-card--dark {
	--service-card-color: #000;
}


/* =========================================================
   Pfeil des Mehr-/Weniger-Buttons
========================================================= */
.service-grid__toggle-wrapper {
	display: flex;
	justify-content: center;
	width: 100%;
	margin-top: 36px;
}

.service-grid__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-width: 245px;
	border: 1px solid #fff !important;
}

/* =========================================================
   Chevron im Toggle-Button
========================================================= */

.service-grid__toggle-icon {
	flex: 0 0 auto;

	width: 14px;
	height: 14px;

	transform: rotate(0deg);
	transition: transform 0.3s ease;
}

/* Geschlossener Zustand: Pfeil bleibt nach unten */
.service-grid__toggle:hover .service-grid__toggle-icon,
.service-grid__toggle:focus-visible .service-grid__toggle-icon {
	transform: rotate(0deg);
}

/* Geöffneter Zustand: Pfeil zeigt nach oben */
.service-grid__toggle[aria-expanded="true"] .service-grid__toggle-icon,
.service-grid__toggle[aria-expanded="true"]:hover .service-grid__toggle-icon,
.service-grid__toggle[aria-expanded="true"]:focus-visible .service-grid__toggle-icon {
	transform: rotate(180deg);
}


/* Geöffneter Zustand: Pfeil zeigt dauerhaft nach oben */
.service-grid__toggle[aria-expanded="true"] .service-grid__toggle-icon {
	transform: rotate(180deg);
}


/* Beim Hover keine zusätzliche Bewegung nach rechts */
.service-grid__toggle:hover .service-grid__toggle-icon,
.service-grid__toggle:focus-visible .service-grid__toggle-icon {
	transform: rotate(0deg);
}


/* Geöffnet und Hover: Pfeil bleibt nach oben gerichtet */
.service-grid__toggle[aria-expanded="true"]:hover .service-grid__toggle-icon,
.service-grid__toggle[aria-expanded="true"]:focus-visible .service-grid__toggle-icon {
	transform: rotate(180deg);
}


/* =========================================================
   Tablet
========================================================= */

@media (max-width: 991.98px) {

	.service-card,
	.service-card__front,
	.service-card__overlay {
		min-height: 210px;
	}

	.service-card__front,
	.service-card__overlay {
		padding: 30px;
	}

	.service-card__icon-wrapper {
		width: 68px;
		height: 68px;
	}

	.service-card__icon {
		width: 58px;
		height: 58px;
	}
}


/* =========================================================
   Mobil
   Inhalte werden dauerhaft angezeigt
========================================================= */

@media (max-width: 767.98px) {

	.service-grid {
		padding-top: 2rem !important;
		padding-bottom: 2rem !important;
	}

	.service-card {
		display: block;

		min-height: auto;
		overflow: visible;
	}

	.service-card:hover,
	.service-card:focus-within {
		transform: none;
	}

	.service-card__front {
		min-height: auto;
		padding: 24px 24px 18px;

		opacity: 1;
		transform: none;

		border-bottom: 1px solid rgba(0, 0, 0, 0.08);

		overflow: hidden;
	}

	.service-card:hover .service-card__front,
	.service-card:focus-within .service-card__front {
		opacity: 1;
		transform: none;
	}

	.service-card__overlay {
		position: relative;
		inset: auto;

		min-height: auto;
		padding: 22px 24px 24px;

		background:
			linear-gradient(
				135deg,
				color-mix(
					in srgb,
					var(--service-card-color),
					white 90%
				) 0%,
				color-mix(
					in srgb,
					var(--service-card-color),
					white 82%
				) 100%
			);

		opacity: 1;
		transform: none;
	}

	.service-card:hover .service-card__overlay,
	.service-card:focus-within .service-card__overlay {
		opacity: 1;
		transform: none;
	}

	.service-card__text {
		font-size: 1rem;
		color: #202020;

		opacity: 1;
		transform: none;
	}

	.service-card:hover .service-card__text,
	.service-card:focus-within .service-card__text {
		opacity: 1;
		transform: none;
	}

	.service-card__link {
		border-color: var(--service-card-color);
		background-color: var(--service-card-color);
		color: #ffffff;

		opacity: 1;
		transform: none;
	}

	.service-card__link:hover,
	.service-card__link:focus-visible {
		background-color:
			color-mix(
				in srgb,
				var(--service-card-color),
				black 15%
			);

		color: #ffffff;
	}

	.service-card__icon-wrapper {
		width: 60px;
		height: 60px;
	}

	.service-card__icon {
		width: 50px;
		height: 50px;
	}

	.service-grid__toggle-wrapper {
		margin-top: 28px;
	}

	.service-grid__toggle {
		width: 100%;
		max-width: 320px;
	}
}


/* =========================================================
   Sehr kleine Bildschirmbreiten
========================================================= */

@media (max-width: 399.98px) {

	.service-card__front {
		align-items: flex-start;
		padding: 20px;
	}

	.service-card__overlay {
		padding: 20px;
	}

	.service-card__title {
		font-size: 1.2rem;
	}
}


/* =========================================================
   Reduzierte Bewegungen berücksichtigen
========================================================= */

@media (prefers-reduced-motion: reduce) {

	.service-card,
	.service-card__front,
	.service-card__overlay,
	.service-card__text,
	.service-card__link,
	.service-card__link svg,
	.service-grid__toggle-icon {
		transition: none;
	}
}