/* ============================================================
   WooCommerce surfaces (shop, product, cart, checkout, account)
   dressed in the Essential Bio Labs palette.
   ============================================================ */

.woo { color: var(--fog); }

/* cart and checkout are regular pages; let them use the full width */
body.woocommerce-cart .entry,
body.woocommerce-checkout .entry,
body.woocommerce-account .entry { max-width: none; }

/* ---- headings ---- */
.woocommerce h1, .woocommerce h2, .woocommerce h3,
.woocommerce-page h1, .woocommerce-page h2, .woocommerce-page h3 {
  font-family: var(--f-display);
  color: var(--white);
  letter-spacing: -.02em;
}

.woocommerce .product_title { font-size: clamp(1.8rem, 3vw, 2.4rem); margin-bottom: .9rem; }

/* ---- prices ---- */
.woocommerce .price,
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--f-display);
  color: var(--white);
  font-weight: 600;
  letter-spacing: -.02em;
}

.woocommerce div.product p.price { font-size: 1.6rem; }
.woocommerce del { color: var(--steel); font-weight: 400; }
.woocommerce ins { text-decoration: none; }

/* ---- buttons ---- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.wc-block-components-button {
  font-family: var(--f-body);
  font-size: .88rem;
  font-weight: 600;
  letter-spacing: .005em;
  padding: .82rem 1.45rem;
  border-radius: var(--r);
  border: 1px solid var(--white);
  background: var(--white);
  color: var(--ink);
  text-transform: none;
  transition: transform .3s ease, background .3s ease, color .3s ease, border-color .3s ease;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.wc-block-components-button:hover {
  background: var(--paper);
  border-color: var(--paper);
  color: var(--ink);
  transform: translateY(-2px);
}

.woocommerce a.button.wc-backward,
.woocommerce button[name="update_cart"] {
  background: transparent;
  border-color: var(--line);
  color: var(--fog);
}

.woocommerce a.button.wc-backward:hover,
.woocommerce button[name="update_cart"]:hover {
  background: rgba(255, 255, 255, .04);
  border-color: var(--fog);
  color: var(--white);
}

.woocommerce button.button:disabled,
.woocommerce button.button[disabled] { opacity: .45; transform: none; }

/* ---- product grid ---- */
.woocommerce ul.products li.product {
  background: var(--graphite);
  border: 1px solid var(--line-soft);
  border-radius: var(--r-lg);
  overflow: hidden;
  padding: 0 0 1.35rem;
  text-align: left;
}

.woocommerce ul.products li.product a img {
  background: var(--slate);
  margin: 0 0 1.1rem;
  border-radius: 0;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--f-display);
  font-size: 1.05rem;
  color: var(--white);
  padding: 0 1.35rem .35rem;
}

.woocommerce ul.products li.product .price { display: block; padding: 0 1.35rem; }
.woocommerce ul.products li.product a.button { margin: 1rem 1.35rem 0; }

/* ---- single product ---- */
.woocommerce div.product div.images img { background: var(--slate); border-radius: var(--r-lg); }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--mist); }

.woocommerce div.product form.cart { margin-top: 1.6rem; }

.woocommerce .quantity .qty,
.woocommerce div.product form.cart .variations select {
  background: var(--slate);
  border: 1px solid var(--line);
  color: var(--white);
  border-radius: var(--r);
  padding: .7rem .8rem;
  font-family: var(--f-body);
}

.woocommerce div.product form.cart .variations label {
  font-family: var(--f-mono);
  font-size: .68rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--steel);
}

.woocommerce div.product form.cart .variations td { padding: .4rem 0; }
.woocommerce div.product .product_meta { color: var(--steel); font-size: .82rem; border-top: 1px solid var(--line-soft); padding-top: 1.2rem; margin-top: 1.6rem; }
.woocommerce div.product .product_meta a { color: var(--mist); }

/* research-use notice on product pages */
.woo-ruo {
  font-family: var(--f-mono);
  font-size: .68rem;
  letter-spacing: .06em;
  line-height: 1.7;
  color: var(--steel);
  border: 1px solid var(--line-soft);
  border-radius: var(--r);
  padding: .8rem .9rem;
  margin: 1.2rem 0 0;
}

.woo-ruo strong { color: var(--fog); }

/* ---- tabs ---- */
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin-bottom: 1.6rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-bottom-color: var(--line-soft); }

.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: transparent;
  border: 1px solid var(--line-soft);
  border-radius: var(--r) var(--r) 0 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--mist); font-weight: 500; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--graphite); border-bottom-color: var(--graphite); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--white); }

/* ---- tables (cart, order review, account) ---- */
.woocommerce table.shop_table {
  border: 1px solid var(--line-soft);
  border-radius: var(--r-lg);
  border-collapse: separate;
  background: var(--graphite);
}

.woocommerce table.shop_table th {
  font-family: var(--f-mono);
  font-size: .66rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--steel);
  font-weight: 500;
  border-top: 0;
}

.woocommerce table.shop_table td { border-top: 1px solid var(--line-soft); color: var(--fog); }
.woocommerce table.shop_table tbody th,
.woocommerce table.shop_table tfoot td,
.woocommerce table.shop_table tfoot th { border-top: 1px solid var(--line-soft); color: var(--white); }
.woocommerce table.shop_table .product-name a { color: var(--white); }
.woocommerce table.shop_table img { border-radius: var(--r); background: var(--slate); }
.woocommerce a.remove { color: var(--steel) !important; }
.woocommerce a.remove:hover { background: var(--carbon); color: var(--white) !important; }

.woocommerce-cart .cart-collaterals .cart_totals > h2,
.woocommerce .cart_totals h2 { font-size: 1.15rem; }

/* free-shipping nudge */
.woo-ship-note {
  font-family: var(--f-mono);
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--steel);
  border-left: 2px solid var(--line);
  padding-left: .75rem;
  margin-bottom: 1rem;
}

.woo-ship-note.is-free { color: var(--fog); border-left-color: var(--fog); }
.woo-ship-note .amount { color: var(--white); }

/* ---- forms ---- */
.woocommerce form .form-row label,
.woocommerce-checkout label {
  font-family: var(--f-mono);
  font-size: .66rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--steel);
  margin-bottom: .45rem;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.select2-container--default .select2-selection--single {
  background: var(--slate);
  border: 1px solid var(--line);
  border-radius: var(--r);
  color: var(--white);
  padding: .8rem .9rem;
  font-family: var(--f-body);
  font-size: .93rem;
  height: auto;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus { outline: none; border-color: var(--fog); }

.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--white); line-height: inherit; }
.select2-dropdown { background: var(--graphite); border-color: var(--line); color: var(--fog); }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--carbon); color: var(--white); }

.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
  border: 1px solid var(--line-soft);
  border-radius: var(--r-lg);
  background: var(--graphite);
}

/* ---- checkout payment box ---- */
.woocommerce-checkout #payment {
  background: var(--graphite);
  border: 1px solid var(--line-soft);
  border-radius: var(--r-lg);
}

.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--line-soft); }
.woocommerce-checkout #payment ul.payment_methods li { color: var(--fog); }
.woocommerce-checkout #payment div.payment_box { background: var(--carbon); color: var(--mist); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--carbon); }
.woocommerce-checkout #payment div.form-row { padding: 1.2rem; }

/* ---- notices ---- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
  background: var(--graphite);
  border-top: 2px solid var(--fog);
  border-radius: var(--r);
  color: var(--fog);
}

.woocommerce-error { border-top-color: #b55355; }
.woocommerce-message::before,
.woocommerce-info::before { color: var(--fog); }
.woocommerce-error::before { color: #b55355; }

/* ---- pagination and misc ---- */
.woocommerce nav.woocommerce-pagination ul { border-color: var(--line-soft); }
.woocommerce nav.woocommerce-pagination ul li { border-right-color: var(--line-soft); }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { color: var(--mist); }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--carbon); color: var(--white); }

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering select { color: var(--steel); }

/* ---- header cart pill ---- */
.hdr__cart { white-space: nowrap; }
@media (max-width: 900px) { .hdr__cart { display: none; } }
