/**
 * Cart redesign — items/cards. Scoped to .ps-cart-redesign
 * (woocommerce/cart/cart.php). Tokens mirror abstracts/_variable.scss.
 * Summary panel, loader, and responsive rules live in
 * cart-redesign-summary.css (enqueued after this file).
 *
 * Customer-facing rule: no shipping/printing cost rows are rendered here.
 */

.ps-cart-redesign {
	--ps-font-primary: "Jost", Arial, sans-serif;
	--ps-color-primary: #1b6f58;
	--ps-color-secondary: #38524b;
	--ps-color-heading: #000;
	--ps-color-text: #7e7e7e;
	--ps-color-muted: #9b9b9b;
	--ps-color-border: #eee;
	--ps-color-border-strong: #ccc;
	--ps-color-surface: #fff;
	--ps-color-canvas: #f7f8f9;
	--ps-color-soft: #e2f5f2;
	--ps-color-info: #00b9ff;
	--ps-radius-card: 8px;
	--ps-radius-control: 5px;
	--ps-control-height: 48px;
	--ps-shadow-subtle: 0 8px 22px rgba(0, 0, 0, .06);
	--ps-page-max: 1440px;

	max-width: var(--ps-page-max);
	margin: 0 auto;
	padding: 8px 0 24px;
	color: var(--ps-color-heading);
	font-family: var(--ps-font-primary);
	font-size: 16px;
	line-height: 1.45;
}

.ps-cart-redesign * { box-sizing: border-box; }
.ps-cart-redesign a { color: inherit; text-decoration: none; }
.ps-cart-redesign button, .ps-cart-redesign input { font: inherit; }
.ps-cart-redesign h1, .ps-cart-redesign h2, .ps-cart-redesign p { margin-top: 0; }
.ps-cart-redesign h1 { margin-bottom: 0; font-size: 34px; line-height: 1.12; }
.ps-cart-redesign h2 { margin-bottom: 0; font-size: 18px; line-height: 1.2; color: var(--ps-color-heading); }

.ps-cart-redesign .cart-heading,
.ps-cart-redesign .line-title-row,
.ps-cart-redesign .cart-footer-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.ps-cart-redesign .eyebrow {
	margin: 0 0 6px;
	color: var(--ps-color-primary);
	font-size: 12px;
	font-weight: 800;
	text-transform: uppercase;
}

/* Neutralize the theme's narrow form constraint so the layout fills the page. */
.ps-cart-redesign .woocommerce-cart-form {
	max-width: none;
	margin: 0;
}

.ps-cart-redesign .cart-layout {
	display: flex;
	align-items: flex-start;
	gap: 24px;
	margin-top: 32px;
}

.ps-cart-redesign .cart-main { flex: 1 1 auto; min-width: 0; }

.ps-cart-redesign .cart-line,
.ps-cart-redesign .summary-panel {
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius-card);
	background: var(--ps-color-surface);
	box-shadow: var(--ps-shadow-subtle);
}

.ps-cart-redesign .ps-cart-items { display: grid; gap: 18px; }

.ps-cart-redesign .cart-line {
	display: grid;
	grid-template-columns: 44px 120px minmax(0, 1fr) 154px;
	gap: 24px;
	padding: 24px;
	margin: 0;
}

.ps-cart-redesign .line-remove { padding-top: 42px; }

.ps-cart-redesign .icon-button {
	display: inline-grid;
	place-items: center;
	width: 38px;
	height: 38px;
	padding: 0;
	border: 1px solid transparent;
	border-radius: var(--ps-radius-control);
	background: transparent;
	color: #000;
	cursor: pointer;
	font-size: 18px;
}

.ps-cart-redesign .icon-button:hover { border-color: var(--ps-color-border-strong); }

.ps-cart-redesign .line-media { display: block; }
.ps-cart-redesign .line-media img {
	display: block;
	width: 120px;
	height: 120px;
	border-radius: var(--ps-radius-card);
	object-fit: cover;
}

.ps-cart-redesign .line-content { min-width: 0; }
.ps-cart-redesign .line-title-main { min-width: 0; }

.ps-cart-redesign .line-kicker {
	margin: 0 0 4px;
	color: var(--ps-color-text);
	font-size: 13px;
	font-weight: 700;
}

.ps-cart-redesign .line-content h2 a { color: inherit; }
.ps-cart-redesign .line-sku {
	margin: 6px 0 0;
	color: var(--ps-color-text);
	font-size: 13px;
	word-break: break-word;
}

.ps-cart-redesign .line-total {
	font-size: 22px;
	font-weight: 800;
	white-space: nowrap;
	color: var(--ps-color-heading);
}
.ps-cart-redesign .line-total .woocommerce-Price-amount { font-size: inherit; font-weight: inherit; }

.ps-cart-redesign .line-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 18px 0;
}

.ps-cart-redesign .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: var(--ps-control-height);
	padding: 0 18px;
	border: 1px solid transparent;
	border-radius: var(--ps-radius-control);
	cursor: pointer;
	font-weight: 800;
	font-size: 14px;
	line-height: 1;
	text-align: center;
}

.ps-cart-redesign .button-primary { background: var(--ps-color-primary); color: #fff; }
.ps-cart-redesign .button-secondary { border-color: var(--ps-color-border-strong); background: #fff; color: #000; }
.ps-cart-redesign .button-ghost { border-color: var(--ps-color-border); background: var(--ps-color-canvas); color: #000; }
.ps-cart-redesign .button-dark { background: #000; color: #fff; }
.ps-cart-redesign .button i { font-size: 16px; }

/* Designer-plugin cart buttons (NBDesigner/WCDP) are injected into .line-actions
   via woocommerce_after_cart_item_name. Each sits in its own wrapper div — flatten
   them into the flex row and paint as prototype primary/secondary/ghost buttons. */
.ps-cart-redesign .line-actions .nbd-cart-upload-file { display: contents; }
.ps-cart-redesign .line-actions .nbd-create-design,
.ps-cart-redesign .line-actions .nbd-upload-design,
.ps-cart-redesign .line-actions .nbo-edit-option-cart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: var(--ps-control-height);
	margin: 0;
	padding: 0 18px;
	border: 1px solid transparent;
	border-radius: var(--ps-radius-control);
	cursor: pointer;
	font-weight: 800;
	font-size: 14px;
	line-height: 1;
	text-decoration: none;
}
.ps-cart-redesign .line-actions .nbd-create-design { background: var(--ps-color-primary) !important; color: #fff !important; }
.ps-cart-redesign .line-actions .nbd-upload-design { border-color: var(--ps-color-border-strong) !important; background: #fff !important; color: #000 !important; }
.ps-cart-redesign .line-actions .nbo-edit-option-cart { border-color: var(--ps-color-border) !important; background: var(--ps-color-canvas) !important; color: #000 !important; }

.ps-cart-redesign .spec-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 18px;
	margin: 0;
	padding: 16px 0;
	border-top: 1px solid var(--ps-color-border);
	border-bottom: 1px solid var(--ps-color-border);
}

.ps-cart-redesign .spec-grid div { min-width: 0; margin: 0; }
.ps-cart-redesign .spec-grid dt { color: #000; font-size: 13px; font-weight: 800; }
.ps-cart-redesign .spec-grid dd { margin: 2px 0 0; color: var(--ps-color-secondary); font-size: 14px; }

.ps-cart-redesign .fulfillment-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-top: 16px;
}

.ps-cart-redesign .fulfillment-row div { display: grid; gap: 3px; min-width: 0; }
.ps-cart-redesign .fulfillment-row i { color: var(--ps-color-primary); font-size: 20px; }
.ps-cart-redesign .fulfillment-row span { color: var(--ps-color-text); font-size: 13px; }
.ps-cart-redesign .fulfillment-row strong { font-size: 14px; }

.ps-cart-redesign .line-controls { display: grid; align-content: start; gap: 14px; }

.ps-cart-redesign .line-controls .quantity {
	display: grid;
	grid-template-columns: 38px 1fr 38px;
	align-items: center;
	overflow: hidden;
	border: 1px solid var(--ps-color-border);
	border-radius: var(--ps-radius-control);
	background: var(--ps-color-canvas);
}

.ps-cart-redesign .line-controls .quantity .input-button {
	height: 38px;
	min-width: 0 !important;
	padding: 0;
	border: 0;
	/* Override theme's 12px pill radius on .quantity .input-button.minus/plus */
	border-radius: 0 !important;
	background: transparent;
	color: #000;
	cursor: pointer;
	text-align: center;
	font-size: 16px;
}
.ps-cart-redesign .line-controls .quantity .input-button::before { font-family: 'phosphor'; }
.ps-cart-redesign .line-controls .quantity .input-button.minus::before { content: '\e923'; }
.ps-cart-redesign .line-controls .quantity .input-button.plus::before { content: '\e921'; }

.ps-cart-redesign .line-controls .quantity input,
.ps-cart-redesign .line-controls .quantity .input-text {
	width: 100%;
	height: 38px;
	border: 0;
	background: transparent;
	text-align: center;
	font-weight: 800;
	-moz-appearance: textfield;
}
.ps-cart-redesign .line-controls .quantity input::-webkit-outer-spin-button,
.ps-cart-redesign .line-controls .quantity input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.ps-cart-redesign .cart-footer-actions { margin-top: 20px; flex-wrap: wrap; gap: 12px; }
/* Plugin-injected cart actions (e.g. "Clear cart") get real button chrome to
   match the rest of the page; destructive-red hint on hover. */
.ps-cart-redesign .cart-footer-actions a:not(.button),
.ps-cart-redesign .cart-footer-actions button:not(.button) {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: var(--ps-control-height);
	padding: 0 18px;
	border: 1px solid var(--ps-color-border-strong);
	border-radius: var(--ps-radius-control);
	background: #fff;
	color: #000;
	cursor: pointer;
	font-weight: 800;
	font-size: 14px;
	line-height: 1;
	text-decoration: none;
}
.ps-cart-redesign .cart-footer-actions a:not(.button):hover,
.ps-cart-redesign .cart-footer-actions button:not(.button):hover {
	border-color: #d82329;
	color: #d82329;
}
/* WooCommerce's "Clear cart" ships as .button.empty-cart-button and the theme
   strips its chrome — re-style it as a secondary button (destructive-red hover). */
.ps-cart-redesign .cart-footer-actions .empty-cart-button {
	border: 1px solid var(--ps-color-border-strong) !important;
	border-radius: var(--ps-radius-control) !important;
	background: #fff !important;
	color: #000 !important;
	padding: 0 18px !important;
	text-decoration: none !important;
}
.ps-cart-redesign .cart-footer-actions .empty-cart-button:hover {
	border-color: #d82329 !important;
	color: #d82329 !important;
}
.ps-cart-redesign .rps-update-cart-hidden { position: absolute; left: -9999px; opacity: 0; }
