.indydtf-cart-bulk {
	display: grid;
	gap: var(--indy-space-2);
	margin-top: var(--indy-space-3);
	padding: var(--indy-space-3) var(--indy-space-4);
	border: 1px solid var(--indy-color-border);
	border-radius: var(--indy-radius-md);
	background: var(--indy-color-surface-soft);
	color: var(--indy-color-ink);
	font-size: 0.875rem;
}

.indydtf-cart-print {
	display: grid;
	gap: var(--indy-space-2);
	max-width: 480px;
	margin-top: var(--indy-space-3);
	padding: var(--indy-space-3);
	border: 1px solid color-mix(in srgb, var(--color-primary) 16%, var(--indy-color-border));
	border-radius: var(--indy-radius-md);
	background:
		linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 5%, var(--indy-color-surface)) 0%, var(--indy-color-surface) 76%);
	color: var(--indy-color-ink);
	font-size: 0.875rem;
}

.indydtf-cart-bulk__header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--indy-space-2);
}

.indydtf-cart-print__header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--indy-space-2);
}

.indydtf-cart-bulk__badge,
.indydtf-cart-bulk__discount,
.indydtf-cart-print__badge,
.indydtf-cart-print__discount {
	display: inline-flex;
	align-items: center;
	min-height: 22px;
	padding: 0 var(--indy-space-2);
	border-radius: var(--indy-radius-pill);
	font-size: 0.72rem;
	font-weight: 800;
	line-height: 1;
}

.indydtf-cart-bulk__badge {
	border: 1px solid color-mix(in srgb, var(--indy-color-success) 28%, transparent);
	background: color-mix(in srgb, var(--indy-color-success) 10%, var(--indy-color-surface));
	color: var(--indy-color-success);
}

.indydtf-cart-bulk__discount {
	border: 1px solid color-mix(in srgb, var(--color-primary) 22%, transparent);
	background: var(--indy-color-subtle);
	color: var(--color-primary-dark);
}

.indydtf-cart-print__badge {
	border: 1px solid color-mix(in srgb, var(--color-accent) 28%, transparent);
	background: color-mix(in srgb, var(--color-accent) 10%, var(--indy-color-surface));
	color: var(--color-primary-dark);
}

.indydtf-cart-print__discount {
	border: 1px solid color-mix(in srgb, var(--indy-color-success) 28%, transparent);
	background: #ecfdf3;
	color: var(--indy-color-success);
}

.indydtf-cart-print__summary {
	margin: 0;
	color: var(--color-primary-dark);
	font-size: 0.84rem;
	font-weight: 850;
	line-height: 1.35;
}

.indydtf-cart-print__summary-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--indy-space-4);
}

.indydtf-cart-print__summary-row > strong {
	color: var(--color-primary-dark);
	font-size: 0.94rem;
	font-weight: 950;
	white-space: nowrap;
}

.indydtf-cart-print__details {
	margin-top: var(--indy-space-3);
	border-top: 1px solid color-mix(in srgb, var(--color-primary) 12%, transparent);
	padding-top: var(--indy-space-3);
	padding-left: var(--indy-space-4);
}

.indydtf-cart-print__details summary {
	color: var(--color-primary-dark);
	cursor: pointer;
	font-size: 0.78rem;
	font-weight: 850;
	line-height: 1.3;
	list-style-position: outside;
}

.indydtf-cart-print__details-body {
	display: grid;
	gap: var(--indy-space-2);
	margin-top: var(--indy-space-2);
}

.indydtf-cart-print__placement {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--indy-space-2);
	align-items: center;
	padding: var(--indy-space-2);
	border: 1px solid color-mix(in srgb, var(--color-primary) 12%, var(--indy-color-border));
	border-radius: var(--indy-radius-sm);
	background: rgba(255, 255, 255, 0.82);
}

.indydtf-cart-print__placement-copy {
	display: grid;
	gap: 2px;
	min-width: 0;
}

.indydtf-cart-print__placement-copy strong {
	color: var(--color-primary-dark);
	font-size: 0.86rem;
	line-height: 1.2;
}

.indydtf-cart-print__placement-copy span {
	color: var(--indy-color-muted);
	font-size: 0.78rem;
	font-weight: 650;
	line-height: 1.3;
}

.indydtf-cart-bulk__rows {
	display: grid;
	gap: var(--indy-space-1);
	margin: 0;
}

.indydtf-cart-bulk__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--indy-space-3);
	margin: 0;
}

.indydtf-cart-bulk__row dt,
.indydtf-cart-bulk__row dd {
	margin: 0;
}

.indydtf-cart-bulk__row dt {
	color: var(--indy-color-muted);
	font-weight: 700;
}

.indydtf-cart-bulk__row dd {
	color: var(--color-primary-dark);
	font-weight: 850;
	text-align: right;
}

.indydtf-cart-bulk__row--savings dd,
.indydtf-cart-bulk-total--savings td,
.indydtf-cart-print-total--savings td {
	color: var(--indy-color-success);
}

body.woocommerce-cart .indydtf-cart-bulk {
	max-width: 420px;
}

body.woocommerce-cart .indydtf-cart-bulk__row--bulk dd {
	color: var(--indy-color-success);
	font-size: 0.96rem;
}

.indydtf-cart-line-total {
	display: grid;
	gap: 2px;
	justify-items: end;
	max-width: 100%;
	color: var(--indy-color-muted);
	font-size: 0.76rem;
	font-weight: 750;
	line-height: 1.25;
	text-align: right;
}

.indydtf-cart-line-total strong {
	color: var(--color-primary-dark);
	font-size: 1.08rem;
	font-weight: 950;
	line-height: 1.15;
}

.indydtf-cart-line-total span {
	color: var(--indy-color-muted);
	font-size: 0.76rem;
	font-weight: 750;
	line-height: 1.25;
	white-space: normal;
}

.woocommerce .cart_totals tr.indydtf-cart-bulk-total th,
.woocommerce .cart_totals tr.indydtf-cart-bulk-total td {
	color: var(--color-primary-dark);
	font-weight: 800;
}

.woocommerce .cart_totals tr.indydtf-cart-bulk-total--savings th,
.woocommerce .cart_totals tr.indydtf-cart-bulk-total--savings td,
.woocommerce .cart_totals tr.indydtf-cart-print-total--savings th,
.woocommerce .cart_totals tr.indydtf-cart-print-total--savings td {
	color: var(--indy-color-success);
}

body.woocommerce-cart .cart_totals tr.indydtf-cart-bulk-total th,
body.woocommerce-cart .cart_totals tr.indydtf-cart-bulk-total td {
	background: var(--indy-color-surface-soft);
}

body.woocommerce-cart .cart_totals tr.indydtf-cart-bulk-total--regular th,
body.woocommerce-cart .cart_totals tr.indydtf-cart-bulk-total--regular td {
	border-top: 1px solid var(--indy-color-border);
}

body.woocommerce-cart .cart_totals tr.indydtf-cart-print-total--savings th,
body.woocommerce-cart .cart_totals tr.indydtf-cart-print-total--savings td {
	background: color-mix(in srgb, var(--indy-color-success) 8%, var(--indy-color-surface));
}

@media (max-width: 640px) {
	.indydtf-cart-bulk {
		max-width: none;
	}

	.indydtf-cart-print {
		max-width: none;
	}

	.indydtf-cart-bulk__row {
		align-items: flex-start;
	}
}
