/* ==========================================================================
   NHÃ€ Háº T Ã‰TOFFE â€” v3.0 WOOCOMMERCE
   Shop archive, single product, cart, checkout, thank-you (+ VietQR),
   My Account, notices, and third-party integrations
   (Filter Everything Pro, Variation Swatches, Vietnam Checkout).

   Depends on: tokens.css, core.css

   Conventions in this file:
     - Every value comes from a token. No bare hex.
     - Selectors for WooCommerce core classes are written LOWERCASE
       (`.woocommerce-cart-form`), because WordPress passes class attributes
       through sanitize_html_class() / wp_kses_post(), which lowercases them.
       Where a case-insensitive match is safer, `[class*="..." i]` is used.
     - `!important` is not used anywhere. v2.4.6 carried 349 of them in this
       one file; that is precisely why it kept fighting itself.
   ========================================================================== */

/* ==========================================================================
   1. LAYOUT PRIMITIVES
   ========================================================================== */
.nhe-woo-main,
.nhe-woo-content { min-width: 0; }

.nhe-woo-single-wrap,
.nhe-woo-page { padding-block: clamp(24px, 4vw, 56px); }

/* Shop hero — editorial, centered Apple Liquid Glass style */
.nhe-woo-hero {
  padding-block: clamp(36px, 5vw, 60px) clamp(28px, 4vw, 44px);
  background:
    radial-gradient(120% 100% at 50% 0%, rgba(193, 154, 107, 0.14), transparent 70%),
    linear-gradient(180deg, #FAF8F5 0%, #F4EDE4 100%);
  border-bottom: 1px solid var(--nhe-line);
}
.nhe-woo-hero__inner {
  max-width: 820px;
  margin-inline: auto;
  text-align: center;
}
.nhe-woo-hero__title {
  font-family: var(--nhe-font-display);
  font-size: var(--nhe-fs-5xl);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.025em;
  margin: 0 0 var(--nhe-s-3);
  color: var(--nhe-espresso-900);
}
.nhe-woo-hero__lede {
  font-size: var(--nhe-fs-lg);
  line-height: var(--nhe-lh-relaxed);
  color: var(--nhe-ink-muted);
  max-width: 64ch;
  margin: 0 auto var(--nhe-s-5);
}
.nhe-woo-hero__meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--nhe-s-4);
  flex-wrap: wrap;
}
.nhe-woo-hero__meta .nhe-btn--accent {
  background: var(--nhe-espresso-800);
  color: #FFFFFF !important;
  border-radius: var(--nhe-r-pill);
  padding: 12px 26px;
  font-weight: 600;
  box-shadow: 0 8px 20px rgba(74, 59, 50, 0.2);
}
.nhe-woo-hero__meta .nhe-btn--accent:hover {
  background: var(--nhe-espresso-900);
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(74, 59, 50, 0.28);
}
.nhe-woo-hero__hint { font-size: var(--nhe-fs-sm); color: var(--nhe-ink-faint); }

/* Hide duplicate WooCommerce core archive title */
header.woocommerce-products-header,
.woocommerce-products-header {
  display: none !important;
}

/* Shop grid: filter rail + product column */
.nhe-shop-layout-container { padding-block: clamp(24px, 3.5vw, 44px); }
.nhe-shop-layout {
  display: grid;
  grid-template-columns: 268px minmax(0, 1fr);
  gap: clamp(24px, 3.2vw, 48px);
  max-width: var(--nhe-maxw);
  margin-inline: auto;
  padding-inline: var(--nhe-gutter);
  align-items: start;
}
.nhe-shop-layout.no-sidebar { grid-template-columns: minmax(0, 1fr); }
.nhe-shop-main { min-width: 0; }

/* ==========================================================================
   2. FILTER RAIL â€” Filter Everything Pro
   ========================================================================== */
.nhe-shop-sidebar { min-width: 0; }

.nhe-shop-sidebar__inner {
  position: sticky;
  top: calc(var(--nhe-header-h-compact) + 16px);
  max-height: calc(100dvh - var(--nhe-header-h-compact) - 32px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: var(--nhe-s-5);
  border-radius: var(--nhe-r-lg);
  background: var(--nhe-glass-reg-bg);
  -webkit-backdrop-filter: blur(var(--nhe-glass-reg-blur)) saturate(var(--nhe-glass-reg-sat));
  backdrop-filter: blur(var(--nhe-glass-reg-blur)) saturate(var(--nhe-glass-reg-sat));
  border: 1px solid rgba(255, 255, 255, 0.6);
  box-shadow: var(--nhe-shadow-md), var(--nhe-glass-edge);
  scrollbar-width: thin;
}

.nhe-shop-sidebar__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--nhe-s-3);
  padding-bottom: var(--nhe-s-4);
  margin-bottom: var(--nhe-s-4);
  border-bottom: 1px solid var(--nhe-line);
}
.nhe-shop-sidebar__title {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: var(--nhe-fs-2xs);
  font-weight: 700;
  letter-spacing: var(--nhe-tracking-wider);
  text-transform: uppercase;
  color: var(--nhe-brass-700);
}
.nhe-shop-sidebar__close {
  display: none; /* desktop: no close button needed */
  align-items: center;
  justify-content: center;
  width: 32px; height: 32px;
  border-radius: var(--nhe-r-pill);
  background: rgba(74, 59, 50, 0.06);
  color: var(--nhe-espresso-600);
}
.nhe-shop-sidebar__close:hover { background: var(--nhe-espresso-700); color: var(--nhe-cream-100); }

/* Mobile filter toggle â€” hidden on desktop */
.nhe-shop-toolbar { display: none; margin-bottom: var(--nhe-s-4); }
.nhe-shop-filter-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 20px;
  border-radius: var(--nhe-r-pill);
  background: var(--nhe-glass-thin-bg);
  -webkit-backdrop-filter: blur(var(--nhe-glass-thin-blur)) saturate(var(--nhe-glass-thin-sat));
  backdrop-filter: blur(var(--nhe-glass-thin-blur)) saturate(var(--nhe-glass-thin-sat));
  border: 1px solid rgba(255, 255, 255, 0.6);
  box-shadow: var(--nhe-shadow-sm), var(--nhe-glass-edge);
  font-size: var(--nhe-fs-xs);
  font-weight: 600;
  letter-spacing: var(--nhe-tracking-wide);
  text-transform: uppercase;
  color: var(--nhe-espresso-700);
}
.nhe-shop-filter-toggle:hover { background: #fff; }

/* Scrim behind the mobile filter rail */
.nhe-shop-scrim {
  position: fixed;
  inset: 0;
  z-index: calc(var(--nhe-z-drawer) - 1);
  background: rgba(36, 28, 23, 0.44);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
}

/* ---- Filter Everything widget internals -------------------------------- */
.nhe-filter-widget + .nhe-filter-widget { margin-top: var(--nhe-s-5); }

.nhe-filter-widget-title,
.wpc-filter-header h4,
.wpc-filter-title {
  font-family: var(--nhe-font-body);
  font-size: var(--nhe-fs-2xs);
  font-weight: 700;
  letter-spacing: var(--nhe-tracking-wider);
  text-transform: uppercase;
  color: var(--nhe-espresso-700);
  margin: 0 0 var(--nhe-s-3);
}

.wpc-filters-widget,
.wpc-filter-set { min-width: 0; }

.wpc-filter-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--nhe-s-2);
  cursor: pointer;
}

.nhe-filter-widget ul,
.wpc-filters-ul,
.wpc-filters-list {
  list-style: none;
  margin: 0 0 var(--nhe-s-4);
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.wpc-checkbox-item,
.wpc-radio-item,
.wpc-filters-ul li {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: var(--nhe-fs-sm);
  line-height: 1.45;
  color: var(--nhe-espresso-500);
  transition: color var(--nhe-dur-fast) var(--nhe-ease-out);
}
.wpc-checkbox-item:hover,
.wpc-radio-item:hover,
.wpc-filters-ul li:hover { color: var(--nhe-espresso-800); }

.wpc-checkbox-item label,
.wpc-radio-item label,
.wpc-filters-ul li label {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  cursor: pointer;
  width: 100%;
}

.wpc-filter-widget input[type='checkbox'],
.wpc-filter-widget input[type='radio'],
.wpc-filters-widget input[type='checkbox'],
.wpc-filters-widget input[type='radio'] {
  width: 17px;
  height: 17px;
  min-height: 0;
  flex-shrink: 0;
  accent-color: var(--nhe-brass-600);
  cursor: pointer;
}

.wpc-filter-count {
  margin-left: auto;
  font-size: var(--nhe-fs-2xs);
  font-variant-numeric: tabular-nums;
  color: var(--nhe-ink-faint);
}

/* Colour / image swatch terms */
.wpc-chip,
.wpc-term-swatch,
.wpc-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 5px 12px 5px 6px;
  border-radius: var(--nhe-r-pill);
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid var(--nhe-line);
  font-size: var(--nhe-fs-xs);
  color: var(--nhe-espresso-500);
  transition: border-color var(--nhe-dur-fast) var(--nhe-ease-out),
              background-color var(--nhe-dur-fast) var(--nhe-ease-out);
}
.wpc-chip:hover,
.wpc-chip.active,
.wpc-term-swatch:hover,
.wpc-term-swatch.active,
.wpc-filter-chip:hover {
  border-color: var(--nhe-brass-500);
  background: #fff;
  color: var(--nhe-espresso-800);
}
.wpc-term-swatch img,
.wpc-chip img { width: 22px; height: 22px; border-radius: 50%; object-fit: cover; }

/* Active filter chips row */
.wpc-chips-wrapper {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  margin-bottom: var(--nhe-s-4);
}
.wpc-chip-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 8px 5px 12px;
  border-radius: var(--nhe-r-pill);
  background: var(--nhe-brass-100);
  border: 1px solid var(--nhe-brass-300);
  font-size: var(--nhe-fs-2xs);
  font-weight: 600;
  color: var(--nhe-brass-700);
}
.wpc-chip-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 17px; height: 17px;
  border-radius: 50%;
  background: rgba(140, 106, 66, 0.2);
  color: var(--nhe-brass-700);
  font-size: 11px;
  line-height: 1;
}
.wpc-chip-remove:hover { background: var(--nhe-brass-600); color: #fff; }

/* Reset / apply */
.wpc-filters-reset-button,
.wpc-filters-reset-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 42px;
  border-radius: var(--nhe-r-pill);
  border: 1px solid var(--nhe-line-strong);
  background: transparent;
  font-size: var(--nhe-fs-xs);
  font-weight: 600;
  letter-spacing: var(--nhe-tracking-wide);
  text-transform: uppercase;
  color: var(--nhe-ink-muted);
  transition: background-color var(--nhe-dur-fast) var(--nhe-ease-out),
              color var(--nhe-dur-fast) var(--nhe-ease-out);
}
.wpc-filters-reset-button:hover,
.wpc-filters-reset-item:hover {
  background: var(--nhe-espresso-700);
  border-color: var(--nhe-espresso-700);
  color: var(--nhe-cream-100);
}

/* Range slider â€” Filter Everything uses noUiSlider */
.wpc-filters-range-slider { margin: var(--nhe-s-5) 0; }
.noUi-target {
  height: 4px;
  border: 0;
  border-radius: var(--nhe-r-pill);
  background: var(--nhe-cream-300);
  box-shadow: none;
}
.noUi-connect { background: var(--nhe-brass-500); }
.noUi-handle {
  width: 20px; height: 20px;
  top: -9px;
  right: -10px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--nhe-brass-500);
  box-shadow: var(--nhe-shadow-sm);
  cursor: grab;
}
.noUi-handle::before,
.noUi-handle::after { display: none; }
.noUi-handle:active { cursor: grabbing; }

.wpc-filter-range-inputs {
  display: flex;
  align-items: center;
  gap: var(--nhe-s-2);
  margin-top: var(--nhe-s-3);
}
.wpc-filter-range-inputs input {
  min-height: 38px;
  padding: 6px 10px;
  font-size: var(--nhe-fs-xs);
  text-align: center;
}

/* Live-ajax busy state */
.wpc-filters-widget-wrapper.loading,
.nhe-woo-products.loading { opacity: 0.55; pointer-events: none; }

/* ==========================================================================
   3. PRODUCT LOOP
   ========================================================================== */
.nhe-woo-products {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(var(--nhe-cols, 3), minmax(0, 1fr));
  gap: clamp(14px, 1.8vw, 26px);
}
.nhe-woo-products.columns-2 { --nhe-cols: 2; }
.nhe-woo-products.columns-3 { --nhe-cols: 3; }
.nhe-woo-products.columns-4 { --nhe-cols: 4; }
.nhe-woo-products.columns-5 { --nhe-cols: 5; }
.nhe-woo-products.columns-6 { --nhe-cols: 6; }

/* Toolbar: result count + ordering */
.nhe-woo-toolbar,
.woocommerce-result-count,
.woocommerce-ordering { margin: 0; }

.nhe-woo-result-count,
.woocommerce-result-count {
  font-size: var(--nhe-fs-xs);
  color: var(--nhe-ink-faint);
  margin: 0 0 var(--nhe-s-4);
}

.woocommerce-ordering { margin-bottom: var(--nhe-s-4); }
.woocommerce-ordering select {
  min-height: 42px;
  padding: 8px 36px 8px 14px;
  font-size: var(--nhe-fs-xs);
  border-radius: var(--nhe-r-pill);
  background-color: var(--nhe-canvas-raised);
}

@media (min-width: 769px) {
  .woocommerce-result-count,
  .woocommerce-ordering { display: inline-block; }
  .woocommerce-ordering { float: right; margin-top: -6px; }
}

/* ---- Product card ------------------------------------------------------- */
.nhe-woo-products .product {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.nhe-woo-products .product .woocommerce-loop-product__link { display: block; color: inherit; }

.nhe-woo-products .product img,
.nhe-woo-products .product .attachment-woocommerce_thumbnail {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--nhe-r-md);
  background: var(--nhe-cream-200);
  transition: transform var(--nhe-dur-slow) var(--nhe-ease-out);
}
@media (hover: hover) and (pointer: fine) {
  .nhe-woo-products .product:hover img { transform: scale(1.035); }
}

.nhe-woo-products .product .woocommerce-loop-product__title,
.nhe-woo-products .product h2 {
  font-family: var(--nhe-font-body);
  font-size: var(--nhe-fs-sm);
  font-weight: 600;
  line-height: 1.45;
  color: var(--nhe-espresso-700);
  margin: var(--nhe-s-3) 0 4px;
  letter-spacing: 0;
}
.nhe-woo-products .product:hover .woocommerce-loop-product__title { color: var(--nhe-brass-700); }

.nhe-woo-products .product .price,
.nhe-woo-price {
  font-family: var(--nhe-font-body);
  font-size: var(--nhe-fs-md);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--nhe-espresso-800);
  margin: 0;
  display: block;
}
.nhe-woo-products .product .price del,
.nhe-woo-price del {
  font-size: var(--nhe-fs-xs);
  font-weight: 400;
  color: var(--nhe-ink-faint);
  margin-right: 6px;
}
.nhe-woo-products .product .price ins,
.nhe-woo-price ins { text-decoration: none; color: var(--nhe-clay-500); }

.nhe-woo-products .product .button,
.nhe-woo-products .product .add_to_cart_button,
.nhe-woo-products .product .single_add_to_cart_button {
  margin-top: var(--nhe-s-3);
  align-self: flex-start;
}

/* Sale / stock flags */
.nhe-woo-products .product .onsale,
.nhe-woo-products .product .nhe-woo-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
  padding: 4px 11px;
  border-radius: var(--nhe-r-pill);
  background: var(--nhe-espresso-700);
  color: var(--nhe-cream-100);
  font-size: var(--nhe-fs-2xs);
  font-weight: 700;
  letter-spacing: var(--nhe-tracking-wide);
  text-transform: uppercase;
}
.nhe-woo-products .product .out-of-stock {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  padding: 4px 11px;
  border-radius: var(--nhe-r-pill);
  background: rgba(36, 28, 23, 0.82);
  color: var(--nhe-cream-100);
  font-size: var(--nhe-fs-2xs);
  font-weight: 600;
}

/* Star rating */
.star-rating {
  position: relative;
  display: inline-block;
  overflow: hidden;
  height: 1em;
  width: 5.4em;
  font-size: var(--nhe-fs-xs);
  line-height: 1;
  font-family: star;
  color: var(--nhe-brass-500);
  letter-spacing: 0;
}
.star-rating::before { content: 'sssss'; position: absolute; inset: 0; opacity: 0.3; }
.star-rating span { position: absolute; inset: 0; overflow: hidden; padding-top: 1.5em; }
.star-rating span::before { content: 'SSSSS'; position: absolute; top: 0; left: 0; }

.woocommerce-product-rating {
  display: flex;
  align-items: center;
  gap: var(--nhe-s-3);
  font-size: var(--nhe-fs-xs);
  color: var(--nhe-ink-muted);
  margin-bottom: var(--nhe-s-3);
}

/* Empty states */
.woocommerce-no-products-found,
.nhe-woo-empty {
  padding: clamp(32px, 5vw, 64px) var(--nhe-s-6);
  border-radius: var(--nhe-r-lg);
  background: var(--nhe-canvas-raised);
  border: 1px dashed var(--nhe-line-strong);
  text-align: center;
}
.nhe-woo-empty__title,
.woocommerce-no-products-found h2 {
  font-family: var(--nhe-font-display);
  font-size: var(--nhe-fs-2xl);
  margin: 0 0 var(--nhe-s-2);
  color: var(--nhe-espresso-800);
}
.nhe-woo-empty p { color: var(--nhe-ink-muted); margin: 0 auto var(--nhe-s-5); max-width: 46ch; }

/* Pagination */
.nhe-woo-pagination,
.woocommerce-pagination { margin-top: clamp(28px, 4vw, 52px); }
.woocommerce-pagination ul {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  list-style: none;
  margin: 0;
  padding: 0;
  border: 0;
}
.woocommerce-pagination ul li { border: 0; margin: 0; overflow: visible; }
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 42px;
  padding: 0 12px;
  border-radius: var(--nhe-r-pill);
  border: 1px solid var(--nhe-line);
  background: var(--nhe-canvas-raised);
  font-size: var(--nhe-fs-sm);
  font-weight: 600;
  color: var(--nhe-espresso-600);
  transition: background-color var(--nhe-dur-fast) var(--nhe-ease-out),
              color var(--nhe-dur-fast) var(--nhe-ease-out),
              border-color var(--nhe-dur-fast) var(--nhe-ease-out);
}
.woocommerce-pagination ul li a:hover,
.woocommerce-pagination ul li span.current {
  background: var(--nhe-espresso-700);
  border-color: var(--nhe-espresso-700);
  color: var(--nhe-cream-100);
}

/* Breadcrumb */
.nhe-woo-breadcrumb,
.woocommerce-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  font-size: var(--nhe-fs-xs);
  color: var(--nhe-ink-faint);
  margin: 0 0 var(--nhe-s-4);
}
.woocommerce-breadcrumb a { color: var(--nhe-ink-muted); }
.woocommerce-breadcrumb a:hover { color: var(--nhe-brass-700); }
.nhe-woo-breadcrumb__sep { opacity: 0.45; }

/* ==========================================================================
   4. SINGLE PRODUCT
   ========================================================================== */
.nhe-woo-single {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: clamp(28px, 4vw, 64px);
  align-items: start;
  margin-bottom: clamp(40px, 6vw, 88px);
}

/* ---- Gallery ------------------------------------------------------------ */
.woocommerce-product-gallery { position: relative; width: 100%; }
.woocommerce-product-gallery__wrapper {
  margin: 0;
  border-radius: var(--nhe-r-lg);
  overflow: hidden;
  background: var(--nhe-cream-200);
}
.woocommerce-product-gallery__image img { width: 100%; height: auto; border-radius: var(--nhe-r-lg); }

.flex-control-thumbs {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
  gap: 10px;
  list-style: none;
  margin: var(--nhe-s-3) 0 0;
  padding: 0;
}
.flex-control-thumbs li { width: auto; margin: 0; float: none; }
.flex-control-thumbs img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--nhe-r-sm);
  border: 1.5px solid transparent;
  opacity: 0.72;
  cursor: pointer;
  transition: opacity var(--nhe-dur-fast) var(--nhe-ease-out),
              border-color var(--nhe-dur-fast) var(--nhe-ease-out);
}
.flex-control-thumbs img:hover,
.flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--nhe-brass-500); }

.woocommerce-product-gallery__trigger {
  position: absolute;
  top: 12px; right: 12px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px; height: 40px;
  border-radius: var(--nhe-r-pill);
  background: var(--nhe-glass-thin-bg);
  -webkit-backdrop-filter: blur(var(--nhe-glass-thin-blur)) saturate(var(--nhe-glass-thin-sat));
  backdrop-filter: blur(var(--nhe-glass-thin-blur)) saturate(var(--nhe-glass-thin-sat));
  border: 1px solid rgba(255, 255, 255, 0.65);
  box-shadow: var(--nhe-shadow-sm), var(--nhe-glass-edge);
  font-size: 0;
}
.woocommerce-product-gallery__trigger::before {
  content: '';
  width: 15px; height: 15px;
  border: 2px solid var(--nhe-espresso-600);
  border-radius: 50%;
}
.woocommerce-product-gallery__trigger::after {
  content: '';
  position: absolute;
  width: 7px; height: 2px;
  background: var(--nhe-espresso-600);
  transform: rotate(45deg) translate(9px, 5px);
  border-radius: 2px;
}

/* ---- Summary ------------------------------------------------------------ */
.nhe-woo-summary,
.entry-summary { min-width: 0; }

.product_title,
.nhe-woo-title {
  font-family: var(--nhe-font-display);
  font-size: var(--nhe-fs-4xl);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -0.025em;
  color: var(--nhe-espresso-900);
  margin: 0 0 var(--nhe-s-3);
}

.single-product .price,
.nhe-woo-summary .price {
  font-size: var(--nhe-fs-3xl);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--nhe-espresso-900);
  margin: 0 0 var(--nhe-s-4);
  display: flex;
  align-items: baseline;
  gap: var(--nhe-s-3);
}
.single-product .price del { font-size: var(--nhe-fs-lg); font-weight: 400; color: var(--nhe-ink-faint); }
.single-product .price ins { text-decoration: none; color: var(--nhe-clay-500); }

.woocommerce-product-details__short-description {
  font-size: var(--nhe-fs-md);
  line-height: var(--nhe-lh-relaxed);
  color: var(--nhe-espresso-500);
  margin-bottom: var(--nhe-s-5);
}

/* ---- Add-to-cart form --------------------------------------------------- */
form.cart {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: var(--nhe-s-3);
  margin: 0 0 var(--nhe-s-5);
  padding: var(--nhe-s-5);
  border-radius: var(--nhe-r-lg);
  background: var(--nhe-canvas-raised);
  border: 1px solid var(--nhe-line);
}
form.cart.variations_form { display: block; }

.quantity {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--nhe-line-strong);
  border-radius: var(--nhe-r-pill);
  background: var(--nhe-canvas-raised);
  overflow: hidden;
  height: 52px;
}
.quantity input[type='number'],
.quantity .qty {
  width: 58px;
  min-height: 0;
  height: 100%;
  padding: 0 4px;
  border: 0;
  border-radius: 0;
  background: transparent;
  text-align: center;
  font-size: var(--nhe-fs-md);
  font-weight: 600;
  -moz-appearance: textfield;
}
.quantity input[type='number']::-webkit-outer-spin-button,
.quantity input[type='number']::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.single_add_to_cart_button,
button[name='add-to-cart'],
.nhe-woo-variation-button {
  flex: 1 1 auto;
  min-height: 52px;
  padding: 0 30px;
  border: 0;
  border-radius: var(--nhe-r-pill);
  background: linear-gradient(140deg, var(--nhe-brass-400), var(--nhe-brass-600));
  color: #fff;
  font-family: var(--nhe-font-body);
  font-size: var(--nhe-fs-sm);
  font-weight: 700;
  letter-spacing: var(--nhe-tracking-wide);
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: var(--nhe-shadow-accent);
  transition: transform var(--nhe-dur-fast) var(--nhe-ease-spring),
              box-shadow var(--nhe-dur-base) var(--nhe-ease-out);
}
.single_add_to_cart_button:hover { transform: translateY(-1.5px); box-shadow: 0 16px 36px -12px rgba(193, 154, 107, 0.62); }
.single_add_to_cart_button:active { transform: translateY(0) scale(0.99); }
.single_add_to_cart_button.disabled,
.single_add_to_cart_button[disabled] { opacity: 0.5; pointer-events: none; }

/* ---- Variations: native selects + BOTH swatch plugins -------------------
   Variation Swatches for WooCommerce (Emran Ahmed, slug
   woo-variation-swatches) emits .variable-items-wrapper / .variable-item.
   The CartFlows-era 1.0.14 release uses the same markup. Both are covered,
   so nothing here depends on which one is active.                          */
.variations_form .variations { width: 100%; margin: 0 0 var(--nhe-s-4); border: 0; }
.variations_form .variations tr { display: block; margin-bottom: var(--nhe-s-4); }
.variations_form .variations th,
.variations_form .variations td {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
}
.variations_form .variations .label,
.variations_form .variations th.label label {
  display: block;
  font-size: var(--nhe-fs-2xs);
  font-weight: 700;
  letter-spacing: var(--nhe-tracking-wider);
  text-transform: uppercase;
  color: var(--nhe-brass-700);
  margin-bottom: var(--nhe-s-2);
}
.variations_form .variations select { width: 100%; max-width: 340px; min-height: 48px; }

/* Select2 (used by some swatch / Vietnam Checkout configurations) */
.select2-container { max-width: 100%; }
.select2-container--default .select2-selection--single {
  height: 48px;
  border: 1px solid var(--nhe-line-strong);
  border-radius: var(--nhe-r-sm);
  background: var(--nhe-canvas-raised);
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 46px;
  padding-left: 15px;
  color: var(--nhe-ink);
  font-size: var(--nhe-fs-md);
}
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; right: 8px; }
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--nhe-brass-500);
  box-shadow: var(--nhe-focus-ring);
}
.select2-dropdown {
  border: 1px solid var(--nhe-line-strong);
  border-radius: var(--nhe-r-sm);
  box-shadow: var(--nhe-shadow-lg);
  background: var(--nhe-canvas-raised);
  overflow: hidden;
}
.select2-container--default .select2-results__option {
  padding: 9px 15px;
  font-size: var(--nhe-fs-sm);
  color: var(--nhe-espresso-600);
}
.select2-container--default .select2-results__option--highlighted,
.select2-container--default .select2-results__option[aria-selected='true'] {
  background: var(--nhe-brass-100);
  color: var(--nhe-brass-700);
}
.select2-search--dropdown .select2-search__field {
  min-height: 42px;
  border: 1px solid var(--nhe-line-strong);
  border-radius: var(--nhe-r-sm);
  padding: 8px 12px;
}

/* Swatch pills */
.variable-items-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.variable-item {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 3px;
  border-radius: var(--nhe-r-sm);
  border: 1.5px solid var(--nhe-line-strong);
  background: var(--nhe-canvas-raised);
  cursor: pointer;
  transition: border-color var(--nhe-dur-fast) var(--nhe-ease-out),
              box-shadow var(--nhe-dur-fast) var(--nhe-ease-out),
              transform var(--nhe-dur-fast) var(--nhe-ease-out);
}
.variable-item:hover { border-color: var(--nhe-brass-400); transform: translateY(-1px); }
.variable-item.selected { border-color: var(--nhe-brass-600); box-shadow: 0 0 0 1px var(--nhe-brass-600); }
.variable-item.disabled,
.variable-item.variable-item-disabled { opacity: 0.38; cursor: not-allowed; text-decoration: line-through; }
.variable-item .variable-item-span,
.variable-item .variable-item-contents {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--nhe-fs-xs);
  font-weight: 600;
  color: var(--nhe-espresso-600);
}
.variable-item.button-variable-item .variable-item-contents { padding: 0 12px; }
.variable-item.color-variable-item .variable-item-span-color,
.variable-item.image-variable-item img {
  width: 36px; height: 36px;
  border-radius: var(--nhe-r-xs);
  object-fit: cover;
  display: block;
}
.variable-item .woo-variation-swatches-tooltip-container { display: none; }
.wvs-archive-variation-wrapper { margin: 0; }

.reset_variations {
  display: inline-block;
  margin-top: var(--nhe-s-3);
  font-size: var(--nhe-fs-xs);
  font-weight: 600;
  color: var(--nhe-ink-muted);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.reset_variations:hover { color: var(--nhe-clay-500); }

.woocommerce-variation-price { margin: var(--nhe-s-3) 0; }
.woocommerce-variation-price .price { font-size: var(--nhe-fs-2xl); font-weight: 600; }
.woocommerce-variation-availability { font-size: var(--nhe-fs-xs); color: var(--nhe-ink-muted); }
.woocommerce-variation-availability .stock.out-of-stock { color: var(--nhe-danger); }
.woocommerce-variation-description { font-size: var(--nhe-fs-sm); color: var(--nhe-ink-muted); margin-bottom: var(--nhe-s-3); }
.woocommerce-variation.single_variation { margin-bottom: var(--nhe-s-3); }

/* ---- Product meta ------------------------------------------------------ */
.product_meta,
.nhe-woo-meta {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding-top: var(--nhe-s-4);
  margin-top: var(--nhe-s-4);
  border-top: 1px solid var(--nhe-line);
  font-size: var(--nhe-fs-xs);
  color: var(--nhe-ink-muted);
}
.product_meta a { color: var(--nhe-espresso-600); }
.product_meta a:hover { color: var(--nhe-brass-700); }

/* ---- Tabs --------------------------------------------------------------- */
.woocommerce-tabs,
.nhe-woo-tabs { margin: clamp(36px, 5vw, 68px) 0; }

.wc-tabs,
.nhe-woo-tabs__nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--nhe-s-2);
  list-style: none;
  margin: 0 0 var(--nhe-s-5);
  padding: 0 0 var(--nhe-s-3);
  border-bottom: 1px solid var(--nhe-line);
}
.wc-tabs li,
.nhe-woo-tabs__nav li { margin: 0; }
.wc-tabs li a,
.nhe-woo-tabs__nav a {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 0 20px;
  border-radius: var(--nhe-r-pill);
  font-size: var(--nhe-fs-xs);
  font-weight: 600;
  letter-spacing: var(--nhe-tracking-wide);
  text-transform: uppercase;
  color: var(--nhe-ink-muted);
  transition: background-color var(--nhe-dur-fast) var(--nhe-ease-out),
              color var(--nhe-dur-fast) var(--nhe-ease-out);
}
.wc-tabs li a:hover,
.wc-tabs li.active a,
.nhe-woo-tabs__nav a:hover,
.nhe-woo-tabs__nav li.active a {
  background: var(--nhe-espresso-700);
  color: var(--nhe-cream-100);
}
.woocommerce-Tabs-panel {
  font-size: var(--nhe-fs-md);
  line-height: var(--nhe-lh-relaxed);
  color: var(--nhe-espresso-500);
}
.woocommerce-Tabs-panel h2 { display: none; } /* the tab label already says it */
.woocommerce-Tabs-panel table { margin: var(--nhe-s-4) 0; }
.woocommerce-Tabs-panel th,
.woocommerce-Tabs-panel td {
  padding: 11px 14px;
  border: 1px solid var(--nhe-line);
  text-align: left;
  font-size: var(--nhe-fs-sm);
}
.woocommerce-Tabs-panel th { background: var(--nhe-cream-200); font-weight: 600; }

/* ---- Related / upsells ------------------------------------------------- */
.related.products,
.upsells.products,
.nhe-woo-related,
.nhe-woo-upsells { margin: clamp(40px, 5vw, 76px) 0 0; }

.related.products > h2,
.upsells.products > h2,
.nhe-woo-related__title,
.nhe-woo-upsells__title {
  font-family: var(--nhe-font-display);
  font-size: var(--nhe-fs-2xl);
  font-weight: 600;
  letter-spacing: var(--nhe-tracking-tight);
  color: var(--nhe-espresso-900);
  margin: 0 0 var(--nhe-s-5);
  padding: 0;
}

/* ---- Reviews ------------------------------------------------------------ */
.woocommerce-Reviews,
.nhe-woo-reviews { margin-top: clamp(32px, 4vw, 56px); }
.woocommerce-Reviews-title,
.nhe-woo-reviews__title {
  font-family: var(--nhe-font-display);
  font-size: var(--nhe-fs-2xl);
  margin: 0 0 var(--nhe-s-5);
}
.commentlist {
  list-style: none;
  margin: 0 0 var(--nhe-s-6);
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--nhe-s-4);
}
.commentlist .comment_container {
  padding: var(--nhe-s-5);
  border-radius: var(--nhe-r-md);
  background: var(--nhe-canvas-raised);
  border: 1px solid var(--nhe-line);
}
.commentlist .comment-text { margin: 0; }
.commentlist .meta { font-size: var(--nhe-fs-xs); color: var(--nhe-ink-faint); margin: 0 0 var(--nhe-s-2); }
.commentlist .meta strong { color: var(--nhe-espresso-700); }
.commentlist .description p { font-size: var(--nhe-fs-sm); margin: 0; color: var(--nhe-espresso-500); }
.woocommerce-noreviews { color: var(--nhe-ink-muted); font-size: var(--nhe-fs-sm); }

.comment-form-rating .stars { display: inline-flex; gap: 3px; }
.comment-form-rating .stars a { font-size: 0; width: 22px; height: 22px; }
.comment-respond .comment-reply-title {
  font-family: var(--nhe-font-display);
  font-size: var(--nhe-fs-xl);
  margin: 0 0 var(--nhe-s-4);
}

/* ==========================================================================
   5. GLOBAL BUTTONS (core emits bare .button everywhere)
   ========================================================================== */
.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-Button,
.return-to-shop .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 24px;
  border: 1px solid transparent;
  border-radius: var(--nhe-r-pill);
  background: var(--nhe-espresso-700);
  color: var(--nhe-cream-100);
  font-family: var(--nhe-font-body);
  font-size: var(--nhe-fs-xs);
  font-weight: 700;
  letter-spacing: var(--nhe-tracking-wide);
  text-transform: uppercase;
  line-height: 1;
  cursor: pointer;
  transition: transform var(--nhe-dur-fast) var(--nhe-ease-spring),
              background-color var(--nhe-dur-fast) var(--nhe-ease-out),
              box-shadow var(--nhe-dur-base) var(--nhe-ease-out);
}
.woocommerce .button:hover,
.woocommerce-Button:hover,
.return-to-shop .button:hover {
  background: var(--nhe-espresso-900);
  color: var(--nhe-cream-100);
  transform: translateY(-1.5px);
  box-shadow: var(--nhe-shadow-md);
}
.woocommerce .button.alt,
.woocommerce .button.checkout,
.wc-proceed-to-checkout .button,
#place_order {
  background: linear-gradient(140deg, var(--nhe-brass-400), var(--nhe-brass-600));
  color: #fff;
  box-shadow: var(--nhe-shadow-accent);
}
.woocommerce .button.alt:hover,
.wc-proceed-to-checkout .button:hover,
#place_order:hover { background: linear-gradient(140deg, var(--nhe-brass-500), var(--nhe-brass-700)); }
.woocommerce .button:disabled,
.woocommerce .button[disabled] { opacity: 0.5; pointer-events: none; box-shadow: none; }

/* ==========================================================================
   6. NOTICES
   ========================================================================== */
.woocommerce-notices-wrapper { margin-bottom: var(--nhe-s-5); }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.nhe-woo-notice {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: var(--nhe-s-3);
  margin: 0 0 var(--nhe-s-3);
  padding: 14px 18px 14px 46px;
  border: 1px solid transparent;
  border-radius: var(--nhe-r-md);
  font-size: var(--nhe-fs-sm);
  line-height: 1.55;
  list-style: none;
  background: var(--nhe-success-bg);
  color: var(--nhe-success);
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before,
.nhe-woo-notice::before {
  position: absolute;
  left: 16px;
  top: 13px;
  font-size: 15px;
  line-height: 1;
}
.woocommerce-message::before,
.nhe-woo-notice--success::before { content: '\2713'; }
.woocommerce-info,
.nhe-woo-notice--info { background: var(--nhe-warning-bg); color: var(--nhe-warning); }
.woocommerce-info::before,
.nhe-woo-notice--info::before { content: 'i'; font-weight: 700; font-style: italic; }
.woocommerce-error,
.nhe-woo-notice--error { background: var(--nhe-danger-bg); color: var(--nhe-danger); }
.woocommerce-error::before,
.nhe-woo-notice--error::before { content: '!'; font-weight: 700; }

.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
  margin-left: auto;
  min-height: 36px;
  padding: 0 16px;
  font-size: var(--nhe-fs-2xs);
  background: transparent;
  border-color: currentColor;
  color: inherit;
  box-shadow: none;
}
.woocommerce-error li { margin: 0; }

/* ==========================================================================
   7. CART
   ========================================================================== */
.woocommerce-cart-form { margin-bottom: var(--nhe-s-6); }

/* Accessible screen-reader-text (fixes raw text in table headers) */
.screen-reader-text {
  border: 0 !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
  -webkit-clip-path: inset(50%) !important;
  clip-path: inset(50%) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important;
  word-wrap: normal !important;
}

table.shop_table,
.woocommerce-cart-form__contents,
.woocommerce-checkout-review-order-table,
.woocommerce-orders-table,
.woocommerce-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(74, 59, 50, 0.1);
  border-radius: var(--nhe-r-lg, 16px);
  overflow: hidden;
  background: rgba(255, 255, 255, 0.85);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  font-size: var(--nhe-fs-sm);
  box-shadow: 0 8px 24px rgba(74, 59, 50, 0.03);
}
.shop_table th,
.woocommerce-orders-table th,
.woocommerce-table th {
  padding: 14px 18px;
  background: rgba(244, 237, 228, 0.65);
  border-bottom: 1px solid rgba(74, 59, 50, 0.08);
  font-family: var(--nhe-font-body);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: var(--nhe-tracking-wide);
  text-transform: uppercase;
  color: var(--nhe-espresso-700);
  text-align: left;
}
.shop_table th.product-remove,
.shop_table td.product-remove {
  width: 44px;
  text-align: center;
  padding: 14px 8px;
}
.shop_table th.product-thumbnail,
.shop_table td.product-thumbnail {
  width: 88px;
  text-align: center;
  padding: 14px 8px;
}
.shop_table th.product-quantity,
.shop_table td.product-quantity {
  text-align: center;
}
.shop_table th.product-price,
.shop_table td.product-price,
.shop_table th.product-subtotal,
.shop_table td.product-subtotal {
  text-align: right;
}
.shop_table td,
.woocommerce-orders-table td,
.woocommerce-table td {
  padding: 16px 18px;
  border-bottom: 1px solid rgba(74, 59, 50, 0.06);
  vertical-align: middle;
  color: var(--nhe-espresso-700);
}
.shop_table tr:last-child td { border-bottom: 0; }
.shop_table tbody tr:hover td { background: rgba(193, 154, 107, 0.04); }

.product-thumbnail img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  border-radius: 12px;
  border: 1px solid rgba(74, 59, 50, 0.08);
  box-shadow: 0 4px 12px rgba(74, 59, 50, 0.06);
  display: block;
  margin: 0 auto;
}
.product-name a {
  font-family: var(--nhe-font-body);
  font-size: 15px;
  font-weight: 600;
  color: var(--nhe-espresso-900);
  text-decoration: none;
  transition: color var(--nhe-dur-fast) ease;
}
.product-name a:hover { color: var(--nhe-brass-700); }

.product-remove a.remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(166, 61, 47, 0.08);
  color: var(--nhe-danger);
  font-size: 18px;
  line-height: 1;
  text-decoration: none;
  transition: all var(--nhe-dur-fast) ease;
}
.product-remove a.remove:hover {
  background: var(--nhe-danger);
  color: #ffffff;
  transform: scale(1.1);
}

.woocommerce-cart-form__cart-item .quantity {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.woocommerce-cart-form__cart-item .quantity input {
  width: 56px;
  height: 38px;
  text-align: center;
  border-radius: 8px;
  border: 1px solid rgba(74, 59, 50, 0.16);
  font-weight: 600;
}

.woocommerce-cart-form__contents td.actions {
  padding: 20px 18px;
  background: rgba(250, 248, 245, 0.5);
}
.woocommerce-cart-form__contents td.actions .coupon {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.woocommerce-cart-form__contents td.actions .coupon input[type='text'] {
  min-height: 44px;
  padding: 8px 16px;
  border: 1px solid rgba(74, 59, 50, 0.16);
  border-radius: 9999px;
  background: #fff;
  font-size: 14px;
}
.woocommerce-cart-form__contents td.actions .coupon .button,
.woocommerce-cart-form__contents td.actions button[name='update_cart'] {
  min-height: 44px;
  padding: 0 20px;
  border-radius: 9999px;
  border: 1px solid rgba(74, 59, 50, 0.18);
  background: #fff;
  color: var(--nhe-espresso-800);
  font-weight: 600;
  font-size: 13.5px;
  cursor: pointer;
  transition: all var(--nhe-dur-fast) ease;
}
.woocommerce-cart-form__contents td.actions .coupon .button:hover,
.woocommerce-cart-form__contents td.actions button[name='update_cart']:hover {
  background: rgba(74, 59, 50, 0.06);
  border-color: rgba(74, 59, 50, 0.35);
}

/* Totals / collaterals */
.cart-collaterals,
.nhe-woo-cart__collaterals {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--nhe-s-6);
  margin-top: var(--nhe-s-6);
}
.cart-collaterals .cross-sells {
  width: 100%;
}
.cart_totals,
.nhe-woo-totals {
  width: 100%;
  max-width: 480px;
  padding: clamp(24px, 3.5vw, 36px);
  border-radius: var(--nhe-r-xl, 24px);
  background: rgba(255, 255, 255, 0.92);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  border: 1px solid rgba(74, 59, 50, 0.1);
  box-shadow: 0 16px 36px rgba(74, 59, 50, 0.05), 0 2px 6px rgba(74, 59, 50, 0.02);
}
@media (min-width: 992px) {
  .cart-collaterals:has(.cross-sells) {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 440px);
    gap: clamp(24px, 3vw, 40px);
    align-items: start;
  }
}
.cart_totals h2 {
  font-family: var(--nhe-font-display);
  font-size: var(--nhe-fs-xl);
  color: var(--nhe-espresso-900);
  margin: 0 0 var(--nhe-s-4);
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(74, 59, 50, 0.08);
}
.cart_totals table { width: 100%; border: 0; background: transparent; }
.cart_totals th,
.cart_totals td { padding: 12px 0; border: 0; border-bottom: 1px solid rgba(74, 59, 50, 0.07); }
.cart_totals th { font-weight: 600; color: var(--nhe-espresso-600); }
.cart_totals td { text-align: right; font-weight: 600; color: var(--nhe-espresso-900); }
.cart_totals tr.order-total th,
.cart_totals tr.order-total td {
  border-bottom: 0;
  padding-top: var(--nhe-s-4);
  font-size: var(--nhe-fs-lg);
  font-weight: 700;
  color: var(--nhe-espresso-900);
}
.wc-proceed-to-checkout { margin-top: var(--nhe-s-5); }
.wc-proceed-to-checkout .button,
.nhe-woo-proceed,
a.checkout-button {
  width: 100% !important;
  min-height: 52px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #4A3B32 !important;
  color: #FFFFFF !important;
  font-family: var(--nhe-font-body) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: 0.3px !important;
  border: none !important;
  border-radius: var(--nhe-r-pill, 9999px) !important;
  box-shadow: 0 10px 24px rgba(74, 59, 50, 0.22) !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: all var(--nhe-dur-fast) var(--nhe-ease-out) !important;
}
.wc-proceed-to-checkout .button:hover,
.nhe-woo-proceed:hover,
a.checkout-button:hover {
  background: #382F28 !important;
  color: #FFFFFF !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 14px 30px rgba(74, 59, 50, 0.32) !important;
}

.woocommerce-shipping-calculator .shipping-calculator-button {
  display: inline-block;
  font-size: var(--nhe-fs-xs);
  font-weight: 600;
  color: var(--nhe-brass-700);
  text-decoration: underline;
  text-underline-offset: 3px;
  margin-bottom: var(--nhe-s-3);
}
.woocommerce-shipping-calculator .form-row { margin-bottom: var(--nhe-s-3); }

.cross-sells,
.nhe-woo-cross-sells { margin-top: var(--nhe-s-7); }
.cross-sells > h2,
.nhe-woo-cross-sells__title {
  font-family: var(--nhe-font-display);
  font-size: var(--nhe-fs-2xl);
  margin: 0 0 var(--nhe-s-5);
}

/* Empty cart */
.cart-empty,
.nhe-woo-empty-cart {
  text-align: center;
  padding: clamp(36px, 6vw, 80px) var(--nhe-s-5);
}
.cart-empty {
  font-family: var(--nhe-font-display);
  font-size: var(--nhe-fs-2xl);
  color: var(--nhe-espresso-800);
  margin: 0 0 var(--nhe-s-5);
}
.return-to-shop { text-align: center; }

/* ==========================================================================
   8. CHECKOUT
   ========================================================================== */
form.checkout,
.nhe-woo-checkout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: clamp(24px, 3.4vw, 52px);
  align-items: start;
}
.nhe-woo-checkout__customer,
#customer_details { min-width: 0; }
.nhe-woo-checkout__review,
#order_review_heading,
.woocommerce-checkout-review-order { min-width: 0; }

@media (min-width: 861px) {
  #order_review_heading,
  .woocommerce-checkout-review-order {
    position: sticky;
    top: calc(var(--nhe-header-h-compact) + 20px);
  }
}

#customer_details h3,
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3 {
  font-family: var(--nhe-font-display);
  font-size: var(--nhe-fs-xl);
  font-weight: 600;
  margin: 0 0 var(--nhe-s-4);
  color: var(--nhe-espresso-900);
}

/*
   Field grids. Deliberately NOT a rigid 2-column template: Vietnam Checkout
   for WooCommerce v2.1.6 replaces the state/city fields with its own
   cascading province/commune controls and can render them outside .form-row,
   which collapses a fixed grid. auto-fit adapts to any field count.
*/
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper,
.woocommerce-address-fields__field-wrapper,
.nhe-woo-address-fields,
.nhe-woo-billing,
.nhe-woo-shipping {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--nhe-s-4);
  align-items: start;
}
.form-row-wide,
.woocommerce-additional-fields,
.woocommerce-additional-fields__field-wrapper,
#order_comments_field { grid-column: 1 / -1; }

.form-row,
.woocommerce-form-row {
  display: block;
  margin: 0;
  padding: 0;
  float: none;
  width: 100%;
}
.form-row label,
.woocommerce-form-row label {
  display: block;
  font-size: var(--nhe-fs-xs);
  font-weight: 600;
  letter-spacing: var(--nhe-tracking-wide);
  text-transform: uppercase;
  color: var(--nhe-ink-muted);
  margin-bottom: 6px;
}
.form-row .required { color: var(--nhe-danger); text-decoration: none; }

.form-row input.input-text,
.form-row select,
.form-row textarea,
.woocommerce-input-wrapper input,
.woocommerce-input-wrapper select,
.woocommerce-input-wrapper textarea,
.woocommerce-input,
.woocommerce-Input {
  width: 100%;
  min-height: 48px;
  padding: 11px 15px;
  border: 1px solid var(--nhe-line-strong);
  border-radius: var(--nhe-r-sm);
  background: var(--nhe-canvas-raised);
  font-size: var(--nhe-fs-md);
  color: var(--nhe-ink);
}
.form-row textarea { min-height: 120px; resize: vertical; }
.form-row input.input-text:focus,
.form-row select:focus,
.form-row textarea:focus,
.woocommerce-input:focus,
.woocommerce-Input:focus {
  outline: none;
  border-color: var(--nhe-brass-500);
  box-shadow: var(--nhe-focus-ring);
  background: #fff;
}

/* Vietnamese 2-level address pair: keep the two selects side by side */
.woocommerce-billing-fields .form-row-first,
.woocommerce-billing-fields .form-row-last { grid-column: auto; }

/* Checkbox rows should not stretch */
.form-row .woocommerce-form__label-for-checkbox,
.form-row.create-account label,
#ship-to-different-address label {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  text-transform: none;
  letter-spacing: 0;
  font-size: var(--nhe-fs-sm);
  font-weight: 500;
  color: var(--nhe-espresso-600);
}
.woocommerce-form__input-checkbox { width: 18px; height: 18px; accent-color: var(--nhe-brass-600); }

/* Review order panel */
.woocommerce-checkout-review-order {
  padding: var(--nhe-s-5);
  border-radius: var(--nhe-r-lg);
  background: var(--nhe-canvas-raised);
  border: 1px solid var(--nhe-line);
  box-shadow: var(--nhe-shadow-md);
}
.woocommerce-checkout-review-order-table { border: 0; background: transparent; }
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td { padding: 10px 0; border-bottom: 1px solid var(--nhe-line); }
.woocommerce-checkout-review-order-table thead th {
  background: transparent;
  border-bottom: 1px solid var(--nhe-line-strong);
}
.woocommerce-checkout-review-order-table .cart_item td { font-size: var(--nhe-fs-sm); }
.woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout-review-order-table .order-total td {
  border-bottom: 0;
  padding-top: var(--nhe-s-4);
  font-size: var(--nhe-fs-lg);
  font-weight: 700;
  color: var(--nhe-espresso-900);
}

/* Payment */
.woocommerce-checkout-payment,
.nhe-woo-payment {
  margin-top: var(--nhe-s-5);
  border-top: 1px solid var(--nhe-line);
  padding-top: var(--nhe-s-5);
}
.woocommerce-checkout-payment ul.wc_payment_methods,
.nhe-woo-payment__methods {
  list-style: none;
  margin: 0 0 var(--nhe-s-5);
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--nhe-s-2);
}
.wc_payment_method,
.nhe-woo-payment-method {
  padding: 13px 16px;
  border: 1px solid var(--nhe-line);
  border-radius: var(--nhe-r-md);
  background: var(--nhe-canvas-raised);
  transition: border-color var(--nhe-dur-fast) var(--nhe-ease-out),
              box-shadow var(--nhe-dur-fast) var(--nhe-ease-out);
}
.wc_payment_method label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: var(--nhe-fs-sm);
  font-weight: 600;
  color: var(--nhe-espresso-700);
  cursor: pointer;
  margin: 0;
}
.wc_payment_method input.input-radio { width: 18px; height: 18px; accent-color: var(--nhe-brass-600); }
.wc_payment_method:has(input:checked) {
  border-color: var(--nhe-brass-500);
  box-shadow: 0 0 0 1px var(--nhe-brass-500);
}
.wc_payment_method img { max-height: 26px; width: auto; display: inline-block; }

.payment_box {
  margin-top: var(--nhe-s-3);
  padding: var(--nhe-s-4);
  border-radius: var(--nhe-r-sm);
  background: var(--nhe-cream-200);
  font-size: var(--nhe-fs-sm);
  line-height: var(--nhe-lh-relaxed);
  color: var(--nhe-espresso-500);
}
.payment_box::before { display: none; } /* core draws a CSS triangle */
.payment_box p { margin: 0 0 var(--nhe-s-2); }
.payment_box p:last-child { margin-bottom: 0; }
.payment_box strong { color: var(--nhe-espresso-800); }

#place_order { width: 100%; min-height: 56px; font-size: var(--nhe-fs-md); margin-top: var(--nhe-s-4); }
.woocommerce-terms-and-conditions-wrapper { margin-bottom: var(--nhe-s-4); font-size: var(--nhe-fs-xs); }

/* Coupon */
.woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom: var(--nhe-s-4); }
.woocommerce-form-coupon,
.nhe-woo-coupon-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--nhe-s-2);
  margin-bottom: var(--nhe-s-5);
  padding: var(--nhe-s-4);
  border-radius: var(--nhe-r-md);
  background: var(--nhe-cream-200);
}
.woocommerce-form-coupon p {
  grid-column: 1 / -1;
  margin: 0 0 var(--nhe-s-2);
  font-size: var(--nhe-fs-xs);
  color: var(--nhe-ink-muted);
}

/* ==========================================================================
   9. THANK YOU + VIETQR
   ========================================================================== */
.woocommerce-order,
.nhe-woo-thankyou { max-width: 880px; margin-inline: auto; }

.woocommerce-thankyou-order-received {
  display: flex;
  align-items: center;
  gap: var(--nhe-s-3);
  font-family: var(--nhe-font-display);
  font-size: var(--nhe-fs-3xl);
  font-weight: 500;
  line-height: var(--nhe-lh-snug);
  letter-spacing: var(--nhe-tracking-tight);
  color: var(--nhe-espresso-900);
  margin: 0 0 var(--nhe-s-6);
  padding: var(--nhe-s-5) var(--nhe-s-5) var(--nhe-s-5) 62px;
  position: relative;
  border-radius: var(--nhe-r-lg);
  background: var(--nhe-success-bg);
  border: 1px solid rgba(79, 122, 69, 0.24);
}
.woocommerce-thankyou-order-received::before {
  content: '\2713';
  position: absolute;
  left: var(--nhe-s-5);
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px; height: 34px;
  border-radius: 50%;
  background: var(--nhe-success);
  color: #fff;
  font-size: 17px;
  font-weight: 700;
  font-family: var(--nhe-font-body);
}

ul.woocommerce-order-overview,
.woocommerce-order-overview {
  list-style: none;
  margin: 0 0 var(--nhe-s-6);
  padding: var(--nhe-s-5);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: var(--nhe-s-4);
  border-radius: var(--nhe-r-lg);
  background: var(--nhe-canvas-raised);
  border: 1px solid var(--nhe-line);
  font-size: var(--nhe-fs-sm);
}
.woocommerce-order-overview li {
  margin: 0;
  padding: 0;
  border: 0;
  float: none;
  text-transform: none;
  color: var(--nhe-ink-muted);
  font-size: var(--nhe-fs-xs);
  line-height: 1.5;
}
.woocommerce-order-overview li strong {
  display: block;
  margin-top: 4px;
  font-family: var(--nhe-font-body);
  font-size: var(--nhe-fs-md);
  font-weight: 600;
  color: var(--nhe-espresso-800);
  text-transform: none;
}

/* ---- VietQR helper panel (theme-owned) --------------------------------
   The VietQR gateway renders its own QR inside .payment_box on checkout and
   via the woocommerce_thankyou_{gateway} action on the order-received page.
   This panel sits alongside it and carries only the transfer memo + amount +
   copy affordance, so it works regardless of the plugin's internal markup. */
.nhe-woo-vietqr-help {
  margin: var(--nhe-s-6) 0;
  padding: var(--nhe-s-5);
  border-radius: var(--nhe-r-lg);
  background: var(--nhe-canvas-raised);
  border: 1px solid var(--nhe-brass-300);
  box-shadow: var(--nhe-shadow-md);
}
.nhe-woo-vietqr-help__head { margin-bottom: var(--nhe-s-4); }
.nhe-woo-vietqr-help__title {
  font-family: var(--nhe-font-display);
  font-size: var(--nhe-fs-xl);
  font-weight: 600;
  margin: 0 0 4px;
  color: var(--nhe-espresso-900);
}
.nhe-woo-vietqr-help__lead {
  margin: 0;
  font-size: var(--nhe-fs-sm);
  color: var(--nhe-ink-muted);
  line-height: var(--nhe-lh-relaxed);
}
.nhe-woo-vietqr-help__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: var(--nhe-s-3);
  margin-bottom: var(--nhe-s-4);
}
.nhe-woo-vietqr-help__row {
  padding: 12px 14px;
  border-radius: var(--nhe-r-sm);
  background: var(--nhe-cream-200);
}
.nhe-woo-vietqr-help__label {
  display: block;
  font-size: var(--nhe-fs-2xs);
  font-weight: 700;
  letter-spacing: var(--nhe-tracking-wide);
  text-transform: uppercase;
  color: var(--nhe-ink-faint);
  margin-bottom: 4px;
}
.nhe-woo-vietqr-help__value,
.nhe-woo-vietqr-help__amount,
.nhe-woo-vietqr-help__phone {
  display: block;
  font-family: var(--nhe-font-mono);
  font-size: var(--nhe-fs-md);
  font-weight: 600;
  color: var(--nhe-espresso-900);
  word-break: break-word;
}
.nhe-woo-vietqr-help__memo {
  display: flex;
  align-items: center;
  gap: var(--nhe-s-3);
  flex-wrap: wrap;
  padding: 14px 16px;
  border-radius: var(--nhe-r-md);
  background: var(--nhe-espresso-900);
  color: var(--nhe-cream-100);
}
.nhe-woo-vietqr-help__memo code {
  font-family: var(--nhe-font-mono);
  font-size: var(--nhe-fs-lg);
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--nhe-brass-300);
}
.nhe-woo-copy {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 38px;
  padding: 0 16px;
  border-radius: var(--nhe-r-pill);
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.24);
  color: var(--nhe-cream-100);
  font-size: var(--nhe-fs-2xs);
  font-weight: 700;
  letter-spacing: var(--nhe-tracking-wide);
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color var(--nhe-dur-fast) var(--nhe-ease-out);
}
.nhe-woo-copy:hover { background: rgba(255, 255, 255, 0.22); }
.nhe-woo-copy.is-copied { background: var(--nhe-success); border-color: var(--nhe-success); }
.nhe-woo-vietqr-help__note {
  margin: var(--nhe-s-4) 0 0;
  font-size: var(--nhe-fs-xs);
  line-height: var(--nhe-lh-relaxed);
  color: var(--nhe-ink-muted);
}

/* Order / customer details blocks core prints after the overview */
.woocommerce-order-details,
.woocommerce-customer-details { margin-top: var(--nhe-s-6); }
.woocommerce-order-details__title,
.woocommerce-column__title,
.woocommerce-customer-details h2 {
  font-family: var(--nhe-font-display);
  font-size: var(--nhe-fs-xl);
  font-weight: 600;
  margin: 0 0 var(--nhe-s-4);
  color: var(--nhe-espresso-900);
}
.woocommerce-customer-details address {
  font-style: normal;
  padding: var(--nhe-s-4) var(--nhe-s-5);
  border-radius: var(--nhe-r-md);
  background: var(--nhe-canvas-raised);
  border: 1px solid var(--nhe-line);
  font-size: var(--nhe-fs-sm);
  line-height: 1.7;
  color: var(--nhe-espresso-600);
}

/* Failed order */
.woocommerce-thankyou-order-failed {
  padding: var(--nhe-s-5);
  border-radius: var(--nhe-r-lg);
  background: var(--nhe-danger-bg);
  border: 1px solid rgba(166, 61, 47, 0.24);
  color: var(--nhe-danger);
  font-size: var(--nhe-fs-md);
}
.woocommerce-thankyou-order-failed-actions { display: flex; gap: var(--nhe-s-2); margin-top: var(--nhe-s-4); flex-wrap: wrap; }

/* ==========================================================================
   10. MY ACCOUNT  (v2.4.6 shipped this completely unstyled)
   ========================================================================== */
.nhe-woo-account__layout {
  display: grid;
  grid-template-columns: 244px minmax(0, 1fr);
  gap: clamp(24px, 3.4vw, 48px);
  align-items: start;
}

.woocommerce-MyAccount-navigation,
.nhe-woo-account-nav {
  padding: var(--nhe-s-4);
  border-radius: var(--nhe-r-lg);
  background: var(--nhe-canvas-raised);
  border: 1px solid var(--nhe-line);
  position: sticky;
  top: calc(var(--nhe-header-h-compact) + 16px);
}
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-MyAccount-navigation ul li { margin: 0 0 3px; }
.woocommerce-MyAccount-navigation ul li a {
  display: flex;
  align-items: center;
  min-height: 42px;
  padding: 0 15px;
  border-radius: var(--nhe-r-sm);
  font-size: var(--nhe-fs-sm);
  font-weight: 500;
  color: var(--nhe-espresso-500);
  transition: background-color var(--nhe-dur-fast) var(--nhe-ease-out),
              color var(--nhe-dur-fast) var(--nhe-ease-out);
}
.woocommerce-MyAccount-navigation ul li a:hover { background: rgba(74, 59, 50, 0.06); color: var(--nhe-espresso-800); }
.woocommerce-MyAccount-navigation ul li.is-active a {
  background: var(--nhe-espresso-700);
  color: var(--nhe-cream-100);
  font-weight: 600;
}

.woocommerce-MyAccount-content,
.nhe-woo-account__content {
  font-size: var(--nhe-fs-md);
  line-height: var(--nhe-lh-relaxed);
  color: var(--nhe-espresso-500);
  min-width: 0;
}
.woocommerce-MyAccount-content > p:first-of-type {
  padding: var(--nhe-s-4) var(--nhe-s-5);
  border-radius: var(--nhe-r-md);
  background: var(--nhe-brass-100);
  color: var(--nhe-brass-700);
  font-size: var(--nhe-fs-sm);
}
.nhe-woo-account__title,
.woocommerce-MyAccount-content h2 {
  font-family: var(--nhe-font-display);
  font-size: var(--nhe-fs-2xl);
  font-weight: 600;
  color: var(--nhe-espresso-900);
  margin: 0 0 var(--nhe-s-4);
}

/* Login / register */
.nhe-woo-auth,
.woocommerce-account .u-columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(20px, 3vw, 40px);
}
.u-column1, .u-column2 { width: auto; float: none; margin: 0; }

.woocommerce-form-login,
.woocommerce-form-register,
.nhe-woo-login,
.nhe-woo-auth__panel,
.nhe-woo-lost-password,
.nhe-woo-reset-password {
  padding: clamp(24px, 3.5vw, 36px);
  border-radius: var(--nhe-r-xl, 24px);
  background: rgba(255, 255, 255, 0.92);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  border: 1px solid rgba(74, 59, 50, 0.1);
  box-shadow: 0 16px 36px rgba(74, 59, 50, 0.05), 0 2px 6px rgba(74, 59, 50, 0.02);
  max-width: none;
}
.woocommerce-form-login__rememberme {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: var(--nhe-fs-sm);
  color: var(--nhe-espresso-600);
  margin-bottom: var(--nhe-s-4);
  cursor: pointer;
}
.woocommerce-LostPassword { font-size: var(--nhe-fs-xs); margin: var(--nhe-s-3) 0 0; }
.woocommerce-LostPassword a { color: var(--nhe-brass-700); text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }
.woocommerce-privacy-policy-text { font-size: var(--nhe-fs-xs); color: var(--nhe-ink-faint); line-height: 1.6; margin-top: var(--nhe-s-4); }

/* Password input & Show/Hide Password Eye Button */
span.password-input {
  position: relative;
  display: block;
  width: 100%;
}
span.password-input input[type='password'],
span.password-input input[type='text'] {
  width: 100%;
  padding-right: 46px !important;
}
.show-password-input,
button.show-password-input,
span.show-password-input {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  padding: 0;
  margin: 0;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  border-radius: 50%;
  transition: background-color var(--nhe-dur-fast) ease, opacity var(--nhe-dur-fast) ease;
}
.show-password-input:hover {
  background: rgba(74, 59, 50, 0.08) !important;
}
.show-password-input::after {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23705C4E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
  opacity: 0.75;
}
.show-password-input:hover::after {
  opacity: 1;
}
.show-password-input.display-password::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23C19A6B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24'/%3E%3Cline x1='1' y1='1' x2='23' y2='23'/%3E%3C/svg%3E");
  opacity: 1;
}

.woocommerce-form-login .button,
.woocommerce-form-register .button,
.woocommerce-ResetPassword .button {
  width: 100% !important;
  min-height: 48px !important;
  margin-top: var(--nhe-s-4) !important;
  background: #4A3B32 !important;
  color: #FFFFFF !important;
  font-family: var(--nhe-font-body) !important;
  font-size: 14.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.3px !important;
  border: none !important;
  border-radius: var(--nhe-r-pill, 9999px) !important;
  box-shadow: 0 8px 20px rgba(74, 59, 50, 0.2) !important;
  cursor: pointer !important;
  transition: all var(--nhe-dur-fast) var(--nhe-ease-out) !important;
}
.woocommerce-form-login .button:hover,
.woocommerce-form-register .button:hover,
.woocommerce-ResetPassword .button:hover {
  background: #382F28 !important;
  color: #FFFFFF !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 26px rgba(74, 59, 50, 0.28) !important;
}

/* Orders table */
.woocommerce-orders-table,
.woocommerce-MyAccount-orders { font-size: var(--nhe-fs-sm); }
.woocommerce-orders-table__cell-order-number a,
.woocommerce-orders-table__cell-order-actions a { font-weight: 600; color: var(--nhe-brass-700); }
.woocommerce-orders-table__cell-order-status { font-weight: 600; text-transform: capitalize; }
.woocommerce-orders-table__cell-order-actions .button { min-height: 36px; padding: 0 14px; font-size: var(--nhe-fs-2xs); }
.nhe-woo-orders-pagination { margin-top: var(--nhe-s-4); }

/* Addresses */
.woocommerce-Addresses,
.nhe-woo-addresses {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--nhe-s-4);
}
.woocommerce-Address,
.nhe-woo-address-card {
  padding: var(--nhe-s-5);
  border-radius: var(--nhe-r-md);
  background: var(--nhe-canvas-raised);
  border: 1px solid var(--nhe-line);
}
.woocommerce-Address-title h2,
.woocommerce-Address-title h3 {
  font-size: var(--nhe-fs-2xs);
  font-weight: 700;
  letter-spacing: var(--nhe-tracking-wider);
  text-transform: uppercase;
  color: var(--nhe-brass-700);
  margin: 0 0 var(--nhe-s-3);
}
.woocommerce-Address address { font-style: normal; font-size: var(--nhe-fs-sm); line-height: 1.7; }
.woocommerce-Address-title a.edit { font-size: var(--nhe-fs-xs); font-weight: 600; color: var(--nhe-brass-700); }

/* View order */
.nhe-woo-view-order__status { margin-top: var(--nhe-s-5); }
.nhe-woo-order-notes,
.woocommerce-OrderUpdates { margin-top: var(--nhe-s-5); }
.woocommerce-OrderUpdate {
  padding: var(--nhe-s-4);
  border-radius: var(--nhe-r-sm);
  background: var(--nhe-cream-200);
  margin-bottom: var(--nhe-s-3);
  font-size: var(--nhe-fs-sm);
}
.woocommerce-OrderUpdate-meta { font-size: var(--nhe-fs-xs); color: var(--nhe-ink-faint); margin-bottom: 5px; }

/* Payment methods */
.woocommerce-PaymentMethods,
.woocommerce-PaymentMethod { font-size: var(--nhe-fs-sm); }
.woocommerce-PaymentMethod--actions .button { min-height: 34px; padding: 0 13px; font-size: var(--nhe-fs-2xs); }
.woocommerce-MyAccount-downloads-file::before { color: var(--nhe-brass-600); }

/* ==========================================================================
   11. MINI CART
   ========================================================================== */
.nhe-woo-mini-cart,
.widget_shopping_cart_content {
  padding: var(--nhe-s-5);
  border-radius: var(--nhe-r-lg);
  background: var(--nhe-glass-thick-bg);
  -webkit-backdrop-filter: blur(var(--nhe-glass-thick-blur)) saturate(var(--nhe-glass-thick-sat));
  backdrop-filter: blur(var(--nhe-glass-thick-blur)) saturate(var(--nhe-glass-thick-sat));
  border: 1px solid rgba(255, 255, 255, 0.7);
  box-shadow: var(--nhe-shadow-xl), var(--nhe-glass-edge-strong);
}
.woocommerce-mini-cart,
ul.cart_list,
ul.product_list_widget { list-style: none; margin: 0; padding: 0; }

.woocommerce-mini-cart__total,
.cart_list .total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: var(--nhe-s-4) 0;
  margin: var(--nhe-s-3) 0 0;
  border-top: 1px solid var(--nhe-line);
  font-size: var(--nhe-fs-md);
  font-weight: 700;
  color: var(--nhe-espresso-900);
}
.woocommerce-mini-cart__buttons,
.nhe-woo-mini-cart__buttons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--nhe-s-2);
  margin-top: var(--nhe-s-4);
}
.woocommerce-mini-cart__buttons .button { width: 100%; min-height: 44px; padding: 0 14px; font-size: var(--nhe-fs-2xs); }
.woocommerce-mini-cart__empty-message { font-size: var(--nhe-fs-sm); color: var(--nhe-ink-muted); margin: 0; }

/* ==========================================================================
   12. SECONDARY HOOK CLASSES
   These exist in the markup as DOM/JS handles and layout hooks. They mostly
   inherit correctly, but the ones that carry real layout meaning get explicit
   rules here so nothing depends on a parent staying put.
   ========================================================================== */

/* Forms & fieldsets */
.nhe-woo-form { display: block; }
.nhe-woo-fieldset {
  border: 0;
  margin: 0 0 var(--nhe-s-5);
  padding: 0;
}
.nhe-woo-account-fields,
.nhe-woo-address-fields { margin-top: var(--nhe-s-4); }
.nhe-woo-address-form { display: block; }

/* Cart internals */
.nhe-woo-cart-form { display: block; }
.nhe-woo-cart__table { width: 100%; }
.nhe-woo-cart__actions { display: flex; flex-wrap: wrap; gap: var(--nhe-s-2); }
.nhe-woo-cart-errors { margin-bottom: var(--nhe-s-4); }
.nhe-woo-qty { display: inline-flex; align-items: center; }

/* Coupon / ordering chrome */
.nhe-woo-coupon-toggle { display: block; margin-bottom: var(--nhe-s-4); }
.nhe-woo-ordering { margin-bottom: var(--nhe-s-4); }

/* Checkout review + payment */
.nhe-woo-review-table { width: 100%; }
.nhe-woo-payment-methods { list-style: none; margin: 0; padding: 0; }
.nhe-woo-place-order { width: 100%; }
.nhe-woo-receipt {
  padding: var(--nhe-s-5);
  border-radius: var(--nhe-r-lg);
  background: var(--nhe-canvas-raised);
  border: 1px solid var(--nhe-line);
}

/* Order overview / updates */
.nhe-woo-order-overview { margin-bottom: var(--nhe-s-5); }
.nhe-woo-order-updates { margin-top: var(--nhe-s-5); }

/* Mini cart item rows */
.nhe-woo-mini-cart__item {
  display: flex;
  align-items: center;
  gap: var(--nhe-s-3);
  padding: var(--nhe-s-3) 0;
  border-bottom: 1px solid var(--nhe-line);
  font-size: var(--nhe-fs-sm);
}
.nhe-woo-mini-cart__item:last-child { border-bottom: 0; }
.nhe-woo-mini-cart__item img {
  width: 46px; height: 46px;
  object-fit: cover;
  border-radius: var(--nhe-r-xs);
  flex-shrink: 0;
}
.nhe-woo-mini-cart__total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: var(--nhe-s-4) 0;
  border-top: 1px solid var(--nhe-line);
  font-weight: 700;
  color: var(--nhe-espresso-900);
}
.nhe-woo-mini-cart__empty { font-size: var(--nhe-fs-sm); color: var(--nhe-ink-muted); }

/* Account chrome */
.nhe-woo-account__head { margin-bottom: var(--nhe-s-5); }
.nhe-woo-dashboard__welcome,
.nhe-woo-dashboard__intro {
  font-size: var(--nhe-fs-md);
  line-height: var(--nhe-lh-relaxed);
  color: var(--nhe-espresso-500);
  margin-bottom: var(--nhe-s-4);
}
.nhe-woo-addresses__intro { font-size: var(--nhe-fs-sm); color: var(--nhe-ink-muted); margin-bottom: var(--nhe-s-4); }
.nhe-woo-sidebar { min-width: 0; }

/* Single product internals */
.nhe-woo-variable-form { display: block; }
.nhe-woo-variation-row { display: block; }
.nhe-woo-variation-data { display: block; }
.nhe-woo-single-variation-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--nhe-s-3);
  margin-top: var(--nhe-s-3);
}
.nhe-woo-tab-panel { display: block; }

/* Cart / checkout sub-columns */
.nhe-woo-cart__row { vertical-align: middle; }
.nhe-woo-shipping-calc { margin-top: var(--nhe-s-3); }

/* Copy button label (the icon sits beside it) */
.nhe-woo-copy__label { display: inline; }

/* Email-only class: never rendered in the browser, but keep it harmless */
.nhe-woo-email-footer-contact { display: block; }

/* ==========================================================================
   13. RESPONSIVE
   ========================================================================== */
@media (max-width: 1200px) {
  .nhe-woo-products.columns-4,
  .nhe-woo-products.columns-5,
  .nhe-woo-products.columns-6 { --nhe-cols: 3; }
}

@media (max-width: 1024px) {
  /* Filter rail becomes an off-canvas sheet */
  .nhe-shop-layout { grid-template-columns: minmax(0, 1fr); }
  .nhe-shop-toolbar { display: block; }
  .nhe-shop-sidebar__close { display: inline-flex; }

  .nhe-shop-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: var(--nhe-z-drawer);
    width: min(360px, 88vw);
    padding: var(--nhe-s-4);
    background: var(--nhe-glass-thick-bg);
    -webkit-backdrop-filter: blur(var(--nhe-glass-thick-blur)) saturate(var(--nhe-glass-thick-sat));
    backdrop-filter: blur(var(--nhe-glass-thick-blur)) saturate(var(--nhe-glass-thick-sat));
    border-right: 1px solid rgba(255, 255, 255, 0.6);
    box-shadow: var(--nhe-shadow-xl);
    transform: translateX(-102%);
    transition: transform var(--nhe-dur-slow) var(--nhe-ease-out);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .nhe-shop-sidebar.active { transform: translateX(0); }
  .nhe-shop-sidebar__inner {
    position: static;
    max-height: none;
    padding: 0;
    background: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    border: 0;
    box-shadow: none;
  }

  .nhe-woo-single { grid-template-columns: minmax(0, 1fr); }
  form.checkout,
  .nhe-woo-checkout { grid-template-columns: minmax(0, 1fr); }
  .nhe-woo-account__layout { grid-template-columns: minmax(0, 1fr); }
  .woocommerce-MyAccount-navigation { position: static; }
  .cart-collaterals,
  .nhe-woo-cart__collaterals { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 768px) {
  .nhe-woo-products,
  .nhe-woo-products.columns-3,
  .nhe-woo-products.columns-4,
  .nhe-woo-products.columns-5,
  .nhe-woo-products.columns-6 { --nhe-cols: 2; }

  .woocommerce-billing-fields__field-wrapper,
  .woocommerce-shipping-fields__field-wrapper,
  .woocommerce-additional-fields__field-wrapper { grid-template-columns: minmax(0, 1fr); }

  /* Responsive tables: label each cell from its data-title */
  table.shop_table_responsive,
  .woocommerce-cart-form__contents,
  .woocommerce-orders-table { border: 0; background: transparent; }
  table.shop_table_responsive thead,
  .woocommerce-cart-form__contents thead,
  .woocommerce-orders-table thead { display: none; }
  table.shop_table_responsive tr,
  .woocommerce-cart-form__contents tr,
  .woocommerce-orders-table tr {
    display: block;
    margin-bottom: var(--nhe-s-4);
    padding: var(--nhe-s-4);
    border: 1px solid var(--nhe-line);
    border-radius: var(--nhe-r-md);
    background: var(--nhe-canvas-raised);
  }
  table.shop_table_responsive td,
  .woocommerce-cart-form__contents td,
  .woocommerce-orders-table td {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--nhe-s-4);
    padding: 9px 0;
    border-bottom: 1px solid var(--nhe-line);
    text-align: right;
  }
  table.shop_table_responsive td:last-child,
  .woocommerce-cart-form__contents td:last-child,
  .woocommerce-orders-table td:last-child { border-bottom: 0; }
  table.shop_table_responsive td::before,
  .woocommerce-cart-form__contents td::before,
  .woocommerce-orders-table td::before {
    content: attr(data-title);
    font-size: var(--nhe-fs-2xs);
    font-weight: 700;
    letter-spacing: var(--nhe-tracking-wide);
    text-transform: uppercase;
    color: var(--nhe-ink-faint);
    text-align: left;
    flex-shrink: 0;
  }
  .woocommerce-cart-form__cart-item .product-thumbnail { justify-content: flex-start; }
  .woocommerce-cart-form__cart-item .product-thumbnail::before { display: none; }
  .actions .coupon { flex-direction: column; }
  .actions .coupon input[type='text'] { max-width: none; }

  .woocommerce-form-coupon { grid-template-columns: minmax(0, 1fr); }
  .woocommerce-order-overview { grid-template-columns: minmax(0, 1fr); }
  .woocommerce-thankyou-order-received { font-size: var(--nhe-fs-2xl); padding-left: 56px; }
  .nhe-woo-vietqr-help__memo { flex-direction: column; align-items: stretch; }
  .nhe-woo-copy { margin-left: 0; width: 100%; }

  .nhe-woo-hero__title { font-size: var(--nhe-fs-4xl); }
  .nhe-woo-hero__meta { gap: var(--nhe-s-3); }
}

@media (max-width: 480px) {
  .nhe-woo-products .product .button { width: 100%; }
  .quantity { width: 100%; justify-content: space-between; }
  .single_add_to_cart_button { width: 100%; }
}

/* ==========================================================================
   14. MOTION GUARD + PRINT
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  .nhe-shop-sidebar { transition: none; }
  .nhe-woo-products .product img { transition: none; }
}

@media print {
  .nhe-shop-sidebar,
  .nhe-shop-toolbar,
  .woocommerce-pagination,
  .nhe-woo-vietqr-help,
  .nhe-woo-copy { display: none; }
  .woocommerce-order { max-width: none; }
}
