/* ===========================================================================
   Longhand Goods — WooCommerce skin
   Maps WooCommerce markup onto the brand: shop grid, single product (with a
   customizer-aware add-to-cart row), cart, checkout, account, notices, and the
   mini-cart drawer. Depends on theme.css + design-system tokens.
   =========================================================================== */

.lh-wc { padding-block: clamp(28px, 4vw, 52px); display: block; }

/* --- Buttons (WooCommerce → brand) --------------------------------------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .button,
.lh-drawer .button {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  height: var(--control-md); padding: 0 22px;
  font-family: var(--font-body); font-weight: var(--weight-semibold); font-size: var(--text-base);
  line-height: 1; letter-spacing: 0.01em; text-decoration: none;
  color: var(--accent-contrast); background: var(--accent);
  border: var(--border-thin) solid transparent; border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm); cursor: pointer; white-space: nowrap;
  transition: background var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-soft);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce .button:hover,
.woocommerce #respond input#submit:hover { background: var(--accent-hover); color: var(--accent-contrast); box-shadow: var(--shadow-md); transform: translateY(-2px); }
.woocommerce .button:active { transform: translateY(0) scale(0.99); box-shadow: var(--shadow-sm); }
.woocommerce .button.alt,
.woocommerce .single_add_to_cart_button,
.woocommerce .checkout-button,
.woocommerce #place_order { background: var(--accent); color: var(--accent-contrast); }
/* Quiet/secondary buttons */
.woocommerce a.button.wc-backward,
.woocommerce button[name="update_cart"],
.woocommerce button[name="apply_coupon"] {
  background: var(--surface-raised); color: var(--text-strong); border-color: var(--border-default); box-shadow: var(--shadow-xs);
}
.woocommerce a.button.wc-backward:hover,
.woocommerce button[name="update_cart"]:hover,
.woocommerce button[name="apply_coupon"]:hover { background: var(--surface-card); color: var(--text-strong); }
.woocommerce .button.disabled,
.woocommerce .button:disabled { opacity: 0.5; cursor: not-allowed; transform: none; box-shadow: none; }

/* --- Prices --------------------------------------------------------------- */
.woocommerce .price,
.lh-price .woocommerce-Price-amount,
.woocommerce-Price-amount { font-family: var(--font-display); color: var(--text-strong); }
.woocommerce .price .woocommerce-Price-amount { font-weight: var(--weight-medium); letter-spacing: -0.01em; }
.woocommerce .price del { opacity: 1; }
.woocommerce .price del .woocommerce-Price-amount { color: var(--text-faint); text-decoration: line-through; font-weight: var(--weight-regular); }
.woocommerce .price ins { text-decoration: none; }
.lh-price--sm .woocommerce-Price-amount { font-size: var(--text-md); }
.lh-product__summary .price .woocommerce-Price-amount { font-size: var(--text-2xl); }

/* --- WC star rating → brass ---------------------------------------------- */
.woocommerce .star-rating span::before,
.woocommerce .star-rating::before,
.woocommerce p.stars a::before { color: var(--accent-brass); }
.woocommerce .star-rating { color: var(--accent-brass); font-size: 1em; }

/* =====================================================================
   SHOP ARCHIVE
   ===================================================================== */
.lh-shop-head { margin-bottom: 8px; }
.lh-shop-head__title { font-family: var(--font-display); font-weight: 300; font-size: clamp(32px, 4.5vw, 60px); color: var(--text-strong); letter-spacing: -0.02em; margin: 8px 0 0; }
.lh-shop-head__intro { font-family: var(--font-body); color: var(--text-muted); max-width: 520px; margin-top: 10px; }
.lh-shop-filters { display: flex; gap: 10px; flex-wrap: wrap; }

.lh-wc .woocommerce-result-count { float: left; font-family: var(--font-body); font-size: var(--text-sm); color: var(--text-muted); margin: 0 0 22px; }
.lh-wc .woocommerce-ordering { float: right; margin: 0 0 22px; }
.lh-wc .woocommerce-ordering select,
.woocommerce-ordering .orderby {
  font-family: var(--font-body); font-size: var(--text-sm); color: var(--text-strong);
  padding: 8px 12px; border-radius: var(--radius-md); border: var(--border-thin) solid var(--border-default);
  background: var(--surface-raised); box-shadow: var(--shadow-inset);
}

/* Product grid */
.woocommerce .lh-wc ul.products,
.lh-wc ul.products,
.lh-wc.columns-4 ul.products,
ul.products {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
  list-style: none; margin: 0; padding: 0; clear: both;
}
.lh-wc ul.products li.product,
.woocommerce ul.products li.product {
  width: auto; margin: 0; float: none; padding: 0; display: flex;
}
.lh-wc ul.products li.product::before { display: none; }

.woocommerce nav.woocommerce-pagination { margin: var(--space-12) 0; text-align: center; }
.woocommerce nav.woocommerce-pagination ul { display: inline-flex; gap: 8px; border: none; }
.woocommerce nav.woocommerce-pagination ul li { border: none; margin: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px;
  border-radius: var(--radius-md); border: var(--border-hairline) solid var(--border-default);
  font-family: var(--font-body); font-size: var(--text-sm); color: var(--text-body); background: var(--surface-raised);
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--accent); color: var(--accent-contrast); border-color: transparent; }

/* =====================================================================
   SINGLE PRODUCT
   ===================================================================== */
.lh-product { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 56px); align-items: start; }
.lh-product__media { position: sticky; top: 88px; }
.lh-product__back { display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-body); font-size: var(--text-sm); color: var(--text-muted); margin-bottom: 18px; text-decoration: none; }
.lh-product__back:hover { color: var(--accent); }
.lh-product__board { aspect-ratio: 4 / 5; border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-xl); border: var(--border-hairline) solid var(--border-subtle); }
.lh-product__gallery { position: relative; }

/* Product gallery: NO outer bounding card. The main image and each thumbnail
   are their own rounded tiles with breathing room between them. The main image
   inherits the elevation the old wrapper used to carry. */
.lh-product .woocommerce-product-gallery { position: relative; }
.lh-product .woocommerce-product-gallery .flex-viewport,
.lh-product .woocommerce-product-gallery > .woocommerce-product-gallery__image { border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-lg, var(--shadow-xl)); border: var(--border-hairline) solid var(--border-subtle); }
.lh-product .woocommerce-product-gallery img { border-radius: var(--radius-xl); display: block; }
.lh-product .flex-control-thumbs { display: flex !important; flex-wrap: wrap; gap: 10px; margin: 20px 0 0 !important; padding: 0; list-style: none; }
.lh-product .flex-control-thumbs li { width: auto !important; margin: 0 !important; padding: 0 !important; float: none !important; flex: 0 0 auto; display: block; }
.lh-product .flex-control-thumbs img { width: 68px !important; height: 68px !important; object-fit: cover; border-radius: var(--radius-md); border: var(--border-hairline) solid var(--border-subtle); cursor: pointer; opacity: 0.55; transition: opacity var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.lh-product .flex-control-thumbs img:hover { opacity: 0.85; }
.lh-product .flex-control-thumbs img.flex-active { opacity: 1; box-shadow: 0 0 0 2px var(--surface-page), 0 0 0 4px var(--accent); }
.lh-product__caption { text-align: center; font-family: var(--font-body); font-size: var(--text-xs); color: var(--text-faint); margin-top: 12px; }
.lh-product .onsale,
.lh-product .lh-sale-flash { position: absolute; top: 14px; left: 14px; z-index: 3; margin: 0; }

.lh-product__summary .product_title { font-family: var(--font-display); font-weight: 400; font-size: clamp(30px, 4vw, 52px); line-height: 1.05; letter-spacing: -0.02em; color: var(--text-strong); margin: 0 0 12px; }
.lh-product__summary .woocommerce-product-rating { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.lh-product__summary .price { display: block; margin-bottom: 18px; }
.lh-product__summary .woocommerce-product-details__short-description { font-family: var(--font-body); font-size: var(--text-base); color: var(--text-body); line-height: 1.6; max-width: 460px; margin-bottom: 24px; }
.lh-product__summary .woocommerce-product-details__short-description p { margin-bottom: var(--space-3); }

/* Variations table → label + wood swatches */
.lh-product__summary table.variations { width: 100%; border-collapse: collapse; margin: 0 0 18px; }
.lh-product__summary table.variations th { text-align: left; vertical-align: middle; font-family: var(--font-body); font-weight: 700; font-size: var(--text-sm); color: var(--text-strong); padding: 8px 12px 8px 0; white-space: nowrap; }
.lh-product__summary table.variations td { padding: 8px 0; }
.lh-product__summary .reset_variations { font-family: var(--font-body); font-size: var(--text-xs); color: var(--text-muted); }
.lh-wood-swatches { display: flex; gap: 16px; flex-wrap: wrap; margin: 4px 0; }
.lh-hidden-select { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Variation dropdowns: non-wood attributes (e.g. Quote Selection / Ribbon Color)
   keep a native <select> — the wood attr is swapped for swatches. Token-based so
   they stay legible in dark mode; custom chevron replaces the native one. */
.lh-product__summary table.variations td select,
.woocommerce .lh-product__summary .variations select {
  -webkit-appearance: none; -moz-appearance: none; appearance: none;
  width: 100%; max-width: 340px; min-height: var(--control-md);
  font-family: var(--font-body); font-size: var(--text-base); color: var(--text-strong);
  background-color: var(--surface-raised);
  border: var(--border-thin) solid var(--border-default); border-radius: var(--radius-md);
  box-shadow: var(--shadow-inset); padding: 10px 40px 10px 14px; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23907a63' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 14px;
}
.lh-product__summary table.variations td select:focus,
.woocommerce .lh-product__summary .variations select:focus { border-color: var(--accent); box-shadow: var(--ring); outline: none; }

/* Add-to-cart row: customizer (any injected block) full-width on top, then qty + button */
.lh-product__summary form.cart,
.lh-product__summary .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin-top: 8px; }
.lh-product__summary form.cart > .quantity,
.lh-product__summary .woocommerce-variation-add-to-cart > .quantity { order: 2; flex: 0 0 auto; }
.lh-product__summary .single_add_to_cart_button { order: 3; flex: 1 1 200px; height: var(--control-lg); font-size: var(--text-md); }
.lh-product__summary form.cart > *:not(.quantity):not(.single_add_to_cart_button),
.lh-product__summary .woocommerce-variation-add-to-cart > *:not(.quantity):not(.single_add_to_cart_button) { order: 1; flex: 1 0 100%; }
.lh-product__summary .single_variation_wrap .woocommerce-variation-price { margin-bottom: 8px; }

/* Customizer-only purchase: on a customizable product (server-side .lh-customizable
   class from the theme) hide the native add-to-cart submit — the qty input and the
   customizer "Customize & buy" (#open_dialog) button stay. Non-customizable products
   keep the normal button. Specificity intentionally beats the generic
   .single_add_to_cart_button rule further down. */
.woocommerce .lh-product.lh-customizable form.cart .single_add_to_cart_button { display: none !important; }

/* Loop tile "Customize" affordance (the whole card is already the <a>). */
.lh-product-card__cta { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; font-family: var(--font-body); font-weight: var(--weight-semibold); font-size: var(--text-sm); color: var(--accent); }

/* Quantity stepper input */
.lh-qty { padding: 0; }
.lh-qty__input { width: 48px; height: var(--control-md); border: none; background: transparent; text-align: center; font-family: var(--font-body); font-weight: var(--weight-semibold); font-size: var(--text-base); color: var(--text-strong); -moz-appearance: textfield; box-shadow: none; }
.lh-qty__input::-webkit-outer-spin-button, .lh-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.lh-qty__input:focus { outline: none; box-shadow: none; }
.lh-qty--readonly { box-shadow: none; }

.lh-product__summary .product_meta { font-family: var(--font-body); font-size: var(--text-sm); color: var(--text-muted); margin-top: 22px; }
.lh-product__summary .product_meta > span { display: block; margin-bottom: 4px; }

.lh-accordions { margin-top: 26px; }

/* Customizer (lazer-dezigner) container — give it room within the summary */
.lh-product__summary lzrdznr-v1,
.lh-product__summary [id^="lzrdznr"] { display: block; width: 100%; }

/* Product tabs (Additional information, Reviews) */
.woocommerce-tabs { margin-top: clamp(40px, 5vw, 72px); }
.woocommerce-tabs ul.tabs { display: flex; gap: 8px; list-style: none; margin: 0 0 24px; padding: 0 0 12px; border-bottom: var(--border-hairline) solid var(--border-subtle); }
.woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce-tabs ul.tabs li { background: none; border: none; border-radius: 0; margin: 0; padding: 0; }
.woocommerce-tabs ul.tabs li a { font-family: var(--font-body); font-weight: var(--weight-semibold); font-size: var(--text-sm); color: var(--text-muted); padding: 6px 0; border-bottom: 2px solid transparent; }
.woocommerce-tabs ul.tabs li.active a { color: var(--text-strong); border-bottom-color: var(--accent); }
.woocommerce-tabs .panel { font-family: var(--font-body); color: var(--text-body); }
.woocommerce-tabs h2 { font-family: var(--font-display); font-weight: 400; }

.related.products, .upsells.products { margin-top: clamp(40px, 5vw, 72px); }
.related.products > h2, .upsells.products > h2 { font-family: var(--font-display); font-weight: 300; font-size: clamp(24px, 3vw, 38px); letter-spacing: -0.02em; margin-bottom: 24px; }

/* Cross-sells (cart) reuse the product grid; brand the heading. */
.cross-sells { margin-top: clamp(40px, 5vw, 72px); }
.cross-sells > h2 { font-family: var(--font-display); font-weight: 300; font-size: clamp(24px, 3vw, 38px); letter-spacing: -0.02em; margin-bottom: 24px; }

/* Reviews */
.woocommerce #reviews h2,
.woocommerce-Reviews-title { font-family: var(--font-display); font-weight: 400; }
.woocommerce #reviews .commentlist { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 16px; }
.woocommerce #reviews .commentlist li { margin: 0; }
.woocommerce #reviews .comment_container { display: block; }
.woocommerce #reviews .commentlist img.avatar { display: none; }
.woocommerce #reviews .comment-text { background: var(--surface-card); border: var(--border-hairline) solid var(--border-subtle); border-radius: var(--radius-lg); padding: var(--space-5); margin: 0 !important; }
.woocommerce #reviews .comment-text p.meta { margin: 0 0 8px; font-size: var(--text-sm); }
.woocommerce #reviews .woocommerce-review__author { font-family: var(--font-display); font-weight: 600; color: var(--text-strong); font-style: normal; }
.woocommerce #reviews .woocommerce-review__published-date { color: var(--text-muted); font-size: var(--text-xs); margin-left: 6px; }
.woocommerce #reviews .woocommerce-review__verified { display: inline-block; margin-left: 8px; font-size: var(--text-2xs); text-transform: uppercase; letter-spacing: var(--tracking-caps); color: var(--accent); }
.woocommerce #reviews .comment-text .description { font-family: var(--font-body); color: var(--text-body); line-height: 1.6; }
.woocommerce #reviews .comment-text .star-rating { margin: 4px 0 8px; }
#review_form_wrapper #respond { background: var(--surface-card); border: var(--border-hairline) solid var(--border-subtle); border-radius: var(--radius-lg); padding: var(--space-6); margin-top: 16px; }
#review_form .comment-reply-title { font-family: var(--font-display); font-weight: 400; font-size: var(--text-2xl); display: block; margin-bottom: 12px; }
#review_form .comment-form-rating label,
#review_form .comment-form-comment label,
#review_form .comment-form-author label,
#review_form .comment-form-email label { font-family: var(--font-body); font-size: var(--text-sm); font-weight: var(--weight-semibold); color: var(--text-strong); display: block; margin-bottom: 6px; }
#review_form input[type="text"],
#review_form input[type="email"],
#review_form textarea {
  width: 100%; font-family: var(--font-body); font-size: var(--text-base); color: var(--text-strong);
  background: var(--surface-raised); border: var(--border-thin) solid var(--border-default);
  border-radius: var(--radius-md); box-shadow: var(--shadow-inset); padding: 10px 14px;
}
#review_form input[type="text"]:focus,
#review_form input[type="email"]:focus,
#review_form textarea:focus { border-color: var(--accent); box-shadow: var(--ring); outline: none; }

/* =====================================================================
   CART
   ===================================================================== */
.woocommerce-cart .lh-wc table.shop_table { border: var(--border-hairline) solid var(--border-subtle); border-radius: var(--radius-lg); border-collapse: separate; border-spacing: 0; overflow: hidden; background: var(--surface-card); }
.woocommerce table.shop_table th { font-family: var(--font-body); font-size: var(--text-2xs); text-transform: uppercase; letter-spacing: var(--tracking-caps); color: var(--text-muted); }
.woocommerce table.shop_table td { vertical-align: middle; }
.woocommerce-cart table.cart img { width: 72px; border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.woocommerce-cart .product-name a { font-family: var(--font-display); font-weight: 500; color: var(--text-strong); }
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-cart .cart_totals { background: var(--surface-card); border: var(--border-hairline) solid var(--border-subtle); border-radius: var(--radius-lg); padding: var(--space-6); }
.woocommerce .cart_totals h2 { font-family: var(--font-display); font-weight: 400; }
.woocommerce .cart_totals .order-total .woocommerce-Price-amount { font-size: var(--text-xl); }
/* Coupon (cart + checkout) — branded input + apply on one row. */
.woocommerce .coupon { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; float: none; width: 100%; max-width: 480px; }
.woocommerce .coupon .input-text#coupon_code,
.woocommerce .coupon input.input-text,
.woocommerce form.checkout_coupon .input-text {
  flex: 1 1 200px; max-width: 260px; height: var(--control-md);
  border: var(--border-thin) solid var(--border-default); border-radius: var(--radius-md);
  background: var(--surface-raised); padding: 0 14px; font-family: var(--font-body); box-shadow: var(--shadow-inset);
}
.woocommerce .coupon .input-text:focus,
.woocommerce form.checkout_coupon .input-text:focus { border-color: var(--accent); box-shadow: var(--ring); outline: none; }
.woocommerce .coupon button[name="apply_coupon"] { height: var(--control-md); }
@media (max-width: 600px) {
  .woocommerce .coupon { flex-direction: column; align-items: stretch; }
  .woocommerce .coupon .input-text#coupon_code,
  .woocommerce .coupon input.input-text { max-width: none; }
  .woocommerce .coupon button[name="apply_coupon"] { width: 100%; }
}
.lh-cart-empty { text-align: center; padding: clamp(48px, 7vw, 96px) 20px; }
.lh-cart-empty [class^="ph-"] { font-size: 44px; color: var(--text-faint); }
.lh-cart-empty p { font-family: var(--font-display); font-style: italic; font-size: var(--text-lg); color: var(--text-muted); margin: 16px 0 24px; }

/* =====================================================================
   CHECKOUT
   ===================================================================== */
.woocommerce form .form-row label { font-family: var(--font-body); font-size: var(--text-sm); font-weight: var(--weight-semibold); color: var(--text-strong); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="password"],
.woocommerce .select2-container .select2-selection {
  font-family: var(--font-body); font-size: var(--text-base); color: var(--text-strong);
  background: var(--surface-raised); border: var(--border-thin) solid var(--border-default);
  border-radius: var(--radius-md); box-shadow: var(--shadow-inset); min-height: var(--control-md); padding: 10px 14px;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus { border-color: var(--accent); box-shadow: var(--ring); outline: none; }
.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2 { float: none; width: 100%; }
.woocommerce-checkout #order_review,
.woocommerce-checkout #order_review_heading { }
.woocommerce-checkout #order_review { background: var(--surface-card); border: var(--border-hairline) solid var(--border-subtle); border-radius: var(--radius-lg); padding: var(--space-6); }
.woocommerce-checkout #payment { background: transparent; border-radius: var(--radius-md); }
.woocommerce-checkout #payment ul.payment_methods { background: var(--surface-sunken); border-radius: var(--radius-md); border: var(--border-hairline) solid var(--border-subtle); }
.woocommerce-checkout #place_order { width: 100%; height: var(--control-lg); font-size: var(--text-md); margin-top: var(--space-4); }

/* Coupon / login toggle forms → cards (checkout). */
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register { background: var(--surface-card); border: var(--border-hairline) solid var(--border-subtle); border-radius: var(--radius-lg); padding: var(--space-6); }
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td { font-family: var(--font-body); }
.woocommerce-checkout-review-order-table thead th { font-size: var(--text-2xs); text-transform: uppercase; letter-spacing: var(--tracking-caps); color: var(--text-muted); }
.woocommerce-checkout-review-order-table .order-total .woocommerce-Price-amount { font-family: var(--font-display); font-size: var(--text-xl); color: var(--text-strong); }

/* =====================================================================
   ORDER RECEIVED / THANK YOU
   ===================================================================== */
.woocommerce-order .woocommerce-order-overview { display: flex; flex-wrap: wrap; gap: 14px; list-style: none; margin: 0 0 var(--space-8); padding: 0; }
.woocommerce-order .woocommerce-order-overview li { flex: 1 1 160px; margin: 0; border: var(--border-hairline) solid var(--border-subtle); border-radius: var(--radius-lg); background: var(--surface-card); padding: var(--space-4) var(--space-5); font-family: var(--font-body); font-size: var(--text-2xs); text-transform: uppercase; letter-spacing: var(--tracking-caps); color: var(--text-muted); }
.woocommerce-order .woocommerce-order-overview li strong { display: block; margin-top: 6px; font-family: var(--font-display); font-size: var(--text-md); text-transform: none; letter-spacing: 0; color: var(--text-strong); }
.woocommerce-order .woocommerce-table--order-details,
.woocommerce-order .woocommerce-customer-details address { border: var(--border-hairline) solid var(--border-subtle); border-radius: var(--radius-lg); background: var(--surface-card); }
.woocommerce-order .woocommerce-customer-details address { font-style: normal; padding: var(--space-5); font-family: var(--font-body); color: var(--text-body); }

/* =====================================================================
   STORE NOTICE
   ===================================================================== */
.woocommerce-store-notice,
p.demo_store { background: var(--accent-soft); color: var(--text-strong); font-family: var(--font-body); font-size: var(--text-sm); text-align: center; padding: 12px 20px; border-bottom: var(--border-hairline) solid var(--border-subtle); }
.woocommerce-store-notice a,
p.demo_store a { color: var(--accent); }

/* =====================================================================
   MY ACCOUNT
   ===================================================================== */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0 0 var(--space-8); padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display: inline-flex; padding: 8px 14px; border-radius: var(--radius-pill);
  font-family: var(--font-body); font-size: var(--text-sm); color: var(--text-body);
  background: var(--surface-raised); border: var(--border-thin) solid var(--border-default); text-decoration: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--accent); color: var(--accent-contrast); border-color: transparent; }
.woocommerce-account .woocommerce-MyAccount-content { font-family: var(--font-body); color: var(--text-body); }

/* Login / register cards. */
.woocommerce-account .woocommerce form.login,
.woocommerce form.register { max-width: 460px; margin: 0 auto; background: var(--surface-card); border: var(--border-hairline) solid var(--border-subtle); border-radius: var(--radius-lg); padding: var(--space-6); }
.woocommerce form.login input.input-text,
.woocommerce form.register input.input-text,
.woocommerce form.login input[type="password"],
.woocommerce form.register input[type="password"] {
  font-family: var(--font-body); font-size: var(--text-base); color: var(--text-strong);
  background: var(--surface-raised); border: var(--border-thin) solid var(--border-default);
  border-radius: var(--radius-md); box-shadow: var(--shadow-inset); min-height: var(--control-md); padding: 10px 14px; width: 100%;
}
.woocommerce form.login input.input-text:focus,
.woocommerce form.register input.input-text:focus,
.woocommerce form.login input[type="password"]:focus,
.woocommerce form.register input[type="password"]:focus { border-color: var(--accent); box-shadow: var(--ring); outline: none; }
/* Dashboard / orders table. */
.woocommerce-MyAccount-content table.woocommerce-orders-table,
.woocommerce-MyAccount-content table.shop_table { border: var(--border-hairline) solid var(--border-subtle); border-radius: var(--radius-lg); border-collapse: separate; border-spacing: 0; overflow: hidden; background: var(--surface-card); width: 100%; }
.woocommerce-MyAccount-content table.woocommerce-orders-table th { font-family: var(--font-body); font-size: var(--text-2xs); text-transform: uppercase; letter-spacing: var(--tracking-caps); color: var(--text-muted); }
.woocommerce-MyAccount-content .woocommerce-orders-table__cell { padding: 14px 16px; vertical-align: middle; font-family: var(--font-body); }
.woocommerce-MyAccount-content .woocommerce-orders-table__cell .order-status,
.woocommerce-MyAccount-content .order-status { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: var(--radius-pill); font-size: var(--text-2xs); text-transform: uppercase; letter-spacing: var(--tracking-caps); background: var(--accent-soft); color: var(--text-strong); }
/* View order / addresses cards. */
.woocommerce-order-details,
.woocommerce-customer-details address,
.woocommerce-Addresses .woocommerce-Address { border: var(--border-hairline) solid var(--border-subtle); border-radius: var(--radius-lg); background: var(--surface-card); padding: var(--space-5); }
.woocommerce-customer-details address { font-style: normal; font-family: var(--font-body); color: var(--text-body); }
.woocommerce-MyAccount-content p { color: var(--text-body); }

/* =====================================================================
   NOTICES
   ===================================================================== */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews {
  position: relative;
  font-family: var(--font-body); border-radius: var(--radius-md); border: none; border-left: 3px solid var(--accent);
  background: var(--accent-soft); color: var(--text-strong);
  padding: 14px 18px 14px 48px; box-shadow: var(--shadow-xs);
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before, .woocommerce-noreviews::before {
  position: absolute !important; top: 50% !important; left: 16px !important;
  transform: translateY(-50%) !important; margin: 0 !important;
  font-size: 1.1em; line-height: 1; color: var(--accent);
}
.woocommerce-error { background: var(--danger-soft); border-left-color: var(--danger); }
.woocommerce-error::before { color: var(--danger); }
.woocommerce-info { background: var(--info-soft); border-left-color: var(--info); }
.woocommerce-info::before { color: var(--info); }

/* =====================================================================
   MINI-CART (inside the slide-over drawer)
   ===================================================================== */
.lh-drawer .woocommerce-mini-cart { list-style: none; margin: 0; padding: 0; }
.lh-drawer .woocommerce-mini-cart-item { display: grid; grid-template-columns: 56px 1fr auto; gap: 12px; align-items: start; padding: 16px 0; border-bottom: var(--border-hairline) solid var(--border-subtle); position: relative; }
.lh-drawer .woocommerce-mini-cart-item a:not(.remove) { font-family: var(--font-display); font-weight: 500; font-size: var(--text-base); color: var(--text-strong); text-decoration: none; grid-column: 2; }
.lh-drawer .woocommerce-mini-cart-item img { grid-column: 1; grid-row: 1 / span 2; width: 56px; height: 70px; object-fit: cover; border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.lh-drawer .woocommerce-mini-cart-item .quantity { grid-column: 2; font-family: var(--font-body); font-size: var(--text-sm); color: var(--text-muted); }
.lh-drawer .woocommerce-mini-cart-item .remove { position: absolute; top: 16px; right: 0; color: var(--text-faint); font-size: 18px; text-decoration: none; }
.lh-drawer .woocommerce-mini-cart-item .remove:hover { color: var(--danger); }
.lh-drawer .woocommerce-mini-cart__total { display: flex; justify-content: space-between; align-items: baseline; padding: 16px 0 8px; font-family: var(--font-body); color: var(--text-muted); }
.lh-drawer .woocommerce-mini-cart__total .woocommerce-Price-amount { font-family: var(--font-display); font-size: var(--text-xl); color: var(--text-strong); }
.lh-drawer .woocommerce-mini-cart__buttons { display: flex; flex-direction: column; gap: 10px; margin: 8px 0 0; padding: 0; }
.lh-drawer .woocommerce-mini-cart__buttons .button { width: 100%; }
.lh-drawer .woocommerce-mini-cart__buttons .checkout { order: -1; }
.lh-drawer .woocommerce-mini-cart__empty-message { text-align: center; color: var(--text-muted); padding: 48px 0; }

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width: 1100px) {
  .lh-wc ul.products, ul.products { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 860px) {
  .lh-product { grid-template-columns: 1fr; }
  .lh-product__media { position: static; max-width: 460px; }
}
@media (max-width: 600px) {
  .lh-wc ul.products, ul.products { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .lh-wc .woocommerce-result-count, .lh-wc .woocommerce-ordering { float: none; display: block; }
}

/* Engraved-board fallback thumbnails in cart contexts */
.lh-drawer .woocommerce-mini-cart-item .lh-engraved { grid-column: 1; grid-row: 1 / span 2; width: 56px; height: 70px; min-height: 0; border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.woocommerce-cart table.cart td.product-thumbnail .lh-engraved { width: 72px; height: 90px; min-height: 0; border-radius: var(--radius-md); display: inline-block; }

/* Beat WooCommerce's default purple .alt buttons everywhere (cart/checkout pages
   render outside the .lh-wc wrapper, so scope on body.woocommerce for specificity). */
body.woocommerce a.button.alt,
body.woocommerce button.button.alt,
body.woocommerce input.button.alt,
body.woocommerce .checkout-button,
body.woocommerce #place_order,
body.woocommerce-page #place_order { background: var(--accent); color: var(--accent-contrast); border-color: transparent; }
body.woocommerce a.button.alt:hover,
body.woocommerce button.button.alt:hover,
body.woocommerce input.button.alt:hover,
body.woocommerce .checkout-button:hover,
body.woocommerce #place_order:hover { background: var(--accent-hover); color: var(--accent-contrast); }

/* WooCommerce hardcodes .summary/.woocommerce-product-gallery to width:48%;float
   which, inside our 2-col grid, leaves the summary stranded at ~half its cell.
   Force grid items to fill their tracks. */
.lh-product .summary,
.lh-product__summary,
.lh-product .woocommerce-product-gallery {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
}

/* WooCommerce adds clearfix ::before/::after to ul.products. In a CSS grid those
   pseudo-elements become GRID ITEMS — ::before steals the first cell (empty
   leading slot) and ::after a trailing one. Remove them. */
ul.products::before,
ul.products::after,
.lh-wc ul.products::before,
.lh-wc ul.products::after { content: none !important; display: none !important; }

/* Force the brand button look on WooCommerce's primary actions. WC ships highly
   specific, em-sized defaults (purple, 1.25em text, 1em padding) that shift
   across versions and out-specify ordinary overrides — so use !important. */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce .checkout-button,
.woocommerce #place_order,
.woocommerce .single_add_to_cart_button {
  background: var(--accent) !important;
  color: var(--accent-contrast) !important;
  border: var(--border-thin) solid transparent !important;
  border-radius: var(--radius-md) !important;
  font-family: var(--font-body) !important;
  font-weight: var(--weight-semibold) !important;
  font-size: var(--text-base) !important;
  letter-spacing: 0.01em !important;
  text-transform: none !important;
  text-shadow: none !important;
  box-shadow: var(--shadow-sm) !important;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce .checkout-button:hover,
.woocommerce #place_order:hover,
.woocommerce .single_add_to_cart_button:hover {
  background: var(--accent-hover) !important;
  color: var(--accent-contrast) !important;
}
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce .single_add_to_cart_button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  min-height: var(--control-md) !important;
  padding: 0 22px !important;
  line-height: 1.1 !important;
}
.woocommerce .checkout-button,
.woocommerce #place_order {
  display: flex !important;
  width: 100% !important;
  align-items: center !important;
  justify-content: center !important;
  height: var(--control-lg) !important;
  padding: 0 24px !important;
  font-size: var(--text-md) !important;
}
