/* ==========================================================================
   WooCommerce reskin — shop/archive, single product, cart, checkout
   Loaded alongside style.css. Uses the same CSS variables.
   ========================================================================== */

/* ---- Shop toolbar (result count / ordering) ---- */
.woocommerce-result-count,
.woocommerce-ordering { font-size: 14.5px; color: var(--so-text-muted); }
.woocommerce-ordering select {
  border: 1px solid var(--so-border); border-radius: 8px; padding: 9px 14px; font-family: 'Archivo'; font-weight: 600;
}
ul.products.columns-4 { display: grid !important; grid-template-columns: repeat(4,1fr); gap: 22px; }
@media (max-width: 1000px) { ul.products.columns-4 { grid-template-columns: repeat(2,1fr) !important; } }
@media (max-width: 560px) { ul.products.columns-4 { grid-template-columns: 1fr !important; } }

/* ---- Shop loop product card ---- */
ul.products li.product {
  list-style: none; width: 100% !important; margin: 0 !important; float: none !important;
  display: flex; flex-direction: column; border: 1px solid var(--so-border); border-radius: var(--so-radius);
  overflow: hidden; background: #fff; transition: transform .16s, box-shadow .16s, border-color .16s;
}
ul.products li.product:hover { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(23,24,26,.1); border-color: #EAD9C6; }
ul.products li.product a { display: flex; flex-direction: column; flex: 1; }
ul.products li.product img {
  aspect-ratio: 1/1; object-fit: cover; width: 100%; height: auto; border-radius: 0 !important;
}
ul.products li.product .woocommerce-loop-product__title {
  font-size: 15.5px; font-weight: 600; color: var(--so-heading); padding: 15px 16px 0; order: 2; line-height: 1.32;
}
ul.products li.product .price {
  padding: 4px 16px 16px; order: 3; color: var(--so-heading); font-weight: 700; margin-top: auto;
}
ul.products li.product .button {
  margin: 0 16px 16px; border-radius: 7px; background: var(--so-orange); color: var(--so-black) !important;
  font-family: 'Archivo'; font-weight: 800; font-size: 13.5px; padding: 12px 16px; text-align: center; border: none;
  order: 4;
}
ul.products li.product .button:hover { background: var(--so-orange-hover); }
ul.products li.product .onsale {
  position: absolute; top: 11px; left: 11px; background: var(--so-black); color: #fff;
  font-family: 'Archivo'; font-weight: 800; font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase;
  padding: 4px 8px; border-radius: 5px; min-height: auto; min-width: auto; line-height: 1.6;
}
ul.products li.product .star-rating { order: 1; margin: 0 16px; }

/* Category thumbnail cards (product_cat archives listing sub-categories) */
ul.products li.product-category {
  border: 1px solid var(--so-border); border-radius: var(--so-radius); overflow: hidden; background: #fff;
}
ul.products li.product-category h2 { font-family: 'Archivo'; font-weight: 800; font-size: 18px; text-transform: uppercase; padding: 14px 16px; }
ul.products li.product-category .woocommerce-loop-category__title mark { background: none; color: var(--so-text-muted); font-weight: 400; }

/* Pagination */
nav.woocommerce-pagination ul { display: flex; gap: 8px; }
nav.woocommerce-pagination ul li { border: none !important; }
nav.woocommerce-pagination ul li a, nav.woocommerce-pagination ul li span {
  display: flex; align-items: center; justify-content: center; width: 40px; height: 40px;
  border: 1px solid var(--so-border); border-radius: 8px; font-family: 'Archivo'; font-weight: 700;
}
nav.woocommerce-pagination ul li span.current, nav.woocommerce-pagination ul li a:hover {
  background: var(--so-orange); color: var(--so-black); border-color: var(--so-orange);
}

/* ---- Sidebar / filter widgets (price filter, layered nav) ---- */
.widget_price_filter .price_slider_amount .button { background: var(--so-black); color: #fff; border-radius: 6px; }
.widget_layered_nav ul li a { color: var(--so-text-body); }
.widget_layered_nav ul li.chosen a { color: var(--so-orange-deep); font-weight: 700; }

/* ---- Single product page ---- */
.single-product div.product { max-width: var(--so-maxwidth); margin: 0 auto; padding: 48px 24px 80px; display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
@media (max-width: 900px) { .single-product div.product { grid-template-columns: 1fr; gap: 30px; padding: 30px 24px 60px; } }
.single-product div.product div.images { grid-row: span 1; }
.single-product div.product div.images img { border-radius: var(--so-radius); }
.single-product div.product .woocommerce-product-gallery__image { border: 1px solid var(--so-border); border-radius: var(--so-radius); overflow: hidden; }

.single-product div.product .product_title {
  font-weight: 900; font-size: 34px; text-transform: uppercase; letter-spacing: -.01em; margin-bottom: 10px;
}
.single-product div.product p.price {
  font-family: 'Archivo'; font-weight: 800; font-size: 26px; color: var(--so-heading); margin: 12px 0 20px;
}
.single-product div.product .woocommerce-product-details__short-description { color: var(--so-text-body); font-size: 16px; line-height: 1.6; margin-bottom: 22px; }

.single-product form.cart {
  border-top: 1px solid var(--so-border); border-bottom: 1px solid var(--so-border); padding: 22px 0; margin: 22px 0;
}
.single-product .quantity input { width: 70px; height: 48px; border: 1px solid var(--so-border); border-radius: 8px; text-align: center; margin-right: 12px; }
.single-product .single_add_to_cart_button {
  background: var(--so-orange) !important; color: var(--so-black) !important; font-family: 'Archivo'; font-weight: 800 !important;
  font-size: 16px !important; padding: 16px 30px !important; border-radius: 7px !important; border: none !important;
}
.single-product .single_add_to_cart_button:hover { background: var(--so-orange-hover) !important; }

.single-product .in-stock { color: var(--so-green); font-weight: 700; }
.single-product .out-of-stock { color: #C0392B; font-weight: 700; }

.woocommerce-tabs { max-width: var(--so-maxwidth); margin: 0 auto 80px; padding: 0 24px; }
.woocommerce-tabs ul.tabs { display: flex; gap: 6px; border-bottom: 1px solid var(--so-border); margin-bottom: 24px; }
.woocommerce-tabs ul.tabs li { list-style: none; }
.woocommerce-tabs ul.tabs li a { font-family: 'Archivo'; font-weight: 700; padding: 12px 20px; display: block; }
.woocommerce-tabs ul.tabs li.active a { color: var(--so-orange-deep); border-bottom: 3px solid var(--so-orange); }

.related.products, .up-sells.upsells { max-width: var(--so-maxwidth); margin: 0 auto 80px; padding: 0 24px; }
.related.products > h2, .up-sells.upsells > h2 { font-weight: 900; font-size: 28px; text-transform: uppercase; margin-bottom: 24px; }

/* Hidden pricing mode — applied via body class 'so-catalog-mode' (see functions.php) */
.so-catalog-mode ul.products li.product .price,
.so-catalog-mode.single-product div.product p.price { display: none; }
.so-catalog-mode ul.products li.product .button,
.so-catalog-mode .single_add_to_cart_button {
  background: var(--so-black) !important; color: #fff !important;
}

/* ---- Cart page ---- */
.woocommerce-cart .woocommerce { max-width: var(--so-maxwidth); margin: 0 auto; padding: 40px 24px 80px; }
table.shop_table { border: 1px solid var(--so-border); border-radius: var(--so-radius); border-collapse: separate; width: 100%; overflow: hidden; }
table.shop_table th { background: var(--so-bg-cream-2); font-family: 'Archivo'; font-weight: 700; text-transform: uppercase; font-size: 12.5px; letter-spacing: .06em; padding: 14px 16px; text-align: left; }
table.shop_table td { padding: 16px; border-top: 1px solid var(--so-border); }
.woocommerce-cart-form .product-thumbnail img { border-radius: 8px; width: 72px; }
td.actions .button, .cart_totals .checkout-button {
  background: var(--so-orange) !important; color: var(--so-black) !important; font-family: 'Archivo'; font-weight: 800 !important;
  border-radius: 7px !important; padding: 14px 22px !important; border: none !important;
}
.cart_totals { border: 1px solid var(--so-border); border-radius: var(--so-radius); padding: 24px; background: var(--so-bg-cream); }
.cart_totals h2 { font-weight: 900; text-transform: uppercase; font-size: 22px; margin-bottom: 16px; }

/* ---- Checkout page ---- */
.woocommerce-checkout .woocommerce { max-width: var(--so-maxwidth); margin: 0 auto; padding: 40px 24px 80px; }
.woocommerce-checkout h3#order_review_heading { font-weight: 900; text-transform: uppercase; font-size: 24px; }
#customer_details input, #customer_details select, #customer_details textarea {
  border: 1px solid var(--so-border); border-radius: 8px; padding: 12px 14px;
}
#order_review { border: 1px solid var(--so-border); border-radius: var(--so-radius); padding: 24px; background: var(--so-bg-cream); }
.woocommerce-checkout .button, #place_order {
  background: var(--so-orange) !important; color: var(--so-black) !important; font-family: 'Archivo'; font-weight: 800 !important;
  border-radius: 7px !important; padding: 16px 22px !important; border: none !important; font-size: 16px !important; width: 100%;
}
#place_order:hover { background: var(--so-orange-hover) !important; }

/* Pickup-location field injected at checkout (see functions.php) */
.so-pickup-location-field { border: 1px solid var(--so-border); border-radius: 10px; padding: 18px; margin: 20px 0; background: #fff; }
.so-pickup-location-field label { font-family: 'Archivo'; font-weight: 800; text-transform: uppercase; font-size: 13px; letter-spacing: .04em; display: block; margin-bottom: 10px; }
.so-pickup-location-field select { width: 100%; padding: 12px; border-radius: 8px; border: 1px solid var(--so-border); }
.so-pickup-note { font-size: 13.5px; color: var(--so-text-muted); margin-top: 8px; }

/* Local pickup message on cart/checkout (no shipping) */
.woocommerce-shipping-totals.shipping td { font-weight: 700; color: var(--so-green); }
