/* BookClubKitTheme: Cart, Checkout, Order-received and Account pages.
   Loaded only on those pages (see functions.php) so it is never stale. */

/* -----------------------------------------------------------------------
   13b. STANDARD PAGES + WOOCOMMERCE CART / CHECKOUT / ORDER-RECEIVED
   (WooCommerce's own stylesheet is disabled in functions.php, so the
   classic checkout needs these styles.)
----------------------------------------------------------------------- */

/* Notices */
.woocommerce-notices-wrapper { margin-bottom: 1rem; }
.woocommerce-error, .woocommerce-info, .woocommerce-message {
	list-style: none; margin: 0 0 1rem; padding: 14px 18px; border-radius: var(--bckt-radius-sm);
	background: #fff; border: 1px solid var(--bckt-border); border-left: 4px solid var(--bckt-accent); font-size: .92rem;
}
.woocommerce-error { border-left-color: #b3261e; background: #fdf0ef; }
.woocommerce-error li { margin: 0 0 4px; }
.woocommerce-info { border-left-color: var(--bckt-gold); }

/* Forms (checkout, cart coupon, login) */
.woocommerce form .form-row { margin: 0 0 1rem; padding: 0; }
.woocommerce form .form-row label { display: block; font-weight: 700; font-size: .88rem; margin-bottom: 6px; }
.woocommerce form .form-row .required { color: #b3261e; text-decoration: none; border: 0; }
.woocommerce form .form-row .optional { color: var(--bckt-text-muted); font-weight: 500; }
.woocommerce-input-wrapper { display: block; }
.woocommerce input[type="text"], .woocommerce input[type="email"], .woocommerce input[type="tel"],
.woocommerce input[type="password"], .woocommerce input[type="number"], .woocommerce textarea,
.woocommerce select {
	width: 100%; padding: 12px 14px; border: 1px solid var(--bckt-border); border-radius: var(--bckt-radius-sm);
	background: #fff; color: var(--bckt-text); font-size: 1rem; line-height: 1.3;
}
.woocommerce input:focus, .woocommerce textarea:focus, .woocommerce select:focus {
	outline: 2px solid var(--bckt-primary); outline-offset: 1px; border-color: var(--bckt-primary);
}
.woocommerce form .woocommerce-invalid input.input-text, .woocommerce form .woocommerce-invalid select { border-color: #b3261e; }

/* Country dropdown (Select2) */
.select2-container .select2-selection--single {
	height: 48px; border: 1px solid var(--bckt-border); border-radius: var(--bckt-radius-sm); background: #fff;
}
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 46px; padding-left: 14px; color: var(--bckt-text); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; right: 8px; }
.select2-dropdown { border: 1px solid var(--bckt-border); border-radius: var(--bckt-radius-sm); box-shadow: var(--bckt-shadow-lg); }
.select2-search--dropdown .select2-search__field { padding: 8px 10px; border: 1px solid var(--bckt-border); border-radius: 4px; }

/* Checkout layout: details on the left, order summary on the right */
form.woocommerce-checkout { display: grid; grid-template-columns: 1.15fr 1fr; gap: 2rem; align-items: start; }
form.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
form.woocommerce-checkout #customer_details .col-1,
form.woocommerce-checkout #customer_details .col-2 { width: 100%; float: none; }
form.woocommerce-checkout #customer_details .col-2:empty { display: none; }
form.woocommerce-checkout #customer_details,
form.woocommerce-checkout #order_review {
	background: var(--bckt-surface); border: 1px solid var(--bckt-border); border-radius: var(--bckt-radius);
	padding: 1.5rem; box-shadow: var(--bckt-shadow);
}
form.woocommerce-checkout #order_review_heading { grid-column: 2; margin: 0; font-size: 1.15rem; }
form.woocommerce-checkout #order_review { grid-column: 2; }
.woocommerce-billing-fields h3 { font-size: 1.15rem; margin-bottom: 1rem; }

/* Order table (checkout review + cart) */
table.shop_table { width: 100%; border-collapse: collapse; font-size: .92rem; }
table.shop_table th, table.shop_table td { text-align: left; padding: 12px 8px; border-bottom: 1px solid var(--bckt-border); vertical-align: middle; }
table.shop_table tfoot th { font-weight: 600; color: var(--bckt-text-muted); }
table.shop_table .order-total th, table.shop_table .order-total td { font-size: 1.1rem; font-weight: 800; color: var(--bckt-text); }
table.shop_table td.product-total, table.shop_table .order-total td { text-align: right; }
table.shop_table .product-name .product-quantity { color: var(--bckt-text-muted); font-weight: 500; }
table.shop_table img { width: 56px; height: 56px; object-fit: cover; border-radius: 4px; }

/* Payment methods + Place order */
#payment { margin-top: 1.25rem; }
#payment ul.payment_methods { list-style: none; margin: 0 0 1rem; padding: 0; border: 1px solid var(--bckt-border); border-radius: var(--bckt-radius-sm); }
#payment ul.payment_methods li { padding: 14px 16px; border-bottom: 1px solid var(--bckt-border); }
#payment ul.payment_methods li:last-child { border-bottom: 0; }
#payment ul.payment_methods li label { display: inline; font-weight: 700; cursor: pointer; margin-left: 6px; }
#payment .payment_box { background: var(--bckt-bg); border-radius: var(--bckt-radius-sm); padding: 12px 14px; margin-top: 10px; font-size: .88rem; color: var(--bckt-text-muted); }
#payment .payment_box p { margin: 0; }
.woocommerce-privacy-policy-text { font-size: .8rem; color: var(--bckt-text-muted); margin-bottom: 1rem; }
#place_order, .woocommerce .button, .woocommerce button.button, .woocommerce a.button {
	display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
	background: var(--bckt-primary); color: #fff; border: 0; border-radius: var(--bckt-radius-sm);
	padding: 14px 28px; font-weight: 700; font-size: 1rem; text-decoration: none;
}
#place_order { width: 100%; padding: 18px; font-size: 1.1rem; }
#place_order:hover, .woocommerce .button:hover { background: var(--bckt-primary-dark); color: #fff; text-decoration: none; }

/* Cart page */
.woocommerce-cart-form { margin-bottom: 2rem; }
.woocommerce-cart-form .product-remove a { font-size: 1.3rem; color: var(--bckt-text-muted); text-decoration: none; }
.woocommerce-cart-form .quantity input { width: 70px; }
.cart_totals { max-width: 420px; margin-left: auto; background: var(--bckt-surface); border: 1px solid var(--bckt-border); border-radius: var(--bckt-radius); padding: 1.5rem; }
.wc-proceed-to-checkout .button { width: 100%; padding: 16px; }

/* Order received (thank-you) page */
.woocommerce-order-overview { list-style: none; padding: 0; margin: 1.5rem 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
.woocommerce-order-overview li { background: var(--bckt-surface); border: 1px solid var(--bckt-border); border-radius: var(--bckt-radius-sm); padding: 12px 14px; font-size: .82rem; color: var(--bckt-text-muted); }
.woocommerce-order-overview li strong { display: block; color: var(--bckt-text); font-size: 1rem; margin-top: 2px; }
.woocommerce-order-downloads, .woocommerce-order-details, .woocommerce-customer-details { margin-top: 2rem; }

@media (max-width: 900px) {
	form.woocommerce-checkout { grid-template-columns: 1fr; }
	form.woocommerce-checkout #customer_details,
	form.woocommerce-checkout #order_review_heading,
	form.woocommerce-checkout #order_review { grid-column: 1; grid-row: auto; }
	.cart_totals { max-width: none; }
}
