/* =========================================================
   WooCommerce Styling — Organic Millet Theme
   ========================================================= */

/* Shop loop grid — houses the product-card-item cards below */
ul.products{
  display:grid !important;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(1rem, 3vw, 1.75rem);
  list-style:none; margin:0 !important; padding:0 !important;
}
@media(min-width:640px){ ul.products{ grid-template-columns: repeat(3, 1fr); } }
@media(min-width:1024px){ ul.products{ grid-template-columns: repeat(4, 1fr); } }

/* --- Modern product card (woocommerce/content-product.php) --- */
ul.products li.product-card-item{
  display:flex; flex-direction:column; background:#fff; border:1px solid var(--color-border);
  border-radius: var(--radius-lg); overflow:hidden; width:100% !important; margin:0 !important;
  padding:0; text-align:left; height:100%;
  transition: box-shadow var(--transition), transform var(--transition), border-color var(--transition);
}
ul.products li.product-card-item:hover{ box-shadow: var(--shadow-lg); transform: translateY(-5px); border-color: transparent; }

.product-card-media{ position:relative; aspect-ratio:1/1; background: var(--color-neutral-light); overflow:hidden; }
.product-card-media-link{ display:block; width:100%; height:100%; }
.product-card-media img{ width:100%; height:100%; object-fit:cover; display:block; transition: transform .45s ease; }
ul.products li.product-card-item:hover .product-card-media img{ transform: scale(1.06); }

/* Discount badge — top-left over the image */
.product-card-badge{
  position:absolute; top:.75rem; left:.75rem; z-index:2;
  background: var(--color-secondary); color: var(--color-text);
  font-weight:700; font-size:.72rem; letter-spacing:.02em; line-height:1;
  padding:.4rem .65rem; border-radius:999px; box-shadow: var(--shadow-sm);
}

/* Wishlist heart — top-right over the image */
.wishlist-toggle{
  position:absolute; top:.6rem; right:.6rem; z-index:2;
  width:34px; height:34px; border-radius:50%; border:none; cursor:pointer;
  background: rgba(255,255,255,.92); color: var(--color-text);
  display:flex; align-items:center; justify-content:center;
  box-shadow: var(--shadow-sm); transition: transform var(--transition), background var(--transition), color var(--transition);
}
.wishlist-toggle:hover{ transform: scale(1.08); }
.wishlist-toggle .wishlist-icon-filled{ display:none; }
.wishlist-toggle.is-active{ color: var(--color-secondary-dark); }
.wishlist-toggle.is-active .wishlist-icon-outline{ display:none; }
.wishlist-toggle.is-active .wishlist-icon-filled{ display:block; }
.wishlist-toggle.is-loading{ opacity:.6; pointer-events:none; }

.product-card-body{ padding:1rem 1.1rem 1.25rem; display:flex; flex-direction:column; flex:1; }
.product-card-category{
  display:block; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  color: var(--color-primary); margin-bottom:.3rem;
}
.product-card-title{ font-size:1rem; font-weight:600; margin:0 0 .4rem; line-height:1.35; }
.product-card-title a{ color: var(--color-text); }
.product-card-title a:hover{ color: var(--color-primary); }

.product-card-rating{ display:flex; align-items:center; gap:.4rem; margin-bottom:.5rem; }
.product-card-rating .star-rating{ font-size:.85rem; }
.product-card-rating-count{ font-size:.78rem; color: var(--color-text-muted); font-weight:600; }

.product-card-price, .product-card-price.price{ font-size:1.05rem; margin-bottom:.35rem; display:block; }

/* Weight badge sits compactly under the price on cards (smaller than the
   single-product version, no icon, to keep the card lightweight) */
.product-card-body .product-weight-badge{
  display:inline-block; background:none; border:none; padding:0; margin:0 0 .75rem;
  font-size:.78rem; font-weight:600; color: var(--color-text-muted);
}

.product-card-actions{ margin-top:auto; padding-top:.25rem; }
.product-card-actions .button{
  width:100%; font-size:.85rem; padding:.7rem 1rem;
  background: var(--color-primary-light) !important; color: var(--color-primary) !important;
  border-color: var(--color-primary-light) !important;
}
.product-card-actions .button:hover{ background: var(--color-primary) !important; color:#fff !important; }
.product-card-actions .added_to_cart{ display:block; text-align:center; margin-top:.5rem; font-size:.8rem; }

.woocommerce span.onsale{
  background: var(--color-secondary) !important; color: var(--color-text) !important;
  font-weight:700; font-size:.7rem; text-transform:uppercase; letter-spacing:.03em;
  border-radius:999px; min-height:auto; min-width:auto; line-height:1;
  padding:.4rem .7rem; top:.75rem; left:.75rem; right:auto; margin:0;
}
.star-rating{ color: var(--color-secondary); }



/* Result count / ordering */
.woocommerce-result-count, .woocommerce-ordering{ margin-bottom:1.5rem !important; color: var(--color-text-muted); }
.woocommerce-ordering select{ width:auto; }
.shop-toolbar{
  display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center;
  gap:1rem; margin-bottom:2rem; padding-bottom:1rem; border-bottom:1px solid var(--color-border);
}

/* Sidebar filter widgets (price filter, layered nav, categories) */
.widget_price_filter .price_slider_amount .button{ float:none; margin-top:.75rem; }
.widget_price_filter .ui-slider .ui-slider-range{ background: var(--color-primary); }
.widget_price_filter .ui-slider .ui-slider-handle{ background: var(--color-secondary); border-color: var(--color-secondary-dark); }
.widget_layered_nav ul, .widget_product_categories ul{ list-style:none; padding:0; }
.widget_layered_nav li a, .widget_product_categories li a{ color: var(--color-text); }
.wc-block-grid__product-onsale, .woocommerce-checkout-review-order-table{ border-radius: var(--radius-sm); }

/* Single product */
.woocommerce div.product .woocommerce-product-gallery{ border-radius: var(--radius-md); overflow:hidden; }
.woocommerce div.product .woocommerce-product-gallery img{ border-radius: var(--radius-md); }
.woocommerce div.product .product_title{
  margin-bottom:.4rem; font-size: clamp(1.4rem, 2.4vw, 1.85rem); line-height:1.3;
}
.woocommerce div.product p.price, .woocommerce div.product span.price{ font-size:1.6rem; }
.woocommerce div.product .stock{ color: var(--color-success); font-weight:600; }
.woocommerce div.product .stock.out-of-stock{ color: var(--color-error); }
.woocommerce div.product form.cart{
  background: var(--color-neutral-light); padding:1.25rem; border-radius: var(--radius-md);
  margin: 1.5rem 0; display:flex; flex-wrap:wrap; gap:1rem; align-items:center;
}
.woocommerce div.product form.cart .quantity{ margin-right:0; }
.woocommerce div.product .quantity input.qty{ width:70px; text-align:center; }
.woocommerce-tabs ul.tabs{ list-style:none; padding:0; display:flex; gap:.5rem; border-bottom:2px solid var(--color-border); flex-wrap:wrap; }
.woocommerce-tabs ul.tabs li{ margin:0; }
.woocommerce-tabs ul.tabs li a{
  display:block; padding:.85rem 1.25rem; font-weight:600; color: var(--color-text-muted); border-radius: var(--radius-sm) var(--radius-sm) 0 0;
}
.woocommerce-tabs ul.tabs li.active a{ color: var(--color-primary); background: var(--color-primary-light); }
.woocommerce-tabs .panel{ padding-top:1.5rem; }
.related.products, .up-sells.upsells{ margin-top:3.5rem; padding-top:2.5rem; border-top:1px solid var(--color-border); }
.related.products > h2, .up-sells.upsells > h2{ margin-bottom:1.5rem; }

/* Product badges */
.woocommerce div.product .product_meta{ font-size:.85rem; color: var(--color-text-muted); margin-top:1.5rem; }
.woocommerce div.product .product_meta a{ color: var(--color-primary); }

/* Cart page */
.woocommerce table.shop_table{
  border:1px solid var(--color-border); border-radius: var(--radius-md); overflow:hidden; border-collapse:separate; border-spacing:0;
}
.woocommerce table.shop_table th{
  background: var(--color-primary-light); color: var(--color-primary); text-transform:uppercase; font-size:.75rem;
  letter-spacing:.04em; padding:1rem;
}
.woocommerce table.shop_table td{ padding:1rem; border-top:1px solid var(--color-border); }
.woocommerce table.shop_table td.product-remove a{
  color: var(--color-error); border-radius:50%; border:1px solid var(--color-error);
}
.woocommerce-cart-form .quantity input.qty{ width:65px; }
.cart-collaterals .cart_totals{
  background: var(--color-neutral-light); border-radius: var(--radius-md); padding:1.5rem;
}
.cart-collaterals .cart_totals h2{ margin-bottom:1rem; }
.cart-collaterals .wc-proceed-to-checkout a{ font-size:1.05rem; }
.woocommerce-shipping-calculator .shipping-calculator-button{ color: var(--color-primary); font-weight:600; }
.woocommerce-message, .woocommerce-info{
  border-top-color: var(--color-primary) !important; background: var(--color-primary-light);
  border-radius: var(--radius-sm); padding:1rem 1.5rem !important; margin-bottom:1.5rem !important;
  box-shadow: var(--shadow-sm); display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; justify-content:space-between;
}
.woocommerce-message::before{ color: var(--color-primary) !important; }
.woocommerce-error{
  border-top-color: var(--color-error) !important; background: #fdecea; border-radius: var(--radius-sm);
  margin-bottom:1.5rem !important; box-shadow: var(--shadow-sm); padding:1rem 1.5rem !important;
}
.woocommerce-error::before{ color: var(--color-error) !important; }
.woocommerce-error li{ padding:.2rem 0; }
.woocommerce-NoticeGroup{ margin-bottom:1rem; }

/* Checkout */
.woocommerce-checkout #payment{ background: var(--color-neutral-light); border-radius: var(--radius-md); padding:1.25rem; }
.woocommerce-checkout #payment ul.payment_methods{ border-bottom:none; }
.woocommerce-checkout #order_review_heading{ margin-top:2rem; }
.woocommerce form .form-row{ margin-bottom:1.25rem; }
.select2-container .select2-selection--single{ height:48px !important; border-color: var(--color-border) !important; border-radius: var(--radius-sm) !important; }
.select2-container--default .select2-selection--single .select2-selection__rendered{ line-height:48px !important; }
.select2-container--default .select2-selection--single .select2-selection__arrow{ height:46px !important; }

/* My account */
.woocommerce-account .woocommerce-MyAccount-navigation{
  background: var(--color-neutral-light); border-radius: var(--radius-md); padding:1rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul{ list-style:none; padding:0; margin:0; }
.woocommerce-account .woocommerce-MyAccount-navigation li{ margin-bottom:.25rem; }
.woocommerce-account .woocommerce-MyAccount-navigation li a{
  display:block; padding:.7rem 1rem; border-radius: var(--radius-sm); color: var(--color-text); font-weight:600;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{
  background: var(--color-primary); color:#fff;
}
.woocommerce-account .woocommerce-MyAccount-content{
  background:#fff; border:1px solid var(--color-border); border-radius: var(--radius-md); padding:1.75rem;
}
@media(min-width:768px){
  .woocommerce-account .woocommerce-MyAccount-navigation{ float:left; width:26%; margin-right:4%; }
  .woocommerce-account .woocommerce-MyAccount-content{ float:left; width:70%; }
}

/* Star rating */
.star-rating{ overflow:hidden; position:relative; height:1em; line-height:1; width:5.4em; font-family:star; }
.star-rating::before{ content:"\53\53\53\53\53"; float:left; top:0; left:0; position:absolute; color: var(--color-neutral); }
.star-rating span{ overflow:hidden; float:left; top:0; left:0; position:absolute; padding-top:1.5em; }
.star-rating span::before{ content:"\53\53\53\53\53"; top:0; position:absolute; left:0; color: var(--color-secondary); }

/* Quantity input arrows (nicer UI) */
.quantity{ display:inline-flex; align-items:center; border:1px solid var(--color-border); border-radius: var(--radius-sm); overflow:hidden; }
.quantity input.qty{ border:none; text-align:center; }

/* Mini cart / cross-sells */
.widget_shopping_cart .cart_list li, .woocommerce-mini-cart__total{ border-bottom:1px solid var(--color-border); }

/* WooCommerce blocks */
.wp-block-woocommerce-product-collection .wc-block-product{ border:1px solid var(--color-border); border-radius: var(--radius-md); }

/* Product carousel (Maximum Offers, Best Sellers homepage sections) —
   reuses the same .product-card-item cards as the shop grid, just laid
   out in a horizontally-scrollable track instead of a CSS grid.

   IMPORTANT: the track re-uses the shared `ul.products` class (so it still
   looks like the shop grid's cards) which normally sets each card to
   `width:100% !important` for the grid layout. That base rule otherwise
   wins here regardless of this block's higher selector specificity,
   because an !important declaration always beats a non-!important one —
   so every card-width override below also needs !important to actually
   take effect inside the carousel. Widths are calculated from the single
   --carousel-gap custom property (defined in style.css) so the same value
   used for the track's own `gap` is guaranteed to match what each card's
   width formula subtracts — no risk of the two drifting out of sync. */
.product-carousel{
  position:relative; width:100%; max-width:100%; box-sizing:border-box;
}
.product-carousel .carousel-track{
  display:flex !important; flex-wrap:nowrap; overflow-x:auto; overflow-y:hidden;
  width:100%; max-width:100%; box-sizing:border-box; scroll-snap-type:x mandatory;
  gap: var(--carousel-gap); padding:.25rem .25rem 1rem; margin:0 !important;
  scroll-behavior:smooth; -webkit-overflow-scrolling:touch; scrollbar-width:none; list-style:none;
}
.product-carousel .carousel-track::-webkit-scrollbar{ display:none; height:0; }
.product-carousel .carousel-track:focus-visible{ outline: 3px solid var(--color-secondary); outline-offset:2px; }

/* Card width per breakpoint — explicit N-per-view via flex-basis, using
   the same --carousel-gap the track's own `gap` uses so the math lines up
   exactly. Mobile: 1 card. ~480px+: 2 cards. ~768-1023px (tablet): 2-3
   cards. Desktop (1024px+): 4 cards. flex-shrink:0 + min-width:0 +
   box-sizing:border-box keep each card from either overflowing its slot
   or being squeezed/expanded by its own content (a common flexbox
   overflow cause). */
.product-carousel .carousel-track li.product-card-item{
  flex: 0 0 auto !important; flex-shrink:0 !important; min-width:0;
  width: 100% !important; max-width:100%;
  scroll-snap-align:start; margin:0 !important; box-sizing:border-box;
}
@media(min-width:480px){
  .product-carousel .carousel-track li.product-card-item{
    width: calc((100% - var(--carousel-gap)) / 2) !important;
  }
}
@media(min-width:768px){
  .product-carousel .carousel-track li.product-card-item{
    width: calc((100% - (2 * var(--carousel-gap))) / 3) !important;
  }
}
@media(min-width:1024px){
  .product-carousel .carousel-track li.product-card-item{
    width: calc((100% - (3 * var(--carousel-gap))) / 4) !important;
  }
}

.carousel-btn{
  position:absolute; top:38%; transform: translateY(-50%); z-index:5;
  width:42px; height:42px; border-radius:50%; border:1px solid var(--color-border); background:#fff;
  display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow: var(--shadow-md);
  color: var(--color-text); transition: background var(--transition), color var(--transition), opacity var(--transition);
}
.carousel-btn:hover{ background: var(--color-primary); color:#fff; border-color: var(--color-primary); }
.carousel-btn.is-disabled{ opacity:.35; pointer-events:none; }
.carousel-prev{ left:-.75rem; }
.carousel-next{ right:-.75rem; }
@media(min-width:1280px){ .carousel-prev{ left:-1.25rem; } .carousel-next{ right:-1.25rem; } }
@media(max-width:767px){
  /* Touch swipe is the natural mobile interaction — arrow buttons step aside. */
  .carousel-btn{ display:none; }
}

/* Category cards — modern eCommerce-style grid, dynamic from WooCommerce
   product categories (see organic_millet_get_product_categories()). */
.category-grid{
  display:grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1rem, 2.5vw, 1.75rem);
}
@media(max-width:1023px){ .category-grid{ grid-template-columns: repeat(3, 1fr); } }
@media(max-width:767px){
  .category-grid{
    display:flex; grid-template-columns:none; overflow-x:auto; gap:1rem;
    margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); padding-bottom:.75rem;
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
  }
  .category-card{ flex:0 0 44%; scroll-snap-align:start; }
}
@media(max-width:480px){ .category-card{ flex:0 0 64%; } }

.category-card{
  display:block; text-decoration:none; background:#fff; border:1px solid var(--color-border);
  border-radius: var(--radius-lg); overflow:hidden; position:relative;
  transition: transform var(--transition), box-shadow var(--transition);
}
.category-card:hover, .category-card:focus-visible{
  transform: translateY(-6px); box-shadow: var(--shadow-lg); border-color: transparent;
}
.category-card-media{ position:relative; aspect-ratio:1/1; background: var(--color-neutral-light); overflow:hidden; }
.category-card-media img{ width:100%; height:100%; object-fit:cover; transition: transform .45s ease; display:block; }
.category-card:hover .category-card-media img{ transform: scale(1.08); }
.category-card-placeholder{
  display:flex; align-items:center; justify-content:center; height:100%;
  font-family: var(--font-heading); font-size:2.75rem; font-weight:700; color:#fff;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
}
.category-card-body{ padding:1rem 1.1rem 1.3rem; text-align:center; }
.category-card-name{ margin:0 0 .5rem; font-size:1rem; color: var(--color-text); }
.category-card-count{
  display:inline-block; font-size:.72rem; font-weight:700; letter-spacing:.02em; color: var(--color-primary);
  background: var(--color-primary-light); padding:.3rem .75rem; border-radius:999px;
}

/* Single product page wishlist button */
.single-product-wishlist{ display:flex; align-items:center; gap:.6rem; margin:1rem 0 1.5rem; }
.single-product-wishlist .wishlist-toggle{
  position:static; box-shadow:none; background: var(--color-neutral-light); border:1px solid var(--color-border);
}
.single-product-wishlist .wishlist-toggle.is-active{ border-color: var(--color-secondary); background: #fff8ec; }
.single-product-wishlist .wishlist-label{ font-weight:600; font-size:.9rem; color: var(--color-text-muted); }

/* Favourites / Wishlist page + My Account tab */
.favourites-wrap{ min-height:120px; }
.favourites-empty{ padding: 3rem 1rem; }
.favourites-empty p{ color: var(--color-text-muted); margin-bottom:1.25rem; }
#organic-millet-guest-favourites[aria-busy="true"]{ opacity:.5; }
/* The My Account content column is narrower (70% width) than the full
   shop grid, so cap favourites cards to fewer columns there. */
.woocommerce-MyAccount-content .favourites-grid{ grid-template-columns: repeat(2, 1fr) !important; }
@media(min-width:1200px){
  .woocommerce-MyAccount-content .favourites-grid{ grid-template-columns: repeat(3, 1fr) !important; }
}

/* Rating distribution (single product Reviews tab) */
.rating-distribution{
  background: var(--color-neutral-light); border-radius: var(--radius-md); padding:1.5rem;
  margin-bottom:2rem; display:grid; gap:1.5rem; grid-template-columns:1fr;
}
@media(min-width:640px){ .rating-distribution{ grid-template-columns: auto 1fr; align-items:center; } }
.rating-distribution-summary{ text-align:center; }
.rating-distribution-average{
  display:block; font-family: var(--font-heading); font-size:2.75rem; font-weight:700; color: var(--color-primary); line-height:1;
}
.rating-distribution-stars{ display:flex; flex-direction:column; align-items:center; gap:.35rem; margin-top:.5rem; }
.rating-distribution-count{ font-size:.8rem; color: var(--color-text-muted); font-weight:600; }
.rating-distribution-bars{ display:flex; flex-direction:column; gap:.5rem; }
.rating-bar-row{ display:grid; grid-template-columns: 3.5rem 1fr 2.75rem; align-items:center; gap:.75rem; font-size:.8rem; }
.rating-bar-label{ color: var(--color-text-muted); font-weight:600; white-space:nowrap; }
.rating-bar-track{ background: var(--color-neutral); border-radius:999px; height:8px; overflow:hidden; display:block; }
.rating-bar-fill{ display:block; height:100%; background: var(--color-secondary); border-radius:999px; }
.rating-bar-percent{ text-align:right; color: var(--color-text-muted); font-weight:600; }

/* Native WooCommerce review form — star rating + layout polish */
#reviews #respond{ background:#fff; border:1px solid var(--color-border); border-radius: var(--radius-md); padding:1.5rem; margin-top:2rem; }
#reviews .comment-form-rating label{ font-weight:600; margin-bottom:.4rem; }
#reviews p.stars a{ color: var(--color-secondary); }
#reviews p.stars.selected a.active{ color: var(--color-secondary-dark); }
#reviews .comment-form-comment textarea{ min-height:120px; }
#reviews .form-submit input[type="submit"]{ margin-top:.5rem; }
.review-ajax-notice{ margin-bottom:1.5rem; }

/* Product weight badge (kg -> g), shown directly under the price */
.product-weight-badge{
  display:inline-flex; align-items:center; gap:.4rem; margin:0 0 1.25rem;
  background: var(--color-neutral-light); border:1px solid var(--color-border); color: var(--color-text);
  font-weight:600; font-size:.85rem; padding:.4rem .85rem; border-radius:999px;
}
.product-weight-icon{ display:inline-flex; color: var(--color-primary); }

/* Term/category archive description */
.term-description{
  background: var(--color-neutral-light); border-radius: var(--radius-md); padding:1.25rem 1.5rem;
  margin-bottom:2rem; color: var(--color-text-muted);
}

/* WooCommerce pagination (shop/category/search — distinct markup from blog pagination) */
.woocommerce-pagination{ margin-top:3rem; }
.woocommerce-pagination ul.page-numbers{
  list-style:none; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.4rem; padding:0; margin:0;
}
.woocommerce-pagination .page-numbers li{ display:inline-block; }
.woocommerce-pagination .page-numbers a, .woocommerce-pagination .page-numbers span{
  display:inline-flex; align-items:center; justify-content:center; min-width:2.75rem; height:2.75rem;
  padding:0 .7rem; border:1px solid var(--color-border); border-radius:999px; color: var(--color-text);
  font-weight:600; font-size:.9rem; background:#fff; transition: all var(--transition);
}
.woocommerce-pagination .page-numbers a:hover{
  background: var(--color-primary); border-color: var(--color-primary); color:#fff; transform: translateY(-1px);
}
.woocommerce-pagination .page-numbers .current{
  background: var(--color-primary); border-color: var(--color-primary); color:#fff; font-weight:700;
  box-shadow: var(--shadow-sm);
}
.woocommerce-pagination .page-numbers .dots{
  border-color:transparent; background:none; color: var(--color-text-muted); min-width:1.5rem;
}
/* Prev/Next get a distinct pill shape (wider, secondary-tinted border) so
   they read as controls rather than page numbers. */
.woocommerce-pagination .page-numbers.next,
.woocommerce-pagination .page-numbers.prev{
  min-width:auto; padding:0 1.1rem; border-color: var(--color-neutral); font-weight:700; gap:.35rem;
}
.woocommerce-pagination .page-numbers.next:hover,
.woocommerce-pagination .page-numbers.prev:hover{
  background: var(--color-secondary); border-color: var(--color-secondary); color: var(--color-text);
}
@media(max-width:480px){
  .woocommerce-pagination .page-numbers a, .woocommerce-pagination .page-numbers span{ min-width:2.4rem; height:2.4rem; padding:0 .5rem; font-size:.85rem; }
  .woocommerce-pagination .page-numbers.next, .woocommerce-pagination .page-numbers.prev{ padding:0 .85rem; }
}

/* Product filters — widgets + WooCommerce Filter block/shortcode buttons */
.widget_price_filter .price_label{ font-weight:600; margin-bottom:.5rem; display:block; }
.widget_price_filter .button{ font-size:.8rem; padding:.5rem 1rem; }
.woocommerce-widget-layered-nav-list, .wc-block-price-filter{ list-style:none; padding:0; }
.woocommerce-widget-layered-nav-list__item{ margin-bottom:.4rem; }
.woocommerce-widget-layered-nav-list__item--chosen a{ color: var(--color-primary); font-weight:700; }
.wc-layered-nav-rating a{ color: var(--color-text); }
.woocommerce .widget_layered_nav_filters ul{ list-style:none; padding:0; display:flex; flex-wrap:wrap; gap:.5rem; }
.woocommerce .widget_layered_nav_filters ul li{ margin:0; }
.woocommerce .widget_layered_nav_filters ul li a{
  display:inline-flex; align-items:center; gap:.35rem; background: var(--color-neutral-light);
  border:1px solid var(--color-border); border-radius:999px; padding:.35rem .8rem; font-size:.8rem; color: var(--color-text);
}

/* Cross-sells on the cart page (shares product-card grid styling via ul.products) */
.cross-sells{ margin-top:3rem; padding-top:2rem; border-top:1px solid var(--color-border); }
.cross-sells > h2{ margin-bottom:1.5rem; font-size:1.4rem; }

/* "Have a coupon?" + checkout two-column layout (col2-set) */
.woocommerce-form-coupon-toggle .woocommerce-info{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem; }
.woocommerce-form-coupon{
  background: var(--color-neutral-light); border-radius: var(--radius-md); padding:1.25rem; margin-bottom:2rem;
  display:flex; flex-wrap:wrap; gap:1rem; align-items:flex-end;
}
.woocommerce-form-coupon .form-row{ flex:1; min-width:200px; margin-bottom:0; }
.woocommerce-cart .cart-collaterals{ display:block; }
.checkout.woocommerce-checkout .col2-set{ display:flex; flex-wrap:wrap; gap:2.5rem; }
.checkout.woocommerce-checkout .col-1{ flex:1 1 100%; }
.checkout.woocommerce-checkout .col-2{ flex:1 1 100%; }
@media(min-width:900px){
  .checkout.woocommerce-checkout .col-1{ flex:1 1 55%; }
  .checkout.woocommerce-checkout .col-2{ flex:1 1 38%; }
}

/* Login / Register (My Account page, LOGGED OUT ONLY — WooCommerce renders
   just this form and returns before the MyAccount-navigation/content
   wrapper below is ever output when the visitor isn't logged in, so this
   never affects the logged-in account layout). Centered, single column,
   400px max width, modern card. */
.woocommerce-account .u-columns.col2-set{
  display:flex; flex-direction:column; align-items:stretch; gap:2rem;
  list-style:none; padding:0;
  max-width:400px; width:100%; margin:0 auto;
}
.woocommerce-account .u-column1, .woocommerce-account .u-column2{
  width:100%; background:#fff; border:1px solid var(--color-border); border-radius: var(--radius-lg);
  padding:2rem; box-shadow: var(--shadow-sm);
}
.woocommerce-account form.login h2, .woocommerce-account form.register h2,
.woocommerce-account .u-column1 h2, .woocommerce-account .u-column2 h2{ margin-bottom:1.25rem; font-size:1.3rem; text-align:center; }
.woocommerce-account form .form-row{ margin-bottom:1.1rem; }
.woocommerce-account form .form-row label{ font-weight:600; }
.woocommerce-account form input[type="text"],
.woocommerce-account form input[type="password"],
.woocommerce-account form input[type="email"]{ border-radius: var(--radius-sm); }
.woocommerce-account form .woocommerce-form-login__rememberme{ display:flex; align-items:center; gap:.5rem; font-weight:500; }
.woocommerce-account .lost_password a, .woocommerce-account .woocommerce-LostPassword a{ color: var(--color-primary); font-weight:600; }
.woocommerce-account form.login .woocommerce-form-login__submit,
.woocommerce-account form.register .woocommerce-form-register__submit{ margin-top:.5rem; width:100%; }

/* My Account: order details / view-order / downloads tables */
.woocommerce-order-details, .woocommerce-customer-details{
  background:#fff; border:1px solid var(--color-border); border-radius: var(--radius-md); padding:1.5rem; margin-bottom:2rem;
}
.woocommerce-order-details h2, .woocommerce-customer-details h2{ font-size:1.15rem; margin-bottom:1rem; }
.woocommerce-order-overview{
  list-style:none; padding:0; margin:0 0 2rem; display:flex; flex-wrap:wrap; gap:1.5rem;
  background: var(--color-neutral-light); border-radius: var(--radius-md); padding:1.25rem 1.5rem;
}
.woocommerce-order-overview li{ font-size:.9rem; }
.woocommerce-order-overview li strong{ display:block; color: var(--color-text); }

/* Responsive shop_table (cart / orders / checkout review) collapse to
   labeled rows on small screens, matching the theme's card spacing. */
@media(max-width:699px){
  .shop_table_responsive thead{ display:none; }
  .shop_table_responsive tr{ display:block; border-bottom:1px solid var(--color-border); }
  .shop_table_responsive tr:last-child{ border-bottom:0; }
  .shop_table_responsive td{ display:flex; justify-content:space-between; align-items:center; gap:1rem; text-align:right; border-top:0 !important; }
  .shop_table_responsive td::before{ content: attr(data-title) ": "; font-weight:600; color: var(--color-text-muted); text-align:left; }
}

/* Add-to-cart AJAX loading spinner in brand color */
.woocommerce a.added_to_cart{ display:inline-block; margin-left:.5rem; font-size:.8rem; font-weight:600; }
.woocommerce .button.loading::after{ border-top-color: var(--color-primary) !important; }

/* Quantity input: hide native number spinners since the theme provides its
   own +/- buttons (js/app.js) */
.quantity input.qty::-webkit-outer-spin-button,
.quantity input.qty::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.quantity input.qty[type=number]{ -moz-appearance:textfield; }
.qty-btn{
  background: var(--color-neutral-light); border:none; width:36px; height:38px; cursor:pointer;
  font-size:1.1rem; color: var(--color-text); display:flex; align-items:center; justify-content:center;
  transition: background var(--transition);
}
.qty-btn:hover{ background: var(--color-primary-light); color: var(--color-primary); }

/* Responsive tweaks */
@media(max-width: 480px){
  ul.products{ grid-template-columns: 1fr 1fr; }
  .woocommerce div.product form.cart{ flex-direction:column; align-items:stretch; }
}
