/**
 * Cart — Shopify style (getdesign.md → shopify), same tokens as checkout.css.
 * Brand: Google Sans (theme font) + #155dff, numbers in Inter (tabular).
 *
 * Layout: title row → item list (thumb · name/price/remove · line total) → summary bottom right.
 * Coupon field lives on the checkout page, so the cart's coupon box is hidden.
 */

body.woocommerce-cart {
	--tp-primary: #155dff;
	--tp-primary-hover: #3e6fff;
	--tp-primary-press: #0e4ae0;
	--tp-ink: #1f3147;
	--tp-muted: #6b7384;
	--tp-disabled: #a9b1bf;
	--tp-border: #d8dee7;
	--tp-hairline: #e6ebf5;
	--tp-tint: #f0f4ff;
	--tp-danger: #dc3545;
	--tp-r-sm: 8px;
	--tp-r-lg: 12px;
	--tp-r-pill: 9999px;
	--tp-font-num: "Inter", "Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

body.woocommerce-cart .tp-section-body > .woocommerce {
	color: var(--tp-ink);
}

/* ---------- Title row ---------- */

body.woocommerce-cart .tp-cart-header {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 8px 24px;
	margin-bottom: 32px;
}

body.woocommerce-cart .tp-cart-title {
	margin: 0;
	font-size: 40px;
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: 0;
	color: var(--tp-ink);
}

body.woocommerce-cart .tp-cart-continue {
	font-size: 14px;
	color: var(--tp-primary);
	text-decoration: underline;
	text-underline-offset: 3px;
}

body.woocommerce-cart .tp-cart-continue:hover {
	color: var(--tp-primary-hover);
}

/* ---------- Notices (item removed, etc.) ---------- */

body.woocommerce-cart .woocommerce-notices-wrapper:not(:empty) {
	margin-bottom: 24px;
}

body.woocommerce-cart .woocommerce-notices-wrapper :is(.woocommerce-message, .woocommerce-info) {
	margin: 0;
	padding: 16px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--tp-ink);
	background: var(--tp-tint);
	border: 0;
	border-radius: var(--tp-r-lg);
}

body.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-error {
	margin: 0;
	padding: 16px;
	font-size: 14px;
	color: var(--tp-ink);
	background: #fdf2f3;
	border: 1px solid #f5c2c7;
	border-radius: var(--tp-r-lg);
}

body.woocommerce-cart .woocommerce-notices-wrapper a {
	color: var(--tp-primary);
	text-decoration: underline;
}

/* ---------- Item list (table → grid rows) ---------- */

body.woocommerce-cart .woocommerce-cart-form {
	margin: 0;
	overflow: visible;
	border: 0;
	border-radius: 0;
}

body.woocommerce-cart .woocommerce-cart-form__contents,
body.woocommerce-cart .woocommerce-cart-form__contents :is(thead, tbody) {
	display: block;
	width: 100%;
	margin: 0;
	border: 0;
	background: transparent;
}

/* Column labels: "Sản phẩm" … "Tạm tính" */
body.woocommerce-cart .woocommerce-cart-form thead tr {
	display: flex;
	justify-content: space-between;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--tp-hairline);
	line-height: 1.2;
}

body.woocommerce-cart .woocommerce-cart-form thead th {
	display: none;
}

body.woocommerce-cart .woocommerce-cart-form thead :is(th.product-name, th.product-subtotal) {
	display: block;
	padding: 0;
	font-size: 12px !important; /* old cart.css used !important on th/td */
	font-weight: 400;
	letter-spacing: 0.72px;
	text-transform: uppercase;
	color: var(--tp-muted);
}

body.woocommerce-cart .woocommerce-cart-form tbody tr.cart_item {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr) auto;
	grid-template-areas:
		"thumb name   total"
		"thumb price  total"
		"thumb qty    total"
		"thumb remove total";
	grid-template-rows: auto auto auto 1fr;
	column-gap: 24px;
	align-items: start;
	padding: 24px 0;
	border: 0;
	border-bottom: 1px solid var(--tp-hairline);
}

body.woocommerce-cart .woocommerce-cart-form tbody tr.cart_item > :is(td, th) {
	display: block;
	padding: 0;
	font-size: 14px !important;
	line-height: 1.5;
	text-align: left;
	background: transparent;
	border: 0;
}

/* the cart table prints "Label:" before each cell on mobile */
body.woocommerce-cart .woocommerce-cart-form tbody :is(td, th)[data-title]::before {
	display: none;
	content: none;
}

body.woocommerce-cart .woocommerce-cart-form td.product-thumbnail {
	grid-area: thumb;
}

body.woocommerce-cart .woocommerce-cart-form td.product-thumbnail img {
	display: block;
	width: 96px;
	max-width: none;
	height: 96px;
	object-fit: cover;
	background: #fff;
	border: 1px solid var(--tp-hairline);
	border-radius: var(--tp-r-sm);
}

body.woocommerce-cart .woocommerce-cart-form tbody tr.cart_item > th.product-name {
	grid-area: name;
	font-size: 16px !important;
	font-weight: 500;
}

body.woocommerce-cart .woocommerce-cart-form th.product-name a {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	color: var(--tp-ink);
	text-decoration: none;
}

body.woocommerce-cart .woocommerce-cart-form th.product-name a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

body.woocommerce-cart .woocommerce-cart-form td.product-price {
	grid-area: price;
	margin-top: 4px;
	color: var(--tp-muted);
}

body.woocommerce-cart .woocommerce-cart-form td.product-quantity {
	grid-area: qty;
}

/* Sold-individually items render a hidden qty input: nothing to change, hide the stepper */
body.woocommerce-cart .woocommerce-cart-form td.product-quantity:has(input[type="hidden"]) {
	display: none !important;
}

body.woocommerce-cart .woocommerce-cart-form td.product-quantity .quantity {
	display: inline-flex;
	align-items: center;
	margin-top: 12px;
	border: 1px solid var(--tp-border);
	border-radius: var(--tp-r-sm);
}

body.woocommerce-cart .woocommerce-cart-form tbody tr.cart_item > td.product-subtotal {
	grid-area: total;
	font-size: 16px !important;
	font-weight: 500;
	text-align: right !important;
	white-space: nowrap;
}

/* Remove: "×" becomes a small "Xóa" text link */
body.woocommerce-cart .woocommerce-cart-form td.product-remove {
	grid-area: remove;
	width: auto;
	margin-top: 12px;
	text-align: left;
}

body.woocommerce-cart .woocommerce-cart-form td.product-remove a.remove {
	display: inline;
	width: auto;
	height: auto;
	font-size: 0 !important;
	line-height: 1;
	color: var(--tp-muted) !important;
	background: none !important;
	border-radius: 0;
	text-decoration: none;
}

body.woocommerce-cart .woocommerce-cart-form td.product-remove a.remove::before {
	content: "Remove"; /* CSS text: see thankyou.css note */
	font-size: 13px;
	line-height: 1.5;
	text-decoration: underline;
	text-underline-offset: 3px;
}

body.woocommerce-cart .woocommerce-cart-form td.product-remove a.remove:hover {
	color: var(--tp-danger) !important;
}

/* Actions row: coupon is on the checkout page; "Update cart" only matters for editable quantities */
body.woocommerce-cart .woocommerce-cart-form tr:has(> td.actions) {
	display: block;
	padding: 16px 0 0;
	border: 0;
}

body.woocommerce-cart .woocommerce-cart-form td.actions {
	display: flex;
	justify-content: flex-end;
	padding: 0;
	border: 0;
	background: transparent;
}

body.woocommerce-cart .woocommerce-cart-form td.actions .coupon {
	display: none;
}

body.woocommerce-cart .woocommerce-cart-form:not(:has(.quantity input:not([type="hidden"]))) tr:has(> td.actions) {
	display: none;
}

body.woocommerce-cart .woocommerce-cart-form td.actions button[name="update_cart"] {
	min-height: 44px;
	padding: 10px 20px;
	font-size: 14px;
	font-weight: 500;
	color: var(--tp-primary);
	background: #fff;
	border: 1px solid var(--tp-primary);
	border-radius: var(--tp-r-pill);
}

body.woocommerce-cart .woocommerce-cart-form td.actions button[name="update_cart"]:disabled {
	color: var(--tp-disabled);
	border-color: var(--tp-border);
}

/* ---------- Summary (bottom right) ---------- */

body.woocommerce-cart .woocommerce .cart-collaterals {
	display: flex;
	justify-content: flex-end;
	float: none;
	width: 100%;
	margin-top: 32px;
	overflow: visible;
	border: 0;
	border-radius: 0;
	font-size: 14px !important;
}

body.woocommerce-cart .cart-collaterals .cart_totals {
	width: min(100%, 400px);
	float: none;
}

body.woocommerce-cart .cart-collaterals .cart_totals > h2 {
	display: none;
}

body.woocommerce-cart .cart-collaterals .shop_table {
	display: block;
	width: 100%;
	margin: 0;
	border: 0;
	background: transparent;
}

body.woocommerce-cart .cart-collaterals .shop_table tbody {
	display: block;
}

body.woocommerce-cart .cart-collaterals .shop_table tr {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	border: 0;
}

body.woocommerce-cart .woocommerce .cart-collaterals :is(th, td) {
	display: block;
	padding: 6px 0;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--tp-ink);
	background: transparent;
	border: 0;
}

body.woocommerce-cart .cart-collaterals td[data-title]::before {
	display: none;
	content: none;
}

body.woocommerce-cart .cart-collaterals tr.order-total {
	margin-top: 8px;
	padding-top: 12px;
	border-top: 1px solid var(--tp-hairline);
}

body.woocommerce-cart .woocommerce .cart-collaterals tr.order-total :is(th, td) {
	font-size: 18px;
	font-weight: 600;
}

body.woocommerce-cart .cart-collaterals tr.order-total .woocommerce-Price-amount {
	font-size: 22px;
	font-weight: 600;
}

body.woocommerce-cart .tp-cart-note {
	margin: 8px 0 16px;
	font-size: 13px;
	line-height: 1.5;
	text-align: right;
	color: var(--tp-muted);
}

body.woocommerce-cart .cart-collaterals .wc-proceed-to-checkout {
	padding: 0;
}

body.woocommerce-cart .woocommerce .cart-collaterals .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 56px;
	margin: 0;
	padding: 12px 24px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.5;
	color: #fff;
	background: var(--tp-primary);
	border: 0;
	border-radius: var(--tp-r-pill);
	transition: background-color 0.15s;
}

body.woocommerce-cart .woocommerce .cart-collaterals .wc-proceed-to-checkout a.checkout-button:hover {
	background: var(--tp-primary-hover);
}

body.woocommerce-cart .woocommerce .cart-collaterals .wc-proceed-to-checkout a.checkout-button:active {
	background: var(--tp-primary-press);
}

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

/* ---------- Numbers ---------- */

body.woocommerce-cart :is(.woocommerce-cart-form, .cart-collaterals) .woocommerce-Price-amount {
	font-family: var(--tp-font-num);
	font-feature-settings: "tnum";
	letter-spacing: -0.01em;
}

/* ---------- Empty cart ---------- */

body.woocommerce-cart .wc-empty-cart-message .cart-empty {
	margin: 0 0 24px;
	padding: 0;
	font-size: 16px;
	line-height: 1.5;
	color: var(--tp-muted);
	background: none;
	border: 0;
}

body.woocommerce-cart .wc-empty-cart-message .cart-empty::before {
	display: none;
}

body.woocommerce-cart .return-to-shop {
	margin: 0;
}

body.woocommerce-cart .return-to-shop a.button {
	display: inline-flex;
	align-items: center;
	min-height: 52px;
	padding: 12px 24px;
	font-size: 16px;
	font-weight: 500;
	color: #fff;
	background: var(--tp-primary);
	border: 0;
	border-radius: var(--tp-r-pill);
	transition: background-color 0.15s;
}

body.woocommerce-cart .return-to-shop a.button:hover {
	color: #fff;
	background: var(--tp-primary-hover);
}

/* ---------- Mobile ---------- */

@media (max-width: 767px) {
	body.woocommerce-cart .tp-cart-title {
		font-size: 32px;
	}

	body.woocommerce-cart .woocommerce-cart-form thead {
		display: block;
	}

	body.woocommerce-cart .woocommerce-cart-form tbody tr.cart_item {
		grid-template-columns: 72px minmax(0, 1fr) auto;
		column-gap: 16px;
		padding: 20px 0;
	}

	body.woocommerce-cart .woocommerce-cart-form td.product-thumbnail img {
		width: 72px;
		height: 72px;
	}

	body.woocommerce-cart .woocommerce-cart-form td.product-thumbnail > a {
		flex-grow: 0;
	}

	body.woocommerce-cart .woocommerce-cart-form tbody tr.cart_item > th.product-name,
	body.woocommerce-cart .woocommerce-cart-form tbody tr.cart_item > td.product-subtotal {
		font-size: 15px !important;
	}

	body.woocommerce-cart .tp-cart-note {
		text-align: left;
	}
}
