/*
 * LimeLine — WooCommerce sitewide style overrides
 *
 * Operator decision 2026-04-26: bring all WC surfaces (cart, checkout,
 * my-account, order-received, mini-cart, login/register, address forms)
 * into the LimeLine design system. Inter for body, Fredoka for headings,
 * lime/grey palette, rounded inputs, lime-gradient buttons,
 * brand-colored notices.
 *
 * Selectors are body-class scoped (.woocommerce, .woocommerce-page,
 * body.woocommerce-cart, etc.) so they only fire on actual WC pages.
 */

/* ── Page wrapper typography ─────────────────────────────────── */
.woocommerce,
.woocommerce-page,
body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account,
body.woocommerce-order-received {
	font-family: var(--ll-font-sans) !important;
	color: var(--ll-grey-800);
}

.woocommerce h1, .woocommerce h2, .woocommerce h3, .woocommerce h4, .woocommerce h5,
.woocommerce-page h1, .woocommerce-page h2, .woocommerce-page h3, .woocommerce-page h4, .woocommerce-page h5 {
	font-family: var(--ll-font-display) !important;
	color: var(--ll-grey-900);
	font-weight: 700;
	letter-spacing: -0.01em;
}

.woocommerce h1, .woocommerce-page h1 { font-size: clamp(28px, 4vw, 40px); line-height: 1.1; margin: 0 0 24px; }
.woocommerce h2, .woocommerce-page h2 { font-size: clamp(22px, 3vw, 28px); line-height: 1.15; margin: 0 0 18px; }
.woocommerce h3, .woocommerce-page h3 { font-size: clamp(18px, 2.4vw, 22px); line-height: 1.2; margin: 0 0 14px; }

.woocommerce a,
.woocommerce-page a {
	color: var(--ll-emerald-700);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color 120ms ease;
}
.woocommerce a:hover,
.woocommerce-page a:hover {
	color: var(--ll-emerald-900, #064E3B);
	border-bottom-color: var(--ll-lime-500);
}

/* ── Buttons ─────────────────────────────────────────────────── */
.woocommerce .button,
.woocommerce a.button,
.woocommerce input.button,
.woocommerce button.button,
.woocommerce-page .button,
.woocommerce-page a.button,
.woocommerce-page input.button,
.woocommerce-page button.button,
.woocommerce #respond input#submit,
.woocommerce-page #respond input#submit {
	background: linear-gradient(180deg, #B8FF1F, #7CEA00 60%, #4FBE00) !important;
	color: #0A0A0A !important;
	border: 1px solid #277A00 !important;
	border-radius: 8px !important;
	padding: 10px 22px !important;
	font-family: var(--ll-font-sans) !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	text-shadow: none !important;
	box-shadow: none !important;
	transition: filter 120ms ease, transform 120ms ease;
	text-decoration: none !important;
	cursor: pointer;
}
.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce input.button:hover,
.woocommerce button.button:hover,
.woocommerce-page .button:hover,
.woocommerce-page a.button:hover,
.woocommerce-page input.button:hover,
.woocommerce-page button.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce-page #respond input#submit:hover {
	filter: brightness(1.05) saturate(1.1);
	transform: translateY(-1px);
	color: #0A0A0A !important;
	border-color: #277A00 !important;
}

/* "Place order" / alt — bigger, bolder */
.woocommerce .button.alt,
.woocommerce a.button.alt,
.woocommerce-page .button.alt,
.woocommerce-page a.button.alt,
.woocommerce #place_order,
.woocommerce-page #place_order {
	background: linear-gradient(180deg, #B8FF1F, #7CEA00 60%, #4FBE00) !important;
	color: #0A0A0A !important;
	border: 1px solid #277A00 !important;
	font-weight: 800 !important;
	padding: 14px 28px !important;
	font-size: 16px !important;
}

/* "Return to shop" / "Cancel" — ghost */
.woocommerce a.button.wc-backward,
.woocommerce-page a.button.wc-backward,
.woocommerce-cart .return-to-shop a.button,
.woocommerce-page .return-to-shop a.button {
	background: var(--ll-white) !important;
	color: var(--ll-grey-900) !important;
	border: 1px solid var(--ll-grey-300) !important;
}
.woocommerce a.button.wc-backward:hover,
.woocommerce-page a.button.wc-backward:hover {
	border-color: var(--ll-lime-500) !important;
	color: var(--ll-grey-900) !important;
}

/* ── Form inputs ─────────────────────────────────────────────── */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.woocommerce-page form .form-row select,
.woocommerce form input[type="text"],
.woocommerce form input[type="email"],
.woocommerce form input[type="tel"],
.woocommerce form input[type="number"],
.woocommerce form input[type="password"],
.woocommerce form textarea,
.woocommerce form select,
.woocommerce-page form input[type="text"],
.woocommerce-page form input[type="email"],
.woocommerce-page form input[type="tel"],
.woocommerce-page form input[type="number"],
.woocommerce-page form input[type="password"],
.woocommerce-page form textarea,
.woocommerce-page form select {
	font-family: var(--ll-font-sans) !important;
	font-size: 15px !important;
	padding: 11px 14px !important;
	border: 1px solid var(--ll-grey-300) !important;
	border-radius: 8px !important;
	background: var(--ll-white) !important;
	color: var(--ll-grey-900) !important;
	box-shadow: none !important;
	transition: border-color 120ms ease, box-shadow 120ms ease;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce-page form .form-row input.input-text:focus,
.woocommerce-page form .form-row textarea:focus,
.woocommerce-page form input:focus,
.woocommerce form input:focus,
.woocommerce form textarea:focus,
.woocommerce form select:focus {
	outline: none !important;
	border-color: var(--ll-lime-500) !important;
	box-shadow: 0 0 0 3px rgba(124,234,0,0.18) !important;
}

.woocommerce form .form-row label,
.woocommerce-page form .form-row label {
	font-family: var(--ll-font-sans) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: var(--ll-grey-800) !important;
	margin-bottom: 6px !important;
	display: block;
}

.woocommerce form .form-row .required,
.woocommerce-page form .form-row .required {
	color: var(--ll-emerald-700) !important;
	text-decoration: none !important;
}

/* ── Tables ──────────────────────────────────────────────────── */
.woocommerce table.shop_table,
.woocommerce-page table.shop_table {
	font-family: var(--ll-font-sans) !important;
	border: 1px solid var(--ll-grey-200) !important;
	border-radius: 12px !important;
	border-collapse: separate !important;
	border-spacing: 0 !important;
	background: var(--ll-white) !important;
	overflow: hidden;
}
.woocommerce table.shop_table th,
.woocommerce-page table.shop_table th {
	font-family: var(--ll-font-mono) !important;
	font-size: 11px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.06em !important;
	color: var(--ll-grey-600) !important;
	font-weight: 700 !important;
	padding: 14px 16px !important;
	background: var(--ll-grey-50) !important;
	border-bottom: 1px solid var(--ll-grey-200) !important;
	text-align: left;
}
.woocommerce table.shop_table td,
.woocommerce-page table.shop_table td {
	padding: 16px !important;
	border-bottom: 1px solid var(--ll-grey-100) !important;
	color: var(--ll-grey-800) !important;
	background: var(--ll-white);
	vertical-align: middle;
}
.woocommerce table.shop_table tfoot th,
.woocommerce table.shop_table tfoot td,
.woocommerce-page table.shop_table tfoot th,
.woocommerce-page table.shop_table tfoot td {
	background: var(--ll-grey-50) !important;
	font-weight: 700 !important;
	color: var(--ll-grey-900) !important;
}
.woocommerce table.shop_table tfoot tr:last-child th,
.woocommerce table.shop_table tfoot tr:last-child td {
	font-size: 16px !important;
}

.woocommerce table.shop_table img,
.woocommerce-page table.shop_table img {
	border-radius: 8px;
	border: 1px solid var(--ll-grey-200);
	max-width: 64px;
	height: auto;
}

.woocommerce .quantity .qty,
.woocommerce-page .quantity .qty {
	width: 72px !important;
	text-align: center !important;
}

/* ── Notices ─────────────────────────────────────────────────── */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info,
.woocommerce-page .woocommerce-message,
.woocommerce-page .woocommerce-error,
.woocommerce-page .woocommerce-info {
	font-family: var(--ll-font-sans) !important;
	font-size: 14px !important;
	border-radius: 10px !important;
	padding: 14px 18px !important;
	border: 1px solid !important;
	background: var(--ll-white) !important;
	color: var(--ll-grey-900) !important;
	box-shadow: none !important;
	line-height: 1.5;
}
.woocommerce-message,
.woocommerce-page .woocommerce-message {
	border-color: rgba(124,234,0,0.4) !important;
	background: linear-gradient(180deg, rgba(124,234,0,0.06), rgba(124,234,0,0.02)) !important;
	border-left: 3px solid var(--ll-lime-500) !important;
}
.woocommerce-error,
.woocommerce-page .woocommerce-error {
	border-color: rgba(220,38,38,0.3) !important;
	background: linear-gradient(180deg, rgba(220,38,38,0.05), rgba(220,38,38,0.02)) !important;
	border-left: 3px solid #DC2626 !important;
}
.woocommerce-info,
.woocommerce-page .woocommerce-info {
	border-color: rgba(16,185,129,0.3) !important;
	background: linear-gradient(180deg, rgba(16,185,129,0.05), rgba(16,185,129,0.02)) !important;
	border-left: 3px solid var(--ll-emerald-500, #10B981) !important;
}

.woocommerce-message a.button,
.woocommerce-error a.button,
.woocommerce-info a.button {
	margin-left: auto !important;
}

/* ── Cart totals box ─────────────────────────────────────────── */
.woocommerce .cart_totals,
.woocommerce-page .cart_totals,
.woocommerce-cart .cart-collaterals .cart_totals {
	background: var(--ll-white) !important;
	padding: 24px !important;
	border: 1px solid var(--ll-grey-200) !important;
	border-radius: 12px !important;
}
.woocommerce .cart_totals h2,
.woocommerce-page .cart_totals h2 {
	font-size: clamp(20px, 2.4vw, 24px) !important;
	margin-bottom: 18px !important;
}

.woocommerce-cart table.cart td.actions .coupon,
.woocommerce-page table.cart td.actions .coupon {
	display: inline-flex;
	gap: 8px;
	align-items: center;
}

/* ── Checkout columns + payment methods ──────────────────────── */
.woocommerce-checkout #order_review,
.woocommerce-page #order_review {
	background: var(--ll-grey-50) !important;
	padding: 24px !important;
	border: 1px solid var(--ll-grey-200) !important;
	border-radius: 12px !important;
}
.woocommerce-checkout #payment,
.woocommerce-page #payment {
	background: var(--ll-white) !important;
	border: 1px solid var(--ll-grey-200) !important;
	border-radius: 12px !important;
}
.woocommerce-checkout #payment ul.payment_methods,
.woocommerce-page #payment ul.payment_methods {
	background: transparent !important;
	border-bottom: 1px solid var(--ll-grey-100) !important;
	padding: 14px 18px !important;
}
.woocommerce-checkout #payment ul.payment_methods li,
.woocommerce-page #payment ul.payment_methods li {
	color: var(--ll-grey-800);
	padding: 10px 0;
	border-bottom: 1px solid var(--ll-grey-100);
}
.woocommerce-checkout #payment ul.payment_methods li:last-child,
.woocommerce-page #payment ul.payment_methods li:last-child {
	border-bottom: 0;
}
.woocommerce-checkout #payment div.payment_box,
.woocommerce-page #payment div.payment_box {
	background: var(--ll-cream-50, #FAF7EE) !important;
	border-radius: 8px !important;
	color: var(--ll-grey-700) !important;
	font-size: 13px !important;
	margin-top: 8px !important;
}

/* ── My Account ──────────────────────────────────────────────── */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-page .woocommerce-MyAccount-navigation {
	font-family: var(--ll-font-sans) !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul,
.woocommerce-page .woocommerce-MyAccount-navigation ul {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	background: var(--ll-grey-50);
	border-radius: 12px;
	border: 1px solid var(--ll-grey-200);
	overflow: hidden;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li,
.woocommerce-page .woocommerce-MyAccount-navigation ul li {
	border-bottom: 1px solid var(--ll-grey-100);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child,
.woocommerce-page .woocommerce-MyAccount-navigation ul li:last-child {
	border-bottom: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a,
.woocommerce-page .woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 14px 18px;
	color: var(--ll-grey-700) !important;
	border-bottom: 0 !important;
	text-decoration: none !important;
	font-weight: 500;
	transition: background 120ms ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-page .woocommerce-MyAccount-navigation ul li a:hover {
	background: var(--ll-white);
	color: var(--ll-grey-900) !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-page .woocommerce-MyAccount-navigation ul li.is-active a {
	background: var(--ll-white) !important;
	color: var(--ll-grey-900) !important;
	border-left: 3px solid var(--ll-lime-500) !important;
	font-weight: 700;
}

.woocommerce-account .u-columns,
.woocommerce-page .u-columns,
.woocommerce-account .col2-set,
.woocommerce-page .col2-set {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 24px;
}
@media (max-width: 720px) {
	.woocommerce-account .u-columns,
	.woocommerce-page .u-columns,
	.woocommerce-account .col2-set,
	.woocommerce-page .col2-set {
		grid-template-columns: 1fr !important;
	}
}
.woocommerce form.login,
.woocommerce form.register,
.woocommerce-page form.login,
.woocommerce-page form.register,
.woocommerce form.checkout_coupon,
.woocommerce form.lost_reset_password {
	background: var(--ll-white) !important;
	padding: 24px !important;
	border: 1px solid var(--ll-grey-200) !important;
	border-radius: 12px !important;
}

/* ── Mini cart drawer / widget ───────────────────────────────── */
.woocommerce ul.cart_list,
.woocommerce-page ul.cart_list,
.widget_shopping_cart ul.cart_list {
	font-family: var(--ll-font-sans) !important;
	list-style: none !important;
	padding: 0 !important;
}
.woocommerce ul.cart_list li,
.widget_shopping_cart ul.cart_list li {
	padding: 12px 0 !important;
	border-bottom: 1px solid var(--ll-grey-100) !important;
}
.widget_shopping_cart .total {
	font-family: var(--ll-font-display) !important;
	color: var(--ll-grey-900) !important;
	border-top: 1px solid var(--ll-grey-200) !important;
	padding-top: 12px !important;
	margin-top: 8px !important;
}

/* ── Order received / thank-you ──────────────────────────────── */
.woocommerce-order-received .woocommerce-order,
.woocommerce-page .woocommerce-order {
	font-family: var(--ll-font-sans) !important;
}
.woocommerce-order-received .woocommerce-order p.woocommerce-thankyou-order-received,
.woocommerce-page p.woocommerce-thankyou-order-received {
	font-family: var(--ll-font-display) !important;
	font-size: clamp(22px, 3vw, 28px) !important;
	color: var(--ll-grey-900) !important;
	font-weight: 700 !important;
	padding: 24px !important;
	background: linear-gradient(180deg, rgba(124,234,0,0.08), rgba(124,234,0,0.02)) !important;
	border: 1px solid rgba(124,234,0,0.3) !important;
	border-left: 3px solid var(--ll-lime-500) !important;
	border-radius: 12px !important;
}
.woocommerce-order-received .woocommerce-order ul.woocommerce-order-overview,
.woocommerce-page ul.woocommerce-order-overview {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)) !important;
	gap: 12px !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 24px 0 !important;
}
.woocommerce-order-received ul.woocommerce-order-overview li,
.woocommerce-page ul.woocommerce-order-overview li {
	background: var(--ll-grey-50);
	border: 1px solid var(--ll-grey-200);
	border-radius: 10px;
	padding: 14px 16px;
	font-size: 13px;
	color: var(--ll-grey-700);
	border-left: 0 !important;
}
.woocommerce-order-received ul.woocommerce-order-overview li strong,
.woocommerce-page ul.woocommerce-order-overview li strong {
	display: block;
	font-family: var(--ll-font-display);
	font-size: 16px;
	color: var(--ll-grey-900);
	margin-top: 4px;
}

/* ── Page wrapper padding for cart/checkout/account ──────────── */
.woocommerce-cart .entry-content,
.woocommerce-checkout .entry-content,
.woocommerce-account .entry-content,
.woocommerce-order-received .entry-content {
	max-width: 1200px;
	margin: 0 auto;
	padding: 48px 24px;
}

/* ── Price formatting ────────────────────────────────────────── */
.woocommerce .woocommerce-Price-amount,
.woocommerce-page .woocommerce-Price-amount {
	font-family: var(--ll-font-sans) !important;
	font-weight: 600;
	color: var(--ll-grey-900);
}
.woocommerce table.shop_table .woocommerce-Price-amount {
	font-weight: 700;
}

/* ── Variation product sizes selector ────────────────────────── */
.variations_form .variations,
.woocommerce-page .variations_form .variations {
	font-family: var(--ll-font-sans) !important;
}

/* ============================================================ */
/*  WooCommerce BLOCKS overrides — added 2026-04-26
    Cart, checkout, mini-cart all use Gutenberg-block markup
    (.wp-block-woocommerce-*, .wc-block-*), NOT classic WC. The
    classic-selector overrides above don't catch them. These
    selectors target the block-based DOM the live site renders.
*/
/* ============================================================ */

/* ── Page wrapper width constraint (operator: too wide) ────── */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout,
.wp-block-woocommerce-mini-cart {
	font-family: var(--ll-font-sans) !important;
	color: var(--ll-grey-800) !important;
	max-width: 1200px;
	margin: 0 auto;
	padding: 32px 24px;
}

/*
	NOTE: removed the forced grid-template-columns on .wc-block-cart 2026-04-26.
	It was breaking the totals sidebar — WC Blocks renders this layout itself
	natively, our forced grid was squeezing the right column to where each
	totals label was wrapping character-by-character vertically. Let WC's own
	layout breathe; we only override visual treatment below.
*/

.wc-block-cart__empty-cart__title,
.wp-block-heading.with-empty-cart-icon {
	font-family: var(--ll-font-display) !important;
	color: var(--ll-grey-900) !important;
	font-size: clamp(22px, 3vw, 28px) !important;
	font-weight: 700 !important;
	text-align: center;
}

/* ── Block buttons: Proceed to checkout, Place order, etc. ──── */
.wc-block-components-button,
.wc-block-cart__submit-button,
.wc-block-checkout__actions_row .wc-block-components-button,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button,
.wp-block-button__link.add_to_cart_button,
.wp-block-button .wp-block-button__link {
	background: linear-gradient(180deg, #B8FF1F, #7CEA00 60%, #4FBE00) !important;
	color: #0A0A0A !important;
	border: 1px solid #277A00 !important;
	border-radius: 8px !important;
	padding: 12px 22px !important;
	font-family: var(--ll-font-sans) !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	box-shadow: none !important;
	text-shadow: none !important;
	text-decoration: none !important;
	transition: filter 120ms ease, transform 120ms ease;
	cursor: pointer;
}
.wc-block-components-button:hover,
.wc-block-cart__submit-button:hover,
.wp-block-button__link:hover,
.wc-block-checkout__actions_row .wc-block-components-button:hover {
	filter: brightness(1.05) saturate(1.1);
	transform: translateY(-1px);
	color: #0A0A0A !important;
	background: linear-gradient(180deg, #B8FF1F, #7CEA00 60%, #4FBE00) !important;
}

.wc-block-components-checkout-place-order-button,
.wc-block-checkout__actions_row .wc-block-components-button.wc-block-cart__submit-button {
	font-weight: 800 !important;
	padding: 16px 28px !important;
	font-size: 16px !important;
	width: 100%;
	justify-content: center;
}

.wc-block-components-button__text {
	color: inherit !important;
	font-weight: inherit !important;
}

.wc-block-components-checkout-return-to-cart-button,
a.wc-block-components-checkout-return-to-cart-button {
	color: var(--ll-grey-600) !important;
	background: transparent !important;
	border: 0 !important;
	text-decoration: underline !important;
	font-weight: 500 !important;
	padding: 8px 12px !important;
}
.wc-block-components-checkout-return-to-cart-button:hover {
	color: var(--ll-emerald-700) !important;
	background: transparent !important;
}

/* ── Form inputs (block-style) ──────────────────────────────────
   STRATEGY CHANGE 2026-04-26: stop fighting WC Blocks' floating-label
   mechanism (clipping bugs across browsers / font metrics, the
   `combobox` class doesn't actually exist, etc). Convert all WC Blocks
   text-input labels to TRADITIONAL static labels positioned above the
   input. Label-above-input, no overlap possible, no transform math.
   Operator-approved decision after 3 iterations of floating-label fixes
   still showed clipping on Country/State combobox fields. */
.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-text-input input[role="combobox"] {
	font-family: var(--ll-font-sans) !important;
	font-size: 15px !important;
	padding: 12px 14px !important;
	border: 1px solid var(--ll-grey-300) !important;
	border-radius: 8px !important;
	background: var(--ll-white) !important;
	color: var(--ll-grey-900) !important;
	box-shadow: none !important;
	min-height: 44px;
	line-height: 1.3 !important;
}
/* Quantity selector input keeps symmetric padding (no label). */
.wc-block-components-quantity-selector input {
	font-family: var(--ll-font-sans) !important;
	font-size: 15px !important;
	padding: 12px 14px !important;
	border: 1px solid var(--ll-grey-300) !important;
	border-radius: 8px !important;
	background: var(--ll-white) !important;
	color: var(--ll-grey-900) !important;
	box-shadow: none !important;
}

/* WC Blocks SELECT widget (Country/State/etc) uses a DIFFERENT class
   hierarchy — `.wc-blocks-components-select` (plural "blocks") with
   `__container`, `__label`, `__select`, `__expand` children. Default WC
   CSS positions the label absolutely at top:6px AND has the select
   value at padding-top:16px — these overlap by ~8px, which is the
   visible clipping operators reported. Same fix as the text-input
   static-label pattern: reset to flex column, label above, select below. */
.wc-blocks-components-select,
.wc-blocks-components-select__container {
	display: flex !important;
	flex-direction: column !important;
	gap: 4px !important;
	background: transparent !important;
	border-radius: 0 !important;
	position: relative !important;
}
.wc-blocks-components-select__label {
	position: static !important;
	top: auto !important;
	left: auto !important;
	transform: none !important;
	margin: 0 0 4px 0 !important;
	padding: 0 !important;
	order: -1 !important;
	font-family: var(--ll-font-sans) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	color: var(--ll-grey-700) !important;
	max-width: 100% !important;
	overflow: visible !important;
	text-overflow: clip !important;
	white-space: normal !important;
	z-index: auto !important;
}
.wc-blocks-components-select__select {
	appearance: none !important;
	-webkit-appearance: none !important;
	font-family: var(--ll-font-sans) !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	padding: 12px 38px 12px 14px !important;     /* extra right padding for the chevron */
	height: 44px !important;
	min-height: 44px !important;
	line-height: 1.3 !important;
	border: 1px solid var(--ll-grey-300) !important;
	border-radius: 8px !important;
	background: var(--ll-white) !important;
	color: var(--ll-grey-900) !important;
}
.wc-blocks-components-select__select:focus {
	outline: none !important;
	border-color: var(--ll-lime-500) !important;
	border-width: 1px !important;
	padding: 12px 38px 12px 14px !important;     /* prevent layout-shift on focus (default WC adds 0.5px border) */
	box-shadow: 0 0 0 3px rgba(124,234,0,0.18) !important;
}
/* Chevron — re-anchor from the bottom of the container (where the select
   sits in our new flex layout) rather than the original top:50% which
   would now center the chevron between label and select. */
.wc-blocks-components-select__expand {
	top: auto !important;
	bottom: 14px !important;
	right: 12px !important;
	transform: none !important;
	fill: var(--ll-grey-600) !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-text-input textarea:focus,
.wc-block-components-select select:focus,
.wc-block-components-combobox input:focus {
	outline: none !important;
	border-color: var(--ll-lime-500) !important;
	box-shadow: 0 0 0 3px rgba(124,234,0,0.18) !important;
}
/* STATIC LABEL pattern (replaces the broken floating-label mechanism):
   reset all the absolute-positioning + transforms that WC Blocks uses,
   render the label as a normal block-level element above the input.
   Higher specificity (`.wc-block-components-form` ancestor) ensures we
   beat WC Blocks' own rules including the `.is-active` variant. */
.wc-block-components-form .wc-block-components-text-input,
.wc-block-components-form .wc-block-components-text-input.is-active,
.wc-block-components-form .wc-block-components-text-input.has-error,
.wc-block-components-text-input,
.wc-block-components-text-input.is-active {
	display: flex !important;
	flex-direction: column !important;
	gap: 6px;
	padding-top: 0 !important;     /* no extra space reserved for floating label */
}
.wc-block-components-form .wc-block-components-text-input label,
.wc-block-components-form .wc-block-components-text-input.is-active label,
.wc-block-components-form .wc-block-components-text-input input:-webkit-autofill + label,
.wc-block-components-text-input label,
.wc-block-components-text-input.is-active label {
	position: static !important;       /* unstick from absolute positioning */
	top: auto !important;
	left: auto !important;
	transform: none !important;        /* kill the floating animation entirely */
	max-width: 100% !important;
	overflow: visible !important;
	text-overflow: clip !important;
	font-family: var(--ll-font-sans) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	color: var(--ll-grey-700) !important;
	letter-spacing: 0.01em;
	margin: 0 0 4px 0 !important;
	padding: 0 !important;
	order: -1 !important;              /* always render label BEFORE the input */
}
/* Standalone (non-floating) labels above inputs keep normal weight/color. */
.wc-block-components-select label {
	font-family: var(--ll-font-sans) !important;
	color: var(--ll-grey-700) !important;
	font-weight: 500 !important;
}

.wc-block-components-quantity-selector {
	border: 1px solid var(--ll-grey-300) !important;
	border-radius: 8px !important;
	background: var(--ll-white) !important;
}
.wc-block-components-quantity-selector__button {
	color: var(--ll-grey-700) !important;
	background: transparent !important;
	border: 0 !important;
}
.wc-block-components-quantity-selector__button:hover {
	color: var(--ll-emerald-700) !important;
	background: var(--ll-grey-50) !important;
}

/* ── Cart line items + totals ─────────────────────────────────── */
.wc-block-cart-items {
	background: var(--ll-white) !important;
	border: 1px solid var(--ll-grey-200) !important;
	border-radius: 12px !important;
	overflow: hidden;
}
.wc-block-cart-items__header,
.wc-block-cart-items thead th {
	font-family: var(--ll-font-mono) !important;
	font-size: 11px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.06em !important;
	color: var(--ll-grey-600) !important;
	font-weight: 700 !important;
	padding: 14px 18px !important;
	background: var(--ll-grey-50) !important;
	border-bottom: 1px solid var(--ll-grey-200) !important;
}
.wc-block-cart-items__row,
.wc-block-cart-items tbody tr {
	padding: 18px !important;
	border-bottom: 1px solid var(--ll-grey-100) !important;
}
.wc-block-cart-items__row:last-child {
	border-bottom: 0 !important;
}
.wc-block-cart-item__image img,
.wc-block-mini-cart-item__image img {
	border-radius: 8px;
	border: 1px solid var(--ll-grey-200);
	max-width: 72px;
	height: auto;
}

.wp-block-woocommerce-cart-totals-block,
.wp-block-woocommerce-cart-order-summary-block,
.wp-block-woocommerce-checkout-totals-block {
	background: var(--ll-white) !important;
	border: 1px solid var(--ll-grey-200) !important;
	border-radius: 12px !important;
	padding: 24px !important;
}
.wc-block-components-totals-item {
	font-family: var(--ll-font-sans) !important;
	color: var(--ll-grey-800) !important;
	/* Inner horizontal padding so the price doesn't clip the panel edge.
	   Operator screenshot 2026-04-26: $158.00 was running flush with the
	   right border of the box. */
	padding: 10px 12px !important;
	border-bottom: 1px solid var(--ll-grey-100) !important;
}
.wc-block-components-totals-item__value {
	padding-right: 4px;
	white-space: nowrap;
}
.wc-block-components-totals-item:last-child {
	border-bottom: 0 !important;
}
.wc-block-components-totals-item__label {
	color: var(--ll-grey-700) !important;
}
.wc-block-components-totals-item__value {
	font-weight: 600 !important;
	color: var(--ll-grey-900) !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-family: var(--ll-font-display) !important;
	font-size: 22px !important;
	color: var(--ll-grey-900) !important;
	font-weight: 700 !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-family: var(--ll-font-display) !important;
	font-size: 18px !important;
	color: var(--ll-grey-900) !important;
	font-weight: 700 !important;
}

.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-totals-coupon__form {
	display: flex;
	gap: 8px;
	align-items: center;
}
.wc-block-components-totals-coupon__form input {
	flex: 1;
	min-width: 0;
}

.wp-block-woocommerce-cart-order-summary-heading-block,
.wp-block-heading.wc-block-cart__heading,
.wc-block-components-checkout-step__heading {
	font-family: var(--ll-font-display) !important;
	color: var(--ll-grey-900) !important;
	font-weight: 700 !important;
}

/* ── Notices + errors ─────────────────────────────────────────── */
.wc-block-components-notice-banner,
.wc-block-components-validation-error {
	font-family: var(--ll-font-sans) !important;
	border-radius: 10px !important;
	padding: 14px 18px !important;
}
.wc-block-components-notice-banner.is-success,
.wc-block-components-notice-banner.is-info {
	background: linear-gradient(180deg, rgba(124,234,0,0.06), rgba(124,234,0,0.02)) !important;
	border: 1px solid rgba(124,234,0,0.4) !important;
	border-left: 3px solid var(--ll-lime-500) !important;
	color: var(--ll-grey-900) !important;
}
.wc-block-components-notice-banner.is-error {
	background: linear-gradient(180deg, rgba(220,38,38,0.05), rgba(220,38,38,0.02)) !important;
	border: 1px solid rgba(220,38,38,0.3) !important;
	border-left: 3px solid #DC2626 !important;
	color: var(--ll-grey-900) !important;
}

/* ── Mini cart (drawer) ───────────────────────────────────────── */
.wc-block-mini-cart__drawer .components-modal__content,
.wc-block-mini-cart__drawer .components-modal__frame {
	font-family: var(--ll-font-sans) !important;
	background: var(--ll-white) !important;
}
.wc-block-mini-cart__title {
	font-family: var(--ll-font-display) !important;
	color: var(--ll-grey-900) !important;
}

/* ── Checkout steps ───────────────────────────────────────────── */
.wc-block-components-checkout-step__title {
	font-family: var(--ll-font-display) !important;
	color: var(--ll-grey-900) !important;
	font-weight: 700 !important;
	font-size: 18px !important;
}
.wc-block-components-checkout-step__description {
	font-family: var(--ll-font-sans) !important;
	color: var(--ll-grey-600) !important;
	font-size: 13px !important;
}

/* ── Payment method radio rows ────────────────────────────────── */
.wc-block-components-radio-control__option {
	border: 1px solid var(--ll-grey-200) !important;
	border-radius: 10px !important;
	padding: 14px !important;
	background: var(--ll-white) !important;
}
.wc-block-components-radio-control__option-checked {
	border-color: var(--ll-lime-500) !important;
	background: linear-gradient(180deg, var(--ll-cream-50, #FAF7EE) 0%, var(--ll-white) 100%) !important;
}

/* ── Order summary on checkout (right column) ────────────────── */
.wc-block-components-order-summary {
	background: var(--ll-grey-50) !important;
	border-radius: 12px !important;
	border: 1px solid var(--ll-grey-200) !important;
	padding: 24px !important;  /* bumped from 18 — give items breathing room */
}

/* Each item row: bump padding so the long product descriptions don't
   bump up against the panel edge (operator screenshot 2026-04-26). */
.wc-block-components-order-summary-item {
	padding: 14px 12px !important;
	border-bottom: 1px solid var(--ll-grey-100);
	gap: 14px;
}
.wc-block-components-order-summary-item:last-child {
	border-bottom: 0 !important;
	margin-bottom: 0 !important;
}
/* Operator decision 2026-04-26 (revised AGAIN): in the order summary show
   image + product NAME + unit PRICE + line TOTAL. Hide ONLY the short
   product description text. NOTE: `__description` on the order-summary-item
   is the right-column WRAPPER (name + metadata + total) — do NOT hide it.
   Target only the metadata description text element. */
.wc-block-components-order-summary-item .wc-block-components-product-metadata__description,
.wc-block-components-order-summary-item .wc-block-components-product-metadata-description,
.wc-block-components-order-summary-item .wc-block-components-product-details {
	display: none !important;
}
/* Make sure the right column (name/price wrapper) and its children stay visible */
.wc-block-components-order-summary-item__description {
	display: flex !important;
	flex-direction: column !important;
	flex: 1 1 auto !important;
	min-width: 0 !important;
	gap: 4px;
}
.wc-block-components-order-summary-item .wc-block-components-product-name {
	display: block !important;
	font-family: var(--ll-font-display) !important;
	font-weight: 600 !important;
	color: var(--ll-grey-900) !important;
	font-size: 15px !important;
	line-height: 1.3 !important;
}
.wc-block-components-order-summary-item .wc-block-components-product-metadata {
	display: block !important;
}
.wc-block-components-order-summary-item__individual-prices,
.wc-block-components-order-summary-item__individual-price {
	display: block !important;
	font-family: var(--ll-font-mono) !important;
	font-size: 12px !important;
	color: var(--ll-grey-600) !important;
	margin-top: 2px !important;
}
.wc-block-components-order-summary-item__total-price {
	display: block !important;
	font-family: var(--ll-font-mono) !important;
	font-weight: 600 !important;
	color: var(--ll-grey-900) !important;
	white-space: nowrap !important;
	padding-left: 8px !important;
}
.wc-block-components-order-summary-item__image {
	flex-shrink: 0;
	margin-right: 4px;
}

.wc-block-components-order-summary-item__quantity {
	background: var(--ll-grey-900) !important;
	color: var(--ll-white) !important;
	border-radius: 999px !important;
	font-family: var(--ll-font-mono) !important;
	font-size: 11px !important;
}

/* ============================================================ */
/*  Targeted fixes 2026-04-26 — operator screenshot review:
    - Cart totals column was breaking text vertically (forced grid removed above)
    - My-account is full-width, needs to be boxed + centered
    - Checkout layout needs centered, not left-aligned
    - "Return to Cart" link was hard to see/read
*/
/* ============================================================ */

/* ── My Account: boxed + centered (operator: full page width) ── */
body.woocommerce-account .woocommerce {
	max-width: 1080px !important;
	margin: 48px auto !important;
	padding: 32px !important;
	background: var(--ll-white) !important;
	border: 1px solid var(--ll-grey-200) !important;
	border-radius: 16px !important;
	box-shadow: 0 4px 24px rgba(0,0,0,0.04);
}

/* Login + Register on the logged-out my-account page */
body.woocommerce-account:not(.logged-in) .woocommerce {
	display: block !important;
}
body.woocommerce-account:not(.logged-in) .woocommerce > h2 {
	text-align: center;
	margin-bottom: 24px;
}

/* My-account dashboard layout (logged-in): nav + content */
body.woocommerce-account.logged-in .woocommerce {
	display: grid !important;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: 32px;
}
@media (max-width: 720px) {
	body.woocommerce-account.logged-in .woocommerce {
		grid-template-columns: 1fr !important;
	}
}

/* ── Checkout: center the layout (operator: not left-aligned) ── */
.wp-block-woocommerce-checkout {
	max-width: 1080px !important;
	margin: 48px auto !important;
}

/*
	NOTE: removed the forced grid-template-columns on .wp-block-woocommerce-checkout
	2026-04-26. Same bug as the cart had — WC Blocks renders the 2-col layout
	itself; my forced grid was squeezing the right-side Order Summary to a tiny
	column where each word wrapped character-by-character. Let WC's layout
	handle column widths; we only style appearance.
*/

/* ── Return to Cart button: prominent + readable ──────────────── */
/* Operator: "hard to see and read. Move it and make it clearer." */
/* Move it from a tiny grey underline to a prominent ghost-button at the TOP of checkout, like a "back" pill. */
.wc-block-components-checkout-return-to-cart-button,
a.wc-block-components-checkout-return-to-cart-button {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	color: var(--ll-grey-900) !important;
	background: var(--ll-white) !important;
	border: 1px solid var(--ll-grey-300) !important;
	border-radius: 999px !important;
	padding: 8px 16px !important;
	font-family: var(--ll-font-sans) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	margin: 0 0 24px 0 !important;
	transition: border-color 120ms ease, background 120ms ease;
}
.wc-block-components-checkout-return-to-cart-button:hover,
a.wc-block-components-checkout-return-to-cart-button:hover {
	background: var(--ll-grey-50) !important;
	border-color: var(--ll-lime-500) !important;
	color: var(--ll-grey-900) !important;
}
.wc-block-components-checkout-return-to-cart-button::before {
	content: "←";
	font-size: 16px;
	line-height: 1;
}

/* If WC Blocks puts the return-to-cart at the bottom (in actions_row), surface a duplicate at the top */
.wp-block-woocommerce-checkout::before {
	content: none;  /* placeholder — visual back link injected by JS would go here */
}

/* ── Safety: prevent character-by-character vertical wrapping in any
   WC Blocks totals/summary panel. Same fix the cart needed; checkout
   needs it too. Applies to cart + checkout + my-account orders. */
.wp-block-woocommerce-cart-totals-block,
.wp-block-woocommerce-cart-order-summary-block,
.wp-block-woocommerce-checkout-order-summary-block,
.wp-block-woocommerce-checkout-totals-block,
.wc-block-components-order-summary,
.wc-block-components-sidebar-layout__sidebar {
	min-width: 0;  /* allow grid items to shrink properly */
	overflow-wrap: normal !important;
	word-break: normal !important;
}
.wp-block-woocommerce-cart-totals-block *,
.wp-block-woocommerce-cart-order-summary-block *,
.wp-block-woocommerce-checkout-order-summary-block *,
.wp-block-woocommerce-checkout-totals-block *,
.wc-block-components-order-summary *,
.wc-block-components-sidebar-layout__sidebar * {
	overflow-wrap: normal !important;
	word-break: normal !important;
	hyphens: none !important;
}

/* ── Variations form (.variations) — center on checkout page if shown ── */
.wp-block-woocommerce-checkout .wc-block-components-form > * + * {
	margin-top: 0;  /* tightens checkout step spacing */
}
