/* Reusable Values Grid storefront component. */

.ca-values-grid {
	--ca-values-grid-space-top: var(--ca-section-spacing-large);
	--ca-values-grid-space-bottom: var(--ca-section-spacing-large);
	--ca-values-grid-container: var(--ca-section-width-wide);
	--ca-values-grid-columns: 4;

	position: relative;
	width: 100%;
	padding-block: var(--ca-values-grid-space-top) var(--ca-values-grid-space-bottom);
	color: var(--ca-color-text);
}

.ca-values-grid--space-top-none {
	--ca-values-grid-space-top: var(--ca-section-spacing-none);
}

.ca-values-grid--space-top-small {
	--ca-values-grid-space-top: var(--ca-section-spacing-small);
}

.ca-values-grid--space-top-medium {
	--ca-values-grid-space-top: var(--ca-section-spacing-medium);
}

.ca-values-grid--space-top-xlarge {
	--ca-values-grid-space-top: var(--ca-section-spacing-xlarge);
}

.ca-values-grid--space-bottom-none {
	--ca-values-grid-space-bottom: var(--ca-section-spacing-none);
}

.ca-values-grid--space-bottom-small {
	--ca-values-grid-space-bottom: var(--ca-section-spacing-small);
}

.ca-values-grid--space-bottom-medium {
	--ca-values-grid-space-bottom: var(--ca-section-spacing-medium);
}

.ca-values-grid--space-bottom-xlarge {
	--ca-values-grid-space-bottom: var(--ca-section-spacing-xlarge);
}

.ca-values-grid--surface-soft {
	background: var(--ca-color-surface-muted);
}

.ca-values-grid--surface-raised {
	background: var(--ca-color-surface-raised);
	box-shadow: inset 0 var(--ca-border-width) var(--ca-color-border), inset 0 calc(0px - var(--ca-border-width)) var(--ca-color-border);
}

.ca-values-grid--width-contained {
	--ca-values-grid-container: var(--ca-section-width-contained);
}

.ca-values-grid--width-full {
	--ca-values-grid-container: var(--ca-section-width-full);
}

.ca-values-grid--columns-2 {
	--ca-values-grid-columns: 2;
}

.ca-values-grid--columns-3 {
	--ca-values-grid-columns: 3;
}

.ca-values-grid__container {
	display: grid;
	width: min(calc(100% - (var(--ca-page-gutter) * 2)), var(--ca-values-grid-container));
	margin-inline: auto;
	gap: clamp(var(--ca-space-7), 4vw, var(--ca-space-9));
}

.ca-values-grid--width-full .ca-values-grid__container {
	width: 100%;
	max-width: none;
	padding-inline: var(--ca-page-gutter);
}

.ca-values-grid__header {
	display: grid;
	max-width: 48rem;
	gap: var(--ca-space-3);
}

.ca-values-grid--align-center .ca-values-grid__header {
	margin-inline: auto;
	text-align: center;
}

.ca-values-grid__eyebrow {
	margin: 0;
	color: var(--ca-color-primary);
	font-family: var(--ca-font-ui);
	font-size: var(--ca-text-xs);
	font-weight: var(--ca-weight-heavy);
	line-height: var(--ca-line-height-ui);
	letter-spacing: var(--ca-letter-spacing-eyebrow);
	text-transform: var(--ca-text-transform-eyebrow);
}

.ca-values-grid__header h2 {
	margin: 0;
	font-family: var(--ca-font-heading);
	font-size: var(--ca-text-h2);
	font-weight: var(--ca-weight-heavy);
	line-height: var(--ca-line-height-heading);
	letter-spacing: var(--ca-letter-spacing-heading);
}

.ca-values-grid__list {
	display: grid;
	grid-template-columns: repeat(var(--ca-values-grid-columns), minmax(0, 1fr));
	gap: var(--ca-grid-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.ca-values-grid__card {
	display: flex;
	min-width: 0;
	min-height: 100%;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--ca-space-3);
	padding: clamp(var(--ca-space-5), 2.2vw, var(--ca-space-7));
	background: var(--ca-card-bg);
	border: var(--ca-border-width) solid var(--ca-card-border);
	border-radius: var(--ca-radius-lg);
	box-shadow: var(--ca-card-shadow);
	backdrop-filter: var(--ca-card-backdrop-filter);
	transition: transform var(--ca-duration-fast) var(--ca-ease-standard), border-color var(--ca-duration-fast) var(--ca-ease-standard), box-shadow var(--ca-duration-fast) var(--ca-ease-standard), filter var(--ca-duration-fast) var(--ca-ease-standard);
}

.ca-values-grid__icon {
	display: inline-flex;
	width: 3rem;
	height: 3rem;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	color: var(--ca-color-primary);
	background: color-mix(in srgb, var(--ca-color-primary) 12%, var(--ca-color-surface));
	border: var(--ca-border-width) solid color-mix(in srgb, var(--ca-color-primary) 28%, var(--ca-color-border));
	border-radius: var(--ca-radius-md);
}

.ca-values-grid__icon svg {
	width: var(--ca-icon-size);
	height: var(--ca-icon-size);
}

.ca-values-grid__card h3 {
	margin: var(--ca-space-1) 0 0;
	font-family: var(--ca-font-heading);
	font-size: var(--ca-text-lg);
	font-weight: var(--ca-weight-bold);
	line-height: var(--ca-line-height-heading);
}

.ca-values-grid__card p {
	margin: 0;
	color: var(--ca-color-muted);
	font-size: var(--ca-text-sm);
	line-height: var(--ca-line-height-body);
}

@media (hover: hover) and (pointer: fine) {
	.ca-values-grid__card:hover {
		border-color: var(--ca-card-border-hover);
		box-shadow: var(--ca-card-shadow-hover);
		filter: var(--ca-card-filter-hover);
		transform: var(--ca-card-transform-hover);
	}
}

@media (max-width: 61.25rem) {
	.ca-values-grid__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 40rem) {
	.ca-values-grid__list {
		grid-template-columns: 1fr;
	}

	.ca-values-grid__card {
		padding: var(--ca-space-5);
		border-radius: var(--ca-radius-md);
	}

	.ca-values-grid__header h2 {
		font-size: var(--ca-text-h3);
	}

	.ca-values-grid__icon {
		width: var(--ca-touch-target);
		height: var(--ca-touch-target);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ca-values-grid__card {
		transform: none !important;
		transition: none !important;
	}
}
