/* ============================================================
   PRXPEEL — WooCommerce skin
   Maps the PRXPEEL brand design onto real WooCommerce markup:
   shop archive, category, single product, cart, checkout, notices.
   Tokens (--primary, --ink, --soft, etc.) come from style.css :root.
   ============================================================ */

/* ---- generic resets inside Woo ---- */
.woocommerce, .woocommerce-page {
  font-family: var(--font-ui);
  color: var(--ink);
}
.woocommerce a { color: var(--primary); }
.woocommerce a:hover { color: var(--primary-h); }
/* button-style links inside Woo must keep their own text colour */
.woocommerce a.px-btn-primary, .woocommerce a.px-cart-checkout,
.woocommerce a.px-btn-primary:hover, .woocommerce a.px-cart-checkout:hover { color: var(--on-primary); }
.woocommerce a.px-add:hover, .woocommerce a.px-add.is-added { color: var(--on-primary); }
.woocommerce a.px-btn-outline, .woocommerce a.px-btn-light { color: var(--ink); }
.woocommerce a.px-cart-continue { color: var(--muted); }
.woocommerce a.px-cart-continue:hover { color: var(--ink); }

/* page / archive title */
.woocommerce .page-title,
.woocommerce-products-header__title {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(2rem, 4.5vw, 3.2rem);
  line-height: 1.05;
  letter-spacing: -.015em;
  color: var(--ink);
  margin-bottom: 6px;
}
.woocommerce .term-description,
.woocommerce-products-header { margin-bottom: 28px; }
.woocommerce .term-description p { color: var(--muted); max-width: 720px; }

/* ============================ TOOLBAR (count + sort) ============================ */
.woocommerce .woocommerce-result-count {
  color: var(--muted);
  font-size: .9rem;
  margin: 4px 0 24px;
}
.woocommerce .woocommerce-ordering { margin: 0 0 24px; }
.woocommerce .woocommerce-ordering select,
.woocommerce select.orderby {
  appearance: none;
  -webkit-appearance: none;
  font-family: var(--font-ui);
  font-size: .92rem;
  font-weight: 500;
  color: var(--ink);
  background: var(--surface)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237A6CC4' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")
    no-repeat right 14px center;
  border: 1px solid var(--line);
  border-radius: var(--rs);
  padding: 12px 40px 12px 16px;
  cursor: pointer;
  transition: .2s ease;
}
.woocommerce .woocommerce-ordering select:hover { border-color: var(--accent); }
.woocommerce .woocommerce-ordering select:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 16%, transparent);
}

/* ============================ PRODUCT GRID ============================ */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin: 0;
  padding: 0;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none !important; display: none !important; }

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  padding: 0;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: .25s ease;
  position: relative;
}
.woocommerce ul.products li.product:hover {
  transform: translateY(-4px);
  box-shadow: 0 30px 50px -34px rgba(0,0,0,.45);
  border-color: color-mix(in srgb, var(--accent) 50%, var(--line));
}

/* product image */
.woocommerce ul.products li.product a img {
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: contain;
  background: var(--soft);
  padding: 16px;
  margin: 0;
  transition: .4s;
}
.woocommerce ul.products li.product:hover a img { transform: scale(1.04); }

/* title */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--font-display);
  font-size: 1.18rem;
  font-weight: 500;
  line-height: 1.18;
  letter-spacing: -.005em;
  color: var(--ink);
  padding: 18px 18px 0;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.36em;
}
.woocommerce ul.products li.product a { text-decoration: none; }

/* rating */
.woocommerce ul.products li.product .star-rating {
  margin: 11px 18px 0;
  font-size: .9rem;
  color: var(--accent-deep);
}
.woocommerce .star-rating::before { color: var(--line); }
.woocommerce .star-rating span::before { color: var(--accent-deep); }

/* price */
.woocommerce ul.products li.product .price {
  color: var(--ink);
  font-size: 1.22rem;
  font-weight: 700;
  letter-spacing: -.01em;
  padding: 12px 18px 0;
  margin: 0;
}
.woocommerce ul.products li.product .price del { color: var(--muted); font-weight: 400; font-size: .9rem; opacity: .7; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }

/* add-to-cart button in grid */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
  margin: 16px 18px 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: .92rem;
  background: var(--primary);
  color: var(--on-primary);
  padding: 13px 20px;
  border-radius: var(--rs);
  transition: .22s ease;
  text-decoration: none;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .added_to_cart:hover {
  background: var(--primary-h);
  color: var(--on-primary);
  transform: translateY(-1px);
}
/* "View cart" link after AJAX add is hidden — the slide-out drawer opens instead */
.woocommerce ul.products li.product .added_to_cart,
.woocommerce a.added_to_cart,
.woocommerce-message .wc-forward,
.woocommerce .added_to_cart.wc-forward { display: none !important; }
.woocommerce ul.products li.product .added_to_cart {
  background: transparent;
  color: var(--primary);
  box-shadow: inset 0 0 0 1.4px var(--line);
  margin-top: 0;
}

/* sale flash badge */
.woocommerce span.onsale {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  background: var(--accent-deep);
  color: #fff;
  font-family: var(--font-ui);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  min-height: 0;
  min-width: 0;
  line-height: 1;
  padding: 6px 10px;
  border-radius: 6px;
  margin: 0;
}

/* ============================ SINGLE PRODUCT ============================ */
.woocommerce div.product { margin-top: 8px; }
.woocommerce div.product div.images { margin-bottom: 0; }
.woocommerce div.product div.images img {
  border-radius: var(--r);
  background: var(--soft);
}
.woocommerce-product-gallery__image { border-radius: var(--r); overflow: hidden; }

.woocommerce div.product .product_title {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(1.8rem, 3.4vw, 2.6rem);
  line-height: 1.08;
  letter-spacing: -.015em;
  color: var(--ink);
  margin-bottom: 14px;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--ink);
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: -.01em;
}
.woocommerce div.product p.price del { color: var(--muted); font-size: 1.1rem; font-weight: 400; }
.woocommerce div.product .woocommerce-product-rating { margin-bottom: 18px; }
.woocommerce div.product .woocommerce-product-details__short-description {
  color: var(--muted);
  line-height: 1.6;
  margin: 18px 0;
}

/* quantity + add to cart */
.woocommerce div.product form.cart { margin: 24px 0; display: flex; gap: 12px; flex-wrap: wrap; align-items: stretch; }
.woocommerce .quantity .qty {
  height: 52px;
  width: 78px;
  border: 1px solid var(--line);
  border-radius: var(--rs);
  text-align: center;
  font-weight: 600;
  color: var(--ink);
  background: var(--surface);
}
.woocommerce div.product form.cart .button.single_add_to_cart_button {
  flex: 1;
  min-width: 220px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 1rem;
  background: var(--primary);
  color: var(--on-primary);
  padding: 15px 30px;
  border-radius: var(--rs);
  transition: .22s ease;
  letter-spacing: .005em;
}
.woocommerce div.product form.cart .button.single_add_to_cart_button:hover {
  background: var(--primary-h);
  transform: translateY(-1px);
}

/* product meta */
.woocommerce div.product .product_meta { font-size: .86rem; color: var(--muted); border-top: 1px solid var(--line); padding-top: 18px; margin-top: 22px; }
.woocommerce div.product .product_meta a { color: var(--primary); }

/* ---- prototype PDP: fit the native add-to-cart form into .px-pdp-buy ---- */
.px-pdp-buy form.cart { flex: 1; margin: 0; }
.px-pdp-product div.product,
.px-pdp-product.product { margin: 0; }
.px-pdp-buy .quantity .qty {
  height: 54px; width: 84px;
  border: 1px solid var(--line); border-radius: var(--rs);
  text-align: center; font-weight: 600; color: var(--ink); background: var(--surface);
}
.px-pdp-buy .single_add_to_cart_button.button {
  flex: 1; min-width: 200px;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--font-ui); font-weight: 600; font-size: 1rem;
  background: var(--primary); color: var(--on-primary);
  padding: 15px 30px; border-radius: var(--rs); transition: .22s ease;
}
.px-pdp-buy .single_add_to_cart_button.button:hover { background: var(--primary-h); transform: translateY(-1px); }
.px-pdp-buy .single_add_to_cart_button .px-btnprice { opacity: .85; font-weight: 600; }
.px-pdp-buy .single_add_to_cart_button .px-btnprice::before { content: "\00b7"; margin: 0 8px; opacity: .6; }
.px-pdp-desc div p:last-child { margin-bottom: 0; }

/* ---- horizontal qty stepper (built by js/main.js) ---- */
.px-pdp-buy .quantity.px-qtybox {
  display: inline-flex; align-items: center; gap: 0;
  height: 54px; border: 1px solid var(--line); border-radius: var(--rs);
  background: var(--surface); overflow: hidden; flex: 0 0 auto;
}
.px-pdp-buy .quantity.px-qtybox [data-px-pdp-qty] {
  width: 44px; height: 100%; display: inline-flex; align-items: center; justify-content: center;
  background: none; border: 0; color: var(--ink); cursor: pointer; transition: .18s; padding: 0;
}
.px-pdp-buy .quantity.px-qtybox [data-px-pdp-qty]:hover { background: var(--soft); color: var(--primary); }
.px-pdp-buy .quantity.px-qtybox .qty {
  height: 100%; width: 46px; border: 0; border-left: 1px solid var(--line); border-right: 1px solid var(--line);
  border-radius: 0; text-align: center; font-weight: 600; font-size: 1rem; color: var(--ink);
  background: transparent; -moz-appearance: textfield; appearance: textfield; padding: 0;
}
.px-pdp-buy .quantity.px-qtybox .qty::-webkit-outer-spin-button,
.px-pdp-buy .quantity.px-qtybox .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 40px 0 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-bottom-color: var(--line); }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: transparent;
  border: none;
  border-radius: 0;
  margin: 0 26px 0 0;
  padding: 0 0 12px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: var(--font-ui);
  font-weight: 600;
  color: var(--muted);
  padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { box-shadow: inset 0 -2px 0 var(--primary); }
.woocommerce div.product .woocommerce-tabs .panel {
  padding-top: 24px;
  color: var(--muted);
  line-height: 1.6;
}
.woocommerce div.product .woocommerce-tabs .panel h2 {
  font-family: var(--font-display);
  font-weight: 500;
  color: var(--ink);
}

/* related / upsell */
.woocommerce .related > h2,
.woocommerce .upsells > h2 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  color: var(--ink);
  margin: 56px 0 24px;
}

/* ============================ CART ============================ */
.woocommerce table.shop_table {
  border: 1px solid var(--line);
  border-radius: var(--r);
  border-collapse: separate;
  overflow: hidden;
}
.woocommerce table.shop_table th {
  font-family: var(--font-ui);
  font-weight: 600;
  color: var(--ink);
  background: var(--soft);
  padding: 16px 18px;
}
.woocommerce table.shop_table td { padding: 16px 18px; border-top: 1px solid var(--line); }
.woocommerce .cart_item .product-name a { color: var(--ink); font-weight: 600; text-decoration: none; }
.woocommerce a.remove {
  color: var(--accent-deep) !important;
  border: 1px solid var(--line);
  border-radius: 50%;
  line-height: 22px;
}
.woocommerce a.remove:hover { background: var(--accent-deep) !important; color: #fff !important; }
.woocommerce .cart .quantity .qty { height: 44px; width: 70px; }

.woocommerce .cart-collaterals .cart_totals h2,
.woocommerce-cart .cart_totals h2 {
  font-family: var(--font-display);
  font-weight: 500;
  color: var(--ink);
}
.woocommerce .cart_totals table.shop_table { background: var(--surface); }

/* coupon + update buttons */
.woocommerce .cart .button,
.woocommerce .actions .button {
  background: transparent;
  color: var(--ink);
  box-shadow: inset 0 0 0 1.5px var(--ink);
  border-radius: var(--rs);
  padding: 13px 22px;
  font-weight: 600;
  transition: .22s ease;
}
.woocommerce .cart .button:hover,
.woocommerce .actions .button:hover { background: var(--ink); color: var(--bg); }

/* primary CTA buttons (proceed to checkout / place order) */
.woocommerce .checkout-button,
.woocommerce #place_order,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  background: var(--primary) !important;
  color: var(--on-primary) !important;
  box-shadow: none !important;
  border-radius: var(--rs);
  padding: 16px 30px;
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 1.02rem;
  transition: .22s ease;
}
.woocommerce .checkout-button:hover,
.woocommerce #place_order:hover { background: var(--primary-h) !important; transform: translateY(-1px); }

/* ============================ CHECKOUT ============================ */
.woocommerce-checkout h3 {
  font-family: var(--font-display);
  font-weight: 500;
  color: var(--ink);
  font-size: 1.4rem;
}
.woocommerce form .form-row label { font-weight: 500; color: var(--ink); font-size: .9rem; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-checkout select,
.woocommerce .select2-container .select2-selection {
  border: 1px solid var(--line);
  border-radius: var(--rs);
  padding: 13px 15px;
  font-size: .96rem;
  color: var(--ink);
  background: var(--surface);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 16%, transparent);
}
.woocommerce .select2-container--default .select2-selection--single { height: 50px; display: flex; align-items: center; }

/* ---- prototype two-column layout ---- */
/* Hide WooCommerce's stock coupon toggle/form on checkout — we render a clean
   promo field inside the Order summary, so the default one is a duplicate. */
.woocommerce-checkout .woocommerce-form-coupon-toggle,
.woocommerce-checkout form.checkout_coupon,
.woocommerce-page.woocommerce-checkout .woocommerce-form-coupon-toggle,
.woocommerce-page.woocommerce-checkout form.checkout_coupon { display: none !important; }
.px-checkout-title {
  font-family: var(--font-display); font-weight: 500; color: var(--ink);
  font-size: clamp(2.2rem, 4vw, 3rem); letter-spacing: -.01em; margin: 6px 0 36px;
}
.px-checkout {
  display: grid; grid-template-columns: minmax(0, 1fr) 440px;
  gap: clamp(32px, 4vw, 60px); align-items: start;
}
.px-checkout-form { min-width: 0; }
/* stack billing + shipping fieldsets full width */
#customer_details .col2-set,
#customer_details .col-1,
#customer_details .col-2 { width: 100%; float: none; max-width: none; }
.px-co-block { margin-bottom: 38px; }
.px-co-block > h3 { margin-bottom: 18px; }
.px-co-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; margin: 0;
}
.px-co-grid .form-row { margin: 0; padding: 0; float: none !important; width: auto !important; }
.px-co-grid .form-row-wide,
.px-co-grid .form-row-first.form-row-wide { grid-column: 1 / -1; }
.px-co-grid .form-row-first { grid-column: 1; }
.px-co-grid .form-row-last { grid-column: 2; }
.woocommerce form .form-row label { display: block; margin-bottom: 7px; }
.woocommerce form .px-co-grid .form-row input.input-text,
.woocommerce form .px-co-grid .form-row .select2-container,
.woocommerce-checkout .px-co-grid select { width: 100%; }
.px-co-grid .form-row .woocommerce-input-wrapper { width: 100%; display: block; }

/* shipping "ship to a different address" toggle — keep tidy */
.woocommerce-shipping-fields > h3 { font-size: 1.05rem; }
.woocommerce-shipping-fields label { font-weight: 500; }

/* Shipping and payment follow the address in the left checkout column. */
.px-co-shipping, .px-co-payment { margin-top: 42px; }
.px-co-loading { margin: 0; padding: 18px; border: 1px solid var(--line); border-radius: var(--rs); color: var(--muted); font-size: .9rem; }
.px-co-section-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.px-co-section-head h3 { margin: 0; }
.px-secured-badge { display: inline-flex; align-items: center; gap: 6px; padding: 7px 11px; border-radius: 999px; background: color-mix(in srgb, var(--primary) 9%, #fff); color: var(--primary); font-size: .76rem; font-weight: 600; white-space: nowrap; }
.px-payment-note { display: flex; align-items: center; gap: 8px; margin: 14px 2px 0; color: var(--muted); font-size: .82rem; }
.px-payment-note svg { color: var(--primary); flex: 0 0 auto; }

/* ---- right column: order summary card ---- */
.px-checkout-summary {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r);
  padding: 26px 24px 24px; position: sticky; top: 112px;
  box-shadow: 0 24px 60px -38px rgba(40, 30, 55, .4);
}
.px-checkout-summary > h3 { margin-bottom: 20px; font-size: 1.3rem; }

/* line items */
.px-sum-table { width: 100%; border: none !important; background: transparent !important; margin: 0 0 4px; }
/* Kill any stray promo/totals duplicated into page content (wpautop) —
   the real ones live inside #order_review. */
.px-sum-promo:not(#order_review .px-sum-promo),
.px-sum-totals:not(#order_review .px-sum-totals),
.px-sum-coupons:not(#order_review .px-sum-coupons) { display: none !important; }
.px-sum-table thead { display: none; }
.px-sum-table td { padding: 0 !important; border: none !important; background: transparent !important; }
.px-sum-item + .px-sum-item .px-sum-cell { border-top: 1px solid var(--line); }
.px-sum-cell { display: grid !important; grid-template-columns: 54px 1fr auto; gap: 14px; align-items: start; padding: 18px 0 !important; background: transparent !important; }
.px-sum-thumb { position: relative; width: 54px; height: 54px; border-radius: 9px; background: var(--soft); border: 1px solid var(--line); overflow: hidden; flex-shrink: 0; }
.px-sum-thumb img { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; display: block; margin: 0 !important; }
.px-sum-info { min-width: 0; }
.px-sum-name { font-weight: 600; color: var(--ink); font-size: .95rem; line-height: 1.3; margin-bottom: 10px; }
.px-sum-qty { display: inline-flex; align-items: center; gap: 2px; border: 1px solid var(--line); border-radius: 999px; padding: 2px; background: var(--surface); }
.px-qbtn { width: 26px; height: 26px; border: none; background: transparent; color: var(--ink); font-size: 1rem; line-height: 1; cursor: pointer; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; transition: background .15s; }
.px-qbtn:hover { background: var(--soft); }
.px-qval { min-width: 22px; text-align: center; font-weight: 600; font-size: .9rem; }
.px-qremove { margin-left: 6px; width: 28px; height: 28px; border: none; background: transparent; color: var(--muted); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; transition: color .15s, background .15s; }
.px-qremove:hover { color: #c0563f; background: color-mix(in srgb, #c0563f 10%, transparent); }
.px-sum-price { font-weight: 700; color: var(--ink); white-space: nowrap; font-size: .98rem; padding-top: 2px; }

/* promo */
.px-sum-promo { display: flex; gap: 10px; margin: 6px 0 4px; }
.px-promo-input { flex: 1; min-width: 0; border: 1px solid var(--line); border-radius: var(--rs); padding: 12px 14px; font-size: .92rem; background: var(--soft); color: var(--ink); font-family: var(--font-ui); }
.px-promo-input:focus { outline: none; border-color: var(--primary); background: var(--surface); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 16%, transparent); }
.px-promo-apply { border: 1px solid var(--ink); background: transparent; color: var(--ink); border-radius: var(--rs); padding: 0 20px; font-weight: 600; font-size: .9rem; cursor: pointer; transition: background .15s, color .15s; }
.px-promo-apply:hover { background: var(--ink); color: #fff; }
.px-promo-apply.is-loading { opacity: .6; pointer-events: none; }
.px-sum-coupons { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 0; }
.px-coupon-tag { display: inline-flex; align-items: center; gap: 6px; font-size: .78rem; font-weight: 600; letter-spacing: .04em; background: color-mix(in srgb, var(--primary) 10%, #fff); color: var(--primary); border-radius: 999px; padding: 5px 10px; }
.px-coupon-x { color: var(--primary); text-decoration: none; font-size: 1rem; line-height: 1; }

/* totals */
.px-sum-totals { margin: 16px 0 0; padding-top: 16px; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 12px; }
.px-sum-row { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; }
.px-sum-row dt { margin: 0; color: var(--muted); font-weight: 500; font-size: .95rem; }
.px-sum-row dd { margin: 0; color: var(--ink); font-weight: 600; font-size: .95rem; text-align: right; }
.px-sum-discount dt, .px-sum-discount dd { color: #1f8a5b; }
.px-sum-ship dd { color: var(--ink); }
.px-sum-shipname { font-size: .8rem; color: var(--muted); margin-top: -6px; }
.px-sum-shiplist { display: flex; flex-direction: column; gap: 10px; margin: 0; }
.px-ship-opt { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; min-height: 72px; padding: 14px 17px; border: 1px solid var(--line); border-radius: var(--rs); background: var(--surface); font-size: .9rem; color: var(--ink); cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.px-ship-opt:has(input:checked) { border-color: var(--primary); box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 15%, transparent); }
.px-ship-opt input { width: 20px; height: 20px; margin: 0; accent-color: var(--primary); }
.px-ship-radio { width: 20px; height: 20px; border: 2px solid var(--line); border-radius: 50%; background: var(--soft); }
.px-ship-opt--disabled { color: var(--muted); background: color-mix(in srgb, var(--soft) 75%, #fff); cursor: not-allowed; opacity: .72; box-shadow: none; }
.px-ship-opt--disabled .px-ship-name,
.px-ship-opt--disabled .px-ship-cost { color: var(--muted); }
.px-ship-copy { display: flex; flex-direction: column; gap: 4px; }
.px-ship-copy small { color: var(--muted); font-size: .78rem; font-weight: 400; }
.px-ship-cost { font-weight: 600; }
.px-ship-na { color: var(--muted); font-weight: 500; }
.px-sum-grand { padding-top: 14px; border-top: 1px solid var(--line); }
.px-sum-grand dt { color: var(--ink); font-weight: 700; font-size: 1.15rem; }
.px-sum-grand dd { font-size: 1.2rem; font-weight: 700; }
.px-sum-grand .amount, .px-sum-row .amount { font-family: var(--font-ui); }

/* payment block sits in the summary card */
.woocommerce-checkout #payment {
  background: transparent; border-radius: 0; border-top: 1px solid var(--line); margin-top: 8px; padding-top: 16px;
}
.woocommerce-checkout #payment ul.payment_methods { border-bottom: none; padding: 0; margin: 0; list-style: none; }
.woocommerce-checkout #payment ul.payment_methods li { list-style: none; padding-left: 0; }
.woocommerce-checkout #payment ul.payment_methods li::before { content: none; }
.woocommerce-checkout #payment div.payment_box {
  background: var(--soft); border-radius: var(--rs); margin: 10px 0 0;
}
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--soft); }
.woocommerce-checkout #payment .place-order { padding: 4px 0 0; margin-top: 14px; }
.woocommerce #place_order { width: 100%; min-height: 54px; font-size: 1rem; }
.woocommerce-checkout #payment .woocommerce-privacy-policy-text,
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper { font-size: .8rem; color: var(--muted); }
.px-co-payment-methods ul.payment_methods { padding: 0 !important; margin: 0 !important; border: 1px solid var(--line) !important; border-radius: var(--rs); overflow: hidden; background: var(--surface); list-style: none; }
.px-co-payment-methods ul.payment_methods > li { margin: 0 !important; padding: 16px 18px !important; list-style: none; }
.px-co-payment-methods ul.payment_methods > li + li { border-top: 1px solid var(--line); }
.px-co-payment-methods ul.payment_methods > li::before { content: none !important; }
.px-co-payment-methods .payment_box { margin: 14px 0 0 !important; padding: 16px !important; background: var(--soft) !important; border-radius: var(--rs) !important; }
.px-co-payment-methods .payment_box::before { border-bottom-color: var(--soft) !important; }
.px-co-payment-methods #payment_method_stripe { display: none !important; }

@media (max-width: 900px) {
  .px-checkout { grid-template-columns: 1fr; }
  .px-checkout-summary { position: static; order: 2; }
}
@media (max-width: 520px) {
  .px-co-grid { grid-template-columns: 1fr; }
  .px-co-grid .form-row-first,
  .px-co-grid .form-row-last { grid-column: 1; }
}

/* ============================ NOTICES ============================ */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews {
  border-top: none;
  border-radius: var(--rs);
  font-family: var(--font-ui);
  padding: 16px 18px 16px 50px;
}
.woocommerce-message { background: color-mix(in srgb, var(--primary) 8%, #fff); box-shadow: inset 0 0 0 1px var(--line); }
.woocommerce-message::before { color: var(--primary); }
.woocommerce-info { background: var(--soft); box-shadow: inset 0 0 0 1px var(--line); }
.woocommerce-info::before { color: var(--primary); }
.woocommerce-error { background: #fbeceA; box-shadow: inset 0 0 0 1px #e9c4ba; }
.woocommerce-error::before { color: #c0563f; }
.woocommerce-message .button,
.woocommerce-info .button {
  background: var(--primary);
  color: var(--on-primary);
  border-radius: 8px;
  padding: 9px 16px;
  box-shadow: none;
}

/* ============================ PAGINATION ============================ */
.woocommerce nav.woocommerce-pagination ul { border: none; gap: 8px; display: flex; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li { border: none; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  padding: .6em 1em;
  background: var(--surface);
}
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--primary);
  color: var(--on-primary);
  border-color: var(--primary);
}

/* ============================ RESPONSIVE ============================ */
@media (max-width: 1080px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 760px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1.04rem; padding: 14px 14px 0; }
  .woocommerce ul.products li.product .price { padding: 8px 14px 0; }
  .woocommerce ul.products li.product .button { margin: 12px 14px 14px; }
  .woocommerce div.product form.cart { flex-direction: row; flex-wrap: nowrap; gap: 10px; align-items: stretch; }
  .woocommerce div.product form.cart .button.single_add_to_cart_button { min-width: 0; flex: 1; }
  /* "Pairs well with" → horizontal snap slider (2 cards + peek) */
  .px-pairs .px-grid { display: flex; grid-template-columns: none; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding-bottom: 10px; margin-right: -16px; scrollbar-width: none; }
  .px-pairs .px-grid::-webkit-scrollbar { display: none; }
  .px-pairs .px-grid > .px-card { flex: 0 0 46%; scroll-snap-align: start; }
}
@media (max-width: 480px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products { grid-template-columns: 1fr; }
}
