/**
 * CartNexa Free Shipping Progress - Cart Page Styles
 * High Specificity Overrides for Astra Theme, WooCommerce & Elementor Pro Compatibility
 * Scoped Class Prefix: .cnexa-cart-, .elementor-widget-cnexa_cart_*
 */

/* Cart Header Widget & Breadcrumb Polish */
.elementor-widget-cnexa_cart_header .cnexa-cart-header,
.cnexa-cart-header {
	margin-bottom: 24px !important;
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
}

.elementor-widget-cnexa_cart_header .cnexa-cart-header-title,
.cnexa-cart-header-title {
	font-size: 32px !important;
	font-weight: 700 !important;
	color: #0D2040 !important;
	margin: 0 0 6px 0 !important;
	padding: 0 !important;
	line-height: 1.2 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}

.elementor-widget-cnexa_cart_header .cnexa-cart-breadcrumb,
.cnexa-cart-breadcrumb {
	font-size: 14px !important;
	color: #64748B !important;
	display: flex !important;
	align-items: center !important;
	gap: 6px !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	line-height: 1.4 !important;
}

.elementor-widget-cnexa_cart_header .cnexa-cart-breadcrumb a,
.cnexa-cart-breadcrumb a {
	color: #0D2040 !important;
	text-decoration: none !important;
	font-weight: 500 !important;
	background: transparent !important;
	border: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

.elementor-widget-cnexa_cart_header .cnexa-cart-breadcrumb a:hover,
.cnexa-cart-breadcrumb a:hover {
	color: #1CB5A6 !important;
	text-decoration: none !important;
}

.elementor-widget-cnexa_cart_header .cnexa-cart-breadcrumb-sep,
.cnexa-cart-breadcrumb-sep {
	color: #94A3B8 !important;
	font-size: 12px !important;
	margin: 0 2px !important;
}

.elementor-widget-cnexa_cart_header .cnexa-cart-breadcrumb-current,
.cnexa-cart-breadcrumb-current {
	color: #64748B !important;
	font-weight: 400 !important;
}

/* Suppress Astra/WC default duplicate breadcrumb inside header context */
.cnexa-cart-header .woocommerce-breadcrumb,
.cnexa-cart-header .ast-breadcrumbs {
	display: none !important;
}

/* Cart Items Container & Table Overrides */
.elementor-widget-cnexa_cart_items .cnexa-cart-items-wrapper,
.cnexa-cart-items-wrapper {
	width: 100% !important;
	background: #FFFFFF !important;
	border: 1px solid #E4EEEE !important;
	border-radius: 12px !important;
	box-shadow: 0 4px 14px rgba(13, 32, 64, 0.04) !important;
	padding: 0 20px !important;
	box-sizing: border-box !important;
	margin-bottom: 24px !important;
	overflow: hidden !important;
	display: block !important;
	float: none !important;
}

.elementor-widget-cnexa_cart_items .cnexa-cart-items-table,
.cnexa-cart-items-table {
	width: 100% !important;
	display: block !important;
	border-collapse: separate !important;
	border: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Desktop Grid Headers */
.elementor-widget-cnexa_cart_items .cnexa-cart-table-header,
.cnexa-cart-table-header {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 120px 160px 130px !important;
	gap: 20px !important;
	padding: 12px 0 !important;
	border-bottom: 1px solid #E5EEF0 !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #64748B !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	box-sizing: border-box !important;
}

.elementor-widget-cnexa_cart_items .cnexa-cart-table-header .cnexa-col-subtotal,
.cnexa-cart-table-header .cnexa-col-subtotal {
	text-align: right !important;
}

/* Desktop Cart Item Row (Top Aligned) */
.elementor-widget-cnexa_cart_items .cnexa-cart-item-row,
.cnexa-cart-item-row {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 120px 160px 130px !important;
	gap: 20px !important;
	align-items: start !important;
	padding: 16px 0 !important;
	border-bottom: 1px solid #F1F5F9 !important;
	box-sizing: border-box !important;
	float: none !important;
}

.elementor-widget-cnexa_cart_items .cnexa-cart-item-row:last-child,
.cnexa-cart-item-row:last-child {
	border-bottom: none !important;
}

.elementor-widget-cnexa_cart_items .cnexa-col-product,
.cnexa-col-product {
	display: flex !important;
	align-items: flex-start !important;
	gap: 18px !important;
	float: none !important;
	border: none !important;
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
}

.elementor-widget-cnexa_cart_items .cnexa-col-price,
.elementor-widget-cnexa_cart_items .cnexa-col-quantity,
.elementor-widget-cnexa_cart_items .cnexa-col-subtotal,
.cnexa-col-price,
.cnexa-col-quantity,
.cnexa-col-subtotal {
	display: flex !important;
	align-items: center !important;
	min-height: 80px !important;
	float: none !important;
	border: none !important;
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
}

.elementor-widget-cnexa_cart_items .cnexa-col-subtotal,
.cnexa-col-subtotal {
	justify-content: flex-end !important;
	text-align: right !important;
}

/* Product Thumbnail (100px x 100px, top aligned) */
.elementor-widget-cnexa_cart_items .cnexa-cart-item-thumb,
.cnexa-cart-item-thumb {
	flex-shrink: 0 !important;
}

.elementor-widget-cnexa_cart_items .cnexa-cart-item-thumb img,
.cnexa-cart-item-thumb img {
	width: 100px !important;
	height: 100px !important;
	max-width: 100px !important;
	min-width: 100px !important;
	object-fit: contain !important;
	background-color: #FFFFFF !important;
	border-radius: 8px !important;
	border: 1px solid #E5EEF0 !important;
	padding: 4px !important;
	box-sizing: border-box !important;
	display: block !important;
	float: none !important;
}

.elementor-widget-cnexa_cart_items .cnexa-cart-item-details,
.cnexa-cart-item-details {
	flex: 1 !important;
	min-width: 0 !important;
}

.elementor-widget-cnexa_cart_items .cnexa-cart-item-title,
.cnexa-cart-item-title {
	font-size: 15px !important;
	font-weight: 600 !important;
	margin: 0 0 6px 0 !important;
	line-height: 1.3 !important;
}

.elementor-widget-cnexa_cart_items .cnexa-cart-item-title a,
.cnexa-cart-item-title a {
	color: #0D2040 !important;
	text-decoration: none !important;
}

.elementor-widget-cnexa_cart_items .cnexa-cart-item-title a:hover,
.cnexa-cart-item-title a:hover {
	color: #1CB5A6 !important;
}

/* Compact Variation Metadata Formatting */
.elementor-widget-cnexa_cart_items .cnexa-cart-item-meta,
.cnexa-cart-item-meta {
	font-size: 13px !important;
	color: #64748B !important;
	margin-top: 4px !important;
	margin-bottom: 8px !important;
	line-height: 1.4 !important;
}

.cnexa-cart-meta-row {
	display: flex !important;
	align-items: center !important;
	gap: 4px !important;
	margin-bottom: 3px !important;
	font-size: 13px !important;
	color: #64748B !important;
	line-height: 1.4 !important;
}

.cnexa-cart-meta-label {
	font-weight: 500 !important;
	color: #64748B !important;
}

.cnexa-cart-meta-value {
	font-weight: 400 !important;
	color: #0D2040 !important;
}

/* Legacy Variation Reset Fallback */
.elementor-widget-cnexa_cart_items .cnexa-cart-item-meta dl.variation,
.cnexa-cart-item-meta dl.variation {
	margin: 0 !important;
	padding: 0 !important;
	display: block !important;
	border: none !important;
}

.elementor-widget-cnexa_cart_items .cnexa-cart-item-meta dl.variation dt,
.cnexa-cart-item-meta dl.variation dt {
	float: none !important;
	clear: none !important;
	display: inline !important;
	font-weight: 500 !important;
	color: #64748B !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1.4 !important;
}

.elementor-widget-cnexa_cart_items .cnexa-cart-item-meta dl.variation dd,
.cnexa-cart-item-meta dl.variation dd {
	float: none !important;
	clear: none !important;
	display: inline !important;
	margin: 0 0 3px 0 !important;
	padding: 0 !important;
	color: #0D2040 !important;
	line-height: 1.4 !important;
}

.elementor-widget-cnexa_cart_items .cnexa-cart-item-meta dl.variation dd p,
.cnexa-cart-item-meta dl.variation dd p {
	display: inline !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1.4 !important;
}

.elementor-widget-cnexa_cart_items .cnexa-cart-item-meta dl.variation dd::after,
.cnexa-cart-item-meta dl.variation dd::after {
	content: "\A";
	white-space: pre;
}

/* Remove Button */
.elementor-widget-cnexa_cart_items .cnexa-cart-remove-btn,
.cnexa-cart-remove-btn {
	background: none !important;
	border: none !important;
	padding: 0 !important;
	color: #1CB5A6 !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	cursor: pointer !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 4px !important;
	margin-top: 4px !important;
	transition: color 0.2s ease !important;
}

.elementor-widget-cnexa_cart_items .cnexa-cart-remove-btn:hover,
.cnexa-cart-remove-btn:hover {
	color: #0F766E !important;
	text-decoration: underline !important;
}

.cnexa-cart-remove-icon {
	stroke: currentColor !important;
}

/* Price & Subtotal Typography */
.elementor-widget-cnexa_cart_items .cnexa-cart-item-price,
.cnexa-cart-item-price {
	font-size: 15px !important;
	font-weight: 500 !important;
	color: #0D2040 !important;
}

.elementor-widget-cnexa_cart_items .cnexa-cart-item-subtotal,
.cnexa-cart-item-subtotal {
	font-size: 16px !important;
	font-weight: 600 !important;
	color: #0D2040 !important;
}

/* Explicit Quantity Control Selector Reset */
.elementor-widget-cnexa_cart_items .cnexa-cart-qty-box,
.cnexa-cart-qty-box {
	display: inline-flex !important;
	align-items: center !important;
	border: 1px solid #D9E4E4 !important;
	border-radius: 10px !important;
	padding: 0 2px !important;
	background: #FFFFFF !important;
	height: 42px !important;
	box-sizing: border-box !important;
	float: none !important;
}

.elementor-widget-cnexa_cart_items .cnexa-cart-qty-btn,
.cnexa-cart-qty-btn {
	background: transparent !important;
	border: none !important;
	width: 36px !important;
	height: 38px !important;
	border-radius: 6px !important;
	color: #0D2040 !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	transition: background-color 0.2s ease, color 0.2s ease !important;
	box-shadow: none !important;
	outline: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

.elementor-widget-cnexa_cart_items .cnexa-cart-qty-btn:hover,
.cnexa-cart-qty-btn:hover {
	background-color: #F0FDFA !important;
	color: #1CB5A6 !important;
}

.elementor-widget-cnexa_cart_items .cnexa-cart-qty-input,
.cnexa-cart-qty-input {
	width: 40px !important;
	height: 38px !important;
	border: none !important;
	background: transparent !important;
	text-align: center !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	color: #0D2040 !important;
	box-shadow: none !important;
	outline: none !important;
	padding: 0 !important;
	margin: 0 !important;
	-moz-appearance: textfield !important;
}

.cnexa-cart-qty-input::-webkit-outer-spin-button,
.cnexa-cart-qty-input::-webkit-inner-spin-button {
	-webkit-appearance: none !important;
	margin: 0 !important;
}

.cnexa-mobile-label {
	display: none !important;
}

/* Continue Shopping Button */
.elementor-widget-cnexa_cart_continue_shopping .cnexa-cart-continue-wrapper,
.cnexa-cart-continue-wrapper {
	margin-top: 15px !important;
	margin-bottom: 24px !important;
}

.elementor-widget-cnexa_cart_continue_shopping .cnexa-cart-continue-btn,
.cnexa-cart-continue-btn {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	background-color: #FFFFFF !important;
	color: #1CB5A6 !important;
	border: 1.5px solid #1CB5A6 !important;
	padding: 11px 22px !important;
	border-radius: 24px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	transition: all 0.2s ease-in-out !important;
}

.elementor-widget-cnexa_cart_continue_shopping .cnexa-cart-continue-btn:hover,
.cnexa-cart-continue-btn:hover {
	background-color: #1CB5A6 !important;
	color: #FFFFFF !important;
	border-color: #1CB5A6 !important;
}

.cnexa-cart-continue-arrow {
	stroke: currentColor !important;
}

/* Cart Totals Card */
.elementor-widget-cnexa_cart_totals .cnexa-cart-totals-wrapper,
.cnexa-cart-totals-wrapper {
	width: 100% !important;
}

/* NOTE: background/border/radius/shadow/padding below are intentionally NOT !important
   so the Elementor "Style" tab controls on the Cart Totals widget can override them per-instance. */
.elementor-widget-cnexa_cart_totals .cnexa-cart-totals-card,
.cnexa-cart-totals-card {
	background-color: #FFFFFF;
	border: 1px solid #E1EEEE;
	border-radius: 12px;
	padding: 24px;
	box-shadow: 0 4px 14px rgba(13, 32, 64, 0.04);
	box-sizing: border-box !important;
}

.elementor-widget-cnexa_cart_totals .cnexa-cart-totals-title,
.cnexa-cart-totals-title {
	font-size: 20px;
	font-weight: 700;
	color: #0D2040;
	margin: 0 0 16px 0;
	padding-bottom: 12px !important;
	border-bottom: 1px solid #E5EEF0 !important;
}

.elementor-widget-cnexa_cart_totals .cnexa-cart-totals-table,
.cnexa-cart-totals-table {
	width: 100% !important;
	border: none !important;
	border-collapse: collapse !important;
	margin-bottom: 20px !important;
}

.elementor-widget-cnexa_cart_totals .cnexa-cart-totals-table th,
.elementor-widget-cnexa_cart_totals .cnexa-cart-totals-table td,
.cnexa-cart-totals-table th,
.cnexa-cart-totals-table td {
	padding: 12px 0 !important;
	text-align: right !important;
	font-size: 14px !important;
	color: #0D2040;
	border: none !important;
	border-bottom: 1px solid #F1F5F9 !important;
	background: transparent !important;
	box-sizing: border-box !important;
}

.elementor-widget-cnexa_cart_totals .cnexa-cart-totals-table th,
.cnexa-cart-totals-table th {
	text-align: left !important;
	font-weight: 500 !important;
	color: #64748B;
}

.elementor-widget-cnexa_cart_totals .cnexa-cart-row-total th,
.elementor-widget-cnexa_cart_totals .cnexa-cart-row-total td,
.cnexa-cart-row-total th,
.cnexa-cart-row-total td {
	font-size: 18px !important;
	font-weight: 700 !important;
	border-bottom: none !important;
	padding-top: 16px !important;
}

.cnexa-cart-row-total th {
	color: #64748B;
}

.cnexa-cart-row-total td {
	color: #0D2040;
}

.cnexa-free-shipping-text {
	color: #10B981;
	font-weight: 600 !important;
}

.cnexa-shipping-destination {
	font-size: 12px !important;
	color: #64748B;
	margin-top: 4px !important;
}

/* "Change address" / Shipping Calculator toggle (WooCommerce core woocommerce_shipping_calculator()) */
.cnexa-cart-totals-card .woocommerce-shipping-calculator {
	margin: 4px 0 0 0 !important;
	font-size: 12px !important;
}

.cnexa-cart-totals-card .shipping-calculator-button {
	color: #1CB5A6;
	font-weight: 500;
	font-size: 12px !important;
	text-decoration: underline;
	border-bottom: none;
}

.cnexa-cart-totals-card .shipping-calculator-button:hover {
	color: #0F766E;
}

.cnexa-cart-totals-card .woocommerce-shipping-calculator-form {
	margin-top: 10px !important;
	padding: 12px !important;
	background: #F8FAFB !important;
	border: 1px solid #E5EEF0 !important;
	border-radius: 8px !important;
}

.cnexa-cart-totals-card .woocommerce-shipping-calculator-form p {
	margin: 0 0 8px 0 !important;
}

.cnexa-cart-totals-card .woocommerce-shipping-calculator-form label {
	font-size: 12px !important;
	color: #64748B !important;
	display: block !important;
	margin-bottom: 4px !important;
}

.cnexa-cart-totals-card .woocommerce-shipping-calculator-form select,
.cnexa-cart-totals-card .woocommerce-shipping-calculator-form input[type="text"] {
	width: 100% !important;
	padding: 8px 10px !important;
	border: 1px solid #E1EEEE !important;
	border-radius: 6px !important;
	font-size: 13px !important;
	box-sizing: border-box !important;
}

.cnexa-cart-totals-card .woocommerce-shipping-calculator-form button[name="calc_shipping"] {
	background-color: #1CB5A6 !important;
	color: #FFFFFF !important;
	border: none !important;
	border-radius: 6px !important;
	padding: 8px 16px !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	cursor: pointer !important;
}

.cnexa-cart-totals-card .woocommerce-shipping-calculator-form button[name="calc_shipping"]:hover {
	background-color: #0F766E !important;
}

/* Primary Checkout Button */
.elementor-widget-cnexa_cart_totals .cnexa-cart-checkout-action,
.cnexa-cart-checkout-action {
	margin-top: 15px !important;
}

.elementor-widget-cnexa_cart_totals .cnexa-cart-checkout-btn,
.cnexa-cart-checkout-btn {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	width: 100% !important;
	height: 50px;
	background-color: #1CB5A6;
	color: #FFFFFF;
	border: none !important;
	padding: 0 24px !important;
	border-radius: 8px;
	font-size: 16px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	box-shadow: 0 4px 12px rgba(28, 181, 166, 0.25) !important;
	transition: background-color 0.2s ease !important;
	box-sizing: border-box !important;
}

.elementor-widget-cnexa_cart_totals .cnexa-cart-checkout-btn:hover,
.cnexa-cart-checkout-btn:hover {
	background-color: #0F766E;
	color: #FFFFFF;
}

.cnexa-cart-lock-icon {
	stroke: #FFFFFF !important;
}

.cnexa-cart-express-checkout {
	margin-top: 15px;
}


/* Trust Benefits Card Widget */
.elementor-widget-cnexa_cart_benefits .cnexa-cart-benefits-card,
.cnexa-cart-benefits-card {
	background: #FFFFFF !important;
	border: 1px solid #E5EEF0 !important;
	border-radius: 12px !important;
	padding: 24px 16px !important;
	margin-top: 24px !important;
	box-shadow: 0 4px 14px rgba(13, 32, 64, 0.04) !important;
}

.elementor-widget-cnexa_cart_benefits .cnexa-cart-benefits-grid,
.cnexa-cart-benefits-grid {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 15px !important;
}

.cnexa-benefit-col {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	padding: 0 12px !important;
	border-right: 1px solid #E5EEF0 !important;
}

.cnexa-benefit-col:last-child {
	border-right: none !important;
}

.cnexa-benefit-icon-box {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 44px !important;
	height: 44px !important;
	border-radius: 50% !important;
	background-color: #F0FDFA !important;
	flex-shrink: 0 !important;
}

.cnexa-benefit-title {
	font-size: 14px !important;
	font-weight: 600 !important;
	color: #0D2040 !important;
	margin: 0 0 2px 0 !important;
}

.cnexa-benefit-subtitle {
	font-size: 12px !important;
	color: #64748B !important;
	display: block !important;
}

/* Responsive Breakpoints */
@media (max-width: 1024px) {
	.elementor-widget-cnexa_cart_items .cnexa-cart-table-header,
	.elementor-widget-cnexa_cart_items .cnexa-cart-item-row,
	.cnexa-cart-table-header,
	.cnexa-cart-item-row {
		grid-template-columns: minmax(0, 1fr) 100px 140px 110px !important;
		gap: 15px !important;
	}

	.elementor-widget-cnexa_cart_items .cnexa-cart-item-thumb img,
	.cnexa-cart-item-thumb img {
		width: 85px !important;
		height: 85px !important;
		max-width: 85px !important;
		min-width: 85px !important;
	}

	.elementor-widget-cnexa_cart_benefits .cnexa-cart-benefits-grid,
	.cnexa-cart-benefits-grid {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 20px !important;
	}

	.cnexa-benefit-col {
		border-right: none !important;
	}
}

@media (max-width: 767px) {
	.elementor-widget-cnexa_cart_items .cnexa-cart-table-header,
	.cnexa-cart-table-header {
		display: none !important;
	}

	.elementor-widget-cnexa_cart_items .cnexa-cart-item-row,
	.cnexa-cart-item-row {
		grid-template-columns: 1fr !important;
		gap: 12px !important;
		padding: 16px !important;
		border: 1px solid #F1F5F9 !important;
		border-radius: 10px !important;
		margin-bottom: 12px !important;
	}

	.elementor-widget-cnexa_cart_items .cnexa-cart-item-row:last-child,
	.cnexa-cart-item-row:last-child {
		margin-bottom: 0 !important;
	}

	.cnexa-mobile-label {
		display: inline-block !important;
		font-size: 13px !important;
		font-weight: 600 !important;
		color: #64748B !important;
		margin-right: 6px !important;
	}

	.elementor-widget-cnexa_cart_items .cnexa-item-price,
	.elementor-widget-cnexa_cart_items .cnexa-item-qty,
	.elementor-widget-cnexa_cart_items .cnexa-item-subtotal,
	.cnexa-item-price,
	.cnexa-item-qty,
	.cnexa-item-subtotal {
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		min-height: auto !important;
	}

	.elementor-widget-cnexa_cart_items .cnexa-cart-item-subtotal,
	.cnexa-cart-item-subtotal {
		text-align: right !important;
	}
}

@media (max-width: 576px) {
	.elementor-widget-cnexa_cart_benefits .cnexa-cart-benefits-grid,
	.cnexa-cart-benefits-grid {
		grid-template-columns: 1fr !important;
	}

	.elementor-widget-cnexa_cart_header .cnexa-cart-header-title,
	.cnexa-cart-header-title {
		font-size: 26px !important;
	}
}
