/* ============================================================
   NUTRIDIDI WOOCOMMERCE STYLES — PREMIUM REDESIGN
   ============================================================ */

/* ── SHOP PAGE ─────────────────────────────────────────────── */
.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 2rem !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.woocommerce ul.products li.product {
  background: white;
  border-radius: 2rem;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  border: 1px solid #DEE2E6;
  display: flex !important;
  flex-direction: column !important;
  position: relative;
  transition: all 0.35s cubic-bezier(0.34,1.56,0.64,1);
}
.woocommerce ul.products li.product:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 60px rgba(0,0,0,0.12);
}
.woocommerce ul.products li.product a img {
  width: 100% !important;
  height: 280px !important;
  object-fit: contain !important;
  object-position: center !important;
  display: block !important;
  padding: 1.25rem !important;
  background: #F8F9FA !important;
  box-sizing: border-box !important;
  transition: transform 0.4s ease !important;
}
.woocommerce ul.products li.product:hover a img {
  transform: scale(1.06) !important;
}
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
  position: absolute !important;
  display: inline-block !important;
  width: auto !important;
  min-width: unset !important;
  max-width: fit-content !important;
  background: #2D6A4F !important;
  color: white !important;
  border-radius: 9999px !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  padding: 0.2rem 0.75rem !important;
  top: 1rem !important;
  left: 1rem !important;
  z-index: 10 !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  color: #1B4332 !important;
  padding: 1rem 1rem 0.25rem !important;
  font-family: var(--font-serif) !important;
}
.woocommerce ul.products li.product .price {
  color: #2D6A4F !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  padding: 0 1rem 0.5rem !important;
  display: block !important;
}
.woocommerce ul.products li.product .price del {
  color: #6C757D !important;
  font-weight: 400 !important;
  font-size: 0.85rem !important;
  margin-right: 0.4rem;
}
.woocommerce ul.products li.product .price ins { text-decoration: none !important; }
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button {
  background: #2D6A4F !important;
  color: white !important;
  border-radius: 9999px !important;
  padding: 0.65rem 1.25rem !important;
  font-weight: 600 !important;
  font-size: 0.85rem !important;
  border: none !important;
  margin: 0 1rem 1rem !important;
  display: block !important;
  text-align: center !important;
  width: calc(100% - 2rem) !important;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product a.button:hover {
  background: #1B4332 !important;
}
@media (max-width: 900px) {
  .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 0.75rem !important; }
}
@media (max-width: 600px) {
  .woocommerce ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 0.65rem !important;
    padding: 0 !important;
  }
  .woocommerce ul.products li.product {
    border-radius: 1rem !important;
    padding: 0 !important;
    border: 1px solid #e5e7eb !important;
  }
  .woocommerce ul.products li.product a img {
    height: 130px !important;
    max-height: 130px !important;
    padding: 0.35rem !important;
    object-fit: contain !important;
  }
  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 0.85rem !important;
    padding: 0.4rem 0.5rem 0.15rem !important;
    line-height: 1.25 !important;
    min-height: 2.2em !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }
  .woocommerce ul.products li.product .price {
    font-size: 0.95rem !important;
    padding: 0 0.5rem 0.35rem !important;
  }
  .woocommerce ul.products li.product .button,
  .woocommerce ul.products li.product a.button {
    font-size: 0.76rem !important;
    padding: 0.45rem 0.4rem !important;
    margin: 0.2rem 0.4rem 0.5rem !important;
    width: calc(100% - 0.8rem) !important;
    border-radius: 50px !important;
    white-space: nowrap !important;
    text-align: center !important;
  }
}
/* ── SINGLE PRODUCT ─────────────────────────────────────────── */
.woocommerce div.product .woocommerce-product-gallery { border-radius: 1.25rem; overflow: hidden; box-shadow: var(--shadow-md); }
.woocommerce div.product .product_title { font-family: var(--font-serif); font-size: 2rem; color: var(--color-primary-dark); margin-bottom: 0.5rem; }
.woocommerce div.product p.price { font-size: 2rem; font-weight: 800; color: var(--color-primary-dark); margin-bottom: 1rem; }
.woocommerce div.product p.price del { color: var(--color-text-muted); font-size: 1.1rem; }
.woocommerce div.product p.price ins { text-decoration: none; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--color-text-muted); line-height: 1.7; margin-bottom: 1.5rem; }
.woocommerce div.product form.cart {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 1rem !important;
  margin: 1.5rem 0 !important;
  width: 100% !important;
  max-width: 520px !important;
  flex-wrap: nowrap !important;
}
.woocommerce div.product form.cart .quantity,
.nd-quantity-wrapper {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  background: #f8faf9 !important;
  border: 1.5px solid #2D6A4F !important;
  border-radius: 50px !important;
  padding: 4px 6px !important;
  height: 52px !important;
  width: 130px !important;
  min-width: 120px !important;
  box-sizing: border-box !important;
  box-shadow: 0 2px 6px rgba(45,106,79,0.08) !important;
  margin: 0 !important;
  float: none !important;
}
.woocommerce div.product form.cart .single_add_to_cart_button {
  flex: 1 1 auto !important;
  height: 52px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.6rem !important;
  background: linear-gradient(135deg, #2D6A4F 0%, #1B4332 100%) !important;
  color: white !important;
  border-radius: 50px !important;
  padding: 0 2rem !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  border: none !important;
  cursor: pointer !important;
  box-shadow: 0 6px 20px rgba(45,106,79,0.3) !important;
  transition: all 0.25s cubic-bezier(0.34,1.56,0.64,1) !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
  margin: 0 !important;
  float: none !important;
  clear: none !important;
  white-space: nowrap !important;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
  background: linear-gradient(135deg, #1B4332 0%, #0d281e 100%) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 10px 28px rgba(45,106,79,0.45) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; border-bottom: 2px solid var(--color-mid-grey); }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: none; border: none; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { font-weight: 600; color: var(--color-text-muted); padding: 0.75rem 1.25rem; display: inline-block; transition: color 0.2s; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--color-primary); border-bottom: 2px solid var(--color-primary); }

/* ── STAR RATINGS ────────────────────────────────────────────── */
.woocommerce .star-rating { color: #F59E0B; }

/* ── GLOBAL BUTTON OVERRIDES ─────────────────────────────────── */
.woocommerce button.button { background: var(--color-primary) !important; color: white !important; border-radius: var(--radius-full) !important; padding: 0.75rem 1.5rem !important; font-weight: 600 !important; transition: all 0.25s !important; }
.woocommerce button.button:hover { background: var(--color-primary-dark) !important; }
.woocommerce a.button { background: var(--color-primary); color: white; border-radius: var(--radius-full); padding: 0.75rem 1.5rem; font-weight: 600; }


/* ============================================================
   CART PAGE — PREMIUM REDESIGN
   ============================================================ */

.woocommerce-cart .nd-cart-trust-strip {
  background: linear-gradient(135deg, #1B4332, #2D6A4F);
  border-radius: 1rem;
  padding: 1rem 1.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
  justify-content: center;
  margin-bottom: 2rem;
}
.nd-cart-trust-strip .trust-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: white;
  font-size: 0.82rem;
  font-weight: 500;
}
.nd-cart-trust-strip .trust-item .icon { font-size: 1rem; }

.nd-checkout-progress {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-bottom: 2.5rem;
  padding: 0;
}
.nd-checkout-progress .step {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: #adb5bd;
}
.nd-checkout-progress .step.active { color: #2D6A4F; }
.nd-checkout-progress .step.done { color: #2D6A4F; }
.nd-checkout-progress .step-num {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #dee2e6;
  color: #adb5bd;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  font-weight: 700;
}
.nd-checkout-progress .step.active .step-num,
.nd-checkout-progress .step.done .step-num {
  background: #2D6A4F;
  color: white;
}
.nd-checkout-progress .step-divider {
  height: 2px;
  width: 60px;
  background: #dee2e6;
  margin: 0 0.5rem;
}

.woocommerce-cart .woocommerce {
  max-width: 1100px;
  margin: 0 auto;
  padding: 2.5rem 1.5rem;
}
.woocommerce table.shop_table {
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  width: 100%;
}
.woocommerce-cart table.cart thead { display: none; }
.woocommerce-cart table.cart tbody tr.cart_item {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  background: white;
  border-radius: 1.25rem;
  padding: 1.25rem;
  margin-bottom: 1rem;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
  border: 1px solid #f0f0f0;
  transition: box-shadow 0.2s;
}
.woocommerce-cart table.cart tbody tr.cart_item:hover {
  box-shadow: 0 4px 20px rgba(45,106,79,0.1);
  border-color: rgba(45,106,79,0.15);
}
.woocommerce-cart table.cart td { border: none !important; padding: 0 !important; background: none !important; }
.woocommerce-cart table.cart td.product-remove { order: 5; margin-left: auto; }
.woocommerce-cart table.cart td.product-remove a {
  color: #adb5bd !important;
  font-size: 1.4rem;
  font-weight: 300;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  transition: all 0.2s;
}
.woocommerce-cart table.cart td.product-remove a:hover {
  background: #fee2e2;
  color: #ef4444 !important;
}
.woocommerce-cart table.cart td.product-thumbnail { width: 90px; flex-shrink: 0; }
.woocommerce-cart table.cart td.product-thumbnail img {
  width: 90px !important;
  height: 90px !important;
  object-fit: cover;
  border-radius: 0.75rem;
  border: 1px solid #f0f0f0;
}
.woocommerce-cart table.cart td.product-name { flex: 1; min-width: 0; }
.woocommerce-cart table.cart td.product-name a {
  font-weight: 700;
  font-size: 1rem;
  color: #1B4332 !important;
  font-family: var(--font-serif);
  display: block;
  margin-bottom: 0.25rem;
}
.woocommerce-cart table.cart td.product-name a:hover { color: #2D6A4F !important; }
.woocommerce-cart table.cart td.product-price {
  font-size: 0.85rem;
  color: #6C757D;
  text-decoration: line-through;
  min-width: 60px;
  text-align: center;
}
.woocommerce-cart table.cart td.product-quantity { min-width: 120px; }
.woocommerce-cart table.cart td.product-quantity .quantity {
  display: flex;
  align-items: center;
  gap: 0;
  background: #f8f9fa;
  border-radius: 50px;
  padding: 0.2rem;
  border: 1px solid #dee2e6;
}
.woocommerce-cart table.cart td.product-quantity .qty {
  width: 40px !important;
  text-align: center;
  border: none !important;
  background: transparent !important;
  font-weight: 700;
  font-size: 1rem;
  color: #1B4332;
  outline: none;
  -moz-appearance: textfield;
}
.woocommerce-cart table.cart td.product-quantity .qty::-webkit-inner-spin-button,
.woocommerce-cart table.cart td.product-quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; }
.woocommerce-cart table.cart td.product-subtotal {
  font-weight: 800;
  font-size: 1.1rem;
  color: #1B4332;
  min-width: 80px;
  text-align: right;
}
.woocommerce-cart table.cart td.product-subtotal .woocommerce-Price-amount { color: #1B4332; }

.woocommerce-cart table.cart .quantity .nd-qty-btn {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: none;
  background: white;
  color: #2D6A4F;
  font-size: 1.2rem;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  box-shadow: 0 1px 4px rgba(0,0,0,0.1);
  transition: all 0.2s;
}
.woocommerce-cart table.cart .quantity .nd-qty-btn:hover {
  background: #2D6A4F;
  color: white;
}
.woocommerce-cart table.cart .actions { display: none; }

.woocommerce-cart .cart-collaterals { margin-top: 1.5rem; }
.woocommerce-cart .cart-collaterals .cart_totals {
  background: white;
  border-radius: 1.5rem;
  box-shadow: 0 4px 24px rgba(45,106,79,0.1);
  padding: 2rem;
  border: 1px solid rgba(45,106,79,0.08);
  max-width: 420px;
  margin-left: auto;
}
.woocommerce-cart .cart_totals h2 {
  font-family: var(--font-serif);
  font-size: 1.3rem;
  color: #1B4332;
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #f0f0f0;
}
.woocommerce-cart .cart_totals table.shop_table { width: 100%; margin-bottom: 1.25rem; }
.woocommerce-cart .cart_totals table.shop_table tr { display: flex; justify-content: space-between; padding: 0.6rem 0; border-bottom: 1px solid #f8f9fa; }
.woocommerce-cart .cart_totals table.shop_table tr:last-child { border-bottom: none; }
.woocommerce-cart .cart_totals table.shop_table th { font-size: 0.9rem; font-weight: 600; background: none !important; color: #6C757D !important; text-transform: none !important; letter-spacing: 0 !important; padding: 0 !important; }
.woocommerce-cart .cart_totals table.shop_table td { font-size: 0.95rem; color: #1B4332; font-weight: 600; padding: 0 !important; border: none !important; }
.woocommerce-cart .cart_totals table.shop_table tr.order-total th { font-size: 1rem; color: #1B4332; font-weight: 700; }
.woocommerce-cart .cart_totals table.shop_table tr.order-total td { font-size: 1.3rem; font-weight: 800; color: #1B4332; }
.woocommerce-cart .cart_totals table.shop_table tr.order-total { padding-top: 1rem; margin-top: 0.5rem; border-top: 2px solid #dee2e6; }

.woocommerce-cart .coupon {
  background: #f8fffe;
  border: 1px dashed rgba(45,106,79,0.3);
  border-radius: 1rem;
  padding: 1rem 1.25rem;
  display: flex;
  gap: 0.5rem;
  align-items: center;
  margin-bottom: 1.5rem;
}
.woocommerce-cart .coupon label { display: none; }
.woocommerce-cart .coupon .input-text {
  flex: 1;
  border: 1px solid #dee2e6;
  border-radius: 50px;
  padding: 0.6rem 1rem;
  font-size: 0.9rem;
  outline: none;
  transition: border-color 0.2s;
}
.woocommerce-cart .coupon .input-text:focus { border-color: #2D6A4F; }
.woocommerce-cart .coupon .button {
  background: #2D6A4F !important;
  color: white !important;
  border-radius: 50px !important;
  padding: 0.6rem 1.25rem !important;
  font-size: 0.88rem !important;
  font-weight: 600 !important;
  white-space: nowrap;
}

.woocommerce-cart .wc-proceed-to-checkout { margin-top: 0; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
  display: block;
  width: 100%;
  text-align: center;
  background: linear-gradient(135deg, #2D6A4F, #1B4332) !important;
  color: white !important;
  border-radius: 50px !important;
  padding: 1rem 2rem !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em;
  box-shadow: 0 6px 24px rgba(45,106,79,0.35) !important;
  transition: all 0.25s !important;
  border: none !important;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 32px rgba(45,106,79,0.45) !important;
}

.nd-cart-security {
  margin-top: 1.25rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem 1rem;
}
.nd-cart-security .sec-badge {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.75rem;
  color: #6C757D;
  font-weight: 500;
}

.nd-cart-save-banner {
  background: linear-gradient(135deg, #D8F3DC, #B7E4C7);
  border-radius: 0.75rem;
  padding: 0.75rem 1rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.88rem;
  color: #1B4332;
  font-weight: 600;
  margin-bottom: 1.25rem;
}

.woocommerce-cart .woocommerce-cart-form { margin-bottom: 0; }

@media (max-width: 900px) {
  .woocommerce-cart .cart_totals { max-width: 100%; }
  .woocommerce-cart table.cart tbody tr.cart_item { flex-wrap: wrap; }
}
@media (max-width: 600px) {
  .woocommerce-cart table.cart tbody tr.cart_item { padding: 1rem; gap: 0.75rem; }
  .woocommerce-cart table.cart td.product-thumbnail { width: 70px; }
  .woocommerce-cart table.cart td.product-thumbnail img { width: 70px !important; height: 70px !important; }
  .woocommerce-cart table.cart td.product-name { flex-basis: 100%; order: 1; min-width: 100%; }
  .woocommerce-cart table.cart td.product-thumbnail { order: 0; }
  .woocommerce-cart table.cart td.product-remove { order: 2; margin-left: 0; }
  .woocommerce-cart table.cart td.product-price { display: none; }
  .woocommerce-cart table.cart td.product-quantity { order: 3; min-width: 0; }
  .woocommerce-cart table.cart td.product-subtotal { order: 4; margin-left: auto; min-width: 0; text-align: right; }
  .woocommerce-cart .coupon { flex-wrap: wrap; }
  .woocommerce-cart .coupon .input-text { flex-basis: 100%; }
  .woocommerce-cart .coupon .button { flex: 1; }
}


/* ============================================================
   CHECKOUT PAGE — PREMIUM REDESIGN
   ============================================================ */

.woocommerce-checkout .woocommerce {
  max-width: 1100px;
  margin: 0 auto;
  padding: 2.5rem 1.5rem;
}

.nd-checkout-steps {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 2.5rem;
}
.nd-checkout-steps .cstep {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
}
.nd-checkout-steps .cstep-num {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.85rem;
  background: #dee2e6;
  color: #adb5bd;
  transition: all 0.3s;
}
.nd-checkout-steps .cstep.done .cstep-num { background: #2D6A4F; color: white; }
.nd-checkout-steps .cstep.active .cstep-num { background: #2D6A4F; color: white; box-shadow: 0 4px 12px rgba(45,106,79,0.35); }
.nd-checkout-steps .cstep-label {
  font-size: 0.72rem;
  font-weight: 600;
  color: #adb5bd;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.nd-checkout-steps .cstep.done .cstep-label,
.nd-checkout-steps .cstep.active .cstep-label { color: #2D6A4F; }
.nd-checkout-steps .cstep-line {
  width: 80px;
  height: 2px;
  background: #dee2e6;
  margin: 0 0.5rem;
  margin-bottom: 1.4rem;
  transition: background 0.3s;
}
.nd-checkout-steps .cstep-line.done { background: #2D6A4F; }

/* NOTE: The old 2-column grid rule that used to live here
   (`.woocommerce-checkout form.checkout { display:grid; grid-template-columns:1.2fr 1fr }`
   plus `#customer_details` / `#order_review_heading` / `#order_review` column
   assignments) was written for WooCommerce's DEFAULT checkout markup.
   The current theme's woocommerce/checkout/form-checkout.php template no
   longer outputs those IDs — it renders its own `.nd-checkout-layout`
   wrapper instead, which already defines its own correct 2-column grid
   (see .nd-checkout-layout in premium-cart.css). Because `.nd-checkout-layout`
   was the *only* child of the old grid, it was being squeezed into just the
   1.2fr (~55%) column on desktop, leaving the rest of the page blank and the
   real form/summary columns overlapping/misaligned — this was the cause of
   the broken desktop checkout layout. Removed. */

.woocommerce-checkout .col2-set {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 1.25rem !important;
  align-items: start;
}
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 { width: 100% !important; float: none !important; }

.woocommerce-checkout #customer_details {
  background: white;
  border-radius: 1.5rem;
  padding: 2rem;
  box-shadow: 0 4px 24px rgba(0,0,0,0.06);
  border: 1px solid rgba(45,106,79,0.06);
  margin-bottom: 1.5rem;
}

.woocommerce-checkout h3#ship-to-different-address,
.woocommerce-checkout h3.woocommerce-column__title,
.woocommerce-checkout h3#order_review_heading {
  font-family: var(--font-serif) !important;
  font-size: 1.15rem !important;
  color: #1B4332 !important;
  margin-bottom: 1.25rem !important;
  padding-bottom: 0.75rem !important;
  border-bottom: 2px solid #D8F3DC !important;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem 1rem;
}
.woocommerce-billing-fields__field-wrapper .form-row.form-row-wide,
.woocommerce-billing-fields__field-wrapper .form-row.form-row-first.address-field,
.woocommerce-shipping-fields__field-wrapper .form-row.form-row-wide {
  grid-column: 1 / -1;
}

.woocommerce-checkout .form-row { margin-bottom: 0 !important; }
.woocommerce-checkout .form-row label {
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  color: #495057 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin-bottom: 0.35rem !important;
  display: block !important;
}
.woocommerce-checkout .form-row label .required { color: #ef4444; margin-left: 2px; }
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
  width: 100% !important;
  border: 1.5px solid #dee2e6 !important;
  border-radius: 0.75rem !important;
  padding: 0.75rem 1rem !important;
  font-size: 0.95rem !important;
  color: #1a1a1a !important;
  background: #fafafa !important;
  transition: all 0.2s !important;
  outline: none !important;
  box-shadow: none !important;
  font-family: var(--font-sans) !important;
}
.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus {
  border-color: #2D6A4F !important;
  background: white !important;
  box-shadow: 0 0 0 3px rgba(45,106,79,0.08) !important;
}
.woocommerce-checkout .form-row.woocommerce-invalid input.input-text,
.woocommerce-checkout .form-row.woocommerce-invalid select {
  border-color: #ef4444 !important;
}

.woocommerce-checkout #billing_country_field,
.woocommerce-checkout #billing_address_1_field,
.woocommerce-checkout #billing_address_2_field,
.woocommerce-checkout #billing_state_field,
.woocommerce-checkout #billing_district_field,
.woocommerce-checkout #billing_city_field,
.woocommerce-checkout #billing_postcode_field,
.woocommerce-checkout #billing_phone_field,
.woocommerce-checkout #billing_email_field,
.woocommerce-checkout #shipping_country_field,
.woocommerce-checkout #shipping_address_1_field,
.woocommerce-checkout #shipping_address_2_field,
.woocommerce-checkout #shipping_state_field,
.woocommerce-checkout #shipping_district_field,
.woocommerce-checkout #shipping_city_field,
.woocommerce-checkout #shipping_postcode_field { grid-column: 1 / -1; }

.select2-container--default .select2-selection--single {
  border: 1.5px solid #dee2e6 !important;
  border-radius: 0.75rem !important;
  height: auto !important;
  padding: 0.75rem 1rem !important;
  background: #fafafa !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 1.5 !important;
  padding: 0 !important;
  font-size: 0.95rem !important;
  color: #1a1a1a !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100% !important;
  right: 0.75rem !important;
}

#order_review_heading {
  font-family: var(--font-serif) !important;
  font-size: 1.15rem !important;
  color: #1B4332 !important;
  margin-bottom: 1.25rem !important;
  padding-bottom: 0.75rem !important;
  border-bottom: 2px solid #D8F3DC !important;
}
#order_review {
  background: white;
  border-radius: 1.5rem;
  padding: 2rem;
  box-shadow: 0 4px 24px rgba(0,0,0,0.06);
  border: 1px solid rgba(45,106,79,0.06);
  position: sticky;
  top: 90px;
}

#order_review table.shop_table { width: 100%; border: none !important; box-shadow: none !important; margin-bottom: 1rem; }
#order_review table.shop_table thead tr { display: flex; justify-content: space-between; padding-bottom: 0.5rem; border-bottom: 2px solid #f0f0f0; margin-bottom: 0.5rem; }
#order_review table.shop_table thead th { background: none !important; color: #6C757D !important; font-size: 0.75rem !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 0.06em !important; padding: 0 !important; }
#order_review table.shop_table tbody tr { display: flex; justify-content: space-between; align-items: center; padding: 0.75rem 0; border-bottom: 1px solid #f8f9fa; }
#order_review table.shop_table tbody td { border: none !important; padding: 0 !important; font-size: 0.9rem; }
#order_review table.shop_table tbody td.product-name {
  font-weight: 600;
  color: #1B4332;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  word-wrap: normal !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  white-space: normal !important;
}
#order_review table.shop_table tbody td.product-name .product-quantity { color: #6C757D; font-weight: 400; font-size: 0.82rem; }
#order_review table.shop_table tbody td.product-total {
  font-weight: 700;
  color: #1B4332;
  flex: 0 0 auto !important;
  white-space: nowrap !important;
  margin-left: 1rem;
}
#order_review table.shop_table tfoot tr { display: flex; justify-content: space-between; padding: 0.6rem 0; }
#order_review table.shop_table tfoot td, #order_review table.shop_table tfoot th { border: none !important; padding: 0 !important; font-size: 0.9rem; }
#order_review table.shop_table tfoot tr.order-total { border-top: 2px solid #dee2e6; padding-top: 1rem; margin-top: 0.25rem; }
#order_review table.shop_table tfoot tr.order-total th, #order_review table.shop_table tfoot tr.order-total td { font-size: 1.15rem !important; font-weight: 800 !important; color: #1B4332 !important; }
#order_review table.shop_table tfoot tr.order-total td .woocommerce-Price-amount { color: #2D6A4F; }

#order_review .woocommerce-product-details__short-description { display: none; }
#order_review .product-thumbnail img { width: 52px; height: 52px; object-fit: cover; border-radius: 0.5rem; border: 1px solid #f0f0f0; }

.woocommerce-checkout-review-order .wc_payment_method label { cursor: pointer; }
.woocommerce form.checkout_coupon {
  background: #f8fffe;
  border: 1px dashed rgba(45,106,79,0.3) !important;
  border-radius: 1rem !important;
  padding: 1rem 1.25rem !important;
  display: flex !important;
  gap: 0.5rem;
  margin-bottom: 1.5rem !important;
}
.woocommerce form.checkout_coupon input.input-text { flex: 1 !important; min-width: 0 !important; border-radius: 50px !important; padding: 0.6rem 1rem !important; }
.woocommerce form.checkout_coupon .button { border-radius: 50px !important; padding: 0.6rem 1.25rem !important; font-weight: 600 !important; white-space: nowrap; }

#payment {
  background: white;
  border-radius: 1.5rem;
  padding: 2rem;
  box-shadow: 0 4px 24px rgba(0,0,0,0.06);
  border: 1px solid rgba(45,106,79,0.06);
  margin-top: 1.5rem;
}
#payment h3 {
  font-family: var(--font-serif) !important;
  font-size: 1.1rem !important;
  color: #1B4332 !important;
  margin-bottom: 1.25rem !important;
  padding-bottom: 0.75rem !important;
  border-bottom: 2px solid #D8F3DC !important;
}
#payment ul.payment_methods { list-style: none; margin-bottom: 1.25rem; }
#payment ul.payment_methods li.payment_method_razorpay,
#payment ul.payment_methods li {
  background: #f8fffe;
  border: 2px solid transparent;
  border-radius: 1rem;
  padding: 1rem 1.25rem;
  margin-bottom: 0.75rem;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
#payment ul.payment_methods li.payment_method_razorpay:has(input:checked),
#payment ul.payment_methods li:has(input:checked) {
  border-color: #2D6A4F;
  background: #f0fdf4;
}
#payment ul.payment_methods li input[type="radio"] {
  width: 18px;
  height: 18px;
  accent-color: #2D6A4F;
  flex-shrink: 0;
}
#payment ul.payment_methods li label { cursor: pointer; font-weight: 600; font-size: 0.95rem; color: #1B4332; }
.payment_box { background: #f8fffe; border-radius: 0.75rem; padding: 0.75rem 1rem; margin-top: 0.5rem; font-size: 0.85rem; color: #6C757D; }

.nd-checkout-security {
  background: linear-gradient(135deg, #f0fdf4, #d8f3dc);
  border-radius: 1rem;
  padding: 1rem 1.25rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}
.nd-checkout-security .sec-icon { font-size: 1.5rem; flex-shrink: 0; }
.nd-checkout-security .sec-text { font-size: 0.82rem; color: #1B4332; font-weight: 500; line-height: 1.4; }
.nd-checkout-security .sec-text strong { display: block; font-size: 0.88rem; }

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { font-size: 0.82rem; color: #6C757D; margin: 1rem 0; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a { color: #2D6A4F; font-weight: 600; }

#place_order,
.woocommerce #payment #place_order {
  display: block !important;
  width: 100% !important;
  background: linear-gradient(135deg, #2D6A4F, #1B4332) !important;
  color: white !important;
  border-radius: 50px !important;
  padding: 1.1rem 2rem !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em;
  box-shadow: 0 6px 24px rgba(45,106,79,0.35) !important;
  transition: all 0.25s !important;
  border: none !important;
  cursor: pointer;
  margin-top: 1rem !important;
}
#place_order:hover,
.woocommerce #payment #place_order:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 32px rgba(45,106,79,0.45) !important;
}

.nd-payment-badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem 1rem;
  margin-top: 1.25rem;
}
.nd-payment-badges .pay-badge { display: flex; align-items: center; gap: 0.35rem; font-size: 0.72rem; color: #6C757D; font-weight: 500; }

.nd-checkout-trust-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  justify-content: center;
  padding: 1.25rem;
  background: #f8fffe;
  border-radius: 1rem;
  margin-top: 1.25rem;
}
.nd-checkout-trust-row .tr-badge { display: flex; align-items: center; gap: 0.4rem; font-size: 0.78rem; color: #495057; font-weight: 500; }

.woocommerce-additional-fields__field-wrapper textarea {
  border: 1.5px solid #dee2e6 !important;
  border-radius: 0.75rem !important;
  padding: 0.75rem 1rem !important;
  font-size: 0.9rem !important;
  width: 100% !important;
  resize: vertical !important;
  background: #fafafa !important;
  font-family: var(--font-sans) !important;
}
.woocommerce-additional-fields__field-wrapper textarea:focus {
  border-color: #2D6A4F !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(45,106,79,0.08) !important;
}

@media (max-width: 900px) {
  .woocommerce-checkout .col2-set { grid-template-columns: 1fr !important; }
  .nd-checkout-steps .cstep-line { width: 40px; }
}
@media (max-width: 600px) {
  .woocommerce-checkout .woocommerce { padding: 1.5rem 1rem; }
  #order_review, #payment, .woocommerce-checkout #customer_details { padding: 1.25rem; border-radius: 1rem; }
  .woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr !important; }
  .woocommerce form.checkout_coupon { flex-wrap: wrap; }
  .woocommerce form.checkout_coupon input.input-text { flex-basis: 100% !important; }
  .woocommerce form.checkout_coupon .button { flex: 1; }
}

/* ── MY ACCOUNT ─────────────────────────────────────────────── */
.woocommerce-MyAccount-navigation { background: var(--color-cream); border-radius: 1rem; padding: 1rem; overflow: hidden; }
.woocommerce-MyAccount-navigation ul li a { display: flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1rem; border-radius: 0.5rem; color: var(--color-text); font-weight: 500; transition: all 0.2s; }
.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li a:hover { background: var(--color-primary); color: white; }

/* View Cart link — prominent highlight after Add to Cart */
.woocommerce a.added_to_cart {
  display: inline-block !important;
  margin-top: 0.5rem !important;
  padding: 0.4rem 1rem !important;
  background: #fff !important;
  color: #2D6A4F !important;
  border: 2px solid #2D6A4F !important;
  border-radius: 9999px !important;
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.woocommerce a.added_to_cart:hover {
  background: #2D6A4F !important;
  color: #fff !important;
}

/* ── Shop Ordering Dropdown ── */
.woocommerce-ordering {
  margin-bottom: 1.5rem !important;
}

.woocommerce-ordering select.orderby {
  appearance: none !important;
  -webkit-appearance: none !important;
  background-color: #fff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%232D6A4F' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 0.85rem center !important;
  border: 1.5px solid #2D6A4F !important;
  border-radius: 9999px !important;
  color: #2D6A4F !important;
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  padding: 0.45rem 2.2rem 0.45rem 1rem !important;
  cursor: pointer !important;
  outline: none !important;
  transition: box-shadow 0.2s ease !important;
  min-width: 160px !important;
}

.woocommerce-ordering select.orderby:hover,
.woocommerce-ordering select.orderby:focus {
  box-shadow: 0 0 0 3px rgba(45,106,79,0.15) !important;
}

/* ── PINCODE CHECKER (PREMIUM) ───────────────────────────── */
input[placeholder="Enter Pincode"] {
  border: 1.5px solid var(--color-mid-grey) !important;
  border-radius: 50px !important;
  padding: 0.7rem 1.25rem !important;
  font-size: 0.9rem !important;
  outline: none !important;
  transition: all 0.2s !important;
  background: var(--color-light-grey) !important;
  margin-right: 0.5rem !important;
}
input[placeholder="Enter Pincode"]:focus {
  border-color: var(--color-primary) !important;
  background: white !important;
  box-shadow: 0 0 0 3px rgba(45,106,79,0.1) !important;
}
input[placeholder="Enter Pincode"] + a,
input[placeholder="Enter Pincode"] + button,
input[placeholder="Enter Pincode"] ~ a,
input[placeholder="Enter Pincode"] ~ button {
  color: var(--color-primary) !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  text-decoration: none !important;
  border-bottom: 1.5px solid var(--color-primary) !important;
}
.nd-qty-total {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--color-primary-dark);
  background: var(--color-accent-soft);
  border-radius: 0.75rem;
  padding: 0.6rem 1rem;
  margin-bottom: 1.25rem;
  display: inline-block;
}

/* ============================================================
   PREMIUM CART & CHECKOUT (WooCommerce Blocks)
   ============================================================ */
/* The page.php template wraps every page in .container-sm (720px),
   which stops the Cart/Checkout blocks from ever detecting enough
   room to switch to their 2-column desktop layout. Widen it just
   for the cart/checkout pages. */
body.woocommerce-cart .container-sm,
body.woocommerce-checkout .container-sm {
  max-width: var(--container-max) !important;
}

/* Prevent product names in the cart/order-summary sidebar from
   shrinking to near-zero width and breaking letter-by-letter. */
.wc-block-components-order-summary-item,
.wc-block-cart-item__row,
.wc-block-cart-items__row {
  min-width: 0 !important;
}
.wc-block-components-order-summary-item__description,
.wc-block-components-product-name,
.wc-block-cart-item__description {
  min-width: 0 !important;
  flex: 1 1 auto !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  white-space: normal !important;
}
.wc-block-components-order-summary-item__total-price,
.wc-block-cart-item__total {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
}
.wc-block-cart, .wc-block-checkout {
  max-width: var(--container-max) !important;
  margin: 0 auto !important;
  padding: 0 var(--space-xl) var(--space-3xl) !important;
}
@media (max-width: 600px) {
  .wc-block-cart, .wc-block-checkout {
    padding: 0 var(--space-md) var(--space-lg) !important;
  }
  .wc-block-cart-items, .wc-block-components-sidebar,
  .wc-block-checkout__form, .wc-block-checkout__sidebar {
    padding: var(--space-md) !important;
  }
}
.wc-block-cart-items, .wc-block-components-sidebar,
.wc-block-checkout__form, .wc-block-checkout__sidebar {
  background: var(--color-white) !important;
  border-radius: var(--radius-xl) !important;
  box-shadow: var(--shadow-md) !important;
  border: 1px solid var(--color-mid-grey) !important;
  padding: var(--space-xl) !important;
}

.wc-block-components-product-name {
  font-family: var(--font-serif) !important;
  color: var(--color-text) !important;
  font-weight: 600 !important;
}
.wc-block-components-product-price .wc-block-components-formatted-money-amount {
  color: var(--color-primary-dark) !important;
  font-weight: 700 !important;
}

.wc-block-components-quantity-selector {
  border: 1.5px solid var(--color-mid-grey) !important;
  border-radius: var(--radius-full) !important;
  overflow: hidden !important;
}
.wc-block-components-quantity-selector__button {
  color: var(--color-primary) !important;
  font-weight: 700 !important;
}
.wc-block-components-quantity-selector__input { font-weight: 600 !important; }

.wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  color: var(--color-primary-dark) !important;
  font-weight: 700 !important;
}
.wc-block-components-totals-item__label,
.wc-block-components-title {
  font-family: var(--font-serif) !important;
  color: var(--color-text) !important;
}
.wc-block-components-panel {
  border-radius: var(--radius-lg) !important;
  border: 1px solid var(--color-mid-grey) !important;
}

.wc-block-components-totals-coupon__input input,
.wc-block-components-text-input input,
.wc-block-components-address-form input {
  border: 1.5px solid var(--color-mid-grey) !important;
  border-radius: var(--radius-md) !important;
  padding: 0.85rem 1rem !important;
  transition: all var(--transition-base) !important;
}

.wc-block-components-address-form select,
.wc-block-components-select-input select {
  border: 1.5px solid var(--color-mid-grey) !important;
  border-radius: var(--radius-md) !important;
  transition: all var(--transition-base) !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-address-form input:focus {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 3px rgba(45,106,79,0.1) !important;
}

.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-proceed-to-checkout-block a {
  background: var(--color-primary) !important;
  border-radius: var(--radius-full) !important;
  font-weight: 700 !important;
  padding: 1rem 2rem !important;
  transition: all var(--transition-base) !important;
  box-shadow: var(--shadow-green) !important;
}
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
  background: var(--color-primary-dark) !important;
  transform: translateY(-2px) !important;
}

.wc-block-components-sale-badge, .wc-block-components-product-badge {
  background: var(--color-gold) !important;
  color: var(--color-primary-dark) !important;
  border-radius: var(--radius-full) !important;
  font-weight: 700 !important;
}

.nd-block-trust-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  justify-content: center;
  background: var(--color-accent-soft);
  border-radius: var(--radius-lg);
  padding: 0.85rem 1.25rem;
  margin-bottom: 1.5rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--color-primary-dark);
}
.nd-block-trust-strip .trust-item { display: flex; align-items: center; gap: 0.4rem; }

/* ============================================================
   PRODUCT STORY SECTION (Premium)
   ============================================================ */
.nd-product-story {
  max-width: 1200px;
  margin: 3rem auto;
  padding: 0 1.5rem;
}
.nd-story-tagline {
  font-family: var(--font-serif);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--color-primary-dark);
  text-align: center;
  max-width: 780px;
  margin: 0 auto 2.5rem;
  line-height: 1.4;
  position: relative;
  padding-bottom: 1rem;
}
.nd-story-tagline::after {
  content: '';
  position: absolute;
  bottom: 0; left: 50%;
  transform: translateX(-50%);
  width: 60px; height: 3px;
  background: var(--color-gold);
  border-radius: 999px;
}
.nd-story-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  margin-bottom: 2rem;
}
.nd-story-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,0.06);
  border-radius: var(--radius-lg);
  padding: 1.75rem 1.25rem;
  text-align: center;
  box-shadow: var(--shadow-sm);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.nd-story-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}
.nd-story-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px; height: 56px;
  font-size: 1.6rem;
  background: var(--color-beige);
  border-radius: 50%;
  margin-bottom: 1rem;
}
.nd-story-card h4 {
  font-family: var(--font-sans);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 0.5rem;
}
.nd-story-card p {
  font-size: 0.87rem;
  color: #6b7280;
  line-height: 1.5;
  margin: 0;
}
.nd-story-usage {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  background: var(--color-cream);
  border: 1px dashed var(--color-gold);
  border-radius: var(--radius-lg);
  padding: 1.25rem 1.5rem;
}
.nd-usage-icon { font-size: 1.8rem; flex-shrink: 0; }
.nd-story-usage strong {
  display: block;
  font-family: var(--font-serif);
  color: var(--color-primary-dark);
  margin-bottom: 0.25rem;
  font-size: 1rem;
}
.nd-story-usage p { margin: 0; font-size: 0.88rem; color: var(--color-text); line-height: 1.5; }

@media (max-width: 900px) {
  .nd-story-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 500px) {
  .nd-story-grid { grid-template-columns: 1fr; }
  .nd-story-tagline { font-size: 1.15rem; }
}

/* ============================================================
   CUSTOMER REVIEWS SECTION (Amazon-style Premium)
   ============================================================ */
#reviews.woocommerce-Reviews {
  max-width: 1200px;
  margin: 3rem auto;
  padding: 0 1.5rem;
}
#reviews .woocommerce-Reviews-title {
  font-family: var(--font-serif);
  font-size: 1.6rem;
  color: var(--color-primary-dark);
  margin-bottom: 1.5rem;
}
.woocommerce-Reviews ol.commentlist {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.woocommerce-Reviews .comment_container {
  display: flex;
  gap: 1rem;
  background: #fff;
  border: 1px solid rgba(0,0,0,0.07);
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  box-shadow: var(--shadow-sm);
}
.woocommerce-Reviews .comment_container img.avatar {
  width: 46px !important;
  height: 46px !important;
  border-radius: 50% !important;
  flex-shrink: 0;
  border: 2px solid var(--color-beige);
}
.woocommerce-Reviews .comment-text { flex: 1; min-width: 0; }
.woocommerce-Reviews .star-rating {
  color: var(--color-gold) !important;
  font-size: 0.95rem !important;
  margin-bottom: 0.4rem !important;
}
.woocommerce-review__author {
  font-family: var(--font-sans);
  font-weight: 700 !important;
  color: var(--color-text) !important;
  font-size: 0.95rem;
}
.woocommerce-review__verified {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  color: var(--color-primary) !important;
  font-weight: 600;
  font-size: 0.78rem;
  background: rgba(45,106,79,0.08);
  padding: 0.15rem 0.6rem;
  border-radius: 999px;
  margin-left: 0.5rem;
}
.woocommerce-review__dash { display: none; }
.woocommerce-review__published-date {
  display: block;
  color: #9ca3af !important;
  font-size: 0.78rem;
  margin-top: 0.15rem;
}
.woocommerce-Reviews .description p {
  margin: 0.6rem 0 0;
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--color-text);
}

.nd-nutrition-box {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  background: var(--color-cream);
  border: 1px solid rgba(0,0,0,0.06);
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  margin: 1.5rem 0;
}
.nd-nutrition-col h4 {
  font-family: var(--font-serif);
  color: var(--color-primary-dark);
  font-size: 1rem;
  margin: 0 0 0.75rem;
}
.nd-nutrition-col h4 span { font-size: 0.75rem; color: #9ca3af; font-weight: 400; }
.nd-ingredient-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0.75rem; }
.nd-chip {
  background: #fff;
  border: 1px solid var(--color-gold);
  color: var(--color-primary-dark);
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.3rem 0.75rem;
  border-radius: 999px;
}
.nd-free-from { font-size: 0.78rem; color: #6b7280; line-height: 1.5; margin: 0; }
.nd-nutrition-table { width: 100%; border-collapse: collapse; }
.nd-nutrition-table tr { border-bottom: 1px solid rgba(0,0,0,0.07); }
.nd-nutrition-table tr:last-child { border-bottom: none; }
.nd-nutrition-table td { padding: 0.4rem 0; font-size: 0.85rem; color: var(--color-text); }
.nd-nutrition-table td:last-child { text-align: right; font-weight: 700; color: var(--color-primary-dark); }

@media (max-width: 640px) {
  .nd-nutrition-box { grid-template-columns: 1fr; }
}

/* ============================================================
   MOBILE CART FIXES — Text Breaking Issue
   ============================================================ */

@media (max-width: 600px) {
  /* Cart item container fix */
  .woocommerce-cart table.cart tbody tr.cart_item {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    padding: 1rem !important;
    gap: 0.75rem !important;
  }

  /* Product name - fix text breaking */
  .woocommerce-cart table.cart td.product-name {
    flex: 1 1 calc(100% - 90px) !important;
    min-width: 0 !important;
    order: 1 !important;
    /* Yeh important hai - text breaking fix */
    word-break: normal !important;
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
    white-space: normal !important;
  }

  .woocommerce-cart table.cart td.product-name a {
    font-size: 0.95rem !important;
    line-height: 1.4 !important;
    display: block !important;
    /* Prevent character breaking */
    word-break: normal !important;
    overflow-wrap: break-word !important;
    hyphens: none !important;
  }

  /* Thumbnail fix */
  .woocommerce-cart table.cart td.product-thumbnail {
    width: 70px !important;
    flex-shrink: 0 !important;
    order: 0 !important;
  }

  .woocommerce-cart table.cart td.product-thumbnail img {
    width: 70px !important;
    height: 70px !important;
  }

  /* Price section fix */
  .woocommerce-cart table.cart td.product-price {
    display: none !important;
  }

  /* Quantity selector fix */
  .woocommerce-cart table.cart td.product-quantity {
    order: 2 !important;
    min-width: auto !important;
    margin-top: 0.5rem !important;
  }

  /* Subtotal fix */
  .woocommerce-cart table.cart td.product-subtotal {
    order: 3 !important;
    margin-left: auto !important;
    text-align: right !important;
    font-size: 1rem !important;
    min-width: auto !important;
    /* Fix price breaking */
    word-break: normal !important;
    white-space: nowrap !important;
  }

  /* Remove button fix */
  .woocommerce-cart table.cart td.product-remove {
    order: 4 !important;
    margin-left: 0 !important;
    margin-top: 0.5rem !important;
  }

  /* Cart totals fix */
  .woocommerce-cart .cart-collaterals .cart_totals {
    max-width: 100% !important;
    padding: 1.25rem !important;
  }

  /* Coupon section fix */
  .woocommerce-cart .coupon {
    flex-direction: column !important;
    gap: 0.75rem !important;
  }

  .woocommerce-cart .coupon .input-text {
    width: 100% !important;
    flex-basis: auto !important;
  }

  .woocommerce-cart .coupon .button {
    width: 100% !important;
  }
}

/* ============================================================
   BILLING ADDRESS TEXTAREA — AUTO-GROW (1C)
   PHP filter renders textarea; JS attaches auto-grow.
   CSS ensures no fixed height, no scroll, grows with content.
   ============================================================ */
#billing_address_1_field textarea,
#billing_address_1_field input.input-text {
  border: 1.5px solid #dee2e6 !important;
  border-radius: 0.75rem !important;
  padding: 0.85rem 1rem !important;
  font-size: 0.9rem !important;
  font-family: inherit !important;
  width: 100% !important;
  resize: none !important;           /* PHP sets resize:vertical — override karo */
  overflow: hidden !important;       /* scrollbar nahi chahiye — JS height set karta hai */
  height: auto !important;           /* fixed height nahi */
  min-height: 80px !important;
  max-height: none !important;
  line-height: 1.55 !important;
  background: #fafafa !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
  box-sizing: border-box !important;
  display: block !important;
  word-wrap: break-word !important;
  white-space: pre-wrap !important;  /* newlines dikhao */
}
#billing_address_1_field textarea:focus,
#billing_address_1_field input.input-text:focus {
  border-color: #2D6A4F !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(45,106,79,0.09) !important;
  background: #fff !important;
}

/* ============================================================
   CITY AUTOCOMPLETE DROPDOWN (1B)
   ============================================================ */
#nd-city-ac {
  font-family: inherit;
  -webkit-overflow-scrolling: touch;
}
#nd-city-ac li.nd-ac-active {
  background: #f0fdf4 !important;
}
/* City input field — open hone par border neeche flat karo */
#billing_city_field {
  position: relative;
}

/* ============================================================
   CONTACT INFO RESTORED NOTICE (1D)
   ============================================================ */
.nd-info-restored {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 0.5rem;
  color: #166534;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.45rem 0.85rem;
  margin-bottom: 0.85rem;
  animation: nd-fadein 0.3s ease;
}
@keyframes nd-fadein {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   GLOBAL TEXT FIX — WooCommerce tables mein character-by-character
   break kabhi nahi hona chahiye
   ============================================================ */
.woocommerce table.shop_table td,
.woocommerce table.shop_table th {
  word-break: normal !important;
  overflow-wrap: break-word !important;
}
.woocommerce-loop-product__title,
.product-title,
.woocommerce-cart table.cart td.product-name a,
#order_review table.shop_table tbody td.product-name {
  word-break: normal !important;
  overflow-wrap: break-word !important;
  word-wrap: break-word !important;
  hyphens: none !important;
}
.woocommerce-Price-amount,
.product-price,
.product-subtotal {
  word-break: normal !important;
  white-space: nowrap !important;
}

/* ============================================================
   ORDER SUMMARY TABLE — MOBILE FIX (1E)
   table → block → flex rows. JS bhi saath mein kaam karta hai.
   ============================================================ */
@media (max-width: 767px) {

  /* Checkout page single-column layout */
  .woocommerce-checkout form.checkout {
    display: block !important;
    grid-template-columns: none !important;
  }
  .woocommerce-checkout form.checkout #customer_details,
  .woocommerce-checkout form.checkout #order_review_heading,
  .woocommerce-checkout form.checkout #order_review,
  .woocommerce-checkout form.checkout #payment {
    grid-column: auto !important;
    grid-row: auto !important;
    width: 100% !important;
  }

  /* Order review box full width */
  #order_review,
  #order_review_heading {
    width: 100% !important;
    margin-top: 1.5rem !important;
  }

  /* Table ko block mein todna */
  #order_review .shop_table,
  #order_review .woocommerce-checkout-review-order-table,
  table.woocommerce-checkout-review-order-table {
    display: block !important;
    width: 100% !important;
    border: none !important;
    table-layout: auto !important;
  }
  #order_review .shop_table thead,
  #order_review .woocommerce-checkout-review-order-table thead,
  table.woocommerce-checkout-review-order-table thead {
    display: none !important;
  }
  #order_review .shop_table tbody,
  #order_review .shop_table tfoot,
  #order_review .woocommerce-checkout-review-order-table tbody,
  #order_review .woocommerce-checkout-review-order-table tfoot,
  table.woocommerce-checkout-review-order-table tbody,
  table.woocommerce-checkout-review-order-table tfoot {
    display: block !important;
    width: 100% !important;
  }

  /* Har row — flex, nowrap */
  #order_review .shop_table tr,
  #order_review .woocommerce-checkout-review-order-table tr,
  table.woocommerce-checkout-review-order-table tr {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 10px 0 !important;
    border-top: none !important;
    border-bottom: 1px solid #f0f0f0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Product name — saari bachi jagah lega */
  #order_review .shop_table td.product-name,
  #order_review .woocommerce-checkout-review-order-table td.product-name,
  table.woocommerce-checkout-review-order-table td.product-name {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    max-width: calc(100% - 85px) !important;
    padding: 0 !important;
    border: none !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
    hyphens: none !important;
    -webkit-hyphens: none !important;
    font-size: 0.85rem !important;
    line-height: 1.4 !important;
    color: #1B4332 !important;
  }
  #order_review .shop_table td.product-name *,
  #order_review .woocommerce-checkout-review-order-table td.product-name *,
  table.woocommerce-checkout-review-order-table td.product-name * {
    word-break: normal !important;
    hyphens: none !important;
    -webkit-hyphens: none !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
  }

  /* Price column — fixed, kabhi wrap nahi */
  #order_review .shop_table td.product-total,
  #order_review .woocommerce-checkout-review-order-table td.product-total,
  table.woocommerce-checkout-review-order-table td.product-total {
    flex: 0 0 auto !important;
    min-width: 75px !important;
    padding: 0 !important;
    border: none !important;
    text-align: right !important;
    white-space: nowrap !important;
    font-weight: 700 !important;
    color: #2D6A4F !important;
    font-size: 0.9rem !important;
  }

  /* Thumbnail column — compact */
  #order_review .shop_table td.product-thumbnail,
  #order_review .woocommerce-checkout-review-order-table td.product-thumbnail,
  table.woocommerce-checkout-review-order-table td.product-thumbnail {
    flex: 0 0 auto !important;
    width: 48px !important;
    padding: 0 !important;
    border: none !important;
  }
  #order_review .product-thumbnail img {
    width: 44px !important;
    height: 44px !important;
    object-fit: cover !important;
    border-radius: 0.4rem !important;
  }

  /* Footer rows */
  #order_review .shop_table tfoot td,
  #order_review .shop_table tfoot th,
  #order_review .woocommerce-checkout-review-order-table tfoot td,
  #order_review .woocommerce-checkout-review-order-table tfoot th,
  table.woocommerce-checkout-review-order-table tfoot td,
  table.woocommerce-checkout-review-order-table tfoot th {
    border: none !important;
    padding: 0 !important;
  }
  #order_review .shop_table tfoot th,
  #order_review .woocommerce-checkout-review-order-table tfoot th {
    flex: 1 1 auto !important;
    font-size: 0.82rem !important;
    font-weight: 600 !important;
    text-align: left !important;
    color: #374151 !important;
  }
  #order_review .shop_table tfoot td,
  #order_review .woocommerce-checkout-review-order-table tfoot td {
    flex: 0 0 auto !important;
    min-width: 75px !important;
    text-align: right !important;
    white-space: nowrap !important;
    font-weight: 700 !important;
    font-size: 0.85rem !important;
  }
  #order_review .shop_table tfoot tr.order-total th,
  #order_review .shop_table tfoot tr.order-total td,
  #order_review .woocommerce-checkout-review-order-table tfoot tr.order-total th,
  #order_review .woocommerce-checkout-review-order-table tfoot tr.order-total td,
  table.woocommerce-checkout-review-order-table tfoot tr.order-total th,
  table.woocommerce-checkout-review-order-table tfoot tr.order-total td {
    font-size: 1rem !important;
    font-weight: 800 !important;
    color: #1B4332 !important;
    padding-top: 10px !important;
    border-top: 2px solid #D8F3DC !important;
  }
}

/* ============================================================
   MOBILE CHECKOUT FORM — FULL RESPONSIVE (Req #2)
   ============================================================ */
@media (max-width: 768px) {

  /* Pura checkout wrapper */
  .woocommerce-checkout .woocommerce {
    padding: 1rem 0.75rem !important;
  }

  /* Customer details card padding */
  .woocommerce-checkout #customer_details,
  #order_review,
  #payment,
  .woocommerce-checkout-payment {
    padding: 1.25rem !important;
    border-radius: 1rem !important;
    margin-bottom: 1rem !important;
  }

  /* 2-column form rows → single column */
  .woocommerce-checkout .col2-set {
    display: block !important;
  }
  .woocommerce-checkout .col2-set .col-1,
  .woocommerce-checkout .col2-set .col-2 {
    width: 100% !important;
    float: none !important;
    margin-bottom: 1rem !important;
  }
  .woocommerce-checkout .form-row-first,
  .woocommerce-checkout .form-row-last {
    width: 100% !important;
    float: none !important;
    clear: both !important;
  }

  /* All inputs — 16px to prevent iOS zoom */
  .woocommerce-checkout .form-row input.input-text,
  .woocommerce-checkout .form-row select,
  .woocommerce-checkout .form-row textarea,
  .woocommerce-checkout .select2-selection,
  .woocommerce-checkout .select2-selection__rendered {
    font-size: 16px !important;
    padding: 0.75rem 0.9rem !important;
  }

  /* Address auto-grow textarea has its own ID-specific rule (higher
     specificity) that would otherwise keep it below 16px on mobile
     and trigger iOS Safari's auto-zoom-on-focus. Match it here. */
  #billing_address_1_field textarea,
  #billing_address_1_field input.input-text {
    font-size: 16px !important;
  }

  /* Select2 dropdowns */
  .woocommerce-checkout .select2-container {
    width: 100% !important;
  }
  .woocommerce-checkout .select2-container--default .select2-selection--single {
    height: auto !important;
    padding: 0.65rem 0.9rem !important;
    font-size: 16px !important;
  }
  .woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding: 0 !important;
    line-height: 1.5 !important;
  }
  .woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 100% !important;
    top: 0 !important;
  }

  /* Payment methods */
  #payment ul.payment_methods {
    padding: 0.75rem 0 !important;
  }
  #payment ul.payment_methods li {
    flex-wrap: wrap !important;
    padding: 0.75rem 0 !important;
  }
  #payment ul.payment_methods li label {
    font-size: 0.9rem !important;
    line-height: 1.4 !important;
  }
  #payment .payment_box {
    margin: 0.5rem 0 0 1.5rem !important;
    font-size: 0.85rem !important;
  }

  /* Place order button — full width, easy to tap */
  #place_order,
  .woocommerce #payment #place_order {
    width: 100% !important;
    padding: 1rem !important;
    font-size: 1rem !important;
    border-radius: 50px !important;
  }

  /* Checkout steps bar */
  .nd-checkout-steps .cstep-line {
    width: 28px !important;
  }
  .nd-checkout-steps .cstep-label {
    font-size: 0.6rem !important;
  }
  .nd-checkout-steps .cstep-num {
    width: 28px !important;
    height: 28px !important;
    font-size: 0.75rem !important;
  }
}

/* ============================================================
   MOBILE CART PAGE — FULL RESPONSIVE (Req #2)
   ============================================================ */
@media (max-width: 768px) {

  .woocommerce-cart .woocommerce {
    padding: 1rem 0.75rem !important;
  }

  /* Cart items */
  .woocommerce-cart table.cart tbody tr.cart_item {
    padding: 1rem !important;
    gap: 0.75rem !important;
    flex-wrap: wrap !important;
  }

  /* Thumbnail — compact */
  .woocommerce-cart table.cart td.product-thumbnail {
    width: 64px !important;
    flex: 0 0 64px !important;
    order: 0 !important;
  }
  .woocommerce-cart table.cart td.product-thumbnail img {
    width: 64px !important;
    height: 64px !important;
  }

  /* Product name — full width below thumbnail */
  .woocommerce-cart table.cart td.product-name {
    flex: 1 1 calc(100% - 80px) !important;
    min-width: 0 !important;
    order: 1 !important;
  }
  .woocommerce-cart table.cart td.product-name a {
    font-size: 0.9rem !important;
  }

  /* Unit price — hide on mobile (redundant) */
  .woocommerce-cart table.cart td.product-price {
    display: none !important;
  }

  /* Quantity + Subtotal — bottom row */
  .woocommerce-cart table.cart td.product-quantity {
    order: 3 !important;
    flex: 0 0 auto !important;
    min-width: 0 !important;
  }
  .woocommerce-cart table.cart td.product-subtotal {
    order: 4 !important;
    flex: 0 0 auto !important;
    margin-left: auto !important;
    font-size: 0.95rem !important;
  }

  /* Remove button */
  .woocommerce-cart table.cart td.product-remove {
    order: 2 !important;
    flex: 0 0 auto !important;
    margin-left: auto !important;
  }

  /* Cart totals — full width */
  .woocommerce-cart .cart_totals {
    max-width: 100% !important;
    margin-left: 0 !important;
    padding: 1.25rem !important;
    border-radius: 1rem !important;
  }

  /* Coupon box — stack vertically */
  .woocommerce-cart .coupon {
    flex-direction: column !important;
    gap: 0.5rem !important;
  }
  .woocommerce-cart .coupon .input-text {
    width: 100% !important;
    flex-basis: auto !important;
  }
  .woocommerce-cart .coupon .button {
    width: 100% !important;
  }

  /* Proceed to checkout button — full width */
  .woocommerce-cart .wc-proceed-to-checkout .checkout-button {
    padding: 0.85rem 1.5rem !important;
    font-size: 1rem !important;
  }
}

/* Very small screens — 400px se neeche */
@media (max-width: 400px) {
  .woocommerce-cart table.cart td.product-thumbnail {
    width: 52px !important;
    flex: 0 0 52px !important;
  }
  .woocommerce-cart table.cart td.product-thumbnail img {
    width: 52px !important;
    height: 52px !important;
  }
  .woocommerce-checkout .woocommerce,
  .woocommerce-cart .woocommerce {
    padding: 0.75rem 0.5rem !important;
  }
}

/* ================================================================
   REAL FIX v2 — Block-based Cart & Checkout
   ----------------------------------------------------------------
   Confirmed directly against the live nutrididi.com DOM: this site
   renders Cart/Checkout with the WooCommerce Blocks (React) UI, not
   the classic shortcode checkout. Everything above this line that
   targets #order_review, .shop_table, #billing_address_1 (underscore)
   etc. was written for the classic checkout and never matched the
   real page — harmless, but it did nothing. The rules below use the
   selectors that actually exist in the live block markup.
   ================================================================ */

/* --- Horizontal scroll root cause ---
   WooCommerce marks the Cart/Checkout blocks "alignwide". WordPress
   core's default alignwide CSS stretches the block edge-to-edge with
   margin-left/right: calc(50% - 50vw). Because 100vw includes the
   scrollbar's width, the block ends up a few pixels wider than the
   visible viewport on most browsers — that's the persistent
   horizontal scrollbar seen on mobile. This neutralizes it. */
.wp-block-woocommerce-cart.alignwide,
.wp-block-woocommerce-checkout.alignwide {
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
  max-width: var(--container-max) !important;
}

/* Belt-and-suspenders: the cart/checkout page itself should never
   be able to scroll sideways, whatever the exact inner cause. */
body.woocommerce-cart,
body.woocommerce-checkout {
  overflow-x: hidden !important;
}
.wc-block-cart, .wc-block-checkout,
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout {
  overflow-x: hidden;
  max-width: 100%;
  box-sizing: border-box;
}

/* --- Checkout "Order summary" (and Cart) line items ---
   Real structure, confirmed via live DevTools inspection on
   nutrididi.com/checkout/:
     .wc-block-components-order-summary-item                 (row)
       .wc-block-components-order-summary-item__image
       .wc-block-components-order-summary-item__description  (name, per-unit price, long description text)
       .wc-block-components-order-summary-item__total-price  (right column, aria-hidden)
         .wc-block-cart-item__total-price-and-sale-badge-wrapper   <- shared by Cart AND Checkout
           .wc-block-components-product-price                (the ₹499.00)
           .wc-block-components-sale-badge                   (the "Save ₹300.00" pill)

   The earlier attempt only styled the OUTER right column, but the
   price and the "Save ₹X" badge actually sit side by side inside
   that inner …-wrapper div, which never shrinks (flex: 0 0 auto).
   That forced the wrapper to demand ~180-200px, which squeezed the
   description column down to almost nothing — that's what broke the
   description text into one word per line. Stacking price above
   badge (instead of side by side) cuts that column's real width
   roughly in half and gives the description room to wrap normally. */
.wc-block-components-order-summary-item {
  display: flex !important;
  align-items: flex-start !important;
  flex-wrap: nowrap !important;
  gap: 0.6rem !important;
  min-width: 0 !important;
}
.wc-block-components-order-summary-item__image { flex: 0 0 auto !important; }

.wc-block-components-order-summary-item__description {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  white-space: normal !important;
}
.wc-block-components-order-summary-item__description p,
.wc-block-components-product-metadata__description p {
  overflow-wrap: break-word !important;
  word-break: normal !important;
  white-space: normal !important;
  margin: 0.3rem 0 0 !important;
}

.wc-block-components-order-summary-item__total-price {
  flex: 0 0 auto !important;
  max-width: 40% !important;
}
.wc-block-cart-item__total-price-and-sale-badge-wrapper {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  gap: 0.2rem !important;
  max-width: 100% !important;
}
.wc-block-cart-item__total-price-and-sale-badge-wrapper .wc-block-components-product-price,
.wc-block-cart-item__total-price-and-sale-badge-wrapper .wc-block-components-sale-badge {
  white-space: nowrap !important;
  max-width: 100% !important;
}
.wc-block-components-sale-badge {
  font-size: 0.72rem !important;
  padding: 0.15rem 0.5rem !important;
  line-height: 1.3 !important;
}

/* --- Cart page line items ---
   Cart uses its own outer BEM prefix (.wc-block-cart-item__*) for
   the row/name/description/quantity, but reuses the exact same
   .wc-block-cart-item__total-price-and-sale-badge-wrapper price
   component above, so that part of the fix already covers Cart too. */
.wc-block-cart-items__row,
.wc-block-cart-item__row { min-width: 0 !important; }
.wc-block-cart-item__image { flex: 0 0 auto !important; }
.wc-block-cart-item__product,
.wc-block-cart-item__description,
.wc-block-cart-item__quantity {
  min-width: 0 !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  white-space: normal !important;
}
.wc-block-cart-item__total {
  flex: 0 0 auto !important;
  max-width: 40% !important;
}

/* --- Totals sidebar rows (Subtotal / Shipping / Total, etc.) ---
   These labels are always short, fixed words ("Subtotal",
   "Shipping", "Estimated total", "Total"...) — they should NEVER
   wrap or break mid-word. Only the (rare, long) coupon/discount
   labels get to wrap, and only at word boundaries. */
.wc-block-components-totals-item {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  flex-wrap: wrap !important;
  row-gap: 0.15rem !important;
  column-gap: 0.75rem !important;
}
.wc-block-components-totals-item__label {
  white-space: nowrap !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  flex: 0 1 auto !important;
}
.wc-block-components-totals-item__value {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
  margin-left: auto !important;
}

/* --- Force single-column stacking on small screens as a backup
   to WooCommerce's own container-query stacking. --- */
@media (max-width: 600px) {
  .wc-block-components-sidebar-layout { display: block !important; }
  .wc-block-components-sidebar-layout .wc-block-components-sidebar {
    width: 100% !important;
    max-width: 100% !important;
    margin-top: var(--space-lg) !important;
  }
}

/* --- Address auto-grow overlay (paired with main.js) ---
   The real input (#billing-address_1 / #shipping-address_1) is kept
   in the DOM for React/validation but visually hidden; a visible
   auto-growing textarea sits in its place. */
.nd-address-mirror {
  display: block;
  width: 100%;
  min-height: 80px;
  max-height: none;
  resize: none;
  overflow: hidden;
  box-sizing: border-box;
  border: 1.5px solid #dee2e6;
  border-radius: 0.75rem;
  padding: 0.85rem 1rem;
  font: inherit;
  font-size: 0.95rem;
  line-height: 1.55;
  background: #fafafa;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.nd-address-mirror:focus {
  outline: none;
  border-color: #2D6A4F;
  box-shadow: 0 0 0 3px rgba(45,106,79,0.1);
  background: #fff;
}
@media (max-width: 480px) {
  .nd-address-mirror { font-size: 16px; } /* stop iOS auto-zoom */
}
/* ============================================================
   SHOP PAGE — FIX: result-count / ordering floats overlapping
   the premium products-grid on mobile.
   WooCommerce core floats these two elements (left/right); our
   .products-grid (and legacy ul.products) must clear them so the
   card grid always starts on its own line, on every screen size.
   ============================================================ */
.woocommerce-result-count { float: left !important; margin: 0 0 1.5rem !important; }
.woocommerce-ordering { float: right !important; margin: 0 0 1.5rem !important; }

.products-grid,
.woocommerce ul.products {
  clear: both !important;
}

@media (max-width: 600px) {
  .woocommerce-result-count,
  .woocommerce-ordering {
    float: none !important;
    display: block !important;
    width: 100% !important;
    margin: 0 0 0.75rem !important;
    text-align: left !important;
  }
  .woocommerce-ordering select.orderby {
    width: 100% !important;
    min-width: 0 !important;
  }
}

/* ============================================================
   WOOCOMMERCE NOTICES (errors / success / info messages)
   ------------------------------------------------------------
   These were completely unstyled before — WooCommerce prints
   things like "Customer cancelled the payment." (shown when a
   customer re-lands on the Pay-for-order page after closing the
   Razorpay popup) as a bare, plain-text list. This styles them
   as proper alert banners wherever WooCommerce outputs them
   (cart, checkout, pay-for-order, my account, etc).
   ============================================================ */
.woocommerce-error,
.woocommerce-message,
.woocommerce-info {
  list-style: none !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto 1.5rem !important;
  padding: 0.9rem 1.25rem !important;
  border-radius: 1rem !important;
  font-size: 0.9rem !important;
  line-height: 1.5 !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0.75rem !important;
  box-sizing: border-box !important;
  clear: both !important;
  position: relative !important;
}
.woocommerce-error { background: #FEF2F2 !important; color: #B91C1C !important; border: 1.5px solid #FCA5A5 !important; }
.woocommerce-message { background: #F0FDF4 !important; color: #166534 !important; border: 1.5px solid #86EFAC !important; }
.woocommerce-info { background: #EFF6FF !important; color: #1D4ED8 !important; border: 1.5px solid #93C5FD !important; }
.woocommerce-error::before,
.woocommerce-message::before,
.woocommerce-info::before {
  position: static !important;
  transform: none !important;
  top: auto !important;
  left: auto !important;
  margin: 0 !important;
  font-size: 1.2rem !important;
  line-height: 1 !important;
  width: 24px !important;
  height: 24px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  font-weight: 900 !important;
  border: none !important;
  background: transparent !important;
}
.woocommerce-error::before { content: "⚠" !important; color: #dc2626 !important; }
.woocommerce-message::before { content: "✔" !important; color: #16a34a !important; }
.woocommerce-info::before { content: "ℹ" !important; color: #2563eb !important; }
.woocommerce-error a.button,
.woocommerce-message a.button,
.woocommerce-info a.button {
  order: 2 !important;
  margin-left: auto !important;
  white-space: nowrap !important;
  background: #2D6A4F !important;
  color: white !important;
  border-radius: 50px !important;
  padding: 0.45rem 1.1rem !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}

/* ============================================================
   PAY FOR ORDER — RECEIPT PAGE (woocommerce/checkout/order-receipt.php)
   ------------------------------------------------------------
   Styles the new "Complete Your Payment" card, and — since the
   Pay Now / Cancel elements inside .nd-pay-gateway-area come from
   the Razorpay plugin's own raw HTML (not our markup) — styles
   them generically by tag/type rather than by class, so this still
   works even if the plugin changes its exact markup later.
   ============================================================ */
.nd-pay-wrap {
  max-width: 480px;
  margin: 3rem auto;
  padding: 0 1.25rem;
}
.nd-pay-card {
  background: white;
  border-radius: 1.5rem;
  padding: 2.5rem 2rem;
  text-align: center;
  box-shadow: var(--shadow-lg);
  border: 1px solid rgba(45,106,79,0.06);
}
.nd-pay-icon {
  width: 72px;
  height: 72px;
  line-height: 72px;
  font-size: 2rem;
  margin: 0 auto 1.25rem;
  background: #FEF3C7;
  border-radius: 50%;
}
.nd-pay-heading {
  font-family: var(--font-serif);
  font-size: 1.6rem;
  color: var(--color-primary-dark);
  margin-bottom: 0.5rem;
}
.nd-pay-sub {
  color: var(--color-text-muted);
  font-size: 0.95rem;
  line-height: 1.6;
  margin-bottom: 1.75rem;
}
.nd-pay-amount-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #f8fffe;
  border: 1px dashed rgba(45,106,79,0.3);
  border-radius: 1rem;
  padding: 1rem 1.25rem;
  margin-bottom: 1.75rem;
  font-size: 0.95rem;
  color: var(--color-text);
}
.nd-pay-amount-box strong {
  font-size: 1.25rem;
  color: var(--color-primary-dark);
}

/* Gateway's own raw HTML (message + form/links) */
.nd-pay-gateway-area p {
  font-size: 0.92rem;
  color: var(--color-text-muted);
  margin-bottom: 1.25rem;
  line-height: 1.6;
}
.nd-pay-gateway-area form {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

/* "Pay Now" style submit control — matches #place_order elsewhere */
.nd-pay-gateway-area input[type="submit"],
.nd-pay-gateway-area button[type="submit"],
.nd-pay-gateway-area button {
  display: block !important;
  width: 100% !important;
  background: linear-gradient(135deg, #2D6A4F, #1B4332) !important;
  color: white !important;
  border-radius: 50px !important;
  padding: 1rem 1.75rem !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em;
  box-shadow: 0 6px 24px rgba(45,106,79,0.35) !important;
  border: none !important;
  cursor: pointer;
  transition: all 0.25s !important;
}
.nd-pay-gateway-area input[type="submit"]:hover,
.nd-pay-gateway-area button[type="submit"]:hover,
.nd-pay-gateway-area button:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 32px rgba(45,106,79,0.45) !important;
}

/* "Cancel order & restore cart" link — styled as a quiet secondary action */
.nd-pay-gateway-area a {
  display: inline-block;
  margin: 0 auto;
  color: var(--color-text-muted) !important;
  font-size: 0.88rem !important;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.nd-pay-gateway-area a:hover { color: #ef4444 !important; }

.nd-pay-help {
  margin-top: 1.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--color-mid-grey);
  font-size: 0.85rem;
  color: var(--color-text-muted);
}
.nd-pay-help a { color: var(--color-primary); font-weight: 600; }

@media (max-width: 480px) {
  .nd-pay-card { padding: 2rem 1.25rem; }
}
