/* =========================================================================
   BuyTides — cart page

   Values are taken from the approved cart design, with its palette mapped
   onto the site's current tokens: the mock was drawn against the old navy
   (#0b2c4d) and this page has to sit between the live header and footer.
   ========================================================================= */

/* The block theme puts a 1.2rem margin on every top-level child of
   .wp-site-blocks, which left a white strip between the announcement marquee
   and the hero. The hero is a full-bleed dark band and is meant to start
   flush against the bar. Qualified with the tag so it outranks that rule. */
main.bt-cartpage-main {
	margin-top: 0;
}

.bt-cartpage {
	--bt-navy: #2b3754;
	--bt-navy-mid: #164a7a;
	--bt-navy-hover: #12406c;
	--bt-navy-active: #082238;
	--bt-cyan: #1fc8e3;
	--bt-cyan-bright: #6fe4f2;
	--bt-cyan-pale: #9eedf6;
	--bt-cyan-tint: #eaf7fb;
	--bt-teal: #1b7fa8;
	--bt-mist: #f4f7f9;
	--bt-panel: #fafcfd;
	--bt-line: #dde7ee;
	--bt-line-soft: #e3edf2;
	--bt-muted: #7c93a3;
	--bt-body: #4b6479;
	--bt-green: #1b8a5a;
	--bt-red: #b4443c;
	--bt-white: #fff;

	--bt-shell: 1240px;
	--bt-gutter: clamp(20px, 4vw, 48px);

	--bt-sans: "Inter", system-ui, -apple-system, sans-serif;
	--bt-display: "Outfit", "Inter", system-ui, sans-serif;

	/* Same margin-collapse guard as .bt-ty / .bt-pdp: without it the hero's
	   margin escapes through the wrapper and leaves a bare strip under the
	   header. */
	display: flow-root;

	background: var(--bt-mist);
	font-family: var(--bt-sans);
	color: var(--bt-navy);
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	max-width: 100%;
	overflow-x: clip;
}

.bt-cartpage *,
.bt-cartpage *::before,
.bt-cartpage *::after {
	box-sizing: border-box;
}

/* The block theme spaces everything it wraps; every gap on this page is set
   deliberately below. :where() keeps this at zero specificity. */
.bt-cartpage :where(p, h1, h2, h3, ul, ol, dl, dd, dt) {
	margin-block: 0;
}

.bt-cartpage :where(ul, ol) {
	list-style: none;
	padding: 0;
}

.bt-cartpage a {
	color: var(--bt-teal);
	text-decoration: none;
}

.bt-cartpage a:hover {
	color: var(--bt-navy);
}

.bt-cartpage a:focus-visible,
.bt-cartpage button:focus-visible,
.bt-cartpage input:focus-visible {
	outline: 2px solid var(--bt-cyan);
	outline-offset: 2px;
}

.bt-cartpage ::selection {
	background: var(--bt-cyan-bright);
	color: var(--bt-navy);
}

.bt-cartpage img {
	max-width: 100%;
	height: auto;
}

/* WooCommerce puts a screen-reader-only span inside variable price ranges
   ("Price range: $105.00 through $400.00"), and the coupon field's label is
   hidden the same way. The class is core's, but it is redeclared here so this
   page does not depend on another stylesheet to keep that text off screen. */
.bt-cartpage .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	white-space: nowrap;
}

.bt-cartpage__wrap {
	max-width: var(--bt-shell);
	margin: 0 auto;
	padding-inline: var(--bt-gutter);
}

.bt-cartpage__panel {
	border: 1.5px solid var(--bt-line);
	border-radius: 16px;
	background: var(--bt-white);
}

.bt-cartpage__h2 {
	margin: 0;
	font-family: var(--bt-display);
	font-size: 22px;
	font-weight: 600;
	letter-spacing: -0.028em;
	line-height: 1.2;
	text-wrap: balance;
}

.bt-cartpage__h2--sm {
	font-size: 20px;
}

/* ---------- Hero ---------- */

.bt-cartpage__hero {
	background: var(--bt-navy);
	background-image: radial-gradient(110% 90% at 92% 0%, var(--bt-navy-mid) 0%, rgba(43, 55, 84, 0) 62%);
	color: var(--bt-white);
}

.bt-cartpage__heroin {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 28px;
	padding-block: clamp(32px, 4vw, 52px);
}

.bt-cartpage__herotext {
	min-width: 0;
}

.bt-cartpage__crumbs {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 13.5px;
	color: rgba(255, 255, 255, 0.6);
}

.bt-cartpage__crumbs a {
	color: rgba(255, 255, 255, 0.6);
}

.bt-cartpage__crumbs a:hover {
	color: var(--bt-white);
}

.bt-cartpage__crumbhere {
	color: var(--bt-cyan-pale);
}

.bt-cartpage__title {
	margin: 14px 0 10px;
	font-family: var(--bt-display);
	font-size: clamp(32px, 4vw, 50px);
	font-weight: 600;
	letter-spacing: -0.028em;
	line-height: 1.05;
	color: var(--bt-white);
	text-wrap: balance;
}

.bt-cartpage__lede {
	max-width: 540px;
	font-size: 16.5px;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.8);
	text-wrap: pretty;
}

.bt-cartpage__chip {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 18px 22px;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.07);
}

.bt-cartpage__chipn {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: #61ddeb;
	color: var(--bt-navy);
	font-family: var(--bt-display);
	font-size: 19px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.bt-cartpage__chipbody {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}

.bt-cartpage__chipcount {
	font-family: var(--bt-display);
	font-size: 16.5px;
	font-weight: 600;
}

.bt-cartpage__chipsub {
	font-size: 13.5px;
	color: rgba(255, 255, 255, 0.62);
}

.bt-cartpage__chipsub .woocommerce-Price-amount {
	color: rgba(255, 255, 255, 0.62);
}

.bt-cartpage__chipship {
	font-size: 13px;
	color: var(--bt-cyan-pale);
}

/* ---------- Body ---------- */

.bt-cartpage__body {
	padding-block: clamp(28px, 3.6vw, 48px) clamp(56px, 7vw, 96px);
}

.bt-cartpage__shell {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 372px;
	gap: clamp(20px, 2.6vw, 32px);
	align-items: start;
}

.bt-cartpage__col,
.bt-cartpage__side {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.bt-cartpage__col {
	gap: 20px;
}

.bt-cartpage__side {
	gap: 16px;
	position: sticky;
	top: 24px;
}

/* ---------- Free shipping meter ---------- */

.bt-cartpage__ship {
	display: flex;
	flex-direction: column;
	gap: 13px;
	padding: 20px 24px;
}

.bt-cartpage__shiprow {
	display: flex;
	align-items: center;
	gap: 12px;
}

.bt-cartpage__shipicon {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	color: var(--bt-teal);
}

.bt-cartpage__shipline {
	flex: 1;
	min-width: 0;
	font-family: var(--bt-display);
	font-size: 15.5px;
	font-weight: 600;
}

.bt-cartpage__shippct {
	flex: 0 0 auto;
	font-family: var(--bt-display);
	font-size: 13px;
	font-weight: 600;
	color: var(--bt-muted);
	font-variant-numeric: tabular-nums;
}

.bt-cartpage__shiptrack {
	height: 8px;
	border-radius: 999px;
	background: var(--bt-line-soft);
	overflow: hidden;
}

.bt-cartpage__shipfill {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: var(--bt-teal);
	transition: width 0.4s ease;
}


/* ---------- Line items ---------- */

.bt-cartpage__items {
	padding: 0;
	overflow: hidden;
}

.bt-cartpage__itemshead {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 22px 24px 18px;
}

.bt-cartpage__continue {
	font-family: var(--bt-display);
	font-size: 14.5px;
	font-weight: 600;
}

.bt-cartpage__line {
	display: grid;
	grid-template-columns: 84px minmax(0, 1fr) auto;
	gap: 18px;
	padding: 22px 24px;
	border-top: 1px solid var(--bt-line);
}

.bt-cartpage__thumb {
	flex: 0 0 auto;
	display: block;
	width: 84px;
	height: 84px;
	border: 1px solid var(--bt-line);
	border-radius: 12px;
	overflow: hidden;
	background: var(--bt-cyan-tint);
}

.bt-cartpage__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.bt-cartpage__linebody {
	display: flex;
	flex-direction: column;
	gap: 5px;
	min-width: 0;
}

.bt-cartpage a.bt-cartpage__name {
	font-family: var(--bt-display);
	font-size: 16.5px;
	font-weight: 600;
	line-height: 1.25;
	color: var(--bt-navy);
}

.bt-cartpage a.bt-cartpage__name:hover {
	color: var(--bt-teal);
}

.bt-cartpage__meta,
.bt-cartpage__meta p {
	font-size: 13.5px;
	color: var(--bt-muted);
}

.bt-cartpage__meta dl,
.bt-cartpage__meta dt,
.bt-cartpage__meta dd {
	display: inline;
	margin: 0;
	font-weight: inherit;
}

.bt-cartpage__meta dd::after {
	content: " ";
}

.bt-cartpage__unit {
	font-size: 13.5px;
	color: var(--bt-body);
}

.bt-cartpage__unit .woocommerce-Price-amount {
	color: inherit;
}

.bt-cartpage__lineactions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin-top: 8px;
}

.bt-cartpage__step {
	display: flex;
	align-items: center;
	gap: 2px;
	padding: 2px;
	border: 1.5px solid var(--bt-line);
	border-radius: 999px;
	background: var(--bt-white);
}

.bt-cartpage__stepbtn {
	appearance: none;
	width: 32px;
	height: 32px;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--bt-navy);
	font-size: 17px;
	line-height: 1;
	cursor: pointer;
	transition: background 0.14s ease;
}

.bt-cartpage__stepbtn:hover:not(:disabled) {
	background: var(--bt-cyan-tint);
}

.bt-cartpage__stepbtn:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

.bt-cartpage__qty {
	min-width: 26px;
	text-align: center;
	font-family: var(--bt-display);
	font-size: 15px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.bt-cartpage__remove {
	appearance: none;
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 0;
	border: 0;
	background: transparent;
	font-family: var(--bt-display);
	font-size: 14px;
	font-weight: 600;
	color: var(--bt-teal);
	cursor: pointer;
}

.bt-cartpage__remove:hover {
	color: var(--bt-navy);
}

.bt-cartpage__lineprice {
	text-align: right;
	font-family: var(--bt-display);
	font-size: 18px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

/* A subscription or a tier discount makes WooCommerce format the line as a
   sale price. Both figures are kept here — unlike the drawer, this page has
   room to show what the catalogue price was. */
.bt-cartpage__lineprice del {
	display: block;
	font-size: 13.5px;
	font-weight: 500;
	color: var(--bt-muted);
}

.bt-cartpage__lineprice ins {
	text-decoration: none;
}

/* ---------- Coupon ---------- */

.bt-cartpage__couponbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	padding: 20px 24px;
	border-top: 1px solid var(--bt-line);
	background: var(--bt-panel);
}

.bt-cartpage__input {
	flex: 1 1 190px;
	height: 46px;
	padding: 0 14px;
	border: 1.5px solid var(--bt-line);
	border-radius: 11px;
	background: var(--bt-white);
	font-family: var(--bt-sans);
	font-size: 14.5px;
	/* The loyalty plugin forces black on every input sitewide, so this has to
	   outrank it or the field ignores the palette. */
	color: var(--bt-navy) !important;
}

.bt-cartpage__input::placeholder {
	color: #9db1bf;
}

.bt-cartpage__input:focus {
	border-color: var(--bt-cyan);
	outline: none;
}

.bt-cartpage__apply {
	appearance: none;
	height: 46px;
	padding: 0 22px;
	border: 1.5px solid var(--bt-navy);
	border-radius: 11px;
	background: var(--bt-white);
	color: var(--bt-navy);
	font-family: var(--bt-display);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.bt-cartpage__apply:hover {
	background: var(--bt-navy);
	color: var(--bt-white);
}

.bt-cartpage__coupons {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
}

.bt-cartpage__coupon {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 7px 10px 7px 12px;
	border-radius: 999px;
	background: var(--bt-cyan-tint);
	font-family: var(--bt-display);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--bt-navy);
}

.bt-cartpage__couponx {
	appearance: none;
	width: 18px;
	height: 18px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(43, 55, 84, 0.09);
	color: var(--bt-navy);
	font-size: 14px;
	line-height: 1;
	cursor: pointer;
}

.bt-cartpage__couponx:hover {
	background: var(--bt-navy);
	color: var(--bt-white);
}

.bt-cartpage__couponmsg {
	font-family: var(--bt-display);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--bt-green);
}

.bt-cartpage__couponmsg.is-error {
	color: var(--bt-red);
}

/* ---------- Frequently paired ---------- */

.bt-cartpage__pairpanel {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 22px 24px 24px;
}

.bt-cartpage__pairhead {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
}

.bt-cartpage__pairnote {
	font-size: 13.5px;
	color: var(--bt-muted);
}

.bt-cartpage__pairgrid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 16px;
}

.bt-cartpage__pair {
	display: flex;
	align-items: center;
	gap: 13px;
	padding: 12px;
	border: 1.5px solid var(--bt-line);
	border-radius: 14px;
}

.bt-cartpage__pairthumb {
	flex: 0 0 auto;
	display: block;
	width: 56px;
	height: 56px;
	border: 1px solid var(--bt-line);
	border-radius: 10px;
	overflow: hidden;
	background: var(--bt-cyan-tint);
}

.bt-cartpage__pairthumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.bt-cartpage__pairbody {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}

.bt-cartpage a.bt-cartpage__pairname {
	font-family: var(--bt-display);
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.25;
	color: var(--bt-navy);
}

.bt-cartpage a.bt-cartpage__pairname:hover {
	color: var(--bt-teal);
}

.bt-cartpage__pairprice,
.bt-cartpage__pairprice .woocommerce-Price-amount {
	font-family: var(--bt-display);
	font-size: 14px;
	font-weight: 600;
	color: var(--bt-teal);
	font-variant-numeric: tabular-nums;
}

.bt-cartpage__pairprice del {
	color: var(--bt-muted);
	font-weight: 500;
}

.bt-cartpage__pairprice ins {
	text-decoration: none;
}

.bt-cartpage .bt-cartpage__pairadd,
.bt-cartpage a.bt-cartpage__pairadd {
	appearance: none;
	align-self: flex-start;
	padding: 0;
	border: 0;
	background: transparent;
	text-align: left;
	font-family: var(--bt-display);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--bt-navy);
	cursor: pointer;
}

.bt-cartpage .bt-cartpage__pairadd:hover,
.bt-cartpage a.bt-cartpage__pairadd:hover {
	color: var(--bt-teal);
}

/* The quick-add row: a dose select only when the product has a choice to
   make, then the button. Both wrap onto their own line on a narrow card. */

.bt-cartpage__pairbuy {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 4px;
}

.bt-cartpage .bt-cartpage__pairsel {
	appearance: none;
	-webkit-appearance: none;
	max-width: 100%;
	margin: 0;
	padding: 6px 26px 6px 10px;
	border: 1.5px solid var(--bt-line);
	border-radius: 9px;
	background-color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%232b3754' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 8px center;
	font-family: var(--bt-display);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--bt-navy);
	cursor: pointer;
}

.bt-cartpage .bt-cartpage__pairsel:hover {
	border-color: var(--bt-teal);
}

/* The base .bt-cartpage__pairadd above is a bare text link, which the
   "Choose options" fallback still is. --btn turns it into the pill. */

.bt-cartpage .bt-cartpage__pairadd--btn {
	padding: 7px 15px;
	border: 1.5px solid var(--bt-navy);
	border-radius: 999px;
	background: var(--bt-navy);
	font-size: 13px;
	line-height: 1.2;
	color: #fff;
	white-space: nowrap;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.bt-cartpage .bt-cartpage__pairadd--btn:hover {
	border-color: var(--bt-teal);
	background: var(--bt-teal);
	color: #fff;
}

.bt-cartpage__pairpanel[aria-busy='true'] .bt-cartpage__pairadd--btn,
.bt-cartpage[aria-busy='true'] .bt-cartpage__pairadd--btn {
	opacity: 0.6;
	pointer-events: none;
}

/* ---------- Summary ---------- */

.bt-cartpage__summary {
	padding: 24px;
}

.bt-cartpage__summary .bt-cartpage__h2 {
	margin-bottom: 18px;
}

.bt-cartpage__lines2 {
	display: flex;
	flex-direction: column;
	gap: 13px;
}

.bt-cartpage__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	font-size: 14.5px;
}

.bt-cartpage__rowlabel {
	color: var(--bt-body);
}

.bt-cartpage__rowcode {
	color: var(--bt-muted);
}

.bt-cartpage__rowvalue,
.bt-cartpage__rowvalue .woocommerce-Price-amount {
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	text-align: right;
}

.bt-cartpage__rowvalue--off,
.bt-cartpage__rowvalue--off .woocommerce-Price-amount {
	color: var(--bt-green);
}

.bt-cartpage__rowsoft {
	color: var(--bt-muted);
	font-weight: 600;
}

.bt-cartpage__rule {
	height: 1px;
	margin-block: 5px;
	background: var(--bt-line);
}

.bt-cartpage__total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
}

.bt-cartpage__totalk {
	font-family: var(--bt-display);
	font-size: 16.5px;
	font-weight: 600;
}

.bt-cartpage__totalv,
.bt-cartpage__totalv .woocommerce-Price-amount {
	font-family: var(--bt-display);
	font-size: 28px;
	font-weight: 600;
	letter-spacing: -0.03em;
	font-variant-numeric: tabular-nums;
	color: var(--bt-navy);
}

.bt-cartpage__points {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 20px;
	border-radius: 12px;
	background: var(--bt-cyan-tint);
}

.bt-cartpage__pointsk {
	max-width: 8ch;
	font-family: var(--bt-display);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--bt-navy);
}

.bt-cartpage__pointsv {
	display: flex;
	align-items: baseline;
	gap: 7px;
	white-space: nowrap;
}

.bt-cartpage__pointsn {
	font-family: var(--bt-display);
	font-size: 26px;
	font-weight: 700;
	letter-spacing: -0.03em;
	color: var(--bt-teal);
	font-variant-numeric: tabular-nums;
}

.bt-cartpage__pointsu {
	font-family: var(--bt-display);
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.1em;
	color: var(--bt-muted);
}

.bt-cartpage a.bt-cartpage__checkout {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 54px;
	margin-top: 4px;
	border-radius: 12px;
	background: var(--bt-navy);
	color: var(--bt-white);
	font-family: var(--bt-display);
	font-size: 16.5px;
	font-weight: 600;
	transition: background 0.15s ease;
}

.bt-cartpage a.bt-cartpage__checkout:hover {
	background: var(--bt-navy-hover);
	color: var(--bt-white);
}

.bt-cartpage a.bt-cartpage__checkout:active {
	background: var(--bt-navy-active);
}

.bt-cartpage__cont {
	text-align: center;
	font-family: var(--bt-display);
	font-size: 14.5px;
	font-weight: 600;
}

/* ---------- Trust ---------- */

.bt-cartpage__trust {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 20px 22px;
}

.bt-cartpage__trustrow {
	display: flex;
	align-items: flex-start;
	gap: 11px;
}

.bt-cartpage__trustmark {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--bt-cyan-tint);
	color: var(--bt-teal);
	font-family: var(--bt-display);
	font-size: 13px;
	font-weight: 700;
}

.bt-cartpage__trustbody {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.bt-cartpage__trusttitle {
	font-family: var(--bt-display);
	font-size: 14.5px;
	font-weight: 600;
}

.bt-cartpage__trusttext {
	font-size: 13px;
	line-height: 1.5;
	color: var(--bt-body);
}

.bt-cartpage__ruo {
	padding-inline: 4px;
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--bt-muted);
}

/* ---------- Empty ---------- */

.bt-cartpage__emptypanel {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	max-width: 560px;
	margin-inline: auto;
	padding: clamp(36px, 5vw, 56px) clamp(24px, 4vw, 40px);
	text-align: center;
}

.bt-cartpage__emptyicon {
	width: 40px;
	height: 40px;
	color: var(--bt-teal);
}

.bt-cartpage__emptytext {
	max-width: 46ch;
	font-size: 15px;
	line-height: 1.6;
	color: var(--bt-body);
	text-wrap: pretty;
}

.bt-cartpage a.bt-cartpage__emptycta {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 50px;
	margin-top: 6px;
	padding-inline: 28px;
	border-radius: 12px;
	background: var(--bt-navy);
	color: var(--bt-white);
	font-family: var(--bt-display);
	font-size: 15.5px;
	font-weight: 600;
	transition: background 0.15s ease;
}

.bt-cartpage a.bt-cartpage__emptycta:hover {
	background: var(--bt-navy-hover);
	color: var(--bt-white);
}

/* ---------- Busy state ---------- */

.bt-cartpage[aria-busy="true"] {
	position: relative;
}

.bt-cartpage[aria-busy="true"] .bt-cartpage__body {
	opacity: 0.55;
	pointer-events: none;
	transition: opacity 0.12s ease;
}

/* ---------- Responsive ---------- */

@media (max-width: 940px) {
	.bt-cartpage__shell {
		grid-template-columns: minmax(0, 1fr);
	}

	.bt-cartpage__side {
		position: static;
	}

	.bt-cartpage__line {
		grid-template-columns: 72px minmax(0, 1fr);
	}

	.bt-cartpage__thumb {
		width: 72px;
		height: 72px;
	}

	.bt-cartpage__lineprice {
		grid-column: 2;
		text-align: left;
	}
}

@media (max-width: 560px) {
	.bt-cartpage__chip {
		width: 100%;
	}

	.bt-cartpage__couponbar {
		gap: 10px;
	}

	.bt-cartpage__apply {
		flex: 1 1 auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.bt-cartpage__shipfill {
		transition: none;
	}
}
