/* ==========================================================================
   Store pages (shop archive + single product) — clean, light boutique styling
   Loaded only on WooCommerce pages. Uses the theme's design tokens from home.css
   ========================================================================== */

.wc-main { padding: 40px 0 72px; background: var(--bg); }
.wc-main .wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad); }

/* ---------- Mega-menu safety net (store pages) ----------
   Guarantees the "Shop by Category" dropdown is opaque and above the product
   grid even if a stale home.css is cached. Loads after home.css on store pages. */
.header .mega,
.has-mega .mega {
  background: #fffdf8 !important;
  z-index: 200 !important;
  border: 1px solid var(--line);
  box-shadow: 0 22px 46px -24px rgba(44, 40, 35, .5) !important;
}
.header .mega .wrap { padding: 34px var(--pad) 40px !important; }
.header .mega ul a { font-size: 18px !important; line-height: 1.2; }
.header .mega h4 { font-size: 11px !important; margin-bottom: 14px !important; }

/* Page / shop heading */
.wc-main .woocommerce-products-header__title,
.wc-main h1.entry-title,
.wc-main .product_title {
  font-family: var(--display);
  font-weight: 500;
  color: var(--ink);
  letter-spacing: .01em;
}
.wc-main .woocommerce-products-header__title { font-size: 40px; margin: 0 0 6px; }
.woocommerce-result-count { color: var(--muted); font-family: var(--sans); font-size: 13px; }
.woocommerce-ordering select {
  font-family: var(--sans); border: 1px solid var(--line); background: var(--surface);
  border-radius: var(--radius); padding: 8px 12px; color: var(--ink);
}

/* ---------- Product grid (shop archive) ---------- */
/* Hard overrides: WooCommerce core CSS floats li.product to a % width (e.g. 22.28%
   with margin-right) which fights our CSS Grid, the same conflict that broke the
   single-product layout. Without !important here the two fight over which column
   an item lands in, which shows up as an oddly-empty first cell in a row. */
.wc-main ul.products {
  display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 30px 24px;
  list-style: none !important; margin: 28px 0 0 !important; padding: 0 !important;
}
.wc-main ul.products::before, .wc-main ul.products::after { display: none !important; }
.wc-main ul.products li.product {
  margin: 0 !important; text-align: left; width: auto !important; float: none !important;
  clear: none !important; position: static;
}
.wc-main ul.products li.product a { display: block; float: none !important; width: auto !important; }
.wc-main ul.products li.product a img {
  border-radius: var(--radius); margin-bottom: 14px; background: var(--bg-2);
  aspect-ratio: 3/4; object-fit: cover; width: 100% !important; height: auto; box-shadow: var(--shadow-sm);
  float: none !important;
}
.wc-main ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--display); font-size: 19px; font-weight: 500; color: var(--ink);
  padding: 2px 0 4px; line-height: 1.25;
}
.wc-main ul.products li.product .price {
  color: var(--ink); font-family: var(--sans); font-weight: 700; font-size: 15px;
}
.wc-main ul.products li.product .price del { color: var(--muted); font-weight: 400; margin-right: 6px; }
.wc-main ul.products li.product .price ins { text-decoration: none; }
.wc-main ul.products li.product .button,
.wc-main ul.products li.product .added_to_cart {
  display: inline-block; margin-top: 10px; font-family: var(--alt);
  font-size: 12px; letter-spacing: .12em; text-transform: uppercase;
  background: var(--ink); color: #fff; border: none; border-radius: var(--radius);
  padding: 10px 16px; cursor: pointer; transition: background .2s var(--ease);
}
.wc-main ul.products li.product .button:hover { background: var(--accent); }
.wc-main .onsale {
  background: var(--accent); color: #fff; border: none; font-family: var(--alt);
  font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
  padding: 5px 10px; border-radius: 100px; min-height: 0; min-width: 0;
}

/* ---------- Single product ---------- */
/* Hard overrides: WooCommerce core floats .images/.summary to 48% widths, which
   fights the grid and causes overlapping panels. Neutralize floats completely. */
.wc-main div.product { display: grid !important; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 48px; align-items: start; }
.wc-main div.product::before, .wc-main div.product::after { display: none !important; }
.wc-main div.product div.images,
.wc-main div.product .woocommerce-product-gallery,
.wc-main div.product div.summary,
.wc-main div.product .entry-summary {
  float: none !important; width: 100% !important; margin: 0 !important; position: static;
}
.wc-main div.product .woocommerce-tabs,
.wc-main div.product .related.products,
.wc-main div.product section.related,
.wc-main div.product .up-sells {
  grid-column: 1 / -1; float: none !important; width: 100% !important; clear: both;
}
.wc-main div.product .woocommerce-product-gallery { margin: 0; }
.wc-main div.product .woocommerce-product-gallery img { border-radius: var(--radius); }
.wc-main div.product .product_title { font-size: 34px; margin: 0 0 10px; }
.wc-main div.product p.price,
.wc-main div.product span.price {
  color: var(--ink); font-family: var(--sans); font-weight: 700; font-size: 22px; margin: 0 0 18px;
}
.wc-main div.product p.price del { color: var(--muted); font-weight: 400; }
.wc-main div.product .woocommerce-product-details__short-description { color: var(--ink-2); line-height: 1.7; }
.wc-main div.product form.cart { margin: 24px 0; }
.wc-main div.product .quantity input {
  border: 1px solid var(--line); background: var(--surface); border-radius: var(--radius);
  height: 50px; width: 72px; padding: 0 10px; color: var(--ink);
}
.wc-main div.product form.cart .button,
.wc-main div.product .single_add_to_cart_button {
  background: var(--accent); color: #fff; border: none; border-radius: var(--radius);
  font-family: var(--alt); font-size: 13px; letter-spacing: .12em; text-transform: uppercase;
  font-weight: 600; height: 50px; padding: 0 34px; cursor: pointer; transition: opacity .2s var(--ease);
}
.wc-main div.product form.cart .button:hover { opacity: .9; }
.wc-main div.product .product_meta { color: var(--muted); font-size: 13px; font-family: var(--sans); margin-top: 18px; }

/* Tabs + related */
.wc-main .woocommerce-tabs { grid-column: 1 / -1; margin-top: 48px; }
.wc-main .woocommerce-tabs ul.tabs { border-bottom: 1px solid var(--line); padding: 0; }
.wc-main .woocommerce-tabs ul.tabs li { background: transparent; border: none; }
.wc-main .woocommerce-tabs ul.tabs li a { color: var(--ink-2); font-family: var(--alt); text-transform: uppercase; letter-spacing: .1em; font-size: 13px; }
.wc-main .related.products { grid-column: 1 / -1; margin-top: 56px; }
.wc-main .related.products > h2 { font-family: var(--display); font-size: 26px; color: var(--ink); margin-bottom: 20px; }

/* Notices */
.wc-main .woocommerce-message,
.wc-main .woocommerce-info {
  border-top-color: var(--accent); background: var(--surface); font-family: var(--sans); color: var(--ink);
}

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
  .wc-main ul.products { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 760px) {
  .wc-main ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 22px 16px; }
  .wc-main div.product { grid-template-columns: 1fr; gap: 28px; }
  .wc-main .woocommerce-products-header__title { font-size: 30px; }
}
