/* ============================================================
   WOOCOMMERCE OVERRIDES — NF Theme
   ============================================================ */

/* ---- Global WC resets ---- */
.woocommerce,
.woocommerce-page {
  color: var(--color-text);
}
.woocommerce a:not(.button):not(.btn) { color: var(--color-primary); }
.woocommerce a:not(.button):not(.btn):hover { color: var(--color-primary-dark); }

/* ---- Notices ---- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  background: var(--color-surface) !important;
  border-top-color: var(--color-primary) !important;
  color: var(--color-text) !important;
  border-radius: var(--radius-lg) !important;
  padding: var(--space-4) var(--space-6) !important;
  box-shadow: none !important;
}
.woocommerce-error { border-top-color: #e74c3c !important; }
.woocommerce-message::before { color: var(--color-primary) !important; }
.woocommerce-message .button {
  background: var(--color-primary) !important;
  color: #000 !important;
}

/* ---- Breadcrumbs ---- */
.woocommerce .woocommerce-breadcrumb {
  font-size: var(--fs-xs);
  color: var(--color-text-muted);
  margin-bottom: var(--space-8);
}

/* ============================================================
   SHOP / ARCHIVE PAGE
   ============================================================ */
.woocommerce-products-header__title,
.woocommerce-loop-category__title,
.archive-title {
  font-family: var(--font-heading);
  font-weight: var(--fw-black);
  color: var(--color-white);
}

/* Products per row */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) !important;
  gap: var(--space-5) !important;
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  background: var(--color-bg-card) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-xl) !important;
  overflow: hidden !important;
  transition: all var(--transition-base) !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
  width: auto !important;
}
.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
  border-color: rgba(var(--color-primary-rgb),.3) !important;
  transform: translateY(-3px) !important;
  box-shadow: var(--shadow-lg) !important;
}

/* Product image */
.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img {
  padding: var(--space-5) !important;
  background: var(--color-surface) !important;
  transition: transform var(--transition-slow) !important;
  object-fit: contain !important;
}
.woocommerce ul.products li.product:hover a img { transform: scale(1.05) !important; }

/* Product title */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--font-heading) !important;
  font-size: var(--fs-base) !important;
  font-weight: var(--fw-bold) !important;
  color: var(--color-white) !important;
  padding: var(--space-4) var(--space-4) var(--space-2) !important;
}

/* Price */
.woocommerce ul.products li.product .price {
  color: var(--color-white) !important;
  font-size: var(--fs-md) !important;
  font-weight: var(--fw-bold) !important;
  padding: 0 var(--space-4) var(--space-4) !important;
  display: block !important;
}
.woocommerce ul.products li.product .price del {
  color: var(--color-text-muted) !important;
  font-size: var(--fs-sm) !important;
  font-weight: var(--fw-normal) !important;
}
.woocommerce ul.products li.product .price ins {
  text-decoration: none !important;
  color: var(--color-primary) !important;
}

/* Sale badge */
.woocommerce span.onsale {
  background: var(--color-primary) !important;
  color: #000 !important;
  border-radius: var(--radius-full) !important;
  font-size: 10px !important;
  font-weight: var(--fw-bold) !important;
  padding: 3px 8px !important;
  min-height: unset !important;
  min-width: unset !important;
  line-height: 1.5 !important;
  top: var(--space-3) !important;
  left: var(--space-3) !important;
}

/* Add to cart buttons */
.woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product .button {
  background: var(--color-primary) !important;
  color: #000 !important;
  border: none !important;
  border-radius: var(--radius-full) !important;
  font-size: var(--fs-xs) !important;
  font-weight: var(--fw-bold) !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  padding: var(--space-2) var(--space-4) !important;
  margin: 0 var(--space-4) var(--space-4) !important;
  transition: all var(--transition-fast) !important;
  display: block !important;
  text-align: center !important;
}
.woocommerce ul.products li.product .button:hover {
  background: var(--color-primary-dark) !important;
  transform: translateY(-1px) !important;
}

/* Star ratings */
.woocommerce .star-rating {
  color: var(--color-secondary) !important;
  font-size: var(--fs-sm) !important;
  margin: var(--space-2) var(--space-4) !important;
}
.woocommerce .star-rating::before,
.woocommerce .star-rating span::before {
  color: var(--color-secondary) !important;
}

/* Ordering / Filters */
.woocommerce .woocommerce-ordering select,
.woocommerce-page .woocommerce-ordering select {
  background: var(--color-surface) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-full) !important;
  color: var(--color-text) !important;
  padding: var(--space-2) var(--space-5) !important;
  font-size: var(--fs-sm) !important;
  outline: none !important;
}

/* Result count */
.woocommerce-result-count {
  font-size: var(--fs-sm) !important;
  color: var(--color-text-muted) !important;
}

/* ============================================================
   SINGLE PRODUCT
   ============================================================ */
.woocommerce div.product {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: var(--space-12) !important;
  align-items: start !important;
}

.woocommerce div.product div.images {
  background: var(--color-surface) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-2xl) !important;
  overflow: hidden !important;
  padding: var(--space-6) !important;
}
.woocommerce div.product div.images img {
  border-radius: var(--radius-xl) !important;
}

.woocommerce div.product div.summary {
  padding: 0 !important;
}

.woocommerce div.product .product_title {
  font-family: var(--font-heading) !important;
  font-size: clamp(var(--fs-2xl), 3vw, var(--fs-4xl)) !important;
  font-weight: var(--fw-black) !important;
  color: var(--color-white) !important;
  margin-bottom: var(--space-4) !important;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-size: var(--fs-2xl) !important;
  font-weight: var(--fw-bold) !important;
  color: var(--color-white) !important;
  margin-bottom: var(--space-4) !important;
}
.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
  color: var(--color-text-muted) !important;
  font-size: var(--fs-lg) !important;
}
.woocommerce div.product p.price ins {
  text-decoration: none !important;
  color: var(--color-primary) !important;
}

/* Product meta */
.woocommerce div.product .product_meta {
  font-size: var(--fs-xs) !important;
  color: var(--color-text-muted) !important;
  border-top: 1px solid var(--color-border) !important;
  padding-top: var(--space-4) !important;
  margin-top: var(--space-4) !important;
}
.woocommerce div.product .product_meta a { color: var(--color-text-muted) !important; }
.woocommerce div.product .product_meta a:hover { color: var(--color-primary) !important; }

/* Qty input */
.woocommerce .quantity .qty {
  background: var(--color-surface) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-md) !important;
  color: var(--color-white) !important;
  padding: var(--space-3) var(--space-4) !important;
  width: 80px !important;
  text-align: center !important;
  font-size: var(--fs-base) !important;
  font-weight: var(--fw-semibold) !important;
}

/* Add to cart — single */
.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce .single_add_to_cart_button {
  background: var(--color-primary) !important;
  color: #000 !important;
  border: none !important;
  border-radius: var(--radius-full) !important;
  padding: var(--space-4) var(--space-8) !important;
  font-size: var(--fs-base) !important;
  font-weight: var(--fw-bold) !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  cursor: pointer !important;
  transition: all var(--transition-fast) !important;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
  background: var(--color-primary-dark) !important;
  transform: translateY(-2px) !important;
  box-shadow: var(--shadow-glow) !important;
}

/* Form cart row */
.woocommerce div.product form.cart {
  display: flex !important;
  align-items: center !important;
  gap: var(--space-4) !important;
  margin-top: var(--space-6) !important;
  flex-wrap: wrap !important;
}

/* Product tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs {
  border-bottom: 1px solid var(--color-border) !important;
  padding: 0 !important;
  margin: 0 0 var(--space-6) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: none !important;
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-size: var(--fs-sm) !important;
  font-weight: var(--fw-semibold) !important;
  color: var(--color-text-muted) !important;
  padding: var(--space-3) var(--space-5) !important;
  display: block !important;
  border-bottom: 2px solid transparent !important;
  transition: all var(--transition-fast) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--color-white) !important;
  border-bottom-color: var(--color-primary) !important;
}
.woocommerce div.product .woocommerce-tabs .panel {
  background: var(--color-bg-card) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-xl) !important;
  padding: var(--space-8) !important;
  color: var(--color-text) !important;
}

/* Related products */
.related.products h2,
.upsells.products h2 {
  font-family: var(--font-heading) !important;
  font-size: var(--fs-2xl) !important;
  font-weight: var(--fw-black) !important;
  color: var(--color-white) !important;
  margin-bottom: var(--space-6) !important;
}

/* ============================================================
   CART PAGE
   ============================================================ */
.woocommerce table.cart,
.woocommerce-cart table.cart {
  background: transparent !important;
  border-collapse: separate !important;
  border-spacing: 0 var(--space-3) !important;
}
.woocommerce table.cart thead tr th {
  background: var(--color-surface) !important;
  border: none !important;
  padding: var(--space-3) var(--space-5) !important;
  font-size: var(--fs-xs) !important;
  text-transform: uppercase !important;
  letter-spacing: .1em !important;
  color: var(--color-text-muted) !important;
  font-weight: var(--fw-semibold) !important;
}
.woocommerce table.cart tbody tr {
  background: var(--color-bg-card) !important;
  border-radius: var(--radius-lg) !important;
}
.woocommerce table.cart tbody tr td {
  border: 1px solid var(--color-border) !important;
  padding: var(--space-4) var(--space-5) !important;
  color: var(--color-text) !important;
}
.woocommerce table.cart tbody tr td:first-child {
  border-radius: var(--radius-lg) 0 0 var(--radius-lg) !important;
}
.woocommerce table.cart tbody tr td:last-child {
  border-radius: 0 var(--radius-lg) var(--radius-lg) 0 !important;
}
.woocommerce table.cart .product-name a {
  font-weight: var(--fw-semibold) !important;
  color: var(--color-white) !important;
}
.woocommerce table.cart .product-price,
.woocommerce table.cart .product-subtotal {
  font-weight: var(--fw-bold) !important;
  color: var(--color-white) !important;
}

.cart-collaterals { margin-top: var(--space-8); }
.cart_totals {
  background: var(--color-bg-card) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-2xl) !important;
  padding: var(--space-8) !important;
}
.cart_totals h2 {
  font-family: var(--font-heading) !important;
  font-size: var(--fs-xl) !important;
  font-weight: var(--fw-bold) !important;
  margin-bottom: var(--space-5) !important;
  color: var(--color-white) !important;
}
.cart_totals table th,
.cart_totals table td {
  padding: var(--space-3) 0 !important;
  border-bottom: 1px solid var(--color-border) !important;
  font-size: var(--fs-sm) !important;
  color: var(--color-text-muted) !important;
}
.cart_totals table .order-total td {
  font-size: var(--fs-lg) !important;
  font-weight: var(--fw-bold) !important;
  color: var(--color-white) !important;
}

.checkout-button,
.woocommerce a.checkout-button {
  background: var(--color-primary) !important;
  color: #000 !important;
  border: none !important;
  border-radius: var(--radius-full) !important;
  padding: var(--space-4) var(--space-8) !important;
  font-size: var(--fs-base) !important;
  font-weight: var(--fw-bold) !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  display: block !important;
  text-align: center !important;
  margin-top: var(--space-5) !important;
  transition: all var(--transition-fast) !important;
}
.checkout-button:hover {
  background: var(--color-primary-dark) !important;
  transform: translateY(-1px) !important;
}

/* ============================================================
   CHECKOUT PAGE
   ============================================================ */
.woocommerce-checkout h3,
.woocommerce-checkout h2 {
  font-family: var(--font-heading) !important;
  font-weight: var(--fw-bold) !important;
  color: var(--color-white) !important;
  border-bottom: 1px solid var(--color-border) !important;
  padding-bottom: var(--space-4) !important;
  margin-bottom: var(--space-6) !important;
}

/* Form fields */
.woocommerce-checkout .woocommerce-input-wrapper input,
.woocommerce-checkout .woocommerce-input-wrapper select,
.woocommerce-checkout .woocommerce-input-wrapper textarea,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
  background: var(--color-surface) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-md) !important;
  color: var(--color-white) !important;
  padding: var(--space-3) var(--space-4) !important;
  width: 100% !important;
  font-size: var(--fs-sm) !important;
  transition: border-color var(--transition-fast) !important;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
  border-color: var(--color-primary) !important;
  outline: none !important;
}
.woocommerce form .form-row label {
  color: var(--color-text-muted) !important;
  font-size: var(--fs-xs) !important;
  font-weight: var(--fw-semibold) !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  margin-bottom: var(--space-2) !important;
}

/* Order review */
#order_review_heading {
  font-family: var(--font-heading) !important;
  font-weight: var(--fw-bold) !important;
  color: var(--color-white) !important;
}
#order_review {
  background: var(--color-bg-card) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-2xl) !important;
  padding: var(--space-8) !important;
}
.woocommerce-checkout-review-order-table tbody td,
.woocommerce-checkout-review-order-table tbody th,
.woocommerce-checkout-review-order-table tfoot td,
.woocommerce-checkout-review-order-table tfoot th {
  padding: var(--space-3) !important;
  border-bottom: 1px solid var(--color-border) !important;
  font-size: var(--fs-sm) !important;
  color: var(--color-text) !important;
}
.woocommerce-checkout-review-order-table tfoot .order-total td,
.woocommerce-checkout-review-order-table tfoot .order-total th {
  font-weight: var(--fw-bold) !important;
  font-size: var(--fs-base) !important;
  color: var(--color-white) !important;
}

#place_order {
  background: var(--color-primary) !important;
  color: #000 !important;
  border: none !important;
  border-radius: var(--radius-full) !important;
  padding: var(--space-4) var(--space-8) !important;
  font-size: var(--fs-base) !important;
  font-weight: var(--fw-bold) !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  width: 100% !important;
  cursor: pointer !important;
  transition: all var(--transition-fast) !important;
  margin-top: var(--space-5) !important;
}
#place_order:hover {
  background: var(--color-primary-dark) !important;
  transform: translateY(-1px) !important;
}

/* ============================================================
   MY ACCOUNT
   ============================================================ */
.woocommerce-account .woocommerce-MyAccount-navigation {
  background: var(--color-bg-card) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-xl) !important;
  overflow: hidden !important;
  padding: var(--space-4) 0 !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li {
  border-bottom: 1px solid var(--color-border) !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: none !important; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display: block !important;
  padding: var(--space-3) var(--space-6) !important;
  font-size: var(--fs-sm) !important;
  font-weight: var(--fw-medium) !important;
  color: var(--color-text-muted) !important;
  transition: all var(--transition-fast) !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
  color: var(--color-primary) !important;
  background: rgba(var(--color-primary-rgb),.06) !important;
}

/* ============================================================
   PRODUCT FILTER WIDGET (SIDEBAR)
   ============================================================ */
.widget_price_filter .ui-slider {
  background: var(--color-border) !important;
  border: none !important;
  height: 4px !important;
  border-radius: var(--radius-full) !important;
}
.widget_price_filter .ui-slider-range {
  background: var(--color-primary) !important;
}
.widget_price_filter .ui-slider-handle {
  background: var(--color-primary) !important;
  border: 2px solid var(--color-bg) !important;
  border-radius: var(--radius-full) !important;
  top: -6px !important;
  width: 16px !important;
  height: 16px !important;
}
.widget_price_filter .price_slider_amount .button {
  background: var(--color-primary) !important;
  color: #000 !important;
  border: none !important;
  border-radius: var(--radius-full) !important;
  padding: var(--space-2) var(--space-4) !important;
  font-size: var(--fs-xs) !important;
  font-weight: var(--fw-bold) !important;
}
.widget_price_filter .price_slider_amount {
  color: var(--color-text-muted) !important;
  font-size: var(--fs-xs) !important;
}

/* ============================================================
   MINI CART
   ============================================================ */
.widget_shopping_cart_content {
  padding: var(--space-4) !important;
}
.widget_shopping_cart_content .cart_list {
  border-bottom: 1px solid var(--color-border) !important;
  padding-bottom: var(--space-4) !important;
  margin-bottom: var(--space-4) !important;
}
.widget_shopping_cart_content .cart_list li {
  padding: var(--space-3) 0 !important;
  border-bottom: 1px solid var(--color-border) !important;
}
.widget_shopping_cart_content .total {
  font-size: var(--fs-sm) !important;
  color: var(--color-text) !important;
}
.widget_shopping_cart_content .total strong { color: var(--color-white) !important; font-weight: var(--fw-bold) !important; }

/* ============================================================
   SINGLE PRODUCT — NF LAYOUT OVERRIDES (v1.1 fix)
   ============================================================ */
.nf-single-product .nf-product-layout {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 3rem !important;
	align-items: start !important;
}

/* Ensure gallery hooks into the grid column */
.nf-single-product .nf-product-gallery .woocommerce-product-gallery {
	margin: 0 !important;
	float: none !important;
	width: 100% !important;
}

/* Summary column */
.nf-single-product .nf-product-summary {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Tabs full width below grid */
.nf-single-product .nf-product-tabs {
	margin-top: 3rem;
	clear: both;
}

/* Related + upsells inside tabs area */
.related.products,
.upsells.products {
	margin-top: 3rem !important;
}

/* ── Responsive single product ── */
@media (max-width: 900px) {
	.nf-single-product .nf-product-layout {
		grid-template-columns: 1fr !important;
		gap: 2rem !important;
	}
}

/* ── Shop archive: ensure our nf-content wrapper doesn't double-wrap ── */
.wc-content .woocommerce-products-header { margin-bottom: 1.5rem; }
.wc-content .woocommerce-ordering select { background: var(--color-surface); color: var(--color-text); border: 1px solid var(--color-border); border-radius: var(--radius-full); padding: .5rem 1rem; }

/* ── Product rating on single page ── */
.woocommerce div.product .woocommerce-product-rating { margin-bottom: 1rem !important; }
.woocommerce div.product .woocommerce-review-link { color: var(--color-text-muted) !important; font-size: var(--fs-sm) !important; }
