/* Homepage Now Pouring carousel interactions. */
body.home .products-carousel.m-carousel:not(.keen-slider) {
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: 0 !important;
	overflow: hidden;
}

body.home .products-carousel.m-carousel:not(.keen-slider) > .wc-block-product {
	box-sizing: border-box;
	flex: 0 0 calc(100% / 1.5);
	max-width: calc(100% / 1.5);
	min-width: 0;
}

body.home .products-carousel.m-carousel {
	padding-top: 4px;
	-webkit-user-select: none;
	user-select: none;
}

body.home .products-carousel.m-carousel :is(a, img) {
	-webkit-user-drag: none;
}

body.home .products-carousel.m-carousel.stw-carousel-is-dragging {
	cursor: grabbing;
}

body.home .products-carousel.m-carousel > .wc-block-product > .wp-block-group {
	position: relative;
	transition: transform 0.15s ease;
}

/*
 * Stretch the existing product-title link across the card. The overlay is
 * pointer-active only after the motion guard reports that the carousel has
 * settled, so a drag or coast cannot accidentally open a product.
 */
body.home
.products-carousel.m-carousel > .wc-block-product > .wp-block-group
:is(
	a[href],
	button,
	input,
	select,
	textarea,
	label,
	summary,
	[role="button"],
	[role="link"]
) {
	position: relative;
	z-index: 2;
}

body.home
.products-carousel.m-carousel > .wc-block-product > .wp-block-group
.wp-block-post-title,
body.home
.products-carousel.m-carousel > .wc-block-product > .wp-block-group
.wp-block-post-title
a[href] {
	position: static;
	z-index: auto;
}

body.home
.products-carousel.m-carousel > .wc-block-product > .wp-block-group
.wp-block-post-title
a[href]::after {
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: 1;
}

body.home
.products-carousel.m-carousel[data-stw-carousel-motion="idle"] > .wc-block-product > .wp-block-group
.wp-block-post-title
a[href]::after {
	cursor: pointer;
	pointer-events: auto;
}

body.home
.products-carousel.m-carousel:is(
	.stw-carousel-is-moving,
	.stw-carousel-is-dragging
),
body.home
.products-carousel.m-carousel:is(
	.stw-carousel-is-moving,
	.stw-carousel-is-dragging
)
:is(a, button) {
	cursor: grab;
}

body.home .products-carousel.m-carousel.stw-carousel-is-dragging,
body.home
.products-carousel.m-carousel.stw-carousel-is-dragging
:is(a, button) {
	cursor: grabbing;
}

body.home .products-carousel.m-carousel .stw-products-carousel-description {
	display: none;
}

@media (min-width: 782px) {

	body.home .products-carousel.m-carousel {
		--stw-products-carousel-card-height: 600px;
		--stw-products-carousel-image-clearance: 48px;
	}

	body.home
	.products-carousel.m-carousel > .wc-block-product > .wp-block-group {
		height: var(--stw-products-carousel-card-height) !important;
		min-height: var(--stw-products-carousel-card-height) !important;
	}

	/*
	 * Wine images use a 1:2 crop. Cap its width from the fixed card height so
	 * wider slides cannot make the crop taller than the rounded card.
	 */
	body.home
	.products-carousel.m-carousel > .wc-block-product
	.wp-block-woocommerce-product-image > a {
		max-width: min(100%, calc((var(--stw-products-carousel-card-height) - var(--stw-products-carousel-image-clearance)) / 2));
	}

	body.home
	.products-carousel.m-carousel > .wc-block-product > .wp-block-group > .wp-block-columns > .wp-block-column:nth-child(2) {
		display: flex;
		min-height: 0;
	}

	body.home
	.products-carousel.m-carousel > .wc-block-product > .wp-block-group > .wp-block-columns > .wp-block-column:nth-child(2) > .wp-block-group {
		flex: 1 1 auto;
		min-height: 0;
		width: 100%;
	}

	body.home
	.products-carousel.m-carousel > .wc-block-product > .wp-block-group > .wp-block-columns > .wp-block-column:nth-child(2) > .wp-block-group > :not(.stw-products-carousel-description) {
		flex: 0 0 auto;
	}

	body.home .products-carousel.m-carousel .stw-products-carousel-description {
		color: var(--wp--preset--color--foreground, #000);
		display: block;
		flex: 1 1 0;
		font-size: var(--wp--preset--font-size--small, 0.9rem);
		line-height: 1.45;
		margin: -0.45rem 0 0;
		max-width: none;
		min-height: 0;
		overflow: hidden;
		width: 100%;
	}

	body.home
	.products-carousel.m-carousel
	.stw-products-carousel-description
	.wp-block-post-excerpt__excerpt {
		display: -webkit-box;
		line-clamp: var(--stw-products-carousel-description-lines, 2);
		margin: 0;
		overflow: hidden;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: var(--stw-products-carousel-description-lines, 2);
	}
}

@media (min-width: 768px) and (max-width: 1024px) {

	body.home .products-carousel.m-carousel:not(.keen-slider) > .wc-block-product {
		flex-basis: 100%;
		max-width: 100%;
	}
}

@media (max-width: 767px) {

	body.home .products-carousel.m-carousel:not(.keen-slider) > .wc-block-product {
		flex-basis: calc(100% / 1.1);
		max-width: calc(100% / 1.1);
	}
}

@media (min-width: 782px) {

	body.home
	.products-carousel.m-carousel:not(.stw-carousel-is-moving):not(
		.stw-carousel-is-dragging
	) > .wc-block-product:focus-within > .wp-block-group {
		transform: translateY(-4px);
	}
}

@media (min-width: 782px) and (hover: hover) and (pointer: fine) {

	body.home
	.products-carousel.m-carousel:not(.stw-carousel-is-moving):not(
		.stw-carousel-is-dragging
	) > .wc-block-product:hover > .wp-block-group {
		transform: translateY(-4px);
	}
}

@media (prefers-reduced-motion: reduce) {

	body.home
	.products-carousel.m-carousel > .wc-block-product > .wp-block-group {
		transform: none;
		transition: none;
	}
}
