/**
 * beDots Services — service cards grid.
 */

.bds-services {
	width: 100%;
}

.bds-services--empty {
	padding: 16px 20px;
	border: 1px dashed #ccc;
	border-radius: 8px;
	color: #666;
	font-size: 14px;
}

.bds-services__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
}

.bds-service-card {
	--bds-accent: #8b2c4e;
	--bds-cream: #fff9ef;
	--bds-pink: #fdf3f0;
	--bds-text: #4d4d4d;
	--bds-link: #d46b5a;
	display: flex;
	flex-direction: column;
	min-height: 400px;
	padding: 40px 36px;
	background: var(--bds-cream);
	border: 2px solid transparent;
	border-radius: 28px;
	box-sizing: border-box;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	transition: background 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
}

.bds-service-card:focus {
	outline: 2px solid var(--bds-accent);
	outline-offset: 4px;
}

.bds-service-card:focus:not(:focus-visible) {
	outline: none;
}

.bds-service-card:focus-visible {
	outline: 2px solid var(--bds-accent);
	outline-offset: 4px;
}

.bds-service-card *,
.bds-service-card *::before,
.bds-service-card *::after {
	box-sizing: border-box;
}

.bds-service-card:hover,
.bds-service-card:focus-within {
	background: var(--bds-pink);
	border-color: var(--bds-accent);
	box-shadow: 0 8px 32px rgba(139, 44, 78, 0.08);
}

.bds-service-card__media {
	flex: 0 0 auto;
	width: 72px;
	height: 72px;
}

.bds-service-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: left top;
}

.bds-service-card__spacer {
	flex: 1 1 auto;
	min-height: 56px;
	transition: flex-grow 0.35s ease, min-height 0.35s ease;
}

.bds-service-card:hover .bds-service-card__spacer,
.bds-service-card:focus-within .bds-service-card__spacer {
	flex-grow: 0;
	min-height: 28px;
}

.bds-service-card__content {
	flex: 0 0 auto;
}

.bds-service-card__title {
	margin: 0 0 14px;
	color: var(--bds-accent);
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.25;
	transition: margin 0.35s ease;
}

.bds-service-card:hover .bds-service-card__title,
.bds-service-card:focus-within .bds-service-card__title {
	margin-bottom: 12px;
}

.bds-service-card__description {
	margin: 0;
	color: var(--bds-text);
	font-size: 0.98rem;
	line-height: 1.55;
}

.bds-service-card__link {
	display: inline-block;
	margin-top: 0;
	padding: 0;
	border: 0;
	background: none;
	color: var(--bds-link);
	font: inherit;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.4;
	text-decoration: underline;
	text-underline-offset: 3px;
	opacity: 0;
	max-height: 0;
	overflow: hidden;
	transform: translateY(10px);
	transition: opacity 0.35s ease, transform 0.35s ease, max-height 0.35s ease, margin-top 0.35s ease;
}

.bds-service-card:hover .bds-service-card__link,
.bds-service-card:focus-visible .bds-service-card__link {
	opacity: 1;
	max-height: 48px;
	margin-top: 22px;
	transform: translateY(0);
}

.bds-service-card:hover .bds-service-card__link {
	color: #bf5344;
}

@media (max-width: 1024px) {
	.bds-services__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.bds-services__grid {
		grid-template-columns: 1fr;
	}

	.bds-service-card {
		min-height: 340px;
		padding: 32px 28px;
		border-radius: 22px;
	}

	.bds-service-card__title {
		font-size: 1.2rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.bds-service-card,
	.bds-service-card__spacer,
	.bds-service-card__title,
	.bds-service-card__link {
		transition: none;
	}

	.bds-service-card__link {
		opacity: 1;
		max-height: none;
		margin-top: 22px;
		transform: none;
	}

	.bds-service-card__spacer {
		flex-grow: 0;
		min-height: 28px;
	}
}
