/**
 * BBF Mobile UI – Cart v1.1.0
 */

body.bbf-mobile-ui-cart {
	--bbf-cart-bg: #f7f7f7;
	--bbf-cart-surface: #ffffff;
	--bbf-cart-border: #e4e4e4;
	--bbf-cart-text: #171717;
	--bbf-cart-muted: #777777;
	--bbf-cart-accent: #9290d0;
	--bbf-cart-accent-dark: #7471c1;
	--bbf-cart-soft: #f5f4fc;
	--bbf-cart-radius: 18px;
}

/* Remove Minimog's cart page framing; our module owns the content area. */
.bbf-mobile-ui-cart .page-title-bar,
.bbf-mobile-ui-cart .page-title-bar-minimal-01 {
	display: none !important;
}

.bbf-mobile-ui-cart .woocommerce {
	width: 100%;
	max-width: none;
	margin: 0;
}

.bbf-cart-screen {
	width: min(calc(100% - 48px), 1440px);
	margin: 42px auto 80px;
}

.bbf-cart-header {
	margin-bottom: 26px;
}

.bbf-cart-header__eyebrow,
.bbf-cart-summary__eyebrow,
.bbf-cart-rewards__kicker {
	display: block;
	margin-bottom: 5px;
	color: var(--bbf-cart-accent-dark);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.bbf-cart-header__main {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
}

.bbf-cart-header h1 {
	margin: 0;
	color: var(--bbf-cart-text);
	font-size: clamp(32px, 4vw, 48px);
	line-height: 1.08;
}

.bbf-cart-header__count {
	padding: 7px 11px;
	border-radius: 999px;
	background: var(--bbf-cart-soft);
	color: var(--bbf-cart-accent-dark);
	font-size: 12px;
	font-weight: 700;
}

.bbf-cart-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 22px;
	align-items: start;
}

.bbf-mobile-ui-cart-columns .bbf-cart-layout {
	grid-template-columns: minmax(0, 1fr) minmax(340px, 410px);
}

.bbf-cart-main,
.bbf-cart-sidebar {
	min-width: 0;
}

/* Product list */
.bbf-cart-items {
	display: grid;
	gap: 12px;
}

.bbf-cart-item {
	display: grid;
	grid-template-columns: 132px minmax(0, 1fr);
	gap: 20px;
	padding: 20px;
	border: 1px solid var(--bbf-cart-border);
	border-radius: var(--bbf-cart-radius);
	background: var(--bbf-cart-surface);
	box-shadow: 0 8px 28px rgba(20, 20, 20, .035);
}

.bbf-cart-item__media {
	display: grid;
	width: 132px;
	height: 148px;
	place-items: center;
	overflow: hidden;
	border-radius: 14px;
	background: #f7f7f7;
}

.bbf-cart-item__media a {
	display: block;
	width: 100%;
	height: 100%;
}

.bbf-cart-item__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.bbf-cart-item__content {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.bbf-cart-item__heading {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
}

.bbf-cart-item__title {
	color: var(--bbf-cart-text);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.45;
	text-decoration: none;
}

.bbf-cart-item__title:hover {
	color: var(--bbf-cart-accent-dark);
}

.bbf-cart-item__meta {
	margin-top: 7px;
	color: var(--bbf-cart-muted);
	font-size: 12px;
	line-height: 1.5;
}

.bbf-cart-item__meta dl,
.bbf-cart-item__meta p {
	margin: 0;
}

.bbf-cart-item__backorder {
	margin: 7px 0 0;
	color: #9b2c24;
	font-size: 12px;
	font-weight: 700;
}

.bbf-cart-item__remove {
	display: grid !important;
	flex: 0 0 34px;
	width: 34px !important;
	height: 34px !important;
	place-items: center;
	border: 1px solid var(--bbf-cart-border) !important;
	border-radius: 50% !important;
	background: #fff !important;
	color: #777 !important;
	font-size: 23px !important;
	line-height: 1 !important;
	text-decoration: none;
}

.bbf-cart-item__remove:hover {
	border-color: #d8b4b0 !important;
	color: #9b2c24 !important;
}

.bbf-cart-item__purchase {
	display: grid;
	grid-template-columns: minmax(110px, 1fr) minmax(130px, auto) minmax(120px, 1fr);
	align-items: end;
	gap: 18px;
	margin-top: auto;
	padding-top: 20px;
}

.bbf-cart-item__price,
.bbf-cart-item__quantity,
.bbf-cart-item__subtotal {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.bbf-cart-item__price > span,
.bbf-cart-item__quantity > span,
.bbf-cart-item__subtotal > span {
	color: var(--bbf-cart-muted);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.bbf-cart-item__price strong,
.bbf-cart-item__subtotal strong {
	color: var(--bbf-cart-text);
	font-size: 15px;
}

.bbf-cart-item__subtotal {
	align-items: flex-end;
	text-align: right;
}

.bbf-cart-item__subtotal strong {
	color: var(--bbf-cart-accent-dark);
	font-size: 18px;
}

.bbf-cart-item .quantity {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	min-height: 42px;
	border: 1px solid var(--bbf-cart-border);
	border-radius: 10px;
	background: #fff;
}

/* Keep WooCommerce notices visible and distinct above the redesigned cart. */
.bbf-mobile-ui-cart .woocommerce-notices-wrapper {
	width: min(calc(100% - 48px), 1440px);
	margin: 24px auto 0;
}

.bbf-mobile-ui-cart .woocommerce-notices-wrapper:empty {
	display: none;
}

.bbf-mobile-ui-cart .woocommerce-message,
.bbf-mobile-ui-cart .woocommerce-info,
.bbf-mobile-ui-cart .woocommerce-error {
	margin: 0 0 12px !important;
	padding: 16px 18px 16px 48px !important;
	border: 1px solid #deddf0 !important;
	border-left: 4px solid var(--bbf-cart-accent-dark) !important;
	border-radius: 0 !important;
	background: #f8f7fd !important;
	color: #353452 !important;
	box-shadow: 0 6px 20px rgba(20, 20, 20, .04);
}

.bbf-mobile-ui-cart .woocommerce-error {
	border-color: #ead5d2 !important;
	border-left-color: #a94442 !important;
	background: #fff8f7 !important;
	color: #6f302c !important;
}

.bbf-cart-item .quantity input.qty {
	width: 52px;
	min-height: 40px;
	padding: 0 5px;
	border: 0;
	background: transparent;
	text-align: center;
}

.bbf-cart-item .quantity .increase,
.bbf-cart-item .quantity .decrease,
.bbf-cart-item .quantity button {
	min-width: 36px;
	min-height: 40px;
}

/* Rewards */
.bbf-cart-rewards {
	display: grid;
	grid-template-columns: 62px minmax(0, 1fr) auto;
	align-items: center;
	gap: 16px;
	margin-top: 14px;
	padding: 18px;
	border: 1px solid #d9d7f1;
	border-radius: 15px;
	background: var(--bbf-cart-soft);
	color: var(--bbf-cart-text);
	text-decoration: none;
}

.bbf-cart-rewards:hover {
	border-color: var(--bbf-cart-accent);
	color: var(--bbf-cart-text);
}

.bbf-cart-rewards__badge {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 62px;
	height: 62px;
	border-radius: 17px;
	background: var(--bbf-cart-accent);
	color: #fff;
}

.bbf-cart-rewards__badge strong {
	font-size: 21px;
	line-height: 1;
}

.bbf-cart-rewards__badge span {
	margin-top: 3px;
	font-size: 9px;
	font-weight: 700;
	text-transform: uppercase;
}

.bbf-cart-rewards__content > strong {
	display: block;
	font-size: 14px;
}

.bbf-cart-rewards__content p {
	margin: 4px 0 0;
	color: var(--bbf-cart-muted);
	font-size: 12px;
	line-height: 1.5;
}

.bbf-cart-rewards__arrow {
	color: var(--bbf-cart-accent-dark);
	font-size: 28px;
}

/* Summary */
.bbf-cart-sidebar {
	position: relative;
}

.bbf-cart-summary {
	position: sticky;
	top: 24px;
	padding: 26px;
	border: 1px solid var(--bbf-cart-border);
	border-radius: var(--bbf-cart-radius);
	background: #fff;
	box-shadow: 0 16px 44px rgba(25, 25, 45, .07);
}

.bbf-cart-summary__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--bbf-cart-border);
}

.bbf-cart-summary__header h2 {
	margin: 0;
	font-size: 22px;
	line-height: 1.3;
}

.bbf-cart-summary__count {
	display: grid;
	width: 36px;
	height: 36px;
	place-items: center;
	border-radius: 11px;
	background: var(--bbf-cart-soft);
	color: var(--bbf-cart-accent-dark);
	font-size: 12px;
	font-weight: 800;
}

.bbf-cart-summary__rows {
	margin-top: 18px;
	padding: 6px 16px;
	border: 1px solid #ecebf5;
	border-radius: 12px;
	background: #fafafd;
}

.bbf-cart-summary__row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
	padding: 13px 0;
	color: var(--bbf-cart-muted);
	font-size: 13px;
}

.bbf-cart-summary__row + .bbf-cart-summary__row {
	border-top: 1px solid #f0f0f0;
}

.bbf-cart-summary__row strong {
	color: var(--bbf-cart-text);
	text-align: right;
}

.bbf-cart-summary__row--discount strong {
	color: #17663a;
}

.bbf-cart-summary__row--discount {
	color: #17663a;
}

.bbf-cart-summary__row--total {
	margin: 6px -16px -6px;
	padding: 17px 16px;
	border-top: 1px solid var(--bbf-cart-border) !important;
	border-radius: 0 0 11px 11px;
	background: #f3f2fb;
	color: var(--bbf-cart-text);
	font-size: 18px;
	font-weight: 800;
}

.bbf-cart-summary__row--total strong {
	color: var(--bbf-cart-accent-dark);
	font-size: 22px;
}

.bbf-cart-summary__row--shipping {
	display: grid;
	grid-template-columns: 88px minmax(0, 1fr);
	align-items: start;
}

.bbf-cart-summary__shipping-choice {
	min-width: 0;
}

.bbf-cart-summary__shipping-choice strong {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: start;
	gap: 5px 12px;
	width: 100%;
}

.bbf-cart-summary__shipping-name {
	color: var(--bbf-cart-accent-dark);
	font-weight: 500;
	line-height: 1.4;
	text-align: left;
}

.bbf-cart-summary__shipping-cost {
	color: var(--bbf-cart-text);
	font-weight: 700;
	white-space: nowrap;
}

.bbf-cart-summary__shipping {
	padding: 5px 0;
	border-top: 1px solid #f0f0f0;
}

.bbf-cart-summary__shipping-table,
.bbf-cart-summary__shipping-table tbody,
.bbf-cart-summary__shipping-table tr,
.bbf-cart-summary__shipping-table th,
.bbf-cart-summary__shipping-table td {
	width: 100%;
	border: 0 !important;
	background: transparent !important;
}


.bbf-cart-summary__shipping-table {
	margin: 0 !important;
}

.bbf-cart-summary__shipping-table tr {
	display: grid;
	grid-template-columns: 90px minmax(0, 1fr);
	gap: 14px;
	padding: 8px 0;
}

.bbf-cart-summary__shipping-table th,
.bbf-cart-summary__shipping-table td {
	padding: 0 !important;
	font-size: 12px;
	text-align: left !important;
}

.bbf-cart-summary__shipping-table th {
	color: var(--bbf-cart-muted);
	font-weight: 400;
}

.bbf-cart-summary__shipping-table td {
	color: var(--bbf-cart-text);
}

.bbf-cart-summary__shipping-table ul#shipping_method {
	margin: 0;
	padding: 0;
	list-style: none;
}

.bbf-cart-summary__shipping-table ul#shipping_method li {
	margin: 0 0 6px;
}

.bbf-cart-summary__shipping-table .woocommerce-shipping-destination,
.bbf-cart-summary__shipping-table .woocommerce-shipping-calculator {
	margin: 6px 0 0;
	font-size: 11px;
}

.bbf-cart-summary__compat {
	padding: 8px 0;
	font-size: 12px;
}

/* Coupon accordion */
.bbf-cart-coupon {
	margin-top: 16px;
	border: 1px solid #ecebf5;
	border-radius: 10px;
	background: #fff;
}

.bbf-cart-coupon summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 13px 14px;
	list-style: none;
	cursor: pointer;
}

.bbf-cart-coupon summary::-webkit-details-marker {
	display: none;
}

.bbf-cart-coupon summary > span:first-child {
	display: flex;
	flex-direction: column;
}

.bbf-cart-coupon summary strong {
	font-size: 13px;
}

.bbf-cart-coupon summary small {
	margin-top: 2px;
	color: var(--bbf-cart-muted);
	font-size: 11px;
}

.bbf-cart-coupon__form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px;
	padding: 0 14px 14px;
}

/* Visible WooCommerce feedback without moving the customer's scroll position. */
.bbf-cart-notice-toast {
	position: fixed;
	z-index: 100050;
	top: 22px;
	left: 50%;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 34px;
	width: min(520px, calc(100vw - 32px));
	overflow: hidden;
	border: 1px solid #deddf0;
	border-left: 4px solid var(--bbf-cart-accent-dark);
	background: #fff;
	box-shadow: 0 18px 55px rgba(22, 22, 42, .18);
	opacity: 0;
	transform: translate(-50%, -14px);
	transition: opacity .2s ease, transform .2s ease;
}

.bbf-cart-notice-toast.is-visible {
	opacity: 1;
	transform: translate(-50%, 0);
}

.bbf-mobile-ui-cart .woocommerce-notices-wrapper.bbf-notices-mirrored {
	display: none !important;
}

.bbf-cart-notice-toast__content .woocommerce-message,
.bbf-cart-notice-toast__content .woocommerce-info,
.bbf-cart-notice-toast__content .woocommerce-error {
	margin: 0 !important;
	padding: 16px 10px 16px 44px !important;
	border: 0 !important;
	background: #fff !important;
	box-shadow: none !important;
}

.bbf-cart-notice-toast__content .woocommerce-error {
	color: #6f302c !important;
}

.bbf-cart-notice-toast__close {
	align-self: start;
	width: 34px;
	height: 34px;
	margin: 9px 8px 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #777;
	font-size: 25px;
	font-weight: 300;
	line-height: 1;
	cursor: pointer;
}

.bbf-cart-coupon__form input {
	min-width: 0;
	min-height: 44px;
	padding: 9px 12px;
	border: 1px solid var(--bbf-cart-border);
	border-radius: 2px;
	background: #fff;
}

.bbf-cart-coupon__form button {
	min-height: 44px;
	padding: 9px 14px;
	border: 0;
	border-radius: 2px;
	background: var(--bbf-cart-accent);
	color: #fff;
	font-weight: 700;
}

/* Checkout */
.bbf-cart-summary__checkout {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	min-height: 52px;
	margin-top: 18px;
	padding: 12px 16px;
	border-radius: 2px;
	background: var(--bbf-cart-accent);
	color: #fff;
	font-size: 14px;
	font-weight: 800;
	text-decoration: none;
}

.bbf-cart-summary__checkout:hover {
	background: var(--bbf-cart-accent-dark);
	color: #fff;
}

.bbf-cart-express {
	margin-top: 16px;
}

.bbf-cart-express__divider {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 12px;
	color: var(--bbf-cart-muted);
	font-size: 10px;
	text-align: center;
}

.bbf-cart-express__divider::before,
.bbf-cart-express__divider::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--bbf-cart-border);
}

.bbf-cart-express__buttons {
	display: grid;
	gap: 9px;
}

.bbf-cart-express__buttons > * {
	max-width: 100%;
}

/* Mobile sticky */
.bbf-cart-sticky {
	display: none;
}

@media (max-width: 900px) {
	.bbf-cart-screen {
		width: min(calc(100% - 32px), 900px);
		margin-top: 28px;
	}

	.bbf-mobile-ui-cart-columns .bbf-cart-layout {
		grid-template-columns: 1fr;
	}

	.bbf-cart-summary {
		position: static;
	}
}

@media (max-width: 767px) {
	body.bbf-mobile-ui-cart-sticky {
		padding-bottom: 150px;
	}

	.bbf-cart-screen {
		width: 100%;
		margin: 0 0 40px;
	}

	.bbf-cart-header {
		padding: 20px 16px 18px;
		margin: 0;
		background: #fff;
		border-bottom: 1px solid var(--bbf-cart-border);
	}

	.bbf-cart-header h1 {
		font-size: 30px;
	}

	.bbf-cart-layout {
		gap: 12px;
	}

	.bbf-cart-items {
		gap: 0;
	}

	.bbf-cart-item {
		grid-template-columns: 96px minmax(0, 1fr);
		gap: 14px;
		padding: 18px 16px;
		border-right: 0;
		border-left: 0;
		border-radius: 0;
		box-shadow: none;
	}

	.bbf-cart-item + .bbf-cart-item {
		border-top: 0;
	}

	.bbf-cart-item__media {
		width: 96px;
		height: 116px;
		border-radius: 11px;
	}

	.bbf-cart-item__heading {
		gap: 10px;
	}

	.bbf-cart-item__title {
		font-size: 14px;
	}

	.bbf-cart-item__remove {
		flex-basis: 30px;
		width: 30px !important;
		height: 30px !important;
		font-size: 20px !important;
	}

	.bbf-cart-item__purchase {
		grid-template-columns: auto 1fr;
		grid-template-areas:
			"price subtotal"
			"quantity quantity";
		gap: 12px;
		padding-top: 14px;
	}

	.bbf-cart-item__price {
		grid-area: price;
	}

	.bbf-cart-item__quantity {
		grid-area: quantity;
	}

	.bbf-cart-item__subtotal {
		grid-area: subtotal;
		align-items: flex-end;
	}

	.bbf-cart-item__subtotal strong {
		font-size: 16px;
	}

	.bbf-cart-rewards {
		grid-template-columns: 54px minmax(0, 1fr) auto;
		gap: 12px;
		margin: 15px 0 0 0;
		padding: 15px;
	}

	.bbf-cart-rewards__badge {
		width: 54px;
		height: 54px;
	}

	.bbf-cart-sidebar {
		margin-top: 0;
	}

	.bbf-cart-summary {
		padding: 20px 16px;
		border-right: 0;
		border-left: 0;
		border-radius: 0;
		box-shadow: none;
	}

	.bbf-cart-summary__rows {
		margin-top: 14px;
	}

	.bbf-cart-notice-toast {
		top: max(12px, env(safe-area-inset-top));
		width: calc(100vw - 24px);
	}

	.bbf-cart-summary__checkout {
		min-height: 50px;
	}

	.bbf-mobile-ui-cart-sticky .bbf-cart-summary__checkout {
		display: none;
	}

	.bbf-cart-sticky {
		position: fixed;
		z-index: 9992;
		right: 0;
		bottom: var(--bbf-mobile-ui-bottom-offset, 0px);
		left: 0;
		display: block;
		padding: 11px 16px calc(12px + env(safe-area-inset-bottom));
		border-top: 1px solid #d8d8d8;
		background: rgba(255,255,255,.97);
		box-shadow: 0 -8px 24px rgba(0,0,0,.07);
		backdrop-filter: blur(10px);
	}

	.bbf-cart-sticky__line {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 16px;
		color: var(--bbf-cart-muted);
		font-size: 11px;
	}

	.bbf-cart-sticky__line + .bbf-cart-sticky__line {
		margin-top: 3px;
	}

	.bbf-cart-sticky__line strong {
		color: var(--bbf-cart-text);
		font-size: 12px;
	}

	.bbf-cart-sticky__line--total span,
	.bbf-cart-sticky__line--total strong {
		color: var(--bbf-cart-text);
		font-size: 17px;
		font-weight: 800;
	}

	.bbf-cart-sticky > a {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 50px;
		margin-top: 9px;
		border-radius: 10px;
		background: var(--bbf-cart-accent);
		color: #fff;
		font-size: 14px;
		font-weight: 800;
		text-decoration: none;
	}

	.bbf-cart-express {
		padding-bottom: 4px;
	}
}

/* =========================================================

@media (max-width: 440px) {
	.bbf-cart-item {
		grid-template-columns: 82px minmax(0, 1fr);
	}

	.bbf-cart-item__media {
		width: 82px;
		height: 100px;
	}

	.bbf-cart-rewards__content p {
		display: none;
	}
}

/* =========================================================
 * v1.1.1 – layout corrections
 * ========================================================= */

/* Give the desktop summary enough room for shipping/payment information. */
@media (min-width: 1101px) {
	.bbf-mobile-ui-cart-columns .bbf-cart-layout {
		grid-template-columns: minmax(0, 1.6fr) minmax(420px, .85fr);
	}
}

/*
 * Stack earlier. Between tablet and smaller desktop widths a full-width
 * summary is considerably cleaner than squeezing the sidebar.
 */
@media (max-width: 1100px) {
	.bbf-mobile-ui-cart-columns .bbf-cart-layout {
		grid-template-columns: 1fr;
	}

	.bbf-mobile-ui-cart .bbf-cart-summary {
		position: static;
		width: 100%;
	}
}

/*
 * Minimog's quantity control uses positioned +/- controls. Reset the theme
 * positioning inside our cart card so minus, value and plus form one row.
 */
.bbf-mobile-ui-cart .bbf-cart-item .quantity {
	position: relative !important;
	display: grid !important;
	grid-template-columns: 38px 52px 38px;
	align-items: center;
	width: 128px !important;
	min-width: 128px;
	height: 42px;
	min-height: 42px;
	overflow: hidden;
}

.bbf-mobile-ui-cart .bbf-cart-item .quantity .decrease,
.bbf-mobile-ui-cart .bbf-cart-item .quantity .increase,
.bbf-mobile-ui-cart .bbf-cart-item .quantity .minus,
.bbf-mobile-ui-cart .bbf-cart-item .quantity .plus,
.bbf-mobile-ui-cart .bbf-cart-item .quantity button {
	position: static !important;
	inset: auto !important;
	transform: none !important;
	display: grid !important;
	width: 38px !important;
	min-width: 38px !important;
	height: 40px !important;
	min-height: 40px !important;
	margin: 0 !important;
	padding: 0 !important;
	place-items: center;
	border: 0 !important;
	background: transparent !important;
	line-height: 1 !important;
}

/*
 * Minimog positions the +/- glyph itself with left: 50%. The button already
 * occupies its own fixed grid column here, so that second centering offset
 * shifts the glyph away from the control. Keep the theme glyph and events,
 * but cancel only the conflicting horizontal position.
 */
.bbf-mobile-ui-cart .bbf-cart-item .quantity button::before {
	left: auto !important;
}

.bbf-mobile-ui-cart .bbf-cart-item .quantity .decrease,
.bbf-mobile-ui-cart .bbf-cart-item .quantity .minus {
	grid-column: 1 !important;
	grid-row: 1 !important;
}

.bbf-mobile-ui-cart .bbf-cart-item .quantity .increase,
.bbf-mobile-ui-cart .bbf-cart-item .quantity .plus {
	grid-column: 3 !important;
	grid-row: 1 !important;
}

.bbf-mobile-ui-cart .bbf-cart-item .quantity input.qty {
	position: static !important;
	grid-column: 2;
	width: 52px !important;
	min-width: 52px !important;
	height: 40px !important;
	min-height: 40px !important;
	margin: 0 !important;
	padding: 0 4px !important;
	border: 0 !important;
	background: transparent !important;
	text-align: center !important;
	line-height: 40px !important;
	appearance: textfield;
}

.bbf-mobile-ui-cart .bbf-cart-item .quantity input.qty::-webkit-outer-spin-button,
.bbf-mobile-ui-cart .bbf-cart-item .quantity input.qty::-webkit-inner-spin-button {
	margin: 0;
	appearance: none;
}

/*
 * The payment integrations/theme already render their own separator.
 * BBF Mobile UI therefore adds no second "or" line.
 */
.bbf-mobile-ui-cart .bbf-cart-express__divider {
	display: none !important;
}

.bbf-mobile-ui-cart .bbf-cart-express {
	margin-top: 14px;
}
/* v1.1.2 – cart summary is now completely independent from Minimog's
 * .cart-collaterals flex container.
 */
.bbf-mobile-ui-cart .bbf-cart-sidebar {
	display: block;
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
}

.bbf-mobile-ui-cart .bbf-cart-sidebar .bbf-cart-summary {
	width: 100%;
	max-width: none;
	box-sizing: border-box;
}
/* v1.1.3 – quantity value centering */
.bbf-mobile-ui-cart .bbf-cart-item .quantity input.qty {
	box-sizing: border-box !important;
	width: 52px !important;
	min-width: 52px !important;
	max-width: 52px !important;
	height: 40px !important;
	min-height: 40px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--bbf-cart-text) !important;
	text-align: center !important;
	text-indent: 0 !important;
	line-height: 40px !important;
	transform: none !important;
}

.bbf-mobile-ui-cart .bbf-cart-item .quantity input.qty[type="number"] {
	-moz-appearance: textfield;
}

.bbf-mobile-ui-cart .bbf-cart-item .quantity input.qty::-webkit-outer-spin-button,
.bbf-mobile-ui-cart .bbf-cart-item .quantity input.qty::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}


/* =========================================================
 * v1.1.5 – mobile polish / shipping & tax cleanup
 * ========================================================= */

.bbf-mobile-ui-cart .bbf-cart-summary__row--shipping {
	align-items: flex-start;
}

.bbf-mobile-ui-cart .bbf-cart-summary__shipping-choice {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 3px;
	min-width: 0;
	text-align: right;
}

.bbf-mobile-ui-cart .bbf-cart-summary__shipping-choice strong {
	display: inline-flex;
	align-items: baseline;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 4px;
	color: var(--bbf-cart-text);
	font-weight: 700;
}

.bbf-mobile-ui-cart .bbf-cart-summary__shipping-choice small {
	color: var(--bbf-cart-muted);
	font-size: 10px;
	line-height: 1.4;
}

.bbf-mobile-ui-cart .bbf-cart-summary__row--tax {
	align-items: center;
}

.bbf-mobile-ui-cart .bbf-cart-summary__row--tax strong {
	font-weight: 500;
}

@media (max-width: 767px) {
	.bbf-mobile-ui-cart .bbf-cart-item__purchase {
		margin-top: 2px;
		padding-top: 10px;
		gap: 8px 12px;
	}

	.bbf-mobile-ui-cart .bbf-cart-item__price,
	.bbf-mobile-ui-cart .bbf-cart-item__quantity,
	.bbf-mobile-ui-cart .bbf-cart-item__subtotal {
		gap: 3px;
	}

	.bbf-mobile-ui-cart .bbf-cart-item__meta {
		margin-top: 4px;
	}

	.bbf-mobile-ui-cart .bbf-cart-summary__rows {
		padding-top: 4px;
	}

	.bbf-mobile-ui-cart .bbf-cart-summary__row {
		padding: 10px 0;
	}

	.bbf-mobile-ui-cart .bbf-cart-express {
		margin-top: 10px;
	}

	.bbf-mobile-ui-cart .bbf-cart-express__buttons {
		gap: 7px;
	}

	.bbf-mobile-ui-cart .bbf-cart-express__buttons > * {
		margin-top: 0 !important;
		margin-bottom: 0 !important;
	}

	.bbf-mobile-ui-cart .bbf-cart-coupon {
		margin-top: 6px;
	}

	.bbf-mobile-ui-cart .bbf-cart-coupon summary {
		padding: 13px 0;
	}

	.bbf-mobile-ui-cart .bbf-cart-sticky {
		padding-top: 9px;
	}

	.bbf-mobile-ui-cart .bbf-cart-sticky__line--total span,
	.bbf-mobile-ui-cart .bbf-cart-sticky__line--total strong {
		font-size: 16px;
	}
}
/* =========================================================
 * v1.1.6 – cleaner mobile product rows
 * ========================================================= */

/* Shipping summary shows only method + price. Carrier/plugin metadata such
 * as cart contents is intentionally not rendered here.
 */
.bbf-mobile-ui-cart .bbf-cart-summary__shipping-choice small {
	display: none !important;
}

@media (max-width: 767px) {
	/*
	 * Let the commercial data use the complete card width below the product
	 * image/title row instead of squeezing quantity below the price column.
	 */
	.bbf-mobile-ui-cart .bbf-cart-item__content {
		display: contents;
	}

	.bbf-mobile-ui-cart .bbf-cart-item__heading {
		grid-column: 2;
		grid-row: 1;
		min-width: 0;
	}

	.bbf-mobile-ui-cart .bbf-cart-item__purchase {
		grid-column: 1 / -1;
		grid-row: 2;
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
		grid-template-areas: "price quantity subtotal";
		align-items: end;
		width: 100%;
		margin-top: 0;
		padding-top: 14px;
		gap: 10px 12px;
		border-top: 1px solid var(--bbf-cart-border);
	}

	.bbf-mobile-ui-cart .bbf-cart-item__price {
		grid-area: price;
		align-items: flex-start;
		text-align: left;
	}

	.bbf-mobile-ui-cart .bbf-cart-item__quantity {
		grid-area: quantity;
		align-items: center;
		text-align: center;
	}

	.bbf-mobile-ui-cart .bbf-cart-item__subtotal {
		grid-area: subtotal;
		align-items: flex-end;
		text-align: right;
	}

	.bbf-mobile-ui-cart .bbf-cart-item__quantity > span {
		text-align: center;
	}

	.bbf-mobile-ui-cart .bbf-cart-item {
		grid-template-rows: auto auto;
	}

	.bbf-mobile-ui-cart .bbf-cart-item__media {
		grid-column: 1;
		grid-row: 1;
	}

	.bbf-mobile-ui-cart .bbf-cart-item .quantity {
		width: 120px !important;
		grid-template-columns: 36px 48px 36px !important;
	}

	.bbf-mobile-ui-cart .bbf-cart-item .quantity .decrease,
	.bbf-mobile-ui-cart .bbf-cart-item .quantity .increase,
	.bbf-mobile-ui-cart .bbf-cart-item .quantity .minus,
	.bbf-mobile-ui-cart .bbf-cart-item .quantity .plus,
	.bbf-mobile-ui-cart .bbf-cart-item .quantity button {
		width: 36px !important;
		min-width: 36px !important;
	}

	.bbf-mobile-ui-cart .bbf-cart-item .quantity input.qty {
		width: 48px !important;
		min-width: 48px !important;
		max-width: 48px !important;
	}
}

@media (max-width: 390px) {
	.bbf-mobile-ui-cart .bbf-cart-item__purchase {
		grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
		gap: 8px;
	}

	.bbf-mobile-ui-cart .bbf-cart-item .quantity {
		width: 108px !important;
		grid-template-columns: 32px 44px 32px !important;
	}

	.bbf-mobile-ui-cart .bbf-cart-item .quantity .decrease,
	.bbf-mobile-ui-cart .bbf-cart-item .quantity .increase,
	.bbf-mobile-ui-cart .bbf-cart-item .quantity .minus,
	.bbf-mobile-ui-cart .bbf-cart-item .quantity .plus,
	.bbf-mobile-ui-cart .bbf-cart-item .quantity button {
		width: 32px !important;
		min-width: 32px !important;
	}

	.bbf-mobile-ui-cart .bbf-cart-item .quantity input.qty {
		width: 44px !important;
		min-width: 44px !important;
		max-width: 44px !important;
	}
}

/* v1.3.5 – unified AJAX update state */
.bbf-mobile-ui-cart.bbf-cart-is-updating .bbf-cart-items-wrap,
.bbf-mobile-ui-cart.bbf-cart-is-updating .bbf-cart-sidebar,
.bbf-mobile-ui-cart.bbf-cart-is-updating #bbf-cart-cross-sells-wrap {
	opacity: .58;
	pointer-events: none;
	transition: opacity .15s ease;
}

.bbf-mobile-ui-cart .bbf-cross-sell-card__plus.loading {
	opacity: .65;
	pointer-events: none;
}

@media (max-width: 767px) {
	.bbf-mobile-ui-cart .woocommerce-notices-wrapper {
		width: calc(100% - 32px);
		margin-top: 16px;
	}
}

/* =========================================================
 * v1.3.9 – modern summary and in-view WooCommerce feedback
 * ========================================================= */
.bbf-mobile-ui-cart .bbf-cart-summary__row--shipping {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: start;
}

.bbf-mobile-ui-cart .bbf-cart-summary__shipping-copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	min-width: 0;
	text-align: left;
}

.bbf-mobile-ui-cart .bbf-cart-summary__shipping-copy .bbf-cart-summary__row-label {
	color: var(--bbf-cart-muted);
}

.bbf-mobile-ui-cart .bbf-cart-summary__shipping-name {
	color: var(--bbf-cart-accent-dark);
	font-weight: 500;
	line-height: 1.4;
	text-align: left;
}

.bbf-mobile-ui-cart .bbf-cart-summary__shipping-cost {
	color: var(--bbf-cart-text);
	font-weight: 700;
	white-space: nowrap;
}

/* Native Minimog fragment receiver. Its values are mirrored into the BBF summary. */
.bbf-mobile-ui-cart .bbf-cart-native-totals {
	display: none !important;
}

@media (max-width: 767px) {
	.bbf-mobile-ui-cart .bbf-cart-item .quantity button {
		position: relative !important;
	}

	.bbf-mobile-ui-cart .bbf-cart-item .quantity button::before {
		top: 50% !important;
		right: auto !important;
		left: 50% !important;
		margin: 0 !important;
		transform: translate(-50%, -50%) !important;
	}
}

.bbf-cart-notice-toast--error {
	border-color: #ead5d2;
	border-left-color: #a94442;
}

@media (max-width: 767px) {
	.bbf-mobile-ui-cart .bbf-cart-coupon summary {
		padding: 13px 14px;
	}

	.bbf-mobile-ui-cart .bbf-cart-summary__rows {
		padding: 6px 14px;
	}

	.bbf-mobile-ui-cart .bbf-cart-summary__row--total {
		margin-right: -14px;
		margin-left: -14px;
		padding-right: 14px;
		padding-left: 14px;
	}
}

/* =========================================================
 * v1.3.13 – final quantity polish
 * ========================================================= */
.bbf-mobile-ui-cart .bbf-cart-item .quantity {
	position: relative !important;
	display: block !important;
}

.bbf-mobile-ui-cart .bbf-cart-item .quantity .decrease,
.bbf-mobile-ui-cart .bbf-cart-item .quantity .increase,
.bbf-mobile-ui-cart .bbf-cart-item .quantity .minus,
.bbf-mobile-ui-cart .bbf-cart-item .quantity .plus,
.bbf-mobile-ui-cart .bbf-cart-item .quantity button {
	position: absolute !important;
	top: 0 !important;
	bottom: 0 !important;
	display: grid !important;
	height: 100% !important;
	place-items: center !important;
	transform: none !important;
}

.bbf-mobile-ui-cart .bbf-cart-item .quantity .decrease,
.bbf-mobile-ui-cart .bbf-cart-item .quantity .minus,
.bbf-mobile-ui-cart .bbf-cart-item .quantity button:first-of-type {
	right: auto !important;
	left: 0 !important;
}

.bbf-mobile-ui-cart .bbf-cart-item .quantity .increase,
.bbf-mobile-ui-cart .bbf-cart-item .quantity .plus,
.bbf-mobile-ui-cart .bbf-cart-item .quantity button:last-of-type {
	right: 0 !important;
	left: auto !important;
}

.bbf-mobile-ui-cart .bbf-cart-item .quantity button::before {
	position: relative !important;
	inset: auto !important;
	top: 1px !important;
	margin: 0 !important;
	transform: none !important;
}

.bbf-mobile-ui-cart .bbf-cart-item .quantity input.qty {
	display: block !important;
	margin: 0 auto !important;
}


.bbf-mobile-ui-cart .bbf-cart-summary__row--total {
	border-radius: 0 !important;
}
