/* Shared opt-in card; grid placement belongs to each consuming page. */
.ov-product-card { min-width: 0; }
.ov-product-card__media { position: relative; }
.ov-product-card__image-link { display: block; aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--radius-16); background: var(--color-bg-page); }
.ov-product-card--featured .ov-product-card__image-link { aspect-ratio: 13 / 8; }
.ov-product-card__image-link:focus-visible { outline: var(--focus-width) solid var(--color-border-focus); outline-offset: var(--spacing-4); }
.ov-product-card__image { width: 100%; height: 100%; padding: var(--spacing-16); object-fit: contain; border-radius: 0; }
.ov-product-card__badge { position: absolute; top: var(--spacing-12); left: var(--spacing-12); max-width: calc(100% - 2 * var(--spacing-12)); pointer-events: none; }
.ov-product-card__badge[hidden] { display: none; }
.ov-product-card__badge .ov-tag { background: var(--color-bg-brand); color: var(--color-text-inverse); }
.ov-product-card__details { display: flex; flex-direction: column; gap: var(--spacing-8); margin-top: var(--spacing-12); padding: var(--spacing-12); border-radius: var(--radius-24); background: var(--color-bg-page); }
.ov-product-card__details h3,
.ov-product-card__meta { margin: 0; }
.ov-product-card__details h3 a { color: inherit; font-weight: inherit; text-decoration: none; }
.ov-product-card__details h3 a:hover { text-decoration: underline; }
.ov-product-card--featured .ov-product-card__details { max-width: 360px; }
.ov-product-card--catalog .ov-product-card__details { background: transparent; border-radius: 0; }
.ov-product-card__price { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: var(--spacing-8); }
.ov-product-card__price del { color: var(--color-text-muted); font-size: var(--font-size-body-lg); line-height: var(--line-height-body-lg); }
.ov-product-card__price ins { font-weight: inherit; background: transparent; text-decoration: none; }
.ov-product-card__price .amount { white-space: nowrap; }
.ov-product-card__swatches { position: absolute; right: 0; bottom: var(--spacing-4); display: flex; max-width: 100%; padding-inline: var(--spacing-8); overflow-x: auto; scrollbar-width: thin; }
.ov-product-card__swatch {
	display: grid;
	place-items: center;
	flex: 0 0 var(--spacing-32);
	width: var(--spacing-32);
	height: var(--action-target-min);
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	line-height: 1;
}
button.ov-product-card__swatch { cursor: pointer; touch-action: manipulation; }
button.ov-product-card__swatch:hover,
button.ov-product-card__swatch:active { background: transparent; }
.ov-product-card__color { display: block; width: var(--spacing-16); height: var(--spacing-16); border-radius: var(--radius-full); background: var(--ov-product-color, #9B9B9B); box-shadow: inset 0 0 0 1px rgb(0 0 0 / 12%); transition: width .3s ease-out; }
.ov-product-card__swatch[aria-pressed="true"] .ov-product-card__color,
.ov-product-card__swatch--current .ov-product-card__color { width: var(--spacing-32); }
/* Keep the keyboard ring on the color, including inside Storefront's #page. */
#page .ov-product-card__swatch:focus,
.ov-product-card__swatch:focus { outline: none; }
.ov-product-card__swatch:focus-visible .ov-product-card__color { outline: var(--focus-width) solid var(--color-text-primary); outline-offset: var(--spacing-4); }
@media (max-width: 599px) {
	.ov-product-card--featured .ov-product-card__image-link { aspect-ratio: 3 / 2; }
	.ov-product-card--featured .ov-product-card__details { max-width: none; }
}
@media (forced-colors: active) {
	.ov-product-card__color { forced-color-adjust: none; }
	.ov-product-card__swatch:focus-visible .ov-product-card__color { outline-color: Highlight; }
}
@media (prefers-reduced-motion: reduce) {
	.ov-product-card__color { transition: none; }
}
