/*
 * Mashin Irani — Classic cart skin. Restyles the WooCommerce classic cart ([woocommerce_cart]) to the
 * project design system: two-column card layout (items + sticky summary), styled rows, quantity stepper,
 * coupon row, and the navy proceed-to-checkout button. Responsive: items become cards on mobile.
 * Scoped to body.woocommerce-cart.
 */

/* ---------- Page shell + 2-column grid ---------- */
body.woocommerce-cart .woocommerce {
	max-width: var(--container, 1280px);
	margin-inline: auto;
	padding-inline: var(--pad-inline, clamp(16px, 4vw, 40px));
	display: grid;
	grid-template-columns: 1fr 360px;
	grid-template-areas:
		"notices notices"
		"items   summary";
	gap: var(--space-4, 16px) var(--space-10, 40px);
	align-items: start;
	padding-block: var(--space-6, 24px) var(--space-16, 64px);
}
body.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper { grid-area: notices; margin: 0; }
body.woocommerce-cart .woocommerce-cart-form { grid-area: items; margin: 0; }
body.woocommerce-cart .cart-collaterals { grid-area: summary; width: 100%; float: none; margin: 0; }
@media (max-width: 900px) {
	body.woocommerce-cart .woocommerce {
		grid-template-columns: 1fr;
		grid-template-areas: "notices" "items" "summary";
		gap: var(--space-5, 20px);
	}
}
body.woocommerce-cart .entry-title,
body.woocommerce-cart .page-title { font-size: clamp(1.5rem, 3vw, 1.9rem); margin: 0 0 var(--space-2, 8px); }

/* ---------- Cart items table (card) ---------- */
body.woocommerce-cart table.cart.shop_table {
	background: var(--bg-elevated, #fff);
	border: 1px solid var(--border, #d9cbc2);
	border-radius: var(--radius-lg, 12px);
	box-shadow: var(--shadow-e1, 0 1px 2px rgba(16, 33, 52, .06));
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	width: 100%;
	margin: 0;
}
body.woocommerce-cart table.cart thead th {
	background: var(--bg-sunken, #ece4da);
	font-size: .72rem;
	font-weight: 700;
	color: var(--text-tertiary, #6e6a66);
	text-align: start;
	padding: var(--space-3, 12px) var(--space-4, 16px);
	border: 0;
	letter-spacing: .02em;
}
body.woocommerce-cart table.cart tbody td {
	padding: var(--space-4, 16px);
	border: 0;
	border-top: 1px solid var(--border, #d9cbc2);
	vertical-align: middle;
	background: transparent;
}
body.woocommerce-cart table.cart tbody tr:first-child td { border-top: 0; }
body.woocommerce-cart td.product-remove { width: 40px; text-align: center; }
body.woocommerce-cart td.product-remove .remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: var(--radius-pill, 999px);
	background: var(--bg-sunken, #ece4da);
	color: var(--text-tertiary, #6e6a66) !important;
	font-size: 20px;
	line-height: 1;
	text-decoration: none;
	transition: background-color var(--duration-fast, 120ms), color var(--duration-fast, 120ms);
}
body.woocommerce-cart td.product-remove .remove:hover { background: var(--clay-error, #b4402e); color: #fff !important; }
body.woocommerce-cart td.product-thumbnail { width: 84px; }
body.woocommerce-cart td.product-thumbnail img {
	width: 64px;
	height: 78px;
	object-fit: contain;
	border-radius: var(--radius-sm, 4px);
	background: linear-gradient(160deg, #fbf8f3, var(--n-100, #ece4da));
	border: 1px solid var(--border, #d9cbc2);
}
body.woocommerce-cart td.product-name { font-weight: 600; }
body.woocommerce-cart td.product-name a { color: var(--text-primary, #102134); text-decoration: none; }
body.woocommerce-cart td.product-name a:hover { color: var(--link, #3c507d); }
body.woocommerce-cart td.product-price,
body.woocommerce-cart td.product-subtotal { color: var(--text-secondary, #404751); white-space: nowrap; }
body.woocommerce-cart td.product-subtotal { font-weight: 700; color: var(--navy-900, #102134); }

/* quantity stepper */
body.woocommerce-cart td.product-quantity .quantity { display: inline-flex; align-items: center; }
body.woocommerce-cart td.product-quantity input.qty {
	width: 68px;
	min-height: 40px;
	text-align: center;
	border: 1.5px solid var(--border, #d9cbc2);
	border-radius: var(--radius-sm, 4px);
	background: var(--bg-elevated, #fff);
	color: var(--navy-900, #102134);
	font-family: inherit;
	font-size: .9rem;
	padding: var(--space-2, 8px);
}
body.woocommerce-cart td.product-quantity input.qty:focus { outline: 2px solid var(--link, #3c507d); outline-offset: 1px; border-color: transparent; }

/* ---------- Actions row (coupon + update) ---------- */
body.woocommerce-cart td.actions {
	padding: var(--space-4, 16px);
	border-top: 1px solid var(--border, #d9cbc2);
	background: var(--bg-base, #f5f0e9);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3, 12px);
}
body.woocommerce-cart td.actions .coupon { display: flex; gap: var(--space-2, 8px); flex-wrap: wrap; align-items: center; }
body.woocommerce-cart td.actions .coupon label { display: none; }
body.woocommerce-cart td.actions .coupon input#coupon_code {
	min-height: 44px;
	min-width: 180px;
	padding: var(--space-3, 12px) var(--space-4, 16px);
	border: 1.5px solid var(--border, #d9cbc2);
	border-radius: var(--radius-sm, 4px);
	background: var(--bg-elevated, #fff);
	color: var(--navy-900, #102134);
	font-family: inherit;
	font-size: .9rem;
}
body.woocommerce-cart td.actions .button {
	min-height: 44px;
	padding: var(--space-2, 8px) var(--space-5, 20px);
	border-radius: var(--radius-md, 8px);
	font-family: inherit;
	font-weight: 600;
	font-size: .9rem;
	cursor: pointer;
	border: 1.5px solid var(--border-strong, #c0b2a6);
	background: transparent;
	color: var(--text-primary, #102134);
	transition: background-color var(--duration-fast, 120ms), border-color var(--duration-fast, 120ms);
}
body.woocommerce-cart td.actions .coupon .button:hover { border-color: var(--navy-800, #112250); }
body.woocommerce-cart td.actions button[name="update_cart"] { background: var(--bg-elevated, #fff); }
body.woocommerce-cart td.actions button[name="update_cart"]:disabled { opacity: .5; }

/* ---------- Cart totals (summary card) ---------- */
body.woocommerce-cart .cart-collaterals .cart_totals {
	width: 100%;
	float: none;
	background: var(--bg-elevated, #fff);
	border: 1px solid var(--border, #d9cbc2);
	border-radius: var(--radius-lg, 12px);
	box-shadow: var(--shadow-e2, 0 4px 12px rgba(16, 33, 52, .08));
	padding: var(--space-5, 20px);
	position: sticky;
	top: 96px;
}
@media (max-width: 900px) { body.woocommerce-cart .cart_totals { position: static; } }
body.woocommerce-cart .cart_totals h2 {
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--text-primary, #102134);
	margin: 0 0 var(--space-4, 16px);
	padding-bottom: var(--space-3, 12px);
	border-bottom: 1px solid var(--border, #d9cbc2);
}
body.woocommerce-cart .cart_totals table { width: 100%; table-layout: fixed; border-collapse: collapse; margin: 0; border: 0; background: transparent; }
body.woocommerce-cart .cart_totals table tr,
body.woocommerce-cart .cart_totals table th,
body.woocommerce-cart .cart_totals table td { background: transparent; }
body.woocommerce-cart .cart_totals table th,
body.woocommerce-cart .cart_totals table td {
	padding: var(--space-2, 8px) 0;
	border: 0;
	font-size: .9rem;
	text-align: start;
	vertical-align: top;
}
body.woocommerce-cart .cart_totals table th { font-weight: 600; color: var(--text-secondary, #404751); }
body.woocommerce-cart .cart_totals table td { text-align: end; color: var(--text-secondary, #404751); }
body.woocommerce-cart .cart_totals .cart-subtotal th,
body.woocommerce-cart .cart_totals .cart-subtotal td { padding-bottom: var(--space-3, 12px); }
body.woocommerce-cart .cart_totals .order-total { border-top: 1px solid var(--border, #d9cbc2); }
body.woocommerce-cart .cart_totals .order-total th {
	font-size: 1rem;
	color: var(--navy-900, #102134);
	padding-top: var(--space-3, 12px);
}
body.woocommerce-cart .cart_totals .order-total td { padding-top: var(--space-3, 12px); }
body.woocommerce-cart .cart_totals .order-total .amount { font-size: 1.3rem; font-weight: 700; color: var(--navy-900, #102134); }

/* shipping methods inside totals */
body.woocommerce-cart .cart_totals #shipping_method { list-style: none; margin: 0; padding: 0; }
body.woocommerce-cart .cart_totals #shipping_method li { margin-bottom: var(--space-2, 8px); display: flex; align-items: flex-start; gap: var(--space-2, 8px); }
body.woocommerce-cart .cart_totals #shipping_method li:last-child { margin-bottom: 0; }
body.woocommerce-cart .cart_totals #shipping_method input[type="radio"] { accent-color: var(--navy-800, #112250); margin-top: 4px; flex: none; }
body.woocommerce-cart .cart_totals #shipping_method label { font-size: .85rem; color: var(--text-secondary, #404751); margin: 0; line-height: 1.6; }
body.woocommerce-cart .cart_totals .woocommerce-shipping-destination { font-size: .8rem; color: var(--text-tertiary, #6e6a66); margin-top: var(--space-2, 8px); }

/* proceed to checkout */
body.woocommerce-cart .wc-proceed-to-checkout { padding: var(--space-4, 16px) 0 0; }
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
body.woocommerce-cart .wc-proceed-to-checkout a.button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	background: var(--action-buy, #112250);
	color: var(--ivory-50, #f5f0e9);
	border: 0;
	border-radius: var(--radius-md, 8px);
	font-family: inherit;
	font-weight: 700;
	font-size: 1.05rem;
	padding: var(--space-4, 16px) var(--space-8, 32px);
	min-height: 54px;
	box-shadow: var(--shadow-e1, 0 1px 2px rgba(16, 33, 52, .06));
	text-decoration: none;
	transition: background-color var(--duration-fast, 120ms), box-shadow var(--duration-fast, 120ms);
}
body.woocommerce-cart .wc-proceed-to-checkout a.button:hover { background: #0c1b3f; box-shadow: var(--shadow-e2, 0 4px 12px rgba(16, 33, 52, .08)); }

/* notices */
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error {
	border: 0;
	border-radius: var(--radius-md, 8px);
	padding: var(--space-4, 16px) var(--space-5, 20px);
	list-style: none;
}
body.woocommerce-cart .woocommerce-message::before,
body.woocommerce-cart .woocommerce-info::before,
body.woocommerce-cart .woocommerce-error::before { display: none; }
body.woocommerce-cart .woocommerce-message { background: #eaf6f0; border-inline-start: 3px solid var(--success, #2e7d5b); color: var(--success, #2e7d5b); }
body.woocommerce-cart .woocommerce-info { background: var(--bg-sunken, #ece4da); border-inline-start: 3px solid var(--link, #3c507d); color: var(--text-secondary, #404751); }
body.woocommerce-cart .woocommerce-error { background: #fdecea; border-inline-start: 3px solid var(--clay-error, #b4402e); color: var(--clay-error, #b4402e); }
body.woocommerce-cart .woocommerce-info a,
body.woocommerce-cart .woocommerce-message a { color: var(--link, #3c507d); font-weight: 600; }
/* empty-cart return button */
body.woocommerce-cart .cart-empty + p.return-to-shop .button,
body.woocommerce-cart .wc-empty-cart-message + p .button {
	background: var(--action-buy, #112250); color: var(--ivory-50, #f5f0e9); border: 0;
	border-radius: var(--radius-md, 8px); padding: var(--space-3, 12px) var(--space-6, 24px); min-height: 48px;
	display: inline-flex; align-items: center; text-decoration: none; font-weight: 600;
}

/* ---------- Responsive: each cart item becomes a card ---------- */
@media (max-width: 768px) {
	body.woocommerce-cart table.cart.shop_table { border: 0; box-shadow: none; background: transparent; overflow: visible; }
	body.woocommerce-cart table.cart thead { display: none; }
	body.woocommerce-cart table.cart tbody { display: block; }
	body.woocommerce-cart table.cart tbody tr.woocommerce-cart-form__cart-item {
		display: grid;
		grid-template-columns: 64px 1fr;
		grid-template-areas:
			"thumb name"
			"thumb price"
			"qty   subtotal";
		gap: var(--space-2, 8px) var(--space-3, 12px);
		align-items: center;
		background: var(--bg-elevated, #fff);
		border: 1px solid var(--border, #d9cbc2);
		border-radius: var(--radius-md, 8px);
		box-shadow: var(--shadow-e1, 0 1px 2px rgba(16, 33, 52, .06));
		padding: var(--space-4, 16px);
		margin-bottom: var(--space-3, 12px);
		position: relative;
	}
	body.woocommerce-cart table.cart tbody td {
		display: flex;
		align-items: center;
		gap: var(--space-2, 8px);
		border: 0;
		padding: 0;
		text-align: start !important;
	}
	body.woocommerce-cart table.cart tbody td::before {
		content: attr(data-title);
		font-size: .72rem;
		font-weight: 700;
		color: var(--text-tertiary, #6e6a66);
		margin-inline-end: auto;
	}
	body.woocommerce-cart td.product-thumbnail { grid-area: thumb; }
	body.woocommerce-cart td.product-thumbnail::before { display: none; }
	body.woocommerce-cart td.product-name { grid-area: name; }
	body.woocommerce-cart td.product-name::before { display: none; }
	body.woocommerce-cart td.product-price { grid-area: price; }
	body.woocommerce-cart td.product-quantity { grid-area: qty; }
	body.woocommerce-cart td.product-subtotal { grid-area: subtotal; }
	body.woocommerce-cart td.product-remove {
		position: absolute;
		top: var(--space-3, 12px);
		inset-inline-end: var(--space-3, 12px);
		width: auto;
		padding: 0;
	}
	body.woocommerce-cart td.product-remove::before { display: none; }
	body.woocommerce-cart td.actions {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		border: 1px solid var(--border, #d9cbc2);
		border-radius: var(--radius-md, 8px);
		margin-top: var(--space-2, 8px);
	}
	body.woocommerce-cart td.actions::before { display: none; }
	body.woocommerce-cart td.actions .coupon { width: 100%; }
	body.woocommerce-cart td.actions .coupon input#coupon_code { flex: 1; min-width: 0; }
}
