
/*
 * Case study card (global) — template-parts/components/case-study-card/case-study-card.php
 * Figma "case study card", file TtcElVBB8zSMtMk2WR2VFf, node 22029:20856.
 * Type sizes come from the sd-type-* primitives (css/typography.css); this file only
 * does layout, colors and the Hover state. Classes are doubled
 * (.sd-case-card.sd-case-card) instead of !important so the card beats page-level
 * CSS on any template it is rendered on.
 */

/* The 1px frame is Figma's INSIDE stroke: it is painted ON TOP of the full-bleed image,
   not around it. A real `border` (even with box-sizing: border-box) sits outside the
   content box, so the image would start 1px in and the frame would ring it — hence the
   frame lives on an ::after overlay above the content instead. */
.sd-case-card.sd-case-card {
	position: relative;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	min-width: 0;
	height: 100%;
	overflow: hidden;
	border: 0;
	border-radius: 16px;
	background: #fff;
	color: #262626;
	text-decoration: none;
	font-family: "Google Sans Flex", sans-serif;
	transition: box-shadow .2s ease;
	-webkit-tap-highlight-color: transparent;
}

.sd-case-card.sd-case-card::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	border: 1px solid rgba(0, 0, 0, .1);
	border-radius: inherit;
	pointer-events: none;
	transition: border-color .2s ease;
}

.sd-case-card.sd-case-card * {
	font-family: "Google Sans Flex", sans-serif;
}

/* Image: full-bleed inside the 16px shell (no inner inset), 409:200. */
.sd-case-card .sd-case-card__media {
	position: relative;
	flex: 0 0 auto;
	width: 100%;
	aspect-ratio: 409/200;
	overflow: hidden;
	background: #faf7f5;
}

.sd-case-card .sd-case-card__media picture {
	display: block;
	width: 100%;
	height: 100%;
}

.sd-case-card .sd-case-card__image {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	transition: transform .4s ease;
}

.sd-case-card .sd-case-card__body {
	box-sizing: border-box;
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 24px;
	padding: 28px;
}

/* Heading grows so dividers and KPIs line up across a grid row. */
.sd-case-card .sd-case-card__heading {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
}

.sd-case-card .sd-case-card__title {
	margin: 0;
	color: #262626;
	overflow-wrap: break-word;
}

.sd-case-card .sd-case-card__title-text {
	text-decoration: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
	transition: text-decoration-color .2s ease;
}

.sd-case-card .sd-case-card__divider {
	display: block;
	width: 100%;
	height: 1px;
	background: rgba(0, 0, 0, .1);
}

.sd-case-card .sd-case-card__kpis {
	display: flex;
	align-items: flex-start;
	gap: 24px;
	margin: 0;
}

.sd-case-card .sd-case-card__kpi {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}

.sd-case-card .sd-case-card__kpi-value, .sd-case-card .sd-case-card__kpi-label {
	margin: 0;
	overflow-wrap: break-word;
}

.sd-case-card .sd-case-card__kpi-value {
	color: #262626;
}

.sd-case-card .sd-case-card__kpi-value span {
	font: inherit;
}

.sd-case-card .sd-case-card__kpi-label {
	color: rgba(0, 0, 0, .75);
}

/* Hover (desktop pointers only) — Figma State=Hover: black/20 border, 1px shadow,
   underlined title, image eases in (~5%). */
@media (hover: hover) {
	.sd-case-card.sd-case-card:hover {
		box-shadow: 0 1px 2px rgba(0, 0, 0, .1);
	}
	
	.sd-case-card.sd-case-card:hover::after {
		border-color: rgba(0, 0, 0, .2);
	}
	
	.sd-case-card.sd-case-card:hover .sd-case-card__image {
		transform: scale(1.05);
	}
	
	.sd-case-card.sd-case-card:hover .sd-case-card__title-text {
		text-decoration-color: rgba(0, 0, 0, .4);
	}
}

.sd-case-card.sd-case-card:focus {
	outline: none;
}

.sd-case-card.sd-case-card:focus-visible {
	outline: 2px solid #262626;
	outline-offset: 2px;
}

.sd-case-card.sd-case-card:focus-visible::after {
	border-color: rgba(0, 0, 0, .2);
}

.sd-case-card.sd-case-card:focus-visible .sd-case-card__title-text {
	text-decoration-color: rgba(0, 0, 0, .4);
}

@media (max-width: 767px) {
	.sd-case-card .sd-case-card__body {
		padding: 20px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sd-case-card.sd-case-card, .sd-case-card .sd-case-card__image, .sd-case-card .sd-case-card__title-text {
		transition: none;
	}
	
	.sd-case-card.sd-case-card:hover .sd-case-card__image {
		transform: none;
	}
}
