/**
 * S6c — Cart / Checkout polish (WooCommerce Blocks)
 * Scope: is_cart() || is_checkout() only. No payment/shipping logic.
 */

/* --------------------------------------------------------------------------
   Page shell
   -------------------------------------------------------------------------- */
.woocommerce-cart .entry-content,
.woocommerce-checkout .entry-content,
.woocommerce-cart .wp-block-woocommerce-cart,
.woocommerce-checkout .wp-block-woocommerce-checkout {
	max-width: 80rem; /* ~1280 */
	margin-inline: auto;
	padding-inline: var(--bhm-space-4);
	box-sizing: border-box;
}

.woocommerce-cart .entry-header,
.woocommerce-checkout .entry-header,
.woocommerce-cart h1.wp-block-post-title,
.woocommerce-checkout h1.wp-block-post-title,
.woocommerce-cart .entry-content > h1:first-child,
.woocommerce-checkout .entry-content > h1:first-child {
	font-family: var(--bhm-font-display);
	font-weight: var(--bhm-fw-bold);
	color: var(--bhm-navy);
	letter-spacing: -0.02em;
	margin: var(--bhm-space-6) 0 var(--bhm-space-5);
}

@media (min-width: 900px) {
	.woocommerce-cart .entry-content,
	.woocommerce-checkout .entry-content,
	.woocommerce-cart .wp-block-woocommerce-cart,
	.woocommerce-checkout .wp-block-woocommerce-checkout {
		padding-inline: var(--bhm-space-8);
	}
}

/* --------------------------------------------------------------------------
   Primary / secondary buttons → .bhm-btn contract
   -------------------------------------------------------------------------- */
.woocommerce-cart .wc-block-components-button.contained,
.woocommerce-checkout .wc-block-components-button.contained,
.woocommerce-cart .wc-block-cart__submit-button,
.woocommerce-checkout .wc-block-components-checkout-place-order-button,
.woocommerce-cart a.wp-block-button__link,
.woocommerce-cart .wp-element-button,
.woocommerce-checkout .wp-element-button.contained {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--bhm-space-2);
	min-height: var(--bhm-touch, 2.75rem);
	padding: 0.85rem 1.25rem;
	border-radius: var(--bhm-radius);
	border: 1px solid transparent;
	background: var(--bhm-accent) !important;
	color: var(--bhm-paper) !important;
	font-family: var(--bhm-font);
	font-weight: var(--bhm-fw-bold);
	letter-spacing: 0.01em;
	text-decoration: none;
	box-shadow: none;
	transition:
		background var(--bhm-duration, 0.2s) var(--bhm-ease, ease),
		color var(--bhm-duration, 0.2s) var(--bhm-ease, ease),
		border-color var(--bhm-duration, 0.2s) var(--bhm-ease, ease),
		box-shadow var(--bhm-duration, 0.2s) var(--bhm-ease, ease),
		transform var(--bhm-duration, 0.2s) var(--bhm-ease, ease);
}

.woocommerce-cart .wc-block-components-button.contained:hover,
.woocommerce-checkout .wc-block-components-button.contained:hover,
.woocommerce-cart .wc-block-cart__submit-button:hover,
.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover,
.woocommerce-cart a.wp-block-button__link:hover,
.woocommerce-cart .wp-element-button:hover,
.woocommerce-checkout .wp-element-button.contained:hover {
	background: var(--bhm-accent-hover) !important;
	color: var(--bhm-paper) !important;
	transform: translateY(-1px);
}

.woocommerce-cart .wc-block-components-button.contained:focus-visible,
.woocommerce-checkout .wc-block-components-button.contained:focus-visible,
.woocommerce-cart .wc-block-cart__submit-button:focus-visible,
.woocommerce-checkout .wc-block-components-checkout-place-order-button:focus-visible,
.woocommerce-cart a.wp-block-button__link:focus-visible,
.woocommerce-cart .wp-element-button:focus-visible,
.woocommerce-checkout .wp-element-button.contained:focus-visible {
	outline: none;
	box-shadow: var(--bhm-focus-ring);
}

.woocommerce-cart .wc-block-components-button.outlined,
.woocommerce-checkout .wc-block-components-button.outlined,
.woocommerce-cart .wc-block-components-button:not(.contained):not(.link),
.woocommerce-checkout .wc-block-components-button:not(.contained):not(.link) {
	min-height: var(--bhm-touch, 2.75rem);
	padding: 0.85rem 1.25rem;
	border-radius: var(--bhm-radius);
	border: 1px solid var(--bhm-border);
	background: transparent !important;
	color: var(--bhm-navy) !important;
	font-weight: var(--bhm-fw-bold);
}

.woocommerce-cart .wc-block-components-button.outlined:hover,
.woocommerce-checkout .wc-block-components-button.outlined:hover {
	border-color: var(--bhm-navy);
	color: var(--bhm-navy) !important;
}

.woocommerce-checkout .wc-block-components-checkout-place-order-button--full-width,
.woocommerce-cart .wc-block-cart__submit .wc-block-cart__submit-button {
	width: 100%;
}

/* --------------------------------------------------------------------------
   Form fields
   -------------------------------------------------------------------------- */
.woocommerce-checkout .wc-block-components-text-input input,
.woocommerce-checkout .wc-block-components-textarea textarea,
.woocommerce-checkout .wc-block-components-combobox input,
.woocommerce-cart .wc-block-components-text-input input,
.woocommerce-cart .wc-block-components-totals-coupon__input input {
	border-radius: var(--bhm-radius) !important;
	border-color: var(--bhm-border) !important;
	font-family: var(--bhm-font);
	color: var(--bhm-navy);
	min-height: 2.75rem;
}

.woocommerce-checkout .wc-block-components-textarea textarea {
	line-height: var(--bhm-lh-field);
}

.woocommerce-checkout .wc-block-components-text-input.is-active input,
.woocommerce-checkout .wc-block-components-text-input input:focus,
.woocommerce-checkout .wc-block-components-textarea textarea:focus,
.woocommerce-checkout .wc-block-components-combobox input:focus,
.woocommerce-cart .wc-block-components-text-input input:focus {
	border-color: var(--bhm-accent) !important;
	box-shadow: var(--bhm-focus-ring);
	outline: none;
}

.woocommerce-checkout .wc-block-components-checkout-step__title,
.woocommerce-checkout .wc-block-components-checkout-step__heading,
.woocommerce-cart .wc-block-cart__totals-title,
.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title {
	font-family: var(--bhm-font-display);
	color: var(--bhm-navy);
	font-weight: var(--bhm-fw-bold);
}

.woocommerce-checkout .wc-block-components-checkout-step__description,
.woocommerce-cart .wc-block-components-product-metadata__description,
.woocommerce-checkout .wc-block-components-product-metadata__description {
	color: var(--bhm-slate);
	line-height: 1.5;
}

/* --------------------------------------------------------------------------
   Cart table / totals
   -------------------------------------------------------------------------- */
.woocommerce-cart .wc-block-cart-items,
.woocommerce-checkout .wc-block-components-order-summary {
	border-color: var(--bhm-border);
}

.woocommerce-cart .wc-block-components-product-name,
.woocommerce-checkout .wc-block-components-product-name {
	color: var(--bhm-navy);
	font-weight: var(--bhm-fw-bold);
	text-decoration: none;
}

.woocommerce-cart .wc-block-components-product-name:hover,
.woocommerce-checkout .wc-block-components-product-name:hover {
	color: var(--bhm-accent);
}

.woocommerce-cart .wc-block-components-product-price,
.woocommerce-checkout .wc-block-components-product-price,
.woocommerce-cart .wc-block-components-totals-item__value,
.woocommerce-checkout .wc-block-components-totals-item__value {
	color: var(--bhm-navy);
	font-weight: var(--bhm-fw-bold);
	font-variant-numeric: tabular-nums;
}

.woocommerce-cart .wc-block-components-sidebar,
.woocommerce-checkout .wc-block-components-sidebar {
	border: 1px solid var(--bhm-border);
	border-radius: var(--bhm-radius);
	background: var(--bhm-paper);
	padding: var(--bhm-space-5);
	box-sizing: border-box;
}

/* --------------------------------------------------------------------------
   Empty cart
   -------------------------------------------------------------------------- */
.woocommerce-cart .wc-block-cart__empty-cart__title,
.woocommerce-cart .wp-block-woocommerce-empty-cart-block h2 {
	font-family: var(--bhm-font-display);
	color: var(--bhm-navy);
	font-weight: var(--bhm-fw-bold);
}

.woocommerce-cart .wc-block-cart__empty-cart__description,
.woocommerce-cart .wp-block-woocommerce-empty-cart-block p {
	color: var(--bhm-slate);
}

/* WP separator “dots” under empty title reads as stray “…” — brand rule instead */
.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wp-block-separator.is-style-dots {
	border: 0;
	height: 0;
	margin: var(--bhm-space-4) auto var(--bhm-space-6);
	max-width: 5rem;
	background: transparent;
	overflow: hidden;
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wp-block-separator.is-style-dots::before {
	content: '';
	display: block;
	width: 5rem;
	height: 3px;
	margin: 0 auto;
	border-radius: 2px;
	background: var(--bhm-navy);
	color: transparent;
	letter-spacing: 0;
}

.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__icon,
.woocommerce-cart .wp-block-woocommerce-empty-cart-block svg,
.woocommerce-cart .wp-block-woocommerce-empty-cart-block .with-empty-cart-icon::before {
	color: var(--bhm-muted);
	opacity: 0.85;
}

.woocommerce-cart .wp-block-woocommerce-product-new .wc-block-grid__product,
.woocommerce-cart .wc-block-product-template .wc-block-product {
	border: 1px solid var(--bhm-border);
	border-radius: var(--bhm-radius);
	background: var(--bhm-paper);
	padding: var(--bhm-space-3);
	box-sizing: border-box;
}

.woocommerce-cart .wc-block-grid__product-title,
.woocommerce-cart .wc-block-components-product-name {
	font-weight: var(--bhm-fw-bold);
	color: var(--bhm-navy);
}

/* Cross-sell / empty-cart ATC */
.woocommerce-cart .wc-block-grid__product .wp-block-button__link,
.woocommerce-cart .wc-block-components-product-button .wp-element-button,
.woocommerce-cart .add_to_cart_button {
	width: 100%;
	box-sizing: border-box;
}

/* --------------------------------------------------------------------------
   Notices
   -------------------------------------------------------------------------- */
.woocommerce-cart .wc-block-components-notice-banner,
.woocommerce-checkout .wc-block-components-notice-banner,
.woocommerce-cart .woocommerce-message,
.woocommerce-checkout .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-checkout .woocommerce-info,
.woocommerce-cart .woocommerce-error,
.woocommerce-checkout .woocommerce-error {
	border-radius: var(--bhm-radius);
	padding: 1rem 1.15rem;
}

/* --------------------------------------------------------------------------
   Mobile @393 + bottom-nav clearance
   -------------------------------------------------------------------------- */
@media (max-width: 781px) {
	.woocommerce-cart .entry-content,
	.woocommerce-checkout .entry-content,
	.woocommerce-cart .wp-block-woocommerce-cart,
	.woocommerce-checkout .wp-block-woocommerce-checkout {
		padding-inline: var(--bhm-space-4);
		padding-bottom: var(--bhm-space-8);
	}

	.woocommerce-cart .wc-block-components-sidebar,
	.woocommerce-checkout .wc-block-components-sidebar {
		margin-top: var(--bhm-space-5);
	}

	.woocommerce-cart .wc-block-cart-items__header,
	.woocommerce-cart .wc-block-cart-items__header-total {
		font-size: var(--bhm-text-kicker);
	}

	/* Ensure Place Order / Proceed stay above bottom nav when sticky footer exists */
	.bhm-has-bottom-nav.woocommerce-cart .wc-block-cart__submit,
	.bhm-has-bottom-nav.woocommerce-checkout .wc-block-checkout__actions_row {
		padding-bottom: calc(0.5rem + env(safe-area-inset-bottom));
	}
}

/* Hide duplicate sticky chrome on transactional pages if any legacy bar leaks */
.woocommerce-cart .bhm-sticky-bar,
.woocommerce-checkout .bhm-sticky-bar {
	display: none !important;
}

/* NY-only service: hide Country / State / Company (Blocks + classic). */
.woocommerce-checkout .bhm-locale-hidden,
.woocommerce-checkout #billing_country_field,
.woocommerce-checkout #billing_state_field,
.woocommerce-checkout #billing_company_field,
.woocommerce-checkout .wc-block-components-address-form__country,
.woocommerce-checkout .wc-block-components-address-form__state,
.woocommerce-checkout .wc-block-components-address-form__company,
.woocommerce-account #billing_country_field,
.woocommerce-account #billing_state_field,
.woocommerce-account #billing_company_field {
	display: none !important;
}
