/**
 * London Premium v84
 * Homepage product presentation: desktop/tablet multi-column layout + one-card-per-swipe mobile rail.
 */

/* Keep this correction isolated to the Immediate Selection section on the homepage. */
html body.home .site .lp-home-product-carousel {
	position: relative !important;
	padding-left: clamp(20px, 4vw, 64px) !important;
	padding-right: clamp(20px, 4vw, 64px) !important;
	overflow: hidden !important;
}

html body.home .site .lp-home-product-carousel > [data-lp-reveal] {
	width: 100% !important;
	min-width: 0 !important;
}

html body.home .site .lp-home-product-carousel .woocommerce {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
}

/* Desktop: three balanced cards on one row, never a single oversized column. */
html body.home .site .lp-home-product-carousel .woocommerce ul.products {
	width: min(1180px, 100%) !important;
	max-width: 1180px !important;
	margin: clamp(38px, 4.2vw, 62px) auto 0 !important;
	padding: 0 !important;
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	grid-auto-flow: row !important;
	grid-auto-rows: auto !important;
	gap: clamp(18px, 2vw, 28px) !important;
	overflow: visible !important;
	list-style: none !important;
}

html body.home .site .lp-home-product-carousel .woocommerce ul.products > li.product.lp-product-card,
html body.home .site .lp-home-product-carousel .woocommerce ul.products > li.product.lp-product-card:only-child {
	float: none !important;
	clear: none !important;
	grid-column: auto !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	height: 100% !important;
	margin: 0 !important;
	justify-self: stretch !important;
	box-sizing: border-box !important;
}

/* Preserve a consistent premium card rhythm even when titles differ in length. */
html body.home .site .lp-home-product-carousel .lp-product-card__content,
html body.home .site .lp-home-product-carousel li.product:only-child .lp-product-card__content {
	min-height: 172px !important;
	padding: 24px 22px 27px !important;
	box-sizing: border-box !important;
}

html body.home .site .lp-home-product-carousel .woocommerce-loop-product__title,
html body.home .site .lp-home-product-carousel .woocommerce-loop-product__title a {
	font-size: clamp(24px, 2vw, 31px) !important;
	line-height: 1.02 !important;
}

/* Tablet: two cards per row with generous spacing. */
@media (max-width: 1060px) and (min-width: 721px) {
	html body.home .site .lp-home-product-carousel .woocommerce ul.products {
		width: min(820px, 100%) !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 22px !important;
	}
}

/* Mobile: one complete product card per viewport step. No half-card / split-card resting states. */
@media (max-width: 720px) {
	html body.home .site .lp-home-product-carousel {
		padding-left: 0 !important;
		padding-right: 0 !important;
		overflow: hidden !important;
	}

	html body.home .site .lp-home-product-carousel .lp-v18-section-head {
		width: auto !important;
		margin-left: 24px !important;
		margin-right: 24px !important;
	}

	html body.home .site .lp-home-product-carousel > [data-lp-reveal]:last-child,
	html body.home .site .lp-home-product-carousel .woocommerce {
		width: 100% !important;
		max-width: 100% !important;
		overflow: visible !important;
	}

	html body.home .site .lp-home-product-carousel .woocommerce ul.products {
		width: 100% !important;
		max-width: none !important;
		margin: 34px 0 0 !important;
		padding: 0 24px 14px !important;
		display: grid !important;
		grid-template-columns: none !important;
		grid-auto-flow: column !important;
		grid-auto-columns: calc(100vw - 48px) !important;
		grid-auto-rows: 1fr !important;
		gap: 16px !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		overscroll-behavior-inline: contain !important;
		scroll-snap-type: x mandatory !important;
		scroll-padding-inline: 24px !important;
		-webkit-overflow-scrolling: touch !important;
		touch-action: pan-x pan-y !important;
		scrollbar-width: none !important;
		box-sizing: border-box !important;
	}

	html body.home .site .lp-home-product-carousel .woocommerce ul.products::-webkit-scrollbar {
		display: none !important;
		width: 0 !important;
		height: 0 !important;
	}

	html body.home .site .lp-home-product-carousel .woocommerce ul.products > li.product.lp-product-card,
	html body.home .site .lp-home-product-carousel .woocommerce ul.products > li.product.lp-product-card:only-child {
		grid-column: auto !important;
		width: 100% !important;
		max-width: none !important;
		min-width: 0 !important;
		height: 100% !important;
		margin: 0 !important;
		scroll-snap-align: start !important;
		scroll-snap-stop: always !important;
	}

	html body.home .site .lp-home-product-carousel .lp-product-card__media,
	html body.home .site .lp-home-product-carousel li.product:only-child .lp-product-card__media {
		width: 100% !important;
		min-height: 0 !important;
		aspect-ratio: 1 / 1.03 !important;
	}

	html body.home .site .lp-home-product-carousel .lp-product-card__content,
	html body.home .site .lp-home-product-carousel li.product:only-child .lp-product-card__content {
		min-height: 152px !important;
		padding: 20px 18px 22px !important;
	}

	html body.home .site .lp-home-product-carousel .woocommerce-loop-product__title,
	html body.home .site .lp-home-product-carousel .woocommerce-loop-product__title a {
		font-size: clamp(23px, 7vw, 28px) !important;
		line-height: 1.02 !important;
	}

	html body.home .site .lp-home-product-carousel .lp-product-card__media-footer {
		left: 12px !important;
		right: 12px !important;
		bottom: 12px !important;
	}
}

@media (max-width: 390px) {
	html body.home .site .lp-home-product-carousel .woocommerce ul.products {
		padding-left: 18px !important;
		padding-right: 18px !important;
		grid-auto-columns: calc(100vw - 36px) !important;
		gap: 14px !important;
		scroll-padding-inline: 18px !important;
	}

	html body.home .site .lp-home-product-carousel .lp-v18-section-head {
		margin-left: 18px !important;
		margin-right: 18px !important;
	}
}

/* v84 mobile snap hardening: each resting position shows exactly one complete card. */
@media (max-width: 720px) {
	html body.home .site .lp-home-product-carousel .woocommerce ul.products {
		scroll-snap-type: x mandatory !important;
	}
	html body.home .site .lp-home-product-carousel .woocommerce ul.products > li.product.lp-product-card {
		scroll-snap-align: start !important;
		scroll-snap-stop: always !important;
	}
}
