/* Product grid ecosystem.
 *
 * Product-card and quick-buy styles live here so grid edits do not affect
 * header, footer, cart drawer, checkout, or other global theme components.
 */
/* product cards */
.budclub-product-grid,.products{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:0!important;padding:0!important;list-style:none!important}
.budclub-product-card{display:flex;flex-direction:column;background:var(--bc-card);border:1px solid var(--bc-line);border-radius:var(--bc-radius);overflow:hidden;transition:transform .2s,border-color .2s;min-width:0}
.budclub-product-card:hover{transform:translateY(-4px);border-color:rgb(158 240 26 / .4)}
.budclub-product-card.is-choosing-option{border-color:rgb(158 240 26 / .55)}
.budclub-product-card.is-choosing-option:hover{transform:none}
.budclub-product-card__image{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1;background:radial-gradient(circle at 50% 40%,#22271a,#12140e);padding:0}
.budclub-product-card__image img{height:100%;width:100%;object-fit:cover}
.budclub-pill{position:absolute;z-index:1;top:10px;left:10px;border-radius:99px;background:var(--bc-gold);color:var(--bc-bg);font-size:11px;font-weight:700;letter-spacing:.05em;padding:4px 9px}
.budclub-pill.is-sale{background:var(--bc-green)}
.budclub-pill.is-sold-out{background:#ff3b30;color:#fff}
.budclub-product-card__body{display:flex;flex-direction:column;gap:8px;flex:1;padding:14px}
.budclub-product-type{color:var(--bc-green);font-size:11px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}
.budclub-product-card h3{font-size:15px;line-height:1.25;margin:0;color:var(--bc-cream)}
.budclub-rating{display:flex;align-items:center;gap:5px;color:var(--bc-gold);font-size:12px}
.budclub-rating small,.budclub-rating u{color:var(--bc-muted)}
.budclub-card-sizes{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}
.budclub-size-chip{background:var(--bc-cream);border:1px solid var(--bc-cream);border-radius:7px;color:var(--bc-bg);font-size:12px;font-weight:700;padding:5px 9px;transition:background .16s ease,border-color .16s ease,color .16s ease,opacity .16s ease}
.budclub-size-chip:hover{background:var(--bc-green);border-color:var(--bc-green);color:var(--bc-bg)}
.budclub-size-chip.is-active{background:var(--bc-green);color:var(--bc-bg);border-color:var(--bc-green)}
.budclub-size-chip.is-unavailable,.budclub-size-chip:disabled{background:transparent;border-color:var(--bc-line);color:var(--bc-muted);opacity:.38;cursor:not-allowed;text-decoration:line-through;text-decoration-thickness:1px;text-underline-offset:3px}
.budclub-size-chip.is-unavailable:hover,.budclub-size-chip:disabled:hover{border-color:var(--bc-line);color:var(--bc-muted);background:transparent}
.budclub-price-add{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:8px}
.budclub-card-price{font-family:var(--bc-font-display);font-size:22px;white-space:nowrap}
.budclub-card-price del{font-family:var(--bc-font-body);font-size:12px;color:var(--bc-muted);margin-right:5px;opacity:1}
.budclub-card-price ins{text-decoration:none}
.budclub-card-add{border:0;border-radius:9px;background:var(--bc-green);color:var(--bc-bg);padding:9px 13px;font-weight:700;font-size:13px;white-space:nowrap}
.budclub-card-add:hover{background:var(--bc-cream);color:var(--bc-bg)}
.budclub-card-add.is-loading{opacity:.65;pointer-events:none}
.budclub-card-add.is-success{background:var(--bc-gold)}
.budclub-card-add.is-disabled{background:var(--bc-line);color:var(--bc-muted)}
.budclub-product-card{position:relative}
.budclub-card-selection{margin-top:-2px;color:var(--bc-green);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.budclub-flavor-panel{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgb(0 0 0 / .72);padding:20px;opacity:0;pointer-events:none;transition:opacity .18s ease}
.budclub-flavor-panel.is-open{opacity:1;pointer-events:auto}
.budclub-flavor-panel__box{width:min(calc(100vw - 40px),470px);max-height:min(78vh,560px);display:flex;flex-direction:column;border:1px solid rgb(158 240 26 / .48);border-radius:22px;background:linear-gradient(160deg,#1c2016,#10130d);box-shadow:0 22px 80px rgb(0 0 0 / .64);padding:18px}
.budclub-flavor-panel__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid rgb(158 240 26 / .14)}
.budclub-flavor-panel__head strong{display:block;font-family:var(--bc-font-display);font-size:22px;font-weight:400;line-height:.95;text-transform:uppercase;letter-spacing:.04em;color:var(--bc-cream)}
.budclub-flavor-panel__head span{display:block;margin-top:6px;color:var(--bc-green);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.budclub-flavor-panel__head button{display:grid;place-items:center;width:40px;height:40px;flex:0 0 40px;border:1px solid var(--bc-line);border-radius:50%;background:rgb(255 255 255 / .03);color:var(--bc-cream);font-size:25px;line-height:1}
.budclub-flavor-panel__head button:hover{border-color:var(--bc-green);color:var(--bc-green)}
.budclub-flavor-options{display:grid;grid-template-columns:1fr;gap:10px;max-height:calc(78vh - 126px);overflow:auto;padding:0 2px 2px 0}
.budclub-flavor-choice{width:100%;min-height:50px;border:1px solid var(--bc-line);border-radius:12px;background:rgb(158 240 26 / .06);color:var(--bc-cream);font-weight:700;font-size:14px;line-height:1.25;text-align:left;padding:13px 14px;transition:border-color .18s ease,background .18s ease,color .18s ease}
.budclub-flavor-choice{display:flex;align-items:center;justify-content:space-between;gap:14px}
.budclub-flavor-choice__label{min-width:0;line-height:1.25}
.budclub-flavor-choice__price{flex:0 0 auto;color:var(--bc-green);font-family:var(--bc-font-display);font-weight:400;font-size:18px;line-height:1;letter-spacing:.02em}
.budclub-flavor-choice:hover .budclub-flavor-choice__price,.budclub-flavor-choice:focus-visible .budclub-flavor-choice__price{color:var(--bc-bg)}
.budclub-flavor-choice:hover,.budclub-flavor-choice:focus-visible{border-color:var(--bc-green);background:var(--bc-green);color:var(--bc-bg)}
.budclub-flavor-empty{margin:0;color:var(--bc-muted);font-size:13px;line-height:1.4}

@media(max-width:980px){
.budclub-product-grid,.products{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:680px){
.budclub-product-grid,.products{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.budclub-product-card__body{padding:11px}
.budclub-product-card h3{font-size:14px}
.budclub-card-add{padding:9px 10px}
}
.budclub-flavor-choice.is-unavailable,
.budclub-flavor-choice:disabled{
  opacity:.42;
  cursor:not-allowed;
  text-decoration:line-through;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
  background:transparent;
  color:var(--bc-muted);
}
.budclub-flavor-choice.is-unavailable:hover,
.budclub-flavor-choice:disabled:hover{
  border-color:var(--bc-line);
  background:transparent;
  color:var(--bc-muted);
}

/* v0.2.27: Use the same centered quick-buy option picker on desktop and mobile.
 * Desktop now uses the same clean modal treatment as mobile, keeping the
 * product-grid popup isolated inside this stylesheet.
 */
@media(max-width:680px){
  .budclub-flavor-panel{padding:18px 12px}
  .budclub-flavor-panel__box{width:min(calc(100vw - 24px),430px);max-height:min(78vh,540px);padding:18px}
  .budclub-flavor-panel__head strong{font-size:22px;max-width:240px}
  .budclub-flavor-choice{min-height:48px}
}

/* v0.2.28: available unselected size chips now use a white/cream pill style.
 * Active size chips stay green; unavailable chips remain muted and struck through.
 */

/* v0.2.30: Mobile product-card footer alignment.
 * Keeps the Add button inside the card on two-column mobile grids by allowing
 * the price block to wrap/stack while the CTA keeps a fixed safe width.
 */
@media(max-width:680px){
  .budclub-price-add{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    gap:6px;
    width:100%;
  }
  .budclub-card-price{
    min-width:0;
    white-space:normal;
    font-size:20px;
    line-height:1.05;
  }
  .budclub-card-price del{
    display:block;
    margin:0 0 3px;
    font-size:12px;
    line-height:1;
  }
  .budclub-card-price ins,
  .budclub-card-price .woocommerce-Price-amount{
    line-height:1;
  }
  .budclub-card-add{
    justify-self:end;
    min-width:64px;
    max-width:100%;
    padding:10px 9px;
    border-radius:10px;
    text-align:center;
    overflow:hidden;
    text-overflow:clip;
  }
}

@media(max-width:380px){
  .budclub-card-price{font-size:18px}
  .budclub-card-add{min-width:60px;padding:9px 8px;font-size:12px}
}

/* v0.2.31: Mobile View Options footer cleanup.
 * Complex/out-of-stock cards use a stacked price + CTA layout on narrow cards
 * so the View Options button never overlaps the price.
 */
@media(max-width:680px){
  .budclub-price-add.has-view-options{
    grid-template-columns:1fr;
    align-items:stretch;
    gap:8px;
  }
  .budclub-price-add.has-view-options .budclub-card-price{
    display:block;
    width:100%;
  }
  .budclub-price-add.has-view-options .budclub-card-add.is-disabled{
    justify-self:stretch;
    width:100%;
    min-width:0;
    padding:10px 10px;
    border-radius:12px;
    font-size:12px;
    line-height:1;
    letter-spacing:.01em;
    text-align:center;
  }
}

@media(max-width:380px){
  .budclub-price-add.has-view-options .budclub-card-add.is-disabled{
    font-size:11px;
    padding:9px 8px;
  }
}

/* v0.2.32: WooCommerce category/archive grid width fix.
 * WooCommerce core and some plugins add float widths, clear rules, margins and
 * clearfix pseudo-elements to ul.products/li.product. When the BudClub grid uses
 * CSS Grid, those legacy loop styles can shrink cards into thin columns on
 * category pages. Reset them inside the product-grid ecosystem only.
 */
.woocommerce ul.products,
.woocommerce-page ul.products,
ul.products.budclub-product-grid,
ul.products.products{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:18px!important;
  margin:0!important;
  padding:0!important;
  list-style:none!important;
  width:100%!important;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after{
  content:none!important;
  display:none!important;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
ul.products li.budclub-product-card,
ul.products .budclub-product-card{
  float:none!important;
  clear:none!important;
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
}
.woocommerce ul.products li.product.budclub-product-card,
.woocommerce-page ul.products li.product.budclub-product-card{
  display:flex!important;
}
@media(max-width:980px){
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  ul.products.budclub-product-grid,
  ul.products.products{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}
@media(max-width:680px){
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  ul.products.budclub-product-grid,
  ul.products.products{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:12px!important;
  }
}

/* v0.2.34: Category/shop infinite scroll.
 * Pagination remains available when JavaScript is disabled, but when the grid
 * script is active we hide the visible pagination and load the next 10 products
 * as the customer approaches the end of the current batch.
 */
.budclub-infinite-scroll-ready .woocommerce-pagination{
  display:none!important;
}
.budclub-product-card--skeleton{
  pointer-events:none;
  user-select:none;
}
.budclub-product-card--skeleton:hover{
  transform:none;
  border-color:var(--bc-line);
}
.budclub-skeleton-image,
.budclub-skeleton-line,
.budclub-skeleton-chip,
.budclub-skeleton-price,
.budclub-skeleton-button{
  position:relative;
  overflow:hidden;
  background:linear-gradient(90deg, rgb(255 255 255 / .055), rgb(255 255 255 / .13), rgb(255 255 255 / .055));
  background-size:220% 100%;
  animation:budclubGridSkeleton 1.15s ease-in-out infinite;
}
.budclub-skeleton-image{
  aspect-ratio:1;
  border-radius:0;
}
.budclub-skeleton-line{
  height:14px;
  border-radius:999px;
  margin:0 0 8px;
}
.budclub-skeleton-line.is-short{width:68%}
.budclub-skeleton-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.budclub-skeleton-chip{width:44px;height:28px;border-radius:7px}
.budclub-skeleton-price{width:86px;height:26px;border-radius:8px}
.budclub-skeleton-button{width:68px;height:40px;border-radius:10px}
.budclub-product-card--skeleton .budclub-price-add{align-items:end}
@keyframes budclubGridSkeleton{
  0%{background-position:180% 0}
  100%{background-position:-40% 0}
}
@media(max-width:680px){
  .budclub-skeleton-chip{width:39px;height:32px}
  .budclub-skeleton-button{width:64px;height:44px}
  .budclub-skeleton-price{width:74px;height:32px}
}



/* v0.2.39: Modern archive slide filter. */
.budclub-loop-toolbar--modern{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:0 0 22px;
}
.budclub-loop-toolbar__count{
  min-width:0;
}
.budclub-loop-toolbar__count .woocommerce-notices-wrapper:empty{
  display:none;
}
.budclub-loop-toolbar__count .woocommerce-result-count{
  margin:0;
  color:var(--bc-muted);
  font-weight:700;
  font-size:14px;
}
.budclub-loop-toolbar__actions{
  display:flex;
  align-items:center;
  gap:12px;
  margin-left:auto;
}
.budclub-filter-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:42px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid color-mix(in srgb, var(--bc-green) 30%, var(--bc-line));
  background:rgb(158 240 26 / .10);
  color:var(--bc-cream);
  font-weight:900;
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
}
.budclub-filter-toggle:hover{
  background:rgb(158 240 26 / .16);
  border-color:var(--bc-green);
  transform:translateY(-1px);
}
.budclub-filter-toggle em{
  display:inline-grid;
  place-items:center;
  min-width:20px;
  height:20px;
  padding:0 6px;
  border-radius:999px;
  background:var(--bc-green);
  color:#11170a;
  font-style:normal;
  font-size:12px;
  line-height:1;
}
.budclub-filter-overlay{
  position:fixed;
  inset:0;
  z-index:1100;
  background:rgb(0 0 0 / .64);
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
}
.budclub-filter-drawer{
  position:fixed;
  top:0;
  right:0;
  z-index:1101;
  width:min(420px, calc(100vw - 18px));
  height:100dvh;
  display:flex;
  flex-direction:column;
  background:linear-gradient(180deg,#151910,#0e100b);
  border-left:1px solid rgb(158 240 26 / .28);
  box-shadow:-24px 0 70px rgb(0 0 0 / .58);
  transform:translateX(105%);
  transition:transform .25s ease;
  color:var(--bc-cream);
}
.budclub-filter-overlay.is-open{
  opacity:1;
  pointer-events:auto;
}
.budclub-filter-drawer.is-open{
  transform:translateX(0);
}
.budclub-filter-drawer__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:22px 22px 18px;
  border-bottom:1px solid rgb(255 255 255 / .08);
}
.budclub-filter-drawer__head strong{
  display:block;
  font-family:var(--bc-font-display);
  text-transform:uppercase;
  letter-spacing:.03em;
  font-size:28px;
  line-height:.95;
}
.budclub-filter-drawer__head span{
  display:block;
  margin-top:7px;
  color:var(--bc-green);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.budclub-filter-close{
  width:42px;
  height:42px;
  border-radius:50%;
  border:1px solid rgb(255 255 255 / .12);
  background:rgb(255 255 255 / .06);
  color:var(--bc-cream);
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
.budclub-filter-form{
  display:flex;
  flex-direction:column;
  min-height:0;
  flex:1;
}
.budclub-filter-group{
  padding:20px 22px 4px;
}
.budclub-filter-group h3{
  margin:0 0 12px;
  font-size:13px;
  color:var(--bc-muted);
  text-transform:uppercase;
  letter-spacing:.08em;
}
.budclub-filter-options{
  display:grid;
  gap:10px;
}
.budclub-filter-option{
  position:relative;
  display:flex;
  align-items:center;
  cursor:pointer;
}
.budclub-filter-option input{
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
}
.budclub-filter-option span{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:46px;
  padding:12px 14px;
  border-radius:13px;
  border:1px solid rgb(255 255 255 / .08);
  background:rgb(255 255 255 / .045);
  color:var(--bc-cream);
  font-weight:900;
  transition:border-color .18s ease,background .18s ease,color .18s ease;
}
.budclub-filter-option input:checked + span{
  background:rgb(158 240 26 / .14);
  border-color:var(--bc-green);
  color:var(--bc-green);
}
.budclub-filter-option input:checked + span::after{
  content:"✓";
  display:inline-grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:50%;
  background:var(--bc-green);
  color:#11170a;
  font-size:13px;
  margin-left:12px;
}
.budclub-filter-actions{
  margin-top:auto;
  display:grid;
  grid-template-columns:1fr 1.6fr;
  gap:10px;
  padding:18px 22px 22px;
  border-top:1px solid rgb(255 255 255 / .08);
}
.budclub-filter-reset,
.budclub-filter-apply{
  min-height:48px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  font-weight:1000;
  text-decoration:none;
}
.budclub-filter-reset{
  border:1px solid rgb(255 255 255 / .12);
  color:var(--bc-cream);
  background:rgb(255 255 255 / .055);
}
.budclub-filter-apply{
  border:0;
  cursor:pointer;
  background:var(--bc-green);
  color:#11170a;
}
html.budclub-filter-lock,
html.budclub-filter-lock body{
  overflow:hidden;
}
@media(max-width:680px){
  .budclub-loop-toolbar--modern{
    align-items:flex-start;
    gap:14px;
  }
  .budclub-loop-toolbar__count .woocommerce-result-count{
    font-size:13px;
  }
  .budclub-filter-toggle{
    min-height:40px;
    padding:0 15px;
  }
  .budclub-filter-drawer{
    width:min(94vw, 390px);
  }
}


/* v0.2.42: Archive stock summary and sold-out divider. */
.budclub-stock-summary-note{
  margin:6px 0 0;
  color:var(--bc-green);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.budclub-stock-divider{
  grid-column:1/-1!important;
  list-style:none!important;
  margin:10px 0 2px!important;
  padding:16px 18px!important;
  border:1px solid rgb(255 45 45 / .45)!important;
  border-radius:16px!important;
  background:linear-gradient(135deg, rgb(255 45 45 / .14), rgb(255 255 255 / .035))!important;
  color:var(--bc-cream)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
  width:auto!important;
  max-width:none!important;
  float:none!important;
  clear:both!important;
}
.budclub-stock-divider span{
  font-family:var(--bc-font-display);
  text-transform:uppercase;
  font-size:24px;
  line-height:1;
  letter-spacing:.03em;
  color:#ff3b35;
}
.budclub-stock-divider small{
  color:var(--bc-muted);
  font-weight:800;
  font-size:12px;
  text-align:right;
}
@media(max-width:680px){
  .budclub-stock-summary-note{
    font-size:11px;
    line-height:1.35;
  }
  .budclub-stock-divider{
    align-items:flex-start!important;
    flex-direction:column!important;
    padding:14px!important;
  }
  .budclub-stock-divider span{font-size:21px}
  .budclub-stock-divider small{text-align:left}
}

/* v0.2.44: Sold-out section divider removed; keep cards in one continuous grid. */
.budclub-stock-divider{display:none!important;}

/* v0.2.45: Hide archive result count and stock summary for a cleaner toolbar. */
.budclub-loop-toolbar .woocommerce-result-count,
.budclub-stock-summary-note{
  display:none!important;
}
.budclub-loop-toolbar--modern{
  justify-content:flex-end;
}

/* v0.2.46: Center archive/shop page heading while keeping filter toolbar aligned. */
.budclub-shop-head{
  text-align:center;
}
.budclub-shop-head .budclub-display{
  text-align:center;
  margin-left:auto;
  margin-right:auto;
}
.budclub-loop-toolbar--modern{
  justify-content:flex-end;
}
@media(max-width:680px){
  .budclub-shop-head{
    text-align:center;
  }
  .budclub-shop-head .budclub-display{
    text-align:center;
  }
}

/* v0.2.48: True viewport modal for grid strain/flavor popup.
 * Prevents the popup from rendering inside the product card before moving to screen center.
 */
.budclub-product-card [data-card-flavor-panel],
.budclub-card-flavor-panel,
.budclub-flavor-panel{
  position:fixed!important;
  inset:0!important;
  z-index:99990!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  max-width:none!important;
  height:auto!important;
  margin:0!important;
  padding:18px!important;
  background:rgb(0 0 0 / .62)!important;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:none!important;
  transition:opacity .16s ease, visibility .16s ease!important;
}

.budclub-product-card [data-card-flavor-panel][hidden],
.budclub-card-flavor-panel[hidden],
.budclub-flavor-panel[hidden]{
  display:none!important;
}

.budclub-product-card [data-card-flavor-panel].is-open,
.budclub-card-flavor-panel.is-open,
.budclub-flavor-panel.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.budclub-product-card [data-card-flavor-panel] > *,
.budclub-card-flavor-panel > *,
.budclub-flavor-panel > *{
  position:relative!important;
  width:min(420px, calc(100vw - 34px))!important;
  max-height:min(78vh, 620px)!important;
  overflow:auto!important;
  transform:none!important;
}

html.budclub-option-modal-lock,
html.budclub-option-modal-lock body{
  overflow:hidden;
}


/* ==========================================================================
   v0.2.64: Product grid ACF review_star_rating display
   Renders the ACF text field below product title, e.g. ⭐⭐⭐⭐⭐ [review_count].
   ========================================================================== */
.budclub-grid-review-rating{
	display:flex;
	align-items:center;
	gap:5px;
	min-height:16px;
	margin:5px 0 8px;
	color:#d4af37;
	font-size:12px;
	line-height:1;
	font-weight:800;
	letter-spacing:.35px;
	white-space:nowrap;
}

.budclub-grid-review-rating .gcr-star,
.budclub-grid-review-rating span{
	color:#d4af37;
}

.budclub-grid-review-rating small,
.budclub-grid-review-rating .review-count{
	color:#9aa08c;
	font-size:11px;
	font-weight:700;
	letter-spacing:0;
}

.budclub-grid-review-rating a{
	color:inherit;
	text-decoration:none;
}

@media(max-width:520px){
	.budclub-grid-review-rating{
		font-size:11px;
		gap:4px;
		margin:5px 0 8px;
	}
}


/* v0.2.65: Product grid review count muted color.
 * Stars remain gold; review number/count is muted grey-white.
 */
.budclub-grid-review-rating .budclub-grid-review-count{
	color:#b7bdae!important;
	font-size:11px!important;
	font-weight:800!important;
	letter-spacing:0!important;
	line-height:1!important;
	margin-left:2px;
}


/* ==========================================================================
   v0.2.68: Product grid review row compact spacing
   Reduces top/bottom spacing around review_star_rating output.
   ========================================================================== */
.budclub-grid-review-rating{
	min-height:13px!important;
	margin:2px 0 5px!important;
	line-height:1!important;
}

.budclub-grid-review-rating + .budclub-card-sizes{
	margin-top:2px!important;
}


/* ==========================================================================
   v0.2.69: Product grid image bottom gap fix
   Ensures category/archive grid images fill the image frame without the small
   empty strip/gap at the bottom.
   ========================================================================== */
.budclub-product-card__image{
	display:block!important;
	overflow:hidden!important;
	line-height:0!important;
}

.budclub-product-card__image img{
	display:block!important;
	width:100%!important;
	height:100%!important;
	object-fit:cover!important;
	object-position:center center!important;
	margin:0!important;
	vertical-align:top!important;
}


/* ==========================================================================
   v0.2.70: Product grid sale badge + content spacing polish
   Tightens the top badge placement and makes the body spacing more consistent
   across title, review row, size chips, price, and Add button.
   ========================================================================== */

/* Badge: keep it cleanly inside the image corner, not touching the card edge. */
.budclub-product-card__image .budclub-pill{
	top:10px!important;
	left:10px!important;
	padding:6px 10px!important;
	min-height:24px!important;
	border-radius:999px!important;
	font-size:11px!important;
	line-height:1!important;
	letter-spacing:.45px!important;
	display:inline-flex!important;
	align-items:center!important;
	justify-content:center!important;
}

/* Card body: consistent breathing room under the image. */
.budclub-product-card__body{
	padding:14px 12px 12px!important;
	display:flex!important;
	flex-direction:column!important;
	min-height:0!important;
}

/* Product title spacing. */
.budclub-product-card__body h3{
	margin:0 0 6px!important;
	line-height:1.16!important;
}

.budclub-product-card__body h3 a{
	line-height:1.16!important;
}

/* Reviews row spacing. */
.budclub-product-card__body .budclub-grid-review-rating,
.budclub-product-card__body .budclub-rating{
	margin:1px 0 7px!important;
}

/* Size chips spacing. */
.budclub-product-card__body .budclub-card-sizes{
	margin:0 0 12px!important;
	row-gap:7px!important;
	column-gap:6px!important;
}

/* Price/add row should sit cleanly at the bottom with a little separation. */
.budclub-product-card__body .budclub-price-add{
	margin-top:auto!important;
	padding-top:6px!important;
	align-items:flex-end!important;
	gap:8px!important;
}

/* Compact cards on narrow/mobile grids. */
@media(max-width:520px){
	.budclub-product-card__image .budclub-pill{
		top:8px!important;
		left:8px!important;
		padding:5px 8px!important;
		font-size:10px!important;
		min-height:22px!important;
	}

	.budclub-product-card__body{
		padding:12px 10px 10px!important;
	}

	.budclub-product-card__body h3{
		margin-bottom:5px!important;
	}

	.budclub-product-card__body .budclub-grid-review-rating,
	.budclub-product-card__body .budclub-rating{
		margin:1px 0 6px!important;
	}

	.budclub-product-card__body .budclub-card-sizes{
		margin-bottom:10px!important;
		row-gap:6px!important;
		column-gap:5px!important;
	}

	.budclub-product-card__body .budclub-price-add{
		padding-top:5px!important;
	}
}



.budclub-shop-grid,
.budclub-products-grid,
.woocommerce ul.products,
.woocommerce-page ul.products{
	row-gap:16px!important;
}

@media(max-width:768px){
	.budclub-product-grid,
	.products.budclub-product-grid,
	.woocommerce ul.products.budclub-product-grid,
	.woocommerce-page ul.products.budclub-product-grid,
	.budclub-shop-grid,
	.budclub-products-grid,
	.woocommerce ul.products,
	.woocommerce-page ul.products{
		row-gap:14px!important;
	}
}


/* ==========================================================================
   v0.2.72: Category/archive-only product grid row spacing
   Keeps homepage product grids unchanged and only tightens shop/category/archive rows.
   ========================================================================== */
body.post-type-archive-product .budclub-product-grid,
body.tax-product_cat .budclub-product-grid,
body.tax-product_tag .budclub-product-grid,
body.woocommerce-shop .budclub-product-grid,
body.post-type-archive-product ul.products,
body.tax-product_cat ul.products,
body.tax-product_tag ul.products,
body.woocommerce-shop ul.products{
	row-gap:16px!important;
}

@media(max-width:768px){
	body.post-type-archive-product .budclub-product-grid,
	body.tax-product_cat .budclub-product-grid,
	body.tax-product_tag .budclub-product-grid,
	body.woocommerce-shop .budclub-product-grid,
	body.post-type-archive-product ul.products,
	body.tax-product_cat ul.products,
	body.tax-product_tag ul.products,
	body.woocommerce-shop ul.products{
		row-gap:14px!important;
	}
}


/* ==========================================================================
   v0.2.73: Product grid requested tight spacing adjustments
   Requested changes:
   - Remove padding from product card h3.
   - Set review row margin to 0px 0 1px.
   - Set budclub-card-sizes bottom margin to 1px.
   ========================================================================== */
.budclub-product-card__body h3{
	padding:0!important;
}

.budclub-product-card__body .budclub-grid-review-rating,
.budclub-product-card__body .budclub-rating{
	margin:0px 0 1px!important;
}

.budclub-product-card__body .budclub-card-sizes{
	margin-top:0!important;
	margin-bottom:1px!important;
}

/* Stronger selector to override earlier v0.2.70 spacing rules. */
.budclub-product-card .budclub-product-card__body .budclub-card-sizes{
	margin:0 0 1px!important;
}


/* ==========================================================================
   v0.2.77: Product grid lazy viewport video
   Videos do not preload. They are loaded/played only when the card image area
   is fully visible, then paused/unloaded when visibility drops below 80%.
   ========================================================================== */
.budclub-product-card__image.has-grid-video{
	position:relative;
	isolation:isolate;
}

.budclub-grid-video{
	position:absolute;
	inset:0;
	z-index:1;
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:center center;
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	background:#0c0d0a;
	transition:opacity .18s ease, visibility .18s ease;
}

.budclub-product-card__image.has-grid-video .budclub-pill{
	z-index:3;
}

.budclub-product-card__image.has-grid-video.is-video-playing .budclub-grid-video{
	opacity:1;
	visibility:visible;
}
