/*
 * ce-cart.css - Creative Exposure V2 Cart page presentation.
 *
 * Customer-facing brand theming for the native WooCommerce Cart Block (page id 6,
 * wp:woocommerce/cart). Presentation only: this stylesheet restyles the block that
 * WooCommerce already renders and hydrates. It creates no markup, replaces no template,
 * and changes no cart, pricing, payment or checkout behaviour. It consumes the design
 * tokens defined in style.css (per ARCHITECTURE_OWNERSHIP_MATRIX.md, style.css owns the
 * tokens; downstream layers consume them and never redefine them).
 *
 * Visual authority: testing:/cart-proof.html, reconciled to the current owner rules -
 * delivery only (no pickup/collection option), no invented taxes/fees/discounts, no
 * delivery-time promise, KYD currency. The truthful KYD and CI$60 minimum notices are
 * emitted by the pricing engine (.ce-kyd-notice / .ce-min-notice) and are styled, not
 * duplicated, here. The decorative short-dash motif from the proof is intentionally not
 * reproduced.
 *
 * Scope: everything is prefixed with body.woocommerce-cart so it cannot affect any other
 * page. Approved breakpoints only (1024 / 768 / 640).
 */

/* ---------------------------------------------------------------------------
 * Page heading
 * --------------------------------------------------------------------------- */
.woocommerce-cart .ce-page__header {
	margin-bottom: var(--ce-space-6);
}
.woocommerce-cart .ce-page__title {
	font-size: var(--ce-font-2xl);
	font-weight: var(--ce-fw-extrabold);
	letter-spacing: -0.01em;
	line-height: var(--ce-lh-tight);
}

/* ---------------------------------------------------------------------------
 * Governed currency + minimum-order notices (truthful copy from the engine)
 * --------------------------------------------------------------------------- */
.woocommerce-cart .ce-kyd-notice,
.woocommerce-cart .ce-min-notice {
	margin: 0 0 var(--ce-space-3);
	padding: var(--ce-space-3) var(--ce-space-4);
	background: var(--ce-color-bg-cream);
	border-left: 3px solid var(--ce-color-rust-light);
	color: var(--ce-color-text-mid);
	font-size: var(--ce-font-sm);
	font-weight: var(--ce-fw-medium);
}
.woocommerce-cart .ce-min-notice {
	margin-bottom: var(--ce-space-5);
}

/* ---------------------------------------------------------------------------
 * Two-column layout (native .wc-block-cart flex wrapper). We theme, we do not
 * restructure: WooCommerce owns the column switch (is-large / is-medium / is-small).
 * --------------------------------------------------------------------------- */
.woocommerce-cart .wc-block-cart {
	gap: var(--ce-space-7);
}

/* ---------------------------------------------------------------------------
 * Items table: bordered container with row separators (functional dividers kept)
 * --------------------------------------------------------------------------- */
.woocommerce-cart .wc-block-cart-items {
	border: var(--ce-border-width) solid var(--ce-color-border);
}
.woocommerce-cart .wc-block-cart-items__header {
	color: var(--ce-color-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: var(--ce-font-xs);
	font-weight: var(--ce-fw-bold);
	border-bottom-color: var(--ce-color-border);
}
.woocommerce-cart .wc-block-cart-items__row {
	padding: var(--ce-space-5);
	border-bottom: var(--ce-border-width) solid var(--ce-color-border);
}
.woocommerce-cart .wc-block-cart-items__row:last-child {
	border-bottom: 0;
}

/* Product image: never crop product imagery (global storefront image rule). */
.woocommerce-cart .wc-block-cart-item__image {
	background: var(--ce-color-bg-cream);
	border: var(--ce-border-width) solid var(--ce-color-border);
}
.woocommerce-cart .wc-block-cart-item__image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

/* Product name + unit price */
.woocommerce-cart .wc-block-components-product-name {
	font-size: var(--ce-font-lg);
	font-weight: var(--ce-fw-extrabold);
	text-transform: uppercase;
	color: var(--ce-color-text);
	line-height: var(--ce-lh-tight);
}
.woocommerce-cart .wc-block-cart-item__prices {
	color: var(--ce-color-text-muted);
	font-size: var(--ce-font-sm);
	margin-top: var(--ce-space-1);
}

/* Configured options rendered as chips (Width / Height / Unit ...). */
.woocommerce-cart .wc-block-components-product-metadata {
	margin-top: var(--ce-space-3);
}
.woocommerce-cart .wc-block-components-product-details {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ce-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce-cart .wc-block-components-product-details > span,
.woocommerce-cart .wc-block-components-product-details__item {
	display: inline-flex;
	align-items: baseline;
	gap: 4px;
	background: var(--ce-color-bg-cream);
	border: var(--ce-border-width) solid var(--ce-color-border);
	padding: 4px 10px;
	font-size: var(--ce-font-xs);
	font-weight: var(--ce-fw-semibold);
	color: var(--ce-color-text-mid);
	text-transform: uppercase;
	letter-spacing: 0.02em;
}
.woocommerce-cart .wc-block-components-product-details__name {
	color: var(--ce-color-text-muted);
	font-weight: var(--ce-fw-bold);
}
/* Hide the " / " separators that only make sense for inline text, now that each
   option is a self-contained chip. */
.woocommerce-cart .wc-block-components-product-details span[aria-hidden="true"] {
	display: none;
}

/* Quantity stepper */
.woocommerce-cart .wc-block-components-quantity-selector {
	border: var(--ce-border-width) solid var(--ce-color-border);
	border-radius: 0;
	max-width: 140px;
}
.woocommerce-cart .wc-block-components-quantity-selector__input {
	font-weight: var(--ce-fw-extrabold);
	font-size: var(--ce-font-base);
	color: var(--ce-color-text);
}
.woocommerce-cart .wc-block-components-quantity-selector__button {
	background: var(--ce-color-bg-cream);
	color: var(--ce-color-text);
	transition: background-color var(--ce-transition), color var(--ce-transition);
}
.woocommerce-cart .wc-block-components-quantity-selector__button:not([disabled]):hover {
	background: var(--ce-color-rust-light);
	color: var(--ce-color-bg-page);
}

/* Remove link */
.woocommerce-cart .wc-block-cart-item__remove-link {
	color: var(--ce-color-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: var(--ce-font-xs);
	font-weight: var(--ce-fw-bold);
	transition: color var(--ce-transition);
}
.woocommerce-cart .wc-block-cart-item__remove-link:hover {
	color: var(--ce-color-rust-light);
}

/* Line total */
.woocommerce-cart .wc-block-cart-item__total .wc-block-components-product-price__value {
	font-size: var(--ce-font-xl);
	font-weight: var(--ce-fw-extrabold);
	color: var(--ce-color-text);
}

/* ---------------------------------------------------------------------------
 * Order summary sidebar
 * --------------------------------------------------------------------------- */
.woocommerce-cart .wc-block-cart__sidebar {
	border: var(--ce-border-width) solid var(--ce-color-border);
	background: var(--ce-color-bg-page);
	padding: 0;
}
.woocommerce-cart .wc-block-cart__totals-title {
	margin: 0;
	padding: var(--ce-space-4) var(--ce-space-5);
	background: var(--ce-color-black);
	color: var(--ce-color-bg-page);
	font-size: var(--ce-font-sm);
	font-weight: var(--ce-fw-extrabold);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	text-align: left;
}
/* Restore comfortable horizontal padding to the summary body sections that sit under
   the now full-bleed dark title. */
.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-wrapper,
.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-coupon,
.woocommerce-cart .wc-block-cart__sidebar > .wp-block-woocommerce-cart-order-summary-block > * {
	padding-left: var(--ce-space-5);
	padding-right: var(--ce-space-5);
}
.woocommerce-cart .wc-block-cart__sidebar .wc-block-cart__totals-title {
	padding-left: var(--ce-space-5);
	padding-right: var(--ce-space-5);
}
.woocommerce-cart .wc-block-components-totals-item__label {
	color: var(--ce-color-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: var(--ce-font-xs);
	font-weight: var(--ce-fw-semibold);
}
/* Estimated total: strong rule + prominent amount */
.woocommerce-cart .wc-block-components-totals-footer-item {
	border-top: 2px solid var(--ce-color-black);
	margin-top: var(--ce-space-2);
}
.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	color: var(--ce-color-text-muted);
	font-size: var(--ce-font-xs);
	letter-spacing: 0.1em;
}
.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-formatted-money-amount {
	font-size: var(--ce-font-2xl);
	font-weight: var(--ce-fw-extrabold);
	color: var(--ce-color-text);
	line-height: 1;
}

/* Checkout CTA: rust pill, full width, uppercase */
.woocommerce-cart .wc-block-cart__submit-button.wc-block-components-button,
.woocommerce-cart .wc-block-cart__submit-button {
	background: var(--ce-color-rust-light);
	color: var(--ce-color-bg-page);
	border-radius: var(--ce-radius-pill);
	text-transform: uppercase;
	letter-spacing: 0.07em;
	font-weight: var(--ce-fw-bold);
	transition: background-color var(--ce-transition), transform var(--ce-transition);
}
.woocommerce-cart .wc-block-cart__submit-button.wc-block-components-button:hover,
.woocommerce-cart .wc-block-cart__submit-button:hover {
	background: var(--ce-color-rust);
	transform: translateY(-2px);
}

/* Coupon panel toggle: quieter, aligned to brand */
.woocommerce-cart .wc-block-components-totals-coupon .wc-block-components-panel__button {
	color: var(--ce-color-text-mid);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: var(--ce-font-xs);
	font-weight: var(--ce-fw-bold);
}

/* ---------------------------------------------------------------------------
 * Empty cart state
 * --------------------------------------------------------------------------- */
.woocommerce-cart .wp-block-woocommerce-empty-cart-block {
	border: var(--ce-border-width) dashed var(--ce-color-rust-light);
	padding: var(--ce-space-8) var(--ce-space-5);
	text-align: center;
}
.woocommerce-cart .wc-block-cart__empty-cart__title {
	text-transform: uppercase;
	font-weight: var(--ce-fw-extrabold);
	letter-spacing: 0.02em;
}

/* ---------------------------------------------------------------------------
 * Responsive (approved breakpoints only)
 * --------------------------------------------------------------------------- */
@media (max-width: 1024px) {
	.woocommerce-cart .wc-block-cart {
		gap: var(--ce-space-5);
	}
}
@media (max-width: 768px) {
	.woocommerce-cart .ce-page__title {
		font-size: var(--ce-font-xl);
	}
	.woocommerce-cart .wc-block-cart-items__row {
		padding: var(--ce-space-4);
	}
}
@media (max-width: 640px) {
	.woocommerce-cart .wc-block-cart-item__total .wc-block-components-product-price__value {
		font-size: var(--ce-font-lg);
	}
}

/* -----------------------------------------------------------------------------
 * Rule 13 self-review
 * Verified against TECHNICAL_SPECIFICATION.md and BUILD_RULES.md: presentation only.
 * Restyles the native WooCommerce Cart Block; creates no markup, replaces no template,
 * and changes no cart, pricing, payment, deposit, minimum-order or checkout logic.
 * Consumes style.css design tokens (never redefines them). No pickup/collection option,
 * no invented tax/fee/discount, no delivery-time promise, no hardcoded image URLs, no em
 * dashes. Currency remains KYD; the CI$60 minimum notice is styled, not hidden. Approved
 * breakpoints only (1024 / 768 / 640).
 * --------------------------------------------------------------------------- */
