/* ============================================================
   WooCommerce — shop archive, product cards, single product, cart
   ============================================================ */

.woocommerce-page .container--shop { padding-top: clamp(28px,4vw,48px); padding-bottom: clamp(48px,7vw,96px); }

/* Page header band */
.shop-hero { background: var(--c-dark); color:#fff; padding-block: clamp(36px,5vw,64px); }
.shop-hero h1 { color:#fff; font-size: var(--fs-h1); text-transform: uppercase; }
.shop-hero .term-desc { color:#aeb9d4; max-width: 70ch; margin-top:10px; }
.breadcrumb { font-size: var(--fs-xs); letter-spacing:.08em; text-transform:uppercase; font-family:var(--font-head); font-weight:700; color: #8aa0d6; margin-bottom:10px; }
.breadcrumb a { color:#8aa0d6; } .breadcrumb a:hover{ color: var(--c-volt);}

/* Toolbar */
.woocommerce .woocommerce-result-count { color: var(--c-muted); font-size: var(--fs-sm); margin: 0; }
.woocommerce .woocommerce-ordering select,
.shop-toolbar select { font-family: var(--font-head); font-weight:700; font-size:.85rem; padding:10px 14px; border:1px solid var(--c-line); border-radius: var(--r-sm); background:#fff; }
.shop-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom: 26px; flex-wrap:wrap; }

/* Product grid */
.woocommerce ul.products, ul.products {
  display: grid !important; gap: clamp(14px,2vw,26px); margin:0; padding:0; list-style:none;
  grid-template-columns: repeat(4, 1fr);
}
/* WooCommerce adds ::before/::after clearfix pseudo-elements on ul.products;
   in a grid container they become grid items and eat an empty cell. Remove them. */
.woocommerce ul.products::before, .woocommerce ul.products::after,
ul.products::before, ul.products::after { content: none !important; display: none !important; }
.woocommerce ul.products li.product, ul.products li.product { width:auto !important; margin:0 !important; float:none !important; }
@media(max-width:1040px){ .woocommerce ul.products, ul.products { grid-template-columns: repeat(3,1fr);} }
@media(max-width:760px){ .woocommerce ul.products, ul.products { grid-template-columns: repeat(2,1fr);} }

/* Product card */
.product-card, .woocommerce ul.products li.product {
  position: relative; background:#fff; border:1px solid var(--c-line); border-radius: var(--r);
  overflow:hidden; display:flex; flex-direction:column; transition: transform .15s var(--ease), box-shadow .2s var(--ease), border-color .2s;
}
.product-card:hover, .woocommerce ul.products li.product:hover { transform: translateY(-4px); box-shadow: var(--sh); border-color: transparent; }
.woocommerce ul.products li.product a img, .product-card__media img { aspect-ratio: 1/1; object-fit: contain; background: var(--c-mist); padding: 12px; width:100%; margin:0; }
.woocommerce ul.products li.product .woocommerce-loop-product__title, .product-card__title {
  font-family: var(--font-head); font-weight:700; font-size:.95rem; line-height:1.25; color: var(--c-ink);
  padding: 14px 16px 4px !important; }
.woocommerce ul.products li.product .price, .product-card__price {
  padding: 0 16px 14px; margin-top:auto; color: var(--c-ink); font-family: var(--font-head); font-weight: 800; font-size: 1.05rem; }
.woocommerce ul.products li.product .price del { color: var(--c-muted); font-weight:600; font-size:.85rem; opacity:.7; margin-right:6px; }
.woocommerce ul.products li.product .price ins { text-decoration:none; color: var(--c-sale); }
/* Sale badge — override WooCommerce's default top:-0.5em/right:-0.5em (which
   overhangs and gets clipped by the card's rounded overflow). Pin it inside,
   clear of the corner radius. !important + extra specificity beat WC core CSS. */
.woocommerce span.onsale,
.woocommerce ul.products li.product span.onsale,
ul.products li.product span.onsale,
.single-product .product span.onsale,
.product-card .onsale {
  position:absolute !important; top:18px !important; left:18px !important;
  right:auto !important; bottom:auto !important; z-index:3; margin:0 !important;
  min-width:auto; min-height:auto; padding:.35em .6em;
  background: var(--c-sale); color:#fff; border-radius: var(--r-sm); font-family: var(--font-head); font-weight:800;
  font-size: var(--fs-xs); letter-spacing:.06em; text-transform:uppercase; line-height:1; }
.woocommerce ul.products li.product .button, .product-card .button {
  margin: 0 16px 16px; border-radius: var(--r-sm); background: var(--c-blue); color:#fff;
  font-family: var(--font-head); font-weight:800; text-transform:uppercase; font-size:.8rem; letter-spacing:.04em; padding:.7em 1em;
  border:2px solid var(--c-blue); transition: .15s var(--ease); text-align:center; }
.woocommerce ul.products li.product .button:hover, .product-card .button:hover { background: var(--c-blue-600); border-color: var(--c-blue-600); }
.woocommerce ul.products li.product .added_to_cart { margin: -6px 16px 16px; font-size:.78rem; font-family:var(--font-head); font-weight:700; }

/* ---- Single product ---- */
.single-product div.product { display:grid; grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); gap: clamp(28px,4vw,60px) clamp(28px,4vw,60px); align-items:start; }
@media(max-width:880px){ .single-product div.product { grid-template-columns: 1fr; } }
/* Only the gallery + summary share the 2-col row; tabs/related/upsells go full-width below */
.single-product div.product > .woocommerce-tabs,
.single-product div.product > .related,
.single-product div.product > .upsells { grid-column: 1 / -1; }

/* Gallery (force visible — WC sets inline opacity:0 until flexslider inits) */
.single-product .woocommerce-product-gallery { opacity:1 !important; width:100% !important; float:none !important; margin:0 !important; position:relative; }
.single-product .product .images { border:0; }
.single-product .woocommerce-product-gallery__wrapper { margin:0; border:1px solid var(--c-line); border-radius: var(--r); overflow:hidden; background:#fff; }
.single-product .woocommerce-product-gallery__image img { width:100%; height:auto; aspect-ratio:1/1; object-fit:contain; background:var(--c-mist); padding:clamp(16px,3vw,36px); margin:0; }
.single-product .flex-control-thumbs { display:flex; flex-wrap:wrap; gap:10px; list-style:none; padding:0; margin:14px 0 0; }
.single-product .flex-control-thumbs li { width:76px; margin:0; }
.single-product .flex-control-thumbs img { border:1px solid var(--c-line); border-radius:var(--r-sm); cursor:pointer; opacity:.55; padding:6px; background:#fff; aspect-ratio:1/1; object-fit:contain; transition:.15s var(--ease); }
.single-product .flex-control-thumbs img.flex-active, .single-product .flex-control-thumbs img:hover { opacity:1; border-color:var(--c-blue); }
.single-product .woocommerce-product-gallery__trigger { position:absolute; top:14px; right:14px; z-index:4; }
.single-product span.onsale { top:14px; left:14px; }

/* Summary — WC core sets float:right;width:48%; reset so it fills its grid column */
.single-product div.product .summary,
.single-product div.product .entry-summary { width:100% !important; float:none !important; margin:0 !important; }
.single-product .product .summary { padding-top: 2px; }
.single-product .product_title { font-size: clamp(1.6rem, 2.6vw, 2.4rem); text-transform:none; letter-spacing:-.01em; margin-bottom:.5rem; }
/* Big price ONLY in the main summary (not Related/Upsell cards, which are also inside .single-product) */
.single-product .summary .price { font-family: var(--font-head) !important; font-weight:900; font-size: clamp(1.8rem,3vw,2.4rem) !important; color: var(--c-ink) !important; line-height:1; margin:.2rem 0 1.1rem; display:block; }
.single-product .summary .price ins { text-decoration:none; color: var(--c-sale); }
.single-product .summary .price del { color: var(--c-muted); font-size:1.3rem; font-weight:600; margin-right:8px; }
.single-product .woocommerce-product-details__short-description { color:var(--c-muted); font-size:.97rem; margin-bottom:1.2rem; }
.single-product .woocommerce-product-details__short-description ul { padding-left:1.1em; }
.single-product .summary .stock { font-family:var(--font-head); font-weight:700; font-size:.82rem; text-transform:uppercase; letter-spacing:.05em; margin-bottom:.6rem; }
.single-product .summary .stock.in-stock { color:var(--c-success); }

/* Buy box */
/* Deterministic 2-col buy box (qty + button) — immune to WC float/clearfix rules.
   Applies to simple-product forms and the variable-product add-to-cart block. */
.single-product form.cart:not(.variations_form),
.single-product .woocommerce-variation-add-to-cart {
  display:grid !important; grid-template-columns: auto minmax(200px, 1fr); gap:12px; align-items:stretch; margin: 18px 0 20px; }
.single-product form.cart::before, .single-product form.cart::after,
.single-product .woocommerce-variation-add-to-cart::before, .single-product .woocommerce-variation-add-to-cart::after { content:none !important; display:none !important; }
.single-product form.cart .quantity, .single-product .woocommerce-variation-add-to-cart .quantity { float:none !important; margin:0 !important; }

/* Variable product: stack rows — variations, then price, then add-to-cart */
.single-product form.variations_form { display:block !important; margin: 18px 0 20px; }
.single-product table.variations { width:100%; border:0; margin:0 0 16px; }
.single-product table.variations tbody, .single-product table.variations tr { display:block; }
.single-product table.variations td { display:block; padding:0; border:0; }
.single-product table.variations tr + tr { margin-top:14px; }
.single-product table.variations td.label { font-family:var(--font-head); font-weight:800; text-transform:uppercase; font-size:.78rem; letter-spacing:.05em; color:var(--c-ink); margin-bottom:6px; }
.single-product table.variations td.label label { margin:0; font-weight:inherit; }
.single-product table.variations td.value select { width:100%; max-width:380px; height:52px; padding:0 14px; border:1px solid var(--c-line); border-radius:var(--r-sm); font-family:var(--font-head); font-weight:700; background:#fff; }
.single-product .reset_variations { display:inline-block; margin-top:8px; font-size:.78rem; font-family:var(--font-head); font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.single-product .single_variation_wrap { display:block; }
.single-product .woocommerce-variation.single_variation { margin: 2px 0 6px; }
.single-product .woocommerce-variation .price { display:block; margin:.2rem 0 1rem; }
.single-product .woocommerce-variation .woocommerce-variation-availability .stock { margin:.2rem 0 .8rem; }
.single-product .quantity input.qty { width:84px; height:56px; text-align:center; border:1px solid var(--c-line); border-radius: var(--r-sm); font-family:var(--font-head); font-weight:800; font-size:1.05rem; }
.single-product .single_add_to_cart_button.button {
  flex:1; min-width:220px; background: var(--c-blue) !important; color:#fff !important; border:2px solid var(--c-blue) !important;
  font-family:var(--font-head); font-weight:800; text-transform:uppercase; letter-spacing:.04em;
  padding: 1em 2em !important; border-radius: var(--r-sm) !important; font-size:1.05rem !important; }
.single-product .single_add_to_cart_button.button:hover { background: var(--c-blue-600) !important; border-color:var(--c-blue-600) !important; transform: translateY(-2px); }

/* Meta (SKU / category) */
.single-product .product_meta { font-size:.85rem; color:var(--c-muted); border-top:1px solid var(--c-line); margin-top:18px; padding-top:16px; }
.single-product .product_meta > span { display:block; margin-bottom:4px; }
.single-product .product_meta a { color:var(--c-blue); }

/* Tabs / description */
.single-product .woocommerce-tabs { margin-top: clamp(36px,5vw,64px); }
.single-product .woocommerce-tabs ul.tabs { list-style:none; display:flex; gap:6px; padding:0; border-bottom:2px solid var(--c-line); margin:0 0 24px; flex-wrap:wrap; }
.single-product .woocommerce-tabs ul.tabs li { margin:0; }
.single-product .woocommerce-tabs ul.tabs li a { font-family:var(--font-head); font-weight:800; text-transform:uppercase; font-size:.82rem; letter-spacing:.04em; padding:12px 16px; display:block; color:var(--c-muted); border-bottom:3px solid transparent; margin-bottom:-2px; }
.single-product .woocommerce-tabs ul.tabs li.active a { color:var(--c-blue); border-bottom-color: var(--c-volt); }
.single-product .woocommerce-Tabs-panel { max-width:920px; line-height:1.7; }
.single-product .woocommerce-Tabs-panel h2 { font-size:var(--fs-h3); margin-bottom:.6rem; }

/* Related / upsells */
.related.products, .upsells.products { margin-top: clamp(40px,6vw,72px); border-top:1px solid var(--c-line); padding-top: clamp(32px,4vw,48px); }
.related.products > h2, .upsells > h2 { font-size: var(--fs-h2); text-transform:uppercase; margin-bottom: 24px; }

/* Buttons / alerts (global woo) */
.woocommerce .button.alt, .woocommerce button.button.alt, .woocommerce a.button.alt { background: var(--c-blue); color:#fff; border-radius:var(--r-sm); font-family:var(--font-head); font-weight:800; text-transform:uppercase; letter-spacing:.03em; }
.woocommerce .button.alt:hover { background: var(--c-blue-600); }
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-top-color: var(--c-blue) !important; border-radius: var(--r-sm); font-size:.92rem; }
.woocommerce-message { border-top-color: var(--c-success) !important; }

/* Cart / tables */
.woocommerce table.shop_table { border-radius: var(--r); border-color: var(--c-line); }
.woocommerce table.shop_table th { font-family:var(--font-head); font-weight:800; text-transform:uppercase; font-size:.78rem; letter-spacing:.05em; }

/* Payment-method card-brand icons: the base reset makes img block-level,
   which stacks the gateway's Visa/MC/Amex icons vertically. Inline them. */
.woocommerce-checkout .wc_payment_method label img,
img.sv-wc-payment-gateway-icon {
	display: inline-block;
	vertical-align: middle;
	margin-inline-start: 6px;
}

/* Cart/checkout order tables: brand blue bars instead of near-black ink */
.woocommerce-checkout .entry th,
.woocommerce-cart .entry th {
	background: var(--c-blue);
}
