/* ==========================================================================
   V3 COMPOUNDS — WooCommerce styling
   Shop / category archives, single product, cart (block), checkout (block),
   My Account (classic), notices.

   Loaded by v3-woo.php (must-use plugin) on WooCommerce pages only, AFTER
   woocommerce.css / woocommerce-layout.css, so selectors of equal specificity
   win on source order. Block rules (cart.css / checkout.css load at render
   time, order not guaranteed) are prefixed with body.v3-global — the body
   class the global header/footer plugin adds — so they win on specificity.

   Tokens mirror output/global/global.css and the locked homepage concept.
   Nothing here touches the header, footer or Elementor content.
   ========================================================================== */

:root{
  --v3w-ink:#121212; --v3w-blue:#0057E7; --v3w-blue-light:#0A75EE;
  --v3w-paper:#F7F6F2; --v3w-surface:#FFFFFF;
  --v3w-line:#E2E0DA; --v3w-line-soft:#EDEBE5; --v3w-line-strong:#CFCEC8;
  --v3w-muted:#5D6169; --v3w-faint:#676C75;
  --v3w-tint:#EEF4FE; --v3w-tint-deep:#DCE8FC;
  --v3w-navy:#0A1628; --v3w-on-navy-soft:#B4BECD; --v3w-navy-eyebrow:#7FB4F5;
  --v3w-media:linear-gradient(170deg,#FAFAF9 0%,#F2F1EE 100%);
  --v3w-radius:14px; --v3w-radius-sm:8px;
  --v3w-shadow-md:0 2px 6px rgba(18,18,18,.05),0 12px 28px rgba(18,18,18,.07);
  --v3w-shadow-blue:0 2px 6px rgba(0,87,231,.20),0 10px 24px rgba(0,87,231,.18);
  --v3w-display:'Newsreader',Georgia,'Times New Roman',serif;
  --v3w-body:'Karla','Helvetica Neue',Arial,sans-serif;
}

/* ------------------------------------------------------------ page frame -- */
/* Hello Elementor caps .site-main at 1140px + 10px side padding on
   non-Elementor pages; the rest of the site runs 1200px + 32px.            */
body.v3-global.woocommerce,
body.v3-global.woocommerce-page,
body.v3-global.woocommerce-cart,
body.v3-global.woocommerce-checkout,
body.v3-global.woocommerce-account{ background:var(--v3w-paper); }

body.v3-global.woocommerce .site-main,
body.v3-global.woocommerce-page .site-main,
body.v3-global.woocommerce-cart .site-main,
body.v3-global.woocommerce-checkout .site-main,
body.v3-global.woocommerce-account .site-main{
  max-width:1264px;
  padding:40px 32px 96px;
  padding-inline:32px;
  margin:0 auto;
  font-family:var(--v3w-body);
  font-size:16px;
  line-height:1.6;
  color:var(--v3w-ink);
}
body.v3-global.woocommerce-page .site-main a,
body.v3-global.woocommerce .site-main a{ color:var(--v3w-blue); text-decoration:none; }
body.v3-global.woocommerce-page .site-main a:hover,
body.v3-global.woocommerce .site-main a:hover{ color:var(--v3w-blue-light); }

/* Hello prints the page title above WooCommerce's own on shop/product/account —
   one title is enough there. Cart and checkout keep it (restyled below).      */
body.v3-global.woocommerce-shop .site-main > .page-header,
body.v3-global.single-product .site-main > .page-header,
body.v3-global.woocommerce-account .site-main > .page-header{ display:none; }

/* ------------------------------------------------------------ breadcrumb -- */
.woocommerce .woocommerce-breadcrumb{
  font-size:12.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  color:var(--v3w-faint); margin:0 0 26px;
}
.woocommerce .woocommerce-breadcrumb a{ color:var(--v3w-blue); }

/* ================================================================ SHOP === */
/* Navy head panel — same treatment as the COA / Contact / Research pages.
   Rendered as a rounded panel inside the container rather than full-bleed:
   a 100vw bleed adds a horizontal scrollbar on Windows.                    */
.woocommerce-products-header{
  display:flex; flex-direction:column;
  background:var(--v3w-navy); color:#fff;
  border-radius:var(--v3w-radius);
  padding:60px 56px 56px;
  margin:0 0 34px;
}
.woocommerce-products-header .v3-shop-eyebrow{
  order:-1; margin:0 0 12px;
  font-size:12.5px; font-weight:700; letter-spacing:1.6px; text-transform:uppercase;
  color:var(--v3w-navy-eyebrow);
}
.woocommerce-products-header .woocommerce-products-header__title{
  font-family:var(--v3w-display); font-size:48px; font-weight:500; line-height:1.14;
  color:#fff; margin:0;
}
.woocommerce-products-header .v3-shop-lede,
.woocommerce-products-header .term-description p{
  font-size:18px; line-height:1.6; color:var(--v3w-on-navy-soft);
  max-width:60ch; margin:12px 0 0;
}
.woocommerce-products-header .term-description{ margin:0; }

/* result count + ordering — Woo floats them; keep the floats, restyle them */
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count{
  font-size:14.5px; color:var(--v3w-faint); margin:0 0 22px; padding:12px 0;
}
.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering{ margin:0 0 22px; }
.woocommerce .woocommerce-ordering select{
  appearance:none; -webkit-appearance:none;
  font-family:var(--v3w-body); font-size:14px; font-weight:600; color:var(--v3w-ink);
  background:var(--v3w-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 4.5l3.5 3.5 3.5-3.5' stroke='%230057E7' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center;
  border:1px solid var(--v3w-line); border-radius:100px;
  padding:11px 40px 11px 18px; min-height:44px; cursor:pointer;
}
.woocommerce .woocommerce-ordering select:hover{ border-color:var(--v3w-blue); color:var(--v3w-blue); }
.woocommerce .woocommerce-ordering select:focus{ outline:none; box-shadow:0 0 0 3px rgba(0,87,231,.15); border-color:var(--v3w-blue); }

/* ----------------------------------------------------------- product grid -- */
.woocommerce ul.products,
.woocommerce-page ul.products{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:26px;
  clear:both; margin:0; padding:30px 0 0; list-style:none;
  border-top:1px solid var(--v3w-line);
}
.woocommerce ul.products::before,.woocommerce ul.products::after{ display:none; }
section.related ul.products,
section.upsells ul.products,
.v3-home-products ul.products{ border-top:0; padding-top:0; } /* homepage [products] grid (1.3.0) */

/* width/margin use !important on purpose: woocommerce-layout.css and
   woocommerce-smallscreen.css set per-column float widths at (0,4,3) and the
   grid cell must own the width.                                             */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  float:none; width:auto !important; margin:0 !important; padding:0;
  position:relative; display:flex; flex-direction:column;
  /* media gradient painted on the card (top 238px) so the label PNG's white
     box multiplies away — a background on the <img> itself blends against
     the white card and the box stays visible */
  background:var(--v3w-media) no-repeat top / 100% 238px, var(--v3w-surface);
  border:1px solid var(--v3w-line);
  border-radius:var(--v3w-radius); overflow:hidden; text-align:left;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.woocommerce ul.products li.product:hover{
  transform:translateY(-5px); box-shadow:var(--v3w-shadow-md); border-color:#D6D4CE;
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link{
  display:flex; flex-direction:column; flex:1; color:inherit;
}
.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img{
  display:block; width:100%; height:238px; margin:0;
  padding:26px 26px 18px; box-sizing:border-box;
  object-fit:contain; background:transparent;
  border-bottom:1px solid var(--v3w-line-soft);
  mix-blend-mode:multiply; box-shadow:none;
  transition:transform .3s ease;
}
.woocommerce ul.products li.product:hover a img{ transform:scale(1.045); }

/* category tag (printed by v3-woo.php) and Woo's own sale badge */
.woocommerce ul.products li.product .v3-tag,
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale{
  position:absolute; z-index:2; top:14px; left:14px; right:auto;
  min-height:0; min-width:0; margin:0; line-height:1.2;
  font-family:var(--v3w-body); font-size:10.5px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
  padding:6px 11px; border-radius:4px;
  background:var(--v3w-tint); color:var(--v3w-blue);
  border:1px solid var(--v3w-tint-deep);
}
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale{ left:auto; right:14px; background:#F4F3F0; color:var(--v3w-faint); border-color:var(--v3w-line); }

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2{
  font-family:var(--v3w-display); font-size:22px; font-weight:600; letter-spacing:-.01em;
  line-height:1.25; color:var(--v3w-ink); margin:0; padding:20px 22px 0;
}
.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price{
  display:block; margin:12px 22px 0; padding:15px 0 0;
  border-top:1px solid var(--v3w-line-soft);
  font-family:var(--v3w-display); font-size:25px; font-weight:600; line-height:1;
  color:var(--v3w-ink);
}
.woocommerce ul.products li.product .price del,
.woocommerce ul.products li.product .price ins{ display:inline-block; }
.woocommerce ul.products li.product .price del{ font-size:16px; color:var(--v3w-faint); opacity:1; margin-right:6px; }
.woocommerce ul.products li.product .price ins{ text-decoration:none; font-weight:600; }
.woocommerce ul.products li.product .price .woocommerce-Price-currencySymbol{ font-size:.72em; vertical-align:2px; margin-right:1px; }
.woocommerce ul.products li.product .price .amount{ color:var(--v3w-ink); }

/* "Pricing to confirm" placeholder — printed by v3-price-placeholder.php,
   same treatment as .price--tbd on the homepage                            */
.v3-price-tbd{
  font-family:var(--v3w-body); font-size:15px; font-weight:600; color:var(--v3w-faint);
}

.woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart{
  display:inline-flex; align-items:center; justify-content:center;
  margin:16px 22px 22px; min-height:44px; padding:10px 18px;
  font-family:var(--v3w-body); font-size:13.5px; font-weight:600; letter-spacing:.02em;
  line-height:1; border-radius:6px; text-decoration:none; box-shadow:none;
  background:transparent; color:var(--v3w-blue);
  border:1px solid var(--v3w-line-strong);
  transition:background-color .18s ease, color .18s ease, border-color .18s ease;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .added_to_cart:hover{
  background:var(--v3w-blue); color:#fff; border-color:var(--v3w-blue); transform:none;
}
body.v3-global .site-main ul.products li.product a.button,
body.v3-global .site-main ul.products li.product a.added_to_cart{ color:var(--v3w-blue); }
body.v3-global .site-main ul.products li.product a.button:hover,
body.v3-global .site-main ul.products li.product a.added_to_cart:hover{ color:#fff; }
.woocommerce ul.products li.product .button + .added_to_cart{ margin-top:0; }
.woocommerce ul.products li.product .button.loading{ opacity:.6; }
.woocommerce ul.products li.product .button.loading::after,
.woocommerce ul.products li.product .button.added::after{ position:static; margin-left:8px; }

/* ------------------------------------------------------------ pagination -- */
.woocommerce nav.woocommerce-pagination{ margin:44px 0 0; text-align:center; }
.woocommerce nav.woocommerce-pagination ul{ display:inline-flex; gap:8px; border:0; margin:0; padding:0; }
.woocommerce nav.woocommerce-pagination ul li{ border:0; margin:0; padding:0; float:none; overflow:visible; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:44px; min-height:44px; padding:0 14px; margin:0;
  font-family:var(--v3w-body); font-size:14px; font-weight:600;
  border:1px solid var(--v3w-line); border-radius:100px; background:var(--v3w-surface);
  color:var(--v3w-muted); line-height:1;
}
.woocommerce nav.woocommerce-pagination ul li a:hover{ background:var(--v3w-tint); border-color:var(--v3w-blue); color:var(--v3w-blue); }
.woocommerce nav.woocommerce-pagination ul li span.current{ background:var(--v3w-ink); border-color:var(--v3w-ink); color:#fff; }

/* ========================================================= SINGLE PRODUCT === */
.woocommerce div.product{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:56px; row-gap:0; }
.woocommerce div.product > *{ grid-column:1 / -1; }

.woocommerce div.product div.images,
.woocommerce #content div.product div.images,
.woocommerce-page div.product div.images,
.woocommerce-page #content div.product div.images{ grid-column:1; float:none; width:auto; margin:0 0 40px; }
.woocommerce div.product div.summary,
.woocommerce #content div.product div.summary,
.woocommerce-page div.product div.summary,
.woocommerce-page #content div.product div.summary{ grid-column:2; float:none; width:auto; margin:0 0 40px; }

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper{
  background:var(--v3w-media); border:1px solid var(--v3w-line);
  border-radius:var(--v3w-radius); padding:44px; margin:0;
  display:flex; align-items:center; justify-content:center; min-height:420px;
}
.woocommerce div.product div.images .woocommerce-product-gallery__image{ width:100%; }
.woocommerce div.product div.images img{
  display:block; width:100%; max-height:520px; object-fit:contain;
  mix-blend-mode:multiply; box-shadow:none; margin:0;
}
.woocommerce div.product div.images .woocommerce-product-gallery__trigger{
  top:14px; right:14px; background:var(--v3w-surface); border:1px solid var(--v3w-line); border-radius:100px;
}
.woocommerce div.product div.images .flex-control-thumbs{ margin:14px 0 0; display:flex; gap:10px; }
.woocommerce div.product div.images .flex-control-thumbs li{ float:none; width:72px; margin:0; }
.woocommerce div.product div.images .flex-control-thumbs li img{
  border:1px solid var(--v3w-line); border-radius:var(--v3w-radius-sm); padding:8px; background:var(--v3w-surface); opacity:1;
}
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active{ border-color:var(--v3w-blue); }

/* summary */
.woocommerce div.product .product_title{
  font-family:var(--v3w-display); font-size:42px; font-weight:600; letter-spacing:-.01em;
  line-height:1.12; color:var(--v3w-ink); margin:0 0 14px;
}
.woocommerce div.product .woocommerce-product-rating{ margin-bottom:14px; }
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  font-family:var(--v3w-display); font-size:32px; font-weight:600; line-height:1; color:var(--v3w-ink); margin:0 0 18px;
}
.woocommerce div.product p.price .woocommerce-Price-currencySymbol{ font-size:.7em; vertical-align:3px; }
.woocommerce div.product p.price del{ font-size:20px; color:var(--v3w-faint); opacity:1; margin-right:8px; }
.woocommerce div.product p.price ins{ text-decoration:none; font-weight:600; }
.woocommerce div.product p.price .v3-price-tbd{ font-size:17px; }
.woocommerce div.product .woocommerce-product-details__short-description{
  padding:18px 0 22px; border-top:1px solid var(--v3w-line);
}
.woocommerce div.product .woocommerce-product-details__short-description p{
  font-size:17px; line-height:1.72; color:var(--v3w-muted); margin:0 0 12px;
}
.woocommerce div.product .woocommerce-product-details__short-description p:last-child{ margin-bottom:0; }

/* variations */
.woocommerce div.product form.cart{ margin:0 0 22px; }
.woocommerce div.product form.cart .variations{ margin:0 0 20px; border:0; }
.woocommerce div.product form.cart .variations tr{ display:flex; flex-direction:column; gap:8px; margin-bottom:16px; }
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td{ display:block; padding:0; border:0; line-height:1.4; background:transparent; text-align:left; }
.woocommerce div.product form.cart .variations,
.woocommerce div.product form.cart .variations tr{ background:transparent; }
.woocommerce div.product form.cart .variations th label{
  font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--v3w-faint);
}
.woocommerce div.product form.cart .variations select{
  appearance:none; -webkit-appearance:none; width:100%; max-width:320px;
  font-family:var(--v3w-body); font-size:15px; font-weight:500; color:var(--v3w-ink);
  background:var(--v3w-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 4.5l3.5 3.5 3.5-3.5' stroke='%230057E7' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center;
  border:1px solid var(--v3w-line-strong); border-radius:6px; padding:12px 40px 12px 14px; min-height:48px;
}
.woocommerce div.product form.cart .variations select:focus{ outline:none; border-color:var(--v3w-blue); box-shadow:0 0 0 3px rgba(0,87,231,.15); }
.woocommerce div.product form.cart .reset_variations{ font-size:13px; color:var(--v3w-faint); }
.woocommerce div.product form.cart .woocommerce-variation-price{ margin:0 0 14px; }
.woocommerce div.product form.cart .woocommerce-variation-description p{ font-size:15px; color:var(--v3w-muted); }
.woocommerce div.product form.cart .woocommerce-variation-availability .stock{ font-size:14px; }
.woocommerce div.product .stock.in-stock{ color:#1F7A3A; }
.woocommerce div.product .stock.out-of-stock{ color:#B42318; }

/* quantity + add to cart row */
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart,
.woocommerce div.product form.cart:not(.variations_form){ display:flex; flex-wrap:wrap; align-items:stretch; gap:12px; }
.woocommerce div.product form.cart div.quantity{ float:none; margin:0; display:flex; }
.woocommerce .quantity .qty,
.woocommerce div.product form.cart .quantity .qty{
  width:88px; min-height:52px; text-align:center;
  font-family:var(--v3w-body); font-size:16px; font-weight:600; color:var(--v3w-ink);
  background:var(--v3w-surface); border:1px solid var(--v3w-line-strong); border-radius:6px;
}
.woocommerce .quantity .qty:focus{ outline:none; border-color:var(--v3w-blue); box-shadow:0 0 0 3px rgba(0,87,231,.15); }
.woocommerce div.product form.cart .button,
.woocommerce div.product form.cart .single_add_to_cart_button{
  float:none; flex:1 1 220px; display:inline-flex; align-items:center; justify-content:center;
  min-height:52px; padding:0 30px; border-radius:6px; border:1px solid transparent;
  font-family:var(--v3w-body); font-size:15px; font-weight:600; letter-spacing:.02em; line-height:1;
  background:var(--v3w-blue); color:#fff; box-shadow:var(--v3w-shadow-blue);
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover{ background:var(--v3w-blue-light); color:#fff; transform:translateY(-2px); }
.woocommerce div.product form.cart .single_add_to_cart_button.disabled,
.woocommerce div.product form.cart .single_add_to_cart_button:disabled{ background:var(--v3w-line-strong); color:#fff; box-shadow:none; transform:none; opacity:1; }

/* RUO notice + COA line (printed by v3-woo.php) */
.v3-ruo-note{
  background:var(--v3w-tint); border:1px solid var(--v3w-tint-deep); border-left-width:4px; border-left-color:var(--v3w-blue);
  border-radius:var(--v3w-radius-sm); padding:16px 20px; margin:6px 0 0;
  font-size:14.5px; line-height:1.65; color:var(--v3w-ink);
}
.v3-ruo-note strong{ font-weight:700; }
.v3-ruo-note a{ color:var(--v3w-blue); font-weight:600; }
.v3-coa-line{
  display:flex; align-items:flex-start; gap:10px; margin:16px 0 0;
  font-size:14.5px; line-height:1.55; color:var(--v3w-muted);
}
.v3-coa-line svg{ flex:none; margin-top:1px; }
.v3-coa-line a{ color:var(--v3w-blue); font-weight:600; white-space:nowrap; }

.woocommerce div.product .product_meta{
  margin:22px 0 0; padding:18px 0 0; border-top:1px solid var(--v3w-line);
  font-size:13.5px; color:var(--v3w-faint); display:flex; flex-wrap:wrap; gap:6px 22px;
}
.woocommerce div.product .product_meta > span{ display:inline-flex; gap:6px; }
.woocommerce div.product .product_meta .sku,
.woocommerce div.product .product_meta a{ color:var(--v3w-ink); font-weight:600; }

/* tabs */
.woocommerce div.product .woocommerce-tabs{ margin:10px 0 60px; }
.woocommerce div.product .woocommerce-tabs ul.tabs{
  display:flex; gap:32px; margin:0 0 28px; padding:0; overflow:visible;
  border-bottom:1px solid var(--v3w-line);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.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{
  border:0; background:none; border-radius:0; margin:0; padding:0; display:block; position:relative;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  display:block; padding:14px 0 16px; font-family:var(--v3w-body); font-size:15px; font-weight:600;
  color:var(--v3w-muted); text-shadow:none; border-bottom:2px solid transparent; margin-bottom:-1px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover{ color:var(--v3w-ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{ background:none; z-index:auto; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{ color:var(--v3w-ink); border-bottom-color:var(--v3w-blue); }
.woocommerce div.product .woocommerce-tabs .panel{
  background:var(--v3w-surface); border:1px solid var(--v3w-line); border-radius:var(--v3w-radius);
  padding:34px 38px; margin:0; max-width:none;
}
.woocommerce div.product .woocommerce-tabs .panel h2{
  font-family:var(--v3w-display); font-size:26px; font-weight:600; color:var(--v3w-ink); margin:0 0 12px;
}
.woocommerce div.product .woocommerce-tabs .panel p,
.woocommerce div.product .woocommerce-tabs .panel li{ font-size:16.5px; line-height:1.75; color:var(--v3w-muted); max-width:72ch; }
.woocommerce div.product .woocommerce-tabs .panel table.shop_attributes{ border:0; }
.woocommerce div.product .woocommerce-tabs .panel table.shop_attributes th,
.woocommerce div.product .woocommerce-tabs .panel table.shop_attributes td{
  border:0; border-bottom:1px solid var(--v3w-line-soft); padding:12px 0; font-size:15.5px; background:none;
}
.woocommerce div.product .woocommerce-tabs .panel table.shop_attributes th{ color:var(--v3w-ink); font-weight:600; width:200px; }

/* related / upsells */
.woocommerce div.product section.related,
.woocommerce div.product section.upsells{ padding-top:44px; border-top:1px solid var(--v3w-line); }
.woocommerce div.product section.related > h2,
.woocommerce div.product section.upsells > h2{
  font-family:var(--v3w-display); font-size:32px; font-weight:600; letter-spacing:-.01em; color:var(--v3w-ink); margin:0 0 26px;
}

/* ============================================================== NOTICES === */
.woocommerce .woocommerce-error,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-message,
.woocommerce-error,.woocommerce-info,.woocommerce-message{
  background:var(--v3w-tint); color:var(--v3w-ink);
  border:1px solid var(--v3w-tint-deep); border-left-width:4px; border-left-color:var(--v3w-blue); border-top-width:1px; border-top-color:var(--v3w-tint-deep);
  border-radius:var(--v3w-radius-sm); padding:16px 20px 16px 52px; margin:0 0 28px;
  font-size:15px; line-height:1.6; font-family:var(--v3w-body);
}
.woocommerce-error::before,.woocommerce-info::before,.woocommerce-message::before{ top:17px; left:20px; color:var(--v3w-blue); }
.woocommerce-message::before{ color:#1F7A3A; }
.woocommerce-message,.woocommerce .woocommerce-message{ border-left-color:#1F7A3A; background:#EEF7F0; border-color:#D3EBDA; border-left-color:#1F7A3A; }
.woocommerce-error::before{ color:#B42318; }
.woocommerce-error,.woocommerce .woocommerce-error{ background:#FDF1F0; border-color:#F6D5D2; border-left-color:#B42318; }
.woocommerce .woocommerce-message .button,
.woocommerce .woocommerce-error .button,
.woocommerce .woocommerce-info .button{
  float:right; margin:-6px 0 0 16px; min-height:36px; padding:0 16px; border-radius:6px;
  font-size:13.5px; font-weight:600; background:var(--v3w-blue); color:#fff; display:inline-flex; align-items:center;
}
.woocommerce .woocommerce-message .button:hover{ background:var(--v3w-blue-light); color:#fff; }

/* block notices (cart / checkout) */
body.v3-global .wc-block-components-notice-banner{
  border-radius:var(--v3w-radius-sm); font-family:var(--v3w-body); font-size:15px;
  border-color:var(--v3w-tint-deep); background:var(--v3w-tint); color:var(--v3w-ink);
}
body.v3-global .wc-block-components-notice-banner.is-error{ border-color:#F6D5D2; background:#FDF1F0; }
body.v3-global .wc-block-components-notice-banner.is-success{ border-color:#D3EBDA; background:#EEF7F0; }

/* ======================================================== CLASSIC BUTTONS === */
/* My Account, order pages, coupon forms, review form                         */
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce #respond input#submit,.woocommerce .woocommerce-button,
.woocommerce-page a.button,.woocommerce-page button.button,.woocommerce-page input.button{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; padding:0 26px; border-radius:6px; border:1px solid transparent;
  font-family:var(--v3w-body); font-size:14.5px; font-weight:600; letter-spacing:.02em; line-height:1;
  background:var(--v3w-blue); color:#fff; box-shadow:var(--v3w-shadow-blue); text-decoration:none;
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,.woocommerce .woocommerce-button:hover{ background:var(--v3w-blue-light); color:#fff; transform:translateY(-2px); }
.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt{ background:var(--v3w-blue); color:#fff; }
.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover,.woocommerce input.button.alt:hover{ background:var(--v3w-blue-light); color:#fff; }
.woocommerce a.button.disabled,.woocommerce button.button:disabled,.woocommerce input.button:disabled{ background:var(--v3w-line-strong); box-shadow:none; transform:none; opacity:1; color:#fff; }

/* Anchor buttons vs the page-frame link colour. `body.v3-global.woocommerce
   .site-main a` (0,3,2) outranks `.woocommerce a.button` (0,2,1) and the block
   button rules (0,3,1), so every <a> styled as a filled button rendered blue
   text on a blue fill — invisible "View" in the orders table, blank "Proceed to
   Checkout" on the cart. Re-assert white at higher specificity; the outlined
   variants (catalog cards, block .outlined) are re-asserted blue below.      */
body.v3-global .site-main a.button,
body.v3-global .site-main a.woocommerce-button,
body.v3-global .site-main a.wp-element-button,
body.v3-global .site-main a.wc-block-components-button:not(.is-link),
body.v3-global .site-main a.button:hover,
body.v3-global .site-main a.woocommerce-button:hover,
body.v3-global .site-main a.wp-element-button:hover,
body.v3-global .site-main a.wc-block-components-button:not(.is-link):hover{ color:#fff; }
body.v3-global .site-main a.wc-block-components-button.outlined:not(.is-link),
body.v3-global .site-main a.wc-block-components-button.outlined:not(.is-link):hover{ color:var(--v3w-blue); }

/* ============================================================== INPUTS === */
.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,
.woocommerce-page form .form-row textarea{
  width:100%; box-sizing:border-box; min-height:50px; padding:12px 14px;
  font-family:var(--v3w-body); font-size:16px; color:var(--v3w-ink);
  background:var(--v3w-surface); border:1px solid var(--v3w-line-strong); border-radius:6px;
  line-height:1.4; transition:border-color .15s ease, box-shadow .15s ease;
}
.woocommerce form .form-row textarea{ min-height:120px; }
.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(--v3w-blue); box-shadow:0 0 0 3px rgba(0,87,231,.15); }
.woocommerce form .form-row label{
  font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--v3w-faint); margin-bottom:6px; line-height:1.4;
}
.woocommerce form .form-row label.inline,
.woocommerce form .form-row label.woocommerce-form__label-for-checkbox{ text-transform:none; letter-spacing:0; font-weight:500; font-size:15px; color:var(--v3w-muted); display:inline-flex; align-items:center; gap:8px; }
.woocommerce form .form-row .required{ color:#B42318; text-decoration:none; }
.woocommerce form .form-row input[type=checkbox]{ accent-color:var(--v3w-blue); width:18px; height:18px; }
.woocommerce form .form-row{ margin-bottom:18px; padding:0; }
.woocommerce form .show-password-input{ top:14px; right:12px; }

/* ============================================================ MY ACCOUNT === */
.woocommerce-account.logged-in .woocommerce{ display:grid; grid-template-columns:260px minmax(0,1fr); gap:48px; align-items:start; }
.woocommerce-account.logged-in .woocommerce::before,
.woocommerce-account.logged-in .woocommerce::after{ display:none; } /* Woo's clearfix pseudo-elements become grid items and steal the first cell */
.woocommerce-account.logged-in .woocommerce > .woocommerce-MyAccount-navigation{ grid-column:1; }
.woocommerce-account.logged-in .woocommerce > .woocommerce-MyAccount-content{ grid-column:2; }
/* Logged-out My Account is a plain flow: WooCommerce prints a bare <h2>Login</h2>
   + form.login (registration off) or #customer_login (registration on). The
   grid is for the logged-in nav + content layout only — with it applied here
   the bare h2 landed in the second column, 300px right of its own card.      */
.woocommerce-account .woocommerce > h2{ font-family:var(--v3w-display); font-size:30px; font-weight:600; color:var(--v3w-ink); margin:0 0 12px; }
.woocommerce-account .woocommerce > form.login,
.woocommerce-account .woocommerce > form.lost_reset_password{ max-width:560px; }
.woocommerce-account.logged-in .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-account.logged-in .woocommerce > .woocommerce-message,
.woocommerce-account.logged-in .woocommerce > .woocommerce-info,
.woocommerce-account.logged-in .woocommerce > .woocommerce-error,
.woocommerce-account.logged-in .woocommerce > #customer_login,
.woocommerce-account.logged-in .woocommerce > form.login,
.woocommerce-account.logged-in .woocommerce > form.register,
.woocommerce-account.logged-in .woocommerce > .woocommerce-form-track-order,
.woocommerce-account.logged-in .woocommerce > .lost_reset_password{ grid-column:1 / -1; }
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper:empty{ display:none; }

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-page .woocommerce-MyAccount-navigation{
  float:none; width:auto; position:sticky; top:96px;
  background:var(--v3w-surface); border:1px solid var(--v3w-line); border-radius:var(--v3w-radius); padding:12px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul{ list-style:none; margin:0; padding:0; }
.woocommerce-account .woocommerce-MyAccount-navigation li{ margin:0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a{
  display:flex; align-items:center; min-height:44px; padding:10px 14px; border-radius:var(--v3w-radius-sm);
  font-size:15px; font-weight:500; color:var(--v3w-muted); transition:background-color .15s ease, color .15s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{ background:var(--v3w-paper); color:var(--v3w-ink); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{ background:var(--v3w-tint); color:var(--v3w-blue); font-weight:600; }
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout{ margin-top:8px; padding-top:8px; border-top:1px solid var(--v3w-line-soft); }

.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-page .woocommerce-MyAccount-content{
  float:none; width:auto;
  background:var(--v3w-surface); border:1px solid var(--v3w-line); border-radius:var(--v3w-radius); padding:36px 40px;
}
.woocommerce-account .woocommerce-MyAccount-content > p:first-child{ font-size:17px; line-height:1.7; color:var(--v3w-muted); margin:0 0 14px; }
.woocommerce-account .woocommerce-MyAccount-content p{ font-size:16px; line-height:1.7; color:var(--v3w-muted); }
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3,
.woocommerce-account .woocommerce-MyAccount-content legend{
  font-family:var(--v3w-display); font-size:26px; font-weight:600; color:var(--v3w-ink); margin:0 0 14px;
}
.woocommerce-account .woocommerce-MyAccount-content fieldset{ border:1px solid var(--v3w-line); border-radius:var(--v3w-radius-sm); padding:20px 22px; margin:0 0 20px; }
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses .woocommerce-Address{ background:var(--v3w-paper); border:1px solid var(--v3w-line); border-radius:var(--v3w-radius-sm); padding:20px 22px; }
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title h2,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title h3{ font-size:20px; margin:0 0 6px; }
.woocommerce-account .woocommerce-MyAccount-content address{ font-style:normal; font-size:15.5px; line-height:1.7; color:var(--v3w-muted); }

/* tables (orders, order details) */
.woocommerce table.shop_table{
  border:1px solid var(--v3w-line); border-radius:var(--v3w-radius-sm); border-collapse:separate; border-spacing:0;
  font-size:15px; margin:0 0 24px; overflow:hidden; background:var(--v3w-surface);
}
.woocommerce table.shop_table th,.woocommerce table.shop_table td{ border:0; border-bottom:1px solid var(--v3w-line-soft); padding:14px 16px; text-align:left; vertical-align:middle; }
.woocommerce table.shop_table thead th{ background:var(--v3w-paper); font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--v3w-faint); }
.woocommerce table.shop_table tbody tr:last-child td{ border-bottom:0; }
.woocommerce table.shop_table tfoot th,.woocommerce table.shop_table tfoot td{ border-top:1px solid var(--v3w-line); font-weight:600; }
.woocommerce table.shop_table td .button{ min-height:38px; padding:0 14px; font-size:13px; box-shadow:none; }
.woocommerce table.shop_table td .button + .button{ margin-left:6px; }
.woocommerce table.shop_table .woocommerce-orders-table__cell-order-number a{ font-weight:700; }

/* login / register (logged-out My Account) */
.woocommerce #customer_login,
.woocommerce .col2-set{ display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.woocommerce .col2-set .col-1,.woocommerce .col2-set .col-2,
.woocommerce-page .col2-set .col-1,.woocommerce-page .col2-set .col-2{ float:none; width:auto; max-width:none; }
.woocommerce .col2-set::before,.woocommerce .col2-set::after{ display:none; }
.woocommerce #customer_login h2,
.woocommerce .col2-set h2{ font-family:var(--v3w-display); font-size:30px; font-weight:600; color:var(--v3w-ink); margin:0 0 12px; }
.woocommerce form.login,.woocommerce form.register,.woocommerce form.lost_reset_password,
.woocommerce-page form.login,.woocommerce-page form.register{
  background:var(--v3w-surface); border:1px solid var(--v3w-line); border-radius:var(--v3w-radius);
  padding:32px 34px 30px; margin:0;
}
.woocommerce form.login p:not(.form-row),.woocommerce form.register p:not(.form-row){ font-size:15px; line-height:1.65; color:var(--v3w-muted); }
.woocommerce form.login .woocommerce-form-login__submit,
.woocommerce form.register .woocommerce-form-register__submit{ width:100%; margin-top:6px; }
.woocommerce form.login .woocommerce-form-login__rememberme{ margin:0 0 12px; }
.woocommerce form.login .lost_password{ font-size:14px; margin:14px 0 0; }
.woocommerce form.register .woocommerce-privacy-policy-text p{ font-size:13.5px; color:var(--v3w-faint); }
.woocommerce .woocommerce-password-strength{ font-size:13px; padding:8px 12px; border-radius:6px; }

/* ====================================================== CART & CHECKOUT === */
/* Block layouts. Everything prefixed with body.v3-global — see header note. */
body.v3-global .wp-block-woocommerce-cart,
body.v3-global .wp-block-woocommerce-checkout{ font-family:var(--v3w-body); color:var(--v3w-ink); }

/* page titles for cart / checkout (the theme's, kept on these two) */
body.v3-global.woocommerce-cart .site-main > .page-header,
body.v3-global.woocommerce-checkout .site-main > .page-header{ display:block; margin:0 0 28px; padding:0; max-width:none; }
body.v3-global.woocommerce-cart .page-header .entry-title,
body.v3-global.woocommerce-checkout .page-header .entry-title{
  font-family:var(--v3w-display); font-size:42px; font-weight:600; letter-spacing:-.01em; color:var(--v3w-ink); margin:0; padding:0; max-width:none;
}

/* main / sidebar split */
body.v3-global .wc-block-components-sidebar-layout .wc-block-components-main{ width:62%; padding-right:48px; }
body.v3-global .wc-block-components-sidebar-layout .wc-block-components-sidebar{
  width:38%; padding:0; align-self:flex-start; position:sticky; top:96px;
}
body.v3-global .wc-block-cart__sidebar,
body.v3-global .wc-block-checkout__sidebar{
  background:var(--v3w-surface); border:1px solid var(--v3w-line); border-radius:var(--v3w-radius); padding:26px 28px 28px;
}
body.v3-global .wc-block-cart__totals-title,
body.v3-global .wc-block-components-checkout-order-summary__title{
  font-family:var(--v3w-display); font-size:24px; font-weight:600; letter-spacing:0; text-transform:none;
  color:var(--v3w-ink); margin:0 0 6px; padding:0; border:0; text-align:left;
}
body.v3-global .wc-block-components-checkout-order-summary__title-text{ font:inherit; }
body.v3-global .wc-block-components-totals-wrapper{ padding:14px 0; border-top:1px solid var(--v3w-line-soft); }
body.v3-global .wc-block-components-totals-wrapper:first-of-type{ border-top:0; }
body.v3-global .wc-block-components-totals-item{ font-size:15px; color:var(--v3w-muted); padding:0; }
body.v3-global .wc-block-components-totals-item__value{ color:var(--v3w-ink); font-weight:600; }
body.v3-global .wc-block-components-totals-footer-item{ font-size:17px; }
body.v3-global .wc-block-components-totals-footer-item .wc-block-components-totals-item__label{ font-weight:600; color:var(--v3w-ink); }
body.v3-global .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
  font-family:var(--v3w-display); font-size:28px; font-weight:600; color:var(--v3w-ink);
}
body.v3-global .wc-block-components-totals-coupon-link,
body.v3-global .wc-block-components-panel__button{ font-size:15px; font-weight:600; color:var(--v3w-blue); }

/* cart items */
body.v3-global .wc-block-cart-items{ border:0; }
body.v3-global .wc-block-cart-items th{
  font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--v3w-faint);
  padding:0 0 14px; border-bottom:1px solid var(--v3w-line);
}
body.v3-global .wc-block-cart-items .wc-block-cart-items__row{ border-bottom:1px solid var(--v3w-line-soft); }
body.v3-global .wc-block-cart-items .wc-block-cart-items__row td{ padding:22px 0; vertical-align:top; }
body.v3-global .wc-block-cart-item__image{ width:132px; padding-right:22px !important; }
body.v3-global .wc-block-cart-item__image a,
body.v3-global .wc-block-components-order-summary-item__image{
  display:block; background:var(--v3w-media); border:1px solid var(--v3w-line); border-radius:var(--v3w-radius-sm); overflow:hidden;
}
body.v3-global .wc-block-cart-item__image img,
body.v3-global .wc-block-components-order-summary-item__image img{
  display:block; width:100%; aspect-ratio:1; object-fit:contain; padding:10px; box-sizing:border-box;
  background:transparent; border:0; mix-blend-mode:multiply;
}
body.v3-global .wc-block-components-product-name{
  font-family:var(--v3w-display); font-size:21px; font-weight:600; color:var(--v3w-ink); text-decoration:none;
}
body.v3-global .wc-block-components-product-name:hover{ color:var(--v3w-blue); }
body.v3-global .wc-block-cart-item__product .wc-block-components-product-price{ display:block; margin:4px 0 8px; font-size:15px; color:var(--v3w-muted); }
body.v3-global .wc-block-components-product-details{ font-size:14px; color:var(--v3w-faint); }
body.v3-global .wc-block-components-product-details li{ margin:0; }
body.v3-global .wc-block-components-product-details__name{ font-weight:600; color:var(--v3w-muted); }
body.v3-global .wc-block-cart-item__total .wc-block-components-product-price,
body.v3-global .wc-block-cart-item__total .wc-block-formatted-money-amount{
  font-family:var(--v3w-display); font-size:22px; font-weight:600; color:var(--v3w-ink);
}
body.v3-global .wc-block-cart-item__quantity{ display:flex; align-items:center; gap:18px; margin-top:12px; }
body.v3-global .wc-block-components-quantity-selector{
  margin:0; border:1px solid var(--v3w-line-strong); border-radius:6px; background:var(--v3w-surface); min-height:44px; box-shadow:none;
}
body.v3-global .wc-block-components-quantity-selector::after{ display:none; }
body.v3-global .wc-block-components-quantity-selector .wc-block-components-quantity-selector__input{
  font-family:var(--v3w-body); font-size:15px; font-weight:600; color:var(--v3w-ink); min-width:48px; border:0; background:transparent;
}
body.v3-global .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button{
  color:var(--v3w-blue); font-size:18px; min-width:38px; opacity:1; border:0; background:transparent;
}
body.v3-global .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover{ background:var(--v3w-tint); box-shadow:none; }
body.v3-global .wc-block-cart-item__remove-link{
  font-family:var(--v3w-body); font-size:14px; font-weight:600; color:var(--v3w-faint); text-decoration:none; padding:0; margin:0;
}
body.v3-global .wc-block-cart-item__remove-link:hover{ color:#B42318; }

/* order summary items (checkout sidebar) */
body.v3-global .wc-block-components-order-summary-item{ padding:14px 0; font-size:15px; }
body.v3-global .wc-block-components-order-summary-item__image{ width:64px; }
body.v3-global .wc-block-components-order-summary-item__quantity{
  background:var(--v3w-ink); border:2px solid var(--v3w-surface); color:#fff; box-shadow:none; font-weight:700; font-size:12px;
}
body.v3-global .wc-block-components-order-summary-item__description .wc-block-components-product-name{ font-size:16px; }
body.v3-global .wc-block-components-order-summary-item__total-price{ font-weight:600; color:var(--v3w-ink); }
body.v3-global .wc-block-components-order-summary-item__individual-prices{ font-size:13px; color:var(--v3w-faint); }

/* buttons (block) */
body.v3-global .wc-block-components-button:not(.is-link),
body.v3-global .wc-block-cart .wp-element-button,
body.v3-global .wc-block-checkout .wp-element-button{
  background:var(--v3w-blue); color:#fff; border:1px solid transparent; border-radius:6px;
  font-family:var(--v3w-body); font-size:15px; font-weight:600; letter-spacing:.02em; line-height:1;
  min-height:52px; padding:0 28px; box-shadow:var(--v3w-shadow-blue);
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
body.v3-global .wc-block-components-button:not(.is-link):hover,
body.v3-global .wc-block-cart .wp-element-button:hover,
body.v3-global .wc-block-checkout .wp-element-button:hover{ background:var(--v3w-blue-light); color:#fff; transform:translateY(-2px); box-shadow:var(--v3w-shadow-blue); }
body.v3-global .wc-block-components-button:not(.is-link):disabled,
body.v3-global .wc-block-components-button:not(.is-link).is-disabled{ background:var(--v3w-line-strong); color:#fff; box-shadow:none; transform:none; opacity:1; }
body.v3-global .wc-block-components-button.outlined:not(.is-link){ background:transparent; color:var(--v3w-blue); border-color:var(--v3w-line-strong); box-shadow:none; }
body.v3-global .wc-block-components-button.outlined:not(.is-link):hover{ background:var(--v3w-tint); border-color:var(--v3w-blue); color:var(--v3w-blue); }
body.v3-global .wc-block-cart__submit-button{ width:100%; margin-top:6px; }
body.v3-global .wc-block-components-checkout-place-order-button{ width:100%; min-height:56px; font-size:16px; }
body.v3-global .wc-block-components-checkout-return-to-cart-button{ font-family:var(--v3w-body); font-size:14.5px; font-weight:600; color:var(--v3w-blue); text-decoration:none; }
body.v3-global .wc-block-components-checkout-return-to-cart-button svg{ fill:currentColor; }
body.v3-global .wc-block-cart__empty-cart__title{ font-family:var(--v3w-display); font-size:32px; font-weight:600; }

/* checkout steps */
body.v3-global .wc-block-checkout__form{ background:var(--v3w-surface); border:1px solid var(--v3w-line); border-radius:var(--v3w-radius); padding:10px 36px 30px; }
body.v3-global .wc-block-components-checkout-step{ padding:26px 0; border-bottom:1px solid var(--v3w-line-soft); margin:0; }
body.v3-global .wc-block-components-checkout-step:last-of-type{ border-bottom:0; }
body.v3-global .wc-block-components-checkout-step__heading{ margin:0 0 6px; }
body.v3-global .wc-block-components-checkout-step__title,
body.v3-global .wc-block-components-title.wc-block-components-checkout-step__title{
  font-family:var(--v3w-display); font-size:25px; font-weight:600; color:var(--v3w-ink); margin:0; letter-spacing:0;
}
body.v3-global .wc-block-components-checkout-step__heading-content{ font-size:14px; color:var(--v3w-faint); }
body.v3-global .wc-block-components-checkout-step__heading-content a{ color:var(--v3w-blue); font-weight:600; }
body.v3-global .wc-block-components-checkout-step__description{ font-size:15px; line-height:1.6; color:var(--v3w-muted); margin:0 0 14px; }
/* step number bubbles — Woo draws them on ::before */
body.v3-global .wc-block-components-checkout-step--with-step-number .wc-block-components-checkout-step__container::before{
  background:var(--v3w-blue); color:#fff; font-family:var(--v3w-body); font-weight:700; border:0;
}

/* inputs (block) */
body.v3-global .wc-block-components-text-input input,
body.v3-global .wc-block-components-text-input input[type=email],
body.v3-global .wc-block-components-text-input input[type=text],
body.v3-global .wc-block-components-text-input input[type=tel],
body.v3-global .wc-block-components-text-input input[type=number],
body.v3-global .wc-block-components-text-input input[type=password],
body.v3-global .wc-block-components-text-input input[type=url],
body.v3-global .wc-block-components-textarea textarea,
body.v3-global .wc-block-components-combobox .components-combobox-control__input,
body.v3-global .wc-block-components-select .wc-block-components-select__select{
  font-family:var(--v3w-body); font-size:16px; color:var(--v3w-ink);
  background:var(--v3w-surface); border:1px solid var(--v3w-line-strong); border-radius:6px;
  box-shadow:none; min-height:54px; transition:border-color .15s ease, box-shadow .15s ease;
}
body.v3-global .wc-block-components-text-input input:focus,
body.v3-global .wc-block-components-textarea textarea:focus,
body.v3-global .wc-block-components-combobox .components-combobox-control__input:focus,
body.v3-global .wc-block-components-select .wc-block-components-select__select:focus{
  outline:none; border-color:var(--v3w-blue); box-shadow:0 0 0 3px rgba(0,87,231,.15);
}
body.v3-global .wc-block-components-text-input label,
body.v3-global .wc-block-components-combobox .wc-block-components-combobox-control__label,
body.v3-global .wc-block-components-select .wc-block-components-select__label,
body.v3-global .wc-block-components-textarea label,
body.v3-global .wc-block-components-select .components-custom-select-control__label{
  font-family:var(--v3w-body); color:var(--v3w-faint);
}
body.v3-global .wc-block-components-text-input.has-error input{ border-color:#B42318; }
body.v3-global .wc-block-components-validation-error p{ color:#B42318; font-size:13.5px; }
body.v3-global .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]{
  border:1.5px solid var(--v3w-line-strong); border-radius:4px; background:var(--v3w-surface);
}
body.v3-global .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked{ background:var(--v3w-blue); border-color:var(--v3w-blue); }
body.v3-global .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:focus{ outline:2px solid var(--v3w-blue); outline-offset:2px; }
body.v3-global .wc-block-components-checkbox .wc-block-components-checkbox__mark{ fill:#fff; }
body.v3-global .wc-block-components-checkbox label,
body.v3-global .wc-block-components-checkbox .wc-block-components-checkbox__label{ font-size:15px; color:var(--v3w-muted); line-height:1.5; }

/* shipping / payment option lists */
body.v3-global .wc-block-components-radio-control-accordion-option,
body.v3-global .wc-block-components-radio-control__option{ font-size:15px; color:var(--v3w-ink); }
body.v3-global .wc-block-components-radio-control__input{ border:1.5px solid var(--v3w-line-strong); background:var(--v3w-surface); }
body.v3-global .wc-block-components-radio-control__input:checked{ border-color:var(--v3w-blue); }
body.v3-global .wc-block-components-radio-control__input:checked::before{ background:var(--v3w-blue); }
body.v3-global .wc-block-components-radio-control-accordion-content{ font-size:14.5px; color:var(--v3w-muted); background:var(--v3w-paper); border-radius:var(--v3w-radius-sm); }
body.v3-global .wc-block-components-checkout-payment-methods .wc-block-components-radio-control-accordion-option,
body.v3-global .wc-block-components-shipping-rates-control .wc-block-components-radio-control__option{ border-color:var(--v3w-line-soft); }
body.v3-global .wc-block-components-radio-control__label,
body.v3-global .wc-block-components-radio-control__label-group{ font-size:15px; }
body.v3-global .wc-block-components-radio-control__secondary-label{ font-size:14px; color:var(--v3w-faint); }
body.v3-global .wc-block-components-radio-control__description{ font-size:14px; color:var(--v3w-faint); }
body.v3-global .wc-block-components-payment-method-label{ font-weight:600; }

/* checkout terms sentence */
body.v3-global .wc-block-checkout__terms{ font-size:14px; line-height:1.6; color:var(--v3w-muted); margin:0; }
body.v3-global .wc-block-checkout__terms a{ color:var(--v3w-blue); font-weight:600; }
body.v3-global .wc-block-checkout__actions{ padding-top:4px; }

/* ================================================================ MOBILE === */
@media (max-width:1100px){
  .woocommerce ul.products,.woocommerce-page ul.products{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
  body.v3-global .wc-block-components-sidebar-layout .wc-block-components-main{ width:58%; padding-right:32px; }
  body.v3-global .wc-block-components-sidebar-layout .wc-block-components-sidebar{ width:42%; }
}
@media (max-width:900px){
  .woocommerce div.product{ grid-template-columns:minmax(0,1fr); }
  .woocommerce div.product div.images,.woocommerce #content div.product div.images,
  .woocommerce-page div.product div.images,.woocommerce-page #content div.product div.images,
  .woocommerce div.product div.summary,.woocommerce #content div.product div.summary,
  .woocommerce-page div.product div.summary,.woocommerce-page #content div.product div.summary{ grid-column:1; margin-bottom:30px; }
  .woocommerce div.product div.images .woocommerce-product-gallery__wrapper{ padding:28px; min-height:300px; }
  .woocommerce div.product .product_title{ font-size:34px; }
  .woocommerce-account.logged-in .woocommerce{ grid-template-columns:minmax(0,1fr); gap:24px; }
  .woocommerce-account.logged-in .woocommerce > .woocommerce-MyAccount-navigation,
  .woocommerce-account.logged-in .woocommerce > .woocommerce-MyAccount-content{ grid-column:1; }
  .woocommerce-account .woocommerce-MyAccount-navigation{ position:static; }
  .woocommerce-account .woocommerce-MyAccount-navigation ul{ display:flex; flex-wrap:wrap; gap:4px; }
  .woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout{ margin:0; padding:0; border:0; }
  .woocommerce-account .woocommerce-MyAccount-content{ padding:26px 24px; }
  body.v3-global .wc-block-components-sidebar-layout .wc-block-components-main,
  body.v3-global .wc-block-components-sidebar-layout .wc-block-components-sidebar{ width:100%; padding-right:0; position:static; }
  body.v3-global .wc-block-components-sidebar-layout .wc-block-components-sidebar{ margin-top:28px; }
  body.v3-global .wc-block-checkout__form{ padding:6px 22px 22px; }
}
@media (max-width:768px){
  body.v3-global.woocommerce .site-main,body.v3-global.woocommerce-page .site-main,
  body.v3-global.woocommerce-cart .site-main,body.v3-global.woocommerce-checkout .site-main,
  body.v3-global.woocommerce-account .site-main{ padding:24px 20px 64px; padding-inline:20px; }
  .woocommerce-products-header{ padding:40px 28px 36px; }
  .woocommerce-products-header .woocommerce-products-header__title{ font-size:32px; }
  .woocommerce-products-header .v3-shop-lede{ font-size:16px; }
  .woocommerce ul.products,.woocommerce-page ul.products{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .woocommerce ul.products li.product a img,.woocommerce-page ul.products li.product a img{ height:190px; padding:18px 18px 12px; }
  .woocommerce ul.products li.product,.woocommerce-page ul.products li.product{ background-size:100% 190px; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title{ font-size:19px; padding:16px 16px 0; }
  .woocommerce ul.products li.product .price{ margin:10px 16px 0; font-size:21px; }
  .woocommerce ul.products li.product .button,.woocommerce ul.products li.product .added_to_cart{ margin:14px 16px 16px; }
  .woocommerce .woocommerce-result-count{ float:none; padding:0; margin-bottom:12px; }
  .woocommerce .woocommerce-ordering{ float:none; margin-bottom:18px; }
  .woocommerce .woocommerce-ordering select{ width:100%; }
  .woocommerce div.product .woocommerce-tabs ul.tabs{ gap:22px; overflow-x:auto; }
  .woocommerce div.product .woocommerce-tabs .panel{ padding:24px 22px; }
  .woocommerce #customer_login,.woocommerce .col2-set{ grid-template-columns:minmax(0,1fr); }
  body.v3-global.woocommerce-cart .page-header .entry-title,
  body.v3-global.woocommerce-checkout .page-header .entry-title{ font-size:32px; }
  body.v3-global .wc-block-cart-item__image{ width:96px; padding-right:14px !important; }
}
@media (max-width:520px){
  .woocommerce ul.products,.woocommerce-page ul.products{ grid-template-columns:minmax(0,1fr); }
  .woocommerce ul.products li.product a img,.woocommerce-page ul.products li.product a img{ height:220px; }
  .woocommerce ul.products li.product,.woocommerce-page ul.products li.product{ background-size:100% 220px; }
  .woocommerce div.product form.cart .single_add_to_cart_button{ flex-basis:100%; }
}
