/*
 * London Premium V75
 * Checkout, cart drawer, product media and related-card polish.
 */

:root {
	--lp75-black: #050403;
	--lp75-ink: #15110c;
	--lp75-paper: #f6efe4;
	--lp75-cream: #fffaf4;
	--lp75-gold: #d0ae5d;
	--lp75-gold-deep: #8d6c2d;
	--lp75-line: rgba(21, 17, 12, 0.15);
}

/* Cart drawer: keep product, totals and confirmation in separate layout layers. */
body .lp-drawer.js-cart-drawer .lp-drawer__body {
	display: block !important;
	min-height: 0 !important;
	overflow-y: auto !important;
	overflow-x: hidden !important;
}

body .lp-drawer.js-cart-drawer .lp-mini-cart,
body .lp-drawer.js-cart-drawer .lp-mini-cart__footer,
body .lp-drawer.js-cart-drawer .lp-mini-cart__terms {
	position: relative !important;
	z-index: 1 !important;
	float: none !important;
	clear: both !important;
	contain: layout paint !important;
}

body .lp-drawer.js-cart-drawer .lp-mini-cart__item {
	isolation: isolate !important;
	overflow: hidden !important;
}

body .lp-drawer.js-cart-drawer .lp-mini-cart__image,
body.woocommerce-cart .lp-v43-cart-item__image,
body .wc-block-components-order-summary-item__image,
body .wc-block-cart-item__image {
	background: #eadfce !important;
}

body .lp-drawer.js-cart-drawer .lp-mini-cart__image img,
body.woocommerce-cart .lp-v43-cart-item__image img,
body .wc-block-components-order-summary-item__image img,
body .wc-block-components-product-image img,
body .wc-block-cart-item__image img,
body .wc-block-components-order-summary-item img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: contain !important;
	object-position: center !important;
	background: #eadfce !important;
}

body .lp-drawer.js-cart-drawer .lp-mini-cart__content {
	min-width: 0 !important;
	overflow: hidden !important;
}

body .lp-drawer.js-cart-drawer .lp-mini-cart__title {
	max-width: 100% !important;
	overflow-wrap: anywhere !important;
	word-break: normal !important;
}

body .lp-drawer.js-cart-drawer .lp-mini-cart__controls {
	position: relative !important;
	z-index: 2 !important;
}

body .lp-drawer.js-cart-drawer .lp-mini-cart__footer.has-visible-terms .lp-mini-cart__actions {
	margin-bottom: 0 !important;
}

body .lp-drawer.js-cart-drawer .lp-mini-cart__terms:not([hidden]) {
	margin-top: 20px !important;
	transform: none !important;
	overflow: hidden !important;
}

body .lp-mini-cart__terms .lp-v62-checkout-button.is-loading {
	pointer-events: none !important;
	filter: saturate(0.92) brightness(0.96) !important;
}

/* Purchase confirmation: consistent luxury radio-check across drawer and full bag. */
body .lp-v62-purchase-terms__label {
	align-items: flex-start !important;
}

body .lp-v62-purchase-terms__label input {
	-webkit-appearance: none !important;
	appearance: none !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	outline: 0 !important;
}

body .lp-v62-purchase-terms__box {
	display: inline-grid !important;
	place-items: center !important;
	border-radius: 50% !important;
	background: #fffaf2 !important;
	border: 1px solid rgba(141, 108, 45, 0.75) !important;
	box-shadow: inset 0 0 0 2px rgba(255, 250, 242, 0.9) !important;
}

body .lp-v62-purchase-terms__box::after {
	content: "" !important;
	position: absolute !important;
	left: 50% !important;
	top: 48% !important;
	width: 7px !important;
	height: 12px !important;
	border: solid var(--lp75-black) !important;
	border-width: 0 2px 2px 0 !important;
	opacity: 0 !important;
	transform: translate(-50%, -55%) rotate(45deg) scale(0.72) !important;
	transition: opacity 180ms ease, transform 180ms ease !important;
}

body .lp-v62-purchase-terms__label input:checked + .lp-v62-purchase-terms__box {
	background: var(--lp75-gold) !important;
	border-color: var(--lp75-gold) !important;
	box-shadow: inset 0 0 0 2px var(--lp75-black), 0 12px 30px rgba(208, 174, 93, 0.22) !important;
}

body .lp-v62-purchase-terms__label input:checked + .lp-v62-purchase-terms__box::after {
	opacity: 1 !important;
	transform: translate(-50%, -55%) rotate(45deg) scale(1) !important;
}

body .lp-v62-checkout-button[aria-disabled="false"],
body .lp-v62-checkout-button:not(.is-disabled) {
	cursor: pointer !important;
	opacity: 1 !important;
}

/* WooCommerce Blocks checkboxes, including Add a note to your order. */
body .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"],
body .wc-block-components-checkbox input[type="checkbox"],
body .wc-block-components-checkbox__input[type="checkbox"] {
	-webkit-appearance: none !important;
	appearance: none !important;
	position: relative !important;
	display: inline-grid !important;
	place-items: center !important;
	width: 34px !important;
	height: 34px !important;
	min-width: 34px !important;
	margin: 0 12px 0 0 !important;
	border: 1px solid rgba(141, 108, 45, 0.78) !important;
	border-radius: 50% !important;
	background: #fffaf2 !important;
	box-shadow: inset 0 0 0 2px #fffaf2 !important;
	outline: 0 !important;
}

body .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]::after,
body .wc-block-components-checkbox input[type="checkbox"]::after,
body .wc-block-components-checkbox__input[type="checkbox"]::after {
	content: "" !important;
	position: absolute !important;
	left: 50% !important;
	top: 48% !important;
	width: 7px !important;
	height: 12px !important;
	border: solid var(--lp75-black) !important;
	border-width: 0 2px 2px 0 !important;
	opacity: 0 !important;
	transform: translate(-50%, -55%) rotate(45deg) scale(0.72) !important;
}

body .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked,
body .wc-block-components-checkbox input[type="checkbox"]:checked,
body .wc-block-components-checkbox__input[type="checkbox"]:checked {
	background: var(--lp75-gold) !important;
	border-color: var(--lp75-gold) !important;
	box-shadow: inset 0 0 0 2px #f7efe2, 0 10px 28px rgba(208, 174, 93, 0.24) !important;
}

body .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked::after,
body .wc-block-components-checkbox input[type="checkbox"]:checked::after,
body .wc-block-components-checkbox__input[type="checkbox"]:checked::after {
	opacity: 1 !important;
	transform: translate(-50%, -55%) rotate(45deg) scale(1) !important;
}

body .wc-block-components-checkbox__mark,
body .wc-block-components-checkbox svg {
	display: none !important;
}

body .wc-block-components-checkbox label,
body .wc-block-components-checkbox .wc-block-components-checkbox__label {
	align-items: center !important;
	color: rgba(21, 17, 12, 0.76) !important;
}

/* Checkout order summary thumbnails and quantity badges. */
body .wc-block-components-order-summary-item {
	display: grid !important;
	grid-template-columns: 72px minmax(0, 1fr) auto !important;
	gap: 16px !important;
	align-items: start !important;
}

body .wc-block-components-order-summary-item__image,
body .wc-block-components-product-image {
	position: relative !important;
	width: 72px !important;
	height: 96px !important;
	overflow: hidden !important;
	border-radius: 0 !important;
	background: #eadfce !important;
}

body .wc-block-components-order-summary-item__quantity,
body .wc-block-components-product-image__badge,
body .wc-block-components-product-badge {
	position: absolute !important;
	top: -10px !important;
	right: -10px !important;
	display: inline-grid !important;
	place-items: center !important;
	width: 25px !important;
	height: 25px !important;
	min-width: 25px !important;
	border: 1px solid var(--lp75-gold) !important;
	border-radius: 50% !important;
	background: #fffaf2 !important;
	color: var(--lp75-ink) !important;
	font: 800 12px/1 var(--lp-font-body, "Manrope", sans-serif) !important;
	box-shadow: 0 10px 26px rgba(0, 0, 0, 0.12) !important;
	z-index: 4 !important;
}

body .wc-block-components-order-summary-item__description {
	min-width: 0 !important;
}

body .wc-block-components-order-summary-item__description,
body .wc-block-components-order-summary-item__individual-prices,
body .wc-block-components-order-summary-item__total-price {
	color: var(--lp75-ink) !important;
}

body .wc-block-components-totals-wrapper,
body .wc-block-components-order-summary,
body .wc-block-components-sidebar-layout .wc-block-components-main {
	box-sizing: border-box !important;
}

/* Product gallery videos from the theme field or Video WC Gallery plugin. */
body.single-product .lp-product-gallery__slide--video video,
body.single-product .lp-v54-media-viewer__item video {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-height: 100% !important;
	object-fit: contain !important;
	background: #050403 !important;
}

body.single-product .lp-product-gallery__thumb--video {
	position: relative !important;
	display: inline-grid !important;
	place-items: center !important;
	overflow: hidden !important;
	background: #100d08 !important;
	color: var(--lp75-gold) !important;
}

body.single-product .lp-product-gallery__thumb--video img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

body.single-product .lp-product-gallery__thumb--video svg {
	width: 18px !important;
	height: 18px !important;
}

/* Selected For You: premium card treatment specifically on the product page. */
body.single-product .lp-v43-related {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: clamp(74px, 9vw, 132px) max(22px, calc((100vw - 1260px) / 2)) !important;
	background:
		radial-gradient(circle at 50% 0%, rgba(208, 174, 93, 0.13), transparent 34%),
		linear-gradient(180deg, #120e08 0%, #050403 72%) !important;
	color: #fffaf2 !important;
	overflow: hidden !important;
}

body.single-product .lp-v43-related .lp-v15-section-head {
	max-width: 860px !important;
	margin-inline: auto !important;
	color: #fffaf2 !important;
}

body.single-product .lp-v43-related .lp-v15-section-head h2 {
	color: #fffaf2 !important;
	font-size: clamp(42px, 5.5vw, 84px) !important;
	line-height: 0.98 !important;
	letter-spacing: -0.045em !important;
}

body.single-product .lp-v43-related .lp-v54-related__intro {
	max-width: 620px !important;
	margin: 22px auto 0 !important;
	color: rgba(255, 250, 242, 0.72) !important;
	font-size: 15px !important;
	line-height: 1.75 !important;
}

body.single-product .lp-v43-related .lp-product-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(280px, 360px)) !important;
	justify-content: center !important;
	gap: clamp(22px, 3vw, 34px) !important;
	width: 100% !important;
	max-width: 1180px !important;
	margin: clamp(44px, 6vw, 72px) auto 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body.single-product .lp-v43-related .lp-product-card {
	width: 100% !important;
	max-width: 360px !important;
	min-height: 0 !important;
	margin: 0 !important;
	border: 1px solid rgba(208, 174, 93, 0.34) !important;
	background: #fffaf2 !important;
	color: var(--lp75-ink) !important;
	box-shadow: 0 28px 80px rgba(0, 0, 0, 0.32) !important;
	overflow: hidden !important;
}

body.single-product .lp-v43-related .lp-product-card__media {
	min-height: 410px !important;
	height: 410px !important;
	background: #eadfce !important;
	overflow: hidden !important;
}

body.single-product .lp-v43-related .lp-product-card__image,
body.single-product .lp-v43-related .lp-product-card__image picture {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
}

body.single-product .lp-v43-related .lp-product-card__image img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center !important;
	background: #eadfce !important;
}

body.single-product .lp-v43-related .lp-product-card__content {
	min-height: 0 !important;
	padding: 24px 24px 28px !important;
	background: #fffaf2 !important;
	color: var(--lp75-ink) !important;
}

body.single-product .lp-v43-related .woocommerce-loop-product__title,
body.single-product .lp-v43-related .woocommerce-loop-product__title a {
	color: var(--lp75-ink) !important;
	font-size: clamp(28px, 3vw, 36px) !important;
	line-height: 1.02 !important;
	letter-spacing: -0.035em !important;
	overflow-wrap: anywhere !important;
}

body.single-product .lp-v43-related .lp-product-card__price,
body.single-product .lp-v43-related .price {
	color: var(--lp75-ink) !important;
}

body.single-product .lp-v43-related .lp-product-card__brand,
body.single-product .lp-v43-related .lp-product-card__stock {
	color: var(--lp75-gold-deep) !important;
}

body.single-product .lp-v43-related .lp-product-card__wishlist {
	display: inline-grid !important;
	place-items: center !important;
}

body.single-product .lp-v43-related .lp-product-card__wishlist svg,
body.single-product .lp-v43-related .js-wishlist-button svg {
	margin: 0 !important;
}

/* Classic cart page image treatment mirrors the drawer without changing the product cards elsewhere. */
body.woocommerce-cart .lp-v43-cart-item__image {
	overflow: hidden !important;
}

body.woocommerce-cart .lp-v43-cart-item__image img {
	padding: 0 !important;
}

@media (max-width: 780px) {
	body .lp-drawer.js-cart-drawer .lp-drawer__panel {
		width: 100vw !important;
		max-width: 100vw !important;
	}

	body .lp-drawer.js-cart-drawer .lp-mini-cart {
		padding: 22px 20px 0 !important;
	}

	body .lp-drawer.js-cart-drawer .lp-mini-cart__item {
		grid-template-columns: 96px minmax(0, 1fr) !important;
		gap: 14px !important;
		align-items: start !important;
		padding-bottom: 26px !important;
	}

	body .lp-drawer.js-cart-drawer .lp-mini-cart__image {
		width: 96px !important;
		height: 124px !important;
		min-width: 96px !important;
	}

	body .lp-drawer.js-cart-drawer .lp-mini-cart__title {
		font-size: clamp(22px, 6vw, 28px) !important;
		line-height: 1.08 !important;
	}

	body .lp-drawer.js-cart-drawer .lp-mini-cart__controls {
		grid-column: 2 !important;
		display: flex !important;
		flex-wrap: wrap !important;
		align-items: center !important;
		justify-content: flex-start !important;
		padding-top: 12px !important;
	}

	body .lp-drawer.js-cart-drawer .lp-mini-cart__remove {
		margin-left: 10px !important;
	}

	body .lp-drawer.js-cart-drawer .lp-mini-cart__footer {
		padding: 22px 20px max(32px, env(safe-area-inset-bottom)) !important;
	}

	body .lp-drawer.js-cart-drawer .lp-mini-cart__actions {
		grid-template-columns: 1fr !important;
	}

	body .lp-drawer.js-cart-drawer .lp-mini-cart__terms:not([hidden]) {
		padding: 20px 18px !important;
	}

	body .lp-drawer.js-cart-drawer .lp-mini-cart__terms h3 {
		font-size: clamp(34px, 11vw, 44px) !important;
		line-height: 0.98 !important;
	}

	body .lp-v62-purchase-terms__label {
		grid-template-columns: 32px minmax(0, 1fr) !important;
		gap: 13px !important;
	}

	body .lp-v62-purchase-terms__note,
	body .lp-v62-purchase-terms.has-error::after {
		margin-left: 45px !important;
	}

	body .wc-block-components-order-summary-item {
		grid-template-columns: 82px minmax(0, 1fr) !important;
		gap: 14px !important;
	}

	body .wc-block-components-order-summary-item__image,
	body .wc-block-components-product-image {
		width: 82px !important;
		height: 102px !important;
	}

	body .wc-block-components-order-summary-item__total-price {
		grid-column: 2 !important;
		justify-self: start !important;
		margin-top: 8px !important;
		font-weight: 800 !important;
	}

	body.single-product .lp-v43-related {
		padding: 68px 22px 84px !important;
	}

	body.single-product .lp-v43-related .lp-v15-section-head h2 {
		font-size: clamp(38px, 12vw, 54px) !important;
	}

	body.single-product .lp-v43-related .lp-product-grid {
		grid-template-columns: minmax(0, 1fr) !important;
		max-width: 360px !important;
	}

	body.single-product .lp-v43-related .lp-product-card {
		max-width: 100% !important;
	}

	body.single-product .lp-v43-related .lp-product-card__media {
		height: min(430px, 112vw) !important;
		min-height: 0 !important;
	}
}

@media (max-width: 420px) {
	body .lp-drawer.js-cart-drawer .lp-mini-cart__item {
		grid-template-columns: 92px minmax(0, 1fr) !important;
		gap: 12px !important;
	}

	body .lp-drawer.js-cart-drawer .lp-mini-cart__image {
		width: 92px !important;
		height: 118px !important;
		min-width: 92px !important;
	}

	body .lp-drawer.js-cart-drawer .lp-mini-cart__title {
		font-size: clamp(20px, 6.4vw, 25px) !important;
	}

	body .lp-drawer.js-cart-drawer .lp-mini-cart__subtotal {
		align-items: flex-start !important;
	}

	body .lp-drawer.js-cart-drawer .lp-mini-cart__actions .lp-button,
	body .lp-v62-checkout-button {
		min-height: 56px !important;
		letter-spacing: 0.16em !important;
	}
}
