/*
 * Checkout/cart presentation boundary.
 *
 * This file is intentionally limited to layout, hierarchy and touch sizing.
 * Cart mutations, checkout validation and payment contracts remain owned by
 * the existing OpenCart templates and endpoints.
 */
.checkout-cart-shell #shopping-cart,
.checkout-flow-shell #content {
	min-width: 0;
}

.checkout-cart-shell #output-cart {
	margin-top: 14px;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 6px 22px rgba(20, 30, 50, .05);
}

.checkout-cart-shell #output-cart > table {
	margin-bottom: 0;
}

.checkout-cart-shell #output-cart thead th {
	padding-top: 13px;
	padding-bottom: 13px;
	background: #f8fafc;
	color: #374151;
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
}

.checkout-cart-shell #output-cart tbody td {
	vertical-align: middle;
}

.checkout-cart-shell #output-cart tbody tr:last-child td {
	border-bottom: 0;
}

.checkout-cart-shell #output-cart .input-group {
	min-width: 214px;
}

.checkout-cart-shell #output-cart .js-cart-quantity,
.checkout-cart-shell #output-cart .input-group .btn {
	min-width: 40px;
	min-height: 40px;
}

.checkout-cart-shell #output-cart input[type="number"] {
	min-width: 48px;
	text-align: center;
}

.checkout-cart-shell #checkout-total {
	border-top: 2px solid #eef0f3;
}

.checkout-cart-shell #checkout-total td {
	padding-top: 12px;
	padding-bottom: 12px;
}

.checkout-cart-shell #shopping-cart > h1 + p {
	margin: 14px 0 0;
	padding: 42px 18px 12px;
	border: 1px dashed #d1d5db;
	border-radius: 12px 12px 0 0;
	background: #fff;
	color: #6b7280;
	text-align: center;
}

.checkout-cart-shell #shopping-cart > h1 + p + .text-end {
	padding: 0 18px 22px;
	border: 1px dashed #d1d5db;
	border-top: 0;
	border-radius: 0 0 12px 12px;
	background: #fff;
}

.checkout-cart-shell #button-selected-checkout,
.checkout-cart-shell .row > .col > .btn {
	min-height: 42px;
}

.checkout-cart-shell .mobile-cart-actions {
	margin-bottom: max(14px, env(safe-area-inset-bottom));
}

.checkout-flow-shell > .row > #content > h1 {
	margin-bottom: 18px;
}

.checkout-flow-shell #checkout-register,
.checkout-flow-shell #checkout-payment-address,
.checkout-flow-shell #checkout-shipping-address,
.checkout-flow-shell #checkout-shipping-method,
.checkout-flow-shell #checkout-invoice,
.checkout-flow-shell #checkout-payment-method,
.checkout-flow-shell #checkout-confirm {
	min-width: 0;
}

.checkout-flow-shell #checkout-payment-method,
.checkout-flow-shell #checkout-confirm {
	padding: 14px;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 5px 18px rgba(20, 30, 50, .04);
}

.checkout-flow-shell #checkout-confirm {
	margin-top: 14px;
}

.checkout-flow-shell #checkout-confirm .btn,
.checkout-flow-shell #checkout-payment-method .btn {
	min-height: 42px;
}

.mobile-cart-page.checkout-cart-shell {
	padding-bottom: calc(18px + env(safe-area-inset-bottom));
}

.mobile-cart-page .mobile-cart-card {
	contain: layout paint;
}

.mobile-cart-page .mobile-cart-card .form-check-input {
	margin-top: 0;
}

.mobile-cart-page .mobile-cart-quantity .input-group {
	align-items: stretch;
}

.mobile-cart-page .mobile-cart-quantity .input-group .btn,
.mobile-cart-page .mobile-cart-quantity .input-group .form-control {
	min-height: 44px;
}

.mobile-cart-page .mobile-cart-quantity .input-group .btn {
	min-width: 42px;
}

.mobile-cart-page .mobile-cart-quantity .form-control {
	min-width: 52px;
}

.mobile-cart-page .mobile-cart-actions {
	position: sticky;
	z-index: 5;
	bottom: 0;
	margin-right: -2px;
	margin-left: -2px;
	padding: 10px 2px calc(10px + env(safe-area-inset-bottom));
	background: rgba(248, 250, 252, .96);
	box-shadow: 0 -8px 18px rgba(20, 30, 50, .08);
	backdrop-filter: blur(8px);
}

.mobile-cart-page .mobile-cart-actions .btn {
	min-height: 46px;
	font-weight: 600;
}

.mobile-cart-page .mobile-cart-empty {
	min-height: 250px;
	display: grid;
	place-content: center;
	justify-items: center;
	gap: 2px;
	box-shadow: 0 5px 18px rgba(20, 30, 50, .04);
}

.mobile-cart-page .mobile-cart-empty .btn {
	min-height: 44px;
	margin-top: 4px;
}

.mobile-checkout-page.checkout-flow-shell {
	padding-bottom: calc(18px + env(safe-area-inset-bottom));
}

.mobile-checkout-page .mobile-checkout-section {
	position: relative;
	overflow: hidden;
}

.mobile-checkout-page .mobile-checkout-section + .mobile-checkout-section {
	box-shadow: 0 6px 20px rgba(20, 30, 50, .06);
}

.mobile-checkout-page #checkout-confirm {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid #eef0f3;
}

.mobile-checkout-page #checkout-confirm .btn,
.mobile-checkout-page #checkout-payment-method .btn {
	min-height: 46px;
}

@media (max-width: 575.98px) {
	.checkout-cart-shell #output-cart {
		border-right: 0;
		border-left: 0;
		border-radius: 0;
		box-shadow: none;
	}

	.checkout-cart-shell #output-cart .input-group {
		min-width: 190px;
	}

	.checkout-flow-shell #checkout-payment-method,
	.checkout-flow-shell #checkout-confirm {
		padding: 12px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mobile-cart-page .mobile-cart-actions {
		backdrop-filter: none;
	}
}
