/*
 * JDP Theme - WC Checkout + Cart page overrides.
 * Garde le moteur WC natif (PCI-DSS, Stripe gateway).
 * Skin uniquement.
 * @since 0.2.0
 */

/* =============================================================
 * CART PAGE (page /cart/)
 * ============================================================= */
.woocommerce-cart .jdp-section {
	padding-top: var(--sp-8);
	padding-bottom: var(--sp-12);
}
.woocommerce-cart .shop_table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	background: var(--bg);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	overflow: hidden;
	margin-bottom: var(--sp-6);
}
.woocommerce-cart .shop_table th {
	background: var(--bg-soft);
	padding: var(--sp-3) var(--sp-4);
	font-weight: 600;
	font-size: 12px;
	color: var(--fg2);
	text-transform: uppercase;
	letter-spacing: var(--tracking-caps);
	text-align: left;
	border-bottom: 1px solid var(--border);
}
.woocommerce-cart .shop_table td {
	padding: var(--sp-4);
	vertical-align: middle;
	border-bottom: 1px solid var(--border);
	color: var(--fg1);
}
.woocommerce-cart .shop_table tbody tr:last-child td {
	border-bottom: 0;
}
.woocommerce-cart .product-thumbnail img {
	width: 60px;
	height: 60px;
	border-radius: var(--radius-sm);
	object-fit: cover;
}
.woocommerce-cart .product-name a {
	color: var(--fg1);
	text-decoration: none;
	font-weight: 600;
}
.woocommerce-cart .product-name a:hover { color: var(--accent); }
.woocommerce-cart .product-price,
.woocommerce-cart .product-subtotal {
	font-weight: 700;
	color: var(--accent);
	font-variant-numeric: tabular-nums;
}
.woocommerce-cart .product-quantity input[type="number"] {
	width: 70px;
	padding: 8px 10px;
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	font-family: var(--font-sans);
	text-align: center;
}
.woocommerce-cart .product-remove .remove {
	color: var(--fg3);
	font-weight: 700;
	font-size: 18px;
	transition: color var(--dur-fast);
}
.woocommerce-cart .product-remove .remove:hover {
	color: var(--signal-hot);
	background: transparent !important;
}
.woocommerce-cart .coupon {
	display: flex;
	gap: var(--sp-2);
	align-items: center;
}
.woocommerce-cart .coupon input[type="text"] {
	padding: 11px 14px;
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	font-family: var(--font-sans);
	font-size: 14px;
	min-height: 44px;
}
.woocommerce-cart .actions .button {
	background: var(--bg-soft);
	color: var(--fg1);
	border: 1px solid var(--border);
	padding: 11px 18px;
	border-radius: var(--radius-sm);
	font-weight: 600;
	cursor: pointer;
	min-height: 44px;
}
.woocommerce-cart .actions .button:hover {
	background: var(--accent-soft);
	border-color: var(--accent);
	color: var(--accent);
}

/* Cart totals box */
.woocommerce-cart .cart-collaterals {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: var(--sp-6);
	margin-top: var(--sp-8);
}
.woocommerce-cart .cart_totals {
	background: var(--bg-soft);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	padding: var(--sp-5);
}
.woocommerce-cart .cart_totals h2 {
	font-size: 20px;
	font-weight: 700;
	margin: 0 0 var(--sp-4);
}
.woocommerce-cart .cart_totals table {
	width: 100%;
	margin: 0;
}
.woocommerce-cart .cart_totals th {
	color: var(--fg2);
	font-weight: 500;
	font-size: 14px;
	background: transparent;
	border: 0;
	padding: var(--sp-2) 0;
}
.woocommerce-cart .cart_totals td {
	text-align: right;
	font-weight: 600;
	border: 0;
	padding: var(--sp-2) 0;
}
.woocommerce-cart .cart_totals .order-total td {
	font-weight: 800;
	font-size: 20px;
	color: var(--accent);
}
.woocommerce-cart .wc-proceed-to-checkout {
	margin-top: var(--sp-4);
}
.woocommerce-cart .checkout-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	background: var(--accent);
	color: var(--jdp-white);
	border: 0;
	border-radius: var(--radius-sm);
	padding: 14px 22px;
	font-family: var(--font-sans);
	font-weight: 800;
	font-size: 15px;
	text-decoration: none;
	cursor: pointer;
	min-height: 50px;
	box-shadow: 0 8px 22px rgba(217, 149, 2, 0.32);
	transition: background var(--dur-normal);
}
.woocommerce-cart .checkout-button:hover {
	background: var(--accent-hover);
}

/* =============================================================
 * CHECKOUT PAGE (page /checkout/)
 * ============================================================= */
.woocommerce-checkout .jdp-section {
	padding-top: var(--sp-8);
	padding-bottom: var(--sp-12);
}
.woocommerce-checkout #customer_details {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--sp-6);
	margin-bottom: var(--sp-8);
}
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields {
	background: var(--bg);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	padding: var(--sp-5);
}
.woocommerce-checkout h3 {
	font-size: 18px;
	font-weight: 700;
	margin: 0 0 var(--sp-4);
	color: var(--fg1);
}
.woocommerce-checkout .form-row {
	margin-bottom: var(--sp-3);
}
.woocommerce-checkout label {
	display: block;
	font-weight: 500;
	font-size: 13px;
	color: var(--fg1);
	margin-bottom: var(--sp-2);
}
.woocommerce-checkout .required {
	color: var(--signal-hot);
	font-weight: 700;
}
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="number"],
.woocommerce-checkout input[type="password"],
.woocommerce-checkout textarea,
.woocommerce-checkout select,
.woocommerce-checkout .select2-selection {
	width: 100% !important;
	padding: 11px 14px;
	border: 1px solid var(--border) !important;
	border-radius: var(--radius-sm) !important;
	background: var(--bg);
	color: var(--fg1);
	font-family: var(--font-sans);
	font-size: 14px;
	min-height: 44px;
	transition: border-color var(--dur-fast), box-shadow var(--dur-fast);
}
.woocommerce-checkout input:focus,
.woocommerce-checkout textarea:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout .select2-selection:focus {
	outline: 0;
	border-color: var(--accent) !important;
	box-shadow: 0 0 0 3px rgba(217, 149, 2, 0.15);
}

/* Order review */
.woocommerce-checkout #order_review_heading {
	font-size: 20px;
	font-weight: 700;
	margin-top: var(--sp-8);
	margin-bottom: var(--sp-4);
}
.woocommerce-checkout #order_review {
	background: var(--bg-soft);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	padding: var(--sp-5);
}
.woocommerce-checkout #order_review table {
	width: 100%;
}
.woocommerce-checkout #order_review th,
.woocommerce-checkout #order_review td {
	padding: var(--sp-2) 0;
	border-bottom: 1px solid var(--border);
}
.woocommerce-checkout #order_review tfoot tr:last-child th,
.woocommerce-checkout #order_review tfoot tr:last-child td {
	border-bottom: 0;
	font-weight: 800;
	font-size: 18px;
	color: var(--accent);
	padding-top: var(--sp-3);
}

/* Payment methods */
.woocommerce-checkout #payment {
	background: var(--bg) !important;
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	padding: var(--sp-5);
	margin-top: var(--sp-4);
}
.woocommerce-checkout #payment ul.payment_methods {
	background: transparent;
	padding: 0;
	border: 0;
	list-style: none;
}
.woocommerce-checkout #payment ul.payment_methods li {
	padding: var(--sp-3);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	margin-bottom: var(--sp-2);
	transition: border-color var(--dur-fast), background var(--dur-fast);
}
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) {
	border-color: var(--accent);
	background: var(--accent-soft);
}
.woocommerce-checkout #payment .payment_box {
	background: var(--bg-soft) !important;
	border-radius: var(--radius-sm);
	padding: var(--sp-3);
	margin-top: var(--sp-2);
}

/* Place order button */
.woocommerce-checkout #place_order {
	width: 100%;
	background: var(--accent);
	color: var(--jdp-white);
	border: 0;
	border-radius: var(--radius-sm);
	padding: 16px 22px;
	font-family: var(--font-sans);
	font-weight: 800;
	font-size: 16px;
	cursor: pointer;
	min-height: 56px;
	margin-top: var(--sp-4);
	box-shadow: 0 8px 22px rgba(217, 149, 2, 0.32);
	transition: background var(--dur-normal), transform var(--dur-normal);
}
.woocommerce-checkout #place_order:hover,
.woocommerce-checkout #place_order:focus-visible {
	background: var(--accent-hover);
	transform: translateY(-1px);
}

/* Coupon */
.woocommerce-checkout .woocommerce-form-coupon {
	background: var(--bg-soft);
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	padding: var(--sp-4);
	margin-bottom: var(--sp-4);
}
.woocommerce-checkout .showcoupon {
	color: var(--accent);
	font-weight: 600;
}

/* Notices */
.woocommerce-message,
.woocommerce-info {
	background: var(--accent-soft);
	border-left: 4px solid var(--accent);
	color: var(--fg1);
	padding: var(--sp-3) var(--sp-4);
	border-radius: var(--radius-sm);
	margin: var(--sp-3) 0;
}
.woocommerce-error {
	background: rgba(201, 22, 82, 0.1);
	border-left: 4px solid var(--signal-hot);
	color: var(--signal-hot);
	padding: var(--sp-3) var(--sp-4);
	border-radius: var(--radius-sm);
	margin: var(--sp-3) 0;
	list-style: none;
}

/* Responsive */
@media (max-width: 900px) {
	.woocommerce-checkout #customer_details { grid-template-columns: 1fr; }
	.woocommerce-cart .cart-collaterals { grid-template-columns: 1fr; }
	.woocommerce-cart .shop_table thead { display: none; }
	.woocommerce-cart .shop_table tr {
		display: block;
		margin-bottom: var(--sp-3);
		border: 1px solid var(--border);
		border-radius: var(--radius-md);
		padding: var(--sp-3);
	}
	.woocommerce-cart .shop_table td {
		display: flex;
		justify-content: space-between;
		padding: var(--sp-2) 0;
		border: 0;
		border-bottom: 1px solid var(--border);
	}
	.woocommerce-cart .shop_table td:last-child { border-bottom: 0; }
	.woocommerce-cart .shop_table td::before {
		content: attr(data-title);
		font-weight: 600;
		font-size: 12px;
		color: var(--fg2);
		text-transform: uppercase;
	}
}
