/* ==== SITE-BEST BATCH 1 (items 7, 8, 10, 9) · Theme draft 2026-10-23 ====
   Paste as ONE block at the end of Additional CSS, ONE save (= one LiteSpeed purge via #281).
   Each item is also delimited so it can be removed on its own for rollback. Source sidecars live in specs/<nn>-…/. */

/* ==== SITE-BEST 7 · Dead ends: search no-results + empty cart · Theme 2026-10-23 ====
   Scope: body.search-no-results / body.rtb-search-zero (search, 0 results) and
          body.woocommerce-cart (only the empty-cart blocks .rtb-sb7-*).
   Markup: snippet #80 patch (SPEC §Markup). Tokens: live :root --rx-*. */

/* Filters is pointless at 0 results. rtb-search-zero is only set when no filter is applied. */
body.search-no-results.rtb-search-zero .rtb-shop-toolbar-filters,
body.search-no-results.rtb-search-zero .rtb-shop-filters-trigger{display:none!important;}

/* Help + Fits My Gun lines (search and empty cart share them) */
body.search-no-results .rtb-sb7-help,
body.search-no-results .rtb-sb7-fit,
body.woocommerce-cart .rtb-sb7-fit{
  margin:var(--rx-s4) 0 0; color:var(--rx-text-2);
  font-family:var(--rx-font); font-size:var(--rx-fs-sub); line-height:20px; font-weight:var(--rx-w-reg);
}
body.search-no-results .rtb-sb7-help{margin-top:var(--rx-s5);}
body.search-no-results .rtb-sb7-help,body.search-no-results .rtb-sb7-fit{text-align:center; max-width:36em; margin-left:auto; margin-right:auto;}
body.search-no-results .rtb-sb7-help a,
body.search-no-results .rtb-sb7-fit a,
body.woocommerce-cart .rtb-sb7-fit a{
  color:var(--rx-text)!important; -webkit-text-fill-color:var(--rx-text)!important; font-weight:var(--rx-w-semi);
  text-decoration:underline; text-decoration-color:var(--rx-text-3); text-underline-offset:3px;
  display:inline-block; padding:var(--rx-s1) 0; /* 28px+ tap height inside the sentence */
}
body.search-no-results .rtb-sb7-help a:hover,
body.search-no-results .rtb-sb7-fit a:hover,
body.woocommerce-cart .rtb-sb7-fit a:hover{text-decoration-color:var(--rx-red-hi);}

/* "In demand" rail */
body.search-no-results .rtb-sb7,
body.woocommerce-cart .rtb-sb7{margin:var(--rx-s7) 0 var(--rx-s4); text-align:left;}
body.search-no-results .rtb-sb7 .rtb-section-head,
body.woocommerce-cart .rtb-sb7 .rtb-section-head{display:flex; align-items:baseline; justify-content:space-between; gap:var(--rx-s3); margin:0 0 var(--rx-s3);}
body.search-no-results .rtb-sb7 .rtb-section-head h2,
body.woocommerce-cart .rtb-sb7 .rtb-section-head h2{
  margin:0; font-family:var(--rx-font-display); font-size:var(--rx-fs-title2); line-height:28px;
  font-weight:var(--rx-w-bold); letter-spacing:var(--rx-track-tight); text-transform:none; color:var(--rx-text);
}
body.search-no-results .rtb-sb7 .rtb-section-head p,
body.woocommerce-cart .rtb-sb7 .rtb-section-head p{margin:0;}
body.search-no-results .rtb-sb7 .rtb-section-head a,
body.woocommerce-cart .rtb-sb7 .rtb-section-head a{
  display:inline-flex; align-items:center; min-height:var(--rx-tap);
  color:var(--rx-red-hi)!important; -webkit-text-fill-color:var(--rx-red-hi)!important;
  font-size:var(--rx-fs-sub); font-weight:var(--rx-w-semi); text-decoration:none;
}
body.search-no-results .rtb-sb7 ul.products,
body.woocommerce-cart .rtb-sb7 ul.products{
  display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:var(--rx-s3);
  margin:0!important; padding:0!important; list-style:none; width:100%!important; max-width:none!important;
}
@media (min-width:769px){
  body.search-no-results .rtb-sb7 ul.products,
  body.woocommerce-cart .rtb-sb7 ul.products{grid-template-columns:repeat(4,minmax(0,1fr))!important; gap:var(--rx-s4);}
}
body.search-no-results .rtb-sb7 ul.products::before,body.search-no-results .rtb-sb7 ul.products::after,
body.woocommerce-cart .rtb-sb7 ul.products::before,body.woocommerce-cart .rtb-sb7 ul.products::after{display:none!important;}
body.search-no-results .rtb-sb7 ul.products li.product,
body.woocommerce-cart .rtb-sb7 ul.products li.product{
  width:auto!important; max-width:none!important; margin:0!important; float:none!important; clear:none!important;
  background:var(--rx-card)!important; border:var(--rx-hair) solid var(--rx-sep)!important; border-radius:var(--rx-r-card)!important; overflow:hidden; padding:0 0 var(--rx-s3)!important;
  display:flex; flex-direction:column;
}
body.search-no-results .rtb-sb7 li.product img,
body.woocommerce-cart .rtb-sb7 li.product img{
  width:100%!important; aspect-ratio:1/1; height:auto!important; object-fit:contain; background:var(--rx-img-bg); margin:0 0 var(--rx-s2)!important;
}
body.search-no-results .rtb-sb7 li.product .woocommerce-loop-product__title,
body.woocommerce-cart .rtb-sb7 li.product .woocommerce-loop-product__title{
  padding:0 var(--rx-s3)!important; margin:0 0 var(--rx-s1)!important;
  font-size:var(--rx-fs-sub)!important; line-height:20px!important; font-weight:var(--rx-w-semi)!important; color:var(--rx-text)!important;
  display:-webkit-box!important; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden!important; max-height:40px!important; min-height:40px; height:auto!important; text-transform:none!important; letter-spacing:0!important;
}
body.search-no-results .rtb-sb7 li.product .price,
body.search-no-results .rtb-sb7 li.product .rtb-per-round,
body.search-no-results .rtb-sb7 li.product .rtb-card-stock,
body.woocommerce-cart .rtb-sb7 li.product .price,
body.woocommerce-cart .rtb-sb7 li.product .rtb-per-round,
body.woocommerce-cart .rtb-sb7 li.product .rtb-card-stock{padding:0 var(--rx-s3)!important;}
body.search-no-results .rtb-sb7 li.product .price,body.woocommerce-cart .rtb-sb7 li.product .price,
body.search-no-results .rtb-sb7 li.product .price .amount,body.woocommerce-cart .rtb-sb7 li.product .price .amount{color:var(--rx-text)!important; -webkit-text-fill-color:var(--rx-text)!important; opacity:1!important;}
body.search-no-results .rtb-sb7 li.product .button,
body.woocommerce-cart .rtb-sb7 li.product .button{
  margin:auto var(--rx-s3) 0!important; min-height:var(--rx-tap); width:auto!important; border-radius:var(--rx-r-btn)!important;
  display:flex!important; align-items:center; justify-content:center;
}

/* Empty cart: category tiles */
body.woocommerce-cart .rtb-sb7-tiles{margin:var(--rx-s6) 0 0; text-align:left;}
body.woocommerce-cart .rtb-sb7-tiles__head{
  margin:0 0 var(--rx-s3); font-family:var(--rx-font-display); font-size:var(--rx-fs-title2); line-height:28px;
  font-weight:var(--rx-w-bold); letter-spacing:var(--rx-track-tight); text-transform:none; color:var(--rx-text);
}
body.woocommerce-cart .rtb-sb7-tiles__list{
  list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--rx-s2);
}
@media (min-width:769px){ body.woocommerce-cart .rtb-sb7-tiles__list{grid-template-columns:repeat(6,minmax(0,1fr));} }
body.woocommerce-cart .rtb-sb7-tiles__list li{margin:0; padding:0;}
body.woocommerce-cart .rtb-sb7-tiles__list a{
  display:flex; align-items:center; justify-content:space-between; min-height:var(--rx-row);
  padding:0 var(--rx-s3) 0 var(--rx-s4); box-sizing:border-box;
  background:var(--rx-card); border-radius:var(--rx-r-btn);
  color:var(--rx-text)!important; -webkit-text-fill-color:var(--rx-text)!important;
  font-family:var(--rx-font); font-size:var(--rx-fs-body); font-weight:var(--rx-w-semi); text-decoration:none!important;
  transition:background var(--rx-dur) var(--rx-ease);
}
body.woocommerce-cart .rtb-sb7-tiles__list a::after{content:"\203A"; color:var(--rx-text-3); font-size:var(--rx-fs-chev); font-weight:var(--rx-w-reg);}
body.woocommerce-cart .rtb-sb7-tiles__list a:hover{background:var(--rx-card-2);}
body.woocommerce-cart .rtb-sb7-tiles__list a:focus-visible,
body.woocommerce-cart .rtb-sb7 a:focus-visible,
body.search-no-results .rtb-sb7 a:focus-visible,
body.search-no-results .rtb-sb7-help a:focus-visible{outline:var(--rx-ring) solid var(--rx-red-hi); outline-offset:2px;}
/* Keep the existing "Shop guns, ammo, and gear" button as the closing CTA, with breathing room */
body.woocommerce-cart .rtb-sb7 + .return-to-shop,
body.woocommerce-cart .rtb-sb7-tiles + .return-to-shop{margin-top:var(--rx-s6)!important;}
/* ==== /SITE-BEST 7 ==== */

/* ==== SITE-BEST 8 · Mobile drawer cleanup · Theme 2026-10-23 ====
   Scope: the open GeneratePress drawer only (#site-navigation.toggled at ≤768px),
   plus the optional .rtb-nav-shopall class set in wp-admin Menus (SPEC §wp-admin).
   This is site-wide chrome, so it's scoped by the drawer state, not a page class (see SPEC §Scope note).
   Desktop header Account icon rules stay as they are. */
@media (max-width:768px){
  /* Cart: the header cart is already 1 tap away next to the toggle. Hide the duplicate.
     CSS hide on purpose: snippet #74 re-injects the item if it's deleted in Menus. */
  body #site-navigation.toggled .main-nav > ul#menu-menu > li.rtb-drawer-util--cart{display:none!important;}

  /* Account: there's no Account icon in the 390 header, so it stays in the drawer, moved to the bottom as a utility row. */
  body #site-navigation.toggled .main-nav > ul#menu-menu{display:flex!important; flex-direction:column;}
  body #site-navigation.toggled .main-nav > ul#menu-menu > li{order:1;}
  body #site-navigation.toggled .main-nav > ul#menu-menu > li.rtb-drawer-util--account{
    order:99; border-bottom:0!important; margin:var(--rx-s2) 0 0!important;
    border-top:var(--rx-hair) solid var(--rx-sep)!important;
  }
  body #site-navigation.toggled .main-nav > ul#menu-menu > li.rtb-drawer-util--account > a{
    color:var(--rx-text-2)!important; letter-spacing:0!important; font-weight:var(--rx-w-reg)!important;
    font-size:var(--rx-fs-sub)!important;
  }

  /* "Shop all …" first child in each submenu reads as the jump-off, not as another subcategory */
  body #site-navigation.toggled .main-nav ul.sub-menu > li.rtb-nav-shopall > a{
    color:var(--rx-text)!important; -webkit-text-fill-color:var(--rx-text)!important; font-weight:var(--rx-w-semi)!important;
  }
}
/* Desktop dropdowns: the same "Shop all" items appear there (WP menus are shared). Give them a quiet separator. */
@media (min-width:769px){
  body #site-navigation:not(.toggled) .main-nav ul.sub-menu > li.rtb-nav-shopall{border-bottom:var(--rx-hair) solid var(--rx-sep);}
  body #site-navigation:not(.toggled) .main-nav ul.sub-menu > li.rtb-nav-shopall > a{font-weight:var(--rx-w-semi)!important;}
}
/* ==== /SITE-BEST 8 ==== */

/* ==== SITE-BEST 10 · Brands page: stable and scannable · Theme 2026-10-23 ====
   Scope: body.page-id-51760 (Brands) only. Tokens: live :root --rx-*.
   1) CLS: kill the scroll-driven padding animation (rtb-brands-sticky-pad / -desk).
      It grew padding-top 0→48px (0→32px desktop) on all 28 sections while scrolling 140–220px
      = the 0.3141 CLS at 390. Sections get static spacing plus scroll-margin so A–Z jumps clear the sticky bar.
   2) A–Z bar at ≤640px: one swipeable 44px row (was 267px of sticky wrap, 32% of the screen).
   3) Tap targets: list links ≥44px at ≤640px (2 columns), ≥32px at 641px+ (WCAG 2.5.8 floor is 24px).
   4) Top brands row (.rtb-brands-top, markup from snippet #20 patch). */

body.page-id-51760 .rtb-brands-index .rtb-brands-section{
  animation:none!important; animation-timeline:auto!important;
  padding-top:0!important; margin:0 0 var(--rx-s6);
  scroll-margin-top:72px;
}
body.page-id-51760 .rtb-brands-index .rtb-brands-letter{scroll-margin-top:72px;}
@media (min-width:641px){
  body.page-id-51760 .rtb-brands-index .rtb-brands-section,
  body.page-id-51760 .rtb-brands-index .rtb-brands-letter{scroll-margin-top:104px;}
}

/* A–Z: single row, swipe sideways on phones. Height is fixed so nothing below it moves. */
@media (max-width:640px){
  body.page-id-51760 .rtb-brands-index .rtb-brands-az{
    flex-wrap:nowrap!important; overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch; scrollbar-width:none;
    gap:var(--rx-s2)!important; padding:var(--rx-s2) 0!important; margin:0 0 var(--rx-s4)!important;
    height:60px; max-height:none!important; box-sizing:border-box;
    scroll-snap-type:x proximity;
  }
  body.page-id-51760 .rtb-brands-index .rtb-brands-az::-webkit-scrollbar{display:none;}
  body.page-id-51760 .rtb-brands-index .rtb-brands-az a{
    flex:0 0 auto; scroll-snap-align:start;
    min-width:44px!important; height:44px!important; min-height:44px!important;
    flex-direction:column; border-radius:var(--rx-r-inner)!important;
  }
}

/* List rows */
body.page-id-51760 .rtb-brands-index .rtb-brands-list li{margin:0!important;}
body.page-id-51760 .rtb-brands-index .rtb-brands-list a{
  display:flex; align-items:center; min-height:32px; padding:var(--rx-s1) 0; box-sizing:border-box;
  line-height:1.25;
}
@media (max-width:640px){
  body.page-id-51760 .rtb-brands-index .rtb-brands-list{columns:2!important; column-gap:var(--rx-s4)!important;}
  body.page-id-51760 .rtb-brands-index .rtb-brands-list a{
    min-height:var(--rx-tap); padding:var(--rx-s1) 0;
    border-bottom:var(--rx-hair) solid var(--rx-sep);
    font-size:var(--rx-fs-sub)!important; line-height:20px!important;
  }
}

/* Top brands row (markup: SPEC §Markup, rendered by snippet #20) */
body.page-id-51760 .rtb-brands-top{margin:0 0 var(--rx-s6);}
body.page-id-51760 .rtb-brands-top__head{
  margin:0 0 var(--rx-s3); padding:0; border:0;
  font-family:var(--rx-font-display); font-size:var(--rx-fs-title3); line-height:25px;
  font-weight:var(--rx-w-bold); letter-spacing:var(--rx-track-tight); text-transform:none; color:var(--rx-text);
}
body.page-id-51760 .rtb-brands-top__list{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--rx-s2);
}
@media (min-width:641px){ body.page-id-51760 .rtb-brands-top__list{grid-template-columns:repeat(4,minmax(0,1fr));} }
body.page-id-51760 .rtb-brands-top__list li{margin:0; padding:0;}
body.page-id-51760 .rtb-brands-top__list a{
  display:flex; align-items:center; justify-content:space-between; gap:var(--rx-s2);
  min-height:var(--rx-row); padding:0 var(--rx-s3) 0 var(--rx-s4); box-sizing:border-box;
  background:var(--rx-card); border-radius:var(--rx-r-btn);
  color:var(--rx-text)!important; -webkit-text-fill-color:var(--rx-text)!important;
  font-family:var(--rx-font); font-size:var(--rx-fs-sub); line-height:20px; font-weight:var(--rx-w-semi);
  text-decoration:none!important;
  transition:background var(--rx-dur) var(--rx-ease);
}
body.page-id-51760 .rtb-brands-top__list a::after{content:"\203A"; color:var(--rx-text-3); font-size:var(--rx-fs-chev); line-height:1; font-weight:var(--rx-w-reg);}
body.page-id-51760 .rtb-brands-top__list a:hover{background:var(--rx-card-2);}
body.page-id-51760 .rtb-brands-top__list a:focus-visible{outline:var(--rx-ring) solid var(--rx-red-hi); outline-offset:2px;}
/* SB10 A-Z fix (Theme 2026-10-23): stop the old scroll-timeline animations from locking the 390 bar */
@media (max-width:640px){
  body.page-id-51760 .rtb-brands-index .rtb-brands-az{animation:none!important;overflow-x:auto!important;overflow-y:hidden!important;}
  body.page-id-51760 .rtb-brands-index .rtb-brands-az a{animation:none!important;pointer-events:auto!important;}
}
/* ==== /SITE-BEST 10 ==== */

/* ==== SITE-BEST 9 · Cart tidy · Theme 2026-10-23 ====
   Scope: body.woocommerce-cart only. CSS only, so no snippet, price, fee or coupon logic changes.
   Never touches #30 / #729 / FFL. Fee row markup is Woo core (tr.fee); this only adds a caption. */

/* 9a · Hide the duplicate "…added to your cart. View cart" notice when you're already ON the cart.
   Only notices that link back to /cart/ are hidden. "Cart updated.", coupon and error notices stay. */
body.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-message:has(> a.wc-forward[href*="/cart/"]){display:none!important;}

/* 9b · Coupon behind "Have a code?". The field stays in the DOM, focusable and labelled.
   Clicking the label focuses the input (for=coupon_code), which opens the row. Tab reaches it too.
   It stays open while focused, while it has text, or while there's a coupon error.
   Browsers without :has() keep today's open field (everything is inside @supports). */
@supports selector(:has(*)){
  body.woocommerce-cart table.cart td.actions .coupon{
    background:transparent!important; border:0!important; padding:0!important; gap:var(--rx-s2);
  }
  body.woocommerce-cart table.cart td.actions .coupon > label[for="coupon_code"]{
    position:static!important; width:auto!important; height:auto!important; clip:auto!important; clip-path:none!important;
    overflow:visible!important; margin:0!important; padding:0!important; white-space:nowrap;
    display:inline-flex!important; align-items:center; min-height:var(--rx-tap); cursor:pointer;
    font-size:0!important; color:transparent; flex:1 1 100%;
  }
  body.woocommerce-cart table.cart td.actions .coupon > label[for="coupon_code"]::after{
    content:"Have a code?"; font-family:var(--rx-font); font-size:var(--rx-fs-sub); line-height:20px; font-weight:var(--rx-w-semi);
    color:var(--rx-text); text-decoration:underline; text-decoration-color:var(--rx-text-3); text-underline-offset:3px;
  }
  body.woocommerce-cart table.cart td.actions .coupon > label[for="coupon_code"]:hover::after{text-decoration-color:var(--rx-red-hi);}
  /* collapsed: visually hidden, NOT display:none, so it stays focusable */
  body.woocommerce-cart table.cart td.actions .coupon:not(:focus-within):not(:has(#coupon_code:not(:placeholder-shown))):not(:has(.coupon-error-notice)) #coupon_code,
  body.woocommerce-cart table.cart td.actions .coupon:not(:focus-within):not(:has(#coupon_code:not(:placeholder-shown))):not(:has(.coupon-error-notice)) button[name="apply_coupon"]{
    position:absolute!important; width:1px!important; height:1px!important; flex:0 0 1px!important; max-width:1px!important; min-width:0!important; min-height:0!important; padding:0!important; margin:-1px!important;
    border:0!important; overflow:hidden!important; clip:rect(0 0 0 0)!important; clip-path:inset(50%)!important; white-space:nowrap!important;
  }
  /* open: the label turns into a quiet caption above the field */
  body.woocommerce-cart table.cart td.actions .coupon:is(:focus-within,:has(#coupon_code:not(:placeholder-shown)),:has(.coupon-error-notice)) > label[for="coupon_code"]{min-height:28px;}
  body.woocommerce-cart table.cart td.actions .coupon:is(:focus-within,:has(#coupon_code:not(:placeholder-shown)),:has(.coupon-error-notice)) > label[for="coupon_code"]::after{
    content:"Coupon code"; text-decoration:none; color:var(--rx-text-2); font-weight:var(--rx-w-reg); font-size:var(--rx-fs-foot);
  }
  body.woocommerce-cart table.cart td.actions .coupon #coupon_code{min-height:var(--rx-tap); border-radius:var(--rx-r-inner)!important;}
  body.woocommerce-cart table.cart td.actions .coupon button[name="apply_coupon"]{min-height:var(--rx-tap); border-radius:var(--rx-r-btn)!important;}
}

/* 9b-2 · Update cart reads as a ghost text button. It enables itself when a quantity changes (Woo core JS). */
body.woocommerce-cart .woocommerce-cart-form table.cart button.button[name=update_cart],
body.woocommerce-cart .woocommerce-cart-form table.cart button.button[name=update_cart]:disabled,
body.woocommerce-cart .woocommerce-cart-form table.cart button.button[name=update_cart]:disabled:hover{
  background:transparent!important; border:0!important; box-shadow:none!important;
  font-family:var(--rx-font); font-size:var(--rx-fs-sub)!important; font-weight:var(--rx-w-semi); letter-spacing:0!important; text-transform:none!important;
  padding:0 var(--rx-s2)!important; min-height:var(--rx-tap)!important;
}
body.woocommerce-cart .woocommerce-cart-form table.cart button.button[name=update_cart]:disabled{color:var(--rx-text-3)!important; cursor:default;}
body.woocommerce-cart .woocommerce-cart-form table.cart button.button[name=update_cart]:not(:disabled){color:var(--rx-red-hi)!important;}
body.woocommerce-cart .woocommerce-cart-form table.cart button.button[name=update_cart]:focus-visible{outline:var(--rx-ring) solid var(--rx-red-hi); outline-offset:2px;}

/* 9c · Handling explainer under the "Additional handling" fee row. Exact wording from Chief, 5:09 PM. */
@media (min-width:769px){
  body.woocommerce-cart .cart_totals tr.fee th::after{
    content:"Small orders from some suppliers carry a handling fee."; display:block; white-space:normal; max-width:22em;
    margin-top:var(--rx-s1); font-family:var(--rx-font); font-size:var(--rx-fs-foot); line-height:18px; font-weight:var(--rx-w-reg);
    color:var(--rx-text-2); letter-spacing:0; text-transform:none;
  }
}
@media (max-width:768px){
  body.woocommerce-cart .cart_totals tr.fee td{flex-wrap:wrap;}
  body.woocommerce-cart .cart_totals tr.fee td::after{
    content:"Small orders from some suppliers carry a handling fee."; display:block; clear:both; text-align:left;
    flex:1 1 100%; width:100%; order:9;
    padding-top:var(--rx-s1); font-family:var(--rx-font); font-size:var(--rx-fs-foot); line-height:18px; font-weight:var(--rx-w-reg);
    color:var(--rx-text-2); letter-spacing:0; text-transform:none;
  }
}
/* ==== /SITE-BEST 9 ==== */

/* ==== LOOK-FIX-1024 · Theme visual & contrast fixes · 2026-10-24 ====
   Scope:
   1. Home rail cards (body.home .rtb-rail / .rtb-newest): edge-to-edge #ffffff image well (aspect-ratio 4/3,
      object-fit: contain, padding: 10px) matching archive/PDP cards so the 'New' / tag badge (::before) sits
      100% inside the white image box (top: 12px, left: 12px) without straddling any dark top padding band.
   2. Archive & Search sort select (.woocommerce-ordering select.orderby): uniform 44px height, 8px radius,
      and vertically centered label text at 390px and 1280px across category archives and search results.
   3. SPEC-1 caliber filter chip bar (.rtb-fx-bar / .rtb-fx-chip): unclipped chip labels at 390px
      (flex: 0 0 auto, flex-shrink: 0, white-space: nowrap, balanced mobile padding/gap/font-size so
      '9mm', '.22 LR', '.45 ACP', and '.357 Magnum' all fit 100% inside .rtb-fx-bar ul at scrollLeft = 0
      with >= 4px right clearance, while remaining chips scroll smoothly to 'All calibers').
   4. Archive/Search card category sub-label (.rtb-result-cat): raise contrast from #8a8a8a (4.09:1)
      to #9e9e9e (5.38:1 on #121212) to pass WCAG AA >= 4.5:1.
   5. BEF-1.0.3 / rtb-site-best dark-surface & contrast harmonization (.rtb-sb-fits, .rtb-sb-search-card,
      body.single-product .rtb-sb-row) so all surfaces match the dark theme (#141414 / #2a2a2a),
      all text inside .rtb-sb-search-card and .rtb-sb-fits meets >= 10:1 / 16.17:1 contrast, and PDP
      'Similar' / 'Goes with it' cards match dark related cards with object-fit: contain.
*/

/* 1. Home rail product cards & tag badges ('New', 'Trending', 'In Demand', 'Back in Stock', 'On Sale') */
body.home .rtb-newest.rtb-rail:has(ul.products li.product) ul.products li.product,
body.home .rtb-rail:has(ul.products li.product) ul.products li.product,
body.home .rtb-newest.rtb-rail ul.products li.product,
body.home .rtb-rail ul.products li.product {
  padding: 0 0 12px !important;
  overflow: hidden !important;
  border-radius: 8px !important;
}

body.home .rtb-rail ul.products li.product > a.woocommerce-LoopProduct-link,
body.home .rtb-newest ul.products li.product > a.woocommerce-LoopProduct-link,
body.home ul.products li.product:not(.product-category) > a.woocommerce-LoopProduct-link {
  position: relative !important;
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
}

body.home ul.products li.product:not(.product-category) a.woocommerce-LoopProduct-link img,
body.home .rtb-rail ul.products li.product:not(.product-category) a.woocommerce-LoopProduct-link img,
body.home .rtb-newest ul.products li.product:not(.product-category) a.woocommerce-LoopProduct-link img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: 4 / 3 !important;
  object-fit: contain !important;
  object-position: center center !important;
  box-sizing: border-box !important;
  padding: 10px !important;
  margin: 0 !important;
  border-radius: 0 !important;
  background: #ffffff !important;
  border-bottom: 1px solid #2a2a2a !important;
}

body.home .rtb-rail ul.products li.product .price,
body.home .rtb-newest ul.products li.product .price,
body.home ul.products li.product .price {
  padding: 0 14px !important;
  margin: 0 0 4px !important;
}

@media (max-width: 768px) {
  body.home .rtb-rail ul.products li.product .price,
  body.home .rtb-newest ul.products li.product .price,
  body.home ul.products li.product .price {
    padding: 0 10px !important;
  }
  body.home .rtb-rail ul.products li.product .rtb-card-stock,
  body.home .rtb-newest ul.products li.product .rtb-card-stock,
  body.home ul.products li.product .rtb-card-stock {
    margin-left: 10px !important;
    margin-right: 10px !important;
  }
}

.woocommerce ul.products li.product.product_tag-new-arrivals > a.woocommerce-LoopProduct-link::before,
.woocommerce ul.products li.product.product_tag-in-demand > a.woocommerce-LoopProduct-link::before,
.woocommerce ul.products li.product.product_tag-back-in-stock > a.woocommerce-LoopProduct-link::before,
.woocommerce ul.products li.product.product_tag-on-sale > a.woocommerce-LoopProduct-link::before,
.woocommerce ul.products li.product.product_tag-trending > a.woocommerce-LoopProduct-link::before {
  top: 12px !important;
  left: 12px !important;
  z-index: 6 !important;
  height: 22px !important;
  line-height: 20px !important;
  padding: 0 8px !important;
  width: auto !important;
  min-width: 48px !important;
  border-radius: 4px !important;
  background: #1c1c1a !important;
  color: #f4f1ea !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.28) !important;
}

/* 2. Sort dropdown (.woocommerce-ordering select.orderby) vertical centering & consistent height/radius */
body.tax-product_cat .woocommerce-ordering select.orderby,
body.tax-product_tag .woocommerce-ordering select.orderby,
body.tax-product_brand .woocommerce-ordering select.orderby,
body.post-type-archive-product .woocommerce-ordering select.orderby,
body.search .woocommerce-ordering select.orderby,
.woocommerce-ordering select.orderby {
  box-sizing: border-box !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  padding: 1px 34px 0 12px !important;
  font-size: 15px !important;
  line-height: 41px !important;
  font-weight: 500 !important;
  color: #f0f0f0 !important;
  background-color: #121212 !important;
  border: 1px solid #3a3a3a !important;
  border-radius: 8px !important;
  vertical-align: middle;
}

/* 3. SPEC-1 caliber filter chip bar (.rtb-fx-bar / .rtb-fx-chip) unclipped mobile scroll */
body.tax-product_cat .rtb-fx-bar ul,
.rtb-fx-bar ul {
  scroll-padding-inline: 8px;
}

body.tax-product_cat .rtb-fx-chip,
.rtb-fx-chip {
  flex: 0 0 auto !important;
  flex-shrink: 0 !important;
  white-space: nowrap !important;
}

@media (max-width: 768px) {
  body.tax-product_cat .rtb-fx-bar ul,
  .rtb-fx-bar ul {
    gap: 10px !important;
    padding: 0 4px 2px !important;
    scroll-padding-inline: 4px !important;
  }
  body.tax-product_cat .rtb-fx-chip,
  .rtb-fx-chip {
    padding: 0 9px !important;
    font-size: 14px !important;
  }
}

/* 4. Archive & Search product card category sub-label WCAG AA contrast (>= 4.5:1 on #121212) */
ul.products li.product .rtb-result-cat,
.woocommerce ul.products li.product .rtb-result-cat {
  color: #9e9e9e !important;
}

/* 5. BEF-1.0.3 / rtb-site-best dark-surface, contrast & uncropped firearm card harmonization */
.rtb-sb-fits,
.rtb-sb-search-card {
  background: #141414 !important;
  border: 1px solid #2a2a2a !important;
  border-radius: 8px !important;
  color: #f0f0f0 !important;
}

.rtb-sb-fits h2,
.rtb-sb-row h2 {
  color: #f0f0f0 !important;
  -webkit-text-fill-color: #f0f0f0 !important;
}

.rtb-sb-fits p,
.rtb-sb-row__note {
  color: #c8c8c8 !important;
  -webkit-text-fill-color: #c8c8c8 !important;
}

.rtb-sb-fits a {
  background: #1c1c1c !important;
  border: 1px solid #3a3a3a !important;
  color: #f0f0f0 !important;
  -webkit-text-fill-color: #f0f0f0 !important;
}

.rtb-sb-fits a:hover,
.rtb-sb-fits a:focus-visible {
  background: #242424 !important;
  border-color: #c8102e !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

.rtb-sb-search-card,
.rtb-sb-search-card *,
.rtb-sb-search-card a,
.rtb-sb-search-title {
  color: #f0f0f0 !important;
  -webkit-text-fill-color: #f0f0f0 !important;
  opacity: 1 !important;
}

.rtb-sb-search-card a {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 44px !important;
  font-size: 1.0625rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em !important;
  text-decoration: none !important;
}

.rtb-sb-search-card a:hover,
.rtb-sb-search-card a:focus-visible,
.rtb-sb-search-link:hover,
.rtb-sb-search-link:focus-visible {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-decoration: underline !important;
  text-decoration-color: #c8102e !important;
}

.rtb-sb-search-link {
  color: #ff4d67 !important;
  -webkit-text-fill-color: #ff4d67 !important;
}

/* PDP 'Similar' & 'Goes with it' rows (.rtb-sb-row) dark theme cards & uncropped firearm images */
body.single-product .rtb-sb-row ul.products li.product,
.rtb-sb-row ul.products li.product {
  background: #141414 !important;
  border: 1px solid #2a2a2a !important;
  border-radius: 8px !important;
  color: #f0f0f0 !important;
  overflow: hidden !important;
  padding: 0 0 12px !important;
  box-shadow: none !important;
}

body.single-product .rtb-sb-row ul.products li.product:not(.product-category) a.woocommerce-LoopProduct-link img,
.rtb-sb-row ul.products li.product img,
.rtb-sb-row ul.products li.product a img,
.rtb-sb-row img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: 4 / 3 !important;
  object-fit: contain !important;
  object-position: center center !important;
  box-sizing: border-box !important;
  padding: 10px !important;
  margin: 0 !important;
  border-radius: 0 !important;
  background: #ffffff !important;
  border-bottom: 1px solid #2a2a2a !important;
}

@media (max-width: 768px) {
  body.single-product .rtb-sb-row ul.products li.product:not(.product-category) a.woocommerce-LoopProduct-link img,
  .rtb-sb-row ul.products li.product img,
  .rtb-sb-row ul.products li.product a img,
  .rtb-sb-row img {
    padding: 6px !important;
  }
}

body.single-product .rtb-sb-row ul.products li.product .woocommerce-loop-product__title,
body.single-product .rtb-sb-row ul.products li.product h2,
body.single-product .rtb-sb-row ul.products li.product .price,
body.single-product .rtb-sb-row ul.products li.product .price .amount,
body.single-product .rtb-sb-row ul.products li.product .price bdi {
  color: #f0f0f0 !important;
  -webkit-text-fill-color: #f0f0f0 !important;
}

body.single-product .rtb-sb-row ul.products li.product .rtb-card-stock {
  color: #b9b4aa !important;
}

body.single-product .rtb-sb-row ul.products li.product .rtb-card-stock--low {
  color: #f0f0f0 !important;
  border-left: 2px solid #c8102e !important;
}

body.single-product .rtb-sb-row ul.products li.product .button,
body.single-product .rtb-sb-row ul.products li.product a.add_to_cart_button {
  background: #c8102e !important;
  color: #ffffff !important;
  border: 1px solid #c8102e !important;
  border-radius: 6px !important;
  font-weight: 600 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

body.single-product .rtb-sb-row ul.products li.product .button:hover,
body.single-product .rtb-sb-row ul.products li.product a.add_to_cart_button:hover {
  background: #a00d25 !important;
  border-color: #a00d25 !important;
  color: #ffffff !important;
}
/* ==== /LOOK-FIX-1024 ==== */
