/* ==========================================================================
   WooCommerce: shop layout, product cards, single product, cart, checkout
   ========================================================================== */

/* --------------------------------------------------------------------
   Shop layout
   -------------------------------------------------------------------- */
.lcbm-shop-layout { padding-block: var(--lcbm-space-md) var(--lcbm-space-xl); }
.lcbm-shop-layout .page-title { text-align: center; margin-bottom: var(--lcbm-space-md); }
.woocommerce-products-header__description { max-width: 720px; margin: 0 auto var(--lcbm-space-md); text-align: center; color: var(--lcbm-color-text-muted); }

.lcbm-shop-columns { width: 100%; }

.lcbm-shop-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
	justify-content: space-between;
	margin-bottom: var(--lcbm-space-sm);
	padding-bottom: var(--lcbm-space-sm);
	border-bottom: 1px solid var(--lcbm-color-border);
}
.lcbm-shop-toolbar-count { color: var(--lcbm-color-text-muted); font-size: 0.9rem; }
.lcbm-shop-toolbar-controls { display: flex; align-items: center; gap: 0.75rem; }
.lcbm-shop-toolbar-controls select { padding: 0.5rem 0.9rem; }

.lcbm-view-toggle { display: inline-flex; border: 1px solid var(--lcbm-color-border); border-radius: var(--lcbm-radius-sm); overflow: hidden; }
.lcbm-view-toggle button { background: var(--lcbm-color-bg); border: none; padding: 0.5rem 0.75rem; }
.lcbm-view-toggle button.active { background: var(--lcbm-color-primary); color: #fff; }

.lcbm-coupon-banner {
	background: var(--lcbm-color-highlight);
	color: var(--lcbm-color-text);
	text-align: center;
	padding: 0.6rem 1rem;
	border-radius: var(--lcbm-radius-sm);
	font-size: 0.9rem;
	margin-bottom: var(--lcbm-space-sm);
}

/* --------------------------------------------------------------------
   Product grid / card
   -------------------------------------------------------------------- */
ul.products.lcbm-product-grid,
ul.products {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--lcbm-space-sm);
}
@media (min-width: 640px) { ul.products.lcbm-product-grid, ul.products { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { ul.products.lcbm-product-grid, ul.products { grid-template-columns: repeat(4, 1fr); } }

.lcbm-shop-main.is-list-view ul.products { grid-template-columns: 1fr; }
.lcbm-shop-main.is-list-view .lcbm-product-card { display: grid; grid-template-columns: 200px 1fr; gap: var(--lcbm-space-sm); }
.lcbm-shop-main.is-list-view .lcbm-product-card-media { aspect-ratio: 1/1; }

.lcbm-product-card {
	position: relative;
	background: var(--lcbm-color-bg);
	border-radius: var(--lcbm-radius-md);
	overflow: hidden;
	box-shadow: var(--lcbm-shadow-sm);
	transition: box-shadow 0.25s ease, transform 0.25s ease;
}
.lcbm-product-card:hover { box-shadow: var(--lcbm-shadow-md); transform: translateY(-3px); }

.lcbm-product-card-media { position: relative; display: block; aspect-ratio: 1/1; overflow: hidden; background: var(--lcbm-color-bg-light); }
.lcbm-product-card-media-link { display: block; width: 100%; height: 100%; }
.lcbm-product-card-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity 0.3s ease; }
.lcbm-product-hover-image { opacity: 0; }
.lcbm-product-card:hover .lcbm-product-hover-image { opacity: 1; }

.lcbm-product-card-badges { position: absolute; top: 0.6rem; left: 0.6rem; display: flex; flex-direction: column; gap: 0.35rem; z-index: 2; }

.lcbm-product-card-quick-actions {
	position: absolute; top: 0.6rem; right: 0.6rem;
	display: flex; flex-direction: column; gap: 0.4rem;
	opacity: 0; transform: translateX(6px);
	transition: opacity 0.2s ease, transform 0.2s ease;
	z-index: 2;
}
.lcbm-product-card:hover .lcbm-product-card-quick-actions,
.lcbm-product-card:focus-within .lcbm-product-card-quick-actions { opacity: 1; transform: translateX(0); }

.lcbm-quick-view-btn, .lcbm-wishlist-btn {
	width: 38px; height: 38px;
	display: flex; align-items: center; justify-content: center;
	border-radius: 50%;
	background: var(--lcbm-color-bg);
	border: none;
	box-shadow: var(--lcbm-shadow-sm);
	color: var(--lcbm-color-text);
}
.lcbm-wishlist-btn[aria-pressed="true"] { color: var(--lcbm-color-secondary); }
.lcbm-wishlist-btn[aria-pressed="true"] svg path { fill: currentColor; }

.lcbm-product-card-body { padding: var(--lcbm-space-sm); display: flex; flex-direction: column; gap: 0.35rem; }
.lcbm-product-card-category { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--lcbm-color-text-muted); }
.lcbm-product-card-title { font-size: 0.85rem; font-weight: 500; margin: 0; }
.lcbm-product-card-title a { color: var(--lcbm-color-text); }
.lcbm-product-card-rating .star-rating { color: var(--lcbm-color-highlight); font-size: 0.85rem; }
.lcbm-product-card-price { font-weight: 700; font-family: var(--lcbm-font-heading); }
.lcbm-product-card-price ins { text-decoration: none; color: var(--lcbm-color-secondary); }
.lcbm-product-card-price del { color: var(--lcbm-color-text-muted); font-weight: 400; margin-right: 0.4rem; }

.lcbm-product-card-add-to-cart a.button,
.lcbm-product-card-add-to-cart a.added_to_cart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin-top: 0.4rem;
	padding: 0.65rem 1rem;
	border-radius: var(--lcbm-radius-pill);
	background: var(--lcbm-color-primary);
	color: #fff;
	font-weight: 600;
	font-size: 0.9rem;
	transition: background-color 0.2s ease;
}
.lcbm-product-card-add-to-cart a.button:hover { background: var(--lcbm-color-accent); }
.lcbm-product-card-add-to-cart a.button.loading { opacity: 0.6; }

/* --------------------------------------------------------------------
   Quick view modal
   -------------------------------------------------------------------- */
.lcbm-quick-view-modal { position: fixed; inset: 0; z-index: 1400; display: flex; align-items: center; justify-content: center; padding: var(--lcbm-space-sm); visibility: hidden; }
.lcbm-quick-view-modal[aria-hidden="false"] { visibility: visible; }
.lcbm-quick-view-modal-overlay { position: absolute; inset: 0; background: rgba(34,34,34,0.55); opacity: 0; transition: opacity 0.2s ease; }
.lcbm-quick-view-modal[aria-hidden="false"] .lcbm-quick-view-modal-overlay { opacity: 1; }
.lcbm-quick-view-modal-panel {
	position: relative;
	background: var(--lcbm-color-bg);
	border-radius: var(--lcbm-radius-lg);
	max-width: 900px;
	width: 100%;
	max-height: 88vh;
	overflow-y: auto;
	padding: var(--lcbm-space-md);
	transform: scale(0.96);
	opacity: 0;
	transition: transform 0.2s ease, opacity 0.2s ease;
}
.lcbm-quick-view-modal[aria-hidden="false"] .lcbm-quick-view-modal-panel { transform: scale(1); opacity: 1; }
.lcbm-quick-view-modal-close { position: absolute; top: 1rem; right: 1rem; font-size: 1.75rem; background: none; border: none; line-height: 1; }
.lcbm-quick-view-product { display: grid; grid-template-columns: 1fr; gap: var(--lcbm-space-md); }
@media (min-width: 768px) { .lcbm-quick-view-product { grid-template-columns: 1fr 1fr; } }
.lcbm-quick-view-gallery img { border-radius: var(--lcbm-radius-md); }
.lcbm-quick-view-full-link { display: inline-block; margin-top: 1rem; font-weight: 700; color: var(--lcbm-color-primary); text-decoration: underline; }

/* --------------------------------------------------------------------
   Single product page
   -------------------------------------------------------------------- */
.woocommerce div.product {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--lcbm-space-md);
	padding-block: var(--lcbm-space-sm) var(--lcbm-space-lg);
}
@media (min-width: 1024px) { .woocommerce div.product { grid-template-columns: 420px 1fr; } }

/* Not position:sticky: WooCommerce keeps the gallery, summary, tabs,
   upsells and related products all inside the same <div class="product">
   grid container (tabs etc. use grid-column:1/-1 to span full width below
   the 2-column row) — a sticky gallery visually overlaps that full-width
   content once its own height exceeds the 2-column row's height. */
/* div.images IS .woocommerce-product-gallery (same element) — the main
   image wrapper and the thumbnail nav (JS-injected by FlexSlider) are
   siblings inside it. row-reverse puts the thumb column (2nd in the DOM)
   on the left and the main image (1st in the DOM) on the right. */
.woocommerce div.product div.images {
	align-self: start;
	max-width: 500px;
	display: flex;
	flex-direction: row-reverse;
	gap: 0.6rem;
}
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { border-radius: var(--lcbm-radius-lg); overflow: hidden; flex: 1; min-width: 0; }
.woocommerce div.product div.images img { border-radius: var(--lcbm-radius-lg); max-height: 420px; object-fit: contain; }
.flex-control-thumbs {
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	flex-shrink: 0;
	gap: 0.5rem;
	margin-top: 0;
	width: 64px;
	max-height: 420px;
	overflow-y: auto;
}
.flex-control-thumbs li { width: 100%; }
.flex-control-thumbs img { border-radius: var(--lcbm-radius-sm); border: 2px solid transparent; cursor: pointer; }
.flex-control-thumbs img.flex-active { border-color: var(--lcbm-color-primary); }

@media (max-width: 480px) {
	/* Too narrow for a side column — fall back to thumbnails below the image. */
	.woocommerce div.product div.images { flex-direction: column; max-width: 100%; }
	.flex-control-thumbs { flex-direction: row; width: 100%; max-height: none; flex-wrap: wrap; }
	.flex-control-thumbs li { width: 56px; }
}

.woocommerce div.product .product_title { margin-bottom: 0.5rem; font-size: clamp(1.35rem, 1.8vw, 1.75rem); line-height: 1.25; }
.woocommerce div.product p.price { font-size: 1.25rem; font-family: var(--lcbm-font-heading); font-weight: 700; color: var(--lcbm-color-text); margin-bottom: 0.5rem; }
.woocommerce div.product p.price ins { text-decoration: none; color: var(--lcbm-color-secondary); }
.woocommerce div.product .woocommerce-product-rating { margin-bottom: var(--lcbm-space-sm); }
.woocommerce div.product .star-rating { color: var(--lcbm-color-highlight); }

.woocommerce div.product .stock { font-weight: 600; color: var(--lcbm-color-success); }
.woocommerce div.product .stock.out-of-stock { color: var(--lcbm-color-danger); }

.woocommerce div.product form.cart {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
	margin-block: var(--lcbm-space-sm);
}
.woocommerce div.product form.cart .quantity { display: flex; align-items: center; border: 1px solid var(--lcbm-color-border); border-radius: var(--lcbm-radius-pill); overflow: hidden; }
.lcbm-qty-btn { width: 40px; height: 44px; border: none; background: var(--lcbm-color-bg-light); font-size: 1.1rem; }
.woocommerce div.product form.cart .qty { border: none; width: 50px; text-align: center; -moz-appearance: textfield; }
.woocommerce div.product form.cart button.single_add_to_cart_button {
	background: var(--lcbm-color-primary);
	color: #fff;
	border: none;
	padding: 0.9rem 2.5rem;
	border-radius: var(--lcbm-radius-pill);
	font-weight: 700;
	box-shadow: var(--lcbm-shadow-sm);
}
.woocommerce div.product form.cart button.single_add_to_cart_button:hover { background: var(--lcbm-color-accent); }

.woocommerce-product-details__short-description { color: var(--lcbm-color-text-muted); margin-bottom: var(--lcbm-space-sm); }

.woocommerce-tabs { margin-top: var(--lcbm-space-lg); grid-column: 1 / -1; }
.woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; border-bottom: 1px solid var(--lcbm-color-border); margin-bottom: var(--lcbm-space-md); }
.woocommerce-tabs ul.tabs li { }
.woocommerce-tabs ul.tabs li a { display: inline-block; padding: 0.75rem 1.25rem; font-weight: 600; border-radius: var(--lcbm-radius-sm) var(--lcbm-radius-sm) 0 0; }
.woocommerce-tabs ul.tabs li.active a { background: var(--lcbm-color-bg-light); color: var(--lcbm-color-primary); }
.lcbm-product-tab-content { max-width: 760px; }
.lcbm-product-faqs { display: flex; flex-direction: column; gap: var(--lcbm-space-sm); }
.lcbm-faq-item { border-bottom: 1px solid var(--lcbm-color-border); padding-bottom: var(--lcbm-space-sm); }
.lcbm-faq-question { font-size: 1rem; margin-bottom: 0.35rem; }
.lcbm-faq-answer { color: var(--lcbm-color-text-muted); }
.lcbm-faq-answer p:last-child { margin-bottom: 0; }

.related.products, .upsells.products, .lcbm-recently-viewed { margin-top: var(--lcbm-space-xl); grid-column: 1 / -1; }
.related.products h2, .upsells.products h2 { text-align: center; margin-bottom: var(--lcbm-space-md); }

/* Sticky add-to-cart (mobile-first, hidden on desktop when the form is already in view) */
.lcbm-sticky-atc {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 800;
	display: none;
	align-items: center;
	gap: 0.75rem;
	background: var(--lcbm-color-bg);
	box-shadow: 0 -6px 20px rgba(34,34,34,0.1);
	padding: 0.65rem var(--lcbm-space-sm);
}
.lcbm-sticky-atc.is-visible { display: flex; }
.lcbm-sticky-atc-image img { width: 48px; height: 48px; border-radius: var(--lcbm-radius-sm); object-fit: cover; }
.lcbm-sticky-atc-info { flex: 1; display: flex; flex-direction: column; }
.lcbm-sticky-atc-title { font-weight: 600; font-size: 0.85rem; }
.lcbm-sticky-atc-price { font-size: 0.85rem; color: var(--lcbm-color-text-muted); }
.lcbm-sticky-atc-btn { padding: 0.6rem 1.4rem; }

/* --------------------------------------------------------------------
   Reviews (single product)
   -------------------------------------------------------------------- */
#reviews .comment-form-rating select { padding: 0.5rem; }
#reviews .commentlist { display: flex; flex-direction: column; gap: var(--lcbm-space-sm); }

/* --------------------------------------------------------------------
   Cart page
   -------------------------------------------------------------------- */
.woocommerce-cart table.cart, .woocommerce-checkout table.cart { width: 100%; border-collapse: collapse; }
.woocommerce-cart table.cart img { border-radius: var(--lcbm-radius-sm); width: 72px; }
.woocommerce-cart table.cart td { padding: 1rem 0.5rem; border-bottom: 1px solid var(--lcbm-color-border); }
.woocommerce-cart .cart-collaterals .cart_totals { background: var(--lcbm-color-bg-light); border-radius: var(--lcbm-radius-md); padding: var(--lcbm-space-md); }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: block; text-align: center;
	background: var(--lcbm-color-primary); color: #fff;
	padding: 1rem; border-radius: var(--lcbm-radius-pill); font-weight: 700;
}

/* --------------------------------------------------------------------
   Checkout
   -------------------------------------------------------------------- */
.woocommerce-checkout #payment { background: var(--lcbm-color-bg-light); border-radius: var(--lcbm-radius-md); padding: var(--lcbm-space-md); }
.lcbm-checkout-item { display: flex; align-items: center; gap: 0.5rem; }
.lcbm-checkout-item-thumb { width: 32px; height: 32px; object-fit: cover; border-radius: var(--lcbm-radius-sm); flex-shrink: 0; }
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout-review-order-table { background: var(--lcbm-color-bg-light); border-radius: var(--lcbm-radius-md); padding: var(--lcbm-space-md); }
/* Compact order-summary rows: smaller text, tighter cell padding. */
.woocommerce-checkout-review-order-table { font-size: 0.85rem; }
.woocommerce-checkout-review-order-table td,
.woocommerce-checkout-review-order-table th { padding: 0.5rem 0; }
.woocommerce-checkout-review-order-table .product-name { line-height: 1.3; }
#place_order {
	background: var(--lcbm-color-primary); color: #fff; border: none;
	padding: 1rem 2rem; border-radius: var(--lcbm-radius-pill); font-weight: 700; width: 100%;
}

/* Promo code: show the coupon form inline instead of behind a
   click-to-reveal link, styled as a single input + button bar. */
.woocommerce-checkout .woocommerce-form-coupon-toggle { display: none; }
.woocommerce-checkout .checkout_coupon.woocommerce-form-coupon {
	display: flex !important;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: flex-start;
	background: none;
	border: none;
	padding: 0;
	margin-bottom: var(--lcbm-space-md);
}
.woocommerce-checkout .checkout_coupon .form-row { flex: 1 1 220px; margin: 0; }
.woocommerce-checkout .checkout_coupon .form-row-last { flex: 0 0 auto; }
.woocommerce-checkout .checkout_coupon input.input-text {
	width: 100%;
	box-sizing: border-box;
	padding: 0.85rem 1rem;
	border: 1px solid var(--lcbm-color-border);
	border-radius: var(--lcbm-radius-md);
}
.woocommerce-checkout .checkout_coupon button[name="apply_coupon"] {
	background: var(--lcbm-color-text);
	color: #fff;
	border: none;
	padding: 0.85rem 1.75rem;
	border-radius: var(--lcbm-radius-md);
	font-weight: 600;
	white-space: nowrap;
}
.woocommerce-checkout .checkout_coupon button[name="apply_coupon"]:hover { background: var(--lcbm-color-primary); }
.woocommerce-checkout .checkout_coupon .clear { display: none; }

/* Compact billing-form styling: modest heading, tight row spacing, and
   slim inputs with a soft border and rounded corners. */
.woocommerce-checkout #customer_details h3 {
	font-size: 1.3rem;
	font-weight: 600;
	margin-bottom: var(--lcbm-space-sm);
}
.woocommerce-checkout .woocommerce-billing-fields > h3 + p,
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper { margin-top: 0; }
.woocommerce-checkout #customer_details .form-row {
	margin-bottom: 0.65rem;
}
.woocommerce-checkout #customer_details label {
	display: block;
	font-size: 0.8rem;
	font-weight: 500;
	color: var(--lcbm-color-text-muted);
	margin-bottom: 0.25rem;
}
.woocommerce-checkout #customer_details label .required {
	color: var(--lcbm-color-primary);
	text-decoration: none;
}
.woocommerce-checkout #customer_details input.input-text,
.woocommerce-checkout #customer_details select,
.woocommerce-checkout #customer_details .select2-selection {
	width: 100%;
	box-sizing: border-box;
	padding: 0.55rem 0.85rem;
	border: 1px solid var(--lcbm-color-border);
	border-radius: var(--lcbm-radius-sm);
	background: var(--lcbm-color-bg);
	font-size: 0.95rem;
}
.woocommerce-checkout #customer_details input.input-text:focus,
.woocommerce-checkout #customer_details select:focus {
	border-color: var(--lcbm-color-primary);
	outline: none;
	box-shadow: 0 0 0 3px rgba(255, 107, 91, 0.15);
}
.woocommerce-checkout #customer_details .select2-selection { display: flex; align-items: center; }
.woocommerce-checkout #customer_details .select2-selection__rendered { padding: 0 !important; line-height: normal !important; }
.woocommerce-checkout #customer_details .select2-selection__arrow { height: 100% !important; }
.lcbm-optional-reveal-hidden { display: none !important; }
.lcbm-optional-reveal-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	background: none;
	border: none;
	padding: 0;
	margin-bottom: var(--lcbm-space-md);
	color: var(--lcbm-color-secondary);
	font-size: 0.9rem;
	font-weight: 600;
	cursor: pointer;
}
.lcbm-optional-reveal-toggle:hover { text-decoration: underline; }

/* Billing/shipping fields (#customer_details) and the order summary
   (#order_review_heading + #order_review) are separate sibling elements
   in WooCommerce's own checkout markup, not wrapped in a shared
   container — floats let the two sit side by side while any other
   sibling content (payment-request buttons, notices, coupon box from
   the payment gateway plugin) still renders full-width above them in
   normal document flow, since it isn't floated. */
/* Checkout needs more room for a comfortable two-column layout than the
   site's normal 1280px content cap gives it — remove the cap entirely
   for just this page so it fills the full viewport width instead of
   leaving empty space on wide screens. */
body.woocommerce-checkout .lcbm-container { max-width: none; padding-inline: var(--lcbm-space-lg); }
/* The Checkout page renders through the same content-page.php template as
   regular text pages, so it inherits .entry-content's 720px reading-width
   cap (homepage.css) — that's exactly what was squeezing the billing form
   down to ~165px regardless of the container fix above. */
body.woocommerce-checkout .entry-content { max-width: none; }

@media (min-width: 900px) {
	.woocommerce-checkout form.checkout::after { content: ''; display: table; clear: both; }
	.woocommerce-checkout #customer_details {
		float: left;
		width: 58%;
		box-sizing: border-box;
		padding-right: var(--lcbm-space-lg);
	}
	.woocommerce-checkout #order_review_heading,
	.woocommerce-checkout #order_review {
		float: right;
		width: 42%;
		box-sizing: border-box;
	}
	.woocommerce-checkout #order_review_heading { margin-top: 0; }

	/* .woocommerce-additional-fields (the Order Notes box) is its own
	   top-level sibling of #customer_details, not nested inside it — left
	   unstyled it gets squeezed into whatever narrow gap is left between
	   the two floated columns. Float it to match the billing column
	   instead so Order Notes reads as part of the same form. */
	.woocommerce-checkout .woocommerce-additional-fields {
		float: left;
		clear: left;
		width: 58%;
		box-sizing: border-box;
		padding-right: var(--lcbm-space-lg);
	}
	.woocommerce-checkout .woocommerce-additional-fields textarea { width: 100%; box-sizing: border-box; }
}

/* Past a certain point the order-summary column would keep stretching
   wider than a simple product list needs — cap it and let the billing
   form absorb the extra room on very wide screens instead. */
@media (min-width: 1600px) {
	.woocommerce-checkout #customer_details,
	.woocommerce-checkout .woocommerce-additional-fields { width: calc(100% - 520px - var(--lcbm-space-lg)); }
	.woocommerce-checkout #order_review_heading,
	.woocommerce-checkout #order_review { width: 520px; }
}

/* --------------------------------------------------------------------
   My Account
   -------------------------------------------------------------------- */
.woocommerce-MyAccount-navigation ul { display: flex; flex-direction: column; gap: 0.3rem; }
.woocommerce-MyAccount-navigation a { display: block; padding: 0.7rem 1rem; border-radius: var(--lcbm-radius-sm); }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--lcbm-color-bg-light); color: var(--lcbm-color-primary); font-weight: 700; }

/* Login / Register (WooCommerce's default #customer_login markup on the
   My Account page) has no card styling out of the box — everything below
   just gives it the same input/button/spacing language as the rest of the
   site's forms. */
#customer_login {
	display: flex;
	flex-wrap: wrap;
	gap: var(--lcbm-space-lg);
	max-width: 480px;
}
#customer_login > div {
	flex: 1 1 400px;
	background: var(--lcbm-color-bg-light);
	border-radius: var(--lcbm-radius-md);
	padding: var(--lcbm-space-lg);
}
.woocommerce-form-login .form-row,
.woocommerce-form-register .form-row { margin-bottom: var(--lcbm-space-sm); }
.woocommerce-form-login label,
.woocommerce-form-register label { display: block; font-weight: 600; margin-bottom: 0.35rem; }
.woocommerce-form-login input[type="text"],
.woocommerce-form-login input[type="password"],
.woocommerce-form-login input[type="email"],
.woocommerce-form-register input[type="text"],
.woocommerce-form-register input[type="password"],
.woocommerce-form-register input[type="email"] { width: 100%; }
.woocommerce-form-login__rememberme {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 400;
	margin: var(--lcbm-space-sm) 0;
}
.woocommerce-form-login__rememberme input[type="checkbox"] { width: auto; }
.woocommerce-form-login .woocommerce-button,
.woocommerce-form-register .woocommerce-button {
	display: inline-block;
	background: var(--lcbm-color-primary);
	color: #fff;
	border: none;
	padding: 0.75rem 1.75rem;
	border-radius: var(--lcbm-radius-sm);
	font-weight: 700;
	transition: background 0.2s ease, transform 0.2s ease;
}
.woocommerce-form-login .woocommerce-button:hover,
.woocommerce-form-register .woocommerce-button:hover { background: var(--lcbm-color-accent); transform: translateY(-2px); }
.woocommerce-LostPassword { display: block; margin-top: var(--lcbm-space-sm); }
@media (max-width: 640px) {
	#customer_login > div { flex-basis: 100%; }
}

/* --------------------------------------------------------------------
   WooCommerce notices
   -------------------------------------------------------------------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews {
	border-radius: var(--lcbm-radius-sm);
	padding: 1rem 1.25rem;
	margin-bottom: var(--lcbm-space-sm);
	background: var(--lcbm-color-bg-light);
	border-left: 4px solid var(--lcbm-color-primary);
}
.woocommerce-error { border-left-color: var(--lcbm-color-danger); }
