/* ==========================================================================
   Cart, checkout and My Account: WooCommerce's own markup, styled.
   Loaded on those pages only (inc/assets.php). WooCommerce's stylesheets are off.
   ========================================================================== */

.page-content--wide { max-width: none; }

/* Shared form controls */
.woocommerce form .form-row { margin: 0 0 var(--bd-space-4); }
.woocommerce form .form-row label { display: block; margin-bottom: var(--bd-space-1); font-weight: 600; font-size: var(--bd-step--1); }
.woocommerce form .form-row .required { color: var(--bd-red); text-decoration: none; }
.woocommerce input.input-text, .woocommerce textarea, .woocommerce select,
.woocommerce .select2-container .select2-selection--single {
	width: 100%; min-height: 48px; padding: var(--bd-space-3) var(--bd-space-4);
	border: 1px solid var(--bd-line); border-radius: var(--bd-radius-s); background: var(--bd-white);
}
.woocommerce .select2-container .select2-selection--single { display: flex; align-items: center; }
.woocommerce .select2-container .select2-selection__arrow { top: 50% !important; transform: translateY(-50%); right: 10px !important; }
.woocommerce input.input-text:focus, .woocommerce textarea:focus { outline: 3px solid var(--bd-focus); outline-offset: 1px; }
.woocommerce textarea { min-height: 110px; }
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; }
.woocommerce table.shop_table th { text-align: left; font-size: var(--bd-step--1); color: var(--bd-muted); font-weight: 600; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: var(--bd-space-3) var(--bd-space-2); border-bottom: 1px solid var(--bd-line); vertical-align: middle; }
.woocommerce .button.alt, #place_order, .checkout-button { background: var(--bd-ink); }

/* Panels: the totals box, the order review, the login box */
.cart_totals, #order_review, .woocommerce-form-login, .woocommerce-form-register {
	padding: var(--bd-space-5); border: 1px solid var(--bd-line); border-radius: var(--bd-radius); background: var(--bd-paper);
}
.cart_totals h2, #order_review_heading, .woocommerce-billing-fields h3, .woocommerce-additional-fields h3, #ship-to-different-address, .u-column1 h2, .u-column2 h2 {
	margin: 0 0 var(--bd-space-4); font-size: var(--bd-step-1);
}

/* ---- Cart ---------------------------------------------------------------- */
.woocommerce-cart .page-content .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--bd-space-6); align-items: start; }
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-cart .woocommerce > .cart-empty, .woocommerce-cart .woocommerce > .return-to-shop { grid-column: 1 / -1; }
table.cart .product-thumbnail img { width: 88px; height: 88px; object-fit: contain; border-radius: var(--bd-radius-s); background: var(--bd-paper); mix-blend-mode: multiply; }
table.cart .product-name a { color: var(--bd-ink); font-weight: 700; text-decoration: none; }
table.cart .product-remove a { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 999px; color: var(--bd-muted); font-size: 1.3rem; text-decoration: none; }
table.cart .product-remove a:hover { background: var(--bd-paper); color: var(--bd-red); }
table.cart .quantity input { width: 72px; min-height: 44px; padding: 0 var(--bd-space-2); border: 1px solid var(--bd-line); border-radius: 999px; text-align: center; }
table.cart td.actions { padding-top: var(--bd-space-4); border-bottom: 0; }
table.cart td.actions .coupon { display: inline-flex; gap: var(--bd-space-2); }
table.cart td.actions .coupon .input-text { width: 180px; }
table.cart td.actions > .button { float: right; }
.cart_totals table.shop_table th { width: 40%; }
.cart_totals .order-total td, .cart_totals .order-total th { font-size: var(--bd-step-1); color: var(--bd-ink); font-weight: 800; border-bottom: 0; }
.woocommerce-shipping-methods { margin: 0; padding: 0; list-style: none; }
.wc-proceed-to-checkout .checkout-button { width: 100%; margin-top: var(--bd-space-3); }
.cart-empty { font-size: var(--bd-step-1); }

/* ---- Checkout -------------------------------------------------------------- */
.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 420px; grid-template-rows: auto 1fr; gap: 0 var(--bd-space-7); align-items: start; }
.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
#customer_details { grid-column: 1; grid-row: 1 / span 2; }
#order_review_heading { grid-column: 2; grid-row: 1; }
#order_review { grid-column: 2; grid-row: 2; position: sticky; top: 96px; }
.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--bd-space-4); }
.woocommerce-billing-fields__field-wrapper > .form-row-wide, .woocommerce-shipping-fields__field-wrapper > .form-row-wide,
#billing_address_1_field, #billing_address_2_field, #shipping_address_1_field, #shipping_address_2_field { grid-column: 1 / -1; }
#ship-to-different-address label { display: flex; gap: var(--bd-space-2); align-items: center; font-weight: 700; }
.woocommerce-form-coupon-toggle { margin-bottom: var(--bd-space-4); }
form.checkout_coupon { display: flex; gap: var(--bd-space-2); margin-bottom: var(--bd-space-5); }
form.checkout_coupon .form-row { margin: 0; }
#order_review table.shop_table td.product-name { font-weight: 600; }
#order_review .order-total th, #order_review .order-total td { font-size: var(--bd-step-1); font-weight: 800; color: var(--bd-ink); }
#payment ul.payment_methods { margin: var(--bd-space-4) 0; padding: 0; list-style: none; }
#payment ul.payment_methods > li { padding: var(--bd-space-3) 0; border-bottom: 1px solid var(--bd-line); }
#payment ul.payment_methods > li > label { font-weight: 700; }
#payment .payment_box { margin-top: var(--bd-space-2); padding: var(--bd-space-3) var(--bd-space-4); border-radius: var(--bd-radius-s); background: var(--bd-white); font-size: var(--bd-step--1); }
#payment .woocommerce-privacy-policy-text { font-size: var(--bd-step--1); color: var(--bd-text-soft); }
#place_order { width: 100%; margin-top: var(--bd-space-4); min-height: 56px; font-size: var(--bd-step-1); }

/* ---- My Account ------------------------------------------------------------ */
.woocommerce-account .page-content .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: var(--bd-space-6); align-items: start; }
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper, .woocommerce-account .woocommerce > .u-columns,
.woocommerce-account .woocommerce > h2, .woocommerce-account .woocommerce > .woocommerce-form-login { grid-column: 1 / -1; }
.woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; border: 1px solid var(--bd-line); border-radius: var(--bd-radius); overflow: hidden; }
.woocommerce-MyAccount-navigation a { display: block; padding: var(--bd-space-3) var(--bd-space-4); color: var(--bd-ink); font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--bd-line); }
.woocommerce-MyAccount-navigation li:last-child a { border-bottom: 0; }
.woocommerce-MyAccount-navigation .is-active a { background: var(--bd-yellow-soft); }
.u-columns { display: grid; grid-template-columns: 1fr 1fr; gap: var(--bd-space-6); }
.woocommerce-account .woocommerce > h2 + .woocommerce-form-login, .woocommerce-account .woocommerce > .woocommerce-form-login { max-width: 480px; }
/* WooCommerce's show-password toggle: an icon in its own stylesheet, a word here */
.password-input { position: relative; display: block; }
.show-password-input { position: absolute; top: 50%; right: var(--bd-space-3); transform: translateY(-50%); padding: var(--bd-space-1) var(--bd-space-2); border: 0; background: none; color: var(--bd-link); font-weight: 700; font-size: var(--bd-step--1); cursor: pointer; }
.show-password-input::after { content: "Show"; }
.show-password-input.display-password::after { content: "Hide"; }
.woocommerce-form-login .button, .woocommerce-form-register .button { width: 100%; margin-top: var(--bd-space-2); }
.woocommerce-form-login__rememberme { display: flex !important; gap: var(--bd-space-2); align-items: center; font-weight: 400 !important; }
.woocommerce-LostPassword { margin-top: var(--bd-space-3); font-size: var(--bd-step--1); }

/* ---- Phones ---------------------------------------------------------------- */
@media (max-width: 900px) {
	.woocommerce-cart .page-content .woocommerce, .woocommerce-checkout form.checkout,
	.woocommerce-account .page-content .woocommerce, .u-columns { grid-template-columns: minmax(0, 1fr); }
	#customer_details, #order_review_heading, #order_review { grid-column: 1; grid-row: auto; position: static; }
	#order_review_heading { margin-top: var(--bd-space-5); }
	table.cart thead { display: none; }
	table.cart .quantity input { width: 60px; }
	table.cart tr.cart_item { display: grid; grid-template-columns: 88px minmax(0, 1fr) auto; grid-template-areas: "img name remove" "img price qty" "img sub sub"; gap: var(--bd-space-1) var(--bd-space-3); padding: var(--bd-space-3) 0; border-bottom: 1px solid var(--bd-line); }
	table.cart tr.cart_item td { padding: 0; border: 0; }
	table.cart .product-thumbnail { grid-area: img; }
	table.cart .product-name { grid-area: name; }
	table.cart .product-remove { grid-area: remove; }
	table.cart .product-price { grid-area: price; }
	table.cart .product-quantity { grid-area: qty; }
	table.cart .product-subtotal { grid-area: sub; font-weight: 700; }
	table.cart td.actions { display: block; }
	table.cart td.actions .coupon { display: flex; margin-bottom: var(--bd-space-3); }
	table.cart td.actions .coupon .input-text { flex: 1; width: auto; }
	table.cart td.actions > .button { float: none; width: 100%; }
	.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
}

/* Beaver Builder's CSS stays loaded on every page until the plugins are removed (phase 9), and on
   the live site it restyled checkout: a green, uppercase Place order button and Title Case
   headings (live preview, 2026-10-13). These rules are specific enough to win. */
.woocommerce-checkout #payment #place_order,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
	background: var(--bd-ink) !important; border: 2px solid var(--bd-ink) !important; border-radius: 999px !important;
	color: var(--bd-white) !important; font-family: var(--bd-font-display) !important; font-weight: 700 !important;
	text-transform: none !important; letter-spacing: 0 !important; box-shadow: none !important;
}
.woocommerce-checkout #payment #place_order:hover,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover { background: var(--bd-ink-2) !important; }
.woocommerce-checkout h3, .woocommerce-checkout h2, .woocommerce-cart h2,
.woocommerce-checkout #ship-to-different-address, .woocommerce-checkout #ship-to-different-address label {
	text-transform: none !important; letter-spacing: normal !important;
}
.woocommerce-checkout .woocommerce-form__label-for-checkbox { display: inline-flex; gap: var(--bd-space-2); align-items: flex-start; font-weight: 400; }
