/* ==========================================================================
   BULLY — shop, product cards, categories, cart, checkout
   Loads only on WooCommerce pages and wherever a BULLY widget is used.
   ========================================================================== */


/* ==========================================================================
   PRODUCT CARD
   ========================================================================== */
.bully-card{
  position:relative; display:flex; flex-direction:column; gap:14px;
  opacity:0; transform:translateY(24px);
  animation:bullyCardIn .8s var(--bully-ease) forwards;
  animation-delay:calc(var(--i,0) * 60ms);
  transition:transform .55s var(--bully-ease);
}
/* depth on the media, not the whole card, so the caption stays flush */
.bully-card__media{
  box-shadow:
    0 18px 38px -26px rgba(0,0,0,.95),
    0 4px 12px -8px rgba(0,0,0,.7);
  transition:box-shadow .55s var(--bully-ease), transform .55s var(--bully-ease);
}
.bully-card:hover{transform:translateY(-6px)}
.bully-card:hover .bully-card__media{
  box-shadow:
    0 34px 62px -30px rgba(0,0,0,1),
    0 8px 20px -10px rgba(0,0,0,.8),
    0 0 0 1px rgba(var(--m-glow,232,200,106),.28),
    0 0 30px -12px rgba(var(--m-glow,232,200,106),.30);
}
@media(hover:none){
  .bully-card__media{box-shadow:0 14px 30px -22px rgba(0,0,0,.95), 0 3px 10px -7px rgba(0,0,0,.7)}
}
@keyframes bullyCardIn{to{opacity:1;transform:none}}

.bully-card__media{
  position:relative; overflow:hidden; background:var(--bully-char);
  isolation:isolate;
}
.bully-card__link{display:block; position:absolute; inset:0}
.bully-card__img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform 1.1s var(--bully-ease), opacity .6s var(--bully-ease), filter .8s var(--bully-ease);
}
/* greyscale is opt-in now: the brand is black and gold, and stripping the
   colour out of the product photography was reading as black and white */
.bully-cards-mono .bully-card__img{filter:grayscale(1) contrast(1.05) brightness(.95)}
.bully-cards-mono .bully-card:hover .bully-card__img{filter:none}
.bully-card__img--b{opacity:0; transform:scale(1.06)}
.bully-card:hover .bully-card__img--a{transform:scale(1.06)}
.bully-card__media:has(.bully-card__img--b):hover .bully-card__img--a{opacity:0}
.bully-card:hover .bully-card__img--b{opacity:1; transform:scale(1)}
.no-mono .bully-card__img{filter:none}

.bully-card__media::after{
  content:''; position:absolute; inset:0; pointer-events:none; opacity:.65;
  background:linear-gradient(180deg,transparent 55%,rgba(5,5,6,.8));
}

.bully-card__badges{
  position:absolute; top:12px; left:12px; z-index:3;
  display:flex; flex-direction:column; gap:6px; align-items:flex-start;
}

.bully-card__act{
  position:absolute; left:10px; right:10px; bottom:10px; z-index:3;
  opacity:0; transform:translateY(14px);
  transition:opacity .45s var(--bully-ease), transform .55s var(--bully-ease);
}
/* "Aggiungi al carrello" is 20 characters — it has to wrap rather than
   burst out of a 250px card */
.bully-card__act .bully-btn{
  padding:14px 14px; font-size:clamp(.72rem,.95vw,.82rem); font-weight:600;
  letter-spacing:.1em; line-height:1.3; white-space:normal; text-align:center;
  min-height:48px;
}
.bully-card:hover .bully-card__act,
.bully-card:focus-within .bully-card__act{opacity:1; transform:none}
@media (hover:none){
  .bully-card__act{opacity:1; transform:none}
  .bully-card:hover .bully-card__img--a{opacity:1; transform:none}
  .bully-card:hover .bully-card__img--b{opacity:0}
}

.bully-card__body{display:flex; flex-direction:column; gap:7px}
.bully-card__top{display:flex; justify-content:space-between; align-items:baseline; gap:14px}
.bully-card__name{
  margin:0; position:relative;
  font-family:var(--bully-display); font-weight:700; font-variation-settings:'wdth' 108;
  font-size:1rem; text-transform:uppercase; letter-spacing:.01em; line-height:1.2;
}
.bully-card__name a{position:relative}
.bully-card__name a::after{
  content:''; position:absolute; left:0; bottom:-3px; width:100%; height:1px;
  background:var(--metal); background-size:400% 100%; background-position:var(--sheen,0%) 0;
  transform:scaleX(0); transform-origin:right; transition:transform .55s var(--bully-ease);
}
.bully-card:hover .bully-card__name a::after{transform:scaleX(1); transform-origin:left}
.bully-card__desc{margin:0; font-size:.85rem; font-weight:300; color:var(--bully-45)}
.bully-card__meta{display:flex; align-items:center; gap:14px; flex-wrap:wrap}
.bully-swatches{display:flex; gap:6px}
.bully-sw{width:13px; height:13px; border-radius:50%; border:1px solid var(--bully-line-2); background-size:300% 100%}
.bully-stock.is-low{color:var(--m-light)}
.bully-card.is-out .bully-card__media{filter:grayscale(.55) brightness(.72)}

/* the price element comes from WooCommerce */
.bully-card .bully-price{font-family:var(--bully-mono); font-size:.8rem}
.bully-card .bully-price del{opacity:.45; font-size:.72rem; margin-right:6px}
.bully-card .bully-price ins{
  text-decoration:none;
  background:var(--metal-text); background-size:400% 100%; background-position:var(--sheen,0%) 0;
  -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent;
}


/* --------------------------------------------------------------------------
   CARD HEIGHT
   The image is already identical across a row — same column width, same
   aspect ratio, object-fit cover. What varies is the text underneath, so the
   card stretches to the tallest sibling and the meta row is pinned to the
   bottom. That is what makes prices and stock lines agree across the row.
   -------------------------------------------------------------------------- */
.bully-grid--clean,
.bully-grid--overlay{align-items:stretch}

.bully-grid--clean > .bully-card,
.bully-grid--overlay > .bully-card,
.bully-grid--rail > .bully-card{height:100%}

/* the media box is identical in every card of a row: same track width,
   same ratio, cover-cropped image */
.bully-grid--clean > .bully-card > .bully-card__media{flex:none}

.bully-grid:not(.is-h-natural) .bully-card__body{flex:1 1 auto}
.bully-grid:not(.is-h-natural) .bully-card__meta{margin-top:auto; padding-top:2px}

/* uniform: one-line names so every row lines up exactly */
.bully-grid.is-h-even .bully-card__name{
  display:-webkit-box; -webkit-line-clamp:1; line-clamp:1; -webkit-box-orient:vertical;
  overflow:hidden; word-break:break-word;
}
.bully-grid.is-h-even .bully-card__desc{
  display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden; min-height:2.6em;
}
.bully-grid.is-h-even .bully-card__top{align-items:center}
.bully-grid.is-h-even .bully-price{flex:none}

/* the editorial grid is uneven on purpose — leave it alone */
.bully-grid--editorial .bully-card{height:auto}

/* ==========================================================================
   GRID LAYOUTS
   ========================================================================== */
.bully-grid{
  --bully-cols:3;
  display:grid; gap:clamp(18px,2.2vw,34px); list-style:none; margin:0; padding:0;
}
.bully-grid::before,.bully-grid::after{content:none}
.bully-grid--clean,
.bully-grid--overlay{grid-template-columns:repeat(var(--bully-cols),minmax(0,1fr))}

/* editorial — alternating widths and vertical offsets, repeating every 5 */
.bully-grid--editorial{grid-template-columns:repeat(12,1fr); align-items:end}
.bully-grid--editorial > *{grid-column:span 4}
.bully-grid--editorial > *:nth-child(5n+1){grid-column:span 5}
.bully-grid--editorial > *:nth-child(5n+2){grid-column:span 4; margin-bottom:clamp(18px,4vw,72px)}
.bully-grid--editorial > *:nth-child(5n+3){grid-column:span 3}
.bully-grid--editorial > *:nth-child(5n+4){grid-column:span 4; margin-top:clamp(-56px,-4vw,0px)}
.bully-grid--editorial > *:nth-child(5n+5){grid-column:span 5; margin-left:auto; width:100%}

/* rail */
.bully-grid--rail{
  display:flex; overflow-x:auto; scroll-snap-type:x mandatory;
  padding-bottom:12px; scrollbar-width:thin;
}
.bully-grid--rail::-webkit-scrollbar{height:2px}
.bully-grid--rail::-webkit-scrollbar-thumb{background:var(--m-steel)}
.bully-grid--rail > *{flex:none; width:min(360px,72vw); scroll-snap-align:start}

/* overlay — copy sits on the image */
.bully-grid--overlay .bully-card{gap:0}
.bully-grid--overlay .bully-card__body{
  position:absolute; left:0; right:0; bottom:0; z-index:3; padding:18px;
  pointer-events:none;
}
.bully-grid--overlay .bully-card__body a{pointer-events:auto}
.bully-grid--overlay .bully-card__media::after{opacity:1}
.bully-grid--overlay .bully-card__act{bottom:auto; top:12px; left:auto; right:56px; width:auto}
.bully-grid--overlay .bully-card__desc{display:none}

@media(max-width:1024px){
  .bully-grid--clean,.bully-grid--overlay{grid-template-columns:repeat(var(--bully-cols-t,2),minmax(0,1fr))}
  .bully-grid--editorial{grid-template-columns:repeat(2,1fr)}
  .bully-grid--editorial > *{grid-column:span 1 !important; margin:0 !important; width:auto !important}
}
@media(max-width:767px){
  .bully-grid--clean,.bully-grid--overlay{grid-template-columns:repeat(var(--bully-cols-m,2),minmax(0,1fr))}
  .bully-grid--editorial{grid-template-columns:repeat(var(--bully-cols-m,2),1fr)}
}

/* ---------- widget chrome ---------- */
.bully-products,.bully-categories{position:relative}
.bully-products__hd,
.bully-categories .bully-products__hd{
  display:flex; justify-content:space-between; align-items:flex-end; gap:32px;
  margin-bottom:clamp(26px,3.5vw,54px); flex-wrap:wrap;
}
.bully-products__hd-l{display:flex; flex-direction:column; gap:14px}
.bully-products__t{font-size:clamp(1.8rem,4.4vw,3.6rem); line-height:.96}
.bully-products__hd .bully-lede{max-width:42ch}
.bully-products__ft{display:flex; justify-content:center; margin-top:clamp(28px,3.5vw,56px)}

/* ==========================================================================
   CATEGORY TILES
   ========================================================================== */
.bully-cats-grid{--bully-cols:3; display:grid; gap:14px}
.bully-cats-grid--grid{grid-template-columns:repeat(var(--bully-cols),minmax(0,1fr))}
.bully-cats-grid--mosaic{grid-template-columns:repeat(4,1fr)}
.bully-cats-grid--mosaic > *:nth-child(6n+1){grid-column:span 2; grid-row:span 2}
.bully-cats-grid--mosaic > *:nth-child(6n+2),
.bully-cats-grid--mosaic > *:nth-child(6n+3){grid-column:span 2}
.bully-cats-grid--mosaic > *:nth-child(6n+4),
.bully-cats-grid--mosaic > *:nth-child(6n+5),
.bully-cats-grid--mosaic > *:nth-child(6n+6){grid-column:span 1}
.bully-cats-grid--rail{display:flex; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:10px}
.bully-cats-grid--rail > *{flex:none; width:min(320px,68vw); scroll-snap-align:start}
.bully-cats-grid--list{grid-template-columns:1fr; gap:0}

.bully-cat-tile{
  --bully-veil:.55;
  position:relative; overflow:hidden; display:block; isolation:isolate;
  background:linear-gradient(160deg,var(--bully-smoke),var(--bully-ink) 62%,var(--bully-char));
  opacity:0; transform:translateY(22px);
  animation:bullyCardIn .8s var(--bully-ease) forwards;
  animation-delay:calc(var(--i,0) * 70ms);
}
.bully-cat-tile__img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform 1.2s var(--bully-ease), filter .8s var(--bully-ease);
}
.bully-cat-tile:hover .bully-cat-tile__img{transform:scale(1.06)}
.bully-cat-tile__veil{
  position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(5,5,6,.15),rgba(5,5,6,calc(.25 + var(--bully-veil) * .75)));
}
.bully-cat-tile__body{
  position:absolute; inset:auto 0 0 0; z-index:2; padding:clamp(16px,2vw,26px);
  display:flex; flex-direction:column; gap:8px;
}
.bully-cat-tile__t{
  margin:0; font-family:var(--bully-display); font-weight:800; font-variation-settings:'wdth' 112;
  font-size:clamp(1.1rem,2vw,1.8rem); text-transform:uppercase; line-height:1;
}
.bully-cat-tile__d{margin:0; font-size:.84rem; font-weight:300; color:var(--bully-70); max-width:38ch}
.bully-cat-tile__m{
  display:flex; align-items:center; gap:14px; margin-top:4px;
  font-family:var(--bully-mono); font-size:.6rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--bully-45);
}
.bully-cat-tile__m b{
  font-weight:500;
  background:var(--metal-text); background-size:400% 100%; background-position:var(--sheen,0%) 0;
  -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent;
}
.bully-cat-tile.has-no-img{border:1px solid var(--bully-line)}

/* list variant */
.bully-cats-grid--list .bully-cat-tile{
  aspect-ratio:auto !important; display:grid; grid-template-columns:120px 1fr auto;
  align-items:center; gap:22px; padding:20px 0; border-top:1px solid var(--bully-line); background:none;
}
.bully-cats-grid--list .bully-cat-tile:last-child{border-bottom:1px solid var(--bully-line)}
.bully-cats-grid--list .bully-cat-tile__img{position:relative; height:84px; width:120px}
.bully-cats-grid--list .bully-cat-tile__veil{display:none}
.bully-cats-grid--list .bully-cat-tile__body{position:relative; padding:0}
@media(max-width:1024px){
  .bully-cats-grid--grid{grid-template-columns:repeat(var(--bully-cols-t,2),minmax(0,1fr))}
  .bully-cats-grid--mosaic{grid-template-columns:repeat(2,1fr)}
  .bully-cats-grid--mosaic > *{grid-column:span 1 !important; grid-row:span 1 !important}
}
@media(max-width:600px){
  .bully-cats-grid--grid,.bully-cats-grid--mosaic{grid-template-columns:repeat(var(--bully-cols-m,1),minmax(0,1fr))}
  .bully-cats-grid--list .bully-cat-tile{grid-template-columns:80px 1fr}
  .bully-cats-grid--list .bully-cat-tile__img{width:80px; height:60px}
}

/* ==========================================================================
   SHOP ARCHIVE
   ========================================================================== */
.bully-shophero{
  display:flex; flex-direction:column; gap:16px;
  max-width:var(--bully-max,1200px); margin-inline:auto;
  padding-block:clamp(20px,3vw,44px) clamp(20px,2.4vw,34px);
}
.bully-woo .woocommerce-breadcrumb{
  max-width:var(--bully-max,1200px); margin:0 auto clamp(4px,1vw,12px);
  padding-top:clamp(16px,2vw,28px);
}
.bully-shophero__t{
  margin:0; font-family:var(--bully-display); font-weight:800; font-variation-settings:'wdth' 112;
  font-size:clamp(2.2rem,6vw,5rem); line-height:.92; text-transform:uppercase; letter-spacing:-.02em;
}
.bully-shophero .bully-hair{margin-top:8px; opacity:.6}

.bully-shopbar{display:flex; flex-direction:column; gap:4px; margin-bottom:clamp(20px,2.6vw,40px)}
.bully-cats{display:flex; gap:4px; overflow-x:auto; scrollbar-width:none; padding-bottom:2px}
.bully-cats::-webkit-scrollbar{display:none}
.bully-cat{
  position:relative; flex:none; padding:11px 16px; white-space:nowrap; color:var(--bully-45);
  font-family:var(--bully-mono); font-size:.66rem; letter-spacing:.18em; text-transform:uppercase;
  transition:color .4s;
}
.bully-cat::after{
  content:''; position:absolute; left:16px; right:16px; bottom:4px; height:1px;
  background:var(--metal); background-size:400% 100%; background-position:var(--sheen,0%) 0;
  transform:scaleX(0); transition:transform .5s var(--bully-ease);
}
.bully-cat:hover{color:var(--bully-70)}
.bully-cat.is-on{color:var(--bully-bone)}
.bully-cat.is-on::after{transform:scaleX(1)}

.bully-toolbar{
  display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;
  padding-block:16px; border-block:1px solid var(--bully-line);
}
.bully-toolbar__end{display:flex; align-items:center; gap:18px}

/* WooCommerce's own ordering select, restyled in place */
.bully-woo .woocommerce-ordering select,
.bully-toolbar select{
  appearance:none; -webkit-appearance:none; background:transparent; border:0; cursor:pointer;
  color:var(--bully-bone); padding:8px 26px 8px 0;
  font-family:var(--bully-mono); font-size:.66rem; letter-spacing:.16em; text-transform:uppercase;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:calc(100% - 12px) center, calc(100% - 7px) center;
  background-size:5px 5px,5px 5px; background-repeat:no-repeat;
}
.bully-woo .woocommerce-ordering select option{background:var(--bully-char); color:var(--bully-bone)}
.bully-woo .woocommerce-result-count{display:none}

/* pagination */
.bully-woo .woocommerce-pagination ul{
  display:flex; gap:6px; justify-content:center; border:0; margin:clamp(30px,4vw,60px) 0 0; padding:0;
}
.bully-woo .woocommerce-pagination li{border:0}
.bully-woo .woocommerce-pagination a,
.bully-woo .woocommerce-pagination span{
  min-width:40px; height:40px; display:grid; place-items:center; padding:0;
  border:1px solid var(--bully-line); color:var(--bully-70);
  font-family:var(--bully-mono); font-size:.68rem; transition:.35s;
}
.bully-woo .woocommerce-pagination a:hover{border-color:var(--m-mid); color:var(--m-spec)}
.bully-woo .woocommerce-pagination .current{
  background:var(--m-fill); background-size:300% 100%; background-position:var(--sheen,0%) 0;
  color:var(--m-on); border-color:transparent;
}

/* ==========================================================================
   CART + CHECKOUT
   ========================================================================== */
.bully-steps{
  display:flex; gap:clamp(14px,3vw,42px); list-style:none; margin:0 0 clamp(26px,3vw,44px); padding:0;
  flex-wrap:wrap;
}
.bully-step{display:flex; align-items:center; gap:10px; opacity:.4; transition:opacity .5s}
.bully-step.is-on{opacity:1}
.bully-step__n{
  font-family:var(--bully-mono); font-size:.6rem; letter-spacing:.16em;
  width:26px; height:26px; display:grid; place-items:center; border:1px solid var(--bully-line-2);
}
.bully-step.is-current .bully-step__n{
  background:var(--m-fill); background-size:300% 100%; background-position:var(--sheen,0%) 0;
  color:var(--m-on); border-color:transparent;
}
.bully-step__t{font-family:var(--bully-mono); font-size:.64rem; letter-spacing:.18em; text-transform:uppercase}

.bully-trust{
  margin:22px 0 0; padding-top:18px; border-top:1px solid var(--bully-line);
  color:var(--bully-45); font-size:.6rem; letter-spacing:.16em; text-align:center;
}

/* --- tables --- */
.bully-woo .shop_table{border:0; border-collapse:collapse; width:100%}
.bully-woo .shop_table th{
  border:0; border-bottom:1px solid var(--bully-line); padding:14px 10px; text-align:left;
  font-family:var(--bully-mono); font-size:.6rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--bully-45); font-weight:400;
}
.bully-woo .shop_table td{
  border:0; border-bottom:1px solid var(--bully-line); padding:18px 10px; vertical-align:middle;
}
.bully-woo .shop_table img{width:74px; height:auto}
.bully-woo .product-name a{
  font-family:var(--bully-display); font-weight:700; text-transform:uppercase; font-size:.95rem;
}
.bully-woo .woocommerce-cart-form__cart-item .product-remove a{
  color:var(--bully-45); font-size:1.1rem; text-decoration:none;
}
.bully-woo .woocommerce-cart-form__cart-item .product-remove a:hover{color:#c47c7c}
.bully-woo .quantity input[type=number]{
  width:70px; background:transparent; color:var(--bully-bone);
  border:1px solid var(--bully-line-2); padding:9px 8px; text-align:center;
  font-family:var(--bully-mono); font-size:.75rem;
}

/* --- totals --- */
.bully-woo .cart_totals,
.bully-woo .cross-sells{margin-top:clamp(28px,3vw,48px)}
.bully-woo .cart_totals h2,
.bully-woo .cross-sells h2,
.bully-woo .woocommerce-billing-fields h3,
.bully-woo .woocommerce-shipping-fields h3,
.bully-woo #order_review_heading{
  font-family:var(--bully-display); font-weight:800; font-variation-settings:'wdth' 110;
  text-transform:uppercase; font-size:clamp(1.1rem,2vw,1.6rem); letter-spacing:-.01em;
  margin:0 0 18px;
}
.bully-woo .cart_totals table{width:100%}

/* --- buttons (base; the specificity-matched overrides are further down) --- */
.bully-woo .wc-block-components-button,
.bully-woo .button{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  padding:15px 28px; border:0; border-radius:0; overflow:hidden; cursor:pointer;
  background:var(--m-fill); background-size:400% 100%; background-position:var(--sheen,0%) 0;
  color:var(--m-on);
  font-family:var(--bully-mono); font-size:.7rem; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase; line-height:1;
  transition:transform .4s var(--bully-ease);
}
.bully-woo .button:hover{transform:translateY(-2px)}
.bully-woo .checkout-button,
.bully-woo #place_order{width:100%}
.bully-woo .button.wc-backward,
.bully-woo .coupon .button{
  background:transparent; color:var(--bully-bone); border:1px solid var(--bully-line-2);
}
.bully-woo .button.wc-backward:hover,
.bully-woo .coupon .button:hover{border-color:var(--m-mid); color:var(--m-spec)}

/* --- forms --- */
.bully-woo .form-row label,
.bully-woo .woocommerce-input-wrapper label{
  font-family:var(--bully-mono); font-size:.58rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--bully-45); display:block; margin-bottom:7px;
}
.bully-woo input[type=text],
.bully-woo input[type=email],
.bully-woo input[type=tel],
.bully-woo input[type=password],
.bully-woo textarea,
.bully-woo select,
.bully-woo .select2-container .select2-selection{
  width:100%; background:transparent; color:var(--bully-bone);
  border:1px solid var(--bully-line-2); border-radius:0; padding:13px 15px;
  font-family:var(--bully-body); font-size:.94rem; transition:border-color .4s, background .4s;
}
.bully-woo input:focus,
.bully-woo textarea:focus,
.bully-woo select:focus{outline:none; border-color:var(--m-mid); background:rgba(var(--m-glow,232,200,106),.05)}
.bully-woo .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--bully-bone); line-height:1.4; padding:0}
.bully-woo .select2-dropdown{background:var(--bully-char); border-color:var(--bully-line-2)}
.bully-woo .select2-container--default .select2-results__option--highlighted[aria-selected]{background:var(--m-steel)}

/* --- notices --- */
.bully-woo .woocommerce-message,
.bully-woo .woocommerce-info,
.bully-woo .woocommerce-error{
  background:var(--bully-smoke); border:0; border-left:2px solid var(--m-mid);
  color:var(--bully-70); padding:16px 20px; border-radius:0; list-style:none;
  font-size:.88rem;
}
.bully-woo .woocommerce-error{border-left-color:#c47c7c}
.bully-woo .woocommerce-message::before,
.bully-woo .woocommerce-info::before,
.bully-woo .woocommerce-error::before{display:none}

/* --- order review --- */
.bully-woo .woocommerce-checkout-review-order{
  background:var(--bully-char); padding:clamp(20px,2.4vw,32px); position:sticky; top:100px;
}
.bully-woo .wc_payment_methods{list-style:none; margin:0; padding:0}
.bully-woo .wc_payment_method label{
  font-family:var(--bully-mono); font-size:.66rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--bully-bone); display:inline-block; margin:0 0 0 8px;
}
.bully-woo .payment_box{
  background:var(--bully-smoke); border:0; padding:14px 16px; font-size:.84rem; color:var(--bully-45);
}
.bully-woo .payment_box::before{display:none}

@media(min-width:900px){
  .bully-woo.woocommerce-checkout .woocommerce form.checkout{
    display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(28px,3vw,56px); align-items:start;
  }
  .bully-woo.woocommerce-checkout #customer_details{grid-column:1}
  .bully-woo.woocommerce-checkout #order_review_heading,
  .bully-woo.woocommerce-checkout #order_review{grid-column:2}
}

@media (prefers-reduced-motion: reduce){
  .bully-card,.bully-cat-tile{animation:none; opacity:1; transform:none}
}

/* ==========================================================================
   SINGLE PRODUCT
   ========================================================================== */
.bully-woo.single-product div.product{
  display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:clamp(24px,4vw,64px); align-items:start; max-width:100%;
}
.bully-woo.single-product div.product > .woocommerce-product-gallery{grid-column:1; grid-row:1 / span 2}
.bully-woo.single-product div.product > .summary{grid-column:2; grid-row:1}
.bully-woo.single-product div.product > .woocommerce-tabs,
.bully-woo.single-product div.product > .related,
.bully-woo.single-product div.product > .up-sells{grid-column:1 / -1}
@media(max-width:900px){
  .bully-woo.single-product div.product{grid-template-columns:1fr}
  .bully-woo.single-product div.product > *{grid-column:1 !important; grid-row:auto !important}
}

.bully-woo .woocommerce-product-gallery img{transition:filter .8s var(--bully-ease)}
.bully-woo .flex-control-thumbs{display:flex; gap:8px; margin-top:10px; padding:0; list-style:none}
.bully-woo .flex-control-thumbs li{width:74px}

.bully-woo .product_title{
  font-family:var(--bully-display); font-weight:800; font-variation-settings:'wdth' 112;
  font-size:clamp(1.8rem,3.6vw,3rem); line-height:.98; text-transform:uppercase;
  letter-spacing:-.02em; margin:0 0 14px;
}
.bully-woo .summary .price{
  font-family:var(--bully-mono); font-size:1.05rem; letter-spacing:.06em; margin:0 0 18px; display:block;
}
.bully-woo .summary .price del{opacity:.4; margin-right:8px}
.bully-woo .summary .price ins{
  text-decoration:none;
  background:var(--metal-text); background-size:400% 100%; background-position:var(--sheen,0%) 0;
  -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent;
}
.bully-woo .woocommerce-product-details__short-description{color:var(--bully-70); font-weight:300; margin-bottom:22px}
.bully-woo .variations{width:100%; margin-bottom:18px}
.bully-woo .variations th{padding:10px 0; width:110px}
.bully-woo .variations td{padding:10px 0}
.bully-woo .single_add_to_cart_button{width:100%; margin-top:6px}
.bully-woo .product_meta{
  margin-top:22px; padding-top:18px; border-top:1px solid var(--bully-line);
  font-family:var(--bully-mono); font-size:.6rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--bully-45); display:flex; flex-direction:column; gap:8px;
}
.bully-woo .stock.in-stock{color:var(--m-light); font-family:var(--bully-mono); font-size:.66rem; letter-spacing:.16em; text-transform:uppercase}
.bully-woo .stock.out-of-stock{color:#c47c7c}

.bully-woo .woocommerce-tabs ul.tabs{
  display:flex; gap:26px; margin:0 0 24px; padding:0 0 14px; list-style:none;
  border-bottom:1px solid var(--bully-line);
}
.bully-woo .woocommerce-tabs ul.tabs::before{display:none}
.bully-woo .woocommerce-tabs ul.tabs li{background:none; border:0; margin:0; padding:0; border-radius:0}
.bully-woo .woocommerce-tabs ul.tabs li::before,
.bully-woo .woocommerce-tabs ul.tabs li::after{display:none}
.bully-woo .woocommerce-tabs ul.tabs li a{
  padding:0; color:var(--bully-45); font-family:var(--bully-mono);
  font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; transition:color .35s;
}
.bully-woo .woocommerce-tabs ul.tabs li.active a,
.bully-woo .woocommerce-tabs ul.tabs li a:hover{color:var(--bully-bone)}
.bully-woo .woocommerce-Tabs-panel h2{display:none}
.bully-woo .related > h2,
.bully-woo .up-sells > h2,
.bully-woo .cross-sells > h2{
  font-family:var(--bully-display); font-weight:800; font-variation-settings:'wdth' 110;
  font-size:clamp(1.2rem,2.4vw,2rem); text-transform:uppercase; margin:clamp(34px,4vw,60px) 0 24px;
}
.bully-woo .woocommerce-breadcrumb{
  font-family:var(--bully-mono); font-size:.6rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--bully-45); margin-bottom:20px;
}
.bully-woo .woocommerce-breadcrumb a{color:var(--bully-70)}

/* my account */
.bully-woo .woocommerce-MyAccount-navigation ul{list-style:none; margin:0; padding:0}
.bully-woo .woocommerce-MyAccount-navigation li{border-bottom:1px solid var(--bully-line)}
.bully-woo .woocommerce-MyAccount-navigation li a{
  display:block; padding:14px 0; color:var(--bully-45);
  font-family:var(--bully-mono); font-size:.66rem; letter-spacing:.18em; text-transform:uppercase;
  transition:color .35s;
}
.bully-woo .woocommerce-MyAccount-navigation li.is-active a,
.bully-woo .woocommerce-MyAccount-navigation li a:hover{color:var(--bully-bone)}

/* ==========================================================================
   SINGLE PRODUCT — ADD TO CART ROW
   WooCommerce floats the quantity and leaves the button full width, which
   makes the two overlap. Lay the row out properly instead.
   ========================================================================== */
body.bully-woo div.product form.cart{
  display:flex; flex-wrap:wrap; align-items:stretch; gap:12px; margin:0 0 24px;
}
body.bully-woo div.product form.cart::before,
body.bully-woo div.product form.cart::after{content:none; display:none}
body.bully-woo div.product form.cart.variations_form,
body.bully-woo div.product form.cart.grouped_form{display:block}

body.bully-woo div.product form.cart .quantity,
body.bully-woo .woocommerce-variation-add-to-cart .quantity{
  float:none; margin:0; flex:0 0 auto; display:flex;
}
body.bully-woo div.product .quantity input[type=number]{
  width:92px; min-height:54px; padding:0 10px; text-align:center;
  background:transparent; color:var(--bully-bone);
  border:1px solid var(--bully-line-2); border-radius:0;
  font-family:var(--bully-mono); font-size:.85rem;
}
body.bully-woo div.product .single_add_to_cart_button{
  flex:1 1 240px; width:auto; margin:0; min-height:54px;
}
body.bully-woo .woocommerce-variation-add-to-cart{
  display:flex; flex-wrap:wrap; align-items:stretch; gap:12px; margin-top:16px;
}
body.bully-woo .woocommerce-variation{margin-bottom:14px}
body.bully-woo .woocommerce-variation-price{
  font-family:var(--bully-mono); font-size:1rem; display:block; margin-bottom:10px;
}
body.bully-woo .reset_variations{
  font-family:var(--bully-mono); font-size:.6rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--bully-45);
}

/* stock line — beat WooCommerce's own colour */
body.bully-woo p.stock,
body.bully-woo div.product p.stock.in-stock{
  color:var(--m-light,#DCE5EC);
  font-family:var(--bully-mono); font-size:.66rem; letter-spacing:.16em;
  text-transform:uppercase; margin:0 0 14px;
}
body.bully-woo div.product p.stock.out-of-stock{color:#c47c7c}

/* ==========================================================================
   BUTTON CONTRAST
   WooCommerce ships `.woocommerce button.button` — one element more specific
   than the plugin's `.bully-woo .button`, so its grey label was winning and
   the metal fill was showing through underneath it. Match on specificity.
   ========================================================================== */
body.bully-woo a.button,
body.bully-woo button.button,
body.bully-woo input.button,
body.bully-woo .woocommerce a.button,
body.bully-woo .woocommerce button.button,
body.bully-woo .woocommerce input.button,
body.bully-woo .woocommerce button.button.alt,
body.bully-woo #place_order,
body.bully-woo .single_add_to_cart_button{
  background-color:#0C0803 !important;
  background-image:
    linear-gradient(100deg,transparent 38%,rgba(255,255,255,.16) 50%,transparent 62%),
    linear-gradient(155deg,
      rgba(var(--m-glow,232,200,106),.42) 0%,
      rgba(var(--m-glow,232,200,106),.14) 38%,
      rgba(0,0,0,.55) 72%,
      rgba(var(--m-glow,232,200,106),.26) 100%) !important;
  background-size:220% 100%, 100% 100% !important;
  background-position:var(--sheen,0%) 0, 0 0 !important;
  background-repeat:no-repeat !important;
  border:1px solid rgba(var(--m-glow,232,200,106),.55) !important;
  color:#FFFFFF !important;
  min-height:52px;
  box-shadow:
    inset 0 1px 0 rgba(var(--m-glow,232,200,106),.32),
    inset 0 -1px 0 rgba(0,0,0,.5),
    0 12px 26px -16px rgba(0,0,0,.85);
}
body.bully-woo .woocommerce a.button:hover,
body.bully-woo .woocommerce button.button:hover,
body.bully-woo .woocommerce input.button:hover,
body.bully-woo #place_order:hover{
  background-color:#140D04 !important;
  border-color:rgba(var(--m-glow,232,200,106),.9) !important;
  color:#FFFFFF !important;
  transform:translateY(-2px);
}

/* the primary action on a product page has to be readable at a glance */
body.bully-woo .single_add_to_cart_button,
body.bully-woo #place_order,
body.bully-woo .checkout-button,
body.bully-woo .wc-proceed-to-checkout .button{
  font-size:.95rem !important;
  font-weight:700 !important;
  letter-spacing:.12em !important;
  min-height:60px;
}

body.bully-woo a.button.wc-backward,
body.bully-woo .woocommerce a.button.wc-backward,
body.bully-woo .coupon button.button{
  background-image:none !important; background-color:transparent !important;
  color:var(--bully-bone) !important; border:1px solid var(--bully-line-2);
  box-shadow:none; min-height:50px;
}
body.bully-woo .woocommerce button.button:disabled,
body.bully-woo .woocommerce button.button.disabled{opacity:.45; box-shadow:none}

/* ==========================================================================
   MOBILE
   Nothing may exceed the viewport. Grids collapse, media stays inside its
   box, and every table that cannot collapse scrolls instead of pushing the
   page sideways.
   ========================================================================== */
body.bully-woo,
body.bully-woo .bully-container{max-width:100%; overflow-x:clip}
body.bully-woo img,
body.bully-woo video,
body.bully-woo iframe{max-width:100%; height:auto}

@media(max-width:900px){
  body.bully-woo div.product{grid-template-columns:1fr !important; gap:26px}
  body.bully-woo div.product .woocommerce-product-gallery,
  body.bully-woo div.product .summary{width:100% !important; float:none !important; margin:0 !important}
  body.bully-woo .woocommerce-product-gallery__wrapper{width:100%}
  body.bully-woo .flex-control-thumbs{display:flex; gap:8px; flex-wrap:wrap}
  body.bully-woo .flex-control-thumbs li{width:64px}
}

@media(max-width:767px){
  body.bully-woo div.product .product_title{font-size:clamp(1.3rem,6vw,30px); line-height:1.12}
  body.bully-woo div.product p.price,
  body.bully-woo div.product span.price{font-size:1.1rem}

  /* add to cart fills the width and stays legible */
  body.bully-woo div.product form.cart{gap:10px}
  body.bully-woo div.product form.cart .quantity{flex:1 1 100%}
  body.bully-woo div.product .quantity input[type=number]{width:100%; min-height:52px}
  body.bully-woo div.product .single_add_to_cart_button{flex:1 1 100%; width:100%}

  /* variation selects */
  body.bully-woo table.variations{display:block; width:100%}
  body.bully-woo table.variations tbody,
  body.bully-woo table.variations tr,
  body.bully-woo table.variations td,
  body.bully-woo table.variations th{display:block; width:100%; padding:0; text-align:left}
  body.bully-woo table.variations th{margin-bottom:6px}
  body.bully-woo table.variations tr + tr{margin-top:14px}
  body.bully-woo .woocommerce-variation-add-to-cart{flex-direction:column; align-items:stretch}

  /* tabs and any table that must keep its shape */
  body.bully-woo .woocommerce-tabs ul.tabs{display:flex; gap:14px; overflow-x:auto; scrollbar-width:none}
  body.bully-woo .woocommerce-tabs ul.tabs::-webkit-scrollbar{display:none}
  body.bully-woo .shop_attributes,
  body.bully-woo .woocommerce-cart-form__contents{display:block; overflow-x:auto}

  /* classic cart rows stack */
  body.bully-woo .woocommerce-cart-form__cart-item td{display:block; width:100%; text-align:left; border:0; padding:6px 0}
  body.bully-woo .woocommerce-cart-form__cart-item{display:block; border-bottom:1px solid var(--bully-line); padding:16px 0}
  body.bully-woo .woocommerce-cart-form__contents thead{display:none}
  body.bully-woo .cart-collaterals .cart_totals{width:100%}
  body.bully-woo .actions{flex-direction:column; align-items:stretch}
  body.bully-woo .coupon{flex-direction:column}
  body.bully-woo .coupon input#coupon_code,
  body.bully-woo .coupon .button{width:100%}

  /* review panel and checkout */
  body.bully-woo #order_review{padding:18px}
  body.bully-woo .bully-steps{gap:10px; flex-wrap:wrap}
  body.bully-woo .bully-steps li{font-size:.55rem}
}

/* ==========================================================================
   CLASSIC CART & CHECKOUT  ([woocommerce_checkout] / [woocommerce_cart])
   Written against WooCommerce's shortcode markup.
   ========================================================================== */
body.bully-woo form.checkout.woocommerce-checkout{
  display:grid; grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);
  grid-template-rows:min-content 1fr; align-content:start;
  gap:clamp(26px,3.4vw,60px); align-items:start;
  max-width:var(--bully-max,1200px); margin-inline:auto;
}
body.bully-woo form.checkout::before,
body.bully-woo form.checkout::after{content:none; display:none}
body.bully-woo form.checkout > #customer_details{grid-column:1; grid-row:1 / span 2; width:auto; float:none}
body.bully-woo form.checkout > #order_review_heading{grid-column:2; grid-row:1; margin:0 0 14px}
body.bully-woo form.checkout > #order_review{grid-column:2; grid-row:2}

body.bully-woo .col2-set{display:flex; flex-direction:column; gap:clamp(22px,2.6vw,38px); width:100%}
body.bully-woo .col2-set > .col-1,
body.bully-woo .col2-set > .col-2{width:100%; float:none; padding:0}
body.bully-woo .woocommerce-shipping-fields:empty{display:none}

body.bully-woo .woocommerce-billing-fields__field-wrapper,
body.bully-woo .woocommerce-shipping-fields__field-wrapper,
body.bully-woo .woocommerce-additional-fields__field-wrapper{
  display:grid; grid-template-columns:1fr 1fr; gap:16px 18px;
}
body.bully-woo p.form-row{float:none !important; width:auto !important; margin:0 !important; padding:0 !important}
body.bully-woo p.form-row-wide,
body.bully-woo p.form-row.notes{grid-column:1 / -1}
body.bully-woo p.form-row > label{
  display:block; margin:0 0 7px;
  font-family:var(--bully-mono); font-size:.58rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--bully-45); line-height:1.4;
}
body.bully-woo p.form-row > label .required{color:var(--m-light) !important; border:0; text-decoration:none}
body.bully-woo p.form-row > label .optional{color:var(--bully-25); letter-spacing:.12em; text-transform:none}
body.bully-woo .woocommerce-input-wrapper{display:block; width:100%}

body.bully-woo .woocommerce input[type="text"],
body.bully-woo .woocommerce input[type="email"],
body.bully-woo .woocommerce input[type="tel"],
body.bully-woo .woocommerce input[type="password"],
body.bully-woo .woocommerce textarea,
body.bully-woo .woocommerce select,
body.bully-woo input.input-text,
body.bully-woo textarea.input-text,
body.bully-woo p.form-row input,
body.bully-woo p.form-row textarea,
body.bully-woo p.form-row select{
  width:100%; box-sizing:border-box;
  background-color:transparent !important; background-image:none !important;
  color:var(--bully-bone,#FFFFFF) !important;
  border:1px solid var(--bully-line-2) !important; border-radius:0 !important;
  box-shadow:none !important; padding:13px 15px;
  font-family:var(--bully-body); font-size:.94rem; line-height:1.4;
  -webkit-text-fill-color:var(--bully-bone,#FFFFFF);
}
body.bully-woo p.form-row input:focus,
body.bully-woo p.form-row textarea:focus,
body.bully-woo p.form-row select:focus,
body.bully-woo input.input-text:focus{
  border-color:var(--m-mid) !important; background-color:var(--bully-tint) !important; outline:none;
}
body.bully-woo textarea.input-text,
body.bully-woo #order_comments{min-height:110px; resize:vertical}
body.bully-woo ::placeholder{color:var(--bully-25); opacity:1}
body.bully-woo input:-webkit-autofill,
body.bully-woo input:-webkit-autofill:hover,
body.bully-woo input:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--bully-bone,#FFFFFF);
  -webkit-box-shadow:0 0 0 1000px #100C06 inset;
  caret-color:var(--bully-bone,#FFFFFF);
}
body.bully-woo p.form-row.woocommerce-invalid .input-text,
body.bully-woo p.form-row.woocommerce-invalid .select2-selection{border-color:#c47c7c !important}

/* select2 — country and state */
body.bully-woo .select2-container{width:100% !important}
body.bully-woo .select2-container--default .select2-selection--single{
  height:auto; padding:12px 15px; border-radius:0;
  background:transparent; border:1px solid var(--bully-line-2);
}
body.bully-woo .select2-container--default .select2-selection--single .select2-selection__rendered{
  padding:0; line-height:1.4; color:var(--bully-bone); font-size:.94rem;
}
body.bully-woo .select2-container--default .select2-selection--single .select2-selection__arrow{
  height:auto; top:50%; right:12px; transform:translateY(-50%);
}
body.bully-woo .select2-container--default .select2-selection--single .select2-selection__arrow b{
  border-color:var(--bully-45) transparent transparent transparent;
}
body.bully-woo .select2-container--open .select2-selection--single{border-color:var(--m-mid)}
body.bully-woo .select2-dropdown{background:var(--bully-char); border:1px solid var(--bully-line-2); border-radius:0}
body.bully-woo .select2-search--dropdown .select2-search__field{
  background:transparent; color:var(--bully-bone); border:1px solid var(--bully-line-2); padding:9px 11px;
}
body.bully-woo .select2-results__option{color:var(--bully-70); padding:9px 12px; font-size:.9rem}
body.bully-woo .select2-container--default .select2-results__option--highlighted[aria-selected],
body.bully-woo .select2-container--default .select2-results__option[aria-selected=true]{
  background:var(--m-steel); color:var(--bully-bone);
}

/* order review */
body.bully-woo #order_review{
  background:linear-gradient(180deg,var(--bully-char),var(--bully-ink) 70%);
  padding:clamp(22px,2.6vw,34px); position:sticky; top:calc(var(--bully-hd-h,88px) + 20px);
}
body.bully-woo #order_review::before{
  content:''; position:absolute; inset:0; padding:1px; pointer-events:none; opacity:.45;
  background:var(--metal); background-size:400% 100%; background-position:var(--sheen,0%) 0;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask-composite:exclude;
}
body.bully-woo #order_review > *{position:relative; z-index:1}
body.bully-woo .woocommerce-checkout-review-order-table{width:100%; border-collapse:collapse; margin:0 0 20px}
body.bully-woo .woocommerce-checkout-review-order-table thead th{
  border:0; border-bottom:1px solid var(--bully-line); padding:0 0 14px;
  font-family:var(--bully-mono); font-size:.55rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--bully-25); font-weight:400; text-align:left;
}
body.bully-woo .woocommerce-checkout-review-order-table td.product-name{
  display:grid; grid-template-columns:56px 1fr auto; gap:14px; align-items:center;
  padding:16px 0; border:0; border-bottom:1px solid var(--bully-line);
}
body.bully-woo .bully-review__media{display:block; width:56px; line-height:0}
body.bully-woo .bully-review__img{width:56px; height:70px; object-fit:cover; display:block}
body.bully-woo .bully-review__title a,
body.bully-woo .bully-review__title{
  font-family:var(--bully-display); font-weight:700; font-size:.92rem;
  line-height:1.25; text-transform:uppercase; color:var(--bully-bone);
}
body.bully-woo .product-quantity{
  margin:0; justify-self:end;
  font-family:var(--bully-mono); font-size:.68rem; letter-spacing:.12em; color:var(--bully-45);
}
body.bully-woo .woocommerce-checkout-review-order-table td.product-total{
  padding:16px 0; border:0; border-bottom:1px solid var(--bully-line);
  text-align:right; font-family:var(--bully-mono); font-size:.85rem; color:var(--bully-bone);
}
body.bully-woo .woocommerce-checkout-review-order-table tfoot th,
body.bully-woo .woocommerce-checkout-review-order-table tfoot td{
  border:0; padding:11px 0;
  font-family:var(--bully-mono); font-size:.68rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--bully-45); font-weight:400; text-align:left;
}
body.bully-woo .woocommerce-checkout-review-order-table tfoot td{text-align:right; color:var(--bully-70)}
body.bully-woo .woocommerce-checkout-review-order-table tfoot .order-total th,
body.bully-woo .woocommerce-checkout-review-order-table tfoot .order-total td{
  border-top:1px solid var(--bully-line-2); padding-top:18px; color:var(--bully-bone);
}
body.bully-woo .woocommerce-checkout-review-order-table tfoot .order-total td{
  font-family:var(--bully-display); font-weight:800; font-size:clamp(1.15rem,2vw,1.5rem); line-height:1;
}
body.bully-woo .woocommerce-Price-amount{white-space:nowrap; font-family:var(--bully-mono)}
body.bully-woo .woocommerce-Price-currencySymbol{opacity:.65; margin-right:1px}

/* payment */
body.bully-woo #payment{background:transparent; border-radius:0}
body.bully-woo #payment ul.payment_methods{
  list-style:none; margin:0 0 18px; padding:18px 0 0; border:0; border-top:1px solid var(--bully-line);
}
body.bully-woo #payment ul.payment_methods li{margin:0 0 12px; padding:0; list-style:none}
body.bully-woo #payment ul.payment_methods li > label{
  display:inline-block; margin:0 0 0 8px;
  font-family:var(--bully-mono); font-size:.66rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--bully-bone);
}
body.bully-woo #payment .payment_box{
  background:var(--bully-smoke); border:0; border-radius:0;
  margin:10px 0 0; padding:14px 16px; font-size:.84rem; color:var(--bully-45);
}
body.bully-woo #payment .payment_box::before{display:none}
body.bully-woo #payment .woocommerce-info{
  background:var(--bully-smoke); border:0; border-left:2px solid var(--m-mid);
  border-radius:0; margin:0; padding:14px 18px; color:var(--bully-70); font-size:.86rem; line-height:1.5;
}
body.bully-woo #payment .woocommerce-info::before{display:none}
body.bully-woo #payment div.form-row.place-order{padding:0; margin:0}
body.bully-woo .woocommerce-terms-and-conditions-wrapper{margin:0 0 16px}
body.bully-woo .woocommerce-privacy-policy-text p{margin:0; font-size:.76rem; line-height:1.65; color:var(--bully-45)}
body.bully-woo .woocommerce-privacy-policy-text a{color:var(--bully-70); text-decoration:underline; text-underline-offset:2px}
body.bully-woo #place_order{width:100%}
body.bully-woo .bully-trust{margin-top:16px; padding-top:14px}

/* coupon toggle */
body.bully-woo .woocommerce-form-coupon-toggle{margin:0 0 clamp(20px,2.4vw,32px)}
body.bully-woo .woocommerce-form-coupon-toggle .woocommerce-info{
  background:transparent; border:0; border-top:1px solid var(--bully-line);
  border-bottom:1px solid var(--bully-line); padding:16px 0; margin:0; color:var(--bully-45);
  font-family:var(--bully-mono); font-size:.64rem; letter-spacing:.14em; text-transform:uppercase;
}
body.bully-woo .woocommerce-form-coupon-toggle .woocommerce-info::before{display:none}
body.bully-woo .woocommerce-form-coupon-toggle a{color:var(--bully-bone); text-decoration:underline; text-underline-offset:3px}
body.bully-woo form.checkout_coupon{
  border:1px solid var(--bully-line); border-radius:0; padding:20px; margin:0 0 26px; background:var(--bully-char);
}

/* classic cart */
body.bully-woo .woocommerce-cart-form__contents{width:100%; margin-bottom:26px}
body.bully-woo .cart-collaterals{display:flex; justify-content:flex-end}
body.bully-woo .cart-collaterals .cart_totals{
  width:min(460px,100%); background:var(--bully-char); padding:clamp(20px,2.4vw,30px);
}
body.bully-woo .cart_totals table{width:100%; border-collapse:collapse}
body.bully-woo .cart_totals table th,
body.bully-woo .cart_totals table td{
  border:0; padding:12px 0; font-family:var(--bully-mono); font-size:.78rem;
  text-transform:uppercase; letter-spacing:.06em; color:var(--bully-70);
}
body.bully-woo .cart_totals table td{text-align:right}
body.bully-woo .cart_totals .order-total th,
body.bully-woo .cart_totals .order-total td{
  border-top:1px solid var(--bully-line-2); padding-top:16px; color:var(--bully-bone); font-size:.95rem;
}
body.bully-woo .wc-proceed-to-checkout{padding:18px 0 0}
body.bully-woo .wc-proceed-to-checkout .button{width:100%}
body.bully-woo .actions{display:flex; gap:14px; justify-content:space-between; flex-wrap:wrap; padding-top:18px}
body.bully-woo .coupon{display:flex; gap:10px; align-items:stretch; flex-wrap:wrap}
body.bully-woo .coupon input#coupon_code{width:auto; flex:1 1 180px; min-height:50px}

@media(max-width:900px){
  body.bully-woo form.checkout.woocommerce-checkout{grid-template-columns:1fr}
  body.bully-woo form.checkout > #customer_details,
  body.bully-woo form.checkout > #order_review_heading,
  body.bully-woo form.checkout > #order_review{grid-column:1; grid-row:auto}
  body.bully-woo #order_review{position:static}
}
@media(max-width:600px){
  body.bully-woo .woocommerce-billing-fields__field-wrapper,
  body.bully-woo .woocommerce-shipping-fields__field-wrapper,
  body.bully-woo .woocommerce-additional-fields__field-wrapper{grid-template-columns:1fr}
  body.bully-woo .woocommerce-checkout-review-order-table td.product-name{grid-template-columns:44px 1fr auto; gap:10px}
  body.bully-woo .bully-review__img{width:44px; height:55px}
}


/* ==========================================================================
   SINGLE PRODUCT — ADD TO CART ROW FIT
   A flex child defaults to min-width:auto, so the quantity field and the
   button could together demand more than the column and run off the right.
   ========================================================================== */
body.bully-woo div.product .summary,
body.bully-woo div.product .entry-summary{min-width:0; max-width:100%}
body.bully-woo div.product form.cart{flex-wrap:wrap; max-width:100%}
body.bully-woo div.product form.cart > *{min-width:0}
body.bully-woo div.product form.cart .quantity{flex:0 0 auto; max-width:100%}
body.bully-woo div.product .quantity input[type=number]{width:88px; max-width:100%}
body.bully-woo div.product .single_add_to_cart_button{
  flex:1 1 180px; min-width:0; max-width:100%;
  white-space:normal; line-height:1.25; text-align:center;
}
body.bully-woo .woocommerce-variation-add-to-cart{flex-wrap:wrap; max-width:100%}
body.bully-woo .woocommerce-variation-add-to-cart > *{min-width:0}
body.bully-woo .woocommerce-variation-add-to-cart .single_add_to_cart_button{flex:1 1 180px}

/* narrow columns: stack rather than squeeze */
@media(max-width:1100px){
  body.bully-woo div.product .single_add_to_cart_button{flex:1 1 100%}
}


/* ==========================================================================
   SINGLE PRODUCT — DESKTOP COMPOSITION
   Prefixed to outrank WooCommerce's own `.woocommerce div.product …` rules,
   which carry one more class and one more element than a plain .bully-woo
   selector and were winning by default.
   ========================================================================== */
body.bully-woo.single-product .bully-container{max-width:var(--bully-max,1200px)}
body.bully-woo.single-product div.product,
body.bully-woo .woocommerce div.product{max-width:100%; overflow:visible}
body.bully-woo.single-product div.product > *{min-width:0; max-width:100%}

/* the summary tracks the gallery instead of stranding at the top */
@media(min-width:901px){
  body.bully-woo.single-product div.product > .summary{
    position:sticky; top:calc(var(--bully-hd-h,88px) + 28px);
  }
}

body.bully-woo .woocommerce div.product .product_title{
  margin:0 0 14px; font-family:var(--bully-display); font-weight:800;
  font-variation-settings:'wdth' 110; font-size:clamp(1.6rem,3vw,2.6rem);
  line-height:1.02; letter-spacing:-.02em; text-transform:uppercase; color:var(--bully-bone);
  overflow-wrap:anywhere;
}
body.bully-woo .woocommerce div.product p.price,
body.bully-woo .woocommerce div.product span.price{
  margin:0 0 18px; font-family:var(--bully-mono); font-size:1.25rem; color:var(--bully-bone);
}
body.bully-woo .woocommerce div.product p.price del{opacity:.45; margin-right:10px}
body.bully-woo .woocommerce div.product p.price ins{text-decoration:none}
body.bully-woo .woocommerce div.product .woocommerce-product-details__short-description{
  margin:0 0 22px; color:var(--bully-70); font-size:1rem; line-height:1.7; font-weight:300; max-width:52ch;
}

/* ---------- the buy row ---------- */
body.bully-woo .woocommerce div.product form.cart{
  display:flex; flex-wrap:wrap; gap:12px; align-items:stretch;
  width:100%; max-width:100%; margin:0 0 26px;
}
body.bully-woo .woocommerce div.product form.cart .quantity{
  flex:0 0 118px; max-width:100%; margin:0; float:none; display:flex;
}
body.bully-woo .woocommerce div.product form.cart .quantity input[type=number]{
  width:100%; min-height:60px; text-align:center;
  font-family:var(--bully-mono); font-size:1rem;
}
body.bully-woo .woocommerce div.product form.cart .single_add_to_cart_button{
  flex:1 1 200px; min-width:0; max-width:100%; margin:0;
  display:inline-flex; align-items:center; justify-content:center;
  white-space:normal; line-height:1.2;
}

/* narrow columns and phones: stack, each full width, centred in the measure */
@media(max-width:1100px){
  body.bully-woo .woocommerce div.product form.cart{flex-direction:column}
  body.bully-woo .woocommerce div.product form.cart .quantity,
  body.bully-woo .woocommerce div.product form.cart .single_add_to_cart_button{
    flex:1 1 auto; width:100%; max-width:100%;
  }
}

/* ---------- tabs ---------- */
body.bully-woo .woocommerce div.product .woocommerce-tabs{margin-top:clamp(34px,5vw,64px)}
body.bully-woo .woocommerce div.product .woocommerce-tabs ul.tabs{
  display:flex; gap:clamp(14px,2vw,30px); margin:0 0 24px; padding:0 0 2px;
  list-style:none; border:0; border-bottom:1px solid var(--bully-line);
  overflow-x:auto; scrollbar-width:none;
}
body.bully-woo .woocommerce div.product .woocommerce-tabs ul.tabs::-webkit-scrollbar{display:none}
body.bully-woo .woocommerce div.product .woocommerce-tabs ul.tabs::before,
body.bully-woo .woocommerce div.product .woocommerce-tabs ul.tabs::after{display:none; content:none}
body.bully-woo .woocommerce div.product .woocommerce-tabs ul.tabs li{
  background:none !important; border:0 !important; border-radius:0 !important;
  margin:0; padding:0; box-shadow:none !important; white-space:nowrap;
}
body.bully-woo .woocommerce div.product .woocommerce-tabs ul.tabs li::before,
body.bully-woo .woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none; content:none}
body.bully-woo .woocommerce div.product .woocommerce-tabs ul.tabs li a{
  display:block; padding:0 0 14px; position:relative;
  font-family:var(--bully-mono); font-size:.68rem; font-weight:500;
  letter-spacing:.18em; text-transform:uppercase; color:var(--bully-45) !important;
  transition:color .35s;
}
body.bully-woo .woocommerce div.product .woocommerce-tabs ul.tabs li a::after{
  content:''; position:absolute; left:0; right:0; bottom:-1px; height:1px; transform:scaleX(0);
  transform-origin:left; transition:transform .5s var(--bully-ease);
  background:var(--metal); background-size:400% 100%; background-position:var(--sheen,0%) 0;
}
body.bully-woo .woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--bully-bone) !important}
body.bully-woo .woocommerce div.product .woocommerce-tabs ul.tabs li.active a::after{transform:scaleX(1)}
body.bully-woo .woocommerce div.product .woocommerce-tabs .panel{
  margin:0; padding:0; color:var(--bully-70); font-weight:300; line-height:1.8; max-width:72ch;
}
body.bully-woo .woocommerce div.product .woocommerce-tabs .panel h2{
  font-family:var(--bully-display); font-weight:800; font-size:1.1rem;
  text-transform:uppercase; color:var(--bully-bone); margin:0 0 14px;
}

/* ---------- meta and related ---------- */
body.bully-woo .woocommerce div.product .product_meta{
  margin-top:22px; padding-top:20px; border-top:1px solid var(--bully-line);
  font-family:var(--bully-mono); font-size:.62rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--bully-45);
}
body.bully-woo .woocommerce div.product .product_meta > span{display:block; margin-bottom:8px}
body.bully-woo .woocommerce div.product .product_meta a{color:var(--bully-70)}
body.bully-woo .woocommerce div.product .related > h2,
body.bully-woo .woocommerce div.product .up-sells > h2{
  font-family:var(--bully-display); font-weight:800; font-variation-settings:'wdth' 110;
  font-size:clamp(1.2rem,2.2vw,1.8rem); text-transform:uppercase;
  color:var(--bully-bone); margin:0 0 22px;
}
body.bully-woo .woocommerce div.product .related,
body.bully-woo .woocommerce div.product .up-sells{margin-top:clamp(40px,6vw,80px)}

@media(max-width:767px){
  body.bully-woo .woocommerce div.product .product_title{font-size:clamp(1.35rem,6vw,30px)}
  body.bully-woo .woocommerce div.product .woocommerce-tabs ul.tabs{gap:18px}
  body.bully-woo .woocommerce div.product .woocommerce-tabs ul.tabs li a{font-size:.62rem}
}
