/**
 * Cart redesign — order summary, coupons, checkout CTA, update loader, and
 * responsive rules. Scoped to .ps-cart-redesign. Enqueued after
 * cart-redesign.css (which defines the design tokens used here).
 *
 * Customer-facing rule: only the final "Total due" is shown — no subtotal,
 * shipping, or tax breakdown rows.
 */

.ps-cart-redesign .summary-panel {
	position: sticky;
	top: 138px;
	flex: 0 0 min(420px, 32vw);
	padding: 24px;
	/* Prevent the theme from treating this as a flex row */
	display: block;
}

/* Override theme: .woocommerce-cart .cart_totals { flex:0 0 50%; width:50%; padding-left:15px }
   which squishes the checkout button to ~185px inside the summary panel. */
.ps-cart-redesign .cart_totals {
	flex: none !important;
	width: 100% !important;
	padding-left: 0 !important;
	margin-left: 0 !important;
}

/* Override theme: .woocommerce-cart .cart_totals > h2 { display:none }
   Our h2 "Order summary" must be visible. */
.ps-cart-redesign .cart_totals > h2 {
	display: block !important;
	font-size: 18px;
	margin-bottom: 10px;
}

/* Override theme: .woocommerce-cart .cart-coupon { display:flex; flex-wrap:wrap;
   border-top:1px solid; margin-top:50px; max-width:1170px }
   Inside our summary panel the coupon lives inline — no top border, no huge margin. */
.ps-cart-redesign .cart-coupon {
	display: block !important;
	max-width: none !important;
	margin: 0 0 16px !important;
	border-top: 0 !important;
	padding: 0 !important;
}
.ps-cart-redesign .cart-coupon > label { display: block; margin-bottom: 8px; color: #000; font-size: 13px; font-weight: 800; }

/* Override theme: .woocommerce-cart .cart-coupon .coupon { flex:0 0 50%; padding-right:15px }
   We need the coupon row to be a full-width flex row (input + button side-by-side). */
.ps-cart-redesign .cart-coupon .coupon {
	display: flex !important;
	align-items: center;
	gap: 8px;
	width: 100% !important;
	float: none !important;
	flex: none !important;
	padding-right: 0 !important;
}
.ps-cart-redesign .cart-coupon input {
	flex: 1 1 auto;
	min-width: 0;
	width: 100% !important;
	height: var(--ps-control-height);
	border: 1px solid var(--ps-color-border-strong);
	border-radius: var(--ps-radius-control);
	padding: 0 14px;
	margin: 0;
	background: #fff;
	color: #000;
	outline: none;
}
.ps-cart-redesign .cart-coupon input:focus {
	border-color: var(--ps-color-info);
	box-shadow: 0 0 0 3px rgba(0, 185, 255, .15);
}
/* Override theme: .woocommerce-cart .cart-coupon .coupon .button { margin-top:20px } */
.ps-cart-redesign .cart-coupon .coupon > .button { flex: 0 0 auto; white-space: nowrap; margin-top: 0 !important; }

/* summary-note lives inside .cart_totals — needs explicit font-size override */
.ps-cart-redesign .cart_totals .summary-note,
.ps-cart-redesign .summary-note { margin-bottom: 18px; color: var(--ps-color-text); font-size: 14px !important; }

.ps-cart-redesign .summary-coupons { list-style: none; margin: 14px 0; padding: 0; display: grid; gap: 8px; }
.ps-cart-redesign .summary-coupon {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 8px 12px;
	border-radius: var(--ps-radius-control);
	background: var(--ps-color-soft);
	color: var(--ps-color-primary);
	font-size: 13px;
	font-weight: 800;
}
.ps-cart-redesign .summary-coupon span { display: inline-flex; align-items: center; gap: 6px; }
.ps-cart-redesign .summary-coupon__remove { color: var(--ps-color-primary); font-size: 18px; line-height: 1; }

.ps-cart-redesign .summary-total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin: 20px 0;
	font-weight: 800;
}
.ps-cart-redesign .summary-total > span { font-size: 16px; white-space: nowrap; }
.ps-cart-redesign .summary-total strong { color: var(--ps-color-primary); font-size: 28px; text-align: right; white-space: nowrap; }
.ps-cart-redesign .summary-total strong .woocommerce-Price-amount { font-size: inherit; }
.ps-cart-redesign .summary-total .includes_tax,
.ps-cart-redesign .summary-total small { display: block; color: var(--ps-color-text); font-size: 12px; font-weight: 600; }

.ps-cart-redesign .wc-proceed-to-checkout { margin: 0; }
.ps-cart-redesign .wc-proceed-to-checkout .checkout-button,
.ps-cart-redesign .checkout-button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	min-height: 56px;
	margin: 0 !important;
	padding: 0 18px !important;
	border: 0 !important;
	border-radius: var(--ps-radius-control) !important;
	background: var(--ps-color-info) !important;
	color: #fff !important;
	font-size: 15px !important;
	font-weight: 800 !important;
	text-transform: uppercase;
	text-align: center;
	white-space: nowrap;
}
.ps-cart-redesign .wc-proceed-to-checkout .checkout-button:hover { opacity: .92; }

.ps-cart-redesign .trust-row {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: 16px;
	gap: 14px;
	flex-wrap: wrap;
}
.ps-cart-redesign .trust-row span { display: inline-flex; align-items: center; gap: 5px; color: var(--ps-color-text); font-size: 13px; white-space: nowrap; }

/* Update loader (moved out of cart.php inline style) */
.ps-cart-redesign .woocommerce-cart-form__contents.rps-cart-updating,
.ps-cart-redesign .cart_totals.rps-cart-updating { position: relative; pointer-events: none; }
.ps-cart-redesign .rps-cart-updating::after {
	content: ''; position: absolute; inset: 0; background: rgba(255, 255, 255, .65); z-index: 5; border-radius: var(--ps-radius-card);
}
.ps-cart-redesign .rps-cart-updating::before {
	content: ''; position: absolute; top: 50%; left: 50%; width: 28px; height: 28px; margin: -14px 0 0 -14px;
	border: 3px solid var(--ps-color-primary); border-top-color: transparent; border-radius: 50%;
	animation: rps-cart-spin .7s linear infinite; z-index: 6;
}
@keyframes rps-cart-spin { to { transform: rotate(360deg); } }

/* Responsive */
@media (max-width: 1180px) {
	.ps-cart-redesign .cart-layout { display: grid; }
	.ps-cart-redesign .summary-panel { position: static; width: 100%; flex: none; }
}

@media (max-width: 860px) {
	.ps-cart-redesign h1 { font-size: 30px; }
	.ps-cart-redesign .cart-heading { align-items: flex-start; flex-direction: column; }
	.ps-cart-redesign .cart-line { grid-template-columns: 38px 88px minmax(0, 1fr); gap: 16px; padding: 18px; }
	.ps-cart-redesign .line-remove { padding-top: 0; }
	.ps-cart-redesign .line-media img { width: 88px; height: 88px; }
	.ps-cart-redesign .line-content { grid-column: 2 / -1; }
	.ps-cart-redesign .line-controls { grid-column: 1 / -1; }
	.ps-cart-redesign .line-controls .quantity { max-width: 180px; }
}

@media (max-width: 620px) {
	.ps-cart-redesign { font-size: 15px; }
	.ps-cart-redesign h1 { font-size: 26px; }
	.ps-cart-redesign .cart-line { grid-template-columns: 34px 64px minmax(0, 1fr); gap: 12px; padding: 14px; }
	.ps-cart-redesign .line-media img { width: 64px; height: 64px; }
	.ps-cart-redesign .line-title-row { align-items: flex-start; flex-direction: column; gap: 8px; }
	.ps-cart-redesign .line-total { font-size: 20px; }
	/* Stretch ALL designer action buttons full-width on small screens, including
	   .nbo-edit-option-cart which lacks the .button class and misses the generic rule */
	.ps-cart-redesign .line-actions .button,
	.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 { flex: 1 1 100%; }
	.ps-cart-redesign .spec-grid,
	.ps-cart-redesign .fulfillment-row { grid-template-columns: 1fr; }
	.ps-cart-redesign .cart-footer-actions { align-items: stretch; flex-direction: column; }
	.ps-cart-redesign .cart-coupon .coupon { flex-direction: column; align-items: stretch; }
	.ps-cart-redesign .summary-total strong { font-size: 24px; }
}
