/* =========================================================================
   Cart (and generic WooCommerce checkout / account wrappers)
   Reference: cart app on #f0f2f4 background, white cards radius 8, title 20/24 500,
   item list left (fluid) + order summary right (33.333%, sticky) ≥ 992px, item image 100px,
   qty select 40px, yellow Checkout button 45px.
   ========================================================================= */

body.woocommerce-cart .bb-main { background: #f0f2f4; }
.cart-app { width: 100%; max-width: 1600px; margin: 0 auto; padding: 24px var(--grid-margin) 48px; }
.cart-header { display: flex; align-items: baseline; gap: 12px; margin-bottom: 16px; }
.cart-title { margin: 0; font-size: 20px; line-height: 24px; font-weight: 500; }
@media (min-width: 960px) { .cart-title { font-size: 24px; line-height: 28px; } }
.cart-count { color: var(--colorFgDefaultSubdued); }

.cart-columns { display: flex; align-items: flex-start; gap: 24px; }
.cart-items { flex: 1 1 0%; min-width: 0; }
.cart-summary { flex: 0 0 33.333%; max-width: 400px; position: sticky; top: 16px; }

.item-list { list-style: none; margin: 0; padding: 0; background: #fff; border-radius: 8px; border: 1px solid #e0e6ef; }
.item-list__entry { padding: 16px; border-bottom: 1px solid #e0e6ef; }
.item-list__entry:last-child { border-bottom: 0; }
.cart-item { display: flex; gap: 16px; }
.cart-item__image { flex: 0 0 100px; }
.cart-item__image img { display: block; width: 100px; height: 100px; object-fit: contain; }
.cart-item__details { flex: 1 1 0%; min-width: 0; }
.cart-item__title-row { display: flex; justify-content: space-between; gap: 16px; }
.cart-item__title { color: var(--colorFgDefault); text-decoration: none; font-size: 15px; line-height: 20px; }
.cart-item__title:hover { color: var(--colorFgPrimary); text-decoration: underline; }
.cart-item__price { flex-shrink: 0; text-align: right; font-size: 17px; line-height: 20px; font-weight: 600; }
.cart-item__price .amount { font-size: inherit; }
.cart-item__was { font-size: 11px; line-height: 16px; color: var(--colorFgDefaultSubdued); font-weight: 400; text-decoration: line-through; }
.cart-item__sku { color: var(--colorFgDefaultSubdued); margin: 4px 0 8px; line-height: 16px; }
.cart-item__fulfillment { display: flex; align-items: center; gap: 8px; font-size: 13px; line-height: 16px; margin-bottom: 12px; }
.cart-item__actions { display: flex; align-items: center; gap: 16px; font-size: 13px; }
.cart-item__qty { position: relative; display: inline-flex; align-items: center; }
.cart-item__qty-select { height: 40px; min-width: 72px; padding: 0 32px 0 12px; border: 1px solid #c5cbd5; border-radius: 4px; font: inherit; font-size: 13px; background: #fff; appearance: none; -webkit-appearance: none; }
.cart-item__qty-caret { position: absolute; right: 8px; pointer-events: none; }
.cart-item__remove, .cart-item__save { font-size: 13px; }
.cart-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 16px; flex-wrap: wrap; }
.cart-coupon { display: flex; gap: 8px; }
.cart-coupon__input { height: 30px; width: 180px; border: 1px solid #c5cbd5; border-radius: 4px; padding: 0 12px; font: inherit; font-size: 13px; }
.cart-update { font-size: 13px; }

.order-summary { background: #fff; border: 1px solid #e0e6ef; border-radius: 8px; padding: 16px; }
.order-summary__title { margin: 0 0 12px; font-size: 17px; line-height: 20px; font-weight: 500; }
.order-summary__lines { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.order-summary__line { display: flex; justify-content: space-between; gap: 16px; font-size: 13px; line-height: 16px; }
.order-summary__line dt, .order-summary__line dd { margin: 0; }
.order-summary__free { color: #318000; font-weight: 500; }
.order-summary__total { padding-top: 12px; margin-top: 4px; border-top: 1px solid #e0e6ef; font-size: 15px; font-weight: 600; }
.order-summary__total .amount { font-size: 17px; }
.order-summary__checkout { margin-top: 16px; }
.order-summary__checkout .c-button { font-size: 15px; }
.woocommerce-shipping-totals, .shipping { display: flex; justify-content: space-between; gap: 16px; font-size: 13px; }
.woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.cart-perks { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 13px; line-height: 16px; color: var(--colorFgDefaultSubdued); }
.cart-perks li { display: flex; align-items: center; gap: 8px; }

.cart-empty-card { background: #fff; border: 1px solid #e0e6ef; border-radius: 8px; padding: 48px 24px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.cart-empty-card__icon { color: #0046be; }

/* WooCommerce notices in theme colours */
.woocommerce-message, .woocommerce-info, .woocommerce-error { list-style: none; margin: 0 0 16px; padding: 12px 16px; border-radius: 8px; border: 1px solid #c5cbd5; background: #fff; font-size: 13px; line-height: 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.woocommerce-message { border-color: #318000; }
.woocommerce-error { border-color: #bb0628; }
.woocommerce-message .button, .woocommerce-info .button { color: var(--colorFgPrimary); text-decoration: none; font-weight: 500; }

/* Checkout / account: constrain Woo defaults to the same card look */
body.woocommerce-checkout .bb-main, body.woocommerce-account .bb-main { background: #f0f2f4; }
.woocommerce-checkout .woocommerce, .woocommerce-account .woocommerce { width: 100%; max-width: 1200px; margin: 0 auto; padding: 24px var(--grid-margin) 48px; }
.woocommerce-checkout form.checkout { display: flex; gap: 24px; align-items: flex-start; }
.woocommerce-checkout #customer_details { flex: 1 1 0%; background: #fff; border: 1px solid #e0e6ef; border-radius: 8px; padding: 16px; }
.woocommerce-checkout #order_review_heading { display: none; }
.woocommerce-checkout #order_review { flex: 0 0 33.333%; background: #fff; border: 1px solid #e0e6ef; border-radius: 8px; padding: 16px; }
.woocommerce .form-row label { display: block; font-size: 13px; margin-bottom: 4px; }
.woocommerce .form-row .input-text, .woocommerce .form-row select { width: 100%; height: 40px; border: 1px solid #c5cbd5; border-radius: 4px; padding: 0 12px; font: inherit; font-size: 13px; }
.woocommerce .form-row { margin-bottom: 12px; }
.woocommerce #place_order, .woocommerce .button.alt { height: 45px; padding: 0 24px; border: 0; border-radius: var(--size-round-base); background: var(--color-unstable-button-yellow); color: var(--color-fg-base); font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; width: 100%; }
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; font-size: 13px; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 8px 0; border-bottom: 1px solid #e0e6ef; text-align: left; }

@media (max-width: 991px) {
	.cart-columns { flex-direction: column; }
	.cart-summary { flex: 0 0 auto; width: 100%; max-width: none; position: static; }
	.woocommerce-checkout form.checkout { flex-direction: column; }
	.woocommerce-checkout #order_review { flex: 0 0 auto; width: 100%; }
}
@media (max-width: 639px) {
	.cart-item__image { flex-basis: 72px; }
	.cart-item__image img { width: 72px; height: 72px; }
	.cart-item__title-row { flex-direction: column; gap: 4px; }
	.cart-item__price { text-align: left; }
	.cart-item__actions { flex-wrap: wrap; gap: 12px; }
}
