/* ============================================================================
   Orilogy Cart - the cart page, redesigned to match the checkout

   ART DIRECTION
   The same one as the checkout, deliberately: the summary card is the hero
   object, the ledger row is the motif (uppercase mono label left, figure
   right, hairline under), the discount field lives beside the total, and there
   is one green commit pill. A cart that looks like a different site from the
   checkout it leads into is where trust leaks.

   WHAT THE THEME WAS DOING
   Read off the live cart before this: the Hub theme overrides cart/cart.php
   and cart/cart-totals.php, and its copies emit td.product-thumbnail with no
   <img> inside it (zero product images on the whole page), wrap the name in
   their own <span class="product-info">, order the totals Shipment / Subtotal
   / Total - shipping quoted before the goods were priced - and print no
   .coupon element and no .wc-proceed-to-checkout anywhere. So the cart had no
   discount field at all, which is the other half of "customers cannot find
   where to enter a coupon".

   ON THE DUPLICATION WITH orilogy-checkout.css
   The component rules below - .ocko-steps, .ocko-sum, the ledger, .ocko-discount,
   .ocko-trust - restate what that file already says for the checkout. That is
   on purpose and it is the cheaper of two bad options: the checkout's copies
   are scoped through .woocommerce-checkout form.checkout, specificity it needs
   to outrank theme selectors on that page and which cannot match here. Sharing
   them would mean re-scoping a stylesheet that is currently correct, on a live
   store, to save a hundred lines. If a third page ever wants this card, that is
   the moment to extract it.
   ========================================================================= */

body.woocommerce-cart {
	--ocko-ink: var(--e-global-color-primary, #241f20);
	--ocko-cream: var(--e-global-color-secondary, #f2ebde);
	--ocko-green: var(--e-global-color-0316a3b, #183b19);
	--ocko-paper: #fff;

	--ocko-edge: rgba(36, 31, 32, .5);
	--ocko-hair: rgba(36, 31, 32, .14);
	--ocko-hair-soft: rgba(36, 31, 32, .08);
	--ocko-muted: rgba(36, 31, 32, .62);

	--ocko-save: #2f6b31;
	--ocko-bad: #8f2e24;

	--ocko-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;
	--ocko-r: 10px;
	--ocko-wide: 1200px;
}

/* The theme's 98px step rail with grey polyline arrows, replaced by
   .ocko-steps below. */
.woocommerce-cart .lqd-woo-steps {
	display: none !important;
}

.woocommerce-cart .cart_totals > h2,
.woocommerce-cart .cart-collaterals > h2 {
	display: none;                     /* our own .ocko-sum__head says it */
}

.woocommerce-cart .ocko {
	box-sizing: border-box;
	width: min(var(--ocko-wide), 100%);
	margin-inline: auto;
	padding: 0 20px 56px;
	color: var(--ocko-ink);
	font-size: 15px;
	line-height: 1.55;
}

.woocommerce-cart .ocko *,
.woocommerce-cart .ocko *::before,
.woocommerce-cart .ocko *::after {
	box-sizing: border-box;
}

/* ---------------------------------------------------------------- steps ---- */

.woocommerce-cart .ocko-steps {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 18px;
	width: min(var(--ocko-wide), 100%);
	margin: 0 auto 50px;
	padding: 0 20px;
	list-style: none;
}

.woocommerce-cart .ocko-steps__item {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-family: var(--ocko-mono);
	font-size: 10.5px;
	font-weight: 500;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--ocko-muted);
	list-style: none;
}

.woocommerce-cart .ocko-steps__item + .ocko-steps__item::before {
	content: "";
	width: 28px;
	height: 1px;
	margin-right: 10px;
	background: var(--ocko-hair);
}

.woocommerce-cart .ocko-steps__num {
	display: grid;
	place-items: center;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: rgba(36, 31, 32, .09);
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0;
}

.woocommerce-cart .ocko-steps__item.is-current {
	color: var(--ocko-ink);
}

.woocommerce-cart .ocko-steps__item.is-current .ocko-steps__num {
	background: var(--ocko-green);
	color: var(--ocko-cream);
}

/* Three equal columns on a phone, number over label, no connectors - a
   wrapped flex row starts with a connector pseudo-element dangling in front
   of the first item on the new line. */
@media (max-width: 720px) {
	.woocommerce-cart .ocko-steps {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 0;
		margin-bottom: 34px;
	}

	.woocommerce-cart .ocko-steps__item {
		flex-direction: column;
		align-items: center;
		gap: 7px;
		font-size: 9px;
		letter-spacing: .1em;
		text-align: center;
	}

	.woocommerce-cart .ocko-steps__item + .ocko-steps__item::before {
		display: none;
	}
}

/* --------------------------------------------------------------- layout ---- */

.woocommerce-cart form.woocommerce-cart-form.ocko__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	align-items: start;
	gap: clamp(28px, 3.6vw, 54px);
	width: 100%;
	margin: 0;
	padding: 0;
	float: none;
}

.woocommerce-cart .ocko__grid::before,
.woocommerce-cart .ocko__grid::after {
	content: none;
	display: none;
}

.woocommerce-cart .ocko__main,
.woocommerce-cart .ocko__aside {
	min-width: 0;
}

.woocommerce-cart .cart-collaterals {
	width: auto;
	margin: 0;
	padding: 0;
	float: none;
}

.woocommerce-cart .cart-collaterals::before,
.woocommerce-cart .cart-collaterals::after {
	content: none;
	display: none;
}

@media (max-width: 960px) {
	.woocommerce-cart form.woocommerce-cart-form.ocko__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce-cart .ocko__aside {
		order: 2;
	}
}

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

.woocommerce-cart .ocko-cart__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 8px;
}

.woocommerce-cart .ocko-cart__table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	background: none;
}

/* The header row is redundant once each row carries a thumbnail, a price and a
   quantity field - but the table still needs headers to be announced. */
.woocommerce-cart .ocko-cart__table thead th {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* A <tr> as a grid container. This is what lets a six-column WooCommerce cart
   table read as a modern row list without touching the markup contract that
   cart.js depends on - the cells keep their classes and their data-title
   attributes, and only their placement changes. */
.woocommerce-cart .ocko-cart__table tr.cart_item {
	display: grid;
	grid-template-columns: 76px minmax(0, 1fr) auto 118px auto 26px;
	grid-template-areas: "thumb name price qty subtotal remove";
	align-items: center;
	gap: 0 16px;
	padding: 18px 0;
	border-top: 1px solid var(--ocko-hair);
}

.woocommerce-cart .ocko-cart__table tr.cart_item td {
	padding: 0;
	border: 0;
	background: none;
	vertical-align: middle;
}

.woocommerce-cart .ocko-cart__table td.product-thumbnail {
	grid-area: thumb;
	align-self: start;
}

.woocommerce-cart .ocko-cart__thumb {
	display: block;
	width: 76px;
	height: 76px;
	margin: 0;
	border-radius: 10px;
	object-fit: cover;
	background: rgba(36, 31, 32, .05);
}

.woocommerce-cart .ocko-cart__table td.product-name {
	grid-area: name;
	font-size: 14.5px;
	line-height: 1.35;
}

.woocommerce-cart .ocko-cart__name {
	color: var(--ocko-ink);
	font-weight: 500;
	text-decoration: none;
}

.woocommerce-cart .ocko-cart__name:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.woocommerce-cart .ocko-cart__table td.product-name dl.variation,
.woocommerce-cart .ocko-cart__table td.product-name .wc-item-meta {
	margin: 5px 0 0;
	padding: 0;
	font-size: 12.5px;
	line-height: 1.45;
	color: var(--ocko-muted);
}

.woocommerce-cart .ocko-cart__table td.product-name dl.variation dt,
.woocommerce-cart .ocko-cart__table td.product-name .wc-item-meta strong {
	font-weight: 500;
}

.woocommerce-cart .ocko-cart__table td.product-name dl.variation dd,
.woocommerce-cart .ocko-cart__table td.product-name dl.variation p,
.woocommerce-cart .ocko-cart__table td.product-name .wc-item-meta p {
	margin: 0;
}

.woocommerce-cart .ocko-cart__table td.product-name .backorder_notification {
	margin: 5px 0 0;
	font-size: 12px;
	color: var(--ocko-bad);
}

.woocommerce-cart .ocko-cart__table td.product-price {
	grid-area: price;
	font-family: var(--ocko-mono);
	font-size: 11.5px;
	letter-spacing: .04em;
	color: var(--ocko-muted);
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

.woocommerce-cart .ocko-cart__table td.product-quantity {
	grid-area: qty;
}

.woocommerce-cart .ocko-cart__table .quantity {
	display: block;
	margin: 0;
	float: none;
}

.woocommerce-cart .ocko-cart__table .quantity input.qty {
	box-sizing: border-box;
	width: 100%;
	min-height: 44px;
	padding: 10px 6px;
	background: var(--ocko-paper) !important;
	color: var(--ocko-ink) !important;
	border: 1px solid var(--ocko-edge) !important;
	border-radius: var(--ocko-r) !important;
	font-family: inherit;
	font-size: 15px;
	text-align: center;
	box-shadow: none;
}

.woocommerce-cart .ocko-cart__table .quantity input.qty:focus {
	outline: none;
	border-color: var(--ocko-ink) !important;
	box-shadow: 0 0 0 3px rgba(36, 31, 32, .14);
}

.woocommerce-cart .ocko-cart__table td.product-subtotal {
	grid-area: subtotal;
	text-align: right;
	font-size: 14.5px;
	font-weight: 500;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

.woocommerce-cart .ocko-cart__table td.product-remove {
	grid-area: remove;
	text-align: right;
}

.woocommerce-cart .ocko-cart__remove {
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	margin-left: auto;
	border-radius: 50%;
	background: rgba(36, 31, 32, .06);
	color: var(--ocko-muted);
	font-size: 15px;
	line-height: 1;
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease;
}

.woocommerce-cart .ocko-cart__remove:hover {
	background: rgba(143, 46, 36, .12);
	color: var(--ocko-bad);
}

.woocommerce-cart .ocko-cart__remove:focus-visible {
	outline: 2px solid var(--ocko-ink);
	outline-offset: 2px;
}

/* ---- the actions row ---- */

.woocommerce-cart .ocko-cart__table tr:has(> td.actions) {
	display: block;
	border-top: 1px solid var(--ocko-hair);
}

.woocommerce-cart .ocko-cart__table td.actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 18px 0 0;
	border: 0;
	background: none;
}

.woocommerce-cart .ocko-cart__continue {
	color: var(--ocko-green);
	font-size: 13.5px;
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.woocommerce-cart .ocko-cart__update {
	min-height: 42px;
	padding: 0 18px;
	background: none !important;
	color: var(--ocko-ink) !important;
	border: 1px solid var(--ocko-edge) !important;
	border-radius: 999px !important;
	font-family: inherit;
	font-size: 13.5px;
	font-weight: 500;
	cursor: pointer;
}

.woocommerce-cart .ocko-cart__update:hover {
	background: rgba(36, 31, 32, .05) !important;
}

.woocommerce-cart .ocko-cart__update:focus-visible {
	outline: 2px solid var(--ocko-green);
	outline-offset: 2px;
}

/* WooCommerce disables Update until a quantity actually changes. */
.woocommerce-cart .ocko-cart__update[disabled] {
	opacity: .45;
	cursor: default;
}

@media (max-width: 720px) {
	.woocommerce-cart .ocko-cart__table tr.cart_item {
		grid-template-columns: 64px minmax(0, 1fr) auto;
		grid-template-areas:
			"thumb name     remove"
			"thumb price    price"
			"thumb qty      subtotal";
		gap: 6px 14px;
	}

	.woocommerce-cart .ocko-cart__thumb {
		width: 64px;
		height: 64px;
	}

	.woocommerce-cart .ocko-cart__table td.product-quantity {
		max-width: 118px;
	}

	.woocommerce-cart .ocko-cart__table td.actions {
		justify-content: space-between;
	}
}

/* --------------------------------------------------------- summary card ---- */

.woocommerce-cart .ocko-sum {
	background: var(--ocko-paper);
	border: 1px solid var(--ocko-hair);
	border-radius: 16px;
	padding: 22px 22px 20px;
	float: none;
	width: auto;
}

.woocommerce-cart .ocko-sum__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 14px;
}

.woocommerce-cart .ocko-sum__title {
	margin: 0;
	padding: 0;
	background: none;
	font-family: inherit;
	font-size: 21px;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: -.01em;
	color: var(--ocko-ink);
}

.woocommerce-cart .ocko-sum__title::before,
.woocommerce-cart .ocko-sum__title::after {
	display: none !important;
	content: none !important;
}

.woocommerce-cart .ocko-sum__count {
	flex: 0 0 auto;
	font-family: var(--ocko-mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ocko-muted);
}

/* ---- the ledger ---- */

.woocommerce-cart .ocko-sum__table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	background: none;
}

.woocommerce-cart .ocko-sum__table th,
.woocommerce-cart .ocko-sum__table td {
	padding: 11px 0;
	border: 0;
	border-top: 1px solid var(--ocko-hair);
	background: none;
	vertical-align: top;
}

.woocommerce-cart .ocko-sum__table tr:first-child th,
.woocommerce-cart .ocko-sum__table tr:first-child td {
	border-top: 0;
}

.woocommerce-cart .ocko-sum__table th {
	width: auto;
	text-align: left;
	font-family: var(--ocko-mono);
	font-size: 10.5px;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ocko-muted);
}

.woocommerce-cart .ocko-sum__table td {
	text-align: right;
	font-size: 14.5px;
	font-variant-numeric: tabular-nums;
}

.woocommerce-cart .ocko-sum__table tr.cart-discount th {
	color: var(--ocko-save);
}

.woocommerce-cart .ocko-sum__table tr.order-total th,
.woocommerce-cart .ocko-sum__table tr.order-total td {
	padding-top: 15px;
	padding-bottom: 2px;
}

.woocommerce-cart .ocko-sum__table tr.order-total th {
	font-size: 11px;
	font-weight: 600;
	color: var(--ocko-ink);
}

.woocommerce-cart .ocko-sum__table tr.order-total td {
	font-size: 22px;
	font-weight: 500;
	letter-spacing: -.015em;
}

/* Shipping: label and options stack, so a method name and its price are not
   fighting over a narrow right-hand column. */
.woocommerce-cart .ocko-sum__table tr.woocommerce-shipping-totals th,
.woocommerce-cart .ocko-sum__table tr.woocommerce-shipping-totals td,
.woocommerce-cart .ocko-sum__table tr.shipping th,
.woocommerce-cart .ocko-sum__table tr.shipping td {
	display: block;
	width: auto;
	text-align: left;
}

.woocommerce-cart .ocko-sum__table tr.woocommerce-shipping-totals td,
.woocommerce-cart .ocko-sum__table tr.shipping td {
	border-top: 0;
	padding: 2px 0 10px;
}

.woocommerce-cart .ocko-sum__table #shipping_method {
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-cart .ocko-sum__table #shipping_method li {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0;
	padding: 7px 0;
	list-style: none;
	font-size: 13.5px;
}

.woocommerce-cart .ocko-sum__table #shipping_method li input {
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: var(--ocko-green);
}

.woocommerce-cart .ocko-sum__table #shipping_method li label {
	display: flex;
	flex: 1 1 auto;
	align-items: baseline;
	gap: 10px;
	margin: 0;
	font-size: 13.5px;
	font-weight: 400;
}

.woocommerce-cart .ocko-sum__table #shipping_method li label .amount {
	margin-left: auto;
	font-variant-numeric: tabular-nums;
}

.woocommerce-cart .woocommerce-shipping-destination {
	margin: 6px 0 0;
	font-size: 12px;
	line-height: 1.45;
	color: var(--ocko-muted);
}

.woocommerce-cart .shipping-calculator-button {
	color: var(--ocko-green);
	font-size: 13px;
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.woocommerce-cart .shipping-calculator-form {
	margin-top: 10px;
}

.woocommerce-cart .shipping-calculator-form .form-row {
	margin: 0 0 10px;
	padding: 0;
}

.woocommerce-cart .shipping-calculator-form .input-text,
.woocommerce-cart .shipping-calculator-form select,
.woocommerce-cart .shipping-calculator-form .select2-container .select2-selection--single {
	box-sizing: border-box;
	width: 100%;
	min-height: 44px;
	padding: 10px 12px;
	background: var(--ocko-paper) !important;
	color: var(--ocko-ink) !important;
	border: 1px solid var(--ocko-edge) !important;
	border-radius: var(--ocko-r) !important;
	font-family: inherit;
	font-size: 15px;
}

.woocommerce-cart .shipping-calculator-form button {
	min-height: 42px;
	padding: 0 18px;
	background: none !important;
	color: var(--ocko-ink) !important;
	border: 1px solid var(--ocko-edge) !important;
	border-radius: 999px !important;
	font-family: inherit;
	font-size: 13.5px;
	font-weight: 500;
	cursor: pointer;
}

/* ---- the discount field ---- */

.woocommerce-cart .ocko-discount {
	margin: 16px 0 0;
	padding: 15px 15px 14px;
	background: var(--ocko-cream);
	border-radius: 12px;
}

.woocommerce-cart .ocko-discount__label {
	display: block;
	margin: 0 0 9px;
	font-family: var(--ocko-mono);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: var(--ocko-ink);
}

.woocommerce-cart .ocko-discount__row {
	display: flex;
	gap: 8px;
}

.woocommerce-cart .ocko-discount__input {
	box-sizing: border-box;
	flex: 1 1 auto;
	min-width: 0;
	min-height: 44px;
	padding: 11px 13px;
	background: var(--ocko-paper) !important;
	color: var(--ocko-ink) !important;
	border: 1px solid var(--ocko-edge) !important;
	border-radius: var(--ocko-r) !important;
	font-family: inherit;
	font-size: 15px;
	text-transform: uppercase;
	box-shadow: none;
}

.woocommerce-cart .ocko-discount__input::placeholder {
	color: var(--ocko-muted);
	opacity: 1;
	text-transform: none;
}

.woocommerce-cart .ocko-discount__input:focus {
	outline: none;
	border-color: var(--ocko-ink) !important;
	box-shadow: 0 0 0 3px rgba(36, 31, 32, .14);
}

.woocommerce-cart .ocko-discount__apply {
	flex: 0 0 auto;
	min-height: 44px;
	padding: 0 20px;
	background: var(--ocko-ink) !important;
	color: var(--ocko-cream) !important;
	border: 0 !important;
	border-radius: 9px !important;
	font-family: inherit;
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	cursor: pointer;
	transition: opacity .16s ease;
}

.woocommerce-cart .ocko-discount__apply:hover {
	opacity: .86;
}

.woocommerce-cart .ocko-discount__apply:focus-visible {
	outline: 2px solid var(--ocko-green);
	outline-offset: 2px;
}

/* ---- an applied coupon ---- */

.woocommerce-cart .ocko-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 4px 4px 4px 11px;
	border-radius: 999px;
	background: rgba(47, 107, 49, .12);
	color: var(--ocko-save);
	white-space: nowrap;
}

.woocommerce-cart .ocko-chip__amount {
	font-size: 13.5px;
	font-variant-numeric: tabular-nums;
}

.woocommerce-cart .ocko-chip .woocommerce-remove-coupon {
	display: grid;
	place-items: center;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: rgba(47, 107, 49, .2);
	color: var(--ocko-save);
	font-size: 13px;
	line-height: 1;
	text-decoration: none;
}

.woocommerce-cart .ocko-chip .woocommerce-remove-coupon:focus-visible {
	outline: 2px solid var(--ocko-save);
	outline-offset: 2px;
}

/* ---- the commit action ---- */

.woocommerce-cart .wc-proceed-to-checkout {
	margin: 16px 0 0;
	padding: 0;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	min-height: 54px;
	margin: 0;
	padding: 16px 24px;

	background: var(--ocko-green) !important;
	color: var(--ocko-cream) !important;
	border: 0 !important;
	border-radius: 999px !important;

	font-family: inherit;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .04em;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
	text-transform: none;
	transition: opacity .2s ease;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
	opacity: .88;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:focus-visible {
	outline: 2px solid var(--ocko-ink);
	outline-offset: 3px;
}

.woocommerce-cart .ocko-trust {
	margin: 12px 0 0;
	font-family: var(--ocko-mono);
	font-size: 9.5px;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	text-align: center;
	color: var(--ocko-muted);
}

/* -------------------------------------------------------------- notices ---- */

.woocommerce-cart .woocommerce-error,
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info {
	border-radius: var(--ocko-r);
}

.woocommerce-cart .woocommerce-info::before,
.woocommerce-cart .woocommerce-message::before,
.woocommerce-cart .woocommerce-error::before {
	display: none;
}

@media (prefers-reduced-motion: reduce) {
	.woocommerce-cart .ocko-cart__remove,
	.woocommerce-cart .ocko-discount__apply,
	.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
		transition-duration: .01ms;
	}
}

/* ============================================================================
   THE FOUR THINGS THAT MADE 5.25.0's CART LOOK BROKEN

   All four were theme rules out-specifying this file, and all four were
   measured on the live cart rather than guessed at.
   ========================================================================= */

/* 1. THE SUMMARY CARD WAS 226px WIDE AND ITS TABLE WAS 382px, so every figure
      escaped the card to the right - the subtotal and the total appeared to
      float on the page beside it.

      Cause: the theme's .woocommerce .cart-collaterals .cart_totals sets
      width:48% and float:right, three classes deep, which outranks the two
      in .woocommerce-cart .ocko-sum. Measured: cssFloat "right", computed
      width 226.34px inside a 470px column, with the ledger's min-content at
      382px. The table was never the bug; the column it sat in was. */
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-cart .cart-collaterals .cart_totals.ocko-sum {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	padding: 22px 22px 20px !important;
}

.woocommerce-cart .ocko-sum__table {
	min-width: 0 !important;
}

/* 2. THUMBNAILS RENDERED AT 32x32 despite carrying .ocko-cart__thumb - the
      theme sizes td.product-thumbnail img from a longer selector. Measured:
      computed width 32px on an element whose class list was correct, which is
      the signature of losing on specificity rather than on the selector. */
.woocommerce-cart .ocko-cart__table td.product-thumbnail img,
.woocommerce-cart .ocko-cart__table img.ocko-cart__thumb {
	width: 76px !important;
	height: 76px !important;
	max-width: 76px !important;
	border-radius: 10px;
	object-fit: cover;
}

@media (max-width: 720px) {
	.woocommerce-cart .ocko-cart__table td.product-thumbnail img,
	.woocommerce-cart .ocko-cart__table img.ocko-cart__thumb {
		width: 64px !important;
		height: 64px !important;
		max-width: 64px !important;
	}
}

/* 3. ALTERNATE ROWS WERE PAINTED rgb(251,251,251), which read as random white
      slabs behind every second product. The reset in this file cleared the
      background on the CELLS; the theme paints it on the ROW. */
.woocommerce-cart .ocko-cart__table tr,
.woocommerce-cart .ocko-cart__table tr.cart_item,
.woocommerce-cart .ocko-cart__table tr.cart_item td {
	background: transparent !important;
}

/* 4. THE QUANTITY FIELD IS A jQuery UI SPINNER, not a bare input. The theme
      calls .spinner() on it, which wraps the input in
      <span class="ui-spinner"> with two <a class="ui-spinner-button"> and an
      inline height, and paints its own +/- glyphs. That wrapper is wider than
      the column it was given, which is what pushed the subtotal underneath
      the quantity box in the screenshot.

      Rather than fight it or hide it, the wrapper becomes the field: one
      bordered box matching every other input on these two pages, with the two
      buttons stacked inside its right edge as chevrons. */
.woocommerce-cart .ocko-cart__table .quantity {
	display: block;
	width: 100%;
	margin: 0;
	float: none;
}

.woocommerce-cart .ocko-cart__table .ui-spinner {
	position: relative;
	display: block;
	width: 100%;
	height: 44px !important;
	background: var(--ocko-paper) !important;
	border: 1px solid var(--ocko-edge) !important;
	border-radius: var(--ocko-r) !important;
	overflow: hidden;
}

.woocommerce-cart .ocko-cart__table .ui-spinner input.qty {
	box-sizing: border-box;
	width: 100% !important;
	height: 42px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 30px 0 10px !important;
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	text-align: center;
	font-family: inherit;
	font-size: 15px;
}

.woocommerce-cart .ocko-cart__table .ui-spinner input.qty:focus {
	outline: none;
	box-shadow: none !important;
}

.woocommerce-cart .ocko-cart__table .ui-spinner:focus-within {
	border-color: var(--ocko-ink) !important;
	box-shadow: 0 0 0 3px rgba(36, 31, 32, .14);
}

.woocommerce-cart .ocko-cart__table .ui-spinner .ui-spinner-button {
	position: absolute;
	right: 0;
	width: 28px;
	height: 21px;
	margin: 0;
	padding: 0;
	background: none !important;
	border: 0 !important;
	border-left: 1px solid var(--ocko-hair) !important;
	border-radius: 0 !important;
	cursor: pointer;
	text-indent: -9999px;      /* the theme's own +/- glyph, replaced below */
	overflow: hidden;
}

.woocommerce-cart .ocko-cart__table .ui-spinner .ui-spinner-up {
	top: 0;
}

.woocommerce-cart .ocko-cart__table .ui-spinner .ui-spinner-down {
	bottom: 0;
	border-top: 1px solid var(--ocko-hair) !important;
}

/* Chevrons drawn from two borders, so there is no icon font to depend on. */
.woocommerce-cart .ocko-cart__table .ui-spinner .ui-spinner-button::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 5px;
	height: 5px;
	border-left: 1.4px solid var(--ocko-muted);
	border-top: 1.4px solid var(--ocko-muted);
	text-indent: 0;
}

.woocommerce-cart .ocko-cart__table .ui-spinner .ui-spinner-up::before {
	transform: translate(-50%, -30%) rotate(45deg);
}

.woocommerce-cart .ocko-cart__table .ui-spinner .ui-spinner-down::before {
	transform: translate(-50%, -70%) rotate(-135deg);
}

.woocommerce-cart .ocko-cart__table .ui-spinner .ui-spinner-button::after,
.woocommerce-cart .ocko-cart__table .ui-spinner .ui-icon {
	display: none !important;
	content: none !important;
}

/* -------------------------------------------------------- header contrast --

   NOT FIXED, and deliberately not guessed at.

   Reported as "[orilogy_auth] text is white on cart and checkout". What is
   actually measurable from a logged-OUT session:

     - the [orilogy_auth] trigger itself, button.olg-auth-trigger, computes to
       rgb(36,31,32) - already dark, on the homepage, the shop, the cart and
       the checkout alike;
     - the one cream element found, an Elementor custom-menu link reading
       "Login" at rgb(242,235,222), is not in the header at all - it renders at
       y=1670, inside div.has_eae_slider - and it ignores a colour override
       even at `body.woocommerce-checkout div.lqd-fancy-menu ul.reset-ul
       li#menu-item-5497 > a { color: ... !important }`, which is about as
       specific as a rule can get. Something other than a matched stylesheet
       rule is painting it;
     - and the faded word in the report is "Profile", which only renders for a
       logged-in user - a state this session cannot enter.

   So the element being complained about has not been identified, and a rule
   aimed at the wrong node would just add dead weight. The one thing claimed
   here is this module's OWN auth trigger, which is safe to own.
   -------------------------------------------------------------------------- */

.woocommerce-cart .olg-auth-trigger,
.woocommerce-cart .olg-auth-trigger * {
	color: var(--ocko-ink);
}

/* 5. THE LEDGER CELLS WERE PAINTED, which is what the pale slabs behind
      SUBTOTAL / SHIPMENT / TOTAL were. Measured: th rgb(248,248,248),
      td rgb(253,253,253), and one row striped rgb(251,251,251) on the <tr>.
      Three separate theme declarations, all out-specifying the plain
      `background: none` in this file. The card is white; the ledger must be
      the same white. */
.woocommerce-cart .ocko-sum__table,
.woocommerce-cart .ocko-sum__table tbody,
.woocommerce-cart .ocko-sum__table tr,
.woocommerce-cart .ocko-sum__table th,
.woocommerce-cart .ocko-sum__table td {
	background: transparent !important;
}
