/*
 * Shared photographic Service card — the ONE visual implementation for
 * template-parts/shared/service-card.php, used on the homepage Services
 * panel (template-parts/home/services.php) and the /services/ archive
 * (archive-service.php). Enqueued on both (inc/enqueue.php).
 *
 * Grid layout (columns/gap) stays with each caller's own section CSS
 * (services.css for the homepage, internal-pages.css for the archive) —
 * only the card itself lives here, so it's never duplicated.
 */

.service-card {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	height: 100%;
	min-height: 260px;
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--service-accent, var(--ark-border-titanium)) 45%, var(--ark-border-soft));
	border-radius: var(--ark-radius-lg);
	color: inherit;
	background-color: var(--ark-bg-850);
	transition: transform 200ms var(--ark-ease), border-color 200ms var(--ark-ease), box-shadow 200ms var(--ark-ease);
}

.service-card:hover {
	transform: translateY(-3px);
	border-color: color-mix(in srgb, var(--service-accent, var(--ark-border-titanium)) 70%, var(--ark-border-medium));
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--service-accent, transparent) 18%, transparent);
}

.service-card__media {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.service-card__media-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 400ms var(--ark-ease);
}

.service-card:hover .service-card__media-image {
	transform: scale(1.03);
}

/* Neutral dark technical fallback — same box, no photo assumed/borrowed. */
.service-card__media[data-has-image="false"] {
	background-image:
		linear-gradient(155deg, var(--ark-bg-850) 0%, var(--ark-bg-950) 60%, #0F1D27 100%),
		repeating-linear-gradient(0deg, rgba(166, 176, 186, 0.06) 0 1px, transparent 1px 32px),
		repeating-linear-gradient(90deg, rgba(166, 176, 186, 0.06) 0 1px, transparent 1px 32px);
}

/* Layered dark overlay — stronger toward the text/bottom, subtle global
   darkening + a faint accent tint so the image never competes with copy. */
.service-card__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(5, 12, 18, 0.35) 0%, rgba(5, 12, 18, 0.55) 45%, rgba(5, 12, 18, 0.94) 100%),
		radial-gradient(120% 90% at 0% 100%, color-mix(in srgb, var(--service-accent, transparent) 16%, transparent) 0%, transparent 60%);
}

.service-card__content {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	padding: 26px 24px;
}

.service-card__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
}

.service-card__number {
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: rgba(243, 245, 247, 0.7);
}

.service-card__title {
	font-size: var(--ark-fs-card-title);
	font-weight: 700;
	color: #FFFFFF;
	margin-bottom: 8px;
}

.service-card__text {
	font-size: 0.92rem;
	line-height: 1.5;
	color: rgba(243, 245, 247, 0.72);
	margin-bottom: 16px;
	/* Keeps description length from making rows jump — cards stay equal
	   height via the grid, this just caps how much text a long entry shows. */
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.service-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-top: auto;
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--service-accent, var(--ark-text-primary));
}

.service-card__cta-arrow {
	color: var(--service-accent, var(--ark-text-primary));
	transition: transform 200ms var(--ark-ease);
}

.service-card:hover .service-card__cta-arrow {
	transform: translateX(4px);
}

@media (prefers-reduced-motion: reduce) {
	.service-card,
	.service-card__media-image,
	.service-card__cta-arrow {
		transition: none;
	}
}
