/* NovaFolio Woo Cart — premium cart refinement
   ----------------------------------------------------------------
   Goals
   - continuous borders across cart rows
   - better integrated total column
   - cleaner editorial spacing
   - stronger parity with NovaFolio checkout language
------------------------------------------------------------------ */

body.woocommerce-cart {
	--nvf-cart-text: var(--nvf-color-text, #111827);
	--nvf-cart-heading: var(--nvf-color-headings, #0f172a);
	--nvf-cart-muted: color-mix(in srgb, var(--nvf-color-text, #111827) 62%, white);

	--nvf-cart-surface: var(--nvf-color-body, #ffffff);
	--nvf-cart-surface-soft: color-mix(in srgb, var(--nvf-color-body, #ffffff) 96%, var(--nvf-color-headings, #0f172a) 4%);
	--nvf-cart-surface-subtle: color-mix(in srgb, var(--nvf-color-body, #ffffff) 92%, var(--nvf-color-headings, #0f172a) 8%);

	--nvf-cart-border-color: var(--nvf-color-border, #e5e7eb);
	--nvf-cart-border: 1px solid var(--nvf-cart-border-color);

	/* Driven by Customizer > WooCommerce > Produit unique */
	--nvf-cart-card-radius: var(--nvf-woo-single-card-radius, var(--nvf-single-card-radius, 16px));
	--nvf-cart-button-radius: var(--nvf-woo-single-button-radius, var(--nvf-btn-radius, 16px));
	--nvf-cart-button-bg: var(--nvf-woo-single-button-bg, var(--nvf-btn-primary-bg, #111111));
	--nvf-cart-button-text: var(--nvf-woo-single-button-text, var(--nvf-btn-primary-text, #ffffff));

	/* Visual rhythm */
	--nvf-cart-shadow: 0 10px 30px rgba(15, 23, 42, 0.05);
	--nvf-cart-shadow-soft: 0 6px 18px rgba(15, 23, 42, 0.04);
	--nvf-cart-shadow-hover: 0 16px 40px rgba(15, 23, 42, 0.07);

	--nvf-cart-gap: clamp(18px, 1.8vw, 24px);
	--nvf-cart-pad: clamp(18px, 2vw, 26px);
	--nvf-cart-row-pad-y: clamp(18px, 2vw, 24px);
	--nvf-cart-row-pad-x: clamp(18px, 2vw, 24px);

	--nvf-cart-title-size: 0.78rem;
	--nvf-cart-title-spacing: 0.12em;
	--nvf-cart-total-col-width: clamp(136px, 13vw, 168px);
}

body.woocommerce-cart .entry-content > .wp-block-woocommerce-cart,
body.woocommerce-cart .nvf-prose > .wp-block-woocommerce-cart,
body.woocommerce-cart .wc-block-cart,
body.woocommerce-cart .wp-block-woocommerce-filled-cart-block,
body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart-collaterals {
	color: var(--nvf-cart-text);
}

body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-cart .wp-block-woocommerce-filled-cart-block,
body.woocommerce-cart .wc-block-cart {
	width: min(100%, var(--nvf-layout-max-width, 1440px));
	max-width: var(--nvf-layout-max-width, 1440px);
	margin-inline: auto;
}

body.woocommerce-cart .wc-block-cart__main,
body.woocommerce-cart .wc-block-cart__sidebar {
	min-width: 0;
}

/* Desktop layout ------------------------------------------------ */

@media (min-width: 992px) {
	body.woocommerce-cart .wc-block-cart {
		display: grid;
		grid-template-columns: minmax(0, 1.34fr) minmax(320px, 0.66fr);
		gap: clamp(28px, 3vw, 44px);
		align-items: start;
	}

	body.woocommerce-cart .wc-block-cart__main,
	body.woocommerce-cart .wc-block-cart__sidebar {
		width: 100%;
		min-width: 0;
	}

	body.woocommerce-cart .wc-block-cart__sidebar {
		position: sticky;
		top: clamp(96px, 9vw, 132px);
		align-self: start;
	}
}

/* Reset table conflicts ---------------------------------------- */

body.woocommerce-cart table.wc-block-cart-items,
body.woocommerce-cart table.wc-block-cart-items th,
body.woocommerce-cart table.wc-block-cart-items td {
	background-image: none !important;
}

/* Column headers ------------------------------------------------ */

body.woocommerce-cart .wc-block-cart-items thead th {
	background: transparent !important;
	border: 0 !important;
	color: var(--nvf-cart-heading) !important;
	font-size: 0.88rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	padding: 0 0 14px 0 !important;
	line-height: 1.2 !important;
}

body.woocommerce-cart .wc-block-cart-items thead th:first-child {
	padding-left: 4px !important;
}

body.woocommerce-cart .wc-block-cart-items thead th:last-child {
	text-align: right !important;
}

/* Cart rows as unified cards ----------------------------------- */

body.woocommerce-cart .wc-block-cart-items {
	border-collapse: separate !important;
	border-spacing: 0 var(--nvf-cart-gap) !important;
}

body.woocommerce-cart .wc-block-cart-items__row {
	background: transparent !important;
	filter: none !important;
}

body.woocommerce-cart .wc-block-cart-items__row td {
	background: var(--nvf-cart-surface) !important;
	padding: var(--nvf-cart-row-pad-y) var(--nvf-cart-row-pad-x) !important;
	vertical-align: middle !important;
	border-top: var(--nvf-cart-border) !important;
	border-bottom: var(--nvf-cart-border) !important;
	border-left: 0 !important;
	border-right: 0 !important;
	box-shadow: none !important;
	transition:
		border-color 180ms ease,
		background-color 180ms ease,
		box-shadow 180ms ease !important;
}

/* Continuous vertical separators */
body.woocommerce-cart .wc-block-cart-items__row td + td {
	border-left: var(--nvf-cart-border) !important;
}

/* Outer shell */
body.woocommerce-cart .wc-block-cart-items__row td:first-child {
	border-left: var(--nvf-cart-border) !important;
	border-top-left-radius: var(--nvf-cart-card-radius) !important;
	border-bottom-left-radius: var(--nvf-cart-card-radius) !important;
	box-shadow: var(--nvf-cart-shadow) !important;
	padding-right: 14px !important;
}

body.woocommerce-cart .wc-block-cart-items__row td:last-child {
	border-right: var(--nvf-cart-border) !important;
	border-top-right-radius: var(--nvf-cart-card-radius) !important;
	border-bottom-right-radius: var(--nvf-cart-card-radius) !important;
	box-shadow: var(--nvf-cart-shadow) !important;
}

body.woocommerce-cart .wc-block-cart-items__row:hover td {
	border-color: color-mix(in srgb, var(--nvf-cart-border-color) 74%, var(--nvf-cart-heading) 26%) !important;
	background: var(--nvf-cart-surface) !important;
}

body.woocommerce-cart .wc-block-cart-items__row:hover td:first-child,
body.woocommerce-cart .wc-block-cart-items__row:hover td:last-child {
	box-shadow: var(--nvf-cart-shadow-hover) !important;
}

/* Image column -------------------------------------------------- */

body.woocommerce-cart .wc-block-cart-item__image {
	width: 92px !important;
}

body.woocommerce-cart .wc-block-cart-item__image img {
	display: block !important;
	width: 60px !important;
	height: 60px !important;
	object-fit: cover !important;
	border-radius: max(10px, calc(var(--nvf-cart-card-radius) - 6px)) !important;
	box-shadow: var(--nvf-cart-shadow-soft) !important;
}

/* Product content ---------------------------------------------- */

body.woocommerce-cart .wc-block-cart-item__product {
	padding-left: 14px !important;
}

body.woocommerce-cart .wc-block-cart-item__wrap {
	max-width: 100%;
}

body.woocommerce-cart .wc-block-components-product-name {
	display: inline-block !important;
	color: var(--nvf-cart-heading) !important;
	font-size: 1rem !important;
	font-weight: 650 !important;
	line-height: 1.35 !important;
	text-decoration: none !important;
	margin-bottom: 6px !important;
}

body.woocommerce-cart .wc-block-components-product-name:hover {
	color: var(--nvf-cart-heading) !important;
	text-decoration: underline !important;
	text-underline-offset: 3px !important;
}

body.woocommerce-cart .wc-block-cart-item__prices {
	margin: 0 0 8px 0 !important;
}

body.woocommerce-cart .wc-block-formatted-money-amount,
body.woocommerce-cart .wc-block-components-product-price__value,
body.woocommerce-cart .wc-block-components-order-summary-item__total-price {
	color: var(--nvf-cart-heading) !important;
	font-weight: 700 !important;
}

body.woocommerce-cart .wc-block-components-product-metadata,
body.woocommerce-cart .wc-block-components-order-summary-item__description,
body.woocommerce-cart .wc-block-components-order-summary-item__quantity,
body.woocommerce-cart .wc-block-components-totals-item__description,
body.woocommerce-cart .wc-block-cart-item__remove-link {
	color: var(--nvf-cart-muted) !important;
	font-size: 0.93rem !important;
	line-height: 1.5 !important;
}

body.woocommerce-cart .wc-block-components-product-metadata {
	margin-bottom: 8px !important;
}

body.woocommerce-cart .wc-block-components-product-metadata p {
	margin: 0 !important;
}

body.woocommerce-cart .wc-block-cart-item__quantity {
	margin-top: 6px !important;
}

/* Remove link */
body.woocommerce-cart .wc-block-cart-item__remove-link {
	text-decoration: underline !important;
	text-decoration-thickness: 1px !important;
	text-underline-offset: 3px !important;
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
}

body.woocommerce-cart .wc-block-cart-item__remove-link:hover {
	color: var(--nvf-cart-heading) !important;
}

/* Quantity selector -------------------------------------------- */

body.woocommerce-cart .wc-block-components-quantity-selector {
	min-height: 42px !important;
	border: var(--nvf-cart-border) !important;
	border-radius: 999px !important;
	background: var(--nvf-cart-surface) !important;
	overflow: hidden !important;
	box-shadow: none !important;
	display: inline-flex !important;
}

body.woocommerce-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button,
body.woocommerce-cart .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
	min-height: 42px !important;
	background: transparent !important;
	color: var(--nvf-cart-heading) !important;
	border: 0 !important;
	box-shadow: none !important;
}

body.woocommerce-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover {
	background: var(--nvf-cart-surface-soft) !important;
}

/* Total column: better integrated -------------------------------- */

body.woocommerce-cart .wc-block-cart-item__total {
	width: var(--nvf-cart-total-col-width) !important;
	min-width: var(--nvf-cart-total-col-width) !important;
	text-align: right !important;
	white-space: nowrap !important;
}

body.woocommerce-cart .wc-block-cart-item__total .wc-block-cart-item__total-price-and-sale-badge-wrapper {
	display: flex !important;
	justify-content: flex-end !important;
	align-items: center !important;
	width: 100% !important;
	min-height: 100% !important;
}

body.woocommerce-cart .wc-block-cart-item__total .price {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: flex-end !important;
	width: 100% !important;
}

body.woocommerce-cart .wc-block-cart-item__total .wc-block-components-product-price__value {
	font-size: 0.98rem !important;
	font-weight: 750 !important;
	letter-spacing: -0.01em !important;
}

/* Sidebar outer shell ------------------------------------------ */

body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-sidebar-layout {
	background: var(--nvf-cart-surface) !important;
	border: var(--nvf-cart-border) !important;
	border-radius: var(--nvf-cart-card-radius) !important;
	box-shadow: var(--nvf-cart-shadow) !important;
	padding: 0 !important;
	overflow: hidden !important;
}

/* Neutralise internal card stacking */
body.woocommerce-cart .wc-block-components-order-summary,
body.woocommerce-cart .wc-block-components-totals-wrapper,
body.woocommerce-cart .wc-block-components-totals-coupon,
body.woocommerce-cart .wc-block-components-panel,
body.woocommerce-cart .wc-block-components-totals-item {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	margin: 0 !important;
}



body.woocommerce-cart .wc-block-components-totals-coupon {
	padding-top: var(--nvf-cart-pad) !important;
	padding-bottom: 14px !important;
}

body.woocommerce-cart .wc-block-components-order-summary {
	padding-top: 6px !important;
	padding-bottom: 10px !important;
}

body.woocommerce-cart .wc-block-components-totals-wrapper {
	padding-top: 14px !important;
	padding-bottom: var(--nvf-cart-pad) !important;
	border-top: 1px solid var(--nvf-cart-border-color) !important;
}

/* Sidebar titles and totals ------------------------------------ */

body.woocommerce-cart .wc-block-components-title,
body.woocommerce-cart .wc-block-components-title .wc-block-components-title__text,
body.woocommerce-cart .wc-block-components-order-summary__title,
body.woocommerce-cart .wc-block-components-totals-item__label,
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	color: var(--nvf-cart-heading) !important;
	font-weight: 700 !important;
	letter-spacing: 0.05em !important;
}

body.woocommerce-cart .wc-block-components-title .wc-block-components-title__text,
body.woocommerce-cart .wc-block-components-order-summary__title {
	font-size: 1.08rem !important;
	line-height: 1.2 !important;
	text-transform: uppercase !important;
}

body.woocommerce-cart .wc-block-components-totals-item,
body.woocommerce-cart .wc-block-components-totals-footer-item {
	padding-block: 10px !important;
}

body.woocommerce-cart .wc-block-components-totals-footer-item {
	margin-top: 4px !important;
	padding-top: 14px !important;
	border-top: 1px solid var(--nvf-cart-border-color) !important;
}

body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-formatted-money-amount {
	font-size: 1.1rem !important;
	font-weight: 800 !important;
	color: var(--nvf-cart-heading) !important;
}

/* Coupon field -------------------------------------------------- */

body.woocommerce-cart .wc-block-components-text-input input,
body.woocommerce-cart .wc-block-components-text-input input:focus,
body.woocommerce-cart .wc-block-components-totals-coupon__input input,
body.woocommerce-cart .wc-block-components-totals-coupon__input input:focus {
	min-height: 46px !important;
	border: var(--nvf-cart-border) !important;
	border-radius: 12px !important;
	background: var(--nvf-cart-surface) !important;
	box-shadow: none !important;
}

body.woocommerce-cart .wc-block-components-text-input.is-active input,
body.woocommerce-cart .wc-block-components-text-input input:focus,
body.woocommerce-cart .wc-block-components-totals-coupon__input input:focus {
	border-color: color-mix(in srgb, var(--nvf-cart-border-color) 55%, var(--nvf-color-accent, #4f46e5) 45%) !important;
}

/* Primary CTA --------------------------------------------------- */

body.woocommerce-cart .wc-block-cart__submit-container {
	padding: 2px var(--nvf-cart-pad) var(--nvf-cart-pad) !important;
}

body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-cart .wc-block-components-button,
body.woocommerce-cart .wc-block-cart__submit-button.wp-element-button,
body.woocommerce-cart .wc-block-components-button.wp-element-button {
	min-height: 48px !important;
	padding: 0.9rem 1.35rem !important;
	border-radius: var(--nvf-cart-button-radius) !important;
	background: var(--nvf-cart-button-bg) !important;
	border: 1px solid var(--nvf-cart-button-bg) !important;
	color: var(--nvf-cart-button-text) !important;
	font-size: 0.96rem !important;
	font-weight: 650 !important;
	letter-spacing: -0.01em !important;
	box-shadow: none !important;
	transition:
		background-color 180ms ease,
		border-color 180ms ease,
		color 180ms ease,
		transform 180ms ease,
		box-shadow 180ms ease !important;
}

body.woocommerce-cart .wc-block-cart__submit-button .wc-block-components-button__text,
body.woocommerce-cart .wc-block-components-button .wc-block-components-button__text {
	color: inherit !important;
}

body.woocommerce-cart .wc-block-cart__submit-button:hover,
body.woocommerce-cart .wc-block-components-button:hover,
body.woocommerce-cart .wc-block-cart__submit-button.wp-element-button:hover,
body.woocommerce-cart .wc-block-components-button.wp-element-button:hover {
	background: var(--nvf-cart-button-bg) !important;
	border-color: var(--nvf-cart-button-bg) !important;
	color: var(--nvf-cart-button-text) !important;
	transform: translateY(-1px) !important;
	box-shadow: 0 14px 30px rgba(15, 23, 42, 0.12) !important;
}

body.woocommerce-cart .wc-block-cart__submit-button:focus-visible,
body.woocommerce-cart .wc-block-components-button:focus-visible {
	outline: 2px solid var(--nvf-focus-ring-color, var(--nvf-color-accent, #4f46e5));
	outline-offset: 2px;
}

/* Notices ------------------------------------------------------- */

body.woocommerce-cart .wc-block-components-notice-banner,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-error {
	background: var(--nvf-cart-surface) !important;
	border: var(--nvf-cart-border) !important;
	border-radius: var(--nvf-cart-card-radius) !important;
	box-shadow: var(--nvf-cart-shadow-soft) !important;
	color: var(--nvf-cart-text) !important;
}

/* Mobile -------------------------------------------------------- */

@media (max-width: 991px) {
	body.woocommerce-cart .wc-block-cart__sidebar {
		margin-top: 24px !important;
	}
}

@media (max-width: 767px) {
	body.woocommerce-cart .wc-block-cart-items {
		border-spacing: 0 14px !important;
	}

	body.woocommerce-cart .wc-block-components-title .wc-block-components-title__text,
	body.woocommerce-cart .wc-block-components-order-summary__title {
		font-size: 1rem !important;
	}

	body.woocommerce-cart .wc-block-cart-item__image {
		width: 72px !important;
	}

	body.woocommerce-cart .wc-block-cart-item__image img {
		width: 52px !important;
		height: 52px !important;
	}
}

@media (max-width: 480px) {
	body.woocommerce-cart .wc-block-cart__submit-button,
	body.woocommerce-cart .wc-block-components-button,
	body.woocommerce-cart .wc-block-cart__submit-button.wp-element-button,
	body.woocommerce-cart .wc-block-components-button.wp-element-button {
		width: 100% !important;
	}
}
body.woocommerce-cart .wc-block-cart__sidebar {
	display: block !important;
}

body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-sidebar-layout {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
}

body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-title,
body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-title .wc-block-components-title__text,
body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-order-summary__title {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	text-align: left !important;
}

body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-coupon,
body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-order-summary,
body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-wrapper,
body.woocommerce-cart .wc-block-cart__sidebar .wc-block-cart__submit-container {
	width: 100% !important;
	box-sizing: border-box !important;
}

body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-coupon {
	padding-top: var(--nvf-cart-pad) !important;
	padding-bottom: 16px !important;
}

body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-order-summary {
	padding-top: 8px !important;
	padding-bottom: 12px !important;
}

body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-wrapper {
	padding-top: 16px !important;
	padding-bottom: var(--nvf-cart-pad) !important;
	border-top: 1px solid var(--nvf-cart-border-color) !important;
}

body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-item,
body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-footer-item {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto !important;
	align-items: center !important;
	column-gap: 16px !important;
	width: 100% !important;
}

body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-item__label,
body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	text-align: left !important;
}

body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-item__value,
body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-footer-item .wc-block-formatted-money-amount {
	text-align: right !important;
	justify-self: end !important;
}

body.woocommerce-cart .wc-block-cart__sidebar .wc-block-cart__submit-container {
	padding-top: 4px !important;
}

body.woocommerce-cart .wc-block-cart__sidebar .wc-block-cart__submit-button {
	width: 100% !important;
}

/* ================================================================
   Classic cart template — remove thead gray background
   (from global rule: table thead { background: var(--nvf-color-light-2) })
   ================================================================ */

body.woocommerce-cart .woocommerce table.shop_table thead,
body.woocommerce-cart .woocommerce-page table.shop_table thead,
body.woocommerce-cart table.shop_table.cart thead {
	background: transparent !important;
}

body.woocommerce-cart table.shop_table.cart thead th {
	background: transparent !important;
	border-top: 0 !important;
	border-left: 0 !important;
	border-right: 0 !important;
	border-bottom: var(--nvf-cart-border) !important;
	color: var(--nvf-cart-heading) !important;
	font-size: 0.88rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	padding: 0 0 14px 0 !important;
	line-height: 1.2 !important;
}

body.woocommerce-cart table.shop_table.cart thead th:first-child {
	border-left: 0 !important;
}

body.woocommerce-cart table.shop_table.cart thead th:last-child {
	text-align: right !important;
}