/* ============================================================
   BACKWOODS — WooCommerce styles
   Integrates WooCommerce UI into the Backwoods design system.
   Mobile-first.
   ============================================================ */

/* ----------------------------------------------------------
   CHECKOUT PAGE WRAPPER
   ---------------------------------------------------------- */
.bw-checkout-wrap {
	padding-block: 64px;
}

@media (min-width: 769px) {
	.bw-checkout-wrap {
		padding-block: 80px;
	}
}

/* ----------------------------------------------------------
   SHOP ARCHIVE HEADER
   ---------------------------------------------------------- */
.bw-shop-header {
	padding-bottom: 0;
}

.bw-shop__heading.wp-block-heading {
	font-size    : clamp(1.75rem, 5vw, 3rem);
	margin-bottom: 48px;
	color        : var(--bw-pitch);
}

@media (min-width: 769px) {
	.bw-shop__heading.wp-block-heading {
		margin-bottom: 64px;
	}
}

/* ----------------------------------------------------------
   PRODUCT IMAGE GALLERY — single product page
   Constrains the WooCommerce gallery block to 4:5 ratio
   and ensures it fills its flex column correctly.
   ---------------------------------------------------------- */
.bw-product-gallery-wrap .wp-block-woocommerce-product-image-gallery,
.bw-gallery-large.wp-block-woocommerce-product-image-gallery {
	width     : 100%;
	line-height: 0;
}

/* Main gallery image */
.bw-product-gallery-wrap .woocommerce-product-gallery__image img,
.bw-gallery-large .woocommerce-product-gallery__image img,
.bw-product-gallery-wrap .woocommerce-product-gallery__wrapper img,
.bw-gallery-large .woocommerce-product-gallery__wrapper img {
	width          : 100%;
	aspect-ratio   : 4 / 5;
	object-fit     : cover;
	object-position: center;
	display        : block;
	background-color: var(--bw-paper);
}

/* Remove WooCommerce's default gallery flex/grid so our aspect-ratio applies */
.bw-product-gallery-wrap .woocommerce-product-gallery,
.bw-gallery-large .woocommerce-product-gallery {
	display: block;
}

.bw-product-gallery-wrap .woocommerce-product-gallery__wrapper,
.bw-gallery-large .woocommerce-product-gallery__wrapper {
	display: block;
	margin : 0;
}

/* Hide thumbnail strip — clean single-image view */
.bw-product-gallery-wrap .flex-control-thumbs,
.bw-gallery-large .flex-control-thumbs {
	display: none;
}

/* ----------------------------------------------------------
   PRODUCT PRICE — card and single product
   ---------------------------------------------------------- */
.bw-card__price .woocommerce-Price-amount,
.bw-card__price .price {
	font-family   : var(--bw-mono);
	font-size     : 0.8125rem;
	font-weight   : 500;
	letter-spacing: 0.04em;
	color         : var(--bw-pitch);
	display       : block;
	margin-top    : 8px;
	margin-bottom : 16px;
}

.bw-product-price .woocommerce-Price-amount,
.bw-product-price .price {
	font-family   : var(--bw-display);
	font-weight   : 600;
	font-stretch  : 125%;
	font-size     : clamp(1.5rem, 3vw, 2rem);
	color         : var(--bw-pitch);
	display       : block;
	margin-top    : 24px;
	margin-bottom : 0;
}

/* WooCommerce wraps prices in a <bdi> inside <span class="woocommerce-Price-amount"> */
.bw-card__price .price del,
.bw-product-price .price del {
	opacity   : 0.45;
	margin-right: 8px;
}

/* ----------------------------------------------------------
   ADD TO CART FORM
   ---------------------------------------------------------- */
.bw-add-to-cart {
	margin-top: 32px;
}

/* Quantity input */
.bw-add-to-cart .quantity {
	display    : flex;
	align-items: center;
	gap        : 0;
	margin-bottom: 16px;
}

.bw-add-to-cart .quantity input[type="number"] {
	font-family  : var(--bw-mono);
	font-size    : 0.875rem;
	width        : 64px;
	padding      : 12px 8px;
	border       : 1px solid rgba(31, 26, 21, 0.25);
	border-radius: 0;
	text-align   : center;
	background   : transparent;
	color        : var(--bw-pitch);
	appearance   : textfield;
	-moz-appearance: textfield;
}

.bw-add-to-cart .quantity input[type="number"]::-webkit-outer-spin-button,
.bw-add-to-cart .quantity input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
}

/* Add to cart button */
.bw-add-to-cart .single_add_to_cart_button,
.bw-add-to-cart button[type="submit"] {
	background-color: var(--bw-pitch);
	color           : var(--bw-card);
	font-family     : var(--bw-mono);
	font-size       : 0.75rem;
	font-weight     : 500;
	text-transform  : uppercase;
	letter-spacing  : 0.1em;
	padding         : 14px 32px;
	border          : none;
	border-radius   : 0;
	cursor          : pointer;
	transition      : background-color 150ms ease, color 150ms ease;
	width           : 100%;
	margin-top      : 8px;
}

.bw-add-to-cart .single_add_to_cart_button:hover,
.bw-add-to-cart button[type="submit"]:hover {
	background-color: var(--bw-bark);
}

.bw-add-to-cart .single_add_to_cart_button:focus-visible,
.bw-add-to-cart button[type="submit"]:focus-visible {
	outline       : 2px solid var(--bw-kraft);
	outline-offset: 3px;
}

/* WooCommerce block add-to-cart */
.bw-add-to-cart .wp-block-add-to-cart-form .wp-block-add-to-cart-form__button {
	background-color: var(--bw-pitch) !important;
	color           : var(--bw-card) !important;
	font-family     : var(--bw-mono) !important;
	font-size       : 0.75rem !important;
	font-weight     : 500 !important;
	text-transform  : uppercase !important;
	letter-spacing  : 0.1em !important;
	padding         : 14px 32px !important;
	border          : none !important;
	border-radius   : 0 !important;
	transition      : background-color 150ms ease !important;
	width           : 100% !important;
}

.bw-add-to-cart .wp-block-add-to-cart-form .wp-block-add-to-cart-form__button:hover {
	background-color: var(--bw-bark) !important;
}

/* ----------------------------------------------------------
   WC NOTICES (cart, checkout messages)
   ---------------------------------------------------------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	font-family  : var(--bw-mono);
	font-size    : 0.8125rem;
	letter-spacing: 0.04em;
	padding      : 16px 20px;
	border-left  : 3px solid var(--bw-brass);
	background   : var(--bw-paper);
	color        : var(--bw-pitch);
	list-style   : none;
	margin-bottom: 24px;
}

.woocommerce-error {
	border-left-color: #c0392b;
}

.woocommerce-message a,
.woocommerce-info a {
	color      : var(--bw-brass);
	font-weight: 500;
}

/* ----------------------------------------------------------
   CART PAGE
   ---------------------------------------------------------- */
.woocommerce-cart-form table.shop_table {
	border-collapse: collapse;
	width          : 100%;
	font-family    : var(--bw-body);
	font-size      : 0.9375rem;
}

.woocommerce-cart-form table.shop_table th {
	font-family   : var(--bw-mono);
	font-size     : 0.6875rem;
	font-weight   : 500;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color         : var(--bw-ash);
	padding       : 12px 16px;
	border-bottom : 1px solid rgba(31, 26, 21, 0.12);
	text-align    : left;
}

.woocommerce-cart-form table.shop_table td {
	padding      : 20px 16px;
	border-bottom: 1px solid rgba(31, 26, 21, 0.08);
	color        : var(--bw-pitch);
	vertical-align: middle;
}

.woocommerce-cart-form table.shop_table .product-name a {
	color          : var(--bw-pitch);
	text-decoration: none;
	font-weight    : 500;
}

.woocommerce-cart-form table.shop_table .product-name a:hover {
	color: var(--bw-brass);
}

/* Cart update/coupon buttons */
.woocommerce-cart-form .button,
.woocommerce button.button {
	background-color: var(--bw-pitch);
	color           : var(--bw-card);
	font-family     : var(--bw-mono);
	font-size       : 0.75rem;
	font-weight     : 500;
	text-transform  : uppercase;
	letter-spacing  : 0.1em;
	padding         : 12px 24px;
	border          : none;
	border-radius   : 0;
	cursor          : pointer;
	transition      : background-color 150ms ease;
	text-decoration : none;
	display         : inline-block;
}

.woocommerce-cart-form .button:hover,
.woocommerce button.button:hover {
	background-color: var(--bw-bark);
	color           : var(--bw-card);
}

/* Proceed to checkout button */
.wc-proceed-to-checkout .checkout-button {
	background-color: var(--bw-pitch) !important;
	color           : var(--bw-card) !important;
	font-family     : var(--bw-mono) !important;
	font-size       : 0.75rem !important;
	font-weight     : 500 !important;
	text-transform  : uppercase !important;
	letter-spacing  : 0.1em !important;
	padding         : 14px 32px !important;
	border-radius   : 0 !important;
	display         : block !important;
	text-align      : center !important;
	transition      : background-color 150ms ease !important;
}

.wc-proceed-to-checkout .checkout-button:hover {
	background-color: var(--bw-bark) !important;
}

/* Cart totals */
.cart_totals h2 {
	font-family   : var(--bw-display);
	font-weight   : 600;
	font-stretch  : 125%;
	font-size     : 1.25rem;
	color         : var(--bw-pitch);
	margin-bottom : 20px;
}

.cart_totals table.shop_table th,
.cart_totals table.shop_table td {
	font-family  : var(--bw-body);
	font-size    : 0.9375rem;
	padding      : 12px 0;
	border-bottom: 1px solid rgba(31, 26, 21, 0.08);
	color        : var(--bw-pitch);
}

/* ----------------------------------------------------------
   CHECKOUT PAGE
   ---------------------------------------------------------- */
.woocommerce-checkout h3,
.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block h2 {
	font-family   : var(--bw-display);
	font-weight   : 600;
	font-stretch  : 125%;
	font-size     : 1.125rem;
	color         : var(--bw-pitch);
	margin-bottom : 20px;
}

.woocommerce-checkout .form-row label,
.woocommerce-checkout .wp-block-woocommerce-checkout-fields-block label {
	font-family   : var(--bw-mono);
	font-size     : 0.6875rem;
	font-weight   : 500;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color         : var(--bw-ash);
	display       : block;
	margin-bottom : 6px;
}

.woocommerce-checkout .form-row input,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .wp-block-woocommerce-checkout-fields-block input,
.woocommerce-checkout .wp-block-woocommerce-checkout-fields-block select {
	font-family  : var(--bw-body);
	font-size    : 0.9375rem;
	color        : var(--bw-pitch);
	background   : var(--bw-paper);
	border       : 1px solid rgba(31, 26, 21, 0.25);
	border-radius: 0;
	padding      : 10px 14px;
	width        : 100%;
	box-sizing   : border-box;
	transition   : border-color 150ms ease;
}

.woocommerce-checkout .form-row input:focus,
.woocommerce-checkout .form-row select:focus {
	outline      : none;
	border-color : var(--bw-brass);
}

/* Place order button */
#place_order,
.woocommerce-checkout .wc-block-components-checkout-place-order-button {
	background-color: var(--bw-pitch) !important;
	color           : var(--bw-card) !important;
	font-family     : var(--bw-mono) !important;
	font-size       : 0.75rem !important;
	font-weight     : 500 !important;
	text-transform  : uppercase !important;
	letter-spacing  : 0.1em !important;
	padding         : 16px 40px !important;
	border          : none !important;
	border-radius   : 0 !important;
	cursor          : pointer !important;
	width           : 100% !important;
	transition      : background-color 150ms ease !important;
}

#place_order:hover,
.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover {
	background-color: var(--bw-bark) !important;
}

/* Payment method — Interac e-Transfer section */
.wc_payment_methods .payment_box {
	background  : rgba(31, 26, 21, 0.04);
	border-left : 3px solid var(--bw-brass);
	padding     : 16px 20px;
	font-family : var(--bw-body);
	font-size   : 0.9375rem;
	color       : var(--bw-ash);
	line-height : 1.6;
}

.wc_payment_methods label {
	font-family  : var(--bw-body);
	font-size    : 0.9375rem;
	color        : var(--bw-pitch);
	font-weight  : 500;
}

/* WC block checkout payment styles */
.wc-block-components-payment-method-label {
	font-family: var(--bw-body) !important;
	color      : var(--bw-pitch) !important;
}

.wc-block-components-radio-control__input:checked {
	accent-color: var(--bw-brass);
}

/* ----------------------------------------------------------
   ORDER CONFIRMATION PAGE
   ---------------------------------------------------------- */
.woocommerce-thankyou-order-received {
	font-family   : var(--bw-display);
	font-weight   : 600;
	font-stretch  : 125%;
	font-size     : clamp(1.5rem, 4vw, 2.5rem);
	color         : var(--bw-pitch);
	margin-bottom : 16px;
}

.woocommerce-order-details h2,
.woocommerce-customer-details h2 {
	font-family   : var(--bw-mono);
	font-size     : 0.6875rem;
	font-weight   : 500;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color         : var(--bw-ash);
	margin-bottom : 16px;
}

.woocommerce-table--order-details th,
.woocommerce-table--order-details td {
	font-family  : var(--bw-body);
	font-size    : 0.9375rem;
	padding      : 12px 0;
	border-bottom: 1px solid rgba(31, 26, 21, 0.08);
	color        : var(--bw-pitch);
}

/* BACS payment instructions box */
.woocommerce-bacs-bank-details {
	background   : rgba(31, 26, 21, 0.04);
	border-left  : 3px solid var(--bw-brass);
	padding      : 24px;
	margin-top   : 32px;
}

.woocommerce-bacs-bank-details h2 {
	font-family   : var(--bw-mono);
	font-size     : 0.6875rem;
	font-weight   : 500;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color         : var(--bw-brass);
	margin-bottom : 16px;
}

.woocommerce-bacs-bank-details p {
	font-family: var(--bw-body);
	font-size  : 0.9375rem;
	line-height: 1.65;
	color      : var(--bw-pitch);
}

/* ----------------------------------------------------------
   INTERAC E-TRANSFER NOTICE — order confirmation
   ---------------------------------------------------------- */
.bw-etransfer-notice {
	background  : var(--bw-bark);
	padding     : 28px 32px;
	margin-top  : 32px;
	margin-bottom: 8px;
}

.bw-etransfer-notice__label {
	font-family   : var(--bw-mono);
	font-size     : 0.6875rem;
	font-weight   : 500;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color         : var(--bw-kraft);
	margin-bottom : 12px;
}

.bw-etransfer-notice__amount {
	font-family  : var(--bw-mono);
	font-size    : 0.875rem;
	font-weight  : 500;
	color        : var(--bw-card);
	margin-bottom: 16px;
	padding-bottom: 16px;
	border-bottom: 1px solid rgba(164, 138, 95, 0.35);
}

.bw-etransfer-notice p {
	font-family: var(--bw-body);
	font-size  : 0.9375rem;
	line-height: 1.65;
	color      : var(--bw-card);
	opacity    : 0.9;
	margin-top : 0;
}

.bw-etransfer-notice p + p {
	margin-top: 1em;
}

/* ----------------------------------------------------------
   PAGINATION — shop archive
   ---------------------------------------------------------- */
.bw-pagination .wp-block-query-pagination-numbers a,
.bw-pagination .wp-block-query-pagination-previous a,
.bw-pagination .wp-block-query-pagination-next a {
	font-family   : var(--bw-mono);
	font-size     : 0.75rem;
	font-weight   : 500;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color         : var(--bw-ash);
	text-decoration: none;
	padding       : 8px 12px;
	transition    : color 150ms ease;
}

.bw-pagination .wp-block-query-pagination-numbers a:hover,
.bw-pagination .wp-block-query-pagination-previous a:hover,
.bw-pagination .wp-block-query-pagination-next a:hover,
.bw-pagination .wp-block-query-pagination-numbers .current {
	color: var(--bw-pitch);
}

/* ----------------------------------------------------------
   SHOP EMPTY STATE
   ---------------------------------------------------------- */
.bw-shop-empty {
	font-family: var(--bw-body);
	font-size  : 1rem;
	color      : var(--bw-ash);
	text-align : center;
	padding    : 64px 0;
}

/* ----------------------------------------------------------
   PRODUCT GRID COLUMN OVERRIDE
   WooCommerce injects --wc-product-columns via inline style.
   Explicitly reset so our .bw-card-grid breakpoints control layout.
   ---------------------------------------------------------- */
.bw-shop-query .wp-block-woocommerce-product-template,
.bw-home-query .wp-block-woocommerce-product-template {
	--wc-product-columns: unset;
}

/* ----------------------------------------------------------
   PRODUCT FILTER CHIPS — override WC defaults to match theme
   ---------------------------------------------------------- */
.bw-filters {
	margin-bottom: 40px;
	gap          : 24px;
}

/* Filter heading */
.bw-filter .wp-block-woocommerce-product-filter__heading,
.bw-filter .wc-block-components-filter-element-label-list-item {
	font-family   : var(--bw-mono);
	font-size     : 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color         : var(--bw-ash);
}

/* Chip items */
.bw-filter .wc-block-components-chip {
	font-family   : var(--bw-mono) !important;
	font-size     : 0.6875rem !important;
	font-weight   : 500 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.07em !important;
	border-radius : 0 !important;
	border-color  : rgba(31, 26, 21, 0.2) !important;
	color         : var(--bw-ash) !important;
	background    : transparent !important;
}

.bw-filter .wc-block-components-chip.is-active,
.bw-filter .wc-block-components-chip[aria-pressed="true"] {
	background  : var(--bw-pitch) !important;
	border-color: var(--bw-pitch) !important;
	color       : var(--bw-card) !important;
}

/* Price range input fields */
.bw-filter--price .wc-block-components-price-slider__range-input {
	accent-color: var(--bw-brass);
}
