/**
 * Custom cart totals breakdown — label left, amount right.
 */

.vw-cart-breakdown {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 100%;
	margin: 0 0 10px;
	padding: 12px 0 0;
	border-top: 1px solid #ececec;
	box-sizing: border-box;
	font-family: "Plus Jakarta Sans", "Avenir Next", "Segoe UI", sans-serif;
}

.vw-cart-breakdown__row {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	box-sizing: border-box;
}

.vw-cart-breakdown__label {
	flex: 1 1 auto;
	min-width: 0;
	text-align: left;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.35;
	color: #333;
}

.vw-cart-breakdown__value {
	flex: 0 0 auto;
	margin-left: auto;
	text-align: right;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.35;
	color: #111;
	white-space: nowrap;
}

.vw-cart-breakdown__row--total {
	margin-top: 2px;
	padding-top: 10px;
	border-top: 1px solid #ececec;
}

.vw-cart-breakdown__row--total .vw-cart-breakdown__label,
.vw-cart-breakdown__row--total .vw-cart-breakdown__value {
	font-size: 15px;
	font-weight: 700;
}

.vw-delivery-free {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	gap: 6px;
	color: #2f6b3a;
	font-weight: 700;
}

.vw-delivery-info {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	padding: 0;
	margin: 0;
	border: 0;
	background: transparent;
	color: #5c6b3a;
	cursor: help;
	line-height: 0;
}

.vw-delivery-info svg {
	display: block;
}

.vw-delivery-info__tip {
	position: absolute;
	right: 0;
	bottom: calc(100% + 8px);
	z-index: 50;
	width: max-content;
	max-width: 230px;
	padding: 8px 10px;
	border-radius: 8px;
	background: #111;
	color: #fff;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.35;
	text-align: left;
	white-space: normal;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(4px);
	transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
}

.vw-delivery-info__tip::after {
	content: "";
	position: absolute;
	top: 100%;
	right: 8px;
	border: 6px solid transparent;
	border-top-color: #111;
}

.vw-delivery-info:hover .vw-delivery-info__tip,
.vw-delivery-info:focus .vw-delivery-info__tip,
.vw-delivery-info:focus-visible .vw-delivery-info__tip {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

/*
 * Hide native Block totals via class — do not set inline styles on React nodes
 * (that races quantity/coupon Store API updates and surfaces generic cart errors).
 * NEVER hide coupon form / panel.
 * Also hide native Total / Estimated total footer (duplicates our .vw-cart-breakdown).
 */
html.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-subtotal-block,
html.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-subtotal-block,
html.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-fee-block,
html.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-fee-block,
html.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-shipping-block,
html.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-shipping-block,
html.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-taxes-block,
html.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-taxes-block,
html.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-discount-block,
html.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-discount-block,
html.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-totals-block,
html.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-totals-block,
html.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-block .wc-block-components-totals-footer-item,
html.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-footer-item,
html.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-block > .wc-block-components-totals-wrapper,
html.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-block > .wc-block-components-totals-wrapper,
html.vw-has-cart-breakdown .wc-block-components-sidebar .wc-block-components-totals-footer-item,
html.vw-has-cart-breakdown .wc-block-cart__sidebar .wc-block-components-totals-footer-item,
body.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-subtotal-block,
body.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-subtotal-block,
body.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-fee-block,
body.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-fee-block,
body.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-shipping-block,
body.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-shipping-block,
body.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-taxes-block,
body.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-taxes-block,
body.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-discount-block,
body.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-discount-block,
body.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-totals-block,
body.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-totals-block,
body.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-block .wc-block-components-totals-footer-item,
body.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-footer-item,
body.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-block > .wc-block-components-totals-wrapper,
body.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-block > .wc-block-components-totals-wrapper,
body.vw-has-cart-breakdown .wc-block-components-sidebar .wc-block-components-totals-footer-item,
body.vw-has-cart-breakdown .wc-block-cart__sidebar .wc-block-components-totals-footer-item {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
	overflow: hidden !important;
	visibility: hidden !important;
}

/* Coupon must always stay visible */
html.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-coupon-form-block,
html.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-coupon-form-block,
html.vw-has-cart-breakdown .wc-block-components-totals-coupon,
body.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-coupon-form-block,
body.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-coupon-form-block,
body.vw-has-cart-breakdown .wc-block-components-totals-coupon {
	display: block !important;
	height: auto !important;
	min-height: 0 !important;
	overflow: visible !important;
	margin: 0 !important;
	padding: 0 !important;
	max-width: 100% !important;
}

/* Coupon panel sits flush against Subtotal — one shared divider only */
html.vw-has-cart-breakdown .wc-block-components-totals-coupon .wc-block-components-panel,
body.vw-has-cart-breakdown .wc-block-components-totals-coupon .wc-block-components-panel,
html.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-panel,
body.vw-has-cart-breakdown .wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-panel,
html.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-coupon-form-block .wc-block-components-panel,
body.vw-has-cart-breakdown .wp-block-woocommerce-checkout-order-summary-coupon-form-block .wc-block-components-panel {
	border-bottom: 0 !important;
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* Zero leftover space for marked native Total / first Estimated total */
html.vw-has-cart-breakdown [data-vw-native-total="1"],
body.vw-has-cart-breakdown [data-vw-native-total="1"] {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	height: 0 !important;
	max-height: 0 !important;
	min-height: 0 !important;
	overflow: hidden !important;
	visibility: hidden !important;
	line-height: 0 !important;
	font-size: 0 !important;
	opacity: 0 !important;
	pointer-events: none !important;
}
