/*
 * qrp-upsell.css: bundle offers on the storefront (qrp-upsell-manager.php 2.0.1).
 *
 * 2.0.1: words break between words. The cart table (table.shop_table_responsive)
 * gives its cells word-break: break-all, which the cart row's card inherited, so
 * "vac-sealed" broke as "v / ac-sealed" at phone width (staging, 10 Oct 2026).
 *
 * Botiga styles every button and anchor-button and loads after us, so each
 * button here pins every property the theme touches (CLAUDE.md section 7). The
 * storefront has no dark mode (QRP_DARK_PATHS covers the app pages only).
 * --qrp-bo-css is the marker qrp-upsell.js reads before it shows the product
 * page box: no stylesheet, no box.
 */

.qrp-bo-box,
.qrp-bo-card,
.qrp-bo-co {
	--qrp-bo-css: 1;
	--qrp-bo-ink: #0a0a0a;
	--qrp-bo-muted: #5f6672;
	--qrp-bo-line: #e4e6ea;
	--qrp-bo-fresh: #2f9e68;
	--qrp-bo-fresh-ink: #1f6f48;
	--qrp-bo-fresh-soft: #e7f5ec;
	--qrp-bo-err: #b42318;
	box-sizing: border-box;
	font-family: inherit;
	text-align: left;
	word-break: normal !important;
	overflow-wrap: break-word !important;
}

.qrp-bo-box *,
.qrp-bo-card *,
.qrp-bo-co * {
	box-sizing: border-box;
}

/* ---- the product page box ---- */

.qrp-bo-box {
	display: block;
	margin: 14px 0 16px;
	width: 100%;
}

.qrp-bo-box[hidden] {
	display: none !important;
}

.qrp-bo-box-l {
	display: grid !important;
	grid-template-columns: auto 44px minmax(0, 1fr);
	gap: 12px;
	align-items: center;
	margin: 0 !important;
	padding: 11px 13px;
	border: 1.5px solid var(--qrp-bo-line);
	border-radius: 12px;
	background: #fff;
	cursor: pointer;
	font-weight: 400;
	text-transform: none;
	letter-spacing: normal;
}

.qrp-bo-box.is-on .qrp-bo-box-l {
	border-color: var(--qrp-bo-fresh);
	background: var(--qrp-bo-fresh-soft);
}

.qrp-bo-box-c {
	width: 18px !important;
	height: 18px !important;
	margin: 0 !important;
	accent-color: var(--qrp-bo-fresh);
	cursor: pointer;
}

.qrp-bo-box .qrp-bo-img {
	display: block;
	width: 44px !important;
	height: 44px !important;
	max-width: none;
	margin: 0 !important;
	object-fit: cover;
	border-radius: 8px;
	border: 1px solid var(--qrp-bo-line);
	background: #fff;
}

.qrp-bo-box-t {
	min-width: 0;
	line-height: 1.35;
}

.qrp-bo-box-t b {
	display: block;
	font-size: 15px;
	font-weight: 700;
	color: var(--qrp-bo-ink);
}

.qrp-bo-box-t small {
	display: block;
	margin-top: 3px;
	font-size: 13px;
	color: var(--qrp-bo-muted);
}

/* while the box is ticked the wallet buttons would buy the pack alone */
.qrp-bo-on .wcpay-express-checkout-wrapper,
.qrp-bo-on #wcpay-express-checkout-element,
.qrp-bo-on .ppc-button-wrapper,
.qrp-bo-on #ppc-button-ppcp-gateway {
	display: none !important;
}

.qrp-bo-wallet-note {
	margin: 10px 0 0 !important;
	font-size: 13px;
	line-height: 1.4;
	color: #5f6672;
	text-align: center;
}

.qrp-bo-wallet-note[hidden] {
	display: none !important;
}

/* ---- the card (drawer and cart page) ---- */

.qrp-bo-card {
	display: block;
	margin: 0;
	padding: 13px 14px 12px;
	border: 1.5px solid var(--qrp-bo-fresh);
	border-radius: 12px;
	background: #fff;
	color: var(--qrp-bo-ink);
	line-height: 1.4;
}

.qrp-bo-card p {
	margin: 0 !important;
	padding: 0;
}

.qrp-bo-kick {
	font-size: 11px !important;
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--qrp-bo-fresh-ink) !important;
}

.qrp-bo-row {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr);
	gap: 12px;
	align-items: start;
	margin-top: 8px;
}

.qrp-bo-card .qrp-bo-img {
	display: block;
	width: 52px !important;
	height: 52px !important;
	max-width: none;
	margin: 0 !important;
	object-fit: cover;
	border-radius: 8px;
	border: 1px solid var(--qrp-bo-line);
	background: #fff;
}

.qrp-bo-t {
	font-size: 15px !important;
	font-weight: 700;
	line-height: 1.3;
	color: var(--qrp-bo-ink) !important;
}

.qrp-bo-p {
	margin-top: 2px !important;
	font-size: 14px !important;
	font-weight: 700;
	color: var(--qrp-bo-ink) !important;
}

.qrp-bo-p del {
	margin-right: 4px;
	font-weight: 400;
	color: var(--qrp-bo-muted);
}

.qrp-bo-p ins {
	text-decoration: none;
	background: none;
}

.qrp-bo-why {
	margin-top: 3px !important;
	font-size: 13px !important;
	line-height: 1.4;
	color: var(--qrp-bo-muted) !important;
}

.qrp-bo-acts {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 11px;
}

.qrp-bo-card button.qrp-bo-add,
.qrp-bo-card button.qrp-bo-add:hover,
.qrp-bo-card button.qrp-bo-add:focus,
.qrp-bo-card button.qrp-bo-add:active {
	display: inline-block !important;
	width: auto !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 9px 14px !important;
	border: 0 !important;
	border-radius: 8px !important;
	background: var(--qrp-bo-ink) !important;
	color: #fff !important;
	font-family: inherit !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	box-shadow: none !important;
	transform: none !important;
	cursor: pointer;
}

.qrp-bo-card button.qrp-bo-add[disabled] {
	opacity: .6 !important;
	cursor: default;
}

.qrp-bo-card button.qrp-bo-no,
.qrp-bo-card button.qrp-bo-no:hover,
.qrp-bo-card button.qrp-bo-no:focus,
.qrp-bo-card button.qrp-bo-no:active {
	display: inline-block !important;
	width: auto !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 6px 2px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--qrp-bo-muted) !important;
	font-family: inherit !important;
	font-size: 13px !important;
	font-weight: 400 !important;
	line-height: 1.2 !important;
	text-decoration: underline !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	box-shadow: none !important;
	transform: none !important;
	cursor: pointer;
}

.qrp-bo-card button:focus-visible,
.qrp-bo-co-c:focus-visible,
.qrp-bo-box-c:focus-visible {
	outline: 2px solid var(--qrp-bo-fresh) !important;
	outline-offset: 2px !important;
}

.qrp-bo-err {
	margin: 8px 0 0 !important;
	font-size: 13px !important;
	line-height: 1.4;
	color: var(--qrp-bo-err) !important;
}

.qrp-bo-err[hidden] {
	display: none !important;
}

.qrp-bo-done {
	margin: 0 !important;
	padding: 10px 12px;
	border: 1px solid #2f9e68;
	border-radius: 10px;
	background: #fff;
	color: #1f6f48;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
}

/* the drawer: the card is the last item of the scrolling list, above the pinned subtotal */
.qrp-cd .qrp-cd-widget .product_list_widget li.qrp-bo-li {
	display: block;
	min-height: 0;
	padding: 16px 0 4px;
}

.qrp-cd .qrp-cd-widget .product_list_widget li.qrp-bo-li::after {
	display: none;
}

/* the cart page: a full-width row under the items; the responsive table prints no label before it */
table.shop_table tr.qrp-bo-tr td.qrp-bo-td {
	display: table-cell;
	word-break: normal !important;
	overflow-wrap: break-word !important;
	padding: 14px 0 6px !important;
	border: 0 !important;
	background: transparent !important;
	text-align: left !important;
}

table.shop_table_responsive tr.qrp-bo-tr td.qrp-bo-td::before {
	content: none !important;
	display: none !important;
}

@media (max-width: 768px) {
	table.shop_table tr.qrp-bo-tr td.qrp-bo-td {
		display: block;
		width: 100%;
	}
}

/* ---- checkout ---- */

.qrp-bo-co {
	display: block;
	margin: 0 0 18px;
	padding: 12px 14px;
	border: 2px dashed var(--qrp-bo-fresh);
	border-radius: 12px;
	background: #fff;
	color: var(--qrp-bo-ink);
}

.qrp-bo-co.is-on {
	border-style: solid;
	background: var(--qrp-bo-fresh-soft);
}

.qrp-bo-co-l {
	display: grid !important;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 11px;
	align-items: start;
	margin: 0 !important;
	cursor: pointer;
	font-weight: 400;
	text-transform: none;
	letter-spacing: normal;
}

.qrp-bo-co-c {
	width: 18px !important;
	height: 18px !important;
	margin: 2px 0 0 !important;
	accent-color: var(--qrp-bo-fresh);
	cursor: pointer;
}

.qrp-bo-co-t {
	min-width: 0;
	line-height: 1.35;
}

.qrp-bo-co-t b {
	display: block;
	font-size: 15px;
	font-weight: 700;
	color: var(--qrp-bo-ink);
}

.qrp-bo-co-t small {
	display: block;
	margin-top: 3px;
	font-size: 13px;
	color: var(--qrp-bo-muted);
}

@media (prefers-reduced-motion: no-preference) {
	.qrp-bo-box-l,
	.qrp-bo-co {
		transition: background-color .18s ease, border-color .18s ease;
	}
}
