/* ==========================================================================
   Cart & Checkout (WooCommerce blocks)
   ========================================================================== */
.woocommerce-cart .site-main,
.woocommerce-checkout .site-main { padding-bottom: 80px; }

.woocommerce-cart .page-header .entry-title,
.woocommerce-checkout .page-header .entry-title {
	display: flex;
	align-items: center;
	gap: 14px;
}

.woocommerce-cart .page-header .entry-title::after,
.woocommerce-checkout .page-header .entry-title::after {
	content: "";
	flex: 1;
	height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--bv-blue), transparent);
}

/* 区块自带 alignwide 负边距，与页面内容对齐 */
.wp-block-woocommerce-cart.alignwide,
.wp-block-woocommerce-checkout.alignwide {
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}

/* Main panels */
.wp-block-woocommerce-cart .wc-block-cart__main,
.wp-block-woocommerce-checkout .wc-block-checkout__main {
	padding: 28px !important;
	border-radius: 28px;
	background: #fff;
	box-shadow: var(--bv-shadow);
}

.wp-block-woocommerce-cart .wc-block-cart__sidebar,
.wp-block-woocommerce-checkout .wc-block-checkout__sidebar {
	align-self: flex-start;
	position: sticky;
	top: 110px;
	padding: 28px !important;
	border-radius: 28px;
	background: var(--bv-grad-dark);
	color: #fff;
	box-shadow: 0 30px 60px -24px rgba(4, 11, 36, .55);
}

.wc-block-cart__sidebar .wc-block-components-totals-item,
.wc-block-cart__sidebar .wc-block-components-panel__button,
.wc-block-cart__sidebar .wc-block-components-totals-coupon-link,
.wc-block-checkout__sidebar .wc-block-components-totals-item,
.wc-block-checkout__sidebar .wc-block-components-panel__button,
.wc-block-checkout__sidebar .wc-block-components-order-summary-item,
.wc-block-checkout__sidebar .wc-block-components-order-summary__button-text { color: rgba(255, 255, 255, .88); }

.wc-block-cart__sidebar .wc-block-components-totals-wrapper,
.wc-block-checkout__sidebar .wc-block-components-totals-wrapper,
.wc-block-checkout__sidebar .wc-block-components-order-summary { border-color: rgba(255, 255, 255, .12) !important; }

.wc-block-cart__sidebar .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-checkout__sidebar .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--bv-cyan);
	font-size: 28px;
	font-weight: 700;
}

.wc-block-cart__totals-title {
	color: #fff !important;
	font-size: 20px !important;
	letter-spacing: .02em;
	text-transform: none !important;
}

.wc-block-components-order-summary-item__quantity {
	border: 0 !important;
	background: var(--bv-grad) !important;
	color: #fff !important;
	box-shadow: none !important;
}

.wc-block-components-order-summary-item__image img { border-radius: 12px; }

/* Cart items */
.wc-block-cart-items { border: 0 !important; }
.wc-block-cart-items__header { color: var(--bv-muted); font-size: 13px; letter-spacing: .08em; }

.wc-block-cart-items__row {
	border-color: var(--bv-line) !important;
	transition: background .3s;
}

.wc-block-cart-items__row:hover { background: #f9fbff; }

.wc-block-cart-item__image img {
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 16px;
}

.wc-block-components-product-name {
	color: var(--bv-ink) !important;
	font-weight: 700;
	text-decoration: none !important;
}

.wc-block-components-product-name:hover { color: var(--bv-blue) !important; }

.wc-block-components-quantity-selector {
	border-radius: 999px !important;
	border: 1.5px solid var(--bv-line) !important;
	overflow: hidden;
}

.wc-block-components-quantity-selector::after { display: none; }
.wc-block-components-quantity-selector__button:hover { color: var(--bv-blue) !important; }

.wc-block-cart-item__remove-link { color: var(--bv-muted) !important; font-size: 13px !important; }
.wc-block-cart-item__remove-link:hover { color: #d7263d !important; }

/* Primary buttons */
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	min-height: 56px;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--bv-grad) !important;
	color: #fff !important;
	font-weight: 700;
	letter-spacing: .04em;
	text-decoration: none !important;
	box-shadow: var(--bv-glow);
	transition: transform .35s var(--bv-ease), box-shadow .35s var(--bv-ease) !important;
}

.wc-block-components-button:not(.is-link):hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 26px 60px -14px rgba(44, 99, 255, .75);
}

/* Form fields */
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-textarea {
	border: 1.5px solid var(--bv-line) !important;
	border-radius: 14px !important;
	background: #fff !important;
	transition: border-color .25s, box-shadow .25s;
}

.wc-block-components-text-input input:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus {
	border-color: var(--bv-blue) !important;
	box-shadow: 0 0 0 4px rgba(44, 99, 255, .14) !important;
}

.wc-block-components-checkout-step__title {
	font-size: 20px !important;
	font-weight: 700 !important;
}

.wc-block-components-checkout-step__container::after { background: var(--bv-line) !important; }

.wc-block-components-checkout-step__heading-container::before,
.wc-block-components-checkout-step--with-step-number .wc-block-components-checkout-step__title::before {
	color: var(--bv-blue) !important;
}

.wc-block-components-radio-control__option--checked-option-highlighted,
.wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	box-shadow: inset 0 0 0 2px var(--bv-blue) !important;
	border-radius: 14px !important;
}

.wc-block-components-radio-control__input:checked,
.wc-block-components-checkbox__input:checked { border-color: var(--bv-blue) !important; background: var(--bv-blue) !important; }

/* Empty cart */
.wp-block-woocommerce-empty-cart-block { padding: 60px 20px; text-align: center; }

.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title {
	font-size: clamp(24px, 3vw, 34px);
	background: var(--bv-grad);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title::before {
	background-color: var(--bv-blue) !important;
	animation: bv-float-y 3s ease-in-out infinite;
}

@media (max-width: 767px) {
	.wp-block-woocommerce-cart .wc-block-cart__main,
	.wp-block-woocommerce-checkout .wc-block-checkout__main,
	.wp-block-woocommerce-cart .wc-block-cart__sidebar,
	.wp-block-woocommerce-checkout .wc-block-checkout__sidebar { padding: 18px !important; border-radius: 20px; position: static; }
}

/* 深色侧栏内的商品名与描述 */
.wc-block-checkout__sidebar .wc-block-components-product-name,
.wc-block-cart__sidebar .wc-block-components-product-name { color: #fff !important; }

.wc-block-checkout__sidebar .wc-block-components-product-metadata,
.wc-block-checkout__sidebar .wc-block-components-order-summary-item__individual-prices { color: rgba(255, 255, 255, .65); }

.wc-block-checkout__sidebar .wc-block-components-order-summary-item__quantity { box-shadow: 0 0 0 2px var(--bv-navy) !important; }
