/**
 * BoxBuilder Cart Styles
 *
 * Handles cart display for both Classic WooCommerce cart and WooCommerce Blocks cart.
 * Scoped using :has() and BEM-style classes to prevent affecting other plugins/themes.
 *
 * @package BoxBuilder
 * @since   1.0.0
 */

/* ========================================
   Hide default add-to-cart on BoxBuilder products
   Needed for FSE/block themes (Twenty Twenty-Five etc.)
   where remove_action doesn't work because blocks
   replace the traditional template hooks.
   Scoped to body.boxbuilder-product so it only
   affects BoxBuilder-enabled product pages.
   ======================================== */
body.boxbuilder-product form.cart,
body.boxbuilder-product .wp-block-woocommerce-add-to-cart-form {
	display: none !important;
}

/* ========================================
   Hide BoxBuilder child items — Classic cart
   ======================================== */
.boxbuilder-child-item,
.boxbuilder-hidden,
tr.boxbuilder-child-item,
.cart_item.boxbuilder-child-item,
.woocommerce-cart-form__cart-item.boxbuilder-child-item {
	display: none !important;
}

/* ========================================
   Hide BoxBuilder child items — Blocks cart
   ======================================== */
.wc-block-cart-items__row.boxbuilder-child-item,
.wc-block-components-order-summary-item.boxbuilder-child-item,
[class*="CartLineItemRow"].boxbuilder-child-item {
	display: none !important;
}

/* Hide child items by data attribute as fallback */
[data-boxbuilder-child="true"] {
	display: none !important;
}

/* ========================================
   Style parent box items
   ======================================== */
.boxbuilder-parent-item,
tr.boxbuilder-parent-item,
.cart_item.boxbuilder-parent-item {
	border-left: 3px solid #5C6AC4;
}

/* BoxBuilder item count badge */
.boxbuilder-item-count {
	display: inline-block;
	background: #5C6AC4;
	color: white;
	font-size: 11px;
	padding: 2px 8px;
	border-radius: 10px;
	margin-left: 8px;
	font-weight: normal;
}

/* ========================================
   Box contents items — shared styles
   (works in both Classic & Blocks cart)
   ======================================== */
.boxbuilder-item-entry {
	display: block;
	padding: 3px 0;
}

.boxbuilder-item-name {
	color: #333;
}

.boxbuilder-item-qty {
	color: #5C6AC4;
	font-weight: 600;
	white-space: nowrap;
}

/* =====================================================
   WooCommerce Blocks Cart — BoxBuilder scoped styles
   Only targets containers that have our specific entries.
   Uses :has() to avoid affecting other plugins/themes.
   ===================================================== */

/* Scope: only product-details divs containing our box-contents entry */
.wc-block-components-product-details:has(.wc-block-components-product-details__box-contents) {
	font-size: 0 !important;
	line-height: 0 !important;
}

/* Restore font-size on our actual entry spans */
.wc-block-components-product-details:has(.wc-block-components-product-details__box-contents) > span {
	font-size: var(--wp--preset--font-size--x-small, 13px) !important;
	line-height: 1.4 !important;
	display: block !important;
	margin-bottom: 6px;
}

/* Hide aria-hidden separator spans (the "/" dividers) inside our scoped container.
   No ">" direct-child combinator — separators can be nested inside wrapper spans. */
.wc-block-components-product-details:has(.wc-block-components-product-details__box-contents) span[aria-hidden="true"],
.wc-block-components-product-details:has(.wc-block-components-product-details__box-contents) span[aria-hidden] {
	display: none !important;
	font-size: 0 !important;
	width: 0 !important;
	height: 0 !important;
	overflow: hidden !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Box Contents entry */
.wc-block-components-product-details__box-contents {
	padding: 10px 0;
	margin-bottom: 0 !important;
}

.wc-block-components-product-details__box-contents .wc-block-components-product-details__name {
	display: block !important;
	font-weight: 600;
	margin-bottom: 4px;
	font-size: 0.85em;
}

.wc-block-components-product-details__box-contents .wc-block-components-product-details__value {
	display: block !important;
	line-height: 1.6;
}

/* Gift Message entry */
.wc-block-components-product-details__gift-message {
	padding: 8px 0;
	border-top: 1px solid #e0e0e0;
}

.wc-block-components-product-details__gift-message .wc-block-components-product-details__name {
	display: block !important;
	font-weight: 600;
	margin-bottom: 2px;
	font-size: 0.85em;
}

.wc-block-components-product-details__gift-message .wc-block-components-product-details__value {
	display: block !important;
	font-style: italic;
	color: #555;
}

/* ========================================
   Classic Cart — BoxBuilder item data
   ======================================== */
.woocommerce-cart-form .boxbuilder-item-entry,
.woocommerce table.cart .boxbuilder-item-entry {
	padding: 3px 0;
	border-bottom: 1px solid #f0f0f0;
}

.woocommerce-cart-form .boxbuilder-item-entry:last-of-type,
.woocommerce table.cart .boxbuilder-item-entry:last-of-type {
	border-bottom: none;
}

/* ========================================
   Box contents — Order details & My Account
   ======================================== */
.boxbuilder-box-contents-card {
	margin-top: 10px;
	font-size: 13px;
}

.boxbuilder-box-contents-header {
	font-weight: 600;
	margin-bottom: 8px;
}

.boxbuilder-box-item-count {
	font-weight: 400;
	color: #666;
}

.boxbuilder-box-contents-table {
	width: 100%;
	border-collapse: collapse;
}

.boxbuilder-box-item-name {
	padding: 4px 0;
	color: #333;
}

.boxbuilder-box-item-qty {
	padding: 4px 0;
	text-align: right;
	color: #666;
	font-weight: 600;
	white-space: nowrap;
}

.boxbuilder-box-gift-message {
	margin-top: 10px;
	padding-top: 8px;
	border-top: 1px solid #e0e0e0;
}

.boxbuilder-box-gift-label {
	font-weight: 600;
	font-size: 12px;
}

.boxbuilder-box-gift-text {
	margin: 4px 0 0;
	font-style: italic;
	color: #555;
}
