/**
 * Base styling applied to WooCommerce's own markup everywhere it appears
 * (including default checkout/my-account pages we intentionally do NOT
 * template-override, to avoid touching payment/shipping/tax logic).
 */

.cb-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 0.4rem; list-style: none; margin: 0 0 var(--cb-space-lg); padding: 0; }
.cb-breadcrumbs li { font-size: var(--cb-text-body-sm); color: var(--cb-color-text-faint); text-transform: uppercase; letter-spacing: 0.05em; }
.cb-breadcrumbs li:not(:last-child)::after { content: "/"; margin-left: 0.4rem; }
.cb-breadcrumbs a { color: var(--cb-color-text-faint); }
.cb-breadcrumbs a:hover { color: var(--cb-color-dusty-rose); }

/* Buttons */
.button, button.button, input.button, .wc-block-components-button {
	font-family: var(--cb-font-body) !important;
	background: var(--cb-color-button) !important;
	color: var(--cb-color-button-text) !important;
	border-radius: var(--cb-radius) !important;
	padding: 0.9rem 2rem !important;
	font-size: var(--cb-text-label-caps) !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	font-weight: 600 !important;
	border: 0 !important;
	transition: background var(--cb-transition-fast) !important;
}
.button:hover, button.button:hover, input.button:hover { background: var(--cb-color-button-hover) !important; }
a.added_to_cart { display: inline-block; margin-top: 0.5rem; font-size: var(--cb-text-body-sm); text-decoration: underline; }

/* Forms / notices */
.woocommerce-error, .woocommerce-info, .woocommerce-message {
	background: var(--cb-color-surface-alt);
	border-left: 3px solid var(--cb-color-dusty-rose);
	padding: var(--cb-space-md);
	border-radius: var(--cb-radius);
	list-style: none;
	font-size: var(--cb-text-body-md);
	margin: 0 0 var(--cb-space-lg);
}
.woocommerce-error { border-color: var(--cb-color-error); }
.woocommerce-form-row label { font-size: var(--cb-text-label-md); text-transform: uppercase; letter-spacing: 0.04em; }
.woocommerce-input-wrapper input, .woocommerce-input-wrapper select, .woocommerce-input-wrapper textarea,
table.shop_table input[type="text"], table.shop_table input[type="number"] {
	border: 1px solid var(--cb-color-border);
	border-radius: var(--cb-radius);
	background: var(--cb-color-surface-alt);
	padding: 0.75rem 1rem;
	font-family: var(--cb-font-body);
}

/* Price */
.price { font-family: var(--cb-font-body); font-weight: 500; }
.price del { color: var(--cb-color-text-faint); opacity: 1; font-weight: 400; }
.price ins { text-decoration: none; color: var(--cb-color-dusty-rose); }

/* Star rating (native WooCommerce) */
.star-rating { color: var(--cb-color-dusty-rose); }

/* Quantity stepper */
.cb-qty { display: inline-flex; align-items: center; border: 1px solid var(--cb-color-border); border-radius: var(--cb-radius); overflow: hidden; }
.cb-qty button { width: 2.5rem; height: 2.75rem; display: flex; align-items: center; justify-content: center; }
.cb-qty input[type="number"] { width: 3rem; text-align: center; border: 0; -moz-appearance: textfield; background: transparent; }
.cb-qty input[type="number"]::-webkit-inner-spin-button, .cb-qty input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

/* Tables (cart/checkout review) kept native but restyled */
table.shop_table { width: 100%; border-collapse: collapse; }
table.shop_table th { text-align: left; font-size: var(--cb-text-label-md); text-transform: uppercase; letter-spacing: 0.04em; padding-bottom: var(--cb-space-sm); border-bottom: 1px solid var(--cb-color-border); }
table.shop_table td { padding: var(--cb-space-md) 0; border-bottom: 1px solid var(--cb-color-border); }

/* WooCommerce Cart/Checkout blocks — product thumbnail was stretching to
   fill its box (default object-fit: fill) instead of cropping to fit.
   Fixed 3:4 so every line item lines up, cropped from the top so heads
   aren't cut off. */
.wc-block-cart-item__image img,
.wc-block-components-product-image img,
.wc-block-components-order-summary-item__image img {
	width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; object-position: top center; border-radius: var(--cb-radius);
}

/* ============ Classic checkout ([woocommerce_checkout]) ============
   Two columns on desktop (details left, order summary right), one on mobile.
   Fields stack with their label above; first/last name sit side by side. */
.woocommerce-checkout .cb-container-narrow,
.woocommerce-cart .cb-container-narrow { max-width: 1120px; }

form.woocommerce-checkout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--cb-space-lg) var(--cb-space-xl); align-items: start; }
@media (min-width: 900px) {
	form.woocommerce-checkout { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); }
	form.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
	form.woocommerce-checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0; }
	form.woocommerce-checkout #order_review { grid-column: 2; grid-row: 2; position: sticky; top: calc(var(--cb-header-height, 90px) + 1rem); }
}
form.woocommerce-checkout .col2-set { width: 100%; float: none; }
form.woocommerce-checkout .col2-set .col-1, form.woocommerce-checkout .col2-set .col-2 { float: none; width: 100%; }

.woocommerce-checkout h3, .woocommerce-checkout #order_review_heading {
	font-family: var(--cb-font-heading); font-size: var(--cb-text-headline-md); line-height: var(--cb-leading-headline-md);
	font-weight: 600; color: var(--cb-color-text); margin: 0 0 var(--cb-space-md);
}
.woocommerce-shipping-fields h3, .woocommerce-additional-fields h3 { margin-top: var(--cb-space-lg); }

/* Field grid */
.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--cb-space-md);
}
.woocommerce-checkout .form-row { display: block; float: none; width: auto; margin: 0 0 var(--cb-space-md); padding: 0; }
.woocommerce-checkout .form-row-wide, .woocommerce-checkout .form-row.notes { grid-column: 1 / -1; }
@media (max-width: 599px) {
	.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper { grid-template-columns: minmax(0, 1fr); }
	.woocommerce-checkout .form-row-first, .woocommerce-checkout .form-row-last { grid-column: 1 / -1; }
}

/* Labels and inputs */
.woocommerce-checkout .form-row label {
	display: block; margin: 0 0 0.35rem; font-size: var(--cb-text-label-md); line-height: var(--cb-leading-label-md);
	text-transform: uppercase; letter-spacing: var(--cb-tracking-label-md); color: var(--cb-color-text-muted); font-weight: 500;
}
.woocommerce-checkout .form-row .required { color: var(--cb-color-dusty-rose); text-decoration: none; border: 0; }
.woocommerce-checkout .form-row .optional { text-transform: none; letter-spacing: 0; color: var(--cb-color-text-faint); }
.woocommerce-checkout .woocommerce-input-wrapper { display: block; width: 100%; }
.woocommerce-checkout .woocommerce-input-wrapper input.input-text,
.woocommerce-checkout .woocommerce-input-wrapper select,
.woocommerce-checkout .woocommerce-input-wrapper textarea,
.woocommerce-checkout .select2-container .select2-selection--single {
	width: 100%; box-sizing: border-box; min-height: 2.9rem; padding: 0.7rem 1rem; font-size: var(--cb-text-body-lg);
	color: var(--cb-color-text); background: var(--cb-white); border: 1px solid var(--cb-color-border); border-radius: var(--cb-radius);
	font-family: var(--cb-font-body); transition: border-color var(--cb-transition-fast), box-shadow var(--cb-transition-fast);
}
.woocommerce-checkout .woocommerce-input-wrapper textarea { min-height: 7rem; resize: vertical; }
.woocommerce-checkout .woocommerce-input-wrapper input.input-text:focus,
.woocommerce-checkout .woocommerce-input-wrapper select:focus,
.woocommerce-checkout .woocommerce-input-wrapper textarea:focus {
	outline: none; border-color: var(--cb-color-dusty-rose); box-shadow: 0 0 0 3px color-mix(in srgb, var(--cb-color-dusty-rose) 22%, transparent);
}
.woocommerce-checkout .select2-container .select2-selection--single { display: flex; align-items: center; height: auto; }
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 1.4; color: var(--cb-color-text); }
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; right: 0.6rem; }
.woocommerce-checkout .form-row.woocommerce-invalid .input-text, .woocommerce-checkout .form-row.woocommerce-invalid select { border-color: var(--cb-color-error); }

/* "Ship to a different address?" */
#ship-to-different-address { margin: var(--cb-space-lg) 0 var(--cb-space-md); }
#ship-to-different-address label { display: inline-flex; align-items: center; gap: 0.6rem; cursor: pointer; }
#ship-to-different-address h3 { margin: 0; font-size: var(--cb-text-headline-sm); }
.woocommerce-checkout input[type="checkbox"], .woocommerce-checkout input[type="radio"] { accent-color: var(--cb-color-dusty-rose); width: 1.05rem; height: 1.05rem; margin: 0; flex-shrink: 0; }

/* Order summary */
.woocommerce-checkout #order_review { background: var(--cb-white); border: 1px solid var(--cb-color-border); border-radius: var(--cb-radius-lg); padding: var(--cb-space-lg); }
.woocommerce-checkout-review-order-table th, .woocommerce-checkout-review-order-table td { padding: 0.75rem 0; font-size: var(--cb-text-body-md); vertical-align: top; }
.woocommerce-checkout-review-order-table thead th { font-size: var(--cb-text-label-md); }
.woocommerce-checkout-review-order-table .product-name { padding-right: var(--cb-space-md); }
.woocommerce-checkout-review-order-table .product-total, .woocommerce-checkout-review-order-table tfoot td { text-align: right; }
.woocommerce-checkout-review-order-table tfoot th { font-size: var(--cb-text-label-md); }
.woocommerce-checkout-review-order-table .order-total th, .woocommerce-checkout-review-order-table .order-total td { font-size: var(--cb-text-body-lg); font-weight: 600; border-bottom: 0; }
.woocommerce-checkout-review-order-table .order-total .amount { font-size: var(--cb-text-title-editorial); }

/* Shipping options */
ul#shipping_method { list-style: none; margin: 0; padding: 0; text-align: left; }
ul#shipping_method li { display: flex; align-items: center; gap: 0.55rem; margin: 0 0 0.5rem; padding: 0; }
ul#shipping_method li:last-child { margin-bottom: 0; }
ul#shipping_method li label { margin: 0; text-transform: none; letter-spacing: 0; font-size: var(--cb-text-body-md); color: var(--cb-color-text); cursor: pointer; }
.woocommerce-shipping-totals td { text-align: left !important; }

/* Payment */
.woocommerce-checkout #payment { background: transparent; border-radius: 0; margin-top: var(--cb-space-md); }
.woocommerce-checkout #payment ul.payment_methods { list-style: none; margin: 0 0 var(--cb-space-md); padding: 0; border: 0; }
.woocommerce-checkout #payment ul.payment_methods > li {
	margin: 0 0 var(--cb-space-sm); padding: 0.85rem 1rem; border: 1px solid var(--cb-color-border); border-radius: var(--cb-radius-md); background: var(--cb-color-background);
}
.woocommerce-checkout #payment ul.payment_methods > li > label { display: inline-flex; align-items: center; gap: 0.6rem; margin: 0; text-transform: none; letter-spacing: 0; font-size: var(--cb-text-body-md); color: var(--cb-color-text); font-weight: 500; cursor: pointer; }
.woocommerce-checkout #payment ul.payment_methods > li > label img { max-height: 1.4rem; width: auto; margin-left: 0.4rem; }
.woocommerce-checkout #payment div.payment_box { margin: 0.75rem 0 0; padding: 0.75rem 1rem; background: var(--cb-color-surface-alt); border-radius: var(--cb-radius); font-size: var(--cb-text-body-md); color: var(--cb-color-text-muted); }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment div.payment_box p { margin: 0; }
.woocommerce-checkout #payment .place-order { margin: var(--cb-space-md) 0 0; padding: 0; }
.woocommerce-checkout #payment #place_order { width: 100%; float: none; padding: 1rem 2rem !important; }
.woocommerce-terms-and-conditions-wrapper, .woocommerce-privacy-policy-text { font-size: var(--cb-text-body-sm); line-height: var(--cb-leading-body-sm); color: var(--cb-color-text-muted); margin-bottom: var(--cb-space-md); }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom: var(--cb-space-lg); }

/* Notices: text and button side by side, wrapping cleanly on narrow screens. */
.woocommerce-message, .woocommerce-info { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.9rem; }
.woocommerce-message .button { float: none; margin: 0; order: 2; }
.woocommerce-message:focus, .woocommerce-info:focus, .woocommerce-error:focus { outline: 0; }
/* Payment logos stay inside their box. */
.woocommerce-checkout #payment ul.payment_methods > li > label { flex-wrap: wrap; max-width: 100%; }
.woocommerce-checkout #payment ul.payment_methods > li > label img { max-width: 100%; height: auto; object-fit: contain; }
