/* SLB Basket. Matches the checkout (plugins/slb-checkout): 1064px container,
   Nunito, plum #543e78, white cards with a 1px #e4dbea border and 12px radius,
   10px-radius buttons. Loaded on basket and checkout only. */

/* ---------- free delivery bar (basket + checkout) ---------- */
.slb-fsl-top:empty { display: none; }
.slb-fsl-top { margin: 0 0 16px; }
.slb-fsl-top .fsl-wrapper { margin: 0; }
.slb-fsl-top .devnet_fsl-free-shipping {
	box-sizing: border-box;
	background: #fff;
	border: 1px solid #e4dbea;
	border-radius: 12px;
	box-shadow: 0 1px 3px rgba(84,62,120,.06);
	padding: 14px 22px 15px;
	margin: 0;
	text-align: center;
	color: #543e78;
	font-family: Nunito, sans-serif;
}
.slb-fsl-top .fsl-title,
.slb-fsl-top .fsl-description {
	display: block;
	margin: 0;
	font-size: 14px;
	line-height: 1.45;
	color: #543e78;
	font-family: Nunito, sans-serif;
	text-align: center;
}
.slb-fsl-top .fsl-title { font-weight: 700; margin-bottom: 9px; }
.slb-fsl-top .fsl-description { font-weight: 500; margin-top: 9px; }
.slb-fsl-top .fsl-title .amount,
.slb-fsl-top .fsl-description .amount { color: inherit; font-weight: 800; }
.slb-fsl-top .fsl-progress-bar {
	position: relative;
	display: block;
	height: 8px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 8px !important;
	background: #f1ecf5 !important;
	overflow: hidden;
	box-shadow: none !important;
}
.slb-fsl-top .fsl-progress-bar::before,
.slb-fsl-top .fsl-progress-bar::after,
.slb-fsl-top .fsl-progress-amount::before,
.slb-fsl-top .fsl-progress-amount::after { display: none !important; content: none !important; }
.slb-fsl-top .fsl-progress-amount {
	display: block;
	height: 8px !important;
	border-radius: 8px !important;
	background: #543e78 !important;
	background-image: none !important;
	box-shadow: none !important;
	animation: none !important;
}
/* The plugin's own placements are replaced by the one at the top. */
.woocommerce-cart .cart_totals .fsl-wrapper,
.woocommerce-cart .wc-proceed-to-checkout .fsl-wrapper,
.woocommerce-checkout #order_review .fsl-wrapper,
.woocommerce-checkout #payment .fsl-wrapper { display: none !important; }

/* ---------- basket ---------- */
body.woocommerce-cart { background: #fafafa; }

/* heading, same as checkout */
body.woocommerce-cart .entry-title,
body.woocommerce-cart h1.entry-title {
	font-size: 40px;
	font-weight: 700;
	color: #543e78;
	letter-spacing: -.2px;
	line-height: 1.15;
	margin-bottom: 6px;
	text-align: center;
}
body.woocommerce-cart .slb-script {
	font-family: Sacramento, cursive;
	font-weight: 400;
	font-size: 1.14em;
	color: #8e3969;
	line-height: .8;
	margin-left: 2px;
}
@media screen and (min-width: 768px) {
	body.woocommerce-cart article.page > header.entry-header,
	body.woocommerce-cart .hentry > header.entry-header { padding-bottom: 20px; }
	body.woocommerce-cart article.page { margin-bottom: 24px; }
}

/* the page body carries an empty heading and paragraph; collapse them */
body.woocommerce-cart .entry-content > h2:empty,
body.woocommerce-cart .entry-content > p:empty,
body.woocommerce-cart .entry-content > p:has(> span:only-child:empty) { display: none; }
body.woocommerce-cart .entry-content > .woocommerce ~ p { display: none; }

/* pills, same as checkout */
body.woocommerce-cart .slb-steps {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
	margin: 0 0 22px;
}
body.woocommerce-cart .slb-steps span,
body.woocommerce-cart .slb-steps a {
	background: #f1ecf5;
	color: #6d6c6c;
	border-radius: 20px;
	padding: 5px 13px;
	font-size: 11.5px;
	font-weight: 700;
	text-decoration: none;
	display: inline-block;
	line-height: 1.5;
}
body.woocommerce-cart .slb-steps .now { background: #543e78; color: #fff; }
@media screen and (min-width: 768px) {
	body.woocommerce-cart .slb-steps { margin-bottom: 16px; }
}

/* two columns: items left, totals right (same widths as checkout) */
body.woocommerce-cart .entry-content > .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 438px;
	column-gap: 24px;
	align-items: start;
}
body.woocommerce-cart .entry-content > .woocommerce > * { grid-column: 1 / -1; min-width: 0; }
body.woocommerce-cart .entry-content > .woocommerce > .woocommerce-cart-form { grid-column: 1; }
body.woocommerce-cart .entry-content > .woocommerce > .cart-collaterals { grid-column: 2; }
body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart-collaterals,
body.woocommerce-cart .cart-collaterals .cart_totals {
	float: none !important;
	width: auto !important;
	margin: 0;
}

/* notices */
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error {
	box-sizing: border-box;
	border-radius: 10px;
	margin: 0 0 16px;
}
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info {
	background: #f5f1f9;
	color: #543e78;
	border: 1px solid #e4dbea;
	padding: 14px 18px 14px 48px;
	font-size: 15px;
}
body.woocommerce-cart .woocommerce-message::before,
body.woocommerce-cart .woocommerce-info::before { color: #8e7ba3; top: 14px; }
body.woocommerce-cart .woocommerce-message a,
body.woocommerce-cart .woocommerce-info a { color: #543e78; font-weight: 800; }
body.woocommerce-cart .woocommerce-error { border-radius: 10px; }
body.woocommerce-cart .woocommerce-notices-wrapper:empty { display: none; }

/* cards */
body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart_totals {
	box-sizing: border-box;
	background: #fff;
	border: 1px solid #e4dbea;
	border-radius: 12px;
	box-shadow: 0 1px 3px rgba(84,62,120,.06);
}
body.woocommerce-cart .woocommerce-cart-form { padding: 6px 22px; }
body.woocommerce-cart .cart_totals { padding: 20px 22px; }

/* items: one grid per line, table furniture removed */
body.woocommerce-cart table.shop_table.cart,
body.woocommerce-cart table.shop_table.cart tbody {
	display: block;
	width: 100%;
	border: 0;
	margin: 0;
	background: none;
}
body.woocommerce-cart table.shop_table.cart thead { display: none; }
body.woocommerce-cart table.shop_table.cart td,
body.woocommerce-cart table.shop_table.cart th {
	display: block;
	border: 0;
	padding: 0;
	background: none;
	text-align: left;
	vertical-align: baseline;
}
body.woocommerce-cart table.shop_table.cart td::before { content: none !important; display: none !important; }
body.woocommerce-cart table.shop_table.cart tr.cart_item {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr) auto;
	column-gap: 18px;
	row-gap: 4px;
	align-items: start;
	padding: 18px 0;
	border-bottom: 1px solid #efe9f3;
}
body.woocommerce-cart table.shop_table.cart tr.cart_item:nth-last-child(2) { border-bottom: 0; }
body.woocommerce-cart td.product-thumbnail { grid-column: 1; grid-row: 1 / span 4; width: 96px !important; }
body.woocommerce-cart td.product-thumbnail a { display: block; }
body.woocommerce-cart td.product-thumbnail img {
	display: block;
	width: 96px !important;
	height: 96px !important;
	max-width: none;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 10px;
	border: 1px solid #efe9f3;
	background: #faf7fc;
	margin: 0;
}
body.woocommerce-cart td.product-name { grid-column: 2; grid-row: 1; font-size: 16px; font-weight: 700; line-height: 1.35; padding-top: 2px; }
body.woocommerce-cart td.product-name a { color: #543e78; text-decoration: none; font-weight: 700; }
body.woocommerce-cart td.product-name a:hover { text-decoration: underline; }
body.woocommerce-cart td.product-name dl.variation,
body.woocommerce-cart td.product-name .wc-item-meta { margin: 3px 0 0; font-size: 13px; font-weight: 400; color: #6d6c6c; line-height: 1.4; }
body.woocommerce-cart td.product-name dl.variation dt,
body.woocommerce-cart td.product-name dl.variation dd { display: inline; float: none; margin: 0; padding: 0; font-weight: 400; }
body.woocommerce-cart td.product-name dl.variation dd p { display: inline; margin: 0; }
body.woocommerce-cart td.product-name dl.variation dd::after { content: ""; display: block; }
body.woocommerce-cart td.product-price { grid-column: 2; grid-row: 2; font-size: 14px; color: #6d6c6c; }
body.woocommerce-cart tr.cart_item.is-single td.product-price { display: none; }
body.woocommerce-cart td.product-subtotal { grid-column: 3; grid-row: 1; text-align: right; font-size: 16px; font-weight: 800; color: #3d3d3d; padding-top: 2px; white-space: nowrap; }
body.woocommerce-cart td.product-quantity { grid-column: 2; grid-row: 3; padding-top: 6px; }
body.woocommerce-cart td.product-remove { grid-column: 3; grid-row: 3; align-self: end; text-align: right; padding-bottom: 6px; width: auto !important; }

/* remove, as a quiet text link */
body.woocommerce-cart td.product-remove a.remove {
	display: inline-block;
	width: auto !important;
	height: auto !important;
	border-radius: 0;
	background: none !important;
	color: #8e7ba3 !important;
	font-size: 0 !important;
	line-height: 1;
	overflow: visible !important;
	position: static !important;
	text-indent: 0;
	white-space: nowrap;
	text-align: right;
	text-decoration: underline;
	text-underline-offset: 2px;
	/* a finger sized hit area that does not move the layout */
	padding: 14px 0 14px 12px;
	margin: -14px 0 -14px -12px;
}
body.woocommerce-cart td.product-remove a.remove::after { content: "Remove"; position: static !important; display: inline !important; width: auto !important; height: auto !important; margin: 0 !important; font-size: 13px; font-weight: 600; font-family: Nunito, sans-serif; }
body.woocommerce-cart td.product-remove a.remove:hover { color: #543e78 !important; }

/* quantity stepper */
body.woocommerce-cart .quantity {
	display: inline-flex;
	align-items: stretch;
	box-sizing: border-box;
	border: 1px solid #e0d8e6;
	border-radius: 10px;
	background: #fff;
	overflow: hidden;
	height: 40px;
}
body.woocommerce-cart .quantity .qty,
body.woocommerce-cart .woocommerce-cart-form .quantity input.qty {
	box-sizing: border-box;
	width: 46px;
	height: 38px;
	padding: 0;
	margin: 0;
	border: 0;
	border-radius: 0;
	background: #fff;
	box-shadow: none;
	text-align: center;
	font-size: 15px;
	font-weight: 700;
	color: #3d3d3d;
	-moz-appearance: textfield;
	appearance: textfield;
}
body.woocommerce-cart .quantity .qty::-webkit-outer-spin-button,
body.woocommerce-cart .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
body.woocommerce-cart .quantity .slb-qty-btn {
	box-sizing: border-box;
	width: 40px;
	height: 38px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: #fff;
	color: #543e78;
	font-size: 20px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	box-shadow: none;
	-webkit-tap-highlight-color: transparent;
}
body.woocommerce-cart .quantity .slb-qty-btn:hover,
body.woocommerce-cart .quantity .slb-qty-btn:focus-visible { background: #faf7fc; }
body.woocommerce-cart .quantity .slb-qty-btn[disabled] { color: #c9bfd6; cursor: default; background: #fff; }
body.woocommerce-cart .woocommerce-cart-form.is-updating { opacity: .55; pointer-events: none; transition: opacity .15s; }

/* actions row: coupon is gone; update button hidden once auto update is on */
body.woocommerce-cart td.actions { padding: 14px 0 12px; text-align: right; }
body.woocommerce-cart tr:has(> td.actions) { display: block; }
body.woocommerce-cart.slb-bk-js table.shop_table.cart tr:has(> td.actions) { display: none; }
body.woocommerce-cart td.actions .button {
	border-radius: 10px;
	background: #fff;
	color: #543e78;
	border: 1px solid #543e78;
	font-size: 14px;
	font-weight: 700;
	padding: 10px 18px;
}
body.woocommerce-cart td.actions .button[disabled] { opacity: .45; }

/* totals card */
body.woocommerce-cart .cart_totals > h2 {
	font-size: 12.5px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #543e78;
	font-weight: 800;
	margin: 0 0 12px;
	padding: 0 0 10px;
	border-bottom: 1px solid #ece5f0;
}
body.woocommerce-cart .cart_totals table.shop_table { display: table; width: 100%; border: 0; margin: 0 0 16px; background: none; border-collapse: collapse; }
body.woocommerce-cart .cart_totals table.shop_table tr.shipping { display: none; }
body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-cart .cart_totals table.shop_table td {
	display: table-cell;
	border: 0;
	background: none;
	padding: 8px 0;
	font-size: 15px;
	vertical-align: baseline;
}
body.woocommerce-cart .cart_totals table.shop_table th { text-align: left; font-weight: 600; color: #3d3d3d; width: auto; }
body.woocommerce-cart .cart_totals table.shop_table td { text-align: right; }
body.woocommerce-cart .cart_totals table.shop_table td::before { content: none !important; display: none !important; }
body.woocommerce-cart .cart_totals table.shop_table tr.order-total th,
body.woocommerce-cart .cart_totals table.shop_table tr.order-total td { font-size: 21px; font-weight: 800; border-top: 1px solid #ece5f0; padding-top: 14px; }
body.woocommerce-cart .cart_totals table.shop_table tr.order-total th { color: #543e78; }
body.woocommerce-cart .cart_totals table.shop_table tr.slb-cart-delivery-note td {
	text-align: left;
	font-size: 13px;
	color: #6d6c6c;
	line-height: 1.5;
	padding: 4px 0 0;
}
body.woocommerce-cart .cart_totals table.shop_table tr.cart-discount td { color: #8e3969; }

/* checkout button, same as Place order */
body.woocommerce-cart .wc-proceed-to-checkout { padding: 0; margin: 0; }
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
	display: block;
	box-sizing: border-box;
	width: 100%;
	min-height: 53px;
	margin: 0;
	padding: 13px 18px !important;
	border: 0;
	border-radius: 10px;
	background: #543e78;
	color: #fff;
	text-align: center;
	font-size: 16.5px !important;
	font-weight: 800;
	line-height: 1.5;
	box-shadow: none;
	text-decoration: none;
}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button::after { display: none !important; content: none !important; }
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover { background: #473364; color: #fff; }
body.woocommerce-cart .slb-trust {
	text-align: center;
	font-size: 13.5px;
	color: #6d6c6c;
	margin: 12px 0 0;
	line-height: 1.5;
}

/* phone bar: hidden by default */
.slb-sticky { display: none; }

/* empty basket: one card */
body.woocommerce-cart .entry-content > .woocommerce:has(.cart-empty) {
	display: block;
	box-sizing: border-box;
	max-width: 520px;
	margin: 8px auto 0;
	padding: 30px 22px 32px;
	text-align: center;
	background: #fff;
	border: 1px solid #e4dbea;
	border-radius: 12px;
	box-shadow: 0 1px 3px rgba(84,62,120,.06);
}
body.woocommerce-cart .wc-empty-cart-message { margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
body.woocommerce-cart .cart-empty {
	margin: 0 0 22px;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	color: #3d3d3d;
	font-size: 17px;
}
body.woocommerce-cart .cart-empty::before,
body.woocommerce-cart .cart-empty::after { display: none !important; content: none !important; }
body.woocommerce-cart .return-to-shop { margin: 0; padding: 0; text-align: center; }
body.woocommerce-cart .return-to-shop .button {
	display: inline-block;
	box-sizing: border-box;
	min-height: 53px;
	padding: 13px 28px !important;
	border-radius: 10px;
	background: #543e78;
	color: #fff;
	font-size: 16.5px !important;
	font-weight: 800;
	line-height: 1.5;
}

/* ---------- phone ---------- */
@media (max-width: 768px) {
	body.woocommerce-cart .entry-title,
	body.woocommerce-cart h1.entry-title { font-size: 28px; text-align: left; }

	body.woocommerce-cart .entry-content > .woocommerce { display: block; }
	body.woocommerce-cart .entry-content > .woocommerce:has(.cart-empty) { padding: 24px 18px 26px; }
	body.woocommerce-cart .woocommerce-cart-form { padding: 2px 16px; margin-bottom: 16px; }
	body.woocommerce-cart .cart_totals { padding: 18px; }

	body.woocommerce-cart table.shop_table.cart tr.cart_item {
		grid-template-columns: 72px minmax(0, 1fr) auto;
		column-gap: 14px;
		padding: 16px 0;
	}
	body.woocommerce-cart td.product-thumbnail { width: 72px !important; }
	body.woocommerce-cart td.product-thumbnail img { width: 72px !important; height: 72px !important; }
	body.woocommerce-cart td.product-name { font-size: 15px; }
	body.woocommerce-cart td.product-subtotal { font-size: 15px; }
	body.woocommerce-cart .quantity { height: 44px; }
	body.woocommerce-cart .quantity .slb-qty-btn { width: 44px; height: 42px; }
	body.woocommerce-cart .quantity .qty,
	body.woocommerce-cart .woocommerce-cart-form .quantity input.qty { height: 42px; font-size: 16px; }

	.slb-fsl-top .devnet_fsl-free-shipping { padding: 14px 18px 15px; }

	/* the totals card's own button stays; the bar below follows the thumb */
	body.woocommerce-cart { padding-bottom: calc(92px + env(safe-area-inset-bottom, 0px)); }
	body.woocommerce-cart .storefront-handheld-footer-bar,
	body.woocommerce-cart .woocommerce-store-notice { display: none !important; }
	body.woocommerce-cart .slb-sticky {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 14px;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 99990;
		box-sizing: border-box;
		background: #fff;
		border-top: 1px solid #e4dbea;
		box-shadow: 0 -4px 18px rgba(84,62,120,.10);
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
	}
	body.woocommerce-cart .slb-sticky-total { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
	body.woocommerce-cart .slb-sticky-total span { font-size: 12px; color: #6d6c6c; font-weight: 600; }
	body.woocommerce-cart .slb-sticky-total strong { font-size: 20px; font-weight: 800; color: #543e78; }
	body.woocommerce-cart .slb-sticky-btn {
		flex: 1 1 auto;
		max-width: 220px;
		box-sizing: border-box;
		min-height: 53px;
		padding: 13px 18px;
		border-radius: 10px;
		background: #543e78;
		color: #fff;
		text-align: center;
		font-size: 16.5px;
		font-weight: 800;
		line-height: 1.5;
		text-decoration: none;
	}
}

/* right-aligned cells (needs the same specificity as the reset above) */
body.woocommerce-cart table.shop_table.cart td.product-subtotal,
body.woocommerce-cart table.shop_table.cart td.product-remove { text-align: right; }
body.woocommerce-cart table.shop_table.cart td::after { display: none; }

/* Belt and braces: no Stripe express checkout (Google Pay / Apple Pay / Link) on the basket page. */
body.woocommerce-cart #wc-stripe-express-checkout-element,
body.woocommerce-cart #wc-stripe-express-checkout-button-separator,
body.woocommerce-cart .wc-stripe-express-checkout-button-separator { display: none !important; }

/* reached state: message only, no bar */
.slb-fsl-top .fsl-title:only-child, .slb-fsl-top .qualified_message .fsl-title { margin: 0; font-size: 15px; font-weight: 700; }
