Help
RSS
API
Feed
Maltego
Contact
Domain > www.keepshooting.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2013-04-29
76.9.17.228
(
ClassC
)
2025-01-22
34.198.182.60
(
ClassC
)
Port 443
HTTP/1.1 200 OKServer: nginx/1.26.2Date: Wed, 22 Jan 2025 17:17:38 GMTContent-Type: text/html; charsetUTF-8Content-Length: 862727Connection: keep-aliveVary: Accept-EncodingSet-Cookie: PHPSESSID5euqs27gm1sp0v0tpc2jg3hopn; expiresWed, 22-Jan-2025 20:04:17 GMT; Max-Age10000; path/; domain.keepshooting.com; secure; HttpOnly; SameSiteLaxx-built-with: Hyva ThemesX-Content-Type-Options: nosniffX-XSS-Protection: 1; modeblockX-Frame-Options: SAMEORIGINPragma: no-cacheExpires: -1Cache-Control: no-store, no-cache, must-revalidate, max-age0Accept-Ranges: bytes !doctype html>html langen>head > meta charsetutf-8/>meta nametitle contentOnline Military Surplus, Firearm, Sporting Goods Store | Keep Shooting/>meta namedescription contentWe have only the best military surplus, firearms, firearm accessories, ammunition and sporting goods! Shop Now!/>meta namekeywords contentmilitary surplus, firearms, firearms accessories, clothing equipment/>meta namerobots contentINDEX,FOLLOW/>meta nameviewport contentwidthdevice-width, initial-scale1/>title>Online Military Surplus, Firearm, Sporting Goods Store | Keep Shooting/title>link relstylesheet typetext/css mediaall hrefhttps://www.keepshooting.com/static/frontend/UnitedDefense/2024-12-4/en_US/css/styles.css />link relstylesheet typetext/css mediaall hrefhttps://www.keepshooting.com/static/frontend/UnitedDefense/2024-12-4/en_US/MageMe_WebFormsProductRequest/css/styles.css />link relicon typeimage/x-icon hrefhttps://www.keepshooting.com/media/favicon/stores/1/favicon.ico />link relshortcut icon typeimage/x-icon hrefhttps://www.keepshooting.com/media/favicon/stores/1/favicon.ico />meta namegoogle-site-verification contentu20qStfJTPG3N_Vhr166fbIDO0aa6NCMK3tkaHEUu6Q /> !-- Critical CSS for lite-youtube> element to avoid CLS: https://web.dev/cls/ -->style> lite-youtube{background-color:#000;position:relative;display:block;contain:content;background-position:center center;background-size:cover;cursor:pointer}lite-youtube::after{content:;display:block;padding-bottom:calc(100% / (16 / 9))}/style>script> var BASE_URL https://www.keepshooting.com/; var THEME_PATH https://www.keepshooting.com/static/frontend/UnitedDefense/2024-12-4/en_US; var COOKIE_CONFIG { expires: null, path: \u002F, domain: .keepshooting.com, secure: true, lifetime: 10000, cookie_restriction_enabled: false }; var CURRENT_STORE_CODE default; var CURRENT_WEBSITE_ID 1; window.hyva window.hyva || {} window.cookie_consent_groups window.cookie_consent_groups || {} window.cookie_consent_groupsnecessary true; window.cookie_consent_config window.cookie_consent_config || {}; window.cookie_consent_confignecessary .concat( window.cookie_consent_confignecessary || , user_allowed_save_cookie, form_key, mage-messages, private_content_version, mage-cache-sessid, last_visited_store, section_data_ids );/script>script> use strict; (function( hyva, undefined ) { function lifetimeToExpires(options, defaults) { const lifetime options.lifetime || defaults.lifetime; if (lifetime) { const date new Date; date.setTime(date.getTime() + lifetime * 1000); return date; } return null; } function generateRandomString() { const allowedCharacters 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ, length 16; let formKey , charactersLength allowedCharacters.length; for (let i 0; i length; i++) { formKey + allowedCharactersMath.round(Math.random() * (charactersLength - 1)) } return formKey; } const sessionCookieMarker {noLifetime: true} const cookieTempStorage {}; const internalCookie { get(name) { const v document.cookie.match((^|;) ? + name + (^;*)(;|$)); return v ? v2 : null; }, set(name, value, days, skipSetDomain) { let expires, path, domain, secure, samesite; const defaultCookieConfig { expires: null, path: /, domain: null, secure: false, lifetime: null, samesite: lax }; const cookieConfig window.COOKIE_CONFIG || {}; expires days && days ! sessionCookieMarker ? lifetimeToExpires({lifetime: 24 * 60 * 60 * days, expires: null}, defaultCookieConfig) : lifetimeToExpires(window.COOKIE_CONFIG, defaultCookieConfig) || defaultCookieConfig.expires; path cookieConfig.path || defaultCookieConfig.path; domain !skipSetDomain && (cookieConfig.domain || defaultCookieConfig.domain); secure cookieConfig.secure || defaultCookieConfig.secure; samesite cookieConfig.samesite || defaultCookieConfig.samesite; document.cookie name + + encodeURIComponent(value) + (expires && days ! sessionCookieMarker ? ; expires + expires.toGMTString() : ) + (path ? ; path + path : ) + (domain ? ; domain + domain : ) + (secure ? ; secure : ) + (samesite ? ; samesite + samesite : lax); }, isWebsiteAllowedToSaveCookie() { const allowedCookies this.get(user_allowed_save_cookie); if (allowedCookies) { const allowedWebsites JSON.parse(unescape(allowedCookies)); return allowedWebsitesCURRENT_WEBSITE_ID 1; } return false; }, getGroupByCookieName(name) { const cookieConsentConfig window.cookie_consent_config || {}; let group null; for (let prop in cookieConsentConfig) { if (!cookieConsentConfig.hasOwnProperty(prop)) continue; if (cookieConsentConfigprop.includes(name)) { group prop; break; } } return group; }, isCookieAllowed(name) { const cookieGroup this.getGroupByCookieName(name); return cookieGroup ? window.cookie_consent_groupscookieGroup : this.isWebsiteAllowedToSaveCookie(); }, saveTempStorageCookies() { for (const name, data of Object.entries(cookieTempStorage)) { if (this.isCookieAllowed(name)) { this.set(name, datavalue, datadays, dataskipSetDomain); delete cookieTempStoragename; } } } }; hyva.getCookie (name) > { const cookieConfig window.COOKIE_CONFIG || {}; if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { return cookieTempStoragename ? cookieTempStoragenamevalue : null; } return internalCookie.get(name); } hyva.setCookie (name, value, days, skipSetDomain) > { const cookieConfig window.COOKIE_CONFIG || {}; if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { cookieTempStoragename {value, days, skipSetDomain}; return; } return internalCookie.set(name, value, days, skipSetDomain); } hyva.setSessionCookie (name, value, skipSetDomain) > { return hyva.setCookie(name, value, sessionCookieMarker, skipSetDomain) } hyva.getBrowserStorage () > { const browserStorage window.localStorage || window.sessionStorage; if (!browserStorage) { console.warn(Browser Storage is unavailable); return false; } try { browserStorage.setItem(storage_test, 1); browserStorage.removeItem(storage_test); } catch (error) { console.warn(Browser Storage is not accessible, error); return false; } return browserStorage; } hyva.postForm (postParams) > { const form document.createElement(form); let data postParams.data; if (! postParams.skipUenc && ! data.uenc) { data.uenc btoa(window.location.href); } form.method POST; form.action postParams.action; Object.keys(postParams.data).map(key > { const field document.createElement(input); field.type hidden field.value postParams.datakey; field.name key; form.appendChild(field); }); const form_key document.createElement(input); form_key.type hidden; form_key.value hyva.getFormKey(); form_key.nameform_key; form.appendChild(form_key); document.body.appendChild(form); form.submit(); } hyva.getFormKey function () { let formKey hyva.getCookie(form_key); if (!formKey) { formKey generateRandomString(); hyva.setCookie(form_key, formKey); } return formKey; } hyva.formatPrice (value, showSign, options {}) > { const formatter new Intl.NumberFormat( en\u002DUS, Object.assign({ style: currency, currency: USD, signDisplay: showSign ? always : auto }, options) ); return (typeof Intl.NumberFormat.prototype.formatToParts function) ? formatter.formatToParts(value).map(({type, value}) > { switch (type) { case currency: return \u0024 || value; case minusSign: return - ; case plusSign: return + ; default : return value; } }).reduce((string, part) > string + part) : formatter.format(value); } const formatStr function (str, nStart) { const args Array.from(arguments).slice(2); return str.replace(/(%+)(0-9+)/g, (m, p, n) > { const idx parseInt(n) - nStart; if (argsidx null || argsidx void 0) { return m; } return p.length % 2 ? p.slice(0, -1).replace(%%, %) + argsidx : p.replace(%%, %) + n; }) } hyva.str function (string) { const args Array.from(arguments); args.splice(1, 0, 1); return formatStr.apply(undefined, args); } hyva.strf function () { const args Array.from(arguments); args.splice(1, 0, 0); return formatStr.apply(undefined, args); } /** * Take a html string as `content` parameter and * extract an element from the DOM to replace in * the current page under the same selector, * defined by `targetSelector` */ hyva.replaceDomElement (targetSelector, content) > { // Parse the content and extract the DOM node using the `targetSelector` const parser new DOMParser(); const doc parser.parseFromString(content, text/html); const contentNode doc.querySelector(targetSelector); // Bail if content cant be found if (!contentNode) { return; } hyva.activateScripts(contentNode) // Replace the old DOM node with the new content document.querySelector(targetSelector).replaceWith(contentNode); // Reload customerSectionData and display cookie-messages if present window.dispatchEvent(new CustomEvent(reload-customer-section-data)); hyva.initMessages(); } hyva.activateScripts (contentNode) > { // Extract all the script tags from the content. // Script tags wont execute when inserted into a dom-element directly, // therefore we need to inject them to the head of the document. const tmpScripts contentNode.getElementsByTagName(script); if (tmpScripts.length > 0) { // Push all script tags into an array // (to prevent dom manipulation while iterating over dom nodes) const scripts ; for (let i 0; i tmpScripts.length; i++) { scripts.push(tmpScriptsi); } // Iterate over all script tags and duplicate+inject each into the head for (let i 0; i scripts.length; i++) { let script document.createElement(script); script.innerHTML scriptsi.innerHTML; document.head.appendChild(script); // Remove the original (non-executing) node from the content scriptsi.parentNode.removeChild(scriptsi); } } return contentNode; } const replace {+: -, /: _, : ,}; hyva.getUenc () > btoa(window.location.href).replace(/+//g, match > replacematch); let currentTrap; const focusableElements (rootElement) > { const selector button, href, input, select, textarea, details, tabindex:not(tabindex-1; return Array.from(rootElement.querySelectorAll(selector)) .filter(el > { return el.style.display ! none && !el.disabled && el.tabIndex ! -1 && (el.offsetWidth || el.offsetHeight || el.getClientRects().length) }) } const focusTrap (e) > { const isTabPressed e.key Tab || e.keyCode 9; if (!isTabPressed) return; const focusable focusableElements(currentTrap) const firstFocusableElement focusable0 const lastFocusableElement focusablefocusable.length - 1 e.shiftKey ? document.activeElement firstFocusableElement && (lastFocusableElement.focus(), e.preventDefault()) : document.activeElement lastFocusableElement && (firstFocusableElement.focus(), e.preventDefault()) }; hyva.releaseFocus (rootElement) > { if (currentTrap && (!rootElement || rootElement currentTrap)) { currentTrap.removeEventListener(keydown, focusTrap) currentTrap null } } hyva.trapFocus (rootElement) > { if (!rootElement) return; hyva.releaseFocus() currentTrap rootElement rootElement.addEventListener(keydown, focusTrap) const firstElement focusableElements(rootElement)0 firstElement && firstElement.focus() } hyva.alpineInitialized (fn) > window.addEventListener(alpine:initialized, fn, {once: true}) window.addEventListener(user-allowed-save-cookie, () > internalCookie.saveTempStorageCookies()) }( window.hyva window.hyva || {} ));/script>script> if (!window.IntersectionObserver) { window.IntersectionObserver function (callback) { this.observe el > el && callback(this.takeRecords()); this.takeRecords () > {isIntersecting: true, intersectionRatio: 1}; this.disconnect () > {}; this.unobserve () > {}; } }/script>script> document.addEventListener(DOMContentLoaded, () > { const pageHeader document.querySelector(.page-header); if (!pageHeader) return; const observer new IntersectionObserver((e) > { e.target.dataset.sticky e.intersectionRatio 1 }, { threshold: 1 }); observer.observe(pageHeader) }); window.addEventListener(scrollPosition, () > { const scrollOffset 100; document.documentElement.toggleAttribute(data-header-can-sticky, window.pageYOffset > scrollOffset); }); /script>style> .page-header { z-index: 30; position: sticky; top: -1px; background-color: #fff; transition: background-color 150ms, color 150ms, box-shadow 150ms, translate 300ms; } .page-headerdata-stickyfalse { background-color: transparent; } .page-headerdata-stickytrue { box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); } htmldata-header-can-stickydata-scroll-dir-ydown .page-header { box-shadow: none; translate: 0 -100%; transition: background-color 150ms, color 150ms, box-shadow 150ms, translate 300ms 150ms; } /style>/head>body idhtml-body classcms-home cms-index-index page-layout-1column>!-- Matomo -->script> use strict; function MatomoAnalytics() { var _paq window._paq window._paq || ; this.initMatomoAnalytics function () { /* tracker methods like setCustomDimension should be called before trackPageView */ _paq.push(setTrackerUrl, https://matomo.keepshooting.com/matomo.php); _paq.push(setSiteId, 1); _paq.push(enableHeartBeatTimer, 30); _paq.push(trackPageView); _paq.push(enableLinkTracking); var d document, g d.createElement(script), s d.getElementsByTagName(script)0; g.type text/javascript; g.async true; g.src https://matomo.keepshooting.com/matomo.js; s.parentNode.insertBefore(g, s); }; } function AddTracker() { let self this; this.config { siteUrl: https\u003A\u002F\u002Fmatomo.keepshooting.com\u002Fmatomo.php, siteId: 1, actions: } this.initAddTracker function () { }; } var matomoAnalytics new MatomoAnalytics(); window.addEventListener(load, matomoAnalytics.initMatomoAnalytics);/script> noscript>p> img srchttps://matomo.keepshooting.com/matomo.php?idsite 1&rec1 styleborder:0; alt/> /p> /noscript>!-- End Matomo Code -->!-- add js file -->script>function initMatomoAnalytics_b146c3717b3ef8acb7de3b6fc4695553(){ const browserStorage hyva.getBrowserStorage(); var storage JSON.parse(browserStorage.getItem(jajuma-matomo)); var cart event.detail.data.cart; var matomo window.Matomo || null; var disableCookies 0; function pushAction(action, tracker) { const first action; if (!Array.isArray(action) || action.length 0) { return; } else if (Array.isArray(first)) { for (i 0; i action.length; i++) { pushAction(actioni, tracker); } return; } if (typeof tracker object && tracker ! null) { var actionName action.shift(); if (trackeractionName instanceof Function) { trackeractionName.apply(tracker, action); } } else { window._paq.push(action); } } function cartUpdated(cart) { // Disable function if matomo is not loaded if (matomo null) return false; // Check in storage if we have registered this cart already if (cart.data_id ! undefined) { if (storage ! null && storagecart-data-id ! undefined && storagecart-data-id cart.data_id) { return; } storage { cart-data-id: cart.data_id }; browserStorage.setItem(jajuma-matomo, JSON.stringify(storage)); } var tracker matomo.getTracker( this.siteUrl, this.siteId ); if (cart.hasOwnProperty(matomoDatas)) { if(disableCookies) { cart.matomoDatas.push(disableCookies); } pushAction(cart.matomoDatas, tracker); } } function initialize() { this.siteId https\u003A\u002F\u002Fmatomo.keepshooting.com\u002Fmatomo.php; this.siteUrl 1; pushAction(); } // Make sure the Matomo asynchronous tracker queue is defined window._paq window._paq || ; // Subscribe to cart updates function onGetCartData() { var cart event.detail.data.cart; if (cart) { cartUpdated(cart); } } return onGetCartData();}window.addEventListener(private-content-loaded, initMatomoAnalytics_b146c3717b3ef8acb7de3b6fc4695553);/script>!-- End add js file -->input nameform_key typehidden valuexhu87VanXtW2bKGz /> noscript> section classmessage global noscript border-b-2 border-blue-500 bg-blue-50 shadow-none m-0 px-0 rounded-none font-normal> div classcontainer text-center> p> strong>JavaScript seems to be disabled in your browser./strong> span> For the best experience on our site, be sure to turn on Javascript in your browser. /span> /p> /div> /section> /noscript>script> document.body.addEventListener(touchstart, () > {}, {passive: true})/script>div classpage-wrapper>header classpage-header>a classaction skip sr-only focus:not-sr-only focus:absolute focus:z-40 focus:bg-white contentarea href#contentarea> span> Skip to Content /span>/a>script> function initHeader () { return { searchOpen: false, cart: {}, isCartOpen: false, isMobile: true, init() { this.$watch(isMobile, () > this.updateSearchBasedOnDevice()); this.checkIsSearchMobile(); this.checkHeaderSize(); }, checkHeaderSize() { const pageHeader document.querySelector(.page-header); if (!pageHeader) return; document.documentElement.style.setProperty(--page-header-height, `${pageHeader.offsetHeight}px`); }, getData(data) { if (data.cart) { this.cart data.cart } }, isCartEmpty() { return !this.cart.summary_count }, checkIsSearchMobile() { const mobileElement this.$refs.searchContainerMobile; this.isMobile mobileElement ? getComputedStyle(mobileElement).display ! none : window.matchMedia((max-width: 1023px)).matches; // Fallback to `md` breakpoint }, updateSearchBasedOnDevice() { const target this.isMobile ? this.$refs.searchContainerMobile : this.$refs.searchContainerDesktop; target.appendChild(this.$refs.searchForm); }, toggleCart(event) { if (event.detail && event.detail.isOpen ! undefined) { this.isCartOpen event.detail.isOpen if (!this.isCartOpen && this.$refs && this.$refs.cartButton) { this.$refs.cartButton.focus() } } else { this.isCartOpen true } }, eventListeners: { @private-content-loaded.window(event) { this.getData(event.detail.data); }, @resize.window.debounce() { this.checkIsSearchMobile(); }, @visibilitychange.window.debounce() { this.checkIsSearchMobile(); }, }, } } function initCompareHeader() { return { compareProducts: null, itemCount: 0, receiveCompareData(data) { if (datacompare-products) { this.compareProducts datacompare-products; this.itemCount this.compareProducts.count; } } } }/script>div idheader classbg-white x-datainitHeader() x-bindeventListeners @resize.window.debouncecheckHeaderSize> div classcontainer py-3.5 flex gap-4 items-center> script> use strict; const initMenuMobile_679045a420682 () > ({ open: false, openMenu(event) { this.open true this.$nextTick(() > hyva.trapFocus(this.$refsmenu-dialog)) // Prevent from body scrolling while mobile menu opened document.body.classList.add(fixed, w-full) }, closeMenu(event) { event.stopPropagation() document.body.classList.remove(fixed, w-full) this.open false this.$nextTick(() > this.$refsopen-menu-button.focus() || hyva.releaseFocus()) }, toggleSubmenu(index) { thisindex !thisindex if (thisindex) { const focusableElements button:not(disabled), ahref:not(tabindex-1), tabindex:not(tabindex-1) this.$nextTick(() > { this.$refssubmenu- + index?.querySelector(focusableElements)?.focus() }) } }, }) /script> nav class snowdog-topmenu-mobile z-20 order-2 text-primary-darker sm:order-1 navigation lg:hidden x-datainitMenuMobile_679045a420682() x-deferintersect @keydown.escapeopen && closeMenu @click.outsideopen && closeMenu aria-labelMain menu rolenavigation > button x-refopen-menu-button @clickopenMenu typebutton aria-labelOpen menu :aria-expandedopen aria-haspopupmenu > svg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width24 height24> path stroke-linecapround stroke-linejoinround dM4 6h16M4 12h16M4 18h16/>/svg> /button> div classbackdrop x-showopen x-transition:enterease-in-out duration-500 x-transition:enter-startopacity-0 x-transition:enter-endopacity-100 x-transition:leaveease-in-out duration-500 x-transition:leave-startopacity-100 x-transition:leave-endopacity-0 @clickcloseMenu x-cloak >/div> div classfixed z-30 top-0 left-0 w-full max-w-lg h-full bg-container-lighter border-container overflow-y-auto overflow-x-hidden transform transition ease-in-out duration-500 sm:duration-700 :class{ -translate-x-full : !open, translate-x-0 shadow-2xl : open, } x-cloak x-refmenu-dialog roledialog aria-modaltrue aria-labelMain menu :aria-hiddenopen ? false : true > div x-showopen classflex flex-col-reverse > ul classmb-1 divide-y divide-container> li x-data{node791: false } class > div classgroup> div data-content-typehtml data-appearancedefault data-elementmain data-decodedtrue>div classmax-w-lg mx-auto mt-24> details classborder-b-2 border-black> summary classbg-cyan-900 text-white uppercase text-xl font-semibold text-center p-4 cursor-pointer border-b-2 border-black> span classfont-semibold inline-block>Winter Collection svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-6>path dm10 20-1.25-2.5L6 18/>path dM10 4 8.75 6.5 6 6/>path dM10.585 15H10/>path dM2 12h6.5L10 9/>path dM20 14.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0z/>path dm4 10 1.5 2L4 14/>path dm7 21 3-6-1.5-3/>path dm7 3 3 6h2/>/svg>/span> /summary> ul classml-8 border-b border-gray-500 text-center> li> div classbg-white text-black p-4 border-b border-black> a hrefhttps://www.keepshooting.com/collections/seasons/winter/all classtext-xl font-bold inline-block>All Winter Gear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/seasons/winter/balaclavas classtext-xl font-bold>Balaclavas svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/seasons/winter/neck-gaiters classtext-xl font-bold>Neck Gaiters svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/seasons/winter/gloves classtext-xl font-bold>Gloves svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/seasons/winter/hats classtext-xl font-bold>Hats svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/seasons/winter/winter-jackets classtext-xl font-bold>Jackets svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/seasons/winter/winter-pants classtext-xl font-bold>Pants svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/seasons/winter/scarves classtext-xl font-bold>Scarves svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/seasons/winter/winter-shirts classtext-xl font-bold>Shirts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /li> /ul> /details> details classborder-b-2 border-black> summary classbg-cyan-900 text-white uppercase text-xl font-semibold text-center p-4 cursor-pointer border-b-2 border-black> span classfont-semibold inline-block>Ammo svg xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink width36 height36 viewBox0 0 72 56 strokecurrentColor classinline-block ml-6 styleenable-background:new 0 0 72 56; xml:spacepreserve> path dM50.3,16.2h0.5c0.1-3.7,0.7-7.4,1.9-11l0.3-1c0.1-0.4,0.5-0.6,0.9-0.6c0.4,0,0.8,0.3,0.9,0.6l0.3,1c1.2,3.6,1.8,7.3,1.9,11h0.5v6.3l1.5,4v23.3H48.8V26.4l1.5-4L50.3,16.2L50.3,16.2z/> path dM59,50.6H48.8V52H59L59,50.6L59,50.6z/> path dM38.5,16.2H39c0.1-3.7,0.7-7.4,1.9-11l0.3-1c0.1-0.4,0.5-0.6,0.9-0.6c0.4,0,0.8,0.3,0.9,0.6l0.3,1c1.2,3.6,1.8,7.3,1.9,11h0.5v6.3l1.5,4v23.3H36.9V26.4l1.5-4L38.5,16.2L38.5,16.2z/> path dM47.2,50.6H36.9V52h10.2V50.6z/> path dM26.2,16.2h0.5c0.1-3.7,0.7-7.4,1.9-11l0.3-1c0.1-0.4,0.5-0.6,0.9-0.6c0.4,0,0.8,0.3,0.9,0.6l0.3,1c1.2,3.6,1.8,7.3,1.9,11h0.5v6.3l1.5,4v23.3H24.7V26.4l1.5-4L26.2,16.2L26.2,16.2z/> path dM34.9,50.6H24.7V52h10.2V50.6z/> path dM14.3,16.2h0.5c0.1-3.7,0.7-7.4,1.9-11l0.3-1c0.1-0.4,0.5-0.6,0.9-0.6s0.8,0.3,0.9,0.6l0.3,1c1.2,3.6,1.8,7.3,1.9,11h0.5v6.3l1.5,4v23.3H12.7V26.4l1.5-4L14.3,16.2L14.3,16.2z/> path dM23,50.6H12.7V52H23C23,52,23,50.6,23,50.6z/> /svg> /span> /summary> ul classml-8 border-b border-black text-center> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 cursor-pointer> span classfont-semibold>Handgun Ammo/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/ammunition/handgun-ammo/all classtext-xl font-bold>All Handgun Ammo svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/ammunition/handgun-ammo/handgun-hunting-ammo classtext-xl font-bold>Hunting svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/ammunition/handgun-ammo/personal-defense-handgun-ammo classtext-xl font-bold>Personal Defense svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/ammunition/handgun-ammo/handgun-ammo-for-suppressor-use classtext-xl font-bold>Suppressor Use svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 cursor-pointer> span classfont-semibold>Rifle Ammo/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/ammunition/rifle-ammo classtext-xl font-bold>All Rifle Ammo svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Rimfire Ammo/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/ammunition/rimfire-ammo classtext-xl font-bold>All Rimfire Ammo svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Shotgun Ammo/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/ammunition/shotgun-ammo classtext-xl font-bold>All Shotgun Ammo svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> /ul> /details> details classborder-b-2 border-black> summary classbg-cyan-900 text-white uppercase text-xl font-semibold text-center p-4 cursor-pointer border-b-2 border-black> span classfont-semibold inline-block>Clothing svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>path dM20.38 3.46 16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z/>/svg> /span> /summary> ul classml-8 border-b border-black text-center> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Accessories/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/accessories classtext-xl font-bold>All Clothing Accessories svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/accessories/belts classtext-xl font-bold>Belts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/accessories/coveralls classtext-xl font-bold>Coveralls svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/accessories/underwear classtext-xl font-bold>Underwear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/accessories/wallets classtext-xl font-bold>Wallets svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Footwear/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/footwear classtext-xl font-bold>All Footwear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/footwear/boots classtext-xl font-bold>Boots svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/footwear/socks classtext-xl font-bold>Socks svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Gloves/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/gloves classtext-xl font-bold>All Gloves svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/gloves/tactical-gloves classtext-xl font-bold>Tactical Gloves svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/gloves/work-gloves classtext-xl font-bold>Work Gloves svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Headwear/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/head-wear classtext-xl font-bold>All Headwear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/head-wear/bandannas classtext-xl font-bold>Bandannas svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/head-wear/baseball-caps classtext-xl font-bold>Baseball Caps svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/head-wear/boonie-hats classtext-xl font-bold>Boonie Hats svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/head-wear/camo-hats classtext-xl font-bold>Camo Hats svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/head-wear/cold-weather classtext-xl font-bold>Cold Weather Hats svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/head-wear/shemaghs classtext-xl font-bold>Shemaghs svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Jackets/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/jackets classtext-xl font-bold>All Jackets svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/jackets/bomber-and-flight-jackets classtext-xl font-bold>Bomber & Flight svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/jackets/concealed-carry-jackets classtext-xl font-bold>Concealed Carry svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/jackets/field-jackets classtext-xl font-bold>Field svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/jackets/hoodies classtext-xl font-bold>Hoodies svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/jackets/parkas classtext-xl font-bold>Parkas svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Pants/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/pants classtext-xl font-bold>All Pants svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/pants/bdu-pants classtext-xl font-bold>BDU Pants svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/pants/camo-pants classtext-xl font-bold>Camo Pants svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/pants/vintage-pants classtext-xl font-bold>Vintage Pants svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Shirts/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/shirts classtext-xl font-bold>All Shirts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/shirts/camo-shirts classtext-xl font-bold>Camo Shirts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/shirts/flannel classtext-xl font-bold>Flannel Shirts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/shirts/polo-shirts classtext-xl font-bold>Polo Shirts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/shirts/t-shirts classtext-xl font-bold>T-Shirts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/shirts/thermal-shirts classtext-xl font-bold>Thermal Shirts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/shirts/vintage-shirts classtext-xl font-bold>Vintage Shirts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Shorts/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/shorts classtext-xl font-bold>All Shorts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/shorts/bdu-shorts classtext-xl font-bold>BDU Shorts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/shorts/camo-shorts classtext-xl font-bold>Camo Shorts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/shorts/vintage-shorts classtext-xl font-bold>Vintage Shorts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> /ul> /details> details classborder-b-2 border-black> summary classbg-cyan-900 text-white uppercase text-xl font-semibold text-center p-4 cursor-pointer border-b-2 border-black> span classfont-semibold inline-block>Gear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>path dM3 2v1c0 1 2 1 2 2S3 6 3 7s2 1 2 2-2 1-2 2 2 1 2 2/>path dM18 6h.01/>path dM6 18h.01/>path dM20.83 8.83a4 4 0 0 0-5.66-5.66l-12 12a4 4 0 1 0 5.66 5.66Z/>path dM18 11.66V22a4 4 0 0 0 4-4V6/>/svg> /span> /summary> ul classml-8 border-b border-black text-center> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Bags & Packs/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/bags-and-packs classtext-xl font-bold>All Bags & Packs svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/bags-and-packs/daypacks classtext-xl font-bold>Day Packs svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/bags-and-packs/duffel-bags classtext-xl font-bold>Duffle Bags svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/bags-and-packs/messenger-bags classtext-xl font-bold>Messenger Bags svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/bags-and-packs/tactical-backpacks classtext-xl font-bold>Tactical Backpacks svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/bags-and-packs/tool-bags classtext-xl font-bold>Tool Bags svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Knives/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives classtext-xl font-bold>All Knives svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives/automatic-knives classtext-xl font-bold>Automatic Knives svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives/butterfly-knives classtext-xl font-bold>Butterfly Knives svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives/fixed-blade-knives classtext-xl font-bold>Fixed Blade Knives svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives/folding-knives classtext-xl font-bold>Folding Knives svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives/specialty-knives classtext-xl font-bold>Specialty Knives svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Morale Patches/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/morale-patches classtext-xl font-bold>All Morale Patches svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/morale-patches/flag-patches classtext-xl font-bold>Flag Patches svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Survival Gear/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/safety-and-security classtext-xl font-bold>All Survival Gear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/safety-and-security/gas-masks classtext-xl font-bold>Gas Masks & Filters svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/outdoors/paracord classtext-xl font-bold>Paracord svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/safety-and-security/survival/whistles classtext-xl font-bold>Whistles svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Self Defense/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/police-batons classtext-xl font-bold>Batons svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/pepper-spray classtext-xl font-bold>Pepper Spray svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/tasers classtext-xl font-bold>Stun Guns svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Tactical Gear/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/tactical-gear classtext-xl font-bold>All Tactical Gear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/body-armor classtext-xl font-bold>Body Armor svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/safety-and-security/entry-tools classtext-xl font-bold>Entry Tools svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/handcuffs classtext-xl font-bold>Handcuffs svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/safety-and-security/lock-pick-tools classtext-xl font-bold>Lock Pick Tools svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/training classtext-xl font-bold>Training Gear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/tactical-vests classtext-xl font-bold>Vests svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> /ul> /details> details classborder-b-2 border-black> summary classbg-cyan-900 text-white uppercase text-xl font-semibold text-center p-4 cursor-pointer border-b-2 border-black> span classfont-semibold inline-block>Guns svg xmlnshttp://www.w3.org/2000/svg width36 height36 strokecurrentColor classinline-block ml-6 viewBox0 0 72 56>defs>style>.cls-1{fill:#0d0d0d;}/style>/defs>title>gun/title>path classcls-1 dM12.31,45.37a1.63,1.63,0,0,1,.39-2.31l10.28-8c-.85-1.23.15-1.65.15-1.65l-.83-2.2c-.74-1.53.7-3,.7-3l8.83-6.51a2.66,2.66,0,0,1,3.76.72l1.78-1a1.45,1.45,0,0,1,.52-2l9.44-7.48V8.5c.11-1.88,1.1-1.1,1.1-1.1l3.15,3.1s6.83-5.79,7.31-6.22.91.31.91.31.4.47.15.75-6.56,6-6.56,6l.18,1.53-.57.63-1-1-1.71,1.63a2.53,2.53,0,0,1-.61,2.38l-7.4,7.77c-1.35,1.13-2,.31-2,.31L38.78,26.2c-.63.94,2.15,3.31,2.15,3.31l-.25.68A27.55,27.55,0,0,0,48.2,35.6l-3.32,5.07A20.41,20.41,0,0,1,38,35.92L35.17,37.5c-2.52,1.87-2.06,3.09-2.06,3.09L33.58,44c1.7.79.31,1.53.31,1.53l-2.63,1.2c-1.74,1.1-1.7-.29-1.7-.29l-.22-6.7c-1.06-2.41-2.64-1.22-2.64-1.22a31.25,31.25,0,0,0-5,5.61L21.17,50c-1,2.87-2.74,1.52-2.74,1.52l-4.32-4.34Z/>/svg> /span> /summary> ul classml-8 border-b border-black text-center> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Class 3 / NFA/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/firearms/nfa classtext-xl font-bold>All Class 3 / NFA svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/firearms/nfa/machine-guns classtext-xl font-bold>Machine Guns svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/firearms/nfa/short-barrel-shotguns classtext-xl font-bold>Short Barrel Shotguns svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/firearms/nfa/short-barrel-rifles classtext-xl font-bold>Short Barrel Rifles svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/firearms/nfa/silencers classtext-xl font-bold>Suppressors / Silencers svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Handguns/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/firearms/pistols classtext-xl font-bold>All Handguns svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/brands/glock/glock-handguns classtext-xl font-bold>Glock Handguns svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Shotguns/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/firearms/shotguns classtext-xl font-bold>All Shotguns svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/brands/mossberg/mossberg-shotguns classtext-xl font-bold>Mossberg Shotguns svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Rifles/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/firearms/rifles classtext-xl font-bold>All Rifles svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> /ul> /details> details classborder-b-2 border-black> summary classbg-cyan-900 text-white uppercase text-xl font-semibold text-center p-4 cursor-pointer border-b-2 border-black> span classfont-semibold inline-block>Gun Parts & Accessories svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 512 512 strokecurrentColor width36 height36 classinline-block ml-6>path dM0 0h512v512H0z/>path fill#fff dM146.8 41c-.2 10.26-.6 20.25-1.3 30h175.3c.3-9.83.4-19.82.2-30H146.8zM144 89C131.1 214.5 76.78 297.9 21.96 367.2L137.3 482.6C239.3 357.1 310.3 244.5 320 89h-29.2c-2.2 49-22 109.8-48.6 168.7-26.9 59.5-60.9 117-92.2 157.6l-12.8-12.8c29.7-39.1 62.7-94.9 88.6-152.2 25.9-57.4 44.7-116.6 47-161.3h-30c-2.2 49-22 109.8-48.6 168.7-21.2 46.9-46.8 92.6-72.1 129.7l-12.9-13c23.9-35.6 48.4-79.4 68.6-124.1 25.9-57.4 44.7-116.6 47-161.3h-30c-2.2 49-22 109.8-48.6 168.7-15.9 35.3-34.3 69.8-53.2 100.5l-13.1-13.1c17.6-29.2 35-61.7 49.9-94.8 25.9-57.4 44.7-116.6 47-161.3H144zm192 149c-1 2.4-2.1 5.2-3.2 8.7-3.5 11.3-7 27.1-10 43-4 21.3-6.9 41.8-8.5 53.3h43.4c-1.6-11.5-4.5-32-8.5-53.3-3-15.9-6.5-31.7-10-43-1.1-3.5-2.2-6.3-3.2-8.7zm64 0c-1 2.4-2.1 5.2-3.2 8.7-3.5 11.3-7 27.1-10 43-4 21.3-6.9 41.8-8.5 53.3h43.4c-1.6-11.5-4.5-32-8.5-53.3-3-15.9-6.5-31.7-10-43-1.1-3.5-2.2-6.3-3.2-8.7zm64 0c-1 2.4-2.1 5.2-3.2 8.7-3.5 11.3-7 27.1-10 43-4 21.3-6.9 41.8-8.5 53.3h43.4c-1.6-11.5-4.5-32-8.5-53.3-3-15.9-6.5-31.7-10-43-1.1-3.5-2.2-6.3-3.2-8.7zM313 361v126h46V361h-46zm64 0v126h46V361h-46zm64 0v126h46V361h-46z/>/svg> /span> /summary> ul classml-8 border-b border-black text-center> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Magazines & Clips/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/shooting/magazines classtext-xl font-bold>All Magazines & Clips svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/magazines/type/handgun classtext-xl font-bold>Handgun Magazines svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/magazines/type/rifle classtext-xl font-bold>Rifle Magazines svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/magazines/type/shotgun classtext-xl font-bold>Shotgun Magazines svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/magazines/military-surplus-mags classtext-xl font-bold>Military Surplus Magazines svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/magazines/ak47-mags classtext-xl font-bold>AK-47 Magazines svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/magazines/ar15-mags classtext-xl font-bold>AR-15 Magazines svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/magazines/m14-mags classtext-xl font-bold>M-14 Magazines svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/magazines/glock-mags classtext-xl font-bold>Glock Magazines svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/magazines/ruger-mags classtext-xl font-bold>Ruger Magazines svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Gun Parts/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/shooting/gun-parts classtext-xl font-bold>All Gun Parts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-parts/1911-parts classtext-xl font-bold>1911 Parts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-parts/ar-parts classtext-xl font-bold>AR-15 Parts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-parts/glock-parts classtext-xl font-bold>Glock Parts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-parts/hk-parts classtext-xl font-bold>HK Parts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-parts/m14-parts classtext-xl font-bold>M-14 Parts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-parts/military-surplus-parts classtext-xl font-bold>Military Surplus Parts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-parts/ruger-parts classtext-xl font-bold>Ruger Parts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-parts/walther-parts classtext-xl font-bold>Walther Parts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Maintenance & Cleaning/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/gun-cleaning classtext-xl font-bold>All Maintenance & Cleaning svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/gun-cleaning/kits classtext-xl font-bold>Cleaning Kits svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/gun-cleaning/tools classtext-xl font-bold>Cleaning Tools svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gunsmith-tools classtext-xl font-bold>Gunsmith Tools svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Accessories/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/pistol-accessories classtext-xl font-bold>All Handgun Accessories svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/rifle-accessories classtext-xl font-bold>All Rifle Accessories svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/rifle-accessories/bipods classtext-xl font-bold>Bipods svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/pistol-accessories/holsters classtext-xl font-bold>Holsters svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/rifle-accessories/slings classtext-xl font-bold>Slings svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/thread-adapters classtext-xl font-bold>Thread Adapters svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Optics/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/optics classtext-xl font-bold>All Optics svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/optics/laser-boresights classtext-xl font-bold>Laser Bore Sights svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/optics/laser-sights classtext-xl font-bold>Laser Sights svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/optics/scope-mounts-and-rings classtext-xl font-bold>Mounts & Rings svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/optics/red-dot-sights classtext-xl font-bold>Red Dot Sights svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/optics/weapon-lights classtext-xl font-bold>Weapon Lights svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Safety & Training/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/shooting/shooting-safety-training classtext-xl font-bold>All Safety & Training svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/books-and-videos classtext-xl font-bold>Books & Videos svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/shooting-safety-training/snap-caps classtext-xl font-bold>Snap Caps svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/shooting-safety-training/training-guns classtext-xl font-bold>Training Guns svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> /ul> /details> details classborder-b-2 border-black> summary classbg-cyan-900 text-white uppercase text-xl font-semibold text-center p-4 cursor-pointer border-b-2 border-black> span classfont-semibold inline-block>Military Surplus svg width36 height36 classinline-block ml-6 viewBox0 0 48 48 fillnone xmlnshttp://www.w3.org/2000/svg> path dM23.8268 9.12528C23.8811 8.95824 24.1173 8.95824 24.1716 9.12528L24.6657 10.6458C24.69 10.7205 24.7596 10.771 24.8381 10.771H26.4369C26.6124 10.771 26.6855 10.9957 26.5434 11.0989L25.25 12.0387C25.1865 12.0849 25.1598 12.1666 25.1841 12.2413L25.6782 13.7619C25.7324 13.9288 25.5413 14.0678 25.3992 13.9646L24.1058 13.0248C24.0423 12.9786 23.9563 12.9786 23.8927 13.0248L22.5993 13.9646C22.4572 14.0678 22.266 13.9288 22.3203 13.7619L22.8144 12.2413C22.8386 12.1666 22.8121 12.0849 22.7486 12.0387L21.4551 11.0989C21.313 10.9957 21.386 10.771 21.5616 10.771H23.1604C23.2389 10.771 23.3085 10.7205 23.3328 10.6458L23.8268 9.12528Z fillcurrentColor/> path fill-ruleevenodd clip-ruleevenodd dM16.0225 19.3959C15.4716 19.5631 14.9064 19.7464 14.3243 19.9459C13.8866 20.096 13.4031 19.9262 13.1554 19.5353C12.9077 19.1446 12.9604 18.635 13.2827 18.3033L13.2904 18.2951C13.2987 18.2863 13.3125 18.2714 13.3311 18.251C13.3682 18.2101 13.424 18.147 13.4922 18.0652C13.6295 17.9005 13.8125 17.665 13.9942 17.3847C14.3777 16.793 14.6667 16.1361 14.6667 15.5714C14.6667 10.312 18.819 6 24 6C29.181 6 33.3333 10.312 33.3333 15.5714C33.3333 16.1361 33.6223 16.793 34.0058 17.3847C34.1875 17.665 34.3705 17.9005 34.5078 18.0652C34.576 18.147 34.6318 18.2101 34.6689 18.251C34.6713 18.2536 34.6735 18.256 34.6757 18.2584C34.6909 18.2751 34.7023 18.2874 34.7096 18.2951L34.7173 18.3033C35.0396 18.635 35.0923 19.1446 34.8447 19.5353C34.5969 19.9262 34.1134 20.096 33.6757 19.9459C33.0937 19.7464 32.5284 19.5631 31.9775 19.3959C31.9924 19.5955 32 19.7969 32 20C32 24.4183 28.4183 28 24 28C19.5817 28 16 24.4183 16 20C16 19.7969 16.0076 19.5955 16.0225 19.3959ZM16.6667 15.5714C16.6667 11.3631 19.9763 8 24 8C28.0237 8 31.3333 11.3631 31.3333 15.5714C31.3333 16.1583 31.4752 16.7211 31.6739 17.2238C29.2957 16.5569 27.1082 16.1748 24.9323 16.0897C24.6215 16.0775 24.3109 16.0714 24 16.0714C23.5826 16.0714 23.1656 16.0824 22.748 16.1043C20.6771 16.2129 18.5879 16.5895 16.3261 17.2238C16.5248 16.7211 16.6667 16.1583 16.6667 15.5714ZM18.1153 18.8227C18.0397 19.2028 18 19.5963 18 20C18 23.3137 20.6863 26 24 26C27.3137 26 30 23.3137 30 20C30 19.5963 29.9603 19.2027 29.8847 18.8227C28.2748 18.4331 26.771 18.1971 25.297 18.1099C24.8627 18.0842 24.431 18.0714 24 18.0714C23.6275 18.0714 23.2546 18.081 22.8799 18.1002C21.3493 18.1785 19.7896 18.4175 18.1153 18.8227Z fillcurrentColor/> path fill-ruleevenodd clip-ruleevenodd dM35 24L40 21.1429V9H42V32L35 29V24ZM40 23.4464L37 25.1606V27.6812L40 28.9669V23.4464Z fillcurrentColor/> path dM12.1424 29.3384C12.6362 29.0912 12.8362 28.4904 12.5889 27.9965C12.3417 27.5027 11.7409 27.3028 11.247 27.55L7.5523 29.3998C7.05845 29.6471 6.85854 30.2478 7.10579 30.7417C7.35304 31.2355 7.95382 31.4354 8.44766 31.1882L12.1424 29.3384Z fillcurrentColor/> path dM12.1056 35.5528C12.3526 35.0588 12.9532 34.8586 13.4472 35.1056L15 35.882L16.5528 35.1056C17.0468 34.8586 17.6474 35.0588 17.8944 35.5528C18.1414 36.0468 17.9412 36.6474 17.4472 36.8944L15.4472 37.8944C15.1657 38.0352 14.8343 38.0352 14.5528 37.8944L12.5528 36.8944C12.0588 36.6474 11.8586 36.0468 12.1056 35.5528Z fillcurrentColor/> path fill-ruleevenodd clip-ruleevenodd dM42 36.5C42 32.4407 31.0755 29.8827 23.4706 30.0066C16.2579 30.1242 6 32.4407 6 36.5V42H42V36.5ZM23.5032 32.0064C26.5179 31.9573 30.1021 32.3566 33.2226 33.1113L31.156 40H8V36.5C8 36.4117 8.04793 36.0274 8.90015 35.4008C9.72521 34.7943 11.0008 34.2008 12.6361 33.6813C15.8855 32.6489 20.0556 32.0626 23.5032 32.0064ZM35.151 33.6434L33.244 40H40V36.5C40 36.458 39.9676 36.0593 39.0191 35.3882C38.1468 34.771 36.8227 34.1682 35.151 33.6434Z fillcurrentColor/> /svg> /span> /summary> ul classml-8 border-b border-black text-center> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Bags & Packs/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/military-surplus/bags-and-packs classtext-xl font-bold>All Bags & Packs svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/bags-and-packs/rucksacks classtext-xl font-bold>Rucksacks svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Clothing/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/military-surplus/clothing classtext-xl font-bold>All Clothing svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/clothing/accessories classtext-xl font-bold>Accessories svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/clothing/coveralls classtext-xl font-bold>Coveralls svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/clothing/gloves classtext-xl font-bold>Gloves svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/hats-and-caps classtext-xl font-bold>Hats svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/clothing/jackets classtext-xl font-bold>Jackets svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/clothing/pants classtext-xl font-bold>Pants svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/hats-and-caps/scarfs classtext-xl font-bold>Scarves svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/clothing/shirts classtext-xl font-bold>Shirts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Collectibles/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles classtext-xl font-bold>All Collectibles svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/bayonets classtext-xl font-bold>Bayonets svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/books classtext-xl font-bold>Books svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/flags classtext-xl font-bold>Flags svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/helmets classtext-xl font-bold>Helmets svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/inert-ordnance classtext-xl font-bold>Inert Ordnance svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/knives classtext-xl font-bold>Knives svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/patches-and-insignia classtext-xl font-bold>Patches & Medals svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/religious classtext-xl font-bold>Religious svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/signs classtext-xl font-bold>Signs svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/vintage classtext-xl font-bold>Vintage svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Field Gear/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/military-surplus/field-gear classtext-xl font-bold>All Field Gear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/blankets classtext-xl font-bold>Blankets svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/canteens classtext-xl font-bold>Canteens svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/first-aid classtext-xl font-bold>First Aid svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/mess-kits classtext-xl font-bold>Mess Kits svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/nets classtext-xl font-bold>Nets svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/shovels classtext-xl font-bold>Shovels svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/sleeping-bags classtext-xl font-bold>Sleeping Bags svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/tents classtext-xl font-bold>Tents svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Footwear/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/military-surplus/footwear classtext-xl font-bold>All Footwear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/clothing/military-surplus-socks classtext-xl font-bold>Socks svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Tactical Gear/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/military-surplus/tactical-gear classtext-xl font-bold>All Tactical Gear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/tactical-gear/body-armor classtext-xl font-bold>Body Armor svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/tactical-gear/gas-masks classtext-xl font-bold>Gas Masks svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/tactical-gear/goggles classtext-xl font-bold>Goggles svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/tactical-gear/molle-gear classtext-xl font-bold>MOLLE Gear & Pouches svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/tactical-gear/training-gear classtext-xl font-bold>Training Gear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> /ul> /details> details classborder-b-2 border-black> summary classbg-cyan-900 text-white uppercase text-xl font-semibold text-center p-4 cursor-pointer border-b-2 border-black> span classfont-semibold inline-block>Outdoors svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-6>circle cx4 cy4 r2/>path dm14 5 3-3 3 3/>path dm14 10 3-3 3 3/>path dM17 14V2/>path dM17 14H7l-5 8h20Z/>path dM8 14v8/>path dm9 14 5 8/>/svg> /span> /summary> ul classml-8 border-b border-black text-center> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Camping/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/outdoors/camping classtext-xl font-bold>All Camping svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/outdoors/camping/blankets classtext-xl font-bold>Blankets svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/outdoors/camping/mess-kits classtext-xl font-bold>Mess Kits svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/outdoors/camping/camping-stoves classtext-xl font-bold>Stoves svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/outdoors/camping/sleeping-bags classtext-xl font-bold>Sleeping Bags svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/outdoors/camping/water-purification classtext-xl font-bold>Water Purification svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Compasses/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/outdoors/compasses classtext-xl font-bold>All Compasses svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Eyewear/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/eyewear classtext-xl font-bold>All Eyewear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/eyewear/tactical-goggles classtext-xl font-bold>Goggles svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/eyewear/sunglasses classtext-xl font-bold>Sun Glasses svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Flashlights/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/flashlights classtext-xl font-bold>All Flashlights svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Tools/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/axes-and-tomahawks classtext-xl font-bold>Axes & Tomahawks svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/machetes classtext-xl font-bold>Machetes svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/multitools classtext-xl font-bold>Multitools svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> /ul> /details> details classborder-b-2 border-black> summary classbg-cyan-900 text-white uppercase text-xl font-semibold text-center p-4 cursor-pointer border-b-2 border-black> span classfont-semibold inline-block>More Ways To Shop svg xmlnshttp://www.w3.org/2000/svg width24 height24 classinline-block ml-6 viewBox0 0 24 24 fillnone stroke-width1.5 stroke-linecapround stroke-linejoinround colorcurrentColor>path dM8 16L16.7201 15.2733C19.4486 15.046 20.0611 14.45 20.3635 11.7289L21 6 strokecurrentColor>/path>path dM6 6H8.5M22 6H18.5 strokecurrentColor>/path>path dM11 8.5C11.4915 9.0057 12.7998 11 13.5 11M16 8.5C15.5085 9.0057 14.2002 11 13.5 11M13.5 11V3 strokecurrentColor>/path>circle cx6 cy20 r2 strokecurrentColor>/circle>circle cx17 cy20 r2 strokecurrentColor>/circle>path dM8 20L15 20 strokecurrentColor>/path>path dM2 2H2.966C3.91068 2 4.73414 2.62459 4.96326 3.51493L7.93852 15.0765C8.08887 15.6608 7.9602 16.2797 7.58824 16.7616L6.63213 18 strokecurrentColor>/path>/svg> /span> /summary> ul classml-8 border-b border-gray-500 text-center> li> div classbg-white text-black p-4 border-b border-black> a hrefhttps://www.keepshooting.com/new-products classtext-xl font-bold inline-block>New Products svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/prime classtext-xl font-bold>One of a Kind Items svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/black-friday classtext-xl font-bold>Current Sale Items svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /li> /ul> /details>/div> /div> /li> /ul> div classflex justify-end px-3 border-b border-container> button @clickcloseMenu classflex justify-center items-center w-16 h-16 aria-labelClose menu typebutton > svg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width24 height24> path stroke-linecapround stroke-linejoinround dM6 18L18 6M6 6l12 12/>/svg> /button> /div> /div> /div> /nav> a classinline-block align-middle hrefhttps://www.keepshooting.com/ titleGo to Home page> img srchttps://www.keepshooting.com/media/logo/stores/1/keepshooting-logo-r.png altStore logo width266 height40 loadingeager fetchpriorityhigh > /a> div x-refsearchContainerDesktop classhidden lg:block min-h-a11y px-6 flex-1>/div> div classml-auto flex gap-0.5 items-center> a idcompare-link classrelative inline-block rounded p-1 hover:bg-primary/10 outline-offset-2 invisible :class{ invisible: !(itemCount > 0) } hrefhttps://www.keepshooting.com/catalog/product_compare/index/ titleCompare Products x-datainitCompareHeader() @private-content-loaded.windowreceiveCompareData($event.detail.data) :aria-label` Compare Products, ${itemCount > 1 ? hyva.str(\u00251\u0020items, itemCount) : hyva.str(\u00251\u0020item, itemCount) }` > svg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width24 height24> path stroke-linecapround stroke-linejoinround dM3 6l3 1m0 0l-3 9a5.002 5.002 0 006.001 0M6 7l3 9M6 7l6-2m6 2l3-1m-3 1l-3 9a5.002 5.002 0 006.001 0M18 7l3 9m-3-9l-6-2m0-2v2m0 16V5m0 16H9m3 0h3/>/svg> span x-textitemCount classabsolute -top-1.5 -right-1.5 px-2 py-0.5 rounded-full bg-yellow-200 text-yellow-800 text-xs font-semibold leading-none text-center uppercase tabular-nums aria-hiddentrue >/span> /a> div classrelative inline-block x-data{ open: false } @keyup.escapeopen false @click.outsideopen false> button typebutton idcustomer-menu classblock rounded p-1 hover:bg-primary/10 outline-offset-2 @clickopen !open :aria-expandedopen ? true : false aria-labelMy Account aria-haspopuptrue > svg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width24 height24> path stroke-linecapround stroke-linejoinround dM5.121 17.804A13.937 13.937 0 0112 16c2.5 0 4.847.655 6.879 1.804M15 10a3 3 0 11-6 0 3 3 0 016 0zm6 2a9 9 0 11-18 0 9 9 0 0118 0z/>/svg> /button> nav classabsolute right-0 z-20 w-40 py-2 mt-2 -mr-4 px-1 overflow-auto origin-top-right rounded-sm shadow-lg sm:w-48 lg:mt-3 bg-container-lighter x-cloak x-showopen x-transition aria-labelledbycustomer-menu > a idcustomer.header.sign.in.link classblock px-4 py-2 lg:px-5 lg:py-2 hover:bg-gray-100 onclickhyva.setCookie && hyva.setCookie( login_redirect, window.location.href, 1 ) hrefhttps://www.keepshooting.com/customer/account/index/ titleSign In> Sign In/a> a idcustomer.header.register.link classblock px-4 py-2 lg:px-5 lg:py-2 hover:bg-gray-100 hrefhttps://www.keepshooting.com/customer/account/create/ titleCreate an Account > Create an Account /a> /nav>/div> button idmenu-cart-icon classrelative inline-block rounded p-1 hover:bg-primary/10 outline-offset-2 x-refcartButton :aria-disabledisCartEmpty() :aria-label` Toggle minicart, ${isCartEmpty() ? Cart is empty : cart.summary_count > 1 ? hyva.str(%1 items, cart.summary_count) : hyva.str(%1 item, cart.summary_count) }` @click.prevent.stop() > { $dispatch(toggle-cart, { isOpen: true }) } @toggle-cart.windowtoggleCart($event) :aria-expandedisCartOpen aria-haspopupdialog > svg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width24 height24> path stroke-linecapround stroke-linejoinround dM3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z/>/svg> span x-textcart.summary_count x-show!isCartEmpty() x-cloak classabsolute -top-1.5 -right-1.5 px-2 py-0.5 rounded-full bg-green-200 text-green-800 text-xs font-semibold leading-none text-center uppercase tabular-nums aria-hiddentrue >/span> /button> /div> /div> div classbg-slate-200> div classrelative container hidden lg:block> script> use strict; const initMenuMobile_679045a420682 () > ({ open: false, openMenu(event) { this.open true this.$nextTick(() > hyva.trapFocus(this.$refsmenu-dialog)) // Prevent from body scrolling while mobile menu opened document.body.classList.add(fixed, w-full) }, closeMenu(event) { event.stopPropagation() document.body.classList.remove(fixed, w-full) this.open false this.$nextTick(() > this.$refsopen-menu-button.focus() || hyva.releaseFocus()) }, toggleSubmenu(index) { thisindex !thisindex if (thisindex) { const focusableElements button:not(disabled), ahref:not(tabindex-1), tabindex:not(tabindex-1) this.$nextTick(() > { this.$refssubmenu- + index?.querySelector(focusableElements)?.focus() }) } }, }) /script> nav class snowdog-topmenu-mobile z-20 order-2 text-primary-darker sm:order-1 navigation lg:hidden x-datainitMenuMobile_679045a420682() x-deferintersect @keydown.escapeopen && closeMenu @click.outsideopen && closeMenu aria-labelMain menu rolenavigation > button x-refopen-menu-button @clickopenMenu typebutton aria-labelOpen menu :aria-expandedopen aria-haspopupmenu > svg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width24 height24> path stroke-linecapround stroke-linejoinround dM4 6h16M4 12h16M4 18h16/>/svg> /button> div classbackdrop x-showopen x-transition:enterease-in-out duration-500 x-transition:enter-startopacity-0 x-transition:enter-endopacity-100 x-transition:leaveease-in-out duration-500 x-transition:leave-startopacity-100 x-transition:leave-endopacity-0 @clickcloseMenu x-cloak >/div> div classfixed z-30 top-0 left-0 w-full max-w-lg h-full bg-container-lighter border-container overflow-y-auto overflow-x-hidden transform transition ease-in-out duration-500 sm:duration-700 :class{ -translate-x-full : !open, translate-x-0 shadow-2xl : open, } x-cloak x-refmenu-dialog roledialog aria-modaltrue aria-labelMain menu :aria-hiddenopen ? false : true > div x-showopen classflex flex-col-reverse > ul classmb-1 divide-y divide-container> li x-data{node791: false } class > div classgroup> div data-content-typehtml data-appearancedefault data-elementmain data-decodedtrue>div classmax-w-lg mx-auto mt-24> details classborder-b-2 border-black> summary classbg-cyan-900 text-white uppercase text-xl font-semibold text-center p-4 cursor-pointer border-b-2 border-black> span classfont-semibold inline-block>Winter Collection svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-6>path dm10 20-1.25-2.5L6 18/>path dM10 4 8.75 6.5 6 6/>path dM10.585 15H10/>path dM2 12h6.5L10 9/>path dM20 14.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0z/>path dm4 10 1.5 2L4 14/>path dm7 21 3-6-1.5-3/>path dm7 3 3 6h2/>/svg>/span> /summary> ul classml-8 border-b border-gray-500 text-center> li> div classbg-white text-black p-4 border-b border-black> a hrefhttps://www.keepshooting.com/collections/seasons/winter/all classtext-xl font-bold inline-block>All Winter Gear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/seasons/winter/balaclavas classtext-xl font-bold>Balaclavas svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/seasons/winter/neck-gaiters classtext-xl font-bold>Neck Gaiters svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/seasons/winter/gloves classtext-xl font-bold>Gloves svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/seasons/winter/hats classtext-xl font-bold>Hats svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/seasons/winter/winter-jackets classtext-xl font-bold>Jackets svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/seasons/winter/winter-pants classtext-xl font-bold>Pants svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/seasons/winter/scarves classtext-xl font-bold>Scarves svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/seasons/winter/winter-shirts classtext-xl font-bold>Shirts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /li> /ul> /details> details classborder-b-2 border-black> summary classbg-cyan-900 text-white uppercase text-xl font-semibold text-center p-4 cursor-pointer border-b-2 border-black> span classfont-semibold inline-block>Ammo svg xmlnshttp://www.w3.org/2000/svg xmlns:xlinkhttp://www.w3.org/1999/xlink width36 height36 viewBox0 0 72 56 strokecurrentColor classinline-block ml-6 styleenable-background:new 0 0 72 56; xml:spacepreserve> path dM50.3,16.2h0.5c0.1-3.7,0.7-7.4,1.9-11l0.3-1c0.1-0.4,0.5-0.6,0.9-0.6c0.4,0,0.8,0.3,0.9,0.6l0.3,1c1.2,3.6,1.8,7.3,1.9,11h0.5v6.3l1.5,4v23.3H48.8V26.4l1.5-4L50.3,16.2L50.3,16.2z/> path dM59,50.6H48.8V52H59L59,50.6L59,50.6z/> path dM38.5,16.2H39c0.1-3.7,0.7-7.4,1.9-11l0.3-1c0.1-0.4,0.5-0.6,0.9-0.6c0.4,0,0.8,0.3,0.9,0.6l0.3,1c1.2,3.6,1.8,7.3,1.9,11h0.5v6.3l1.5,4v23.3H36.9V26.4l1.5-4L38.5,16.2L38.5,16.2z/> path dM47.2,50.6H36.9V52h10.2V50.6z/> path dM26.2,16.2h0.5c0.1-3.7,0.7-7.4,1.9-11l0.3-1c0.1-0.4,0.5-0.6,0.9-0.6c0.4,0,0.8,0.3,0.9,0.6l0.3,1c1.2,3.6,1.8,7.3,1.9,11h0.5v6.3l1.5,4v23.3H24.7V26.4l1.5-4L26.2,16.2L26.2,16.2z/> path dM34.9,50.6H24.7V52h10.2V50.6z/> path dM14.3,16.2h0.5c0.1-3.7,0.7-7.4,1.9-11l0.3-1c0.1-0.4,0.5-0.6,0.9-0.6s0.8,0.3,0.9,0.6l0.3,1c1.2,3.6,1.8,7.3,1.9,11h0.5v6.3l1.5,4v23.3H12.7V26.4l1.5-4L14.3,16.2L14.3,16.2z/> path dM23,50.6H12.7V52H23C23,52,23,50.6,23,50.6z/> /svg> /span> /summary> ul classml-8 border-b border-black text-center> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 cursor-pointer> span classfont-semibold>Handgun Ammo/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/ammunition/handgun-ammo/all classtext-xl font-bold>All Handgun Ammo svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/ammunition/handgun-ammo/handgun-hunting-ammo classtext-xl font-bold>Hunting svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/ammunition/handgun-ammo/personal-defense-handgun-ammo classtext-xl font-bold>Personal Defense svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/ammunition/handgun-ammo/handgun-ammo-for-suppressor-use classtext-xl font-bold>Suppressor Use svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 cursor-pointer> span classfont-semibold>Rifle Ammo/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/ammunition/rifle-ammo classtext-xl font-bold>All Rifle Ammo svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Rimfire Ammo/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/ammunition/rimfire-ammo classtext-xl font-bold>All Rimfire Ammo svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Shotgun Ammo/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/ammunition/shotgun-ammo classtext-xl font-bold>All Shotgun Ammo svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> /ul> /details> details classborder-b-2 border-black> summary classbg-cyan-900 text-white uppercase text-xl font-semibold text-center p-4 cursor-pointer border-b-2 border-black> span classfont-semibold inline-block>Clothing svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>path dM20.38 3.46 16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z/>/svg> /span> /summary> ul classml-8 border-b border-black text-center> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Accessories/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/accessories classtext-xl font-bold>All Clothing Accessories svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/accessories/belts classtext-xl font-bold>Belts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/accessories/coveralls classtext-xl font-bold>Coveralls svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/accessories/underwear classtext-xl font-bold>Underwear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/accessories/wallets classtext-xl font-bold>Wallets svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Footwear/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/footwear classtext-xl font-bold>All Footwear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/footwear/boots classtext-xl font-bold>Boots svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/footwear/socks classtext-xl font-bold>Socks svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Gloves/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/gloves classtext-xl font-bold>All Gloves svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/gloves/tactical-gloves classtext-xl font-bold>Tactical Gloves svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/gloves/work-gloves classtext-xl font-bold>Work Gloves svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Headwear/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/head-wear classtext-xl font-bold>All Headwear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/head-wear/bandannas classtext-xl font-bold>Bandannas svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/head-wear/baseball-caps classtext-xl font-bold>Baseball Caps svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/head-wear/boonie-hats classtext-xl font-bold>Boonie Hats svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/head-wear/camo-hats classtext-xl font-bold>Camo Hats svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/head-wear/cold-weather classtext-xl font-bold>Cold Weather Hats svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/head-wear/shemaghs classtext-xl font-bold>Shemaghs svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Jackets/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/jackets classtext-xl font-bold>All Jackets svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/jackets/bomber-and-flight-jackets classtext-xl font-bold>Bomber & Flight svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/jackets/concealed-carry-jackets classtext-xl font-bold>Concealed Carry svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/jackets/field-jackets classtext-xl font-bold>Field svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/jackets/hoodies classtext-xl font-bold>Hoodies svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/jackets/parkas classtext-xl font-bold>Parkas svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Pants/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/pants classtext-xl font-bold>All Pants svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/pants/bdu-pants classtext-xl font-bold>BDU Pants svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/pants/camo-pants classtext-xl font-bold>Camo Pants svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/pants/vintage-pants classtext-xl font-bold>Vintage Pants svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Shirts/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/shirts classtext-xl font-bold>All Shirts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/shirts/camo-shirts classtext-xl font-bold>Camo Shirts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/shirts/flannel classtext-xl font-bold>Flannel Shirts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/shirts/polo-shirts classtext-xl font-bold>Polo Shirts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/shirts/t-shirts classtext-xl font-bold>T-Shirts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/shirts/thermal-shirts classtext-xl font-bold>Thermal Shirts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/shirts/vintage-shirts classtext-xl font-bold>Vintage Shirts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Shorts/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/clothing/shorts classtext-xl font-bold>All Shorts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/shorts/bdu-shorts classtext-xl font-bold>BDU Shorts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/shorts/camo-shorts classtext-xl font-bold>Camo Shorts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/clothing/shorts/vintage-shorts classtext-xl font-bold>Vintage Shorts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> /ul> /details> details classborder-b-2 border-black> summary classbg-cyan-900 text-white uppercase text-xl font-semibold text-center p-4 cursor-pointer border-b-2 border-black> span classfont-semibold inline-block>Gear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>path dM3 2v1c0 1 2 1 2 2S3 6 3 7s2 1 2 2-2 1-2 2 2 1 2 2/>path dM18 6h.01/>path dM6 18h.01/>path dM20.83 8.83a4 4 0 0 0-5.66-5.66l-12 12a4 4 0 1 0 5.66 5.66Z/>path dM18 11.66V22a4 4 0 0 0 4-4V6/>/svg> /span> /summary> ul classml-8 border-b border-black text-center> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Bags & Packs/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/bags-and-packs classtext-xl font-bold>All Bags & Packs svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/bags-and-packs/daypacks classtext-xl font-bold>Day Packs svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/bags-and-packs/duffel-bags classtext-xl font-bold>Duffle Bags svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/bags-and-packs/messenger-bags classtext-xl font-bold>Messenger Bags svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/bags-and-packs/tactical-backpacks classtext-xl font-bold>Tactical Backpacks svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/bags-and-packs/tool-bags classtext-xl font-bold>Tool Bags svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Knives/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives classtext-xl font-bold>All Knives svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives/automatic-knives classtext-xl font-bold>Automatic Knives svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives/butterfly-knives classtext-xl font-bold>Butterfly Knives svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives/fixed-blade-knives classtext-xl font-bold>Fixed Blade Knives svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives/folding-knives classtext-xl font-bold>Folding Knives svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives/specialty-knives classtext-xl font-bold>Specialty Knives svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Morale Patches/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/morale-patches classtext-xl font-bold>All Morale Patches svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/morale-patches/flag-patches classtext-xl font-bold>Flag Patches svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Survival Gear/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/safety-and-security classtext-xl font-bold>All Survival Gear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/safety-and-security/gas-masks classtext-xl font-bold>Gas Masks & Filters svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/outdoors/paracord classtext-xl font-bold>Paracord svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/safety-and-security/survival/whistles classtext-xl font-bold>Whistles svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Self Defense/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/police-batons classtext-xl font-bold>Batons svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/pepper-spray classtext-xl font-bold>Pepper Spray svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/tasers classtext-xl font-bold>Stun Guns svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Tactical Gear/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/tactical-gear classtext-xl font-bold>All Tactical Gear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/body-armor classtext-xl font-bold>Body Armor svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/safety-and-security/entry-tools classtext-xl font-bold>Entry Tools svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/handcuffs classtext-xl font-bold>Handcuffs svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/safety-and-security/lock-pick-tools classtext-xl font-bold>Lock Pick Tools svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/training classtext-xl font-bold>Training Gear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/tactical-vests classtext-xl font-bold>Vests svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> /ul> /details> details classborder-b-2 border-black> summary classbg-cyan-900 text-white uppercase text-xl font-semibold text-center p-4 cursor-pointer border-b-2 border-black> span classfont-semibold inline-block>Guns svg xmlnshttp://www.w3.org/2000/svg width36 height36 strokecurrentColor classinline-block ml-6 viewBox0 0 72 56>defs>style>.cls-1{fill:#0d0d0d;}/style>/defs>title>gun/title>path classcls-1 dM12.31,45.37a1.63,1.63,0,0,1,.39-2.31l10.28-8c-.85-1.23.15-1.65.15-1.65l-.83-2.2c-.74-1.53.7-3,.7-3l8.83-6.51a2.66,2.66,0,0,1,3.76.72l1.78-1a1.45,1.45,0,0,1,.52-2l9.44-7.48V8.5c.11-1.88,1.1-1.1,1.1-1.1l3.15,3.1s6.83-5.79,7.31-6.22.91.31.91.31.4.47.15.75-6.56,6-6.56,6l.18,1.53-.57.63-1-1-1.71,1.63a2.53,2.53,0,0,1-.61,2.38l-7.4,7.77c-1.35,1.13-2,.31-2,.31L38.78,26.2c-.63.94,2.15,3.31,2.15,3.31l-.25.68A27.55,27.55,0,0,0,48.2,35.6l-3.32,5.07A20.41,20.41,0,0,1,38,35.92L35.17,37.5c-2.52,1.87-2.06,3.09-2.06,3.09L33.58,44c1.7.79.31,1.53.31,1.53l-2.63,1.2c-1.74,1.1-1.7-.29-1.7-.29l-.22-6.7c-1.06-2.41-2.64-1.22-2.64-1.22a31.25,31.25,0,0,0-5,5.61L21.17,50c-1,2.87-2.74,1.52-2.74,1.52l-4.32-4.34Z/>/svg> /span> /summary> ul classml-8 border-b border-black text-center> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Class 3 / NFA/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/firearms/nfa classtext-xl font-bold>All Class 3 / NFA svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/firearms/nfa/machine-guns classtext-xl font-bold>Machine Guns svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/firearms/nfa/short-barrel-shotguns classtext-xl font-bold>Short Barrel Shotguns svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/firearms/nfa/short-barrel-rifles classtext-xl font-bold>Short Barrel Rifles svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/firearms/nfa/silencers classtext-xl font-bold>Suppressors / Silencers svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Handguns/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/firearms/pistols classtext-xl font-bold>All Handguns svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/brands/glock/glock-handguns classtext-xl font-bold>Glock Handguns svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Shotguns/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/firearms/shotguns classtext-xl font-bold>All Shotguns svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/brands/mossberg/mossberg-shotguns classtext-xl font-bold>Mossberg Shotguns svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Rifles/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/firearms/rifles classtext-xl font-bold>All Rifles svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> /ul> /details> details classborder-b-2 border-black> summary classbg-cyan-900 text-white uppercase text-xl font-semibold text-center p-4 cursor-pointer border-b-2 border-black> span classfont-semibold inline-block>Gun Parts & Accessories svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 512 512 strokecurrentColor width36 height36 classinline-block ml-6>path dM0 0h512v512H0z/>path fill#fff dM146.8 41c-.2 10.26-.6 20.25-1.3 30h175.3c.3-9.83.4-19.82.2-30H146.8zM144 89C131.1 214.5 76.78 297.9 21.96 367.2L137.3 482.6C239.3 357.1 310.3 244.5 320 89h-29.2c-2.2 49-22 109.8-48.6 168.7-26.9 59.5-60.9 117-92.2 157.6l-12.8-12.8c29.7-39.1 62.7-94.9 88.6-152.2 25.9-57.4 44.7-116.6 47-161.3h-30c-2.2 49-22 109.8-48.6 168.7-21.2 46.9-46.8 92.6-72.1 129.7l-12.9-13c23.9-35.6 48.4-79.4 68.6-124.1 25.9-57.4 44.7-116.6 47-161.3h-30c-2.2 49-22 109.8-48.6 168.7-15.9 35.3-34.3 69.8-53.2 100.5l-13.1-13.1c17.6-29.2 35-61.7 49.9-94.8 25.9-57.4 44.7-116.6 47-161.3H144zm192 149c-1 2.4-2.1 5.2-3.2 8.7-3.5 11.3-7 27.1-10 43-4 21.3-6.9 41.8-8.5 53.3h43.4c-1.6-11.5-4.5-32-8.5-53.3-3-15.9-6.5-31.7-10-43-1.1-3.5-2.2-6.3-3.2-8.7zm64 0c-1 2.4-2.1 5.2-3.2 8.7-3.5 11.3-7 27.1-10 43-4 21.3-6.9 41.8-8.5 53.3h43.4c-1.6-11.5-4.5-32-8.5-53.3-3-15.9-6.5-31.7-10-43-1.1-3.5-2.2-6.3-3.2-8.7zm64 0c-1 2.4-2.1 5.2-3.2 8.7-3.5 11.3-7 27.1-10 43-4 21.3-6.9 41.8-8.5 53.3h43.4c-1.6-11.5-4.5-32-8.5-53.3-3-15.9-6.5-31.7-10-43-1.1-3.5-2.2-6.3-3.2-8.7zM313 361v126h46V361h-46zm64 0v126h46V361h-46zm64 0v126h46V361h-46z/>/svg> /span> /summary> ul classml-8 border-b border-black text-center> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Magazines & Clips/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/shooting/magazines classtext-xl font-bold>All Magazines & Clips svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/magazines/type/handgun classtext-xl font-bold>Handgun Magazines svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/magazines/type/rifle classtext-xl font-bold>Rifle Magazines svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/magazines/type/shotgun classtext-xl font-bold>Shotgun Magazines svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/magazines/military-surplus-mags classtext-xl font-bold>Military Surplus Magazines svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/magazines/ak47-mags classtext-xl font-bold>AK-47 Magazines svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/magazines/ar15-mags classtext-xl font-bold>AR-15 Magazines svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/magazines/m14-mags classtext-xl font-bold>M-14 Magazines svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/magazines/glock-mags classtext-xl font-bold>Glock Magazines svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/magazines/ruger-mags classtext-xl font-bold>Ruger Magazines svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Gun Parts/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/shooting/gun-parts classtext-xl font-bold>All Gun Parts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-parts/1911-parts classtext-xl font-bold>1911 Parts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-parts/ar-parts classtext-xl font-bold>AR-15 Parts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-parts/glock-parts classtext-xl font-bold>Glock Parts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-parts/hk-parts classtext-xl font-bold>HK Parts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-parts/m14-parts classtext-xl font-bold>M-14 Parts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-parts/military-surplus-parts classtext-xl font-bold>Military Surplus Parts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-parts/ruger-parts classtext-xl font-bold>Ruger Parts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-parts/walther-parts classtext-xl font-bold>Walther Parts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Maintenance & Cleaning/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/gun-cleaning classtext-xl font-bold>All Maintenance & Cleaning svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/gun-cleaning/kits classtext-xl font-bold>Cleaning Kits svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/gun-cleaning/tools classtext-xl font-bold>Cleaning Tools svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gunsmith-tools classtext-xl font-bold>Gunsmith Tools svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Accessories/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/pistol-accessories classtext-xl font-bold>All Handgun Accessories svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/rifle-accessories classtext-xl font-bold>All Rifle Accessories svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/rifle-accessories/bipods classtext-xl font-bold>Bipods svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/pistol-accessories/holsters classtext-xl font-bold>Holsters svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/rifle-accessories/slings classtext-xl font-bold>Slings svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/thread-adapters classtext-xl font-bold>Thread Adapters svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Optics/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/optics classtext-xl font-bold>All Optics svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/optics/laser-boresights classtext-xl font-bold>Laser Bore Sights svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/optics/laser-sights classtext-xl font-bold>Laser Sights svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/optics/scope-mounts-and-rings classtext-xl font-bold>Mounts & Rings svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/optics/red-dot-sights classtext-xl font-bold>Red Dot Sights svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/optics/weapon-lights classtext-xl font-bold>Weapon Lights svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Safety & Training/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/shooting/shooting-safety-training classtext-xl font-bold>All Safety & Training svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/books-and-videos classtext-xl font-bold>Books & Videos svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/shooting-safety-training/snap-caps classtext-xl font-bold>Snap Caps svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/shooting/shooting-safety-training/training-guns classtext-xl font-bold>Training Guns svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> /ul> /details> details classborder-b-2 border-black> summary classbg-cyan-900 text-white uppercase text-xl font-semibold text-center p-4 cursor-pointer border-b-2 border-black> span classfont-semibold inline-block>Military Surplus svg width36 height36 classinline-block ml-6 viewBox0 0 48 48 fillnone xmlnshttp://www.w3.org/2000/svg> path dM23.8268 9.12528C23.8811 8.95824 24.1173 8.95824 24.1716 9.12528L24.6657 10.6458C24.69 10.7205 24.7596 10.771 24.8381 10.771H26.4369C26.6124 10.771 26.6855 10.9957 26.5434 11.0989L25.25 12.0387C25.1865 12.0849 25.1598 12.1666 25.1841 12.2413L25.6782 13.7619C25.7324 13.9288 25.5413 14.0678 25.3992 13.9646L24.1058 13.0248C24.0423 12.9786 23.9563 12.9786 23.8927 13.0248L22.5993 13.9646C22.4572 14.0678 22.266 13.9288 22.3203 13.7619L22.8144 12.2413C22.8386 12.1666 22.8121 12.0849 22.7486 12.0387L21.4551 11.0989C21.313 10.9957 21.386 10.771 21.5616 10.771H23.1604C23.2389 10.771 23.3085 10.7205 23.3328 10.6458L23.8268 9.12528Z fillcurrentColor/> path fill-ruleevenodd clip-ruleevenodd dM16.0225 19.3959C15.4716 19.5631 14.9064 19.7464 14.3243 19.9459C13.8866 20.096 13.4031 19.9262 13.1554 19.5353C12.9077 19.1446 12.9604 18.635 13.2827 18.3033L13.2904 18.2951C13.2987 18.2863 13.3125 18.2714 13.3311 18.251C13.3682 18.2101 13.424 18.147 13.4922 18.0652C13.6295 17.9005 13.8125 17.665 13.9942 17.3847C14.3777 16.793 14.6667 16.1361 14.6667 15.5714C14.6667 10.312 18.819 6 24 6C29.181 6 33.3333 10.312 33.3333 15.5714C33.3333 16.1361 33.6223 16.793 34.0058 17.3847C34.1875 17.665 34.3705 17.9005 34.5078 18.0652C34.576 18.147 34.6318 18.2101 34.6689 18.251C34.6713 18.2536 34.6735 18.256 34.6757 18.2584C34.6909 18.2751 34.7023 18.2874 34.7096 18.2951L34.7173 18.3033C35.0396 18.635 35.0923 19.1446 34.8447 19.5353C34.5969 19.9262 34.1134 20.096 33.6757 19.9459C33.0937 19.7464 32.5284 19.5631 31.9775 19.3959C31.9924 19.5955 32 19.7969 32 20C32 24.4183 28.4183 28 24 28C19.5817 28 16 24.4183 16 20C16 19.7969 16.0076 19.5955 16.0225 19.3959ZM16.6667 15.5714C16.6667 11.3631 19.9763 8 24 8C28.0237 8 31.3333 11.3631 31.3333 15.5714C31.3333 16.1583 31.4752 16.7211 31.6739 17.2238C29.2957 16.5569 27.1082 16.1748 24.9323 16.0897C24.6215 16.0775 24.3109 16.0714 24 16.0714C23.5826 16.0714 23.1656 16.0824 22.748 16.1043C20.6771 16.2129 18.5879 16.5895 16.3261 17.2238C16.5248 16.7211 16.6667 16.1583 16.6667 15.5714ZM18.1153 18.8227C18.0397 19.2028 18 19.5963 18 20C18 23.3137 20.6863 26 24 26C27.3137 26 30 23.3137 30 20C30 19.5963 29.9603 19.2027 29.8847 18.8227C28.2748 18.4331 26.771 18.1971 25.297 18.1099C24.8627 18.0842 24.431 18.0714 24 18.0714C23.6275 18.0714 23.2546 18.081 22.8799 18.1002C21.3493 18.1785 19.7896 18.4175 18.1153 18.8227Z fillcurrentColor/> path fill-ruleevenodd clip-ruleevenodd dM35 24L40 21.1429V9H42V32L35 29V24ZM40 23.4464L37 25.1606V27.6812L40 28.9669V23.4464Z fillcurrentColor/> path dM12.1424 29.3384C12.6362 29.0912 12.8362 28.4904 12.5889 27.9965C12.3417 27.5027 11.7409 27.3028 11.247 27.55L7.5523 29.3998C7.05845 29.6471 6.85854 30.2478 7.10579 30.7417C7.35304 31.2355 7.95382 31.4354 8.44766 31.1882L12.1424 29.3384Z fillcurrentColor/> path dM12.1056 35.5528C12.3526 35.0588 12.9532 34.8586 13.4472 35.1056L15 35.882L16.5528 35.1056C17.0468 34.8586 17.6474 35.0588 17.8944 35.5528C18.1414 36.0468 17.9412 36.6474 17.4472 36.8944L15.4472 37.8944C15.1657 38.0352 14.8343 38.0352 14.5528 37.8944L12.5528 36.8944C12.0588 36.6474 11.8586 36.0468 12.1056 35.5528Z fillcurrentColor/> path fill-ruleevenodd clip-ruleevenodd dM42 36.5C42 32.4407 31.0755 29.8827 23.4706 30.0066C16.2579 30.1242 6 32.4407 6 36.5V42H42V36.5ZM23.5032 32.0064C26.5179 31.9573 30.1021 32.3566 33.2226 33.1113L31.156 40H8V36.5C8 36.4117 8.04793 36.0274 8.90015 35.4008C9.72521 34.7943 11.0008 34.2008 12.6361 33.6813C15.8855 32.6489 20.0556 32.0626 23.5032 32.0064ZM35.151 33.6434L33.244 40H40V36.5C40 36.458 39.9676 36.0593 39.0191 35.3882C38.1468 34.771 36.8227 34.1682 35.151 33.6434Z fillcurrentColor/> /svg> /span> /summary> ul classml-8 border-b border-black text-center> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Bags & Packs/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/military-surplus/bags-and-packs classtext-xl font-bold>All Bags & Packs svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/bags-and-packs/rucksacks classtext-xl font-bold>Rucksacks svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Clothing/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/military-surplus/clothing classtext-xl font-bold>All Clothing svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/clothing/accessories classtext-xl font-bold>Accessories svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/clothing/coveralls classtext-xl font-bold>Coveralls svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/clothing/gloves classtext-xl font-bold>Gloves svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/hats-and-caps classtext-xl font-bold>Hats svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/clothing/jackets classtext-xl font-bold>Jackets svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/clothing/pants classtext-xl font-bold>Pants svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/hats-and-caps/scarfs classtext-xl font-bold>Scarves svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/clothing/shirts classtext-xl font-bold>Shirts svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Collectibles/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles classtext-xl font-bold>All Collectibles svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/bayonets classtext-xl font-bold>Bayonets svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/books classtext-xl font-bold>Books svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/flags classtext-xl font-bold>Flags svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/helmets classtext-xl font-bold>Helmets svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/inert-ordnance classtext-xl font-bold>Inert Ordnance svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/knives classtext-xl font-bold>Knives svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/patches-and-insignia classtext-xl font-bold>Patches & Medals svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/religious classtext-xl font-bold>Religious svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/signs classtext-xl font-bold>Signs svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/vintage classtext-xl font-bold>Vintage svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Field Gear/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/military-surplus/field-gear classtext-xl font-bold>All Field Gear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/blankets classtext-xl font-bold>Blankets svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/canteens classtext-xl font-bold>Canteens svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/first-aid classtext-xl font-bold>First Aid svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/mess-kits classtext-xl font-bold>Mess Kits svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/nets classtext-xl font-bold>Nets svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/shovels classtext-xl font-bold>Shovels svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/sleeping-bags classtext-xl font-bold>Sleeping Bags svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/tents classtext-xl font-bold>Tents svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Footwear/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/military-surplus/footwear classtext-xl font-bold>All Footwear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/clothing/military-surplus-socks classtext-xl font-bold>Socks svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Tactical Gear/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/military-surplus/tactical-gear classtext-xl font-bold>All Tactical Gear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/tactical-gear/body-armor classtext-xl font-bold>Body Armor svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/tactical-gear/gas-masks classtext-xl font-bold>Gas Masks svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/tactical-gear/goggles classtext-xl font-bold>Goggles svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/tactical-gear/molle-gear classtext-xl font-bold>MOLLE Gear & Pouches svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/military-surplus/tactical-gear/training-gear classtext-xl font-bold>Training Gear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> /ul> /details> details classborder-b-2 border-black> summary classbg-cyan-900 text-white uppercase text-xl font-semibold text-center p-4 cursor-pointer border-b-2 border-black> span classfont-semibold inline-block>Outdoors svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-6>circle cx4 cy4 r2/>path dm14 5 3-3 3 3/>path dm14 10 3-3 3 3/>path dM17 14V2/>path dM17 14H7l-5 8h20Z/>path dM8 14v8/>path dm9 14 5 8/>/svg> /span> /summary> ul classml-8 border-b border-black text-center> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Camping/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/outdoors/camping classtext-xl font-bold>All Camping svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/outdoors/camping/blankets classtext-xl font-bold>Blankets svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/outdoors/camping/mess-kits classtext-xl font-bold>Mess Kits svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/outdoors/camping/camping-stoves classtext-xl font-bold>Stoves svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/outdoors/camping/sleeping-bags classtext-xl font-bold>Sleeping Bags svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/outdoors/camping/water-purification classtext-xl font-bold>Water Purification svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Compasses/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/outdoors/compasses classtext-xl font-bold>All Compasses svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Eyewear/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/eyewear classtext-xl font-bold>All Eyewear svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/eyewear/tactical-goggles classtext-xl font-bold>Goggles svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/eyewear/sunglasses classtext-xl font-bold>Sun Glasses svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Flashlights/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/flashlights classtext-xl font-bold>All Flashlights svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> li> details classborder-b-2 border-black> summary classbg-gray-100 p-3 rounded-lg cursor-pointer> span classfont-semibold>Tools/span> /summary> div classbg-white text-black p-4 text-center border-b border-t border-black> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/axes-and-tomahawks classtext-xl font-bold>Axes & Tomahawks svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokeblack stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/machetes classtext-xl font-bold>Machetes svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/multitools classtext-xl font-bold>Multitools svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> /details> /li> /ul> /details> details classborder-b-2 border-black> summary classbg-cyan-900 text-white uppercase text-xl font-semibold text-center p-4 cursor-pointer border-b-2 border-black> span classfont-semibold inline-block>More Ways To Shop svg xmlnshttp://www.w3.org/2000/svg width24 height24 classinline-block ml-6 viewBox0 0 24 24 fillnone stroke-width1.5 stroke-linecapround stroke-linejoinround colorcurrentColor>path dM8 16L16.7201 15.2733C19.4486 15.046 20.0611 14.45 20.3635 11.7289L21 6 strokecurrentColor>/path>path dM6 6H8.5M22 6H18.5 strokecurrentColor>/path>path dM11 8.5C11.4915 9.0057 12.7998 11 13.5 11M16 8.5C15.5085 9.0057 14.2002 11 13.5 11M13.5 11V3 strokecurrentColor>/path>circle cx6 cy20 r2 strokecurrentColor>/circle>circle cx17 cy20 r2 strokecurrentColor>/circle>path dM8 20L15 20 strokecurrentColor>/path>path dM2 2H2.966C3.91068 2 4.73414 2.62459 4.96326 3.51493L7.93852 15.0765C8.08887 15.6608 7.9602 16.2797 7.58824 16.7616L6.63213 18 strokecurrentColor>/path>/svg> /span> /summary> ul classml-8 border-b border-gray-500 text-center> li> div classbg-white text-black p-4 border-b border-black> a hrefhttps://www.keepshooting.com/new-products classtext-xl font-bold inline-block>New Products svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/prime classtext-xl font-bold>One of a Kind Items svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /div> div classbg-white text-black p-4 text-center border-b border-black> a hrefhttps://www.keepshooting.com/collections/black-friday classtext-xl font-bold>Current Sale Items svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block ml-4>circle cx12 cy12 r10/>path dM8 12h8/>path dm12 16 4-4-4-4/>/svg> /a> /li> /ul> /details>/div> /div> /li> /ul> div classflex justify-end px-3 border-b border-container> button @clickcloseMenu classflex justify-center items-center w-16 h-16 aria-labelClose menu typebutton > svg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width24 height24> path stroke-linecapround stroke-linejoinround dM6 18L18 6M6 6l12 12/>/svg> /button> /div> /div> /div> /nav> /div> div x-refsearchContainerMobile classcontainer lg:hidden py-4> div x-refsearchForm> script> function initMiniSearchComponent() { use strict; return { show:false, formSelector: #search_mini_form, url: https://www.keepshooting.com/search/ajax/suggest/, destinationSelector: #search_autocomplete, templates: {term:{title:Search terms,template:Hyva_SmileElasticsuite::core\/autocomplete\/term.phtml},product:{title:Products,template:Hyva_SmileElasticsuite::catalog\/autocomplete\/product.phtml},category:{title:Categories,template:Hyva_SmileElasticsuite::catalog\/autocomplete\/category.phtml},product_attribute:{title:Attributes,template:Hyva_SmileElasticsuite::catalog\/autocomplete\/product_attribute.phtml,titleRenderer:renderEsAutocompleteTitleAttribute},cms_page:{title:Cms page,template:Hyva_SmileElasticsuite::cms-search\/autocomplete\/cms.phtml}}, priceFormat: {pattern:$%s,precision:2,requiredPrecision:2,decimalSymbol:.,groupSymbol:,,groupLength:3,integerRequired:false}, minSearchLength: 2, searchResultsByType: {}, currentRequest: null, /** * Get search results. */ getSearchResults: function () { let value document.querySelector(#search).value.trim(); if (value.length parseInt(this.minSearchLength, 10)) { this.searchResultsByType ; return false; } let url this.url + ? + new URLSearchParams({ q: document.querySelector(#search).value, _: Date.now() }).toString(); if (this.currentRequest ! null) { this.currentRequest.abort(); } this.currentRequest new AbortController(); fetch(url, { method: GET, signal: this.currentRequest.signal, }).then((response) > { if (response.ok) { return response.json(); } }).then((data) > { this.show data.length > 0; this.searchResultsByType data.reduce((acc, result) > { if (! accresult.type) accresult.type ; accresult.type.push(result); return acc; }, {}); }).catch((error) > { ; }); }, } }/script>div idelasticsuite-search-container x-showtrue> div classcontainer py-2 mx-auto text-black x-datainitMiniSearchComponent() @click.awayshow false> form classform minisearch idsearch_mini_form actionhttps://www.keepshooting.com/catalogsearch/result/ methodget rolesearch> div classrelative> label classsr-only forsearch> Search entire store here... /label> input idsearch x-on:input.debouncegetSearchResults() x-refsearchInput typesearch classw-full p-2 text-lg leading-normal transition appearance-none text-grey-800 focus:outline-none focus:border-transparent lg:text-xl autocapitalizeoff autocompleteoff autocorrectoff nameq value placeholderSearch entire store here... maxlength128 @search-open.window.debounce.10 $el.focus(); $el.select(); /> /div> div idsearch_autocomplete classsearch-autocomplete relative w-full x-showshow styledisplay:none;> div classabsolute bg-white border border-solid border-black z-50 w-full grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4> template x-forsearchResultByType in Object.values(searchResultsByType)> div class> template x-ifsearchResultByType.hasOwnProperty(0) && templatessearchResultByType0.type.title && templatessearchResultByType0.type.titleRenderer undefined> div classfont-bold pt-2 pl-2 text-center x-texttemplatessearchResultByType0.type.title>/div> /template> template x-ifsearchResultByType.hasOwnProperty(0) && templatessearchResultByType0.type.titleRenderer ! undefined> div classfont-bold pt-2 pl-2 text-center x-textwindowtemplatessearchResultByType0.type.titleRenderer(searchResultByType)>/div> /template> template x-forsearchResult in searchResultByType> div classhover:bg-gray-100> template x-ifsearchResult.type term> a classw-full block p-2 x-bind:hrefhttps://www.keepshooting.com/catalogsearch/result/?q + searchResult.title :titlesearchResult.title> span classtext-sm x-textsearchResult.title>/span> span classtext-sm x-text( + searchResult.num_results + )>/span> /a>/template> template x-ifsearchResult.type product> a classw-full block :hrefsearchResult.url :titlesearchResult.title> div classgrid grid-cols-4 gap-4 p-3> div> img :srcsearchResult.image classinline-block /> /div> div classcol-span-3> span classtext-sm x-textsearchResult.title>/span> span classtext-sm font-bold x-htmlsearchResult.price>/span> /div> /div> /a>/template> template x-ifsearchResult.type category> a classw-full block p-2 :hrefsearchResult.url :titlesearchResult.title> span classtext-sm italic block text-gray-500 x-textsearchResult.breadcrumb.join( > ).concat( > )>/span> span classtext-sm x-textsearchResult.title>/span> /a>/template> template x-ifsearchResult.type product_attribute> a classw-full block p-2 :hrefsearchResult.url :titlesearchResult.title> span classtext-sm x-textsearchResult.title>/span> span classtext-xs uppercase text-gray-500 x-textsearchResult.attribute_label stylevertical-align: super;>/span> /a>/template>script> function renderEsAutocompleteTitleAttribute(data) { data data.filter(function(item) { return item.type product_attribute; }).map(function(item) { return itemattribute_label }).reduce(function(prev, item) { if (item in prev) { previtem++; } else { previtem 1; } return prev; }, {}); data Object.entries(data).sort(function(item1, item2) { return item21 - item11 }).map(function(item) {return item0}); if (data.length > 2) { data data.slice(0, 2); data.push(...); } return data.join(, ); }/script> template x-ifsearchResult.type cms_page> a classw-full block p-2 :hrefsearchResult.url :titlesearchResult.title> span classtext-sm x-textsearchResult.title>/span> /a>/template> /div> /template> /div> /template> /div> /div> /form> /div>/div> /div> /div> /div> script> function initCartDrawer() { return { open: false, isLoading: false, cart: {}, maxItemsToDisplay: 10, itemsCount: 0, showSku: true, getData(data) { if (data.cart) { this.cart data.cart; this.itemsCount data.cart.items && data.cart.items.length || 0; this.setCartItems(); } this.isLoading false; }, cartItems: , getItemCountTitle() { return hyva.strf(\u00250\u0020of\u0020\u00251\u0020products\u0020in\u0020cart\u0020displayed, this.maxItemsToDisplay, this.itemsCount) }, setCartItems() { this.cartItems this.cart.items && this.cart.items.sort((a, b) > b.item_id - a.item_id) || ; if (this.maxItemsToDisplay > 0) { this.cartItems this.cartItems.slice(0, parseInt(this.maxItemsToDisplay, 10)); } }, updateItemQty(form) { if (!form.action) return; this.isLoading true; const action form.action; const formData new FormData(form); formData.append(form_key, hyva.getFormKey()); if (!formData.uenc) { formData.append(uenc, hyva.getUenc()); } fetch(action, { body: formData, method: POST, mode: cors, credentials: include }).then((result) > { return result.text() }).then((content) > { window.dispatchEvent(new CustomEvent(reload-customer-section-data)); }).catch((error) > { window.dispatchMessages && window.dispatchMessages({ type: error, text: Something\u0020went\u0020wrong.\u0020Please\u0020try\u0020again. }); }).finally(() > { this.isLoading false; }) }, deleteItemFromCart(itemId) { this.isLoading true; const formKey hyva.getFormKey(); const postUrl BASE_URL + checkout/sidebar/removeItem/; fetch(postUrl, { headers: { content-type: application/x-www-form-urlencoded; charsetUTF-8, }, body: form_key + formKey + &item_id + itemId, method: POST, mode: cors, credentials: include }).then(response > { if (response.redirected) { window.location.href response.url; } else if (response.ok) { return response.json(); } else { window.dispatchMessages && window.dispatchMessages({ type: warning, text: Could\u0020not\u0020remove\u0020item\u0020from\u0020quote. }); this.isLoading false; } }).then(result > { window.dispatchMessages && window.dispatchMessages({ type: result.success ? success : error, text: result.success ? You\u0020removed\u0020the\u0020item. : result.error_message }, result.success ? 5000 : 0) window.dispatchEvent(new CustomEvent(reload-customer-section-data)); }); }, toggleCartDrawer(event) { if (event.detail && event.detail.isOpen) { this.open event.detail.isOpen; } else { this.open !this.open; } this.calcCartDrawerAnchor(); }, openCartDrawer() { this.open true; this.calcCartDrawerAnchor(); }, closeCartDrawer() { this.open false; }, getSectionDataExtraActions() { if (!this.cart.extra_actions || typeof hyva.activateScripts undefined) { return ; } const contentNode document.createElement(div); contentNode.innerHTML this.cart.extra_actions; hyva.activateScripts(contentNode); return contentNode.innerHTML; }, calcCartDrawerAnchor() { const btn this.$refs.cartButton ? this.$refs.cartButton.getBoundingClientRect() : {}; const scrollOffset window.pageYOffset || document.documentElement.scrollTop; const btnOffset btn.top && (btn.top + btn.height); const offsetTop btnOffset ? `${btnOffset 0 ? btnOffset + scrollOffset : btnOffset}px` : 1rem; const offsetRight btn.right ? `${Math.floor((window.innerWidth - btn.right) + (btn.width / 4))}px` : 1rem; const drawer this.$refs.cartDialogContent; drawer.style.setProperty(--cart-drawer-offset-top, offsetTop); drawer.style.setProperty(--cart-drawer-offset-right, offsetRight); }, cartListeners: { @private-content-loaded.window(event) { this.getData(event.detail.data); }, @toggle-cart.window(event) { this.toggleCartDrawer(event); }, @keydown.window.escape() { this.$dispatch(toggle-cart, { isOpen: false }) }, @click.outside(event) { this.$dispatch(toggle-cart, { isOpen: false }) }, @resize.window.debounce() { if (!this.open) return; this.calcCartDrawerAnchor(); } } } }/script>section idcart-drawer aria-labelledbycart-drawer-title classflex flex-col gap-y-8 mt-5 py-6 px-4 &_>*:px-2 max-w-full z-30 absolute top-var(--cart-drawer-offset-top) inset-x-0 md:right-calc(var(--cart-drawer-offset-right,1rem)_-_1rem) md:left-auto max-h-clamp(480px,95vh_-_var(--cart-drawer-offset-top,0px),860px) md:w-420px md:rounded-lg shadow-lg bg-white text-slate-800 border-t-4 border-blue-500 before:border-b-blue-500 before:border-8 before:border-t-transparent before:border-x-transparent before:absolute before:bottom-calc(100%+theme(borderWidth.4)) before:right-var(--cart-drawer-offset-right,1rem) md:before:right-4 x-showopen x-transition.origin.top.right x-refcartDialogContent x-datainitCartDrawer() x-bindcartListeners x-cloak :aria-hidden!open> p idcart-drawer-title classtext-2xl> strong>My Cart/strong> span classitems-total text-xs x-showmaxItemsToDisplay && maxItemsToDisplay itemsCount x-textgetItemCountTitle() >/span> /p> template x-if!itemsCount> div classgrow grid place-items-center md:min-h-340px> div classtext-center> div classmax-w-full max-h-full aspect-square w-44 h-44 inline-flex items-center justify-center rounded-full bg-sky-100 text-blue-400 outline-2 outline-dashed outline-blue-300 outline-offset-8> svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 20 20 fillcurrentColor aria-hiddentrue width120 height120> path dM3 1a1 1 0 000 2h1.22l.305 1.222a.997.997 0 00.01.042l1.358 5.43-.893.892C3.74 11.846 4.632 14 6.414 14H15a1 1 0 000-2H6.414l1-1H14a1 1 0 00.894-.553l3-6A1 1 0 0017 3H6.28l-.31-1.243A1 1 0 005 1H3zM16 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM6.5 18a1.5 1.5 0 100-3 1.5 1.5 0 000 3z/>/svg> /div> p classmt-10 text-xl> strong>Your cart is empty/strong> /p> p classtext-slate-500> Looks like you haven't made your choice yet. /p> /div> /div> /template> template x-ifitemsCount> ul classgrow flex flex-col overflow-y-auto overscroll-y-contain mask-overflow mask-dir-y> template x-foritem in cartItems> li classflex gap-4 md:gap-6 items-start py-7 border-b border-slate-200> a classblock shrink-0 max-w-25% :hrefitem.product_url :titlehyva.str(Product\u0020\u0022\u00251\u0022, item.product_name) > img :srcitem.product_image.src :widthitem.product_image.width :heightitem.product_image.height loadinglazy :althyva.str(Product\u0020\u0022\u00251\u0022, item.product_name) > /a> div classgrow space-y-4> div classflex gap-2 justify-between items-center> p classtext-lg> strong x-htmlitem.product_name>/strong> /p> span class&_.price:font-normal x-htmlitem.product_price>/span> /div> template x-ifitem.options && item.options.length || showSku> dl classtable text-sm> template x-ifshowSku> div classtable-row> dt classtable-cell font-normal text-slate-500 min-w-theme(spacing.16) pr-2 pb-2> Sku /dt> dd classtable-cell font-bold pb-2 x-htmlitem.product_sku>/dd> /div> /template> template x-foroption in item.options> div classtable-row> dt classtable-cell font-normal text-slate-500 min-w-theme(spacing.16) pr-2 pb-2 x-textoption.label >/dt> dd classtable-cell font-bold pb-2 x-htmloption.value>/dd> /div> /template> /dl> /template> div classflex flex-wrap gap-2 justify-between items-center> form actionhttps://www.keepshooting.com/checkout/cart/updatePost/ x-data{ initQty: item.qty, itemQty: item.qty, prevQty: item.qty, updateQty() { const submitEvent new Event(submit, { cancelable: true }); this.$root.dispatchEvent(submitEvent); }, setQtyDefaults() { this.initQty item.qty; this.itemQty item.qty; this.prevQty item.qty; } } @submit.preventupdateItemQty($event.target); x-init$watch(item.qty, () > setQtyDefaults()); methodpost classform form-cart flex gap-1 > input nameform_key typehidden valuexhu87VanXtW2bKGz /> button typebutton @clickitemQty 0 ? itemQty 0 : itemQty-- @click.debounce.1000msupdateQty($event); classbtn p-3 rounded text-slate-900 bg-transparent hover:bg-slate-50 active:bg-slate-100 shadow-none > svg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width20 height20> path stroke-linecapround stroke-linejoinround dM20 12H4/>/svg> /button> label classmb-0> span classsr-only>Qty/span> input typenumber classqty border-slate-300 shadow-none -moz-appearance:textfield form-input py-2.5 px-3.5 w-16 text-center &::-webkit-inner-spin-button:hidden required min0 stepany x-model.numberitemQty :id`minicart-${item.item_id}-qty` :name`cart${item.item_id}qty` @change.debounce.1000msupdateQty($event) > /label> button typebutton @clickitemQty++ @click.debounce.1000msupdateQty($event); classbtn p-3 rounded text-slate-900 bg-transparent hover:bg-slate-50 active:bg-slate-100 shadow-none > svg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width20 height20> path stroke-linecapround stroke-linejoinround dM12 4v16m8-8H4/>/svg> /button> /form> div classinline-flex flex-wrap items-center gap-1> a :hrefitem.configure_url x-showitem.product_type ! grouped classbtn justify-center rounded-full p-2 text-base shadow-none hover:shadow-lg active:shadow transition bg-blue-100 text-blue-700 border border-transparent hover:bg-blue-200 focus:ring-blue-200 active:bg-blue-200 disabled:bg-slate-50 disabled:text-slate-600 disabled:opacity-70 :aria-labelhyva.str( Edit\u0020product\u0020\u0022\u00251\u0022, item.product_name ) > svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 20 20 fillcurrentColor aria-hiddentrue width20 height20> path dM13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z/>/svg> /a> button typebutton classbtn justify-center rounded-full p-2 text-base shadow-none hover:shadow-lg active:shadow disabled:shadow-none transition bg-white text-slate-700 border border-slate-400 hover:bg-white focus:ring-slate-200 disabled:bg-slate-200 disabled:text-slate-200 @clickdeleteItemFromCart(item.item_id) :aria-labelhyva.str( Remove\u0020product\u0020\u0022\u00251\u0022\u0020from\u0020cart, item.product_name ) > svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 20 20 fillcurrentColor aria-hiddentrue width20 height20> path fill-ruleevenodd dM9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z clip-ruleevenodd/>/svg> /button> /div> /div> /div> /li> /template> /ul> /template> template x-ifitemsCount> div> dl classflex gap-2 justify-between items-center text-sm font-bold> dt classtext-slate-500>Subtotal/dt> dd x-htmlcart.subtotal>/dd> /dl> div classflex flex-col gap-y-4 mt-8> a @click.prevent.stopcloseCartDrawer; $dispatch( toggle-authentication, { url: https://www.keepshooting.com/checkout/ } ); hrefhttps://www.keepshooting.com/checkout/ classbtn justify-center rounded-md py-3 px-6 text-base shadow-none hover:shadow-lg active:shadow transition bg-blue-600 text-white border border-transparent hover:bg-blue-700 focus:ring-blue-200 active:bg-blue-700 disabled:bg-blue-200 disabled:text-blue-50 > Checkout /a> a hrefhttps://www.keepshooting.com/checkout/cart/ classbtn justify-center rounded-md py-3 px-6 text-base shadow-none hover:shadow-lg active:shadow transition bg-white text-blue-700 border border-blue-400 hover:bg-white focus:ring-blue-200 disabled:bg-slate-200 disabled:text-blue-200 > View and Edit Cart /a> div x-htmlgetSectionDataExtraActions()>/div> /div> /div> /template> template x-if!itemsCount> div classflex flex-col> button typebutton @clickcloseCartDrawer classbtn justify-center rounded-md py-3 px-6 text-base shadow-none hover:shadow-lg active:shadow transition bg-blue-600 text-white border border-transparent hover:bg-blue-700 focus:ring-blue-200 active:bg-blue-700 disabled:bg-blue-200 disabled:text-blue-50 >Continue shopping/button> /div> /template> div classflex flex-row justify-center items-center w-full h-full fixed select-none z-50 styleleft: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgba(255,255,255,0.7); x-showisLoading x-transition:enterease-out duration-200 x-transition:enter-startopacity-0 x-transition:enter-endopacity-100 x-transition:leaveease-in duration-200 x-transition:leave-startopacity-100 x-transition:leave-endopacity-0> !-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL -->svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 57 57 strokecurrentColor classtext-primary width57 height57 roleimg> g fillnone fill-ruleevenodd> g transformtranslate(1 1) stroke-width2> circle cx5 cy50 r5> animate attributeNamecy begin0s dur2.2s values50;5;50;50 calcModelinear repeatCountindefinite/> animate attributeNamecx begin0s dur2.2s values5;27;49;5 calcModelinear repeatCountindefinite/> /circle> circle cx27 cy5 r5> animate attributeNamecy begin0s dur2.2s from5 to5 values5;50;50;5 calcModelinear repeatCountindefinite/> animate attributeNamecx begin0s dur2.2s from27 to27 values27;49;5;27 calcModelinear repeatCountindefinite/> /circle> circle cx49 cy50 r5> animate attributeNamecy begin0s dur2.2s values50;50;5;50 calcModelinear repeatCountindefinite/> animate attributeNamecx from49 to49 begin0s dur2.2s values49;5;27;49 calcModelinear repeatCountindefinite/> /circle> /g> /g>title>loader/title>/svg> div classml-10 text-primary text-xl> Loading... /div>/div>/section> script> function initAuthentication() { return { open: false, forceAuthentication: false, checkoutUrl: https://www.keepshooting.com/checkout/index/, errors: 0, hasCaptchaToken: 0, displayErrorMessage: false, errorMessages: , setErrorMessages: function setErrorMessages(messages) { this.errorMessages messages; this.displayErrorMessage this.errorMessages.length; }, submitForm: function () { // Do not rename $form, the variable is expected to be declared in the recaptcha output const $form document.querySelector(#login-form); if (this.errors 0) { this.dispatchLoginRequest($form); } }, onPrivateContentLoaded: function (data) { const isLoggedIn data.customer && data.customer.firstname; if (data.cart && !isLoggedIn) { this.forceAuthentication !data.cart.isGuestCheckoutAllowed; } }, redirectIfAuthenticated: function (event) { if (event.detail && event.detail.url) { this.checkoutUrl event.detail.url; } if (!this.forceAuthentication) { window.location.href this.checkoutUrl; } }, dispatchLoginRequest: function(form) { this.isLoading true; const username this.$refscustomer-email.value; const password this.$refscustomer-password.value; const formKey hyva.getFormKey(); const bodyFields { username: username, password: password, formKey: formKey }; const fieldName g\u002Drecaptcha\u002Dresponse; const recaptchaField fieldName && formfieldName; if (recaptchaField) { bodyFieldsfieldName recaptchaField.value; } fetch(https://www.keepshooting.com/customer/ajax/login/, { method: POST, headers: { Content-Type: application/json, X-Requested-With: XMLHttpRequest }, body: JSON.stringify(bodyFields) } ).then(response > { return response.json() } ).then(data> { this.isLoading false; if (data.errors) { dispatchMessages({ type: error, text: data.message }, 5000); this.errors 1; this.hasCaptchaToken 0; } else { window.location.href this.checkoutUrl; } }); } } }/script>section idauthentication-popup x-datainitAuthentication() @private-content-loaded.windowonPrivateContentLoaded($event.detail.data) @toggle-authentication.windowopen forceAuthentication; redirectIfAuthenticated(event) @keydown.window.escapeopen false> div classbackdrop aria-hiddentrue x-cloak x-showopen x-transition:enterease-in-out duration-500 x-transition:enter-startopacity-0 x-transition:enter-endopacity-100 x-transition:leaveease-in-out duration-500 x-transition:leave-startopacity-100 x-transition:leave-endopacity-0 @clickopen false >/div> div roledialog aria-modaltrue @click.outsideopen false classinset-y-0 right-0 z-30 flex max-w-full fixed x-cloak x-showopen > div classrelative w-screen max-w-md pt-16 bg-container-lighter x-showopen x-cloak x-transition:entertransform transition ease-in-out duration-500 sm:duration-700 x-transition:enter-starttranslate-x-full x-transition:enter-endtranslate-x-0 x-transition:leavetransform transition ease-in-out duration-500 sm:duration-700 x-transition:leave-starttranslate-x-0 x-transition:leave-endtranslate-x-full > div x-showopen x-cloak x-transition:enterease-in-out duration-500 x-transition:enter-startopacity-0 x-transition:enter-endopacity-100 x-transition:leaveease-in-out duration-500 x-transition:leave-startopacity-100 x-transition:leave-endopacity-0 classabsolute top-0 right-2 flex p-2 mt-2> button typebutton @clickopen false; aria-labelClose panel classp-2 text-gray-300 transition duration-150 ease-in-out hover:text-black > svg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width24 height24 roleimg> path stroke-linecapround stroke-linejoinround dM6 18L18 6M6 6l12 12/>title>Close panel/title>/svg> /button> /div> template x-ifopen> div classflex flex-col h-full py-6 space-y-6 bg-white shadow-xl overflow-y-auto> div classblock-customer-login bg-container border border-container mx-4 p-4 shadow-sm> p idauthenticate-customer-login classtext-lg leading-7 text-gray-900> strong classfont-medium>Checkout using your account/strong> /p> form classform form-login methodpost @submit.preventsubmitForm(); idlogin-form > div classfieldset login> div classfield email required> label classlabel forform-login-username formlogin-form > span>Email Address/span> /label> div classcontrol> input nameusername idform-login-username x-refcustomer-email @changeerrors 0 typeemail required autocompleteoff classform-input input-text > /div> /div> div classfield password required> label forform-login-password classlabel formlogin-form> span>Password/span> /label> div classcontrol> input namepassword idform-login-password typepassword classform-input input-text required x-refcustomer-password autocompleteoff @changeerrors 0 > /div> /div> input namecontext typehidden valuecheckout /> div classactions-toolbar flex justify-between pt-6 pb-2 items-center> button typesubmit classinline-flex btn btn-primary disabled:opacity-75 > Sign In /button> a hrefhttps://www.keepshooting.com/customer/account/forgotpassword/ > Forgot Your Password? /a> /div> /div> /form> /div> div classmx-4> /div> div classblock-new-customer bg-container border border-container mx-4 p-4 shadow-sm> p idauthenticate-new-customer classtext-lg mb-2 leading-7 text-gray-900> strong classfont-medium>Checkout as a new customer/strong> /p> div classblock-content> p classmb-1> Creating an account has many benefits: /p> ul classlist-disc pl-5> li> See order and shipping status/li> li> Track order history/li> li> Check out faster/li> /ul> div classactions-toolbar flex justify-between mt-6 mb-2 items-center> a hrefhttps://www.keepshooting.com/customer/account/create/ classinline-flex btn btn-primary> Create an Account /a> /div> /div> /div> /div> /template> /div> /div>/section>/div> div classamasty-shipbar px-0 inline-grid w-full min-h-3.5rem pointer-events-auto x-dataamShippingBar() x-initinitMoving($el) @scroll.document.throttle.25mshandleScroll :classadditionalClass> style> .amasty-shipbar { /* Color Profile Settings */ --amshipbar-extra-color: #f57646; --amshipbar-background: #1979c3; } /style> div classmain-container relative inline-flex items-center w-full > div classamasty-shipbar-car mx-1.5 my-auto md:flex :classcontentVisibility ? hidden : closed flex absolute right-0 cursor-pointer x-showisCarVisible() x-cloak> button aria-labelShow Content @clickcontentVisibility true> svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 32 25 classamshipbar-mobile block w-16 mr-1.5 fill-amshipbar-background aria-hiddentrue> path dM29.998 22H28a4 4 0 1 0-8 0h-8a4 4 0 1 0-8 0H2.002A1.992 1.992 0 0 1 0 20.009v-7.012c0-.28.14-.673.314-.89l5.372-6.714C5.863 5.17 6.22 5 6.49 5H12V2.005C12 .894 12.891 0 13.99 0h16.02C31.101 0 32 .891 32 1.991V20.01A1.995 1.995 0 0 1 29.998 22zM12 13V7H7l-5 6h10zm-1 9a3 3 0 1 1-6 0 3 3 0 0 1 6 0zm16 0a3 3 0 1 1-6 0 3 3 0 0 1 6 0z/> path classfill-amshipbar-extra-color dM16.855 10.452h1.64v-.689h-1.64v-1.07H18.7V8H16v4.147h.855v-1.695zm3.195.177h.681l.778 1.518h.917v-.04l-.897-1.694c.14-.063.26-.138.359-.225a1.07 1.07 0 0 0 .196-.225c.123-.19.185-.427.185-.71 0-.399-.133-.707-.399-.925-.265-.219-.643-.328-1.133-.328h-1.541v4.147h.854V10.63zm5.366-.28h-1.64v1.112H25.7v.686h-2.78V8h2.775v.692h-1.92v.989h1.64v.669zm1.641 0h1.64v-.668h-1.64v-.989h1.92V8h-2.774v4.147h2.78v-.686h-1.926V10.35zm-6.317-.412h-.69V8.692h.687c.106 0 .2.012.28.037.094.027.17.071.23.131.112.112.168.266.168.462a.59.59 0 0 1-.177.453c-.118.108-.284.162-.498.162z/>/svg> /button> /div> div classbar-content relative inline-flex w-full rounded-none bg-amshipbar-background :classisCarVisible() ? md:rounded-l-md : md:rounded-none x-showcontentVisibility x-cloak> a classlink absolute top-0 left-0 w-full h-full titleGo to Link Address aria-labelGo to Link Address x-showhaveAction() x-cloak :hrefdataShippingBar.actionLink target_blank>/a> div classcontent m-auto py-4 px-16> span classlabel-content align-middle x-htmlgetLabelContent() :style{ color : dataShippingBar.textColor, font-size : getFontSize(), font-family : dataShippingBar.fontFamily }> /span> button aria-labelTerm Content x-showhasTermContent() && !helpFlag @clickhelpFlag true> svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 20 20 fillcurrentColor aria-hiddentrue classextra w-6 align-middle cursor-pointer relative inline fill-amshipbar-extra-color> path fill-ruleevenodd dM18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z clip-ruleevenodd/>/svg> /button> button aria-labelTerm Content x-showhasTermContent() && helpFlag @clickhelpFlag false> svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 20 20 fillcurrentColor aria-hiddentrue classextra w-6 align-middle cursor-pointer relative inline fill-amshipbar-extra-color> path fill-ruleevenodd dM10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z clip-ruleevenodd/>/svg> /button> /div> button aria-labelClose cunt classclose-button absolute right-3 top-4 x-showisCloseable() @clickcontentVisibility false> svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 20 20 fillcurrentColor aria-hiddentrue classextra w-6 cursor-pointer fill-amshipbar-extra-color> path fill-ruleevenodd dM4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z clip-ruleevenodd/>/svg> /button> /div> /div> /div> script> use strict; function amShippingBar() { const position { topFixed: 15, bottomFixed: 25 }; const classPosition { fixedTop: fixed top-0 z-20, fixedBottom: fixed bottom-0 z-20 }; return { additionalClass: , helpFlag: false, goalLeft: false, contentVisibility: true, dataShippingBar: {actionClickable:true,closeable:true,isCarVisibleValue:false,textSize:18,fontFamily:Arial, Helvetica, sans-serif,barBackground:#1979c3,extraColor:#f57646,textColor:#ffffff,actionLink:https:\/\/www.keepshooting.com\/lowest-shipping-rates-online.html,goal:99,position:10,labels:{init_message:Get Free Shipping On Orders Over {{ruleGoal}}.,progress_message:Only {{ruleGoalLeft}} left for Free Shipping.,achieved_message:Congrats! Your Order Total Qualifies for Free Shipping!,terms_message:Conditions Apply for Free Shipping on Orders Over {{ruleGoal}} - Click for More Info},subtotalAmount:0}, handleScroll: null, price: b stylecolor:%1>%2/b>, /** * @public * @param {Object} el * @returns {string} */ initMoving: function (el) { this.container el; if (this.dataShippingBar.position position.topFixed) { this.initTopFixed(); this.handleScroll this.handleScrollForPositionTop; } if (this.dataShippingBar.position position.bottomFixed) { this.initBottomFixed(); this.handleScroll this.handleScrollForPositionBottom; } return this.additionalClass; }, /** * @private * @returns {void} */ initTopFixed: function () { this.defaultTop this.container.offsetTop; this.addClassTopFixed(); }, /** * @private * @returns {void} */ addClassTopFixed: function () { if (window.scrollY > this.defaultTop) { this.additionalClass classPosition.fixedTop; } else { this.additionalClass ; } }, /** * @private * @returns {void} */ handleScrollForPositionTop: function () { this.addClassTopFixed(); }, /** * @private * @returns {void} */ initBottomFixed: function () { this.defaultBottom document.body.offsetHeight -this.container.offsetTop -this.container.offsetHeight; this.addClassBottomFixed(0); }, /** * @private * @param {Number} height * @returns {void} */ addClassBottomFixed: function (height) { if (window.innerHeight + window.scrollY document.body.offsetHeight - this.defaultBottom + height) { this.additionalClass classPosition.fixedBottom; } else { this.additionalClass ; } }, /** * @private * @returns {void} */ handleScrollForPositionBottom: function () { const height this.additionalClass.indexOf(fixed) > -1 ? this.container.offsetHeight : 0; this.addClassBottomFixed(height); }, /** * @private * @returns {void} */ setGoalLeft: function () { this.goalLeft this.dataShippingBar.goal - this.dataShippingBar.subtotalAmount; }, /** * @public * @returns {Boolean} */ isCarVisible: function () { return this.dataShippingBar.isCarVisibleValue || !this.contentVisibility; }, /** * @public * @returns {Boolean} */ hasTermContent: function () { return this.dataShippingBar?.labels?.terms_message?.length > 0; }, /** * @public * @returns {Boolean} */ haveAction: function () { return this.dataShippingBar?.actionClickable && this.dataShippingBar?.actionLink?.length > 0; }, /** * @public * @returns {Boolean} */ isCloseable: function () { return this.dataShippingBar.closeable; }, /** * @public * @returns {string} */ getLabelContent: function () { let text this.getRawLabelContent(); text text.replace({{ruleGoal}}, this.addExtraColor(this.dataShippingBar.goal)); text text.replace({{ruleGoalLeft}}, this.addExtraColor(this.goalLeft)); return text; }, /** * @public * @returns {string} */ getFontSize: function () { return this.dataShippingBar.textSize + px; }, /** * @private * @returns {string} */ getRawLabelContent: function () { this.setGoalLeft(); if (!this.dataShippingBar.labels) { return ; } if (this.helpFlag) { return this.dataShippingBar.labels.terms_message; } if (this.goalLeft this.dataShippingBar.goal) { return this.dataShippingBar.labels.init_message; } if (this.goalLeft 0) { return this.dataShippingBar.labels.achieved_message; } if (this.goalLeft this.dataShippingBar.goal) { return this.dataShippingBar.labels.progress_message; } return this.dataShippingBar.labels.init_message; }, /** * @private * @param {float} data * @returns {string} */ addExtraColor: function (data) { return hyva.str(this.price, this.dataShippingBar.extraColor, hyva.formatPrice(data)); }, } } /script> script> use strict; const initTopmenuDesktop_679045a5c126a () > ({ openSubmenuId: null, toggleSubmenu(menuNode) { if (menuNode this.openSubmenuId) { this.openSubmenuId null hyva.releaseFocus() } else { this.openSubmenuId menuNode this.$nextTick(() > { hyva.trapFocus(this.$refssubmenu- + menuNode) }) } }, onSubmenuEscape(event) { event.stopPropagation() this.$refssr-button- + this.openSubmenuId?.focus() this.openSubmenuId null } }) /script> div x-datainitTopmenuDesktop_679045a5c126a() x-deferintersect class navigation hidden w-full bg-container-darker lg:block > nav classsnowdog-topmenu-desktop container lg:block aria-labelMain menu > ul classrelative flex justify-between h-20> li class flex items-center justify-between px-6 :class{ bg-white rounded-t-lg shadow-md : 1 && openSubmenuId 23 } @mouseenteropenSubmenuId 23 @mouseleaveopenSubmenuId null @keydown.escapeonSubmenuEscape > div classgroup uppercase &>a:py-7 &>a:!text-primary> a hrefhttps://www.keepshooting.com/ammunition styledisplay: inline classsnowdog-menu-link data-menumenu-23 >Ammo/a> /div> div classrelative> button typebutton classflex items-center ml-2 transition-transform duration-300 :class{ rotate-180 : openSubmenuId 23 } x-refsr-button-23 :aria-expandedopenSubmenuId 23 ? true : false @clicktoggleSubmenu(23) > svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 20 20 fillcurrentColor aria-hiddentrue classtext-primary-darker width20 height20> path fill-ruleevenodd dM5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z clip-ruleevenodd/>/svg> span classsr-only> Toggle submenu for Ammo /span> /button> /div> div x-refsubmenu-23 classabsolute left-0 top-full w-full z-30 shadow-md bg-white flex x-showopenSubmenuId 23 x-cloak > div classw-full> ul classcontainer flex flex-wrap justify-between items-start gap-8 py-12 titleSubmenu for Ammo > li classflex-1 > div classgroup mb-2> div data-content-typehtml data-appearancedefault data-elementmain data-decodedtrue>div classflex flex-row gap-8>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Handgun Ammo/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/ammunition/handgun-ammo/all classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Handgun Ammo /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/ammunition/handgun-ammo/handgun-hunting-ammo classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Hunting /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/ammunition/handgun-ammo/personal-defense-handgun-ammo classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Personal Defense /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/ammunition/handgun-ammo/target-shooting-handgun-ammo classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Target Shooting /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/ammunition/handgun-ammo/handgun-ammo-for-suppressor-use classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Suppressor Use /a>/div>/div>div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Rifle Ammo/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/ammunition/rifle-ammo classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Rifle Ammo /a> /div> /div> div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Rimfire Ammo/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/ammunition/rimfire-ammo classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Rimfire Ammo /a> /div> /div> div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Shotgun Ammo/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/ammunition/shotgun-ammo classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Shotgun Ammo /a> /div> /div> div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Top Calibers/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/ammunition/top-caliber/22lr classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> 22LR /a> /div> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/ammunition/top-caliber/9mm classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> 9MM /a> /div> /div> div classflex flex-col mx-12 pt-8 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Type/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/ammunition/less-lethal classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Less Lethal Ammo /a> /div> /div>/div>div classflex items-center mt-8> hr classflex-grow border-black>/div>div classflex flex-row justify-start gap-8>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>Related Categories/h3>div classpb-1> a hrefhttps://www.keepshooting.com/shooting/magazines/type/handgun class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Handgun Magazines /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/shooting/magazines/type/rifle class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Rifle Magazines /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/shooting/magazines/military-surplus-mags class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Military Surplus Magazines /a> /div>/div>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>Interests/h3>div classpb-1> a hrefhttps://www.keepshooting.com/military-surplus class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Military Surplus /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Knives /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/equipment/morale-patches class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Morale Patches /a> /div>/div>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>More Ways To Shop/h3>div classpb-1> a hrefhttps://www.keepshooting.com/new-products class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> New Products /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/collections/prime class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> One of a Kind Items /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/collections/black-friday classtext-red-500 dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Current Sales /a> /div>/div>div classpb-1 mt-3 whitespace-nowrap>a hrefhttps://www.keepshooting.com/magazine-finder.html classwhitespace-nowrap>button typebutton classrounded-md bg-#E4AD3C px-3.5 py-2.5 text-sm font-semibold text-black> Magazine Finder svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block>path dm8 11 2 2 4-4/>circle cx11 cy11 r8/>path dm21 21-4.3-4.3/>/svg>/button>/a>/div>/div> /div> /li> /ul> /div> /div> /li> li class flex items-center justify-between px-6 :class{ bg-white rounded-t-lg shadow-md : 1 && openSubmenuId 84 } @mouseenteropenSubmenuId 84 @mouseleaveopenSubmenuId null @keydown.escapeonSubmenuEscape > div classgroup uppercase &>a:py-7 &>a:!text-primary> a hrefhttps://www.keepshooting.com/clothing styledisplay: inline classsnowdog-menu-link data-menumenu-84 >Clothing/a> /div> div classrelative> button typebutton classflex items-center ml-2 transition-transform duration-300 :class{ rotate-180 : openSubmenuId 84 } x-refsr-button-84 :aria-expandedopenSubmenuId 84 ? true : false @clicktoggleSubmenu(84) > svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 20 20 fillcurrentColor aria-hiddentrue classtext-primary-darker width20 height20> path fill-ruleevenodd dM5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z clip-ruleevenodd/>/svg> span classsr-only> Toggle submenu for Clothing /span> /button> /div> div x-refsubmenu-84 classabsolute left-0 top-full w-full z-30 shadow-md bg-white flex x-showopenSubmenuId 84 x-cloak > div classw-full> ul classcontainer flex flex-wrap justify-between items-start gap-8 py-12 titleSubmenu for Clothing > li classflex-1 > div classgroup mb-2> div data-content-typehtml data-appearancedefault data-elementmain data-decodedtrue>div classflex flex-row gap-4>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Accessories/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/accessories classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Accessories /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/accessories/belts classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Belts /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/accessories/coveralls classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Coveralls /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/accessories/underwear classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Underwear /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/accessories/wallets classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Wallets /a>/div>/div>div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Footwear/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/footwear classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Footwear /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/footwear/boots classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Boots /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/footwear/socks classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Socks /a> /div> /div> div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Gloves/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/gloves classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Gloves /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/gloves/tactical-gloves classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Tactical Gloves /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/gloves/work-gloves classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Work Gloves /a> /div>/div> div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Headwear/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/head-wear classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Headwear /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/head-wear/bandannas classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Bandanas /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/head-wear/baseball-caps classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Baseball Caps /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/head-wear/boonie-hats classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Boonie Hats /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/head-wear/camo-hats classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Camo Hats /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/head-wear/cold-weather classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Cold Weather Hats /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/head-wear/shemaghs classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Shemaghs /a> /div> /div> div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Jackets/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/jackets classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Jackets /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/jackets/bomber-and-flight-jackets classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Bomber & Flight /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/jackets/concealed-carry-jackets classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Concealed Carry /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/jackets/field-jackets classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Field Jackets /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/jackets/hoodies classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Hoodies /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/jackets/parkas classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Parkas /a> /div> /div> div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Pants/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/pants classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Pants /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/pants/bdu-pants classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> BDU Pants /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/pants/camo-pants classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Camo Pants /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/pants/vintage-pants classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Vintage Pants /a> /div> /div> div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Shirts/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/shirts classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Shirts /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/shirts/camo-shirts classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Camo Shirts /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/shirts/flannel classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Flannel Shirts /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/shirts/polo-shirts classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Polo Shirts /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/shirts/t-shirts classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> T-Shirts /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/shirts/thermal-shirts classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Thermal Shirts /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/shirts/vintage-shirts classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Vintage Shirts /a> /div> /div> div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Shorts/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/shorts classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Shorts /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/shorts/bdu-shorts classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> BDU Shorts /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/shorts/camo-shorts classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Camo Shorts /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/clothing/shorts/vintage-shorts classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Vintage Shorts /a> /div> /div> /div>/div>div classflex items-center mt-8> hr classflex-grow border-black>/div>div classflex flex-row justify-start gap-8>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>Related Categories/h3>div classpb-1> a hrefhttps://www.keepshooting.com/military-surplus/clothing class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Military Surplus Clothing /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/military-surplus/bags-and-packs class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Military Surplus Bags & Packs /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/shooting class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Firearms Parts & Accessories /a> /div>/div>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>Interests/h3>div classpb-1> a hrefhttps://www.keepshooting.com/military-surplus class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Military Surplus /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Knives /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/equipment/morale-patches class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Morale Patches /a> /div>/div>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>More Ways To Shop/h3>div classpb-1> a hrefhttps://www.keepshooting.com/new-products class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> New Products /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/collections/prime class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> One of a Kind Items /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/collections/black-friday classtext-red-500 dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Current Sales /a> /div>/div>/div> /div> /li> /ul> /div> /div> /li> li class flex items-center justify-between px-6 :class{ bg-white rounded-t-lg shadow-md : 1 && openSubmenuId 786 } @mouseenteropenSubmenuId 786 @mouseleaveopenSubmenuId null @keydown.escapeonSubmenuEscape > div classgroup uppercase &>a:py-7 &>a:!text-primary> a href# styledisplay: inline classsnowdog-menu-link data-menumenu-786 >Gear/a> /div> div classrelative> button typebutton classflex items-center ml-2 transition-transform duration-300 :class{ rotate-180 : openSubmenuId 786 } x-refsr-button-786 :aria-expandedopenSubmenuId 786 ? true : false @clicktoggleSubmenu(786) > svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 20 20 fillcurrentColor aria-hiddentrue classtext-primary-darker width20 height20> path fill-ruleevenodd dM5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z clip-ruleevenodd/>/svg> span classsr-only> Toggle submenu for Gear /span> /button> /div> div x-refsubmenu-786 classabsolute left-0 top-full w-full z-30 shadow-md bg-white flex x-showopenSubmenuId 786 x-cloak > div classw-full> ul classcontainer flex flex-wrap justify-between items-start gap-8 py-12 titleSubmenu for Gear > li classflex-1 > div classgroup mb-2> div data-content-typehtml data-appearancedefault data-elementmain data-decodedtrue>div classflex flex-row gap-8>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Bags & Packs/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/bags-and-packs classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Bags & Packs /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/bags-and-packs/daypacks classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Day Packs /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/bags-and-packs/duffel-bags classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Duffle Bags /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/bags-and-packs/messenger-bags classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Messenger Bags /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/bags-and-packs/tactical-backpacks classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Tactical Backpacks /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/bags-and-packs/tool-bags classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Tool Bags /a>/div>/div>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Knives/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Knives /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives/automatic-knives classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Automatic Knives /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives/butterfly-knives classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Butterfly Knives /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives/fixed-blade-knives classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Fixed Blade Knives /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives/folding-knives classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Folding Knives /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives/specialty-knives classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Specialty Knives /a>/div>/div>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Morale Patches/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/morale-patches classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Morale Patches /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/morale-patches/flag-patches classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Flag Patches /a>/div>/div>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Survival/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/safety-and-security classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Survival Gear /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/safety-and-security/gas-masks classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Gas Masks & Filters /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/outdoors/paracord classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Paracord /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/safety-and-security/survival/whistles classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Whistles /a>/div>/div>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Self Defense/h2>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/police-batons classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Batons /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/pepper-spray classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Pepper Spray /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/tasers classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Stun Guns /a>/div>/div>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Tactical Gear/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/tactical-gear classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Tactical Gear /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/body-armor classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Body Armor /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/safety-and-security/entry-tools classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Entry Tools /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/handcuffs classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Handcuffs /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/safety-and-security/lock-pick-tools classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Lock Pick Tools /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/training classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Training Gear /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/tactical-gear/tactical-vests classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Vests /a>/div>/div>/div>div classflex items-center mt-8> hr classflex-grow border-black>/div>div classflex flex-row justify-start gap-8>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>Related Categories/h3>div classpb-1> a hrefhttps://www.keepshooting.com/shooting/magazines/type/handgun class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Handgun Magazines /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/shooting/magazines/type/rifle class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Rifle Magazines /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/shooting/magazines/military-surplus-mags class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Military Surplus Magazines /a> /div>/div>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>Interests/h3>div classpb-1> a hrefhttps://www.keepshooting.com/military-surplus class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Military Surplus /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Knives /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/equipment/morale-patches class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Morale Patches /a> /div>/div>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>More Ways To Shop/h3>div classpb-1> a hrefhttps://www.keepshooting.com/new-products class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> New Products /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/collections/prime class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> One of a Kind Items /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/collections/black-friday classtext-red-500 dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Current Sales /a> /div>/div>/div> /div> /li> /ul> /div> /div> /li> li class flex items-center justify-between px-6 :class{ bg-white rounded-t-lg shadow-md : 1 && openSubmenuId 17 } @mouseenteropenSubmenuId 17 @mouseleaveopenSubmenuId null @keydown.escapeonSubmenuEscape > div classgroup uppercase &>a:py-7 &>a:!text-primary> a hrefhttps://www.keepshooting.com/firearms styledisplay: inline classsnowdog-menu-link data-menumenu-17 >Guns/a> /div> div classrelative> button typebutton classflex items-center ml-2 transition-transform duration-300 :class{ rotate-180 : openSubmenuId 17 } x-refsr-button-17 :aria-expandedopenSubmenuId 17 ? true : false @clicktoggleSubmenu(17) > svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 20 20 fillcurrentColor aria-hiddentrue classtext-primary-darker width20 height20> path fill-ruleevenodd dM5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z clip-ruleevenodd/>/svg> span classsr-only> Toggle submenu for Guns /span> /button> /div> div x-refsubmenu-17 classabsolute left-0 top-full w-full z-30 shadow-md bg-white flex x-showopenSubmenuId 17 x-cloak > div classw-full> ul classcontainer flex flex-wrap justify-between items-start gap-8 py-12 titleSubmenu for Guns > li classflex-1 > div classgroup mb-2> div data-content-typehtml data-appearancedefault data-elementmain data-decodedtrue>div classflex flex-row gap-8>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Class 3 / NFA/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/firearms/nfa classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Class 3 / NFA Firearms /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/firearms/nfa/machine-guns classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Machine Guns /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/firearms/nfa/short-barrel-shotguns classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Short Barrel Shotguns /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/firearms/nfa/short-barrel-rifles classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Short Barrel Rifles /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/firearms/nfa/silencers classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Suppressors / Silencers /a>/div>/div>div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Handguns/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/firearms/pistols classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Handguns /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/collections/brands/glock/glock-handguns classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Glock Handguns /a> /div> /div> div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Shotguns/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/firearms/shotguns classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Shotguns /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/collections/brands/mossberg/mossberg-shotguns classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Mossberg Shotguns /a> /div> /div> div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Rifles/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/firearms/rifles classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Rifles /a> /div> /div>/div>div classflex items-center mt-8> hr classflex-grow border-black>/div>div classflex flex-row justify-start gap-8>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>Related Categories/h3>div classpb-1> a hrefhttps://www.keepshooting.com/shooting/magazines class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Magazines & Clips /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/ammunition class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Ammmunition /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/shooting class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Firearms Parts & Accessories /a> /div>/div>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>Interests/h3>div classpb-1> a hrefhttps://www.keepshooting.com/military-surplus class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Military Surplus /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Knives /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/equipment/morale-patches class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Morale Patches /a> /div>/div>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>More Ways To Shop/h3>div classpb-1> a hrefhttps://www.keepshooting.com/new-products class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> New Products /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/collections/prime class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> One of a Kind Items /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/collections/black-friday classtext-red-500 dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Current Sales /a> /div>/div>div classpb-1 mt-3 whitespace-nowrap>a hrefhttps://www.keepshooting.com/magazine-finder.html classwhitespace-nowrap>button typebutton classrounded-md bg-#E4AD3C px-3.5 py-2.5 text-sm font-semibold text-black> Magazine Finder svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block>path dm8 11 2 2 4-4/>circle cx11 cy11 r8/>path dm21 21-4.3-4.3/>/svg>/button>/a>/div>/div> /div> /li> /ul> /div> /div> /li> li class flex items-center justify-between px-6 :class{ bg-white rounded-t-lg shadow-md : 1 && openSubmenuId 24 } @mouseenteropenSubmenuId 24 @mouseleaveopenSubmenuId null @keydown.escapeonSubmenuEscape > div classgroup uppercase &>a:py-7 &>a:!text-primary> a hrefhttps://www.keepshooting.com/shooting styledisplay: inline classsnowdog-menu-link data-menumenu-24 >Gun Parts & Accessories/a> /div> div classrelative> button typebutton classflex items-center ml-2 transition-transform duration-300 :class{ rotate-180 : openSubmenuId 24 } x-refsr-button-24 :aria-expandedopenSubmenuId 24 ? true : false @clicktoggleSubmenu(24) > svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 20 20 fillcurrentColor aria-hiddentrue classtext-primary-darker width20 height20> path fill-ruleevenodd dM5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z clip-ruleevenodd/>/svg> span classsr-only> Toggle submenu for Gun Parts & Accessories /span> /button> /div> div x-refsubmenu-24 classabsolute left-0 top-full w-full z-30 shadow-md bg-white flex x-showopenSubmenuId 24 x-cloak > div classw-full> ul classcontainer flex flex-wrap justify-between items-start gap-8 py-12 titleSubmenu for Gun Parts & Accessories > li classflex-1 > div classgroup mb-2> div data-content-typehtml data-appearancedefault data-elementmain data-decodedtrue>div classflex flex-row gap-4>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Magazines/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/magazines classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Magazines /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/magazines/type/handgun classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Handgun Magazines /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/magazines/type/rifle classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Rifle Magazines /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/magazines/type/shotgun classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Shotgun Magazines /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/magazines/military-surplus-mags classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Military Surplus Magazines /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/magazines/1911-mags classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> 1911 Magazines /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/magazines/ak47-mags classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> AK-47 Magazines /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/magazines/ar15-mags classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> AR-15 Magazines /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/magazines/m14-mags classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> M-14 Magazines /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/magazines/m14-mags classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> M1 Carbine Magazines /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/magazines/glock-mags classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Glock Magazines /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/magazines/ruger-mags classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Ruger Magazines /a>/div>/div>div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Gun Parts/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-parts classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Gun Parts /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-parts/1911-parts classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> 1911 Parts /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-parts/ar-parts classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> AR-15 Parts /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-parts/glock-parts classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Glock Parts /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-parts/hk-parts classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> HK Parts /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-parts/m14-parts classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> M-14 Parts /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-parts/military-surplus-parts classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Military Surplus Parts /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-parts/ruger-parts classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Ruger Parts /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-parts/walther-parts classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Walther Parts /a> /div> /div> div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Maintenance/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/gun-cleaning classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Gun Maintenance /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/gun-cleaning/kits classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Cleaning Kits /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/gun-cleaning/tools classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Cleaning Tools /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gunsmith-tools classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Gunsmith Tools /a> /div> /div> div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Accessories/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/pistol-accessories classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Handgun Accessories /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/rifle-accessories classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Rifle Accessories /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/rifle-accessories/bipods classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Bipods /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/pistol-accessories/holsters classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Holsters /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/rifle-accessories/slings classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Slings /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/thread-adapters classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Thread Adapters /a> /div>/div> div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Optics/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/optics classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Optics /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/optics/laser-boresights classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Laser Bore Sights /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/optics/laser-sights classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Laser Sights /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/optics/scope-mounts-and-rings classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Mounts & Rings /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/optics/red-dot-sights classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Red Dot Sights /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/gun-accessories/optics/weapon-lights classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Weapon Lights /a> /div> /div> div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Safety & Training/h2> div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/shooting-safety-training classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Safety & Training /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/books-and-videos classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Books & Videos /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/shooting-safety-training/snap-caps classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Snap Caps /a> /div> div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/shooting/shooting-safety-training/training-guns classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Training Guns /a> /div> /div>/div>div classflex items-center mt-8> hr classflex-grow border-black>/div>div classflex flex-row justify-start gap-8>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>Related Categories/h3>div classpb-1> a hrefhttps://www.keepshooting.com/shooting/magazines class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Magazines & Clips /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/ammunition class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Ammmunition /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/shooting class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Firearms Parts & Accessories /a> /div>/div>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>Interests/h3>div classpb-1> a hrefhttps://www.keepshooting.com/military-surplus class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Military Surplus /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Knives /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/equipment/morale-patches class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Morale Patches /a> /div>/div>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>More Ways To Shop/h3>div classpb-1> a hrefhttps://www.keepshooting.com/new-products class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> New Products /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/collections/prime class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> One of a Kind Items /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/collections/black-friday classtext-red-500 dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Current Sales /a> /div>/div>div classpb-1 mt-3 whitespace-nowrap>a hrefhttps://www.keepshooting.com/magazine-finder.html classwhitespace-nowrap>button typebutton classrounded-md bg-#E4AD3C px-3.5 py-2.5 text-sm font-semibold text-black> Magazine Finder svg xmlnshttp://www.w3.org/2000/svg width24 height24 viewBox0 0 24 24 fillnone strokecurrentColor stroke-width2 stroke-linecapround stroke-linejoinround classinline-block>path dm8 11 2 2 4-4/>circle cx11 cy11 r8/>path dm21 21-4.3-4.3/>/svg>/button>/a>/div>/div> /div> /li> /ul> /div> /div> /li> li class flex items-center justify-between px-6 :class{ bg-white rounded-t-lg shadow-md : 1 && openSubmenuId 165 } @mouseenteropenSubmenuId 165 @mouseleaveopenSubmenuId null @keydown.escapeonSubmenuEscape > div classgroup uppercase &>a:py-7 &>a:!text-primary> a hrefhttps://www.keepshooting.com/military-surplus styledisplay: inline classsnowdog-menu-link data-menumenu-165 >Military Surplus/a> /div> div classrelative> button typebutton classflex items-center ml-2 transition-transform duration-300 :class{ rotate-180 : openSubmenuId 165 } x-refsr-button-165 :aria-expandedopenSubmenuId 165 ? true : false @clicktoggleSubmenu(165) > svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 20 20 fillcurrentColor aria-hiddentrue classtext-primary-darker width20 height20> path fill-ruleevenodd dM5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z clip-ruleevenodd/>/svg> span classsr-only> Toggle submenu for Military Surplus /span> /button> /div> div x-refsubmenu-165 classabsolute left-0 top-full w-full z-30 shadow-md bg-white flex x-showopenSubmenuId 165 x-cloak > div classw-full> ul classcontainer flex flex-wrap justify-between items-start gap-8 py-12 titleSubmenu for Military Surplus > li classflex-1 > div classgroup mb-2> div data-content-typehtml data-appearancedefault data-elementmain data-decodedtrue>div classflex flex-row gap-8>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Bags & Packs/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/bags-and-packs classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Bags & Packs /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/bags-and-packs/rucksacks classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Rucksacks /a>/div>/div>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Clothing/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/clothing classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Clothing /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/clothing/accessories classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Accessories /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/clothing/coveralls classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Coveralls /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/clothing/gloves classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Gloves /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/hats-and-caps classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Hats /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/clothing/jackets classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Jackets /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/clothing/pants classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Pants /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/hats-and-caps/scarfs classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Scarves /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/clothing/shirts classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Shirts /a>/div>/div>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Collectibles/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/collectibles classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Collectibles /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/bayonets classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Bayonets /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/books classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Books /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/flags classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Flags /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/helmets classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Helmets /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/inert-ordnance classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Inert Ordnance /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/knives classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Knives /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/patches-and-insignia classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Patches & Insignia /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/religious classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Religious /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/signs classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Signs /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/collectibles/vintage classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Vintage /a>/div>/div>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Field Gear/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/field-gear classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Field Gear /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/blankets classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Blankets /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/canteens classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Canteens /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/first-aid classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> First Aid /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/mess-kits classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Mess Kits /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/nets classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Nets /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/shovels classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Shovels /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/sleeping-bags classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Sleeping Bags /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/field-gear/tents classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Tents /a>/div>/div>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Footwear/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/footwear classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Footwear /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/clothing/military-surplus-socks classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Socks /a>/div>/div>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Tactical Gear/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/tactical-gear classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Tactical Gear /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/tactical-gear/body-armor classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Body Armor /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/tactical-gear/gas-masks classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Gas Masks /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/tactical-gear/goggles classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Goggles /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/tactical-gear/molle-gear classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> MOLLE Gear /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/military-surplus/tactical-gear/training-gear classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Training Gear /a>/div>/div>/div>div classflex items-center mt-8> hr classflex-grow border-black>/div>div classflex flex-row justify-start gap-8>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>Related Categories/h3>div classpb-1> a hrefhttps://www.keepshooting.com/shooting/magazines/type/handgun class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Handgun Magazines /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/shooting/magazines/type/rifle class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Rifle Magazines /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/shooting/magazines/military-surplus-mags class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Military Surplus Magazines /a> /div>/div>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>Interests/h3>div classpb-1> a hrefhttps://www.keepshooting.com/military-surplus class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Military Surplus /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Knives /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/equipment/morale-patches class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Morale Patches /a> /div>/div>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>More Ways To Shop/h3>div classpb-1> a hrefhttps://www.keepshooting.com/new-products class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> New Products /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/collections/prime class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> One of a Kind Items /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/collections/black-friday classtext-red-500 dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Current Sales /a> /div>/div>/div> /div> /li> /ul> /div> /div> /li> li class flex items-center justify-between px-6 :class{ bg-white rounded-t-lg shadow-md : 1 && openSubmenuId 788 } @mouseenteropenSubmenuId 788 @mouseleaveopenSubmenuId null @keydown.escapeonSubmenuEscape > div classgroup uppercase &>a:py-7 &>a:!text-primary> a href# styledisplay: inline classsnowdog-menu-link data-menumenu-788 >Outdoors/a> /div> div classrelative> button typebutton classflex items-center ml-2 transition-transform duration-300 :class{ rotate-180 : openSubmenuId 788 } x-refsr-button-788 :aria-expandedopenSubmenuId 788 ? true : false @clicktoggleSubmenu(788) > svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 20 20 fillcurrentColor aria-hiddentrue classtext-primary-darker width20 height20> path fill-ruleevenodd dM5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z clip-ruleevenodd/>/svg> span classsr-only> Toggle submenu for Outdoors /span> /button> /div> div x-refsubmenu-788 classabsolute left-0 top-full w-full z-30 shadow-md bg-white flex x-showopenSubmenuId 788 x-cloak > div classw-full> ul classcontainer flex flex-wrap justify-between items-start gap-8 py-12 titleSubmenu for Outdoors > li classflex-1 > div classgroup mb-2> div data-content-typehtml data-appearancedefault data-elementmain data-decodedtrue>div classflex flex-row gap-8>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Camping/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/outdoors/camping classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Camping /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/outdoors/camping/blankets classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Blankets /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/outdoors/camping/mess-kits classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Mess Kits /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/outdoors/camping/camping-stoves classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Stoves /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/outdoors/camping/sleeping-bags classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Sleeping Bags /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/outdoors/camping/water-purification classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Water Purification /a>/div>/div>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Compasses/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/outdoors/compasses classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Compasses /a>/div>/div>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Eyewear/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/eyewear classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Eyewear /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/eyewear/tactical-goggles classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Goggles /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/eyewear/sunglasses classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Sun Glasses /a>/div>/div>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>First Aid/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/first-aid classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All First Aid /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/first-aid/tourniquets classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Tourniquets /a>/div>/div>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Flashlights/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/flashlights classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Flashlights /a>/div>/div>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Tools/h2>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/axes-and-tomahawks classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Axes & Tomahawks /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/machetes classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Machetes /a>/div>div classbg-slate-200 pb-1 pl-3> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/multitools classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Multitools /a>/div>/div>/div>div classflex items-center mt-8> hr classflex-grow border-black>/div>div classflex flex-row justify-start gap-8>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>Related Categories/h3>div classpb-1> a hrefhttps://www.keepshooting.com/shooting/magazines/type/handgun class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Handgun Magazines /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/shooting/magazines/type/rifle class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Rifle Magazines /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/shooting/magazines/military-surplus-mags class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Military Surplus Magazines /a> /div>/div>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>Interests/h3>div classpb-1> a hrefhttps://www.keepshooting.com/military-surplus class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Military Surplus /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Knives /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/equipment/morale-patches class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Morale Patches /a> /div>/div>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>More Ways To Shop/h3>div classpb-1> a hrefhttps://www.keepshooting.com/new-products class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> New Products /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/collections/prime class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> One of a Kind Items /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/collections/black-friday classtext-red-500 dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Current Sales /a> /div>/div>/div> /div> /li> /ul> /div> /div> /li> li class flex items-center justify-between px-6 :class{ bg-white rounded-t-lg shadow-md : 1 && openSubmenuId 204 } @mouseenteropenSubmenuId 204 @mouseleaveopenSubmenuId null @keydown.escapeonSubmenuEscape > div classgroup uppercase &>a:py-7 &>a:!text-primary> a hrefhttps://www.keepshooting.com/collections styledisplay: inline classsnowdog-menu-link data-menumenu-204 >Collections/a> /div> div classrelative> button typebutton classflex items-center ml-2 transition-transform duration-300 :class{ rotate-180 : openSubmenuId 204 } x-refsr-button-204 :aria-expandedopenSubmenuId 204 ? true : false @clicktoggleSubmenu(204) > svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 20 20 fillcurrentColor aria-hiddentrue classtext-primary-darker width20 height20> path fill-ruleevenodd dM5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z clip-ruleevenodd/>/svg> span classsr-only> Toggle submenu for Collections /span> /button> /div> div x-refsubmenu-204 classabsolute left-0 top-full w-full z-30 shadow-md bg-white flex x-showopenSubmenuId 204 x-cloak > div classw-full> ul classcontainer flex flex-wrap justify-between items-start gap-8 py-12 titleSubmenu for Collections > li classflex-1 > div classgroup mb-2> div data-content-typehtml data-appearancedefault data-elementmain data-decodedtrue>div classflex flex-row gap-8>div classflex flex-col mx-12 grow>h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Winter Gear/h2>div classbg-slate-200 pt-3 pb-1 pl-3> a hrefhttps://www.keepshooting.com/collections/seasons/winter/all classfont-semibold text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> All Winter Gear /a>/div>div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/seasons/winter/balaclavas classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Balaclavas /a>/div>div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/seasons/winter/neck-gaiters classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Neck Gaiters /a>/div>div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/seasons/winter/gloves classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Winter Gloves /a>/div>div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/seasons/winter/hats classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Winter Hats /a>/div>div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/seasons/winter/winter-jackets classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Winter Jackets /a>/div>div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/seasons/winter/winter-pants classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Winter Pants /a>/div>div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/seasons/winter/winter-shirts classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Winter Shirts /a>/div>div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/seasons/winter/scarves classfont-medium text-black dark:text-blue-500 whitespace-nowrap styledisplay: inline> Winter Scarves /a>/div>/div>div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>European Surplus/h2> div classbg-slate-200 pt-3 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/surplus-by-country/austrian-army-surplus classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Austrian Army Surplus /a> /div> div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/surplus-by-country/belgian-army-surplus classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Belgian Army Surplus /a> /div> div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/surplus-by-country/british-army-surplus classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> British Army Surplus /a> /div> div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/surplus-by-country/czech-army-surplus classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Czech Army Surplus /a> /div> div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/surplus-by-country/french-army-surplus classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> French Army Surplus /a> /div> div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/surplus-by-country/german-army-surplus classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> German Army Surplus /a> /div> div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/surplus-by-country/romanian-army-surplus classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Romanian Army Surplus /a> /div> /div> div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Asian Surplus/h2> div classbg-slate-200 pt-3 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/surplus-by-country/chinese-army-surplus classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Chinese Army Surplus /a> /div> /div> div classflex flex-col mx-12 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>African Surplus/h2> div classbg-slate-200 pt-3 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/surplus-by-country/benin-army-surplus classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Benin Army Surplus /a> /div> div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/surplus-by-country/kenyan-army-surplus classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Kenyan Army Surplus /a> /div> /div> div classflex flex-col mx-12 pt-8 grow> h2 class bg-cyan-900 text-white text-lg font-semibold uppercase whitespace-nowrap lg:text-xl text-center px-4>Top Brands/h2> div classbg-slate-200 pt-3 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/brands/beretta classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Beretta /a> /div> div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/brands/glock classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Glock /a> /div> div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/brands/ka-bar classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> KA-BAR /a> /div> div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/brands/magpul classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Magpul /a> /div> div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/brands/mechanix-wear-gloves classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Mechanixwear /a> /div> div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/brands/mil-tec classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Mil-Tec /a> /div> div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/brands/rothco classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Rothco /a> /div> div classbg-slate-200 pb-0.5 pl-3> a hrefhttps://www.keepshooting.com/collections/brands/ruger classfont-medium text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Ruger /a> /div> /div>/div>div classflex items-center mt-8> hr classflex-grow border-black>/div>div classflex flex-row justify-start gap-8>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>Related Categories/h3>div classpb-1> a hrefhttps://www.keepshooting.com/shooting/magazines/type/handgun class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Handgun Magazines /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/shooting/magazines/type/rifle class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Rifle Magazines /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/shooting/magazines/military-surplus-mags class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Military Surplus Magazines /a> /div>/div>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>Interests/h3>div classpb-1> a hrefhttps://www.keepshooting.com/military-surplus class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Military Surplus /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/equipment/knives-and-tools/knives class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Knives /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/equipment/morale-patches class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Morale Patches /a> /div>/div>div classflex flex-col mx-12 mt-3>h3 classtext-blue-600 underline>More Ways To Shop/h3>div classpb-1> a hrefhttps://www.keepshooting.com/new-products class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> New Products /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/collections/prime class text-black dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> One of a Kind Items /a> /div>div classpb-1> a hrefhttps://www.keepshooting.com/collections/black-friday classtext-red-500 dark:text-blue-500 whitespace-nowrap text-center styledisplay: inline> Current Sales /a> /div>/div>/div> /div> /li> /ul> /div> /div> /li> /ul> /nav> /div>/header>main idmaincontent classpage-main>div idcontentarea tabindex-1>/div>div classpage messages>script> function initMessages() { use strict; return { messages: window.mageMessages || , isEmpty() { return this.messages.reduce( function (isEmpty, message) { return isEmpty && message undefined }, true ) }, removeMessage(messageIndex) { this.messagesmessageIndex undefined; }, addMessages(messages, hideAfter) { messages.map((message) > { this.messages this.messages.concat(message); if (hideAfter undefined && message.type success && window.defaultSuccessMessageTimeout) { hideAfter window.defaultSuccessMessageTimeout; } if (hideAfter) { this.setHideTimeOut(this.messages.length -1, hideAfter); } }); }, setHideTimeOut(messageIndex, hideAfter) { setTimeout((messageIndex) > { this.removeMessage(messageIndex); }, hideAfter, messageIndex); }, getIcon(messageType) { let iconHtml; switch (messageType) { case success: iconHtml svg xmlns\http:\/\/www.w3.org\/2000\/svg\ viewBox\0 0 20 20\ fill\currentColor\ aria-hidden\true\ class\fill-current\ width\56\ height\56\ role\img\>\n path fill-rule\evenodd\ d\M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\ clip-rule\evenodd\\/>\ntitle>check-circle\/title>\/svg>\n; break; case error: iconHtml svg xmlns\http:\/\/www.w3.org\/2000\/svg\ viewBox\0 0 20 20\ fill\currentColor\ aria-hidden\true\ class\fill-current\ width\56\ height\56\ role\img\>\n path fill-rule\evenodd\ d\M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\ clip-rule\evenodd\\/>\ntitle>exclamation\/title>\/svg>\n; break; case warning: iconHtml svg xmlns\http:\/\/www.w3.org\/2000\/svg\ viewBox\0 0 20 20\ fill\currentColor\ aria-hidden\true\ class\fill-current\ width\56\ height\56\ role\img\>\n path fill-rule\evenodd\ d\M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\ clip-rule\evenodd\\/>\ntitle>exclamation\/title>\/svg>\n; break; case notice: iconHtml svg xmlns\http:\/\/www.w3.org\/2000\/svg\ viewBox\0 0 20 20\ fill\currentColor\ aria-hidden\true\ class\fill-current\ width\56\ height\56\ role\img\>\n path fill-rule\evenodd\ d\M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\ clip-rule\evenodd\\/>\ntitle>information-circle\/title>\/svg>\n; break; case info: iconHtml svg xmlns\http:\/\/www.w3.org\/2000\/svg\ viewBox\0 0 20 20\ fill\currentColor\ aria-hidden\true\ class\fill-current\ width\56\ height\56\ role\img\>\n path fill-rule\evenodd\ d\M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\ clip-rule\evenodd\\/>\ntitle>information-circle\/title>\/svg>\n; break; // phpcs:enable Generic.Files.LineLength.TooLong } return iconHtml; }, getTitle(messageType) { let title; switch (messageType) { case success: title Success; break; case error: title Error; break; case warning: title Warning; break; case notice: title Notice; break; case info: title Info; break; } return title; }, getColor(messageType) { let color; switch (messageType) { case success: color text-green-600; break; case error: color text-red-600; break; case warning: color text-yellow-500; break; case notice: color text-blue-500; break; case info: color text-blue-500; break; } return color; }, eventListeners: { @messages-loaded.window(event) { this.addMessages(event.detail.messages, event.detail.hideAfter) }, @private-content-loaded.window(event) { const data event.detail.data; if ( data.messages && data.messages.messages && data.messages.messages.length ) { this.addMessages(data.messages.messages); } }, @clear-messages.window() { this.messages ; } } } }/script>section idmessages x-datainitMessages() x-bindeventListeners aria-liveassertive rolealert> template x-if!isEmpty()> div classabsolute right-0 top-0> template x-for(message, index) in messages :keyindex> div> template x-ifmessage> div classw-full p-6 max-w-xl :ui-idmessage- + message.type > div classshadow-xl rounded-xl bg-white p-6 pl-8 flex flex-col gap-4 sm:flex-row> div classflex justify-center sm:block sm:w-14 sm:pt-1 sm:grow-0 sm:shrink-0 :classgetColor(message.type) x-htmlgetIcon(message.type) >/div> div classtext-center sm:text-left sm:pr-12> div classtext-xl font-bold text-gray-800 x-textgetTitle(message.type)>/div> div classtext-gray-600 mt-2> span x-htmlmessage.text>/span> /div> /div> /div> div classabsolute right-12 top-12> button typebutton classtext-gray-300 hover:text-gray-400 aria-labelClose message @click.preventremoveMessage(index) > svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 20 20 fillcurrentColor aria-hiddentrue classfill-current width24 height24> path fill-ruleevenodd dM4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z clip-ruleevenodd/>/svg> /button> /div> /div> /template> /div> /template> /div> /template>/section>/div>div classcolumns>div classcolumn main>style>.cmsp11-block {display: block}/style>style>#html-body data-pb-styleAF19TP4{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}/style>div data-content-typerow data-appearancefull-width data-enable-parallax0 data-parallax-speed0.5 data-background-images{} data-background-typeimage data-video-looptrue data-video-play-only-visibletrue data-video-lazy-loadtrue data-video-fallback-src data-elementmain data-pb-styleAF19TP4>div classrow-full-width-inner data-elementinner>div data-content-typeblock data-appearancedefault data-elementmain>div classwidget block block-static-block> style>.cmsb408-relative {position: relative}.cmsb408-isolate {isolation: isolate}.cmsb408-z-10 {z-index: 10}.cmsb408-col-start-1 {grid-column-start: 1}.cmsb408-row-start-1 {grid-row-start: 1}.cmsb408-mb-2 {margin-bottom: 0.5rem}.cmsb408-grid {display: grid}.cmsb408-h-\276px\ {height: 276px}.cmsb408-w-full {width: 100%}.cmsb408-self-end {align-self: flex-end}.cmsb408-overflow-hidden {overflow: hidden}.cmsb408-rounded-lg {border-radius: 0.5rem}.cmsb408-object-cover {object-fit: cover}.cmsb408-p-6 {padding: 1.5rem}.cmsb408-pt-28 {padding-top: 7rem}.cmsb408-text-xl {font-size: 1.25rem;line-height: 1.75rem}.cmsb408-text-2xl {font-size: 1.5rem;line-height: 2rem}.cmsb408-font-bold {font-weight: 700}.cmsb408-text-\\#FFFF00\ {--tw-text-opacity: 1;color: rgba(255, 255, 0, var(--tw-text-opacity))}.cmsb408-before\:absolute::before {content: ;position: absolute}.cmsb408-before\:inset-0::before {content: ;top: 0px;right: 0px;bottom: 0px;left: 0px}@media (min-width: 768px) {.cmsb408-md\:h-\576px\ {height: 576px}.cmsb408-md\:text-2xl {font-size: 1.5rem;line-height: 2rem}.cmsb408-md\:text-6xl {font-size: 3.75rem;line-height: 1}}/style>style>#html-body data-pb-styleG9TQQDM{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}/style>div data-content-typerow data-appearancefull-width data-enable-parallax0 data-parallax-speed0.5 data-background-images{} data-background-typeimage data-video-looptrue data-video-play-only-visibletrue data-video-lazy-loadtrue data-video-fallback-src data-elementmain data-pb-styleG9TQQDM>div classrow-full-width-inner data-elementinner>div data-content-typehtml data-appearancedefault data-elementmain data-decodedtrue>div classbg-white flex flex-grow justify-center cmsb408-rounded-lg my-1>a hrefhttps://www.keepshooting.com/collections/seasons/winter> img srchttps://www.keepshooting.com/media/wysiwyg/homepage/winter-gear-left-text.webp altWinter Gear Sale width1216 height832 loadinglazy classcmsb408-w-full items-center object-contain cmsb408-rounded-lg lg:object-fill>/a>/div>/div>/div>/div>/div>/div>div data-content-typeblock data-appearancedefault data-elementmain>div classwidget block block-static-block> style>#html-body data-pb-styleF7LL8PY{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}/style>div data-content-typerow data-appearancecontained data-elementmain>div data-enable-parallax0 data-parallax-speed0.5 data-background-images{} data-background-typeimage data-video-looptrue data-video-play-only-visibletrue data-video-lazy-loadtrue data-video-fallback-src data-elementinner data-pb-styleF7LL8PY>div data-content-typehtml data-appearancedefault data-elementmain data-decodedtrue>h1 classtext-#E4AD3C font-semibold text-3xl mb-4 text-center uppercase>New Products/h1>/div>div data-content-typetext data-appearancedefault data-elementmain>p> /p>div classblock widget block-products-list grid> div classblock-content> div classmx-auto grid gap-4 sm:grid-cols-2 lg:grid-cols-4> form methodpost actionhttps://www.keepshooting.com/checkout/cart/add/uenc/%25uenc%25/product/35079/ classproduct-item product_addtocart_form shadow bg-white rounded-md p-4 flex flex-col hover:shadow-lg > input nameform_key typehidden valueLuzSoQ84a0oPMlpK> input typehidden nameproduct value35079> a hrefhttps://www.keepshooting.com/ammo-inc-stelth-300-blackout-ammo-subsonic-220-grain-fmj.html titleAmmo Inc. Stelth 300 Blackout Ammo Subsonic 220 Grain FMJ classproduct photo product-item-photo mb-2 mx-auto tabindex-1> img classproduct-image-photo x-data @update-gallery-35079.window$root.src $event.detail srchttps://www.keepshooting.com/media/catalog/product/cache/cef1856f87f96c51952913c39aa1d996/a/m/ammo-inc-stelth-300-blackout-ammo-subsonic-220gr-fmj.webp loadinglazy width240 height300 altAmmo Inc. Stelth 300 Blackout Ammo Subsonic 220 Grain FMJ titleAmmo Inc. Stelth 300 Blackout Ammo Subsonic 220 Grain FMJ> /a> div classflex flex-col flex-1> div classflex justify-between items-center> div classtext-sm leading-5 text-blue-500> AMMO Incorporated /div> script> use strict; function amNotificationProductViewComponent_35079() { return { isAvailable: 1, isAvailableConfigurableSimple: true, isOutofstockConfigurable: 1, title: Availability, options: {}, productIndex: 35079, hideAddToCartBtn: , notificationLabel: Notify me when this product is in stock, productId: 35079, /** * Overridden method for Product Alert View Model to output url according to product id in js * * @param productIndex * @param type * @returns {*} */ getSubscriptionUrl(productIndex, type) { const urlParts xnotif/email/, type, /product_id/, productIndex, (parseInt(productIndex) ! parseInt(this.productId)) ? /parent_id/ + this.productId : , /uenc/, aHR0cHM6Ly93d3cua2VlcHNob290aW5nLmNvbS8, ; return BASE_URL + urlParts.join(); }, getSimpleProduct(data, el) { let children JSON.parse(); /** * hide addtocart button if simple for configurable product is out of stock */ window.addEventListener(configurable-select-changed, (event) > { let componentElement document.querySelector(x-dataamNotificationProductViewComponent_ + event.detail.productId + ()) || document.querySelector(#stock_notification_ + event.detail.productId); let parentElement componentElement.closest(.product-info); this.hideAddToCartBtn parentElement.querySelector(.btn.btn-primary:not(.subscribe-button)); }); //for pdp only window.addEventListener(configurable-selection-changed, (event) > { const addToCartButton document.getElementById(product-addtocart-button)?.closest(div); if (addToCartButton) { addToCartButton.style.display this.isAvailableConfigurableSimple ? flex : none; } }); const swatchesComponent (document.querySelector(x-datainitConfigurableSwatchOptions_ + data.productId + ()) || document.querySelector(x-datainitAmastyXnotifCatalogSwatchesMixin_ + data.productId + ()) || document.querySelector(x-datainitAmastyCustomStockStatusOptions_ + data.productId + ())); const swatchesCount swatchesComponent?.querySelector(div)?.children?.length || 0; for (const key, value of Object.entries(childrendata.productIndex || {})) { const previousIndex this.productIndex; this.productIndex data.productIndex; if (Object.keys(data.selectedValues).length > swatchesCount) { this.isAvailable Number(value); this.isAvailableConfigurableSimple Number(value); } if (this.hideAddToCartBtn) { this.hideAddToCartBtn.style.display !this.isAvailable ? none : flex; } // plp duplicating indexes case if (el && (previousIndex this.productIndex) && !this.isAvailable) { el.closest(.product-info).querySelector(.btn.btn-primary:not(.subscribe-button)).style.display none; } } }, getAvailable() { return this.options { additionalClass: this.isAvailable ? bg-green-500 : bg-red-500, label: this.isAvailable ? In stock : Out of stock, categoryNotificationLabel: this.isAvailable ? : this.notificationLabel, }; } } }/script>div x-data{ ...amNotificationProductViewComponent_35079(), ...amXnotifSubscribeComponentList_35079() } x-on:configurable-select-changed.windowgetSimpleProduct($event.detail, $el) x-showgetAvailable() idstock_notification_35079 classtext-right relative> p classflex items-center align-middle available gap-x-2 stock :class{ justify-center: 1, justify-start: , } :titletitle> span classw-3 h-3 rounded-full flex-shrink-0 :classoptions.additionalClass>/span> span x-textoptions.label>/span> /p> /div>script> use strict; function amXnotifSubscribeComponentList_35079() { return { mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) { AmxnotifStockSubscribe(input: $input) { response_message } }`, isInStock: 1, isConfigurable: , productIdentifier: 35079, isValid: true, buttonDisabled: false, getMessages(type, message) { return typeof window.dispatchMessages ! undefined && window.dispatchMessages( { type: type, text: message } ); }, fetchSubscribe(productId) { let variables { input: { product_uid: btoa(productId), parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : , } }; this.buttonDisabled true; fetch(BASE_URL + graphql, { method: POST, headers: { Store: default, Content-Type: application/json, }, body: JSON.stringify({query: this.mutationStockSubscription, variables}), mode: cors, credentials: include }) .then((response) > response.json()) .then((result) > { if (result?.data?.AmxnotifStockSubscribe) { this.getMessages(success, result.data.AmxnotifStockSubscribe.response_message); } else { let message result?.errors ? result.errors0.message : Something went wrong.; this.getMessages(error, message) } if (this.isConfigurable) { setTimeout(() > { window.dispatchEvent(new Event(showAmLoader)); window.location.reload() }, 2000) } }) .finally(() > { this.buttonDisabled false; }) } } }/script> /div> div classflex justify-between gap-2 items-baseline flex-1> a classproduct-item-link flex-1 text-lg leading-7 font-bold text-slate-800 hrefhttps://www.keepshooting.com/ammo-inc-stelth-300-blackout-ammo-subsonic-220-grain-fmj.html :id`slide-desc-35079-${$id(slider-id)}`> Ammo Inc. Stelth 300 Blackout Ammo Subsonic 220 Grain FMJ /a> /div> div classmb-4 mt-2> /div> div classfont-normal text-blue-800 x-datainitPriceBox() x-deferintersect @update-prices-35079.windowupdatePrice($event.detail);> div classprice-box price-final_price data-rolepriceBox data-product-id35079 data-price-boxproduct-id-35079> span x-data x-idproduct\u002Dprice\u002D35079 classprice-container price-final_price tax weee> span :id$id(product\u002Dprice\u002D35079) data-price-amount23.26 data-price-typefinalPrice classprice-wrapper >span classprice>$23.26/span>/span> /span>/div> /div> div classflex flex-row justify-between mt-1 mb-4 text-sm leading-5> div classtext-right> p classflex items-center justify-end align-middle gap-x-2 stock before:w-3 before:h-3 before:rounded-full before:shrink-0 available before:bg-green-500 titleAvailability>In stock/p> /div> /div> div classflex gap-2 flex-wrap flex-1 items-end> div classflex-1 md:w-full md:flex-initial lg:w-auto lg:flex-1> button classbg-blue-500 rounded-md text-white py-3 font-medium flex items-center gap-2 w-full justify-center hover:bg-blue-600 px-3 2xl:px-6 aria-labelAdd to Cart Ammo Inc. Stelth 300 Blackout Ammo Subsonic 220 Grain FMJ> svg xmlnshttp://www.w3.org/2000/svg fillnone viewbox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width20 height20> path stroke-linecapround stroke-linejoinround dM3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z>/path>/svg> span>Add to Cart/span> /button> /div> /div> /div> /form> form methodpost actionhttps://www.keepshooting.com/checkout/cart/add/uenc/%25uenc%25/product/35078/ classproduct-item product_addtocart_form shadow bg-white rounded-md p-4 flex flex-col hover:shadow-lg > input nameform_key typehidden valueLuzSoQ84a0oPMlpK> input typehidden nameproduct value35078> a hrefhttps://www.keepshooting.com/promag-ruger-security-9-magazine-32-round.html titlePromag Ruger Security-9 Magazine - 32 Round classproduct photo product-item-photo mb-2 mx-auto tabindex-1> img classproduct-image-photo x-data @update-gallery-35078.window$root.src $event.detail srchttps://www.keepshooting.com/media/catalog/product/cache/cef1856f87f96c51952913c39aa1d996/p/r/promag-ruger-security-9-magazine-17-round.webp loadinglazy width240 height300 altPromag Ruger Security-9 Magazine - 32 Round titlePromag Ruger Security-9 Magazine - 32 Round> /a> div classflex flex-col flex-1> div classflex justify-between items-center> div classtext-sm leading-5 text-blue-500> ProMag /div> script> use strict; function amNotificationProductViewComponent_35078() { return { isAvailable: 1, isAvailableConfigurableSimple: true, isOutofstockConfigurable: 1, title: Availability, options: {}, productIndex: 35078, hideAddToCartBtn: , notificationLabel: Notify me when this product is in stock, productId: 35078, /** * Overridden method for Product Alert View Model to output url according to product id in js * * @param productIndex * @param type * @returns {*} */ getSubscriptionUrl(productIndex, type) { const urlParts xnotif/email/, type, /product_id/, productIndex, (parseInt(productIndex) ! parseInt(this.productId)) ? /parent_id/ + this.productId : , /uenc/, aHR0cHM6Ly93d3cua2VlcHNob290aW5nLmNvbS8, ; return BASE_URL + urlParts.join(); }, getSimpleProduct(data, el) { let children JSON.parse(); /** * hide addtocart button if simple for configurable product is out of stock */ window.addEventListener(configurable-select-changed, (event) > { let componentElement document.querySelector(x-dataamNotificationProductViewComponent_ + event.detail.productId + ()) || document.querySelector(#stock_notification_ + event.detail.productId); let parentElement componentElement.closest(.product-info); this.hideAddToCartBtn parentElement.querySelector(.btn.btn-primary:not(.subscribe-button)); }); //for pdp only window.addEventListener(configurable-selection-changed, (event) > { const addToCartButton document.getElementById(product-addtocart-button)?.closest(div); if (addToCartButton) { addToCartButton.style.display this.isAvailableConfigurableSimple ? flex : none; } }); const swatchesComponent (document.querySelector(x-datainitConfigurableSwatchOptions_ + data.productId + ()) || document.querySelector(x-datainitAmastyXnotifCatalogSwatchesMixin_ + data.productId + ()) || document.querySelector(x-datainitAmastyCustomStockStatusOptions_ + data.productId + ())); const swatchesCount swatchesComponent?.querySelector(div)?.children?.length || 0; for (const key, value of Object.entries(childrendata.productIndex || {})) { const previousIndex this.productIndex; this.productIndex data.productIndex; if (Object.keys(data.selectedValues).length > swatchesCount) { this.isAvailable Number(value); this.isAvailableConfigurableSimple Number(value); } if (this.hideAddToCartBtn) { this.hideAddToCartBtn.style.display !this.isAvailable ? none : flex; } // plp duplicating indexes case if (el && (previousIndex this.productIndex) && !this.isAvailable) { el.closest(.product-info).querySelector(.btn.btn-primary:not(.subscribe-button)).style.display none; } } }, getAvailable() { return this.options { additionalClass: this.isAvailable ? bg-green-500 : bg-red-500, label: this.isAvailable ? In stock : Out of stock, categoryNotificationLabel: this.isAvailable ? : this.notificationLabel, }; } } }/script>div x-data{ ...amNotificationProductViewComponent_35078(), ...amXnotifSubscribeComponentList_35078() } x-on:configurable-select-changed.windowgetSimpleProduct($event.detail, $el) x-showgetAvailable() idstock_notification_35078 classtext-right relative> p classflex items-center align-middle available gap-x-2 stock :class{ justify-center: 1, justify-start: , } :titletitle> span classw-3 h-3 rounded-full flex-shrink-0 :classoptions.additionalClass>/span> span x-textoptions.label>/span> /p> /div>script> use strict; function amXnotifSubscribeComponentList_35078() { return { mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) { AmxnotifStockSubscribe(input: $input) { response_message } }`, isInStock: 1, isConfigurable: , productIdentifier: 35078, isValid: true, buttonDisabled: false, getMessages(type, message) { return typeof window.dispatchMessages ! undefined && window.dispatchMessages( { type: type, text: message } ); }, fetchSubscribe(productId) { let variables { input: { product_uid: btoa(productId), parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : , } }; this.buttonDisabled true; fetch(BASE_URL + graphql, { method: POST, headers: { Store: default, Content-Type: application/json, }, body: JSON.stringify({query: this.mutationStockSubscription, variables}), mode: cors, credentials: include }) .then((response) > response.json()) .then((result) > { if (result?.data?.AmxnotifStockSubscribe) { this.getMessages(success, result.data.AmxnotifStockSubscribe.response_message); } else { let message result?.errors ? result.errors0.message : Something went wrong.; this.getMessages(error, message) } if (this.isConfigurable) { setTimeout(() > { window.dispatchEvent(new Event(showAmLoader)); window.location.reload() }, 2000) } }) .finally(() > { this.buttonDisabled false; }) } } }/script> /div> div classflex justify-between gap-2 items-baseline flex-1> a classproduct-item-link flex-1 text-lg leading-7 font-bold text-slate-800 hrefhttps://www.keepshooting.com/promag-ruger-security-9-magazine-32-round.html :id`slide-desc-35078-${$id(slider-id)}`> Promag Ruger Security-9 Magazine - 32 Round /a> /div> div classmb-4 mt-2> /div> div classfont-normal text-blue-800 x-datainitPriceBox() x-deferintersect @update-prices-35078.windowupdatePrice($event.detail);> div classprice-box price-final_price data-rolepriceBox data-product-id35078 data-price-boxproduct-id-35078> span x-data x-idproduct\u002Dprice\u002D35078 classprice-container price-final_price tax weee> span :id$id(product\u002Dprice\u002D35078) data-price-amount34.19 data-price-typefinalPrice classprice-wrapper >span classprice>$34.19/span>/span> /span>/div> /div> div classflex flex-row justify-between mt-1 mb-4 text-sm leading-5> div classtext-right> p classflex items-center justify-end align-middle gap-x-2 stock before:w-3 before:h-3 before:rounded-full before:shrink-0 available before:bg-green-500 titleAvailability>In stock/p> /div> /div> div classflex gap-2 flex-wrap flex-1 items-end> div classflex-1 md:w-full md:flex-initial lg:w-auto lg:flex-1> button classbg-blue-500 rounded-md text-white py-3 font-medium flex items-center gap-2 w-full justify-center hover:bg-blue-600 px-3 2xl:px-6 aria-labelAdd to Cart Promag Ruger Security-9 Magazine - 32 Round> svg xmlnshttp://www.w3.org/2000/svg fillnone viewbox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width20 height20> path stroke-linecapround stroke-linejoinround dM3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z>/path>/svg> span>Add to Cart/span> /button> /div> /div> /div> /form> form methodpost actionhttps://www.keepshooting.com/checkout/cart/add/uenc/%25uenc%25/product/35077/ classproduct-item product_addtocart_form shadow bg-white rounded-md p-4 flex flex-col hover:shadow-lg > input nameform_key typehidden valueLuzSoQ84a0oPMlpK> input typehidden nameproduct value35077> a hrefhttps://www.keepshooting.com/ruger-security-9-magazine-2-pack-17-round.html titleRuger Security-9 Magazine 2-Pack - 17 Round classproduct photo product-item-photo mb-2 mx-auto tabindex-1> img classproduct-image-photo x-data @update-gallery-35077.window$root.src $event.detail srchttps://www.keepshooting.com/media/catalog/product/cache/cef1856f87f96c51952913c39aa1d996/r/u/ruger-security-9-magazine-2-pack-17-round.webp loadinglazy width240 height300 altRuger Security-9 Magazine 2-Pack - 17 Round titleRuger Security-9 Magazine 2-Pack - 17 Round> /a> div classflex flex-col flex-1> div classflex justify-between items-center> div classtext-sm leading-5 text-blue-500> Ruger /div> script> use strict; function amNotificationProductViewComponent_35077() { return { isAvailable: 1, isAvailableConfigurableSimple: true, isOutofstockConfigurable: 1, title: Availability, options: {}, productIndex: 35077, hideAddToCartBtn: , notificationLabel: Notify me when this product is in stock, productId: 35077, /** * Overridden method for Product Alert View Model to output url according to product id in js * * @param productIndex * @param type * @returns {*} */ getSubscriptionUrl(productIndex, type) { const urlParts xnotif/email/, type, /product_id/, productIndex, (parseInt(productIndex) ! parseInt(this.productId)) ? /parent_id/ + this.productId : , /uenc/, aHR0cHM6Ly93d3cua2VlcHNob290aW5nLmNvbS8, ; return BASE_URL + urlParts.join(); }, getSimpleProduct(data, el) { let children JSON.parse(); /** * hide addtocart button if simple for configurable product is out of stock */ window.addEventListener(configurable-select-changed, (event) > { let componentElement document.querySelector(x-dataamNotificationProductViewComponent_ + event.detail.productId + ()) || document.querySelector(#stock_notification_ + event.detail.productId); let parentElement componentElement.closest(.product-info); this.hideAddToCartBtn parentElement.querySelector(.btn.btn-primary:not(.subscribe-button)); }); //for pdp only window.addEventListener(configurable-selection-changed, (event) > { const addToCartButton document.getElementById(product-addtocart-button)?.closest(div); if (addToCartButton) { addToCartButton.style.display this.isAvailableConfigurableSimple ? flex : none; } }); const swatchesComponent (document.querySelector(x-datainitConfigurableSwatchOptions_ + data.productId + ()) || document.querySelector(x-datainitAmastyXnotifCatalogSwatchesMixin_ + data.productId + ()) || document.querySelector(x-datainitAmastyCustomStockStatusOptions_ + data.productId + ())); const swatchesCount swatchesComponent?.querySelector(div)?.children?.length || 0; for (const key, value of Object.entries(childrendata.productIndex || {})) { const previousIndex this.productIndex; this.productIndex data.productIndex; if (Object.keys(data.selectedValues).length > swatchesCount) { this.isAvailable Number(value); this.isAvailableConfigurableSimple Number(value); } if (this.hideAddToCartBtn) { this.hideAddToCartBtn.style.display !this.isAvailable ? none : flex; } // plp duplicating indexes case if (el && (previousIndex this.productIndex) && !this.isAvailable) { el.closest(.product-info).querySelector(.btn.btn-primary:not(.subscribe-button)).style.display none; } } }, getAvailable() { return this.options { additionalClass: this.isAvailable ? bg-green-500 : bg-red-500, label: this.isAvailable ? In stock : Out of stock, categoryNotificationLabel: this.isAvailable ? : this.notificationLabel, }; } } }/script>div x-data{ ...amNotificationProductViewComponent_35077(), ...amXnotifSubscribeComponentList_35077() } x-on:configurable-select-changed.windowgetSimpleProduct($event.detail, $el) x-showgetAvailable() idstock_notification_35077 classtext-right relative> p classflex items-center align-middle available gap-x-2 stock :class{ justify-center: 1, justify-start: , } :titletitle> span classw-3 h-3 rounded-full flex-shrink-0 :classoptions.additionalClass>/span> span x-textoptions.label>/span> /p> /div>script> use strict; function amXnotifSubscribeComponentList_35077() { return { mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) { AmxnotifStockSubscribe(input: $input) { response_message } }`, isInStock: 1, isConfigurable: , productIdentifier: 35077, isValid: true, buttonDisabled: false, getMessages(type, message) { return typeof window.dispatchMessages ! undefined && window.dispatchMessages( { type: type, text: message } ); }, fetchSubscribe(productId) { let variables { input: { product_uid: btoa(productId), parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : , } }; this.buttonDisabled true; fetch(BASE_URL + graphql, { method: POST, headers: { Store: default, Content-Type: application/json, }, body: JSON.stringify({query: this.mutationStockSubscription, variables}), mode: cors, credentials: include }) .then((response) > response.json()) .then((result) > { if (result?.data?.AmxnotifStockSubscribe) { this.getMessages(success, result.data.AmxnotifStockSubscribe.response_message); } else { let message result?.errors ? result.errors0.message : Something went wrong.; this.getMessages(error, message) } if (this.isConfigurable) { setTimeout(() > { window.dispatchEvent(new Event(showAmLoader)); window.location.reload() }, 2000) } }) .finally(() > { this.buttonDisabled false; }) } } }/script> /div> div classflex justify-between gap-2 items-baseline flex-1> a classproduct-item-link flex-1 text-lg leading-7 font-bold text-slate-800 hrefhttps://www.keepshooting.com/ruger-security-9-magazine-2-pack-17-round.html :id`slide-desc-35077-${$id(slider-id)}`> Ruger Security-9 Magazine 2-Pack - 17 Round /a> /div> div classmb-4 mt-2> /div> div classfont-normal text-blue-800 x-datainitPriceBox() x-deferintersect @update-prices-35077.windowupdatePrice($event.detail);> div classprice-box price-final_price data-rolepriceBox data-product-id35077 data-price-boxproduct-id-35077> span x-data x-idproduct\u002Dprice\u002D35077 classprice-container price-final_price tax weee> span :id$id(product\u002Dprice\u002D35077) data-price-amount55.26 data-price-typefinalPrice classprice-wrapper >span classprice>$55.26/span>/span> /span>/div> /div> div classflex flex-row justify-between mt-1 mb-4 text-sm leading-5> div classtext-right> p classflex items-center justify-end align-middle gap-x-2 stock before:w-3 before:h-3 before:rounded-full before:shrink-0 available before:bg-green-500 titleAvailability>In stock/p> /div> /div> div classflex gap-2 flex-wrap flex-1 items-end> div classflex-1 md:w-full md:flex-initial lg:w-auto lg:flex-1> button classbg-blue-500 rounded-md text-white py-3 font-medium flex items-center gap-2 w-full justify-center hover:bg-blue-600 px-3 2xl:px-6 aria-labelAdd to Cart Ruger Security-9 Magazine 2-Pack - 17 Round> svg xmlnshttp://www.w3.org/2000/svg fillnone viewbox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width20 height20> path stroke-linecapround stroke-linejoinround dM3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z>/path>/svg> span>Add to Cart/span> /button> /div> /div> /div> /form> form methodpost actionhttps://www.keepshooting.com/checkout/cart/add/uenc/%25uenc%25/product/35076/ classproduct-item product_addtocart_form shadow bg-white rounded-md p-4 flex flex-col hover:shadow-lg > input nameform_key typehidden valueLuzSoQ84a0oPMlpK> input typehidden nameproduct value35076> a hrefhttps://www.keepshooting.com/ruger-security-9-magazine-2-pack-15-round.html titleRuger Security-9 Magazine 2-Pack - 15 Round classproduct photo product-item-photo mb-2 mx-auto tabindex-1> img classproduct-image-photo x-data @update-gallery-35076.window$root.src $event.detail srchttps://www.keepshooting.com/media/catalog/product/cache/cef1856f87f96c51952913c39aa1d996/r/u/ruger-security-9-magazine-2-pack-15-round.webp loadinglazy width240 height300 altRuger Security-9 Magazine 2-Pack - 15 Round titleRuger Security-9 Magazine 2-Pack - 15 Round> /a> div classflex flex-col flex-1> div classflex justify-between items-center> div classtext-sm leading-5 text-blue-500> Ruger /div> script> use strict; function amNotificationProductViewComponent_35076() { return { isAvailable: 1, isAvailableConfigurableSimple: true, isOutofstockConfigurable: 1, title: Availability, options: {}, productIndex: 35076, hideAddToCartBtn: , notificationLabel: Notify me when this product is in stock, productId: 35076, /** * Overridden method for Product Alert View Model to output url according to product id in js * * @param productIndex * @param type * @returns {*} */ getSubscriptionUrl(productIndex, type) { const urlParts xnotif/email/, type, /product_id/, productIndex, (parseInt(productIndex) ! parseInt(this.productId)) ? /parent_id/ + this.productId : , /uenc/, aHR0cHM6Ly93d3cua2VlcHNob290aW5nLmNvbS8, ; return BASE_URL + urlParts.join(); }, getSimpleProduct(data, el) { let children JSON.parse(); /** * hide addtocart button if simple for configurable product is out of stock */ window.addEventListener(configurable-select-changed, (event) > { let componentElement document.querySelector(x-dataamNotificationProductViewComponent_ + event.detail.productId + ()) || document.querySelector(#stock_notification_ + event.detail.productId); let parentElement componentElement.closest(.product-info); this.hideAddToCartBtn parentElement.querySelector(.btn.btn-primary:not(.subscribe-button)); }); //for pdp only window.addEventListener(configurable-selection-changed, (event) > { const addToCartButton document.getElementById(product-addtocart-button)?.closest(div); if (addToCartButton) { addToCartButton.style.display this.isAvailableConfigurableSimple ? flex : none; } }); const swatchesComponent (document.querySelector(x-datainitConfigurableSwatchOptions_ + data.productId + ()) || document.querySelector(x-datainitAmastyXnotifCatalogSwatchesMixin_ + data.productId + ()) || document.querySelector(x-datainitAmastyCustomStockStatusOptions_ + data.productId + ())); const swatchesCount swatchesComponent?.querySelector(div)?.children?.length || 0; for (const key, value of Object.entries(childrendata.productIndex || {})) { const previousIndex this.productIndex; this.productIndex data.productIndex; if (Object.keys(data.selectedValues).length > swatchesCount) { this.isAvailable Number(value); this.isAvailableConfigurableSimple Number(value); } if (this.hideAddToCartBtn) { this.hideAddToCartBtn.style.display !this.isAvailable ? none : flex; } // plp duplicating indexes case if (el && (previousIndex this.productIndex) && !this.isAvailable) { el.closest(.product-info).querySelector(.btn.btn-primary:not(.subscribe-button)).style.display none; } } }, getAvailable() { return this.options { additionalClass: this.isAvailable ? bg-green-500 : bg-red-500, label: this.isAvailable ? In stock : Out of stock, categoryNotificationLabel: this.isAvailable ? : this.notificationLabel, }; } } }/script>div x-data{ ...amNotificationProductViewComponent_35076(), ...amXnotifSubscribeComponentList_35076() } x-on:configurable-select-changed.windowgetSimpleProduct($event.detail, $el) x-showgetAvailable() idstock_notification_35076 classtext-right relative> p classflex items-center align-middle available gap-x-2 stock :class{ justify-center: 1, justify-start: , } :titletitle> span classw-3 h-3 rounded-full flex-shrink-0 :classoptions.additionalClass>/span> span x-textoptions.label>/span> /p> /div>script> use strict; function amXnotifSubscribeComponentList_35076() { return { mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) { AmxnotifStockSubscribe(input: $input) { response_message } }`, isInStock: 1, isConfigurable: , productIdentifier: 35076, isValid: true, buttonDisabled: false, getMessages(type, message) { return typeof window.dispatchMessages ! undefined && window.dispatchMessages( { type: type, text: message } ); }, fetchSubscribe(productId) { let variables { input: { product_uid: btoa(productId), parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : , } }; this.buttonDisabled true; fetch(BASE_URL + graphql, { method: POST, headers: { Store: default, Content-Type: application/json, }, body: JSON.stringify({query: this.mutationStockSubscription, variables}), mode: cors, credentials: include }) .then((response) > response.json()) .then((result) > { if (result?.data?.AmxnotifStockSubscribe) { this.getMessages(success, result.data.AmxnotifStockSubscribe.response_message); } else { let message result?.errors ? result.errors0.message : Something went wrong.; this.getMessages(error, message) } if (this.isConfigurable) { setTimeout(() > { window.dispatchEvent(new Event(showAmLoader)); window.location.reload() }, 2000) } }) .finally(() > { this.buttonDisabled false; }) } } }/script> /div> div classflex justify-between gap-2 items-baseline flex-1> a classproduct-item-link flex-1 text-lg leading-7 font-bold text-slate-800 hrefhttps://www.keepshooting.com/ruger-security-9-magazine-2-pack-15-round.html :id`slide-desc-35076-${$id(slider-id)}`> Ruger Security-9 Magazine 2-Pack - 15 Round /a> /div> div classmb-4 mt-2> /div> div classfont-normal text-blue-800 x-datainitPriceBox() x-deferintersect @update-prices-35076.windowupdatePrice($event.detail);> div classprice-box price-final_price data-rolepriceBox data-product-id35076 data-price-boxproduct-id-35076> span x-data x-idproduct\u002Dprice\u002D35076 classprice-container price-final_price tax weee> span :id$id(product\u002Dprice\u002D35076) data-price-amount55.13 data-price-typefinalPrice classprice-wrapper >span classprice>$55.13/span>/span> /span>/div> /div> div classflex flex-row justify-between mt-1 mb-4 text-sm leading-5> div classtext-right> p classflex items-center justify-end align-middle gap-x-2 stock before:w-3 before:h-3 before:rounded-full before:shrink-0 available before:bg-green-500 titleAvailability>In stock/p> /div> /div> div classflex gap-2 flex-wrap flex-1 items-end> div classflex-1 md:w-full md:flex-initial lg:w-auto lg:flex-1> button classbg-blue-500 rounded-md text-white py-3 font-medium flex items-center gap-2 w-full justify-center hover:bg-blue-600 px-3 2xl:px-6 aria-labelAdd to Cart Ruger Security-9 Magazine 2-Pack - 15 Round> svg xmlnshttp://www.w3.org/2000/svg fillnone viewbox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width20 height20> path stroke-linecapround stroke-linejoinround dM3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z>/path>/svg> span>Add to Cart/span> /button> /div> /div> /div> /form> form methodpost actionhttps://www.keepshooting.com/checkout/cart/add/uenc/%25uenc%25/product/35075/ classproduct-item product_addtocart_form shadow bg-white rounded-md p-4 flex flex-col hover:shadow-lg > input nameform_key typehidden valueLuzSoQ84a0oPMlpK> input typehidden nameproduct value35075> a hrefhttps://www.keepshooting.com/ruger-security-9-compact-magazine-10-round.html titleRuger Security-9 Compact Magazine - 10 Round classproduct photo product-item-photo mb-2 mx-auto tabindex-1> img classproduct-image-photo x-data @update-gallery-35075.window$root.src $event.detail srchttps://www.keepshooting.com/media/catalog/product/cache/cef1856f87f96c51952913c39aa1d996/r/u/ruger-security-9-compact-magazine-10-round.webp loadinglazy width240 height300 altRuger Security-9 Compact Magazine - 10 Round titleRuger Security-9 Compact Magazine - 10 Round> /a> div classflex flex-col flex-1> div classflex justify-between items-center> div classtext-sm leading-5 text-blue-500> Ruger /div> script> use strict; function amNotificationProductViewComponent_35075() { return { isAvailable: 1, isAvailableConfigurableSimple: true, isOutofstockConfigurable: 1, title: Availability, options: {}, productIndex: 35075, hideAddToCartBtn: , notificationLabel: Notify me when this product is in stock, productId: 35075, /** * Overridden method for Product Alert View Model to output url according to product id in js * * @param productIndex * @param type * @returns {*} */ getSubscriptionUrl(productIndex, type) { const urlParts xnotif/email/, type, /product_id/, productIndex, (parseInt(productIndex) ! parseInt(this.productId)) ? /parent_id/ + this.productId : , /uenc/, aHR0cHM6Ly93d3cua2VlcHNob290aW5nLmNvbS8, ; return BASE_URL + urlParts.join(); }, getSimpleProduct(data, el) { let children JSON.parse(); /** * hide addtocart button if simple for configurable product is out of stock */ window.addEventListener(configurable-select-changed, (event) > { let componentElement document.querySelector(x-dataamNotificationProductViewComponent_ + event.detail.productId + ()) || document.querySelector(#stock_notification_ + event.detail.productId); let parentElement componentElement.closest(.product-info); this.hideAddToCartBtn parentElement.querySelector(.btn.btn-primary:not(.subscribe-button)); }); //for pdp only window.addEventListener(configurable-selection-changed, (event) > { const addToCartButton document.getElementById(product-addtocart-button)?.closest(div); if (addToCartButton) { addToCartButton.style.display this.isAvailableConfigurableSimple ? flex : none; } }); const swatchesComponent (document.querySelector(x-datainitConfigurableSwatchOptions_ + data.productId + ()) || document.querySelector(x-datainitAmastyXnotifCatalogSwatchesMixin_ + data.productId + ()) || document.querySelector(x-datainitAmastyCustomStockStatusOptions_ + data.productId + ())); const swatchesCount swatchesComponent?.querySelector(div)?.children?.length || 0; for (const key, value of Object.entries(childrendata.productIndex || {})) { const previousIndex this.productIndex; this.productIndex data.productIndex; if (Object.keys(data.selectedValues).length > swatchesCount) { this.isAvailable Number(value); this.isAvailableConfigurableSimple Number(value); } if (this.hideAddToCartBtn) { this.hideAddToCartBtn.style.display !this.isAvailable ? none : flex; } // plp duplicating indexes case if (el && (previousIndex this.productIndex) && !this.isAvailable) { el.closest(.product-info).querySelector(.btn.btn-primary:not(.subscribe-button)).style.display none; } } }, getAvailable() { return this.options { additionalClass: this.isAvailable ? bg-green-500 : bg-red-500, label: this.isAvailable ? In stock : Out of stock, categoryNotificationLabel: this.isAvailable ? : this.notificationLabel, }; } } }/script>div x-data{ ...amNotificationProductViewComponent_35075(), ...amXnotifSubscribeComponentList_35075() } x-on:configurable-select-changed.windowgetSimpleProduct($event.detail, $el) x-showgetAvailable() idstock_notification_35075 classtext-right relative> p classflex items-center align-middle available gap-x-2 stock :class{ justify-center: 1, justify-start: , } :titletitle> span classw-3 h-3 rounded-full flex-shrink-0 :classoptions.additionalClass>/span> span x-textoptions.label>/span> /p> /div>script> use strict; function amXnotifSubscribeComponentList_35075() { return { mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) { AmxnotifStockSubscribe(input: $input) { response_message } }`, isInStock: 1, isConfigurable: , productIdentifier: 35075, isValid: true, buttonDisabled: false, getMessages(type, message) { return typeof window.dispatchMessages ! undefined && window.dispatchMessages( { type: type, text: message } ); }, fetchSubscribe(productId) { let variables { input: { product_uid: btoa(productId), parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : , } }; this.buttonDisabled true; fetch(BASE_URL + graphql, { method: POST, headers: { Store: default, Content-Type: application/json, }, body: JSON.stringify({query: this.mutationStockSubscription, variables}), mode: cors, credentials: include }) .then((response) > response.json()) .then((result) > { if (result?.data?.AmxnotifStockSubscribe) { this.getMessages(success, result.data.AmxnotifStockSubscribe.response_message); } else { let message result?.errors ? result.errors0.message : Something went wrong.; this.getMessages(error, message) } if (this.isConfigurable) { setTimeout(() > { window.dispatchEvent(new Event(showAmLoader)); window.location.reload() }, 2000) } }) .finally(() > { this.buttonDisabled false; }) } } }/script> /div> div classflex justify-between gap-2 items-baseline flex-1> a classproduct-item-link flex-1 text-lg leading-7 font-bold text-slate-800 hrefhttps://www.keepshooting.com/ruger-security-9-compact-magazine-10-round.html :id`slide-desc-35075-${$id(slider-id)}`> Ruger Security-9 Compact Magazine - 10 Round /a> /div> div classmb-4 mt-2> /div> div classfont-normal text-blue-800 x-datainitPriceBox() x-deferintersect @update-prices-35075.windowupdatePrice($event.detail);> div classprice-box price-final_price data-rolepriceBox data-product-id35075 data-price-boxproduct-id-35075> span x-data x-idproduct\u002Dprice\u002D35075 classprice-container price-final_price tax weee> span :id$id(product\u002Dprice\u002D35075) data-price-amount34.33 data-price-typefinalPrice classprice-wrapper >span classprice>$34.33/span>/span> /span>/div> /div> div classflex flex-row justify-between mt-1 mb-4 text-sm leading-5> div classtext-right> p classflex items-center justify-end align-middle gap-x-2 stock before:w-3 before:h-3 before:rounded-full before:shrink-0 available before:bg-green-500 titleAvailability>In stock/p> /div> /div> div classflex gap-2 flex-wrap flex-1 items-end> div classflex-1 md:w-full md:flex-initial lg:w-auto lg:flex-1> button classbg-blue-500 rounded-md text-white py-3 font-medium flex items-center gap-2 w-full justify-center hover:bg-blue-600 px-3 2xl:px-6 aria-labelAdd to Cart Ruger Security-9 Compact Magazine - 10 Round> svg xmlnshttp://www.w3.org/2000/svg fillnone viewbox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width20 height20> path stroke-linecapround stroke-linejoinround dM3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z>/path>/svg> span>Add to Cart/span> /button> /div> /div> /div> /form> form methodpost actionhttps://www.keepshooting.com/checkout/cart/add/uenc/%25uenc%25/product/35074/ classproduct-item product_addtocart_form shadow bg-white rounded-md p-4 flex flex-col hover:shadow-lg > input nameform_key typehidden valueLuzSoQ84a0oPMlpK> input typehidden nameproduct value35074> a hrefhttps://www.keepshooting.com/winchester-m855-ss109-5-56x45mm-nato-ammo-62-grain-penetrator-fmj.html titleWinchester M855 SS109 5.56x45mm NATO Ammo - 62 Grain Penetrator FMJ classproduct photo product-item-photo mb-2 mx-auto tabindex-1> img classproduct-image-photo x-data @update-gallery-35074.window$root.src $event.detail srchttps://www.keepshooting.com/media/catalog/product/cache/cef1856f87f96c51952913c39aa1d996/w/i/winchester-m855-ss109-556-nato-ammo-62gr-penatrator-fmj.webp loadinglazy width240 height300 altWinchester M855 SS109 5.56x45mm NATO Ammo - 62 Grain Penetrator FMJ titleWinchester M855 SS109 5.56x45mm NATO Ammo - 62 Grain Penetrator FMJ> /a> div classflex flex-col flex-1> div classflex justify-between items-center> div classtext-sm leading-5 text-blue-500> Winchester /div> script> use strict; function amNotificationProductViewComponent_35074() { return { isAvailable: 1, isAvailableConfigurableSimple: true, isOutofstockConfigurable: 1, title: Availability, options: {}, productIndex: 35074, hideAddToCartBtn: , notificationLabel: Notify me when this product is in stock, productId: 35074, /** * Overridden method for Product Alert View Model to output url according to product id in js * * @param productIndex * @param type * @returns {*} */ getSubscriptionUrl(productIndex, type) { const urlParts xnotif/email/, type, /product_id/, productIndex, (parseInt(productIndex) ! parseInt(this.productId)) ? /parent_id/ + this.productId : , /uenc/, aHR0cHM6Ly93d3cua2VlcHNob290aW5nLmNvbS8, ; return BASE_URL + urlParts.join(); }, getSimpleProduct(data, el) { let children JSON.parse(); /** * hide addtocart button if simple for configurable product is out of stock */ window.addEventListener(configurable-select-changed, (event) > { let componentElement document.querySelector(x-dataamNotificationProductViewComponent_ + event.detail.productId + ()) || document.querySelector(#stock_notification_ + event.detail.productId); let parentElement componentElement.closest(.product-info); this.hideAddToCartBtn parentElement.querySelector(.btn.btn-primary:not(.subscribe-button)); }); //for pdp only window.addEventListener(configurable-selection-changed, (event) > { const addToCartButton document.getElementById(product-addtocart-button)?.closest(div); if (addToCartButton) { addToCartButton.style.display this.isAvailableConfigurableSimple ? flex : none; } }); const swatchesComponent (document.querySelector(x-datainitConfigurableSwatchOptions_ + data.productId + ()) || document.querySelector(x-datainitAmastyXnotifCatalogSwatchesMixin_ + data.productId + ()) || document.querySelector(x-datainitAmastyCustomStockStatusOptions_ + data.productId + ())); const swatchesCount swatchesComponent?.querySelector(div)?.children?.length || 0; for (const key, value of Object.entries(childrendata.productIndex || {})) { const previousIndex this.productIndex; this.productIndex data.productIndex; if (Object.keys(data.selectedValues).length > swatchesCount) { this.isAvailable Number(value); this.isAvailableConfigurableSimple Number(value); } if (this.hideAddToCartBtn) { this.hideAddToCartBtn.style.display !this.isAvailable ? none : flex; } // plp duplicating indexes case if (el && (previousIndex this.productIndex) && !this.isAvailable) { el.closest(.product-info).querySelector(.btn.btn-primary:not(.subscribe-button)).style.display none; } } }, getAvailable() { return this.options { additionalClass: this.isAvailable ? bg-green-500 : bg-red-500, label: this.isAvailable ? In stock : Out of stock, categoryNotificationLabel: this.isAvailable ? : this.notificationLabel, }; } } }/script>div x-data{ ...amNotificationProductViewComponent_35074(), ...amXnotifSubscribeComponentList_35074() } x-on:configurable-select-changed.windowgetSimpleProduct($event.detail, $el) x-showgetAvailable() idstock_notification_35074 classtext-right relative> p classflex items-center align-middle available gap-x-2 stock :class{ justify-center: 1, justify-start: , } :titletitle> span classw-3 h-3 rounded-full flex-shrink-0 :classoptions.additionalClass>/span> span x-textoptions.label>/span> /p> /div>script> use strict; function amXnotifSubscribeComponentList_35074() { return { mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) { AmxnotifStockSubscribe(input: $input) { response_message } }`, isInStock: 1, isConfigurable: , productIdentifier: 35074, isValid: true, buttonDisabled: false, getMessages(type, message) { return typeof window.dispatchMessages ! undefined && window.dispatchMessages( { type: type, text: message } ); }, fetchSubscribe(productId) { let variables { input: { product_uid: btoa(productId), parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : , } }; this.buttonDisabled true; fetch(BASE_URL + graphql, { method: POST, headers: { Store: default, Content-Type: application/json, }, body: JSON.stringify({query: this.mutationStockSubscription, variables}), mode: cors, credentials: include }) .then((response) > response.json()) .then((result) > { if (result?.data?.AmxnotifStockSubscribe) { this.getMessages(success, result.data.AmxnotifStockSubscribe.response_message); } else { let message result?.errors ? result.errors0.message : Something went wrong.; this.getMessages(error, message) } if (this.isConfigurable) { setTimeout(() > { window.dispatchEvent(new Event(showAmLoader)); window.location.reload() }, 2000) } }) .finally(() > { this.buttonDisabled false; }) } } }/script> /div> div classflex justify-between gap-2 items-baseline flex-1> a classproduct-item-link flex-1 text-lg leading-7 font-bold text-slate-800 hrefhttps://www.keepshooting.com/winchester-m855-ss109-5-56x45mm-nato-ammo-62-grain-penetrator-fmj.html :id`slide-desc-35074-${$id(slider-id)}`> Winchester M855 SS109 5.56x45mm NATO Ammo - 62 Grain Penetrator FMJ /a> /div> div classmb-4 mt-2> /div> div classfont-normal text-blue-800 x-datainitPriceBox() x-deferintersect @update-prices-35074.windowupdatePrice($event.detail);> div classprice-box price-final_price data-rolepriceBox data-product-id35074 data-price-boxproduct-id-35074> span x-data x-idproduct\u002Dprice\u002D35074 classprice-container price-final_price tax weee> span :id$id(product\u002Dprice\u002D35074) data-price-amount14.95 data-price-typefinalPrice classprice-wrapper >span classprice>$14.95/span>/span> /span>/div> /div> div classflex flex-row justify-between mt-1 mb-4 text-sm leading-5> div classtext-right> p classflex items-center justify-end align-middle gap-x-2 stock before:w-3 before:h-3 before:rounded-full before:shrink-0 available before:bg-green-500 titleAvailability>In stock/p> /div> /div> div classflex gap-2 flex-wrap flex-1 items-end> div classflex-1 md:w-full md:flex-initial lg:w-auto lg:flex-1> button classbg-blue-500 rounded-md text-white py-3 font-medium flex items-center gap-2 w-full justify-center hover:bg-blue-600 px-3 2xl:px-6 aria-labelAdd to Cart Winchester M855 SS109 5.56x45mm NATO Ammo - 62 Grain Penetrator FMJ> svg xmlnshttp://www.w3.org/2000/svg fillnone viewbox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width20 height20> path stroke-linecapround stroke-linejoinround dM3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z>/path>/svg> span>Add to Cart/span> /button> /div> /div> /div> /form> form methodpost actionhttps://www.keepshooting.com/checkout/cart/add/uenc/%25uenc%25/product/35073/ classproduct-item product_addtocart_form shadow bg-white rounded-md p-4 flex flex-col hover:shadow-lg > input nameform_key typehidden valueLuzSoQ84a0oPMlpK> input typehidden nameproduct value35073> a hrefhttps://www.keepshooting.com/wilson-combat-1911-45acp-7-round-magazine-with-standard-base-pad.html titleWilson Combat 1911 45ACP 7-Round Magazine with Standard Base Pad classproduct photo product-item-photo mb-2 mx-auto tabindex-1> img classproduct-image-photo x-data @update-gallery-35073.window$root.src $event.detail srchttps://www.keepshooting.com/media/catalog/product/cache/cef1856f87f96c51952913c39aa1d996/w/i/wilson-combat-1911-45acp-7rd-magazine-standard-base-pad.webp loadinglazy width240 height300 altWilson Combat 1911 45ACP 7-Round Magazine with Standard Base Pad titleWilson Combat 1911 45ACP 7-Round Magazine with Standard Base Pad> /a> div classflex flex-col flex-1> div classflex justify-between items-center> div classtext-sm leading-5 text-blue-500> Wilson Combat /div> script> use strict; function amNotificationProductViewComponent_35073() { return { isAvailable: 1, isAvailableConfigurableSimple: true, isOutofstockConfigurable: 1, title: Availability, options: {}, productIndex: 35073, hideAddToCartBtn: , notificationLabel: Notify me when this product is in stock, productId: 35073, /** * Overridden method for Product Alert View Model to output url according to product id in js * * @param productIndex * @param type * @returns {*} */ getSubscriptionUrl(productIndex, type) { const urlParts xnotif/email/, type, /product_id/, productIndex, (parseInt(productIndex) ! parseInt(this.productId)) ? /parent_id/ + this.productId : , /uenc/, aHR0cHM6Ly93d3cua2VlcHNob290aW5nLmNvbS8, ; return BASE_URL + urlParts.join(); }, getSimpleProduct(data, el) { let children JSON.parse(); /** * hide addtocart button if simple for configurable product is out of stock */ window.addEventListener(configurable-select-changed, (event) > { let componentElement document.querySelector(x-dataamNotificationProductViewComponent_ + event.detail.productId + ()) || document.querySelector(#stock_notification_ + event.detail.productId); let parentElement componentElement.closest(.product-info); this.hideAddToCartBtn parentElement.querySelector(.btn.btn-primary:not(.subscribe-button)); }); //for pdp only window.addEventListener(configurable-selection-changed, (event) > { const addToCartButton document.getElementById(product-addtocart-button)?.closest(div); if (addToCartButton) { addToCartButton.style.display this.isAvailableConfigurableSimple ? flex : none; } }); const swatchesComponent (document.querySelector(x-datainitConfigurableSwatchOptions_ + data.productId + ()) || document.querySelector(x-datainitAmastyXnotifCatalogSwatchesMixin_ + data.productId + ()) || document.querySelector(x-datainitAmastyCustomStockStatusOptions_ + data.productId + ())); const swatchesCount swatchesComponent?.querySelector(div)?.children?.length || 0; for (const key, value of Object.entries(childrendata.productIndex || {})) { const previousIndex this.productIndex; this.productIndex data.productIndex; if (Object.keys(data.selectedValues).length > swatchesCount) { this.isAvailable Number(value); this.isAvailableConfigurableSimple Number(value); } if (this.hideAddToCartBtn) { this.hideAddToCartBtn.style.display !this.isAvailable ? none : flex; } // plp duplicating indexes case if (el && (previousIndex this.productIndex) && !this.isAvailable) { el.closest(.product-info).querySelector(.btn.btn-primary:not(.subscribe-button)).style.display none; } } }, getAvailable() { return this.options { additionalClass: this.isAvailable ? bg-green-500 : bg-red-500, label: this.isAvailable ? In stock : Out of stock, categoryNotificationLabel: this.isAvailable ? : this.notificationLabel, }; } } }/script>div x-data{ ...amNotificationProductViewComponent_35073(), ...amXnotifSubscribeComponentList_35073() } x-on:configurable-select-changed.windowgetSimpleProduct($event.detail, $el) x-showgetAvailable() idstock_notification_35073 classtext-right relative> p classflex items-center align-middle available gap-x-2 stock :class{ justify-center: 1, justify-start: , } :titletitle> span classw-3 h-3 rounded-full flex-shrink-0 :classoptions.additionalClass>/span> span x-textoptions.label>/span> /p> /div>script> use strict; function amXnotifSubscribeComponentList_35073() { return { mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) { AmxnotifStockSubscribe(input: $input) { response_message } }`, isInStock: 1, isConfigurable: , productIdentifier: 35073, isValid: true, buttonDisabled: false, getMessages(type, message) { return typeof window.dispatchMessages ! undefined && window.dispatchMessages( { type: type, text: message } ); }, fetchSubscribe(productId) { let variables { input: { product_uid: btoa(productId), parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : , } }; this.buttonDisabled true; fetch(BASE_URL + graphql, { method: POST, headers: { Store: default, Content-Type: application/json, }, body: JSON.stringify({query: this.mutationStockSubscription, variables}), mode: cors, credentials: include }) .then((response) > response.json()) .then((result) > { if (result?.data?.AmxnotifStockSubscribe) { this.getMessages(success, result.data.AmxnotifStockSubscribe.response_message); } else { let message result?.errors ? result.errors0.message : Something went wrong.; this.getMessages(error, message) } if (this.isConfigurable) { setTimeout(() > { window.dispatchEvent(new Event(showAmLoader)); window.location.reload() }, 2000) } }) .finally(() > { this.buttonDisabled false; }) } } }/script> /div> div classflex justify-between gap-2 items-baseline flex-1> a classproduct-item-link flex-1 text-lg leading-7 font-bold text-slate-800 hrefhttps://www.keepshooting.com/wilson-combat-1911-45acp-7-round-magazine-with-standard-base-pad.html :id`slide-desc-35073-${$id(slider-id)}`> Wilson Combat 1911 45ACP 7-Round Magazine with Standard Base Pad /a> /div> div classmb-4 mt-2> /div> div classfont-normal text-blue-800 x-datainitPriceBox() x-deferintersect @update-prices-35073.windowupdatePrice($event.detail);> div classprice-box price-final_price data-rolepriceBox data-product-id35073 data-price-boxproduct-id-35073> span x-data x-idproduct\u002Dprice\u002D35073 classprice-container price-final_price tax weee> span :id$id(product\u002Dprice\u002D35073) data-price-amount41.43 data-price-typefinalPrice classprice-wrapper >span classprice>$41.43/span>/span> /span>/div> /div> div classflex flex-row justify-between mt-1 mb-4 text-sm leading-5> div classtext-right> p classflex items-center justify-end align-middle gap-x-2 stock before:w-3 before:h-3 before:rounded-full before:shrink-0 available before:bg-green-500 titleAvailability>In stock/p> /div> /div> div classflex gap-2 flex-wrap flex-1 items-end> div classflex-1 md:w-full md:flex-initial lg:w-auto lg:flex-1> button classbg-blue-500 rounded-md text-white py-3 font-medium flex items-center gap-2 w-full justify-center hover:bg-blue-600 px-3 2xl:px-6 aria-labelAdd to Cart Wilson Combat 1911 45ACP 7-Round Magazine with Standard Base Pad> svg xmlnshttp://www.w3.org/2000/svg fillnone viewbox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width20 height20> path stroke-linecapround stroke-linejoinround dM3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z>/path>/svg> span>Add to Cart/span> /button> /div> /div> /div> /form> form methodpost actionhttps://www.keepshooting.com/checkout/cart/add/uenc/%25uenc%25/product/35072/ classproduct-item product_addtocart_form shadow bg-white rounded-md p-4 flex flex-col hover:shadow-lg > input nameform_key typehidden valueLuzSoQ84a0oPMlpK> input typehidden nameproduct value35072> a hrefhttps://www.keepshooting.com/federal-premium-copper-plated-buckshot-12-gauge-ammo.html titleFederal Premium Copper Plated Buckshot 12 Gauge Ammo classproduct photo product-item-photo mb-2 mx-auto tabindex-1> img classproduct-image-photo x-data @update-gallery-35072.window$root.src $event.detail srchttps://www.keepshooting.com/media/catalog/product/cache/cef1856f87f96c51952913c39aa1d996/f/e/federal-premium-copper-plated-buckshot-12ga-ammo.webp loadinglazy width240 height300 altFederal Premium Copper Plated Buckshot 12 Gauge Ammo titleFederal Premium Copper Plated Buckshot 12 Gauge Ammo> /a> div classflex flex-col flex-1> div classflex justify-between items-center> div classtext-sm leading-5 text-blue-500> Federal /div> script> use strict; function amNotificationProductViewComponent_35072() { return { isAvailable: 1, isAvailableConfigurableSimple: true, isOutofstockConfigurable: 1, title: Availability, options: {}, productIndex: 35072, hideAddToCartBtn: , notificationLabel: Notify me when this product is in stock, productId: 35072, /** * Overridden method for Product Alert View Model to output url according to product id in js * * @param productIndex * @param type * @returns {*} */ getSubscriptionUrl(productIndex, type) { const urlParts xnotif/email/, type, /product_id/, productIndex, (parseInt(productIndex) ! parseInt(this.productId)) ? /parent_id/ + this.productId : , /uenc/, aHR0cHM6Ly93d3cua2VlcHNob290aW5nLmNvbS8, ; return BASE_URL + urlParts.join(); }, getSimpleProduct(data, el) { let children JSON.parse(); /** * hide addtocart button if simple for configurable product is out of stock */ window.addEventListener(configurable-select-changed, (event) > { let componentElement document.querySelector(x-dataamNotificationProductViewComponent_ + event.detail.productId + ()) || document.querySelector(#stock_notification_ + event.detail.productId); let parentElement componentElement.closest(.product-info); this.hideAddToCartBtn parentElement.querySelector(.btn.btn-primary:not(.subscribe-button)); }); //for pdp only window.addEventListener(configurable-selection-changed, (event) > { const addToCartButton document.getElementById(product-addtocart-button)?.closest(div); if (addToCartButton) { addToCartButton.style.display this.isAvailableConfigurableSimple ? flex : none; } }); const swatchesComponent (document.querySelector(x-datainitConfigurableSwatchOptions_ + data.productId + ()) || document.querySelector(x-datainitAmastyXnotifCatalogSwatchesMixin_ + data.productId + ()) || document.querySelector(x-datainitAmastyCustomStockStatusOptions_ + data.productId + ())); const swatchesCount swatchesComponent?.querySelector(div)?.children?.length || 0; for (const key, value of Object.entries(childrendata.productIndex || {})) { const previousIndex this.productIndex; this.productIndex data.productIndex; if (Object.keys(data.selectedValues).length > swatchesCount) { this.isAvailable Number(value); this.isAvailableConfigurableSimple Number(value); } if (this.hideAddToCartBtn) { this.hideAddToCartBtn.style.display !this.isAvailable ? none : flex; } // plp duplicating indexes case if (el && (previousIndex this.productIndex) && !this.isAvailable) { el.closest(.product-info).querySelector(.btn.btn-primary:not(.subscribe-button)).style.display none; } } }, getAvailable() { return this.options { additionalClass: this.isAvailable ? bg-green-500 : bg-red-500, label: this.isAvailable ? In stock : Out of stock, categoryNotificationLabel: this.isAvailable ? : this.notificationLabel, }; } } }/script>div x-data{ ...amNotificationProductViewComponent_35072(), ...amXnotifSubscribeComponentList_35072() } x-on:configurable-select-changed.windowgetSimpleProduct($event.detail, $el) x-showgetAvailable() idstock_notification_35072 classtext-right relative> p classflex items-center align-middle available gap-x-2 stock :class{ justify-center: 1, justify-start: , } :titletitle> span classw-3 h-3 rounded-full flex-shrink-0 :classoptions.additionalClass>/span> span x-textoptions.label>/span> /p> /div>script> use strict; function amXnotifSubscribeComponentList_35072() { return { mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) { AmxnotifStockSubscribe(input: $input) { response_message } }`, isInStock: 1, isConfigurable: , productIdentifier: 35072, isValid: true, buttonDisabled: false, getMessages(type, message) { return typeof window.dispatchMessages ! undefined && window.dispatchMessages( { type: type, text: message } ); }, fetchSubscribe(productId) { let variables { input: { product_uid: btoa(productId), parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : , } }; this.buttonDisabled true; fetch(BASE_URL + graphql, { method: POST, headers: { Store: default, Content-Type: application/json, }, body: JSON.stringify({query: this.mutationStockSubscription, variables}), mode: cors, credentials: include }) .then((response) > response.json()) .then((result) > { if (result?.data?.AmxnotifStockSubscribe) { this.getMessages(success, result.data.AmxnotifStockSubscribe.response_message); } else { let message result?.errors ? result.errors0.message : Something went wrong.; this.getMessages(error, message) } if (this.isConfigurable) { setTimeout(() > { window.dispatchEvent(new Event(showAmLoader)); window.location.reload() }, 2000) } }) .finally(() > { this.buttonDisabled false; }) } } }/script> /div> div classflex justify-between gap-2 items-baseline flex-1> a classproduct-item-link flex-1 text-lg leading-7 font-bold text-slate-800 hrefhttps://www.keepshooting.com/federal-premium-copper-plated-buckshot-12-gauge-ammo.html :id`slide-desc-35072-${$id(slider-id)}`> Federal Premium Copper Plated Buckshot 12 Gauge Ammo /a> /div> div classmb-4 mt-2> /div> div classfont-normal text-blue-800 x-datainitPriceBox() x-deferintersect @update-prices-35072.windowupdatePrice($event.detail);> div classprice-box price-final_price data-rolepriceBox data-product-id35072 data-price-boxproduct-id-35072> span x-data x-idproduct\u002Dprice\u002D35072 classprice-container price-final_price tax weee> span :id$id(product\u002Dprice\u002D35072) data-price-amount16.24 data-price-typefinalPrice classprice-wrapper >span classprice>$16.24/span>/span> /span>/div> /div> div classflex flex-row justify-between mt-1 mb-4 text-sm leading-5> div classtext-right> p classflex items-center justify-end align-middle gap-x-2 stock before:w-3 before:h-3 before:rounded-full before:shrink-0 available before:bg-green-500 titleAvailability>In stock/p> /div> /div> div classflex gap-2 flex-wrap flex-1 items-end> div classflex-1 md:w-full md:flex-initial lg:w-auto lg:flex-1> button classbg-blue-500 rounded-md text-white py-3 font-medium flex items-center gap-2 w-full justify-center hover:bg-blue-600 px-3 2xl:px-6 aria-labelAdd to Cart Federal Premium Copper Plated Buckshot 12 Gauge Ammo> svg xmlnshttp://www.w3.org/2000/svg fillnone viewbox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width20 height20> path stroke-linecapround stroke-linejoinround dM3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z>/path>/svg> span>Add to Cart/span> /button> /div> /div> /div> /form> /div> /div> /div>/div>/div>/div>/div>/div>div data-content-typeblock data-appearancedefault data-elementmain>div classwidget block block-static-block> div data-content-typehtml data-appearancedefault data-elementmain data-decodedtrue>div classp-6 leading-6 text-gray-600> div classflex flex-col items-center gap-2> span classuppercase text-#E4AD3C bg-#000035 rounded px-2 py-1 text-lg leading-7 font-bold md:text-xl> Why KEEP SHOOTING? /span> div classtext-4xl leading-10 font-bold text-gray-800 md:text-5xl> Here’s why. /div> /div> div classmt-8 grid gap-4 md:grid-cols-2> div classflex flex-col items-center gap-4 bg-blue-100 rounded-xl py-6 px-12> div> div classw-16 h-16 bg-blue-600 text-white rounded-full flex justify-center items-center> svg xmlnshttp://www.w3.org/2000/svg viewbox0 0 20 20 fillcurrentColor aria-hiddentrue classw-12 h-12 fill-current width48 height48 roleimg> path fill-ruleevenodd dM2.166 4.999A11.954 11.954 0 0010 1.944 11.954 11.954 0 0017.834 5c.11.65.166 1.32.166 2.001 0 5.225-3.34 9.67-8 11.317C5.34 16.67 2 12.225 2 7c0-.682.057-1.35.166-2.001zm11.541 3.708a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z clip-ruleevenodd>/path>title>heroicons/solid/shield-check/title>/svg> /div> /div> div classtext-center> div classtext-xl text-gray-800 font-medium leading-7 mb-2> Safe, Secure and Private /div> div> Your order data is safe, secure, and private. All data is processed meeting the highest security standard, PCI SAQ A, with monthly audits. /div> /div> /div> div classflex flex-col items-center gap-4 bg-blue-100 rounded-xl py-6 px-12> div> div classw-16 h-16 bg-blue-600 text-white rounded-full flex justify-center items-center> svg xmlnshttp://www.w3.org/2000/svg fillcurrentColor viewbox0 0 640 512 classw-12 h-12 fill-current width48 height48 roleimg>!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. -->path dM112 0C85.49 0 64 21.49 64 48V96H16C7.163 96 0 103.2 0 112C0 120.8 7.163 128 16 128H272C280.8 128 288 135.2 288 144C288 152.8 280.8 160 272 160H48C39.16 160 32 167.2 32 176C32 184.8 39.16 192 48 192H240C248.8 192 256 199.2 256 208C256 216.8 248.8 224 240 224H16C7.163 224 0 231.2 0 240C0 248.8 7.163 256 16 256H208C216.8 256 224 263.2 224 272C224 280.8 216.8 288 208 288H64V416C64 469 106.1 512 160 512C213 512 256 469 256 416H384C384 469 426.1 512 480 512C533 512 576 469 576 416H608C625.7 416 640 401.7 640 384C640 366.3 625.7 352 608 352V237.3C608 220.3 601.3 204 589.3 192L512 114.7C499.1 102.7 483.7 96 466.7 96H416V48C416 21.49 394.5 0 368 0H112zM544 237.3V256H416V160H466.7L544 237.3zM160 464C133.5 464 112 442.5 112 416C112 389.5 133.5 368 160 368C186.5 368 208 389.5 208 416C208 442.5 186.5 464 160 464zM528 416C528 442.5 506.5 464 480 464C453.5 464 432 442.5 432 416C432 389.5 453.5 368 480 368C506.5 368 528 389.5 528 416z>/path>title>awesomeicons6/solid/truck-fast/title>/svg> /div> /div> div classtext-center> div classtext-xl text-gray-800 font-medium leading-7 mb-2> Fast Shipping /div> div> Orders ship fast! All inventory is in stock, our shipping team uses scan-and-pack to ensure speed and accuracy of every order. /div> /div> /div> div classflex flex-col items-center gap-4 bg-blue-100 rounded-xl py-6 px-12> div> div classw-16 h-16 bg-blue-600 text-white rounded-full flex justify-center items-center> svg xmlnshttp://www.w3.org/2000/svg fillcurrentColor viewbox0 0 640 512 classw-12 h-12 fill-current width48 height48 roleimg>!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. -->path dM0 488V171.3C0 145.2 15.93 121.6 40.23 111.9L308.1 4.753C315.7 1.702 324.3 1.702 331.9 4.753L599.8 111.9C624.1 121.6 640 145.2 640 171.3V488C640 501.3 629.3 512 616 512H568C554.7 512 544 501.3 544 488V223.1C544 206.3 529.7 191.1 512 191.1H128C110.3 191.1 96 206.3 96 223.1V488C96 501.3 85.25 512 72 512H24C10.75 512 0 501.3 0 488zM152 512C138.7 512 128 501.3 128 488V432H512V488C512 501.3 501.3 512 488 512H152zM128 336H512V400H128V336zM128 224H512V304H128V224z>/path>title>awesomeicons6/solid/warehouse/title>/svg> /div> /div> div classtext-center> div classtext-xl text-gray-800 font-medium leading-7 mb-2> Your Everything Supplier /div> div> We stock over 12,000 products in our fully owned warehouse. We have what you need, what you want, and everything in between. /div> /div> /div> div classflex flex-col items-center gap-4 bg-blue-100 rounded-xl py-6 px-12> div> div classw-16 h-16 bg-blue-600 text-white rounded-full flex justify-center items-center> svg xmlnshttp://www.w3.org/2000/svg fillcurrentColor viewbox0 0 576 512 classw-12 h-12 fill-current width48 height48 roleimg>!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. -->path dM568.2 336.3c-13.12-17.81-38.14-21.66-55.93-8.469l-119.7 88.17h-120.6c-8.748 0-15.1-7.25-15.1-15.99c0-8.75 7.25-16 15.1-16h78.25c15.1 0 30.75-10.88 33.37-26.62c3.25-20-12.12-37.38-31.62-37.38H191.1c-26.1 0-53.12 9.25-74.12 26.25l-46.5 37.74L15.1 383.1C7.251 383.1 0 391.3 0 400v95.98C0 504.8 7.251 512 15.1 512h346.1c22.03 0 43.92-7.188 61.7-20.27l135.1-99.52C577.5 379.1 581.3 354.1 568.2 336.3zM279.3 175C271.7 173.9 261.7 170.3 252.9 167.1L248 165.4C235.5 160.1 221.8 167.5 217.4 179.1s2.121 26.2 14.59 30.64l4.655 1.656c8.486 3.061 17.88 6.095 27.39 8.312V232c0 13.25 10.73 24 23.98 24s24-10.75 24-24V221.6c25.27-5.723 42.88-21.85 46.1-45.72c8.688-50.05-38.89-63.66-64.42-70.95L288.4 103.1C262.1 95.64 263.6 92.42 264.3 88.31c1.156-6.766 15.3-10.06 32.21-7.391c4.938 .7813 11.37 2.547 19.65 5.422c12.53 4.281 26.21-2.312 30.52-14.84s-2.309-26.19-14.84-30.53c-7.602-2.627-13.92-4.358-19.82-5.721V24c0-13.25-10.75-24-24-24s-23.98 10.75-23.98 24v10.52C238.8 40.23 221.1 56.25 216.1 80.13C208.4 129.6 256.7 143.8 274.9 149.2l6.498 1.875c31.66 9.062 31.15 11.89 30.34 16.64C310.6 174.5 296.5 177.8 279.3 175z>/path>title>awesomeicons6/solid/hand-holding-dollar/title>/svg> /div> /div> div classtext-center> div classtext-xl text-gray-800 font-medium leading-7 mb-2> The Best Deals /div> div> Get more value, save money. From a hrefhttps://www.keepshooting.com/free-shipping classunderline text-gray-800>free shipping/a> deals to the lowest prices, nothing makes us happier than saving you money! /div> /div> /div> /div>/div>/div>/div>/div>div data-content-typeblock data-appearancedefault data-elementmain>div classwidget block block-static-block> style>#html-body data-pb-styleEEQCFBX{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}/style>div data-content-typerow data-appearancecontained data-elementmain>div data-enable-parallax0 data-parallax-speed0.5 data-background-images{} data-background-typeimage data-video-looptrue data-video-play-only-visibletrue data-video-lazy-loadtrue data-video-fallback-src data-elementinner data-pb-styleEEQCFBX>div data-content-typehtml data-appearancedefault data-elementmain data-decodedtrue>h1 classtext-#E4AD3C font-semibold text-3xl mb-4 text-center uppercase>Top Selling Products/h1>/div>div data-content-typetext data-appearancedefault data-elementmain>p> /p>div classblock widget block-products-list grid> div classblock-content> div classmx-auto grid gap-4 sm:grid-cols-2 lg:grid-cols-4> form methodpost actionhttps://www.keepshooting.com/checkout/cart/add/uenc/%25uenc%25/product/33814/ classproduct-item product_addtocart_form shadow bg-white rounded-md p-4 flex flex-col hover:shadow-lg > input nameform_key typehidden valuerr5jh1nGUU3PKuud> input typehidden nameproduct value33814> a hrefhttps://www.keepshooting.com/t91-magazine.html titleT91 Magazine classproduct photo product-item-photo mb-2 mx-auto tabindex-1> img classproduct-image-photo x-data @update-gallery-33814.window$root.src $event.detail srchttps://www.keepshooting.com/media/catalog/product/cache/cef1856f87f96c51952913c39aa1d996/t/9/t91-magazine-witness-holes.webp loadinglazy width240 height300 altT91 Magazine - Witness Holes titleT91 Magazine - Witness Holes> /a> div classflex flex-col flex-1> div classflex justify-between items-center> div classtext-sm leading-5 text-blue-500> United Defense LLC /div> script> use strict; function amNotificationProductViewComponent_33814() { return { isAvailable: 1, isAvailableConfigurableSimple: true, isOutofstockConfigurable: 1, title: Availability, options: {}, productIndex: 33814, hideAddToCartBtn: , notificationLabel: Notify me when this product is in stock, productId: 33814, /** * Overridden method for Product Alert View Model to output url according to product id in js * * @param productIndex * @param type * @returns {*} */ getSubscriptionUrl(productIndex, type) { const urlParts xnotif/email/, type, /product_id/, productIndex, (parseInt(productIndex) ! parseInt(this.productId)) ? /parent_id/ + this.productId : , /uenc/, aHR0cHM6Ly93d3cua2VlcHNob290aW5nLmNvbS8, ; return BASE_URL + urlParts.join(); }, getSimpleProduct(data, el) { let children JSON.parse(); /** * hide addtocart button if simple for configurable product is out of stock */ window.addEventListener(configurable-select-changed, (event) > { let componentElement document.querySelector(x-dataamNotificationProductViewComponent_ + event.detail.productId + ()) || document.querySelector(#stock_notification_ + event.detail.productId); let parentElement componentElement.closest(.product-info); this.hideAddToCartBtn parentElement.querySelector(.btn.btn-primary:not(.subscribe-button)); }); //for pdp only window.addEventListener(configurable-selection-changed, (event) > { const addToCartButton document.getElementById(product-addtocart-button)?.closest(div); if (addToCartButton) { addToCartButton.style.display this.isAvailableConfigurableSimple ? flex : none; } }); const swatchesComponent (document.querySelector(x-datainitConfigurableSwatchOptions_ + data.productId + ()) || document.querySelector(x-datainitAmastyXnotifCatalogSwatchesMixin_ + data.productId + ()) || document.querySelector(x-datainitAmastyCustomStockStatusOptions_ + data.productId + ())); const swatchesCount swatchesComponent?.querySelector(div)?.children?.length || 0; for (const key, value of Object.entries(childrendata.productIndex || {})) { const previousIndex this.productIndex; this.productIndex data.productIndex; if (Object.keys(data.selectedValues).length > swatchesCount) { this.isAvailable Number(value); this.isAvailableConfigurableSimple Number(value); } if (this.hideAddToCartBtn) { this.hideAddToCartBtn.style.display !this.isAvailable ? none : flex; } // plp duplicating indexes case if (el && (previousIndex this.productIndex) && !this.isAvailable) { el.closest(.product-info).querySelector(.btn.btn-primary:not(.subscribe-button)).style.display none; } } }, getAvailable() { return this.options { additionalClass: this.isAvailable ? bg-green-500 : bg-red-500, label: this.isAvailable ? In stock : Out of stock, categoryNotificationLabel: this.isAvailable ? : this.notificationLabel, }; } } }/script>div x-data{ ...amNotificationProductViewComponent_33814(), ...amXnotifSubscribeComponentList_33814() } x-on:configurable-select-changed.windowgetSimpleProduct($event.detail, $el) x-showgetAvailable() idstock_notification_33814 classtext-right relative> p classflex items-center align-middle available gap-x-2 stock :class{ justify-center: 1, justify-start: , } :titletitle> span classw-3 h-3 rounded-full flex-shrink-0 :classoptions.additionalClass>/span> span x-textoptions.label>/span> /p> /div>script> use strict; function amXnotifSubscribeComponentList_33814() { return { mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) { AmxnotifStockSubscribe(input: $input) { response_message } }`, isInStock: 1, isConfigurable: , productIdentifier: 33814, isValid: true, buttonDisabled: false, getMessages(type, message) { return typeof window.dispatchMessages ! undefined && window.dispatchMessages( { type: type, text: message } ); }, fetchSubscribe(productId) { let variables { input: { product_uid: btoa(productId), parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : , } }; this.buttonDisabled true; fetch(BASE_URL + graphql, { method: POST, headers: { Store: default, Content-Type: application/json, }, body: JSON.stringify({query: this.mutationStockSubscription, variables}), mode: cors, credentials: include }) .then((response) > response.json()) .then((result) > { if (result?.data?.AmxnotifStockSubscribe) { this.getMessages(success, result.data.AmxnotifStockSubscribe.response_message); } else { let message result?.errors ? result.errors0.message : Something went wrong.; this.getMessages(error, message) } if (this.isConfigurable) { setTimeout(() > { window.dispatchEvent(new Event(showAmLoader)); window.location.reload() }, 2000) } }) .finally(() > { this.buttonDisabled false; }) } } }/script> /div> div classflex justify-between gap-2 items-baseline flex-1> a classproduct-item-link flex-1 text-lg leading-7 font-bold text-slate-800 hrefhttps://www.keepshooting.com/t91-magazine.html :id`slide-desc-33814-${$id(slider-id)}`> T91 Magazine /a> /div> div classmb-4 mt-2> /div> div classfont-normal text-blue-800 x-datainitPriceBox() x-deferintersect @update-prices-33814.windowupdatePrice($event.detail);> div classprice-box price-final_price data-rolepriceBox data-product-id33814 data-price-boxproduct-id-33814> span x-data x-idproduct\u002Dprice\u002D33814 classprice-container price-final_price tax weee> span :id$id(product\u002Dprice\u002D33814) data-price-amount19.95 data-price-typefinalPrice classprice-wrapper >span classprice>$19.95/span>/span> /span> a hrefhttps://www.keepshooting.com/t91-magazine.html classminimal-price-link> span x-data x-id33814 classprice-container price-final_price tax weee> span classprice-label>As low as/span> span :id$id(33814) data-price-amount16.95 data-price-type classprice-wrapper >$16.95/span> /span> /a> /div> /div> div classflex flex-row justify-between mt-1 mb-4 text-sm leading-5> div classtext-right> p classflex items-center justify-end align-middle gap-x-2 stock before:w-3 before:h-3 before:rounded-full before:shrink-0 available before:bg-green-500 titleAvailability>In stock/p> /div> /div> div classflex gap-2 flex-wrap flex-1 items-end> div classflex-1 md:w-full md:flex-initial lg:w-auto lg:flex-1> button classbg-blue-500 rounded-md text-white py-3 font-medium flex items-center gap-2 w-full justify-center hover:bg-blue-600 px-3 2xl:px-6 aria-labelAdd to Cart T91 Magazine> svg xmlnshttp://www.w3.org/2000/svg fillnone viewbox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width20 height20> path stroke-linecapround stroke-linejoinround dM3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z>/path>/svg> span>Add to Cart/span> /button> /div> /div> /div> /form> form methodpost actionhttps://www.keepshooting.com/checkout/cart/add/uenc/%25uenc%25/product/31177/ classproduct-item product_addtocart_form shadow bg-white rounded-md p-4 flex flex-col hover:shadow-lg > input nameform_key typehidden valuerr5jh1nGUU3PKuud> input typehidden nameproduct value31177> a hrefhttps://www.keepshooting.com/102nd-chairborne-ranger-morale-patch.html title102nd Chairborne Ranger Morale Patch classproduct photo product-item-photo mb-2 mx-auto tabindex-1> img classproduct-image-photo x-data @update-gallery-31177.window$root.src $event.detail srchttps://www.keepshooting.com/media/catalog/product/cache/cef1856f87f96c51952913c39aa1d996/c/h/chairborne-ranger-patch.jpg loadinglazy width240 height300 alt102nd Chairborne Ranger Morale Patch title102nd Chairborne Ranger Morale Patch> /a> div classflex flex-col flex-1> div classflex justify-between items-center> div classtext-sm leading-5 text-blue-500> United Defense LLC /div> div x-datainitRating3117767912669bb6c6() x-deferintersect @keyup.enterscrollToRatings() @clickscrollToRatings() classrating-summary flex items-center gap-1 text-sm :class{cursor-pointer : reviewsSection} :tabindexreviewsSection ? 0 : -1 :aria-labelreviewsSection ? 102nd\u0020Chairborne\u0020Ranger\u0020Morale\u0020Patch\u0020rating.\u00204.5\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews. : 102nd\u0020Chairborne\u0020Ranger\u0020Morale\u0020Patch\u0020rating.\u00204.5\u0020out\u0020of\u00205\u0020stars :rolereviewsSection ? button : img> svg xmlnshttp://www.w3.org/2000/svg viewbox0 0 20 20 fillcurrentColor aria-hiddentrue classtext-yellow-500 mt-0.5 width20 height20> path dM9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z>/path>/svg> span classfont-bold text-slate-800> 4.5 /span> span classtext-blue-500> (span>255/span>) /span> /div> script> use strict; function initRating3117767912669bb6c6() { return { reviewsSection: document.getElementById(customer-review-list) || document.getElementById(customer-reviews) || document.getElementById(review-form), scrollToRatings() { let scrollTimeout null if (!this.reviewsSection) { return } addEventListener(scroll, () > { clearTimeout(scrollTimeout); scrollTimeout setTimeout(() > { if (this.reviewsSection) { this.reviewsSection.focus() } }, 50); }, { once: true }); this.reviewsSection.scrollIntoView({behavior: smooth}) } } } /script>script> use strict; function amNotificationProductViewComponent_31177() { return { isAvailable: 1, isAvailableConfigurableSimple: true, isOutofstockConfigurable: 1, title: Availability, options: {}, productIndex: 31177, hideAddToCartBtn: , notificationLabel: Notify me when this product is in stock, productId: 31177, /** * Overridden method for Product Alert View Model to output url according to product id in js * * @param productIndex * @param type * @returns {*} */ getSubscriptionUrl(productIndex, type) { const urlParts xnotif/email/, type, /product_id/, productIndex, (parseInt(productIndex) ! parseInt(this.productId)) ? /parent_id/ + this.productId : , /uenc/, aHR0cHM6Ly93d3cua2VlcHNob290aW5nLmNvbS8, ; return BASE_URL + urlParts.join(); }, getSimpleProduct(data, el) { let children JSON.parse({31176:1,31175:1}); /** * hide addtocart button if simple for configurable product is out of stock */ window.addEventListener(configurable-select-changed, (event) > { let componentElement document.querySelector(x-dataamNotificationProductViewComponent_ + event.detail.productId + ()) || document.querySelector(#stock_notification_ + event.detail.productId); let parentElement componentElement.closest(.product-info); this.hideAddToCartBtn parentElement.querySelector(.btn.btn-primary:not(.subscribe-button)); }); //for pdp only window.addEventListener(configurable-selection-changed, (event) > { const addToCartButton document.getElementById(product-addtocart-button)?.closest(div); if (addToCartButton) { addToCartButton.style.display this.isAvailableConfigurableSimple ? flex : none; } }); const swatchesComponent (document.querySelector(x-datainitConfigurableSwatchOptions_ + data.productId + ()) || document.querySelector(x-datainitAmastyXnotifCatalogSwatchesMixin_ + data.productId + ()) || document.querySelector(x-datainitAmastyCustomStockStatusOptions_ + data.productId + ())); const swatchesCount swatchesComponent?.querySelector(div)?.children?.length || 0; for (const key, value of Object.entries(childrendata.productIndex || {})) { const previousIndex this.productIndex; this.productIndex data.productIndex; if (Object.keys(data.selectedValues).length > swatchesCount) { this.isAvailable Number(value); this.isAvailableConfigurableSimple Number(value); } if (this.hideAddToCartBtn) { this.hideAddToCartBtn.style.display !this.isAvailable ? none : flex; } // plp duplicating indexes case if (el && (previousIndex this.productIndex) && !this.isAvailable) { el.closest(.product-info).querySelector(.btn.btn-primary:not(.subscribe-button)).style.display none; } } }, getAvailable() { return this.options { additionalClass: this.isAvailable ? bg-green-500 : bg-red-500, label: this.isAvailable ? In stock : Out of stock, categoryNotificationLabel: this.isAvailable ? : this.notificationLabel, }; } } }/script>div x-data{ ...amNotificationProductViewComponent_31177(), ...amXnotifSubscribeComponentList_31177() } x-on:configurable-select-changed.windowgetSimpleProduct($event.detail, $el) x-showgetAvailable() idstock_notification_31177 classtext-right relative> p classflex items-center align-middle available gap-x-2 stock :class{ justify-center: 1, justify-start: , } :titletitle> span classw-3 h-3 rounded-full flex-shrink-0 :classoptions.additionalClass>/span> span x-textoptions.label>/span> /p> /div>script> use strict; function amXnotifSubscribeComponentList_31177() { return { mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) { AmxnotifStockSubscribe(input: $input) { response_message } }`, isInStock: 1, isConfigurable: 1, productIdentifier: 31177, isValid: true, buttonDisabled: false, getMessages(type, message) { return typeof window.dispatchMessages ! undefined && window.dispatchMessages( { type: type, text: message } ); }, fetchSubscribe(productId) { let variables { input: { product_uid: btoa(productId), parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : , } }; this.buttonDisabled true; fetch(BASE_URL + graphql, { method: POST, headers: { Store: default, Content-Type: application/json, }, body: JSON.stringify({query: this.mutationStockSubscription, variables}), mode: cors, credentials: include }) .then((response) > response.json()) .then((result) > { if (result?.data?.AmxnotifStockSubscribe) { this.getMessages(success, result.data.AmxnotifStockSubscribe.response_message); } else { let message result?.errors ? result.errors0.message : Something went wrong.; this.getMessages(error, message) } if (this.isConfigurable) { setTimeout(() > { window.dispatchEvent(new Event(showAmLoader)); window.location.reload() }, 2000) } }) .finally(() > { this.buttonDisabled false; }) } } }/script> /div> div classflex justify-between gap-2 items-baseline flex-1> a classproduct-item-link flex-1 text-lg leading-7 font-bold text-slate-800 hrefhttps://www.keepshooting.com/102nd-chairborne-ranger-morale-patch.html :id`slide-desc-31177-${$id(slider-id)}`> 102nd Chairborne Ranger Morale Patch /a> /div> div classmb-4 mt-2> script> function initConfigurableSwatchOptions_31177() { const configurableOptionsComponent initConfigurableOptions( 31177, {attributes:{93:{id:93,code:color,label:Color,options:{id:6313,label:Full Color,products:31176},{id:6375,label:Stealth,products:31175},position:0}},template:$%- data.price %>,currencyFormat:$%s,optionPrices:{31176:{baseOldPrice:{amount:5.95},oldPrice:{amount:5.95},basePrice:{amount:5.95},finalPrice:{amount:5.95},tierPrices:,msrpPrice:{amount:0}},31175:{baseOldPrice:{amount:5.95},oldPrice:{amount:5.95},basePrice:{amount:5.95},finalPrice:{amount:5.95},tierPrices:,msrpPrice:{amount:0}}},priceFormat:{pattern:$%s,precision:2,requiredPrecision:2,decimalSymbol:.,groupSymbol:,,groupLength:3,integerRequired:false},prices:{baseOldPrice:{amount:5.95},oldPrice:{amount:5.95},basePrice:{amount:5.95},finalPrice:{amount:5.95}},productId:31177,chooseText:Choose an Option...,images:,index:{31176:{93:6313},31175:{93:6375}},salable:,canDisplayShowOutOfStockStatus:false,channel:website,salesChannelCode:base,sku:{31176:842038107159,31175:842038107166}} ); const swatchOptionsComponent initSwatchOptions(); return Object.assign( configurableOptionsComponent, swatchOptionsComponent, { mediaCallback: https\u003A\u002F\u002Fwww.keepshooting.com\u002Fswatches\u002Fajax\u002Fmedia\u002F, changeOption(optionId, value, skipUpdateGallery) { if (value ) { this.selectedValues this.removeAttrFromSelection(this.selectedValues, optionId) } else { this.selectedValuesoptionId value; } this.findSimpleIndex(); this.findAllowedAttributeOptions(); this.updatePrices(); !skipUpdateGallery && this.updateGallery(); window.dispatchEvent(new CustomEvent(listing-configurable-selection-changed, { detail: { productId: this.productId, optionId, value, productIndex: this.productIndex, selectedValues: this.selectedValues, candidates: this.findProductIdsForPartialSelection(this.selectedValues), } })); }, updateGallery() { if (!this.productIndex) { return; } fetch(`${this.mediaCallback}?product_id${this.productIndex}&isAjaxtrue`, { method: GET, headers: { Content-Type: application/json, X-Requested-With: XMLHttpRequest } } ).then(response > { return response.json() } ).then(data > { if (data.errors) { // non critical failure only console logged console.warn(data.errors); } else { const image data && data.medium; image && window.dispatchEvent( new CustomEvent( update-gallery-31177, {detail: image} ) ); } }).catch(error > { console.warn(error) }); }, preselectQuerystringItems() { // pre-select option like ?size167 const urlQueryParams new URLSearchParams(window.location.search.replace(?, )); Object.values(this.optionConfig.attributes).map(attribute > { // Dont update images on load, since PLPs already set the main image to the selected options const skipUpdateGallery true; urlQueryParams.get(attribute.code) && this.changeOption(attribute.id, urlQueryParams.get(attribute.code), skipUpdateGallery); }); }, mouseDown: false, startX: 0, maxScroll: 0, scrollLeft: null, slider: null, scrollEvents: { @mousedown(e) { this.slider e.target.closest(.snap); if (!this.slider) { return; } this.maxScroll this.slider.scrollWidth - this.slider.offsetWidth; this.startX e.pageX - this.slider.offsetLeft; this.scrollLeft this.slider.scrollLeft; this.mouseDown true; }, @mouseout.self() { this.mouseDown false; }, @mouseup() { this.mouseDown false; }, @mousemove(e) { e.preventDefault(); if (!this.mouseDown) { return; } const x e.pageX - this.slider.offsetLeft; const scroll x - this.startX; const scrollLeft this.scrollLeft - scroll; if (scrollLeft > this.maxScroll) { this.slider.scrollLeft this.maxScroll; return } this.slider.scrollLeft this.scrollLeft - scroll; }, @onselectstart() { return false; } }, resizeEvent() { Array.from(this.$root.querySelectorAll(.snap)).forEach(slider > { slider.scrollLeft 0; }) } } ); } /script>div x-datainitConfigurableSwatchOptions_31177() x-deferintersect x-initfindAllowedAttributeOptions(); initShowSwatchesIntersect(); @private-content-loaded.windowonGetCartData($event.detail.data) @resize.windowresizeEvent() classmb-2 relative> div> /div> template x-ifisTooltipVisible()> div classabsolute pointer-events-none select-none :stylegetTooltipPosition()> div classshadow-lg> div classabsolute top-0 left-0 z-10 min-w-20 p-2 -mt-6 text-sm leading-tight text-black transform -translate-x-1/2 -translate-y-full bg-white rounded-lg shadow-lg text-center :class{-translate-x-5 : isFirstItemCol()}> template x-ifisVisualSwatch(activeTooltipItem.attribute, activeTooltipItem.item)> div classinline-block border shadow-sm border-container :stylegetTooltipImageStyle(activeTooltipItem.attribute, activeTooltipItem.item)>/div> /template> span classmx-2 text-lg font-semibold whitespace-nowrap subtitle x-htmlgetTooltipLabel()>/span> /div> svg classabsolute z-10 w-8 h-8 text-white transform -translate-x-1/5 -translate-y-8 fill-current stroke-current width12 height12> rect x12 y-12 width12 height12 transformrotate(45) classshadow-xl>/rect> /svg> /div> /div>/template> /div> /div> div classfont-normal text-blue-800 x-datainitPriceBox() x-deferintersect @update-prices-31177.windowupdatePrice($event.detail);> div classprice-box price-final_price data-rolepriceBox data-product-id31177 data-price-boxproduct-id-31177>span classnormal-price> span x-data x-idproduct\u002Dprice\u002D31177 classprice-container price-final_price tax weee> span classprice-label>As low as/span> span :id$id(product\u002Dprice\u002D31177) data-price-amount5.95 data-price-typefinalPrice classprice-wrapper >span classprice>$5.95/span>/span> /span>/span>/div> /div> div classflex flex-row justify-between mt-1 mb-4 text-sm leading-5> div classtext-right> p classflex items-center justify-end align-middle gap-x-2 stock before:w-3 before:h-3 before:rounded-full before:shrink-0 available before:bg-green-500 titleAvailability>In stock/p> /div> /div> div classflex gap-2 flex-wrap flex-1 items-end> div classflex-1 md:w-full md:flex-initial lg:w-auto lg:flex-1> button classbg-blue-500 rounded-md text-white py-3 font-medium flex items-center gap-2 w-full justify-center hover:bg-blue-600 px-3 2xl:px-6 aria-labelAdd to Cart 102nd Chairborne Ranger Morale Patch> svg xmlnshttp://www.w3.org/2000/svg fillnone viewbox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width20 height20> path stroke-linecapround stroke-linejoinround dM3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z>/path>/svg> span>Add to Cart/span> /button> /div> /div> /div> /form> form methodpost actionhttps://www.keepshooting.com/checkout/cart/add/uenc/%25uenc%25/product/30787/ classproduct-item product_addtocart_form shadow bg-white rounded-md p-4 flex flex-col hover:shadow-lg > input nameform_key typehidden valuerr5jh1nGUU3PKuud> input typehidden nameproduct value30787> a hrefhttps://www.keepshooting.com/woodland-camouflage-wet-weather-poncho-liner.html titleWoodland Camouflage Wet Weather Poncho Liner classproduct photo product-item-photo mb-2 mx-auto tabindex-1> img classproduct-image-photo x-data @update-gallery-30787.window$root.src $event.detail srchttps://www.keepshooting.com/media/catalog/product/cache/cef1856f87f96c51952913c39aa1d996/w/o/woodland-camouflage-wet-weather-poncho-liner.jpg loadinglazy width240 height300 altWoodland Camouflage Wet Weather Poncho Liner titleWoodland Camouflage Wet Weather Poncho Liner> /a> div classflex flex-col flex-1> div classflex justify-between items-center> div classtext-sm leading-5 text-blue-500> US Army /div> div x-datainitRating3078767912669bf7a1() x-deferintersect @keyup.enterscrollToRatings() @clickscrollToRatings() classrating-summary flex items-center gap-1 text-sm :class{cursor-pointer : reviewsSection} :tabindexreviewsSection ? 0 : -1 :aria-labelreviewsSection ? Woodland\u0020Camouflage\u0020Wet\u0020Weather\u0020Poncho\u0020Liner\u0020rating.\u00204.65\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews. : Woodland\u0020Camouflage\u0020Wet\u0020Weather\u0020Poncho\u0020Liner\u0020rating.\u00204.65\u0020out\u0020of\u00205\u0020stars :rolereviewsSection ? button : img> svg xmlnshttp://www.w3.org/2000/svg viewbox0 0 20 20 fillcurrentColor aria-hiddentrue classtext-yellow-500 mt-0.5 width20 height20> path dM9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z>/path>/svg> span classfont-bold text-slate-800> 4.65 /span> span classtext-blue-500> (span>88/span>) /span> /div> script> use strict; function initRating3078767912669bf7a1() { return { reviewsSection: document.getElementById(customer-review-list) || document.getElementById(customer-reviews) || document.getElementById(review-form), scrollToRatings() { let scrollTimeout null if (!this.reviewsSection) { return } addEventListener(scroll, () > { clearTimeout(scrollTimeout); scrollTimeout setTimeout(() > { if (this.reviewsSection) { this.reviewsSection.focus() } }, 50); }, { once: true }); this.reviewsSection.scrollIntoView({behavior: smooth}) } } } /script>script> use strict; function amNotificationProductViewComponent_30787() { return { isAvailable: 1, isAvailableConfigurableSimple: true, isOutofstockConfigurable: 1, title: Availability, options: {}, productIndex: 30787, hideAddToCartBtn: , notificationLabel: Notify me when this product is in stock, productId: 30787, /** * Overridden method for Product Alert View Model to output url according to product id in js * * @param productIndex * @param type * @returns {*} */ getSubscriptionUrl(productIndex, type) { const urlParts xnotif/email/, type, /product_id/, productIndex, (parseInt(productIndex) ! parseInt(this.productId)) ? /parent_id/ + this.productId : , /uenc/, aHR0cHM6Ly93d3cua2VlcHNob290aW5nLmNvbS8, ; return BASE_URL + urlParts.join(); }, getSimpleProduct(data, el) { let children JSON.parse(); /** * hide addtocart button if simple for configurable product is out of stock */ window.addEventListener(configurable-select-changed, (event) > { let componentElement document.querySelector(x-dataamNotificationProductViewComponent_ + event.detail.productId + ()) || document.querySelector(#stock_notification_ + event.detail.productId); let parentElement componentElement.closest(.product-info); this.hideAddToCartBtn parentElement.querySelector(.btn.btn-primary:not(.subscribe-button)); }); //for pdp only window.addEventListener(configurable-selection-changed, (event) > { const addToCartButton document.getElementById(product-addtocart-button)?.closest(div); if (addToCartButton) { addToCartButton.style.display this.isAvailableConfigurableSimple ? flex : none; } }); const swatchesComponent (document.querySelector(x-datainitConfigurableSwatchOptions_ + data.productId + ()) || document.querySelector(x-datainitAmastyXnotifCatalogSwatchesMixin_ + data.productId + ()) || document.querySelector(x-datainitAmastyCustomStockStatusOptions_ + data.productId + ())); const swatchesCount swatchesComponent?.querySelector(div)?.children?.length || 0; for (const key, value of Object.entries(childrendata.productIndex || {})) { const previousIndex this.productIndex; this.productIndex data.productIndex; if (Object.keys(data.selectedValues).length > swatchesCount) { this.isAvailable Number(value); this.isAvailableConfigurableSimple Number(value); } if (this.hideAddToCartBtn) { this.hideAddToCartBtn.style.display !this.isAvailable ? none : flex; } // plp duplicating indexes case if (el && (previousIndex this.productIndex) && !this.isAvailable) { el.closest(.product-info).querySelector(.btn.btn-primary:not(.subscribe-button)).style.display none; } } }, getAvailable() { return this.options { additionalClass: this.isAvailable ? bg-green-500 : bg-red-500, label: this.isAvailable ? In stock : Out of stock, categoryNotificationLabel: this.isAvailable ? : this.notificationLabel, }; } } }/script>div x-data{ ...amNotificationProductViewComponent_30787(), ...amXnotifSubscribeComponentList_30787() } x-on:configurable-select-changed.windowgetSimpleProduct($event.detail, $el) x-showgetAvailable() idstock_notification_30787 classtext-right relative> p classflex items-center align-middle available gap-x-2 stock :class{ justify-center: 1, justify-start: , } :titletitle> span classw-3 h-3 rounded-full flex-shrink-0 :classoptions.additionalClass>/span> span x-textoptions.label>/span> /p> /div>script> use strict; function amXnotifSubscribeComponentList_30787() { return { mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) { AmxnotifStockSubscribe(input: $input) { response_message } }`, isInStock: 1, isConfigurable: , productIdentifier: 30787, isValid: true, buttonDisabled: false, getMessages(type, message) { return typeof window.dispatchMessages ! undefined && window.dispatchMessages( { type: type, text: message } ); }, fetchSubscribe(productId) { let variables { input: { product_uid: btoa(productId), parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : , } }; this.buttonDisabled true; fetch(BASE_URL + graphql, { method: POST, headers: { Store: default, Content-Type: application/json, }, body: JSON.stringify({query: this.mutationStockSubscription, variables}), mode: cors, credentials: include }) .then((response) > response.json()) .then((result) > { if (result?.data?.AmxnotifStockSubscribe) { this.getMessages(success, result.data.AmxnotifStockSubscribe.response_message); } else { let message result?.errors ? result.errors0.message : Something went wrong.; this.getMessages(error, message) } if (this.isConfigurable) { setTimeout(() > { window.dispatchEvent(new Event(showAmLoader)); window.location.reload() }, 2000) } }) .finally(() > { this.buttonDisabled false; }) } } }/script> /div> div classflex justify-between gap-2 items-baseline flex-1> a classproduct-item-link flex-1 text-lg leading-7 font-bold text-slate-800 hrefhttps://www.keepshooting.com/woodland-camouflage-wet-weather-poncho-liner.html :id`slide-desc-30787-${$id(slider-id)}`> Woodland Camouflage Wet Weather Poncho Liner /a> /div> div classmb-4 mt-2> /div> div classfont-normal text-blue-800 x-datainitPriceBox() x-deferintersect @update-prices-30787.windowupdatePrice($event.detail);> div classprice-box price-final_price data-rolepriceBox data-product-id30787 data-price-boxproduct-id-30787> span x-data x-idproduct\u002Dprice\u002D30787 classprice-container price-final_price tax weee> span :id$id(product\u002Dprice\u002D30787) data-price-amount35.95 data-price-typefinalPrice classprice-wrapper >span classprice>$35.95/span>/span> /span>/div> /div> div classflex flex-row justify-between mt-1 mb-4 text-sm leading-5> div classtext-right> p classflex items-center justify-end align-middle gap-x-2 stock before:w-3 before:h-3 before:rounded-full before:shrink-0 available before:bg-green-500 titleAvailability>In stock/p> /div> /div> div classflex gap-2 flex-wrap flex-1 items-end> div classflex-1 md:w-full md:flex-initial lg:w-auto lg:flex-1> button classbg-blue-500 rounded-md text-white py-3 font-medium flex items-center gap-2 w-full justify-center hover:bg-blue-600 px-3 2xl:px-6 aria-labelAdd to Cart Woodland Camouflage Wet Weather Poncho Liner> svg xmlnshttp://www.w3.org/2000/svg fillnone viewbox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width20 height20> path stroke-linecapround stroke-linejoinround dM3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z>/path>/svg> span>Add to Cart/span> /button> /div> /div> /div> /form> form methodpost actionhttps://www.keepshooting.com/checkout/cart/add/uenc/%25uenc%25/product/22014/ classproduct-item product_addtocart_form shadow bg-white rounded-md p-4 flex flex-col hover:shadow-lg > input nameform_key typehidden valuerr5jh1nGUU3PKuud> input typehidden nameproduct value22014> a hrefhttps://www.keepshooting.com/walther-p22-magazine.html titleWalther P22 Magazine classproduct photo product-item-photo mb-2 mx-auto tabindex-1> img classproduct-image-photo x-data @update-gallery-22014.window$root.src $event.detail srchttps://www.keepshooting.com/media/catalog/product/cache/cef1856f87f96c51952913c39aa1d996/w/a/walther-p22-magazine.webp loadinglazy width240 height300 altWalther P22 Magazine titleWalther P22 Magazine> /a> div classflex flex-col flex-1> div classflex justify-between items-center> div classtext-sm leading-5 text-blue-500> United Defense LLC /div> div x-datainitRating2201467912669c02f8() x-deferintersect @keyup.enterscrollToRatings() @clickscrollToRatings() classrating-summary flex items-center gap-1 text-sm :class{cursor-pointer : reviewsSection} :tabindexreviewsSection ? 0 : -1 :aria-labelreviewsSection ? Walther\u0020P22\u0020Magazine\u0020rating.\u00204.5\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews. : Walther\u0020P22\u0020Magazine\u0020rating.\u00204.5\u0020out\u0020of\u00205\u0020stars :rolereviewsSection ? button : img> svg xmlnshttp://www.w3.org/2000/svg viewbox0 0 20 20 fillcurrentColor aria-hiddentrue classtext-yellow-500 mt-0.5 width20 height20> path dM9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z>/path>/svg> span classfont-bold text-slate-800> 4.5 /span> span classtext-blue-500> (span>9557/span>) /span> /div> script> use strict; function initRating2201467912669c02f8() { return { reviewsSection: document.getElementById(customer-review-list) || document.getElementById(customer-reviews) || document.getElementById(review-form), scrollToRatings() { let scrollTimeout null if (!this.reviewsSection) { return } addEventListener(scroll, () > { clearTimeout(scrollTimeout); scrollTimeout setTimeout(() > { if (this.reviewsSection) { this.reviewsSection.focus() } }, 50); }, { once: true }); this.reviewsSection.scrollIntoView({behavior: smooth}) } } } /script>script> use strict; function amNotificationProductViewComponent_22014() { return { isAvailable: 1, isAvailableConfigurableSimple: true, isOutofstockConfigurable: 1, title: Availability, options: {}, productIndex: 22014, hideAddToCartBtn: , notificationLabel: Notify me when this product is in stock, productId: 22014, /** * Overridden method for Product Alert View Model to output url according to product id in js * * @param productIndex * @param type * @returns {*} */ getSubscriptionUrl(productIndex, type) { const urlParts xnotif/email/, type, /product_id/, productIndex, (parseInt(productIndex) ! parseInt(this.productId)) ? /parent_id/ + this.productId : , /uenc/, aHR0cHM6Ly93d3cua2VlcHNob290aW5nLmNvbS8, ; return BASE_URL + urlParts.join(); }, getSimpleProduct(data, el) { let children JSON.parse(); /** * hide addtocart button if simple for configurable product is out of stock */ window.addEventListener(configurable-select-changed, (event) > { let componentElement document.querySelector(x-dataamNotificationProductViewComponent_ + event.detail.productId + ()) || document.querySelector(#stock_notification_ + event.detail.productId); let parentElement componentElement.closest(.product-info); this.hideAddToCartBtn parentElement.querySelector(.btn.btn-primary:not(.subscribe-button)); }); //for pdp only window.addEventListener(configurable-selection-changed, (event) > { const addToCartButton document.getElementById(product-addtocart-button)?.closest(div); if (addToCartButton) { addToCartButton.style.display this.isAvailableConfigurableSimple ? flex : none; } }); const swatchesComponent (document.querySelector(x-datainitConfigurableSwatchOptions_ + data.productId + ()) || document.querySelector(x-datainitAmastyXnotifCatalogSwatchesMixin_ + data.productId + ()) || document.querySelector(x-datainitAmastyCustomStockStatusOptions_ + data.productId + ())); const swatchesCount swatchesComponent?.querySelector(div)?.children?.length || 0; for (const key, value of Object.entries(childrendata.productIndex || {})) { const previousIndex this.productIndex; this.productIndex data.productIndex; if (Object.keys(data.selectedValues).length > swatchesCount) { this.isAvailable Number(value); this.isAvailableConfigurableSimple Number(value); } if (this.hideAddToCartBtn) { this.hideAddToCartBtn.style.display !this.isAvailable ? none : flex; } // plp duplicating indexes case if (el && (previousIndex this.productIndex) && !this.isAvailable) { el.closest(.product-info).querySelector(.btn.btn-primary:not(.subscribe-button)).style.display none; } } }, getAvailable() { return this.options { additionalClass: this.isAvailable ? bg-green-500 : bg-red-500, label: this.isAvailable ? In stock : Out of stock, categoryNotificationLabel: this.isAvailable ? : this.notificationLabel, }; } } }/script>div x-data{ ...amNotificationProductViewComponent_22014(), ...amXnotifSubscribeComponentList_22014() } x-on:configurable-select-changed.windowgetSimpleProduct($event.detail, $el) x-showgetAvailable() idstock_notification_22014 classtext-right relative> p classflex items-center align-middle available gap-x-2 stock :class{ justify-center: 1, justify-start: , } :titletitle> span classw-3 h-3 rounded-full flex-shrink-0 :classoptions.additionalClass>/span> span x-textoptions.label>/span> /p> /div>script> use strict; function amXnotifSubscribeComponentList_22014() { return { mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) { AmxnotifStockSubscribe(input: $input) { response_message } }`, isInStock: 1, isConfigurable: , productIdentifier: 22014, isValid: true, buttonDisabled: false, getMessages(type, message) { return typeof window.dispatchMessages ! undefined && window.dispatchMessages( { type: type, text: message } ); }, fetchSubscribe(productId) { let variables { input: { product_uid: btoa(productId), parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : , } }; this.buttonDisabled true; fetch(BASE_URL + graphql, { method: POST, headers: { Store: default, Content-Type: application/json, }, body: JSON.stringify({query: this.mutationStockSubscription, variables}), mode: cors, credentials: include }) .then((response) > response.json()) .then((result) > { if (result?.data?.AmxnotifStockSubscribe) { this.getMessages(success, result.data.AmxnotifStockSubscribe.response_message); } else { let message result?.errors ? result.errors0.message : Something went wrong.; this.getMessages(error, message) } if (this.isConfigurable) { setTimeout(() > { window.dispatchEvent(new Event(showAmLoader)); window.location.reload() }, 2000) } }) .finally(() > { this.buttonDisabled false; }) } } }/script> /div> div classflex justify-between gap-2 items-baseline flex-1> a classproduct-item-link flex-1 text-lg leading-7 font-bold text-slate-800 hrefhttps://www.keepshooting.com/walther-p22-magazine.html :id`slide-desc-22014-${$id(slider-id)}`> Walther P22 Magazine /a> /div> div classmb-4 mt-2> /div> div classfont-normal text-blue-800 x-datainitPriceBox() x-deferintersect @update-prices-22014.windowupdatePrice($event.detail);> div classprice-box price-final_price data-rolepriceBox data-product-id22014 data-price-boxproduct-id-22014> span x-data x-idproduct\u002Dprice\u002D22014 classprice-container price-final_price tax weee> span :id$id(product\u002Dprice\u002D22014) data-price-amount19.95 data-price-typefinalPrice classprice-wrapper >span classprice>$19.95/span>/span> /span> a hrefhttps://www.keepshooting.com/walther-p22-magazine.html classminimal-price-link> span x-data x-id22014 classprice-container price-final_price tax weee> span classprice-label>As low as/span> span :id$id(22014) data-price-amount16.96 data-price-type classprice-wrapper >$16.96/span> /span> /a> /div> /div> div classflex flex-row justify-between mt-1 mb-4 text-sm leading-5> div classtext-right> p classflex items-center justify-end align-middle gap-x-2 stock before:w-3 before:h-3 before:rounded-full before:shrink-0 available before:bg-green-500 titleAvailability>In stock/p> /div> /div> div classflex gap-2 flex-wrap flex-1 items-end> div classflex-1 md:w-full md:flex-initial lg:w-auto lg:flex-1> button classbg-blue-500 rounded-md text-white py-3 font-medium flex items-center gap-2 w-full justify-center hover:bg-blue-600 px-3 2xl:px-6 aria-labelAdd to Cart Walther P22 Magazine> svg xmlnshttp://www.w3.org/2000/svg fillnone viewbox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width20 height20> path stroke-linecapround stroke-linejoinround dM3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z>/path>/svg> span>Add to Cart/span> /button> /div> /div> /div> /form> form methodpost actionhttps://www.keepshooting.com/checkout/cart/add/uenc/%25uenc%25/product/21889/ classproduct-item product_addtocart_form shadow bg-white rounded-md p-4 flex flex-col hover:shadow-lg > input nameform_key typehidden valuerr5jh1nGUU3PKuud> input typehidden nameproduct value21889> a hrefhttps://www.keepshooting.com/m1a2-rifle-grenade-adapter.html titleM1A2 Rifle Grenade Adapter classproduct photo product-item-photo mb-2 mx-auto tabindex-1> img classproduct-image-photo x-data @update-gallery-21889.window$root.src $event.detail srchttps://www.keepshooting.com/media/catalog/product/cache/cef1856f87f96c51952913c39aa1d996/m/1/m1a2-rifle-grenade-adapter_3.jpg loadinglazy width240 height300 altM1A2 Rifle Grenade Adapter titleM1A2 Rifle Grenade Adapter> /a> div classflex flex-col flex-1> div classflex justify-between items-center> div classtext-sm leading-5 text-blue-500> United Defense LLC /div> div x-datainitRating2188967912669c0e10() x-deferintersect @keyup.enterscrollToRatings() @clickscrollToRatings() classrating-summary flex items-center gap-1 text-sm :class{cursor-pointer : reviewsSection} :tabindexreviewsSection ? 0 : -1 :aria-labelreviewsSection ? M1A2\u0020Rifle\u0020Grenade\u0020Adapter\u0020rating.\u00204.9\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews. : M1A2\u0020Rifle\u0020Grenade\u0020Adapter\u0020rating.\u00204.9\u0020out\u0020of\u00205\u0020stars :rolereviewsSection ? button : img> svg xmlnshttp://www.w3.org/2000/svg viewbox0 0 20 20 fillcurrentColor aria-hiddentrue classtext-yellow-500 mt-0.5 width20 height20> path dM9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z>/path>/svg> span classfont-bold text-slate-800> 4.9 /span> span classtext-blue-500> (span>16/span>) /span> /div> script> use strict; function initRating2188967912669c0e10() { return { reviewsSection: document.getElementById(customer-review-list) || document.getElementById(customer-reviews) || document.getElementById(review-form), scrollToRatings() { let scrollTimeout null if (!this.reviewsSection) { return } addEventListener(scroll, () > { clearTimeout(scrollTimeout); scrollTimeout setTimeout(() > { if (this.reviewsSection) { this.reviewsSection.focus() } }, 50); }, { once: true }); this.reviewsSection.scrollIntoView({behavior: smooth}) } } } /script>script> use strict; function amNotificationProductViewComponent_21889() { return { isAvailable: 1, isAvailableConfigurableSimple: true, isOutofstockConfigurable: 1, title: Availability, options: {}, productIndex: 21889, hideAddToCartBtn: , notificationLabel: Notify me when this product is in stock, productId: 21889, /** * Overridden method for Product Alert View Model to output url according to product id in js * * @param productIndex * @param type * @returns {*} */ getSubscriptionUrl(productIndex, type) { const urlParts xnotif/email/, type, /product_id/, productIndex, (parseInt(productIndex) ! parseInt(this.productId)) ? /parent_id/ + this.productId : , /uenc/, aHR0cHM6Ly93d3cua2VlcHNob290aW5nLmNvbS8, ; return BASE_URL + urlParts.join(); }, getSimpleProduct(data, el) { let children JSON.parse(); /** * hide addtocart button if simple for configurable product is out of stock */ window.addEventListener(configurable-select-changed, (event) > { let componentElement document.querySelector(x-dataamNotificationProductViewComponent_ + event.detail.productId + ()) || document.querySelector(#stock_notification_ + event.detail.productId); let parentElement componentElement.closest(.product-info); this.hideAddToCartBtn parentElement.querySelector(.btn.btn-primary:not(.subscribe-button)); }); //for pdp only window.addEventListener(configurable-selection-changed, (event) > { const addToCartButton document.getElementById(product-addtocart-button)?.closest(div); if (addToCartButton) { addToCartButton.style.display this.isAvailableConfigurableSimple ? flex : none; } }); const swatchesComponent (document.querySelector(x-datainitConfigurableSwatchOptions_ + data.productId + ()) || document.querySelector(x-datainitAmastyXnotifCatalogSwatchesMixin_ + data.productId + ()) || document.querySelector(x-datainitAmastyCustomStockStatusOptions_ + data.productId + ())); const swatchesCount swatchesComponent?.querySelector(div)?.children?.length || 0; for (const key, value of Object.entries(childrendata.productIndex || {})) { const previousIndex this.productIndex; this.productIndex data.productIndex; if (Object.keys(data.selectedValues).length > swatchesCount) { this.isAvailable Number(value); this.isAvailableConfigurableSimple Number(value); } if (this.hideAddToCartBtn) { this.hideAddToCartBtn.style.display !this.isAvailable ? none : flex; } // plp duplicating indexes case if (el && (previousIndex this.productIndex) && !this.isAvailable) { el.closest(.product-info).querySelector(.btn.btn-primary:not(.subscribe-button)).style.display none; } } }, getAvailable() { return this.options { additionalClass: this.isAvailable ? bg-green-500 : bg-red-500, label: this.isAvailable ? In stock : Out of stock, categoryNotificationLabel: this.isAvailable ? : this.notificationLabel, }; } } }/script>div x-data{ ...amNotificationProductViewComponent_21889(), ...amXnotifSubscribeComponentList_21889() } x-on:configurable-select-changed.windowgetSimpleProduct($event.detail, $el) x-showgetAvailable() idstock_notification_21889 classtext-right relative> p classflex items-center align-middle available gap-x-2 stock :class{ justify-center: 1, justify-start: , } :titletitle> span classw-3 h-3 rounded-full flex-shrink-0 :classoptions.additionalClass>/span> span x-textoptions.label>/span> /p> /div>script> use strict; function amXnotifSubscribeComponentList_21889() { return { mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) { AmxnotifStockSubscribe(input: $input) { response_message } }`, isInStock: 1, isConfigurable: , productIdentifier: 21889, isValid: true, buttonDisabled: false, getMessages(type, message) { return typeof window.dispatchMessages ! undefined && window.dispatchMessages( { type: type, text: message } ); }, fetchSubscribe(productId) { let variables { input: { product_uid: btoa(productId), parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : , } }; this.buttonDisabled true; fetch(BASE_URL + graphql, { method: POST, headers: { Store: default, Content-Type: application/json, }, body: JSON.stringify({query: this.mutationStockSubscription, variables}), mode: cors, credentials: include }) .then((response) > response.json()) .then((result) > { if (result?.data?.AmxnotifStockSubscribe) { this.getMessages(success, result.data.AmxnotifStockSubscribe.response_message); } else { let message result?.errors ? result.errors0.message : Something went wrong.; this.getMessages(error, message) } if (this.isConfigurable) { setTimeout(() > { window.dispatchEvent(new Event(showAmLoader)); window.location.reload() }, 2000) } }) .finally(() > { this.buttonDisabled false; }) } } }/script> /div> div classflex justify-between gap-2 items-baseline flex-1> a classproduct-item-link flex-1 text-lg leading-7 font-bold text-slate-800 hrefhttps://www.keepshooting.com/m1a2-rifle-grenade-adapter.html :id`slide-desc-21889-${$id(slider-id)}`> M1A2 Rifle Grenade Adapter /a> /div> div classmb-4 mt-2> /div> div classfont-normal text-blue-800 x-datainitPriceBox() x-deferintersect @update-prices-21889.windowupdatePrice($event.detail);> div classprice-box price-final_price data-rolepriceBox data-product-id21889 data-price-boxproduct-id-21889> span x-data x-idproduct\u002Dprice\u002D21889 classprice-container price-final_price tax weee> span :id$id(product\u002Dprice\u002D21889) data-price-amount39.95 data-price-typefinalPrice classprice-wrapper >span classprice>$39.95/span>/span> /span>/div> /div> div classflex flex-row justify-between mt-1 mb-4 text-sm leading-5> div classtext-right> p classflex items-center justify-end align-middle gap-x-2 stock before:w-3 before:h-3 before:rounded-full before:shrink-0 available before:bg-green-500 titleAvailability>In stock/p> /div> /div> div classflex gap-2 flex-wrap flex-1 items-end> div classflex-1 md:w-full md:flex-initial lg:w-auto lg:flex-1> button classbg-blue-500 rounded-md text-white py-3 font-medium flex items-center gap-2 w-full justify-center hover:bg-blue-600 px-3 2xl:px-6 aria-labelAdd to Cart M1A2 Rifle Grenade Adapter> svg xmlnshttp://www.w3.org/2000/svg fillnone viewbox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width20 height20> path stroke-linecapround stroke-linejoinround dM3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z>/path>/svg> span>Add to Cart/span> /button> /div> /div> /div> /form> form methodpost actionhttps://www.keepshooting.com/checkout/cart/add/uenc/%25uenc%25/product/21660/ classproduct-item product_addtocart_form shadow bg-white rounded-md p-4 flex flex-col hover:shadow-lg > input nameform_key typehidden valuerr5jh1nGUU3PKuud> input typehidden nameproduct value21660> a hrefhttps://www.keepshooting.com/remington-597-magazine.html titleRemington 597 Magazine classproduct photo product-item-photo mb-2 mx-auto tabindex-1> img classproduct-image-photo x-data @update-gallery-21660.window$root.src $event.detail srchttps://www.keepshooting.com/media/catalog/product/cache/cef1856f87f96c51952913c39aa1d996/r/e/remington-597-magazine.jpg loadinglazy width240 height300 altRemington 597 Magazine titleRemington 597 Magazine > /a> div classflex flex-col flex-1> div classflex justify-between items-center> div classtext-sm leading-5 text-blue-500> United Defense LLC /div> div x-datainitRating2166067912669c1956() x-deferintersect @keyup.enterscrollToRatings() @clickscrollToRatings() classrating-summary flex items-center gap-1 text-sm :class{cursor-pointer : reviewsSection} :tabindexreviewsSection ? 0 : -1 :aria-labelreviewsSection ? Remington\u0020597\u0020Magazine\u0020\u0020rating.\u00204.5\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews. : Remington\u0020597\u0020Magazine\u0020\u0020rating.\u00204.5\u0020out\u0020of\u00205\u0020stars :rolereviewsSection ? button : img> svg xmlnshttp://www.w3.org/2000/svg viewbox0 0 20 20 fillcurrentColor aria-hiddentrue classtext-yellow-500 mt-0.5 width20 height20> path dM9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z>/path>/svg> span classfont-bold text-slate-800> 4.5 /span> span classtext-blue-500> (span>6955/span>) /span> /div> script> use strict; function initRating2166067912669c1956() { return { reviewsSection: document.getElementById(customer-review-list) || document.getElementById(customer-reviews) || document.getElementById(review-form), scrollToRatings() { let scrollTimeout null if (!this.reviewsSection) { return } addEventListener(scroll, () > { clearTimeout(scrollTimeout); scrollTimeout setTimeout(() > { if (this.reviewsSection) { this.reviewsSection.focus() } }, 50); }, { once: true }); this.reviewsSection.scrollIntoView({behavior: smooth}) } } } /script>script> use strict; function amNotificationProductViewComponent_21660() { return { isAvailable: 1, isAvailableConfigurableSimple: true, isOutofstockConfigurable: 1, title: Availability, options: {}, productIndex: 21660, hideAddToCartBtn: , notificationLabel: Notify me when this product is in stock, productId: 21660, /** * Overridden method for Product Alert View Model to output url according to product id in js * * @param productIndex * @param type * @returns {*} */ getSubscriptionUrl(productIndex, type) { const urlParts xnotif/email/, type, /product_id/, productIndex, (parseInt(productIndex) ! parseInt(this.productId)) ? /parent_id/ + this.productId : , /uenc/, aHR0cHM6Ly93d3cua2VlcHNob290aW5nLmNvbS8, ; return BASE_URL + urlParts.join(); }, getSimpleProduct(data, el) { let children JSON.parse(); /** * hide addtocart button if simple for configurable product is out of stock */ window.addEventListener(configurable-select-changed, (event) > { let componentElement document.querySelector(x-dataamNotificationProductViewComponent_ + event.detail.productId + ()) || document.querySelector(#stock_notification_ + event.detail.productId); let parentElement componentElement.closest(.product-info); this.hideAddToCartBtn parentElement.querySelector(.btn.btn-primary:not(.subscribe-button)); }); //for pdp only window.addEventListener(configurable-selection-changed, (event) > { const addToCartButton document.getElementById(product-addtocart-button)?.closest(div); if (addToCartButton) { addToCartButton.style.display this.isAvailableConfigurableSimple ? flex : none; } }); const swatchesComponent (document.querySelector(x-datainitConfigurableSwatchOptions_ + data.productId + ()) || document.querySelector(x-datainitAmastyXnotifCatalogSwatchesMixin_ + data.productId + ()) || document.querySelector(x-datainitAmastyCustomStockStatusOptions_ + data.productId + ())); const swatchesCount swatchesComponent?.querySelector(div)?.children?.length || 0; for (const key, value of Object.entries(childrendata.productIndex || {})) { const previousIndex this.productIndex; this.productIndex data.productIndex; if (Object.keys(data.selectedValues).length > swatchesCount) { this.isAvailable Number(value); this.isAvailableConfigurableSimple Number(value); } if (this.hideAddToCartBtn) { this.hideAddToCartBtn.style.display !this.isAvailable ? none : flex; } // plp duplicating indexes case if (el && (previousIndex this.productIndex) && !this.isAvailable) { el.closest(.product-info).querySelector(.btn.btn-primary:not(.subscribe-button)).style.display none; } } }, getAvailable() { return this.options { additionalClass: this.isAvailable ? bg-green-500 : bg-red-500, label: this.isAvailable ? In stock : Out of stock, categoryNotificationLabel: this.isAvailable ? : this.notificationLabel, }; } } }/script>div x-data{ ...amNotificationProductViewComponent_21660(), ...amXnotifSubscribeComponentList_21660() } x-on:configurable-select-changed.windowgetSimpleProduct($event.detail, $el) x-showgetAvailable() idstock_notification_21660 classtext-right relative> p classflex items-center align-middle available gap-x-2 stock :class{ justify-center: 1, justify-start: , } :titletitle> span classw-3 h-3 rounded-full flex-shrink-0 :classoptions.additionalClass>/span> span x-textoptions.label>/span> /p> /div>script> use strict; function amXnotifSubscribeComponentList_21660() { return { mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) { AmxnotifStockSubscribe(input: $input) { response_message } }`, isInStock: 1, isConfigurable: , productIdentifier: 21660, isValid: true, buttonDisabled: false, getMessages(type, message) { return typeof window.dispatchMessages ! undefined && window.dispatchMessages( { type: type, text: message } ); }, fetchSubscribe(productId) { let variables { input: { product_uid: btoa(productId), parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : , } }; this.buttonDisabled true; fetch(BASE_URL + graphql, { method: POST, headers: { Store: default, Content-Type: application/json, }, body: JSON.stringify({query: this.mutationStockSubscription, variables}), mode: cors, credentials: include }) .then((response) > response.json()) .then((result) > { if (result?.data?.AmxnotifStockSubscribe) { this.getMessages(success, result.data.AmxnotifStockSubscribe.response_message); } else { let message result?.errors ? result.errors0.message : Something went wrong.; this.getMessages(error, message) } if (this.isConfigurable) { setTimeout(() > { window.dispatchEvent(new Event(showAmLoader)); window.location.reload() }, 2000) } }) .finally(() > { this.buttonDisabled false; }) } } }/script> /div> div classflex justify-between gap-2 items-baseline flex-1> a classproduct-item-link flex-1 text-lg leading-7 font-bold text-slate-800 hrefhttps://www.keepshooting.com/remington-597-magazine.html :id`slide-desc-21660-${$id(slider-id)}`> Remington 597 Magazine /a> /div> div classmb-4 mt-2> /div> div classfont-normal text-blue-800 x-datainitPriceBox() x-deferintersect @update-prices-21660.windowupdatePrice($event.detail);> div classprice-box price-final_price data-rolepriceBox data-product-id21660 data-price-boxproduct-id-21660> span x-data x-idproduct\u002Dprice\u002D21660 classprice-container price-final_price tax weee> span :id$id(product\u002Dprice\u002D21660) data-price-amount25.95 data-price-typefinalPrice classprice-wrapper >span classprice>$25.95/span>/span> /span> a hrefhttps://www.keepshooting.com/remington-597-magazine.html classminimal-price-link> span x-data x-id21660 classprice-container price-final_price tax weee> span classprice-label>As low as/span> span :id$id(21660) data-price-amount22.06 data-price-type classprice-wrapper >$22.06/span> /span> /a> /div> /div> div classflex flex-row justify-between mt-1 mb-4 text-sm leading-5> div classtext-right> p classflex items-center justify-end align-middle gap-x-2 stock before:w-3 before:h-3 before:rounded-full before:shrink-0 available before:bg-green-500 titleAvailability>In stock/p> /div> /div> div classflex gap-2 flex-wrap flex-1 items-end> div classflex-1 md:w-full md:flex-initial lg:w-auto lg:flex-1> button classbg-blue-500 rounded-md text-white py-3 font-medium flex items-center gap-2 w-full justify-center hover:bg-blue-600 px-3 2xl:px-6 aria-labelAdd to Cart Remington 597 Magazine > svg xmlnshttp://www.w3.org/2000/svg fillnone viewbox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width20 height20> path stroke-linecapround stroke-linejoinround dM3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z>/path>/svg> span>Add to Cart/span> /button> /div> /div> /div> /form> form methodpost actionhttps://www.keepshooting.com/checkout/cart/add/uenc/%25uenc%25/product/21655/ classproduct-item product_addtocart_form shadow bg-white rounded-md p-4 flex flex-col hover:shadow-lg > input nameform_key typehidden valuerr5jh1nGUU3PKuud> input typehidden nameproduct value21655> a hrefhttps://www.keepshooting.com/m14-magazine-taiwan-t57.html titleM14 Magazine classproduct photo product-item-photo mb-2 mx-auto tabindex-1> img classproduct-image-photo x-data @update-gallery-21655.window$root.src $event.detail srchttps://www.keepshooting.com/media/catalog/product/cache/cef1856f87f96c51952913c39aa1d996/m/1/m14-magazine-20rd-capacity.jpg loadinglazy width240 height300 altM14 Magazine titleM14 Magazine> /a> div classflex flex-col flex-1> div classflex justify-between items-center> div classtext-sm leading-5 text-blue-500> United Defense LLC /div> div x-datainitRating2165567912669c2462() x-deferintersect @keyup.enterscrollToRatings() @clickscrollToRatings() classrating-summary flex items-center gap-1 text-sm :class{cursor-pointer : reviewsSection} :tabindexreviewsSection ? 0 : -1 :aria-labelreviewsSection ? M14\u0020Magazine\u0020rating.\u00204.5\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews. : M14\u0020Magazine\u0020rating.\u00204.5\u0020out\u0020of\u00205\u0020stars :rolereviewsSection ? button : img> svg xmlnshttp://www.w3.org/2000/svg viewbox0 0 20 20 fillcurrentColor aria-hiddentrue classtext-yellow-500 mt-0.5 width20 height20> path dM9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z>/path>/svg> span classfont-bold text-slate-800> 4.5 /span> span classtext-blue-500> (span>5729/span>) /span> /div> script> use strict; function initRating2165567912669c2462() { return { reviewsSection: document.getElementById(customer-review-list) || document.getElementById(customer-reviews) || document.getElementById(review-form), scrollToRatings() { let scrollTimeout null if (!this.reviewsSection) { return } addEventListener(scroll, () > { clearTimeout(scrollTimeout); scrollTimeout setTimeout(() > { if (this.reviewsSection) { this.reviewsSection.focus() } }, 50); }, { once: true }); this.reviewsSection.scrollIntoView({behavior: smooth}) } } } /script>script> use strict; function amNotificationProductViewComponent_21655() { return { isAvailable: 1, isAvailableConfigurableSimple: true, isOutofstockConfigurable: 1, title: Availability, options: {}, productIndex: 21655, hideAddToCartBtn: , notificationLabel: Notify me when this product is in stock, productId: 21655, /** * Overridden method for Product Alert View Model to output url according to product id in js * * @param productIndex * @param type * @returns {*} */ getSubscriptionUrl(productIndex, type) { const urlParts xnotif/email/, type, /product_id/, productIndex, (parseInt(productIndex) ! parseInt(this.productId)) ? /parent_id/ + this.productId : , /uenc/, aHR0cHM6Ly93d3cua2VlcHNob290aW5nLmNvbS8, ; return BASE_URL + urlParts.join(); }, getSimpleProduct(data, el) { let children JSON.parse(); /** * hide addtocart button if simple for configurable product is out of stock */ window.addEventListener(configurable-select-changed, (event) > { let componentElement document.querySelector(x-dataamNotificationProductViewComponent_ + event.detail.productId + ()) || document.querySelector(#stock_notification_ + event.detail.productId); let parentElement componentElement.closest(.product-info); this.hideAddToCartBtn parentElement.querySelector(.btn.btn-primary:not(.subscribe-button)); }); //for pdp only window.addEventListener(configurable-selection-changed, (event) > { const addToCartButton document.getElementById(product-addtocart-button)?.closest(div); if (addToCartButton) { addToCartButton.style.display this.isAvailableConfigurableSimple ? flex : none; } }); const swatchesComponent (document.querySelector(x-datainitConfigurableSwatchOptions_ + data.productId + ()) || document.querySelector(x-datainitAmastyXnotifCatalogSwatchesMixin_ + data.productId + ()) || document.querySelector(x-datainitAmastyCustomStockStatusOptions_ + data.productId + ())); const swatchesCount swatchesComponent?.querySelector(div)?.children?.length || 0; for (const key, value of Object.entries(childrendata.productIndex || {})) { const previousIndex this.productIndex; this.productIndex data.productIndex; if (Object.keys(data.selectedValues).length > swatchesCount) { this.isAvailable Number(value); this.isAvailableConfigurableSimple Number(value); } if (this.hideAddToCartBtn) { this.hideAddToCartBtn.style.display !this.isAvailable ? none : flex; } // plp duplicating indexes case if (el && (previousIndex this.productIndex) && !this.isAvailable) { el.closest(.product-info).querySelector(.btn.btn-primary:not(.subscribe-button)).style.display none; } } }, getAvailable() { return this.options { additionalClass: this.isAvailable ? bg-green-500 : bg-red-500, label: this.isAvailable ? In stock : Out of stock, categoryNotificationLabel: this.isAvailable ? : this.notificationLabel, }; } } }/script>div x-data{ ...amNotificationProductViewComponent_21655(), ...amXnotifSubscribeComponentList_21655() } x-on:configurable-select-changed.windowgetSimpleProduct($event.detail, $el) x-showgetAvailable() idstock_notification_21655 classtext-right relative> p classflex items-center align-middle available gap-x-2 stock :class{ justify-center: 1, justify-start: , } :titletitle> span classw-3 h-3 rounded-full flex-shrink-0 :classoptions.additionalClass>/span> span x-textoptions.label>/span> /p> /div>script> use strict; function amXnotifSubscribeComponentList_21655() { return { mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) { AmxnotifStockSubscribe(input: $input) { response_message } }`, isInStock: 1, isConfigurable: , productIdentifier: 21655, isValid: true, buttonDisabled: false, getMessages(type, message) { return typeof window.dispatchMessages ! undefined && window.dispatchMessages( { type: type, text: message } ); }, fetchSubscribe(productId) { let variables { input: { product_uid: btoa(productId), parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : , } }; this.buttonDisabled true; fetch(BASE_URL + graphql, { method: POST, headers: { Store: default, Content-Type: application/json, }, body: JSON.stringify({query: this.mutationStockSubscription, variables}), mode: cors, credentials: include }) .then((response) > response.json()) .then((result) > { if (result?.data?.AmxnotifStockSubscribe) { this.getMessages(success, result.data.AmxnotifStockSubscribe.response_message); } else { let message result?.errors ? result.errors0.message : Something went wrong.; this.getMessages(error, message) } if (this.isConfigurable) { setTimeout(() > { window.dispatchEvent(new Event(showAmLoader)); window.location.reload() }, 2000) } }) .finally(() > { this.buttonDisabled false; }) } } }/script> /div> div classflex justify-between gap-2 items-baseline flex-1> a classproduct-item-link flex-1 text-lg leading-7 font-bold text-slate-800 hrefhttps://www.keepshooting.com/m14-magazine-taiwan-t57.html :id`slide-desc-21655-${$id(slider-id)}`> M14 Magazine /a> /div> div classmb-4 mt-2> /div> div classfont-normal text-blue-800 x-datainitPriceBox() x-deferintersect @update-prices-21655.windowupdatePrice($event.detail);> div classprice-box price-final_price data-rolepriceBox data-product-id21655 data-price-boxproduct-id-21655> span x-data x-idproduct\u002Dprice\u002D21655 classprice-container price-final_price tax weee> span :id$id(product\u002Dprice\u002D21655) data-price-amount24.95 data-price-typefinalPrice classprice-wrapper >span classprice>$24.95/span>/span> /span>/div> /div> div classflex flex-row justify-between mt-1 mb-4 text-sm leading-5> div classtext-right> p classflex items-center justify-end align-middle gap-x-2 stock before:w-3 before:h-3 before:rounded-full before:shrink-0 available before:bg-green-500 titleAvailability>In stock/p> /div> /div> div classflex gap-2 flex-wrap flex-1 items-end> div classflex-1 md:w-full md:flex-initial lg:w-auto lg:flex-1> button classbg-blue-500 rounded-md text-white py-3 font-medium flex items-center gap-2 w-full justify-center hover:bg-blue-600 px-3 2xl:px-6 aria-labelAdd to Cart M14 Magazine> svg xmlnshttp://www.w3.org/2000/svg fillnone viewbox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width20 height20> path stroke-linecapround stroke-linejoinround dM3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z>/path>/svg> span>Add to Cart/span> /button> /div> /div> /div> /form> form methodpost actionhttps://www.keepshooting.com/checkout/cart/add/uenc/%25uenc%25/product/21652/ classproduct-item product_addtocart_form shadow bg-white rounded-md p-4 flex flex-col hover:shadow-lg > input nameform_key typehidden valuerr5jh1nGUU3PKuud> input typehidden nameproduct value21652> a hrefhttps://www.keepshooting.com/mil-spec-m1-carbine-15rd-magazine.html titleMIL-SPEC M1 Carbine Magazine classproduct photo product-item-photo mb-2 mx-auto tabindex-1> img classproduct-image-photo x-data @update-gallery-21652.window$root.src $event.detail srchttps://www.keepshooting.com/media/catalog/product/cache/cef1856f87f96c51952913c39aa1d996/m/1/m1-carbine-15rd--magazine.jpg loadinglazy width240 height300 altM1 Carbine 15rd Magazine titleM1 Carbine 15rd Magazine> /a> div classflex flex-col flex-1> div classflex justify-between items-center> div classtext-sm leading-5 text-blue-500> United Defense LLC /div> div x-datainitRating2165267912669c2f73() x-deferintersect @keyup.enterscrollToRatings() @clickscrollToRatings() classrating-summary flex items-center gap-1 text-sm :class{cursor-pointer : reviewsSection} :tabindexreviewsSection ? 0 : -1 :aria-labelreviewsSection ? MIL\u002DSPEC\u0020M1\u0020Carbine\u0020Magazine\u0020rating.\u00204.5\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews. : MIL\u002DSPEC\u0020M1\u0020Carbine\u0020Magazine\u0020rating.\u00204.5\u0020out\u0020of\u00205\u0020stars :rolereviewsSection ? button : img> svg xmlnshttp://www.w3.org/2000/svg viewbox0 0 20 20 fillcurrentColor aria-hiddentrue classtext-yellow-500 mt-0.5 width20 height20> path dM9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z>/path>/svg> span classfont-bold text-slate-800> 4.5 /span> span classtext-blue-500> (span>8441/span>) /span> /div> script> use strict; function initRating2165267912669c2f73() { return { reviewsSection: document.getElementById(customer-review-list) || document.getElementById(customer-reviews) || document.getElementById(review-form), scrollToRatings() { let scrollTimeout null if (!this.reviewsSection) { return } addEventListener(scroll, () > { clearTimeout(scrollTimeout); scrollTimeout setTimeout(() > { if (this.reviewsSection) { this.reviewsSection.focus() } }, 50); }, { once: true }); this.reviewsSection.scrollIntoView({behavior: smooth}) } } } /script>script> use strict; function amNotificationProductViewComponent_21652() { return { isAvailable: 1, isAvailableConfigurableSimple: true, isOutofstockConfigurable: 1, title: Availability, options: {}, productIndex: 21652, hideAddToCartBtn: , notificationLabel: Notify me when this product is in stock, productId: 21652, /** * Overridden method for Product Alert View Model to output url according to product id in js * * @param productIndex * @param type * @returns {*} */ getSubscriptionUrl(productIndex, type) { const urlParts xnotif/email/, type, /product_id/, productIndex, (parseInt(productIndex) ! parseInt(this.productId)) ? /parent_id/ + this.productId : , /uenc/, aHR0cHM6Ly93d3cua2VlcHNob290aW5nLmNvbS8, ; return BASE_URL + urlParts.join(); }, getSimpleProduct(data, el) { let children JSON.parse(); /** * hide addtocart button if simple for configurable product is out of stock */ window.addEventListener(configurable-select-changed, (event) > { let componentElement document.querySelector(x-dataamNotificationProductViewComponent_ + event.detail.productId + ()) || document.querySelector(#stock_notification_ + event.detail.productId); let parentElement componentElement.closest(.product-info); this.hideAddToCartBtn parentElement.querySelector(.btn.btn-primary:not(.subscribe-button)); }); //for pdp only window.addEventListener(configurable-selection-changed, (event) > { const addToCartButton document.getElementById(product-addtocart-button)?.closest(div); if (addToCartButton) { addToCartButton.style.display this.isAvailableConfigurableSimple ? flex : none; } }); const swatchesComponent (document.querySelector(x-datainitConfigurableSwatchOptions_ + data.productId + ()) || document.querySelector(x-datainitAmastyXnotifCatalogSwatchesMixin_ + data.productId + ()) || document.querySelector(x-datainitAmastyCustomStockStatusOptions_ + data.productId + ())); const swatchesCount swatchesComponent?.querySelector(div)?.children?.length || 0; for (const key, value of Object.entries(childrendata.productIndex || {})) { const previousIndex this.productIndex; this.productIndex data.productIndex; if (Object.keys(data.selectedValues).length > swatchesCount) { this.isAvailable Number(value); this.isAvailableConfigurableSimple Number(value); } if (this.hideAddToCartBtn) { this.hideAddToCartBtn.style.display !this.isAvailable ? none : flex; } // plp duplicating indexes case if (el && (previousIndex this.productIndex) && !this.isAvailable) { el.closest(.product-info).querySelector(.btn.btn-primary:not(.subscribe-button)).style.display none; } } }, getAvailable() { return this.options { additionalClass: this.isAvailable ? bg-green-500 : bg-red-500, label: this.isAvailable ? In stock : Out of stock, categoryNotificationLabel: this.isAvailable ? : this.notificationLabel, }; } } }/script>div x-data{ ...amNotificationProductViewComponent_21652(), ...amXnotifSubscribeComponentList_21652() } x-on:configurable-select-changed.windowgetSimpleProduct($event.detail, $el) x-showgetAvailable() idstock_notification_21652 classtext-right relative> p classflex items-center align-middle available gap-x-2 stock :class{ justify-center: 1, justify-start: , } :titletitle> span classw-3 h-3 rounded-full flex-shrink-0 :classoptions.additionalClass>/span> span x-textoptions.label>/span> /p> /div>script> use strict; function amXnotifSubscribeComponentList_21652() { return { mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) { AmxnotifStockSubscribe(input: $input) { response_message } }`, isInStock: 1, isConfigurable: , productIdentifier: 21652, isValid: true, buttonDisabled: false, getMessages(type, message) { return typeof window.dispatchMessages ! undefined && window.dispatchMessages( { type: type, text: message } ); }, fetchSubscribe(productId) { let variables { input: { product_uid: btoa(productId), parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : , } }; this.buttonDisabled true; fetch(BASE_URL + graphql, { method: POST, headers: { Store: default, Content-Type: application/json, }, body: JSON.stringify({query: this.mutationStockSubscription, variables}), mode: cors, credentials: include }) .then((response) > response.json()) .then((result) > { if (result?.data?.AmxnotifStockSubscribe) { this.getMessages(success, result.data.AmxnotifStockSubscribe.response_message); } else { let message result?.errors ? result.errors0.message : Something went wrong.; this.getMessages(error, message) } if (this.isConfigurable) { setTimeout(() > { window.dispatchEvent(new Event(showAmLoader)); window.location.reload() }, 2000) } }) .finally(() > { this.buttonDisabled false; }) } } }/script> /div> div classflex justify-between gap-2 items-baseline flex-1> a classproduct-item-link flex-1 text-lg leading-7 font-bold text-slate-800 hrefhttps://www.keepshooting.com/mil-spec-m1-carbine-15rd-magazine.html :id`slide-desc-21652-${$id(slider-id)}`> MIL-SPEC M1 Carbine Magazine /a> /div> div classmb-4 mt-2> /div> div classfont-normal text-blue-800 x-datainitPriceBox() x-deferintersect @update-prices-21652.windowupdatePrice($event.detail);> div classprice-box price-final_price data-rolepriceBox data-product-id21652 data-price-boxproduct-id-21652> span classspecial-price> span x-data x-idproduct\u002Dprice\u002D21652 classprice-container price-final_price tax weee> span classprice-label>Special Price/span> span :id$id(product\u002Dprice\u002D21652) data-price-amount7.95 data-price-typefinalPrice classprice-wrapper >span classprice>$7.95/span>/span> /span> /span> span classold-price> span x-data x-idold\u002Dprice\u002D21652 classprice-container price-final_price tax weee> span classprice-label>Regular Price/span> span :id$id(old\u002Dprice\u002D21652) data-price-amount14.95 data-price-typeoldPrice classprice-wrapper >span classprice>$14.95/span>/span> /span> /span>/div> /div> div classflex flex-row justify-between mt-1 mb-4 text-sm leading-5> div classtext-right> p classflex items-center justify-end align-middle gap-x-2 stock before:w-3 before:h-3 before:rounded-full before:shrink-0 available before:bg-green-500 titleAvailability>In stock/p> /div> /div> div classflex gap-2 flex-wrap flex-1 items-end> div classflex-1 md:w-full md:flex-initial lg:w-auto lg:flex-1> button classbg-blue-500 rounded-md text-white py-3 font-medium flex items-center gap-2 w-full justify-center hover:bg-blue-600 px-3 2xl:px-6 aria-labelAdd to Cart MIL-SPEC M1 Carbine Magazine> svg xmlnshttp://www.w3.org/2000/svg fillnone viewbox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width20 height20> path stroke-linecapround stroke-linejoinround dM3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z>/path>/svg> span>Add to Cart/span> /button> /div> /div> /div> /form> /div> /div> /div>/div>/div>/div>/div>/div>div data-content-typeblock data-appearancedefault data-elementmain>div classwidget block block-static-block> style>#html-body data-pb-styleM4ISHF0{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}/style>div data-content-typerow data-appearancefull-width data-enable-parallax0 data-parallax-speed0.5 data-background-images{} data-background-typeimage data-video-looptrue data-video-play-only-visibletrue data-video-lazy-loadtrue data-video-fallback-src data-elementmain data-pb-styleM4ISHF0>div classrow-full-width-inner data-elementinner>div data-content-typetext data-appearancedefault data-elementmain>p> /p>h3 classblog__posts__type-6__title bmx:card-title>Latest From Our Blog/h3>div x-dataupdatePostViewCount_widget\posts_0(16,15) classblog__posts__type-6 bmx:card mb-12> div classgrid lg:grid-cols-3 gap-6 data-post-id16> div> a hrefhttps://www.keepshooting.com/blog/unveiling-a-legendary-legacy-the-exclusive-wwii-collection-from-james-arness-s-estate.html classoverflow-hidden> img classrounded block loadinglazy srchttps://www.keepshooting.com/media/blog/gunsmoke-tv-logo.jpg altUnveiling a Legendary Legacy: The Exclusive WWII Collection from James Arnesss Estate> /a> /div> div classlg:col-span-2> div itemproptext> div classgrid gap-4> ul classbmx:list-inline text-sm> li> a hrefhttps://www.keepshooting.com/blog/author/andy-blair.html classbmx:text-subdued flex gap-2 items-center> Andy Blair /a> /li> li classbmx:text-subdued>Dec 9, 2024/li> li classbmx:text-subdued> div data-post-id16 data-views>16/div> views /li> /ul> h2 itempropheadline classm-0> a classbmx:link text-xl font-bold hrefhttps://www.keepshooting.com/blog/unveiling-a-legendary-legacy-the-exclusive-wwii-collection-from-james-arness-s-estate.html relbookmark>Unveiling a Legendary Legacy: The Exclusive WWII Collection from James Arnesss Estate/a> /h2> div classtext-subdued> Unveiling a Legendary Legacy: The Exclusive WWII Collection from James Arnesss EstateIn the storied annals of American history and entertainment, few figures resonate with the enduring appeal of James Arness, the iconic actor who portrayed Marshal Matt Dillon on the long-running Western drama Gunsmoke for two decades. Now, in a momentous first, we ... /div> div classflex justify-end> a classbmx:link hrefhttps://www.keepshooting.com/blog/unveiling-a-legendary-legacy-the-exclusive-wwii-collection-from-james-arness-s-estate.html>Read more.../a> /div> /div> /div> /div>/div> div classbmx:hr last:hidden>/div> div classgrid lg:grid-cols-3 gap-6 data-post-id15> div> a hrefhttps://www.keepshooting.com/blog/privacy-and-security-equals-respect.html classoverflow-hidden> img classrounded block loadinglazy srchttps://www.keepshooting.com/media/blog/privacy-security-respect_1.jpg altWhy Doing Business with a Privacy and Security Focused Business Is Good For You> /a> /div> div classlg:col-span-2> div itemproptext> div classgrid gap-4> ul classbmx:list-inline text-sm> li> a hrefhttps://www.keepshooting.com/blog/author/andy-blair.html classbmx:text-subdued flex gap-2 items-center> Andy Blair /a> /li> li classbmx:text-subdued>Jun 17, 2024/li> li classbmx:text-subdued> div data-post-id15 data-views>272/div> views /li> /ul> h2 itempropheadline classm-0> a classbmx:link text-xl font-bold hrefhttps://www.keepshooting.com/blog/privacy-and-security-equals-respect.html relbookmark>Why Doing Business with a Privacy and Security Focused Business Is Good For You/a> /h2> div classtext-subdued> PRIVACY AND SECURITY RESPECT The entire team at KEEP SHOOTING is focused on respecting our customers privacy and security. This focus on privacy and security includes our existing customers who have made one or more purchases from our website and our future customers who have been enjoying browsing our website. For our ... /div> div classflex justify-end> a classbmx:link hrefhttps://www.keepshooting.com/blog/privacy-and-security-equals-respect.html>Read more.../a> /div> /div> /div> /div>/div> div classbmx:hr last:hidden>/div> /div>script> function updatePostViewCount_widget\posts_0(postIds) { const viewUrl https://www.keepshooting.com/blog/post/viewCount/; const params new URLSearchParams({postIds: postIds}).toString(); fetch(viewUrl + ? + params + &_ + Date.now()) .then(response > { return response.json() }) .then(data > { data.items.forEach(item > { if (item.view_count ! undefined) { document.querySelectorAll(data-post-id + item.post_id + data-views).forEach(post > { post.innerHTML item.view_count; }) } }) }); return {}; }/script>/div>/div>/div>/div>/div>/div>/div>/div>/div>/main>footer classpage-footer>div classpr-4 w-full bg-#E4AD3C mt-4 grid grid-cols-1> div classmx-auto max-w-7xl sm:px-6 lg:px-8> form classform subscribe actionhttps://mailcoach.uniteddefensellc.com/subscribe/2f2080d4-d288-428c-858a-d6d3e0b15386 methodpost x-datainitNewsletterForm() @submit.preventsubmitForm() idnewsletter-validate-detail> div classmb-3 text-sm font-bold tracking-widest text-gray-900 uppercase title-font> Join our email list for the best deals!!!! /div> div classflex flex-wrap justify-center gap-2 md:justify-start> span fornewsletter-subscribe classsr-only> Email Address /span> input nameemail typeemail required idnewsletter-subscribe classform-input inline-flex w-full placeholderEnter your email address> input nameform_key typehidden valuexhu87VanXtW2bKGz /> button classinline-flex shrink-0 ml-auto mb-4 xl:mt-0 btn btn-primary> Subscribe /button> /div> div> template x-ifdisplayErrorMessage> p classflex items-center text-red> span classinline-block w-8 h-8 mr-3> svg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 strokecurrentColor> path stroke-linecapround stroke-linejoinround stroke-width2 dM12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z/> /svg> /span> template x-forerrorMessage in errorMessages> span x-htmlerrorMessage>/span> /template> /p> /template> /div> /form> div classw-full> /div> script> function initNewsletterForm() { return { errors: 0, hasCaptchaToken: 0, displayErrorMessage: false, errorMessages: , setErrorMessages(messages) { this.errorMessages messages this.displayErrorMessage this.errorMessages.length }, submitForm() { var $form document.querySelector(#newsletter-validate-detail); if (this.errors 0) { $form.submit(); } } } } /script>/div>/div>div data-bindscope: amasty-shipbar-bottom> !-- ko template: getTemplate() -->!-- /ko --> script typetext/x-magento-init> { *: { Magento_Ui/js/core/app: {components:{amasty-shipbar-bottom:{component:Amasty_ShippingBar\/js\/bar,currencySymbol:$}}} } } /script>/div>div classfooter content>div classtext-gray-700 body-font bg-container-darker border-t border-container-darker shadow pb-16> div classcontainer py-8 mx-auto text-red-600> div classflex flex-wrap order-first gap-y-16> script> use strict; const initMenuFooter_679045a55e39f () > ({ isDesktop: true, checkIsDesktopResolution() { this.isDesktop window.matchMedia((min-width: 1024px)).matches }, toggleSubmenu(event, index) { const focusableElements button:not(disabled), ahref:not(tabindex-1), tabindex:not(tabindex-1) event.stopPropagation() thisindex !thisindex if (thisindex) { this.$nextTick(() > { this.$refssubmenu- + index?.querySelector(focusableElements)?.focus() }) } else { this.$nextTick(() > { this.$refssubmenu-toggle- + index?.focus() }) } }, }) /script> div class snowdog-menu-footer w-full flex flex-wrap text-primary-darker x-datainitMenuFooter_679045a55e39f() x-deferintersect > ul classw-full flex flex-col flex-wrap lg:flex-row lg:justify-between lg:gap-6 divide-y divide-container lg:divide-y-0 x-initcheckIsDesktopResolution() @resize.window.debouncecheckIsDesktopResolution() @visibilitychange.window.debouncecheckIsDesktopResolution() > li x-data{node1: false } classflex-1 > div @keydown.escape(event) > !isDesktop && toggleSubmenu(event, node1)> span x-showisDesktop x-cloaktablet classblock font-bold mb-6 > COMPANY /span> button x-show!isDesktop x-cloakdesktop x-refsubmenu-toggle-node1 class w-full py-4 font-bold @click(event) > toggleSubmenu(event, node1) :aria-expandednode1 true typebutton > div classflex items-center justify-between> span> COMPANY /span> div classtransition-transform :class{rotate-180 : node1 true} > svg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue classtext-gray-500 width20 height20> path stroke-linecapround stroke-linejoinround dM19 9l-7 7-7-7/>/svg> /div> /div> /button> div x-showisDesktop || !!node1 x-cloaktablet x-refsubmenu-node1 x-collapse classpb-2 :aria-hidden!isDesktop && node1 false ? true : false > ul classspace-y-2 titleCOMPANY > li class> div classgroup> a classsnowdog-menu-link hrefhttps://www.keepshooting.com/about-us data-menumenu-2 > About Us/a> /div> /li> li class> div classgroup> a hrefhttps://www.keepshooting.com/sell-to-united-defense classsnowdog-menu-link data-menumenu-3 data-menumenu-3 > Sell To Us /a> /div> /li> /ul> /div> /div> /li> li x-data{node4: false } classflex-1 > div @keydown.escape(event) > !isDesktop && toggleSubmenu(event, node4)> span x-showisDesktop x-cloaktablet classblock font-bold mb-6 > SUPPORT /span> button x-show!isDesktop x-cloakdesktop x-refsubmenu-toggle-node4 class w-full py-4 font-bold @click(event) > toggleSubmenu(event, node4) :aria-expandednode4 true typebutton > div classflex items-center justify-between> span> SUPPORT /span> div classtransition-transform :class{rotate-180 : node4 true} > svg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue classtext-gray-500 width20 height20> path stroke-linecapround stroke-linejoinround dM19 9l-7 7-7-7/>/svg> /div> /div> /button> div x-showisDesktop || !!node4 x-cloaktablet x-refsubmenu-node4 x-collapse classpb-2 :aria-hidden!isDesktop && node4 false ? true : false > ul classspace-y-2 titleSUPPORT > li class> div classgroup> a hrefhttps://www.keepshooting.com/contact-us classsnowdog-menu-link data-menumenu-7 data-menumenu-7 > Contact Us /a> /div> /li> li class> div classgroup> a classsnowdog-menu-link hrefhttps://www.keepshooting.com/returns data-menumenu-6 > Returns/a> /div> /li> li class> div classgroup> a classsnowdog-menu-link hrefhttps://www.keepshooting.com/lowest-shipping-rates-online.html data-menumenu-793 > Shipping Rates/a> /div> /li> li class> div classgroup> a hrefhttps://www.keepshooting.com/customer/account/login classsnowdog-menu-link data-menumenu-5 data-menumenu-5 > Your Account /a> /div> /li> /ul> /div> /div> /li> li x-data{node8: false } classflex-1 > div @keydown.escape(event) > !isDesktop && toggleSubmenu(event, node8)> span x-showisDesktop x-cloaktablet classblock font-bold mb-6 > LEGAL /span> button x-show!isDesktop x-cloakdesktop x-refsubmenu-toggle-node8 class w-full py-4 font-bold @click(event) > toggleSubmenu(event, node8) :aria-expandednode8 true typebutton > div classflex items-center justify-between> span> LEGAL /span> div classtransition-transform :class{rotate-180 : node8 true} > svg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue classtext-gray-500 width20 height20> path stroke-linecapround stroke-linejoinround dM19 9l-7 7-7-7/>/svg> /div> /div> /button> div x-showisDesktop || !!node8 x-cloaktablet x-refsubmenu-node8 x-collapse classpb-2 :aria-hidden!isDesktop && node8 false ? true : false > ul classspace-y-2 titleLEGAL > li class> div classgroup> a classsnowdog-menu-link hrefhttps://www.keepshooting.com/privacy-policy data-menumenu-9 > Privacy Policy/a> /div> /li> li class> div classgroup> a classsnowdog-menu-link hrefhttps://www.keepshooting.com/shipping-restrictions data-menumenu-748 > Shipping Restrictions/a> /div> /li> li class> div classgroup> span classblock py-3 tabindex0 data-menumenu-10 > Terms and Conditions /span> /div> /li> /ul> /div> /div> /li> li x-data{node11: false } classflex-1 > div @keydown.escape(event) > !isDesktop && toggleSubmenu(event, node11)> span x-showisDesktop x-cloaktablet classblock font-bold mb-6 > RESOURCES /span> button x-show!isDesktop x-cloakdesktop x-refsubmenu-toggle-node11 class w-full py-4 font-bold @click(event) > toggleSubmenu(event, node11) :aria-expandednode11 true typebutton > div classflex items-center justify-between> span> RESOURCES /span> div classtransition-transform :class{rotate-180 : node11 true} > svg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue classtext-gray-500 width20 height20> path stroke-linecapround stroke-linejoinround dM19 9l-7 7-7-7/>/svg> /div> /div> /button> div x-showisDesktop || !!node11 x-cloaktablet x-refsubmenu-node11 x-collapse classpb-2 :aria-hidden!isDesktop && node11 false ? true : false > ul classspace-y-2 titleRESOURCES > li class> div classgroup> a hrefhttps://customerreviews.google.com/v/merchant?qkeepshooting.com&cUS&v19&hlen_US&soNEWEST classsnowdog-menu-link data-menumenu-12 data-menumenu-12 > Customer Reviews /a> /div> /li> li class> div classgroup> a classsnowdog-menu-link hrefhttps://www.keepshooting.com/licenses data-menumenu-13 > Licenses/a> /div> /li> li class> div classgroup> a classsnowdog-menu-link href# data-menumenu-724 > Free Shipping/a> /div> /li> /ul> /div> /div> /li> li x-data{node14: false } classflex-1 > div @keydown.escape(event) > !isDesktop && toggleSubmenu(event, node14)> span x-showisDesktop x-cloaktablet classblock font-bold mb-6 > LINKS /span> button x-show!isDesktop x-cloakdesktop x-refsubmenu-toggle-node14 class w-full py-4 font-bold @click(event) > toggleSubmenu(event, node14) :aria-expandednode14 true typebutton > div classflex items-center justify-between> span> LINKS /span> div classtransition-transform :class{rotate-180 : node14 true} > svg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue classtext-gray-500 width20 height20> path stroke-linecapround stroke-linejoinround dM19 9l-7 7-7-7/>/svg> /div> /div> /button> div x-showisDesktop || !!node14 x-cloaktablet x-refsubmenu-node14 x-collapse classpb-2 :aria-hidden!isDesktop && node14 false ? true : false > ul classspace-y-2 titleLINKS > li class> div classgroup> a hrefhttps://www.keepshooting.com/blog classsnowdog-menu-link data-menumenu-15 data-menumenu-15 > Our Blog /a> /div> /li> /ul> /div> /div> /li> /ul> /div> /div> /div> div classbg-container border-t border-b border-container> div classcontainer py-6 mx-auto flex items-center sm:flex-row flex-col> a hrefhttps://www.keepshooting.com classflex title-font font-medium items-center md:justify-start justify-center text-gray-900> span classml-3 text-xl>KeepShooting/span> /a> p> small classtext-sm text-gray-800 sm:ml-6 sm:mt-0 mt-4> span>Copyright © 2002-2024 United Defense LLC. All rights reserved./span>/small>script>if (HTMLScriptElement.supports && HTMLScriptElement.supports(speculationrules)) { const specScript document.createElement(script); specScript.type speculationrules; // Correctly declare specRules as a constant within the block scope const specRules { prerender: { source: document, where: { and: { href_matches: /* }, {not: {href_matches: /*(customer|login|logout|auth|cart|checkout|search|download|redirect|rewrite|store|productalert)/*}}, { not: { href_matches: *.pdf}}, { not: {selector_matches: .do-not-prerender}}, { not: {selector_matches: relnofollow}}, { not: {selector_matches: target_blank}}, { not: {selector_matches: target_parent}}, { not: {selector_matches: target_top}} }, eagerness: moderate } }; specScript.textContent JSON.stringify(specRules); document.body.append(specScript);}/script> /p> /div> /div>/div>div x-data{scrolAtTop: true}> div classw-full :class{ theme-bg-grey6 fixed top-0 z-20 shadow-md: !scrolAtTop } @scroll.windowscrolAtTop (window.pageYOffset > 200) ? false : true > /div>/div>/div>/footer>script srchttps://apis.google.com/js/platform.js?onloadrenderBadge async defer>/script> script> window.___gcfg { lang: en_US }; /script>script> window.renderBadge function() { var ratingBadgeContainer document.createElement(div); document.body.appendChild(ratingBadgeContainer); window.gapi.load(ratingbadge, function() { window.gapi.ratingbadge.render( ratingBadgeContainer, { merchant_id: 1194876, position: BOTTOM_RIGHT }); }); }/script>script> use strict; (() > { window.addEventListener(DOMContentLoaded, () > { if (document.querySelectorAll(lite-youtube).length > 0) { const link document.createElement(link), script document.createElement(script); link.rel stylesheet; link.type text/css; link.href https\u003A\u002F\u002Fwww.keepshooting.com\u002Fstatic\u002Ffrontend\u002FUnitedDefense\u002F2024\u002D12\u002D4\u002Fen_US\u002FMageQuest_LiteYouTube\u002Fcss\u002Flite\u002Dyt\u002Dembed.min.css; document.head.appendChild(link); script.type text/javascript; script.src https\u003A\u002F\u002Fwww.keepshooting.com\u002Fstatic\u002Ffrontend\u002FUnitedDefense\u002F2024\u002D12\u002D4\u002Fen_US\u002FMageQuest_LiteYouTube\u002Fjs\u002Flite\u002Dyt\u002Dembed.min.js; document.head.appendChild(script); } }); })();/script>script> (() > { function src_default(Alpine) { Alpine.directive(intersect, (el, { value, expression, modifiers }, { evaluateLater, cleanup }) > { let evaluate evaluateLater(expression); let options { rootMargin: getRootMargin(modifiers), threshold: getThreshhold(modifiers) }; let observer new IntersectionObserver((entries) > { entries.forEach((entry) > { if (entry.isIntersecting (value leave)) return; evaluate(); modifiers.includes(once) && observer.disconnect(); }); }, options); observer.observe(el); cleanup(() > { observer.disconnect(); }); }); } function getThreshhold(modifiers) { if (modifiers.includes(full)) return 0.99; if (modifiers.includes(half)) return 0.5; if (!modifiers.includes(threshold)) return 0; let threshold modifiersmodifiers.indexOf(threshold) + 1; if (threshold 100) return 1; if (threshold 0) return 0; return Number(`.${threshold}`); } function getLengthValue(rawValue) { let match rawValue.match(/^(-?0-9+)(px|%)?$/); return match ? match1 + (match2 || px) : void 0; } function getRootMargin(modifiers) { const key margin; const fallback 0px 0px 0px 0px; const index modifiers.indexOf(key); if (index -1) return fallback; let values ; for (let i 1; i 5; i++) { values.push(getLengthValue(modifiersindex + i || )); } values values.filter((v) > v ! void 0); return values.length ? values.join( ).trim() : fallback; } document.addEventListener(alpine:init, () > { window.Alpine.plugin(src_default); }); })();/script>script> for (const selector, deferUntil of Object.entries({.product-slider sectionx-data:intersect,.product-info x-data:intersect,#review_form:intersect,sectionx-data^initRecentlyViewedProductsComponent:intersect,divx-data^initBundleOptions:intersect,#product_addtocart_form x-data:intersect,#notice-cookie-block:intersect})) { document.querySelectorAll(selector).forEach(el > el.setAttribute(x-defer, `${deferUntil}`)); }/script>script> (function () { use strict; const hasAlpine new Promise(resolve > { window.addEventListener(alpine:initialized, resolve, {once: true, passive: true}); }); const hasInteract new Promise(resolve > { (events > { const onInteract () > { resolve(); events.forEach(type > window.removeEventListener(type, onInteract)); } events.forEach(type > window.addEventListener(type, onInteract, {once: true, passive: true})) })(touchstart, mouseover, wheel, scroll, keydown) }); const onIntersect (el) > { return new Promise(resolve > { const observer new IntersectionObserver(entries > { for (const entry of entries) { if (entry.isIntersecting) { observer.disconnect() resolve(); } } }, {}); observer.observe(el); }); } function runComponent(el) { hasAlpine.then(() > { el.removeAttribute(x-ignore); queueMicrotask(() > Alpine.initTree(el)); }); } function initDeferredComponents() { document.querySelectorAll(x-datax-defer).forEach(el > { el.setAttribute(x-ignore, ); const deferUntil (el.getAttribute(x-defer) || ).trim(); switch (deferUntil) { case interact: hasInteract.then(() > runComponent(el)); break; case intersect: onIntersect(el).then(() > runComponent(el)) break; case idle: window.requestIdleCallback ? window.requestIdleCallback(() > runComponent(el), {timeout: 4000}) : setTimeout(() > runComponent(el), 4000); break; case eager: runComponent(el); break; default: if (deferUntil.startsWith(event:) && deferUntil.length > 6) { window.addEventListener(deferUntil.substring(6), () > runComponent(el), {once: true, passive: true}); } } }); } window.addEventListener(alpine:init, initDeferredComponents, {once: true, passive: true}); })()/script>script> (() > { // packages/collapse/src/index.js function src_default(Alpine) { Alpine.directive(collapse, collapse); collapse.inline (el, { modifiers }) > { if (!modifiers.includes(min)) return; el._x_doShow () > {}; el._x_doHide () > {}; }; function collapse(el, { modifiers }) { let duration modifierValue(modifiers, duration, 250) / 1e3; let floor modifierValue(modifiers, min, 0); let fullyHide !modifiers.includes(min); if (!el._x_isShown) el.style.height `${floor}px`; if (!el._x_isShown && fullyHide) el.hidden true; if (!el._x_isShown) el.style.overflow hidden; let setFunction (el2, styles) > { let revertFunction Alpine.setStyles(el2, styles); return styles.height ? () > {} : revertFunction; }; let transitionStyles { transitionProperty: height, transitionDuration: `${duration}s`, transitionTimingFunction: cubic-bezier(0.4, 0.0, 0.2, 1) }; el._x_transition { in(before () > {}, after () > {}) { if (fullyHide) el.hidden false; if (fullyHide) el.style.display null; let current el.getBoundingClientRect().height; el.style.height auto; let full el.getBoundingClientRect().height; if (current full) { current floor; } Alpine.transition(el, Alpine.setStyles, { during: transitionStyles, start: { height: current + px }, end: { height: full + px } }, () > el._x_isShown true, () > { if (el.getBoundingClientRect().height full) { el.style.overflow null; } }); }, out(before () > {}, after () > {}) { let full el.getBoundingClientRect().height; Alpine.transition(el, setFunction, { during: transitionStyles, start: { height: full + px }, end: { height: floor + px } }, () > el.style.overflow hidden, () > { el._x_isShown false; if (el.style.height `${floor}px` && fullyHide) { el.style.display none; el.hidden true; } }); } }; } } function modifierValue(modifiers, key, fallback) { if (modifiers.indexOf(key) -1) return fallback; const rawValue modifiersmodifiers.indexOf(key) + 1; if (!rawValue) return fallback; if (key duration) { let match rawValue.match(/(0-9+)ms/); if (match) return match1; } if (key min) { let match rawValue.match(/(0-9+)px/); if (match) return match1; } return rawValue; } // packages/collapse/builds/cdn.js document.addEventListener(alpine:init, () > { window.Alpine.plugin(src_default); }); })();/script>script> function createAjaxLoader() { const loader document.createElement(div); loader.className absolute inset-0 flex justify-center items-center loader; loader.innerHTML `!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL -->svg xmlnshttp://www.w3.org/2000/svg viewBox0 0 57 57 strokecurrentColor classw-full h-full p-2 width24 height24 roleimg> g fillnone fill-ruleevenodd> g transformtranslate(1 1) stroke-width2> circle cx5 cy50 r5> animate attributeNamecy begin0s dur2.2s values50;5;50;50 calcModelinear repeatCountindefinite/> animate attributeNamecx begin0s dur2.2s values5;27;49;5 calcModelinear repeatCountindefinite/> /circle> circle cx27 cy5 r5> animate attributeNamecy begin0s dur2.2s from5 to5 values5;50;50;5 calcModelinear repeatCountindefinite/> animate attributeNamecx begin0s dur2.2s from27 to27 values27;49;5;27 calcModelinear repeatCountindefinite/> /circle> circle cx49 cy50 r5> animate attributeNamecy begin0s dur2.2s values50;50;5;50 calcModelinear repeatCountindefinite/> animate attributeNamecx from49 to49 begin0s dur2.2s values49;5;27;49 calcModelinear repeatCountindefinite/> /circle> /g> /g>title>Loading.../title>/svg>`; return loader; } function addAjaxLoader(button, loader) { button.setAttribute(data-label, button.getAttribute(aria-label)); button.removeAttribute(aria-label); button.prepend(loader); button.classList.add(relative, &>:not(.loader):invisible); button.disabled true; } function removeAjaxLoader(button, loader) { button.setAttribute(aria-label, button.getAttribute(data-label)); button.removeAttribute(data-label); loader.remove(); button.classList.remove(&>:not(.loader):invisible); button.disabled false; } async function addAjaxCartForm(form, extraDelay 500) { if (!form) return; event.preventDefault(); if (!form.reportValidity()) { return form.submit(); } const formData new FormData(form); const button form.querySelector(button:not(typebutton, typereset)) ? form.querySelector(button:not(typebutton, typereset)) : document.getElementById(product-addtocart-button); const loader createAjaxLoader(button); const formUenc hyva.getUenc(); const postUrl event.target.action.replace(%25uenc%25, formUenc); let bodyUrl new URLSearchParams(formData); bodyUrl.append(uenc, formUenc); addAjaxLoader(button, loader); try { const response await fetch(postUrl, { method: POST, body: bodyUrl.toString(), mode: cors, credentials: include, headers: { Content-Type: application/x-www-form-urlencoded;charsetUTF-8, X-Requested-With: XMLHttpRequest } }); // Here to make sure the request is handled as a promise const responseData await response.text(); if (!response.ok) { return form.submit(); } if (response.redirected) { return window.location.href response.url; } window.dispatchEvent(new CustomEvent(reload-customer-section-data)); const productFormData { productId: formData.get(product), options: {} } for (const formEntry of formData.entries()) { if (!formEntry0.startsWith(super_attribute)) continue; const formEntryOption { formEntry0.match(/\(\d+)\/)1: formEntry1 }; productFormData.options { ...productFormData.options, ...formEntryOption }; } window.dispatchEvent(new CustomEvent(open-ajax-cart, { detail: productFormData })); } catch (err) { console.warn(err); window.dispatchEvent(new CustomEvent(product-addtocart-error)); if (typeof window.dispatchMessages undefined) return; window.dispatchMessages({ text:There\u0020was\u0020a\u0020problem\u0020adding\u0020your\u0020item\u0020to\u0020the\u0020cart., type: error }, 5000); } finally { setTimeout(() > removeAjaxLoader(button, loader), extraDelay); } } function removeAjaxCartForm(form) { removeEventListener(submit, form); } document.addEventListener(submit, function(event) { if (!event.target.matches(#product_addtocart_form, .product_addtocart_form)) return; addAjaxCartForm(event.target, 500); });/script> dialog classw-640px rounded-xl bg-white text-slate-800 p-0 shadow-xl backdrop:bg-black/75 backdrop:backdrop-blur-sm x-datainitAjaxCartModal x-showopen x-transition.duration.500ms @keydown.window.escapecloseDialog() @click!onDialogBackdropClickHelper(event) && closeDialog() @open-ajax-cart.windowsetNewCartData(event) > template x-ifopen && cartItem> div> div classflex gap-6 justify-between items-center p-6> span classtext-xl font-bold> The product was added to your cart. /span> button titleClose fullscreen aria-labelClose fullscreen @clickcloseDialog() classtext-slate-300 hover:text-slate-500 focus:text-slate-500 > svg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 stroke-width2 strokecurrentColor aria-hiddentrue width32 height32> path stroke-linecapround stroke-linejoinround dM6 18L18 6M6 6l12 12/>/svg> /button> /div> div classflex gap-3 sm:gap-x-6 items-start p-6> div classshrink-0 max-w-theme(spacing.20) sm:max-w-theme(spacing.32)> img loadinglazy :srccartItem.product_image.src :widthcartItem.product_image.width :heightcartItem.product_image.height :althyva.str(Product\u0020\u0022\u00251\u0022, cartItem.product_name) > /div> div classgrow flex gap-2 flex-col sm:flex-row> div classgrow> p classtext-lg> strong classfont-bold x-htmlcartItem.product_name>/strong> /p> template x-if(cartItem.options && cartItem.options.length > 0) || showSku> dl classtable mt-2 text-sm> template x-ifcartItem.product_sku && showSku> div classtable-row> dt classtable-cell pb-1.5 pr-2 min-w-theme(spacing.12) sm:min-w-theme(spacing.24) font-normal text-slate-500 uppercase> Sku /dt> dd classtable-cell pb-1.5 font-bold x-htmlcartItem.product_sku>/dd> /div> /template> template x-foroption in cartItem.options> div classtable-row> dt classtable-cell pb-1.5 pr-2 min-w-theme(spacing.12) sm:min-w-theme(spacing.24) font-normal text-slate-500 x-textoption.label>/dt> dd classtable-cell pb-1.5 font-bold x-htmloption.value>/dd> /div> /template> /dl> /template> /div> div classleading-7 shrink-0 &_.price:font-normal x-htmlcartItem.product_price>/div> /div> /div> div classflex gap-2 justify-between items-end p-6 text-slate-600 font-bold> span> span>Cart subtotal/span> span x-textgetItemCountText()>/span> /span> span x-htmlcart.subtotal>/span> /div> div classflex flex-col sm:flex-row lg:justify-end gap-4 p-6 bg-slate-100> button @clickcloseDialog() classsm:w-1/2 lg:w-auto btn justify-center rounded-md py-3 px-6 text-base shadow-none hover:shadow-lg active:shadow disabled:shadow-none transition bg-white text-blue-700 border border-blue-400 hover:bg-white focus:ring-blue-200 disabled:bg-white disabled:border-slate-200 disabled:text-slate-600 disabled:opacity-70 >Continue shopping/button> a hrefhttps://www.keepshooting.com/checkout/ @click.prevent.stopcloseDialog(); $dispatch(toggle-authentication, { url: https://www.keepshooting.com/checkout/ }); classsm:w-1/2 lg:w-auto btn justify-center rounded-md py-3 px-6 text-base shadow-none hover:shadow-lg active:shadow transition bg-blue-600 text-white border border-transparent hover:bg-blue-700 focus:ring-blue-200 active:bg-blue-700 >Checkout/a> /div> /div> /template> /dialog> script> function initAjaxCartModal() { return { open: false, cart: {}, initialTotalCartAmount: 0, totalCartAmount: 0, cartItem: null, showSku: true, init() { window.addEventListener(private-content-loaded, (event) > { const cartData event.detail.data && event.detail.data.cart; if (!cartData) return; this.cart cartData; this.totalCartAmount this.cart.summary_count; this.initialTotalCartAmount this.cart.summary_count; }, { once: true }); this.$watch(totalCartAmount, (value, oldValue) > { if (this.initialTotalCartAmount this.totalCartAmount) return; this.openDialog(); this.initialTotalCartAmount this.totalCartAmount; }) }, sortObjectByNumberKey(obj) { let keys Object.keys(obj).map(Number).sort((a, b) > a - b); let sortedObj {}; keys.forEach(key > sortedObjkey objkey); return sortedObj; }, setNewCartData(event) { const productData event.detail; window.addEventListener(private-content-loaded, (event) > { const cartData event.detail.data && event.detail.data.cart; if (!cartData) return; this.cart cartData; this.totalCartAmount this.cart.summary_count; if (!productData) return; this.getCurrentProductFromCart(productData); }, { once: true }); }, getCurrentProductFromCart(productData) { if (!this.cart.items) return; this.cartItem this.cart.items.filter((item) > { if (item.product_id ! productData.productId) return; if (item.product_type ! configurable) { return item; } let cartItemOptions {}; for (const option of item.options) { const filterOptions { option.option_id: option.option_value }; cartItemOptions { ...cartItemOptions, ...filterOptions } } const cartItemOptionsCompare JSON.stringify(this.sortObjectByNumberKey(cartItemOptions)); const productDataOptionsCompare JSON.stringify(this.sortObjectByNumberKey(productData.options)); if (cartItemOptionsCompare productDataOptionsCompare) { return item; } }); if (this.cartItem > 1) { this.cartItem this.cartItem.slice(0, 1); } this.cartItem this.cartItem0; }, getItemCountText() { if (this.totalCartAmount > 1) { return hyva.str((\u00251\u0020items), this.totalCartAmount); } return hyva.str((\u00251\u0020item), this.totalCartAmount); }, openDialog() { if (!this.cartItem) return; this.$root.showModal(); this.open true; this.scrollLock(this.open); }, closeDialog() { this.$root.close(); this.open false; this.scrollLock(this.open); }, scrollLock(use true) { document.body.style.overflow use ? hidden : ; }, onDialogBackdropClickHelper(event, target this.$root) { const rect target.getBoundingClientRect(); const isInDialog rect.top event.clientY && event.clientY rect.top + rect.height && rect.left event.clientX && event.clientX rect.left + rect.width; return isInDialog; } } } /script>script typemodule srchttps://www.keepshooting.com/static/frontend/UnitedDefense/2024-12-4/en_US/Hyva_Theme/js/alpine3.min.js defer crossorigin>/script>script> use strict; function dispatchMessages(messages, hideAfter) { const messagesEvent new CustomEvent(messages-loaded, { detail: { messages: messages, hideAfter: hideAfter } }); window.dispatchEvent(messagesEvent); } if (typeof hyva undefined || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { console.warn(Hyvä helpers are not loaded yet. Make sure they are included before this script); } (function( hyva, undefined ) { hyva.initFormKey () > { const inputSelector inputnameform_key, formKey hyva.getFormKey(); Array.from(document.querySelectorAll(inputSelector)).map(function (input) { input.value formKey }); } hyva.initMessages () > { try { const messages hyva.getCookie(mage-messages); window.mageMessages messages ? JSON.parse(decodeURIComponent(messages).replace(/\+/g, )) : ; dispatchMessages(window.mageMessages); // empty `mage-messages` cookie const skipSetDomain true; hyva.setCookie(mage-messages,, -1, skipSetDomain); } catch (error) { console.warn(Error parsing Cookie Messages:, error); } } window.addEventListener(DOMContentLoaded, hyva.initFormKey); hyva.alpineInitialized(hyva.initMessages) }( window.hyva window.hyva || {} ));/script>script> use strict; { const private_content_key mage-cache-storage; const private_content_expire_key mage-cache-timeout; const private_content_version_key private_content_version; const section_data_ids_key section_data_ids; const mage_cache_session_id_key mage-cache-sessid; const last_visited_store_key last_visited_store; const ttl 3600; if (typeof hyva undefined || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { console.warn(Hyvä helpers are not loaded yet. Make sure they are included before this script); } function loadSectionData () { const browserStorage hyva.getBrowserStorage(); if (!browserStorage) { typeof window.dispatchMessages ! undefined && window.dispatchMessages( { type: warning, text: Please enable LocalStorage in your browser. } ); return; } try { let isInvalid false; if (hyva.getCookie(last_visited_store_key) ! CURRENT_STORE_CODE) { isInvalid true; } hyva.setCookie(last_visited_store_key, CURRENT_STORE_CODE, false, false); if (!hyva.getCookie(mage_cache_session_id_key)) { isInvalid true; browserStorage.removeItem(private_content_key); const skipSetDomain true; const days false; hyva.setCookie(mage_cache_session_id_key, true, days, skipSetDomain) } const cookieVersion hyva.getCookie(private_content_version_key); const storageVersion browserStorage.getItem(private_content_version_key); if (cookieVersion && !storageVersion || cookieVersion ! storageVersion) { isInvalid true; } const privateContentExpires browserStorage.getItem(private_content_expire_key); if (privateContentExpires && new Date(privateContentExpires) new Date()) { browserStorage.removeItem(private_content_key); } if (isInvalid) { if (! cookieVersion && document.getElementById(default-section-data)) { const privateContent JSON.parse(document.getElementById(default-section-data).innerText.trim()); dispatchPrivateContent(privateContent); } else { fetchPrivateContent(); } } else if (cookieVersion && storageVersion && cookieVersion storageVersion) { const privateContent JSON.parse(browserStorage.getItem(private_content_key)); if ( privateContent && privateContentExpires && privateContent.cart && privateContent.customer ) { dispatchPrivateContent(privateContent); } else { fetchPrivateContent(); } } else { dispatchPrivateContent({}); } } catch (error) { console.warn(Error retrieving Private Content:, error); } } hyva.alpineInitialized(loadSectionData) window.addEventListener(reload-customer-section-data, loadSectionData); function dispatchPrivateContent(data) { const privateContentEvent new CustomEvent(private-content-loaded, { detail: { data: data } }); window.dispatchEvent(privateContentEvent); } function fetchPrivateContent(sections) { fetch(`${BASE_URL}customer/section/load/?sections${encodeURIComponent(sections.join(,))}`, { method: GET, headers: { Content-Type: application/json, X-Requested-With: XMLHttpRequest } }) .then(response > response.json()) .then( data > { if (data) { try { const browserStorage hyva.getBrowserStorage(); // merge new data preserving non-invalidated sections const oldSectionData JSON.parse(browserStorage.getItem(private_content_key) || {}) || {}; if ((! data.cart || ! data.cart.cartId) && oldSectionDatacheckout-data) { delete oldSectionDatacheckout-data; } const newSectionData Object.assign(oldSectionData, data); dispatchPrivateContent(newSectionData); // dont persist messages, theyve been dispatched already if (newSectionData.messages && newSectionData.messages.messages ) { newSectionData.messages.messages ; } browserStorage.setItem(private_content_key, JSON.stringify(newSectionData)); const expiresAt new Date(Date.now() + (ttl * 1000)).toISOString(); browserStorage.setItem(private_content_expire_key, expiresAt); const newCookieVersion hyva.getCookie(private_content_version_key); browserStorage.setItem(private_content_version_key, newCookieVersion); // We dont need the section_data_ids in Hyvä, but we store them for compatibility // with Luma Fallback. Otherwise, not all sections are loaded in Luma Checkout hyva.setCookie( section_data_ids_key, JSON.stringify( Object.keys(data).reduce((sectionDataIds, sectionKey) > { sectionDataIdssectionKey datasectionKeydata_id; return sectionDataIds; }, {}) ), false, true ); } catch (error) { console.warn(Couldnt store privateContent, error); } } } ); } }/script>script> (() > { document.addEventListener(submit, event > event.target.action event.target.action.replace(%25uenc%25, hyva.getUenc())); })()/script>script> (events > { const dispatchUserInteractionEvent () > { events.forEach(type > window.removeEventListener(type, dispatchUserInteractionEvent)) window.dispatchEvent(new Event(init-external-scripts)) }; events.forEach(type > window.addEventListener(type, dispatchUserInteractionEvent, {once: true, passive: true})) })(touchstart, mouseover, wheel, scroll, keydown)/script>script> if (HTMLScriptElement.supports && HTMLScriptElement.supports(speculationrules)) { const specScript document.createElement(script); specScript.type speculationrules; specRules { prerender: { where: { and: { href_matches: /*.html }, { not: {selector_matches: .do-not-prerender}} }, eagerness: moderate } }; specScript.textContent JSON.stringify(specRules); document.body.append(specScript); }/script>script> function initConfigurableOptions(productId, optionConfig) { function findPathParam(key) { const baseUrl (BASE_URL.substring(0, 2) // ? http: : ) + BASE_URL; const baseUrlParts (new URL(baseUrl)).pathname.replace(/\/$/, ).split(/); const pathParts window.location.pathname.split(/).slice(baseUrlParts.length + 3); for (let i 0; i pathParts.length; i + 2) { if (pathPartsi key && pathParts.length > i) { return pathPartsi + 1; } } } return { optionConfig, productId, itemId: (new URLSearchParams(window.location.search)).get(id) || findPathParam(id), allowedAttributeOptions: , selectedValues: , init() { this.findAllowedAttributeOptions(); this.$nextTick(() > { if (typeof this.optionConfig.defaultValues object) { for (const attributeId, value of Object.entries(this.optionConfig.defaultValues)) { this.changeOption(attributeId, value + ); } } }); }, findSimpleIndex() { this.productIndex this.calculateSimpleIndexForPartialSelection(this.selectedValues); }, calculateSimpleIndexForPartialSelection(selectedValues) { if (selectedValues.length 0) return 0; let productIndexIds Object.keys(this.optionConfig.index); Object.keys(this.optionConfig.attributes).forEach((attribute) > { const productsWithAttributeMatch selectedValuesattribute ? productIndexIds.filter((productIndex) > { return this.optionConfig.indexproductIndexattribute this.selectedValuesattribute }) : ; productIndexIds productsWithAttributeMatch.length ? productsWithAttributeMatch : productIndexIds }) return productIndexIds0; }, calculateSimpleIndexForFullSelection(selectedValues) { const productIndexes this.optionConfig.index; return Object.keys(productIndexes).find(productIndex > { const productCandidateOptions productIndexesproductIndex; for (const productOption in productCandidateOptions) { if ( ! selectedValuesproductOption || selectedValuesproductOption ! productCandidateOptionsproductOption ) { return false; } } return productIndex; }); }, productIndex: 0, findAllowedAttributeOptions() { this.allowedAttributeOptions this.calculateAllowedAttributeOptions(this.selectedValues); }, calculateAllowedAttributeOptions(selectedValues) { const allAttributes this.optionConfig.attributes; const allAttributesSorted Object.values(allAttributes).sort((a,b) > { return a.position - b.position }); const newAllowedAttributeOptions ; allAttributesSorted.forEach(attribute > { const selectionWithoutAttr Object.assign({}, this.removeAttrFromSelection(selectedValues, attribute.id)); const availableIndexes this.calculateAvailableProductIndexes(selectionWithoutAttr); newAllowedAttributeOptionsattribute.id allAttributesattribute.id.options.filter(option > { return !!option.products.find(product > { return availableIndexes.includes(product); }) }); }); return newAllowedAttributeOptions; }, calculateAvailableProductIndexes(selectedOptions) { if (Object.keys(selectedOptions).length 0) { if (Object.values(this.optionConfig.salable || {}).length) { return .concat.apply(, .concat.apply(, Object.values(this.optionConfig.salable).map(Object.values))).filter((x, i, a) > a.indexOf(x) i) } return Object.keys(this.optionConfig.index); } const selectedIds Object.keys(selectedOptions); if (Object.values(this.optionConfig.salable || {}).length) { const selectedOptionIndexes selectedIds.map(attrId > { const optionValue selectedOptionsattrId; return this.optionConfig.salableattrId && this.optionConfig.salableattrIdoptionValue || }) return selectedOptionIndexes.reduce((acc, optionIndexes) > { return acc.filter(index > optionIndexes.includes(index)); }); } else { const productIndexes this.optionConfig.index; return Object.keys(productIndexes).filter(index > { for (const attrId of selectedIds) { if (productIndexesindexattrId ! `${selectedOptionsattrId}`) return false } return true }); } }, findAttributeByOptionId(optionId) { for (const attributeId in this.optionConfig.attributes) { const attributeOptions this.optionConfig.attributesattributeId.options || ; if (attributeOptions.find(option > option.id optionId)) { return attributeId; } } }, getAllowedAttributeOptions(attributeId) { return this.allowedAttributeOptionsattributeId || }, getProductIdsForOption(option) { const attributeId this.findAttributeByOptionId(option.id); const allOptions this.optionConfig.attributesattributeId; const opt (allOptions && allOptions.options || ).find(o > o.id option.id); return opt && opt.products ? opt.products : ; }, findProductIdsForPartialSelection(optionSelection) { const candidateProducts Object.values(optionSelection).reduce((candidates, optionId) > { const newCandidates this.getProductIdsForOption({id: optionId}); return candidates null ? newCandidates : candidates.filter(productId > newCandidates.includes(productId)); }, null); return candidateProducts || ; }, findCheapestProductForPartialSelection(optionSelection) { const candidateProducts this.findProductIdsForPartialSelection(optionSelection); return candidateProducts.reduce((cheapest, simpleIdx) > { // in the first iteration we start with simpleIdx as the currently cheapest product if (! this.optionConfig.optionPricescheapest) return simpleIdx; const knownCheapestPrice this.optionConfig.optionPricescheapest.finalPrice.amount; return knownCheapestPrice > this.optionConfig.optionPricessimpleIdx.finalPrice.amount ? simpleIdx : cheapest; }, 0) }, findProductIdToUseForOptionPrice(option) { // try to find a product for a complete selection const attributeId this.findAttributeByOptionId(option.id); const optionSelection Object.assign({}, this.selectedValues, {attributeId: option.id}); const matchingSimpleIndex this.calculateSimpleIndexForFullSelection(optionSelection); // if there is no complete selection, use the cheapest product for the option return matchingSimpleIndex || this.findCheapestProductForPartialSelection(optionSelection); }, getAttributeOptionLabel(option) { const optionProduct this.findProductIdToUseForOptionPrice(option); if ((! optionProduct) || (optionProduct this.productIndex)) { return option.label; } const currentPrice this.getOptionPriceAdjustmentBasePrice(); if (this.optionConfig.optionPricesoptionProduct) { const optionPrice this.optionConfig.optionPricesoptionProduct.finalPrice.amount; if (optionPrice ! currentPrice){ return option.label + + hyva.formatPrice(optionPrice - currentPrice, true); } } return option.label; }, getOptionPriceAdjustmentBasePrice() { if (this.optionConfig.optionPricesthis.productIndex) { return this.optionConfig.optionPricesthis.productIndex.finalPrice.amount } const cheapestForSelection this.findCheapestProductForPartialSelection(this.selectedValues); return this.optionConfig.optionPricescheapestForSelection ? this.optionConfig.optionPricescheapestForSelection.finalPrice.amount : this.optionConfig.prices.finalPrice.amount; // default price if no option selection }, clearOptionIfActive(optionId, value) { if (this.selectedValuesoptionId value) { this.blurLabel() this.changeOption(optionId, ) } }, removeAttrFromSelection(selectedValues, attributeId) { attributeId parseInt(attributeId); return selectedValues.reduce((newSelection, val, attr) > { if (attr ! attributeId) { newSelectionattr val; } return newSelection; }, ); }, changeOption(attributeId, value) { if (value ) { this.selectedValues this.removeAttrFromSelection(this.selectedValues, attributeId) } else if (value && this.getAllowedAttributeOptions(attributeId).find(option > option.id value)) { this.selectedValuesattributeId value; } this.findSimpleIndex(); this.findAllowedAttributeOptions(); this.updatePrices(); this.updateGallery(); window.dispatchEvent( new CustomEvent( configurable-selection-changed, { detail: { productId: this.productId, optionId: attributeId, value: value, productIndex: this.productIndex, selectedValues: this.selectedValues, candidates: this.findProductIdsForPartialSelection(this.selectedValues), } } ) ); }, calculateIsMinimalPrice() { return ( this.selectedValues.filter(value > !!value).length Object.keys(this.optionConfig.attributes).length ); }, updatePrices() { const value this.productIndex ? this.optionConfig.optionPricesthis.productIndex : this.optionConfig.prices; window.dispatchEvent( new CustomEvent( update-prices- + this.productId, { detail: Object.assign( value, { isMinimalPrice: this.calculateIsMinimalPrice() } ) } ) ); }, updateGallery () { if (this.productIndex) { const images this.optionConfig.imagesthis.productIndex; images && window.dispatchEvent(new CustomEvent( update-gallery, { detail: this.sortImagesByPosition(images) } )); } else { window.dispatchEvent(new Event(reset-gallery)); } }, sortImagesByPosition(images) { return images.sort((x, y) > { return x.position y.position ? 0 : (parseInt(x.position) > parseInt(y.position) ? 1 : -1) }); }, onGetCartData(data) { }, preselectCartItems(data) { // pre-select options based on cart data for current (quote) itemId const cart data && data.cart; if (cart && cart.items) { const cartItem cart.items.find((item) > { return ( item.item_id this.itemId && item.product_id this.productId ) }); if (cartItem && cartItem.options && cartItem.options.length) { cartItem.options.map(option > { this.changeOption(option.option_id, option.option_value); }) } } }, preselectQuerystringItems() { // pre-select option like ?size167 const urlQueryParams new URLSearchParams(window.location.search.replace(?,)); this.preselectItemsBasedOnLocation(attribute > urlQueryParams.get(attribute.code)); }, preselectLocationHashItems() { // pre-select option like #144167 const urlHashParams new URLSearchParams(window.location.hash.replace(#,)); this.preselectItemsBasedOnLocation(attribute > urlHashParams.get(attribute.id)); }, preselectItemsBasedOnLocation(getLocationValue) { Object.values(this.optionConfig.attributes).map(attribute > { this.changeOption(attribute.id, getLocationValue(attribute)) }); } } }/script>script> function initSwatchOptions(swatchConfig) { return { swatchConfig, getAttributeSwatchData(attributeId) { const swatchConfig Object.assign({}, this.swatchConfigattributeId); swatchConfigdetails JSON.parse(swatchConfigadditional_data); return swatchConfig; }, getAllAttributeOptions(attributeId) { return ( this.optionConfig.attributesattributeId && this.optionConfig.attributesattributeId.options ) || }, optionIsActive(attributeId, optionId) { // return true if a product with this option is in stock return !!this.getAllowedAttributeOptions(attributeId).find( option > option.id optionId ) }, optionIsEnabled(attributeId, optionId) { // return true if a product with this option is enabled for (const productId in this.optionConfig.index) { if (this.optionConfig.indexproductIdattributeId optionId) { return true; } } return false; }, mapSwatchTypeNumberToTypeCode(typeNumber) { switch ( + typeNumber) { case 1: return color case 2: return image case 3: return empty case 0: default: return text } }, getTypeOfFirstOption(attributeId) { for (const optionId in this.swatchConfigattributeId) { const option this.swatchConfigattributeIdoptionId; if (typeof option.type ! undefined) { return this.mapSwatchTypeNumberToTypeCode(option.type); } } }, getVisualSwatchType(attributeId, targetOptionId) { // If a type configuration is present for the given option id, use it const config this.swatchConfigattributeId; if (configtargetOptionId && typeof configtargetOptionId.type ! undefined) { return this.mapSwatchTypeNumberToTypeCode(configtargetOptionId.type); } // Otherwise - if no config is present for the target option - use the type of the first option // with a type property from the attribute, thus assuming its the same type as the target option. // (This edge case condition can occur on single swatch products if some options are not salable) return this.getTypeOfFirstOption(attributeId); }, getSwatchType(attributeId, optionId) { // Deserialize the attribute details the first time they are used if (this.swatchConfigattributeId && ! this.swatchConfigattributeId.details) { this.swatchConfigattributeId this.getAttributeSwatchData(attributeId); } const type this.swatchConfigattributeId && this.swatchConfigattributeId.details && this.swatchConfigattributeId.details.swatch_input_type || empty; return type visual ? this.getVisualSwatchType(attributeId, optionId) : type; }, isTextSwatch(attributeId, optionId) { return this.getSwatchType(attributeId, optionId) text; }, isVisualSwatch(attributeId, optionId) { const type this.getSwatchType(attributeId, optionId); return image, color.includes(type); }, getSwatchBackgroundStyle(attributeId, optionId) { const config this.getSwatchConfig(attributeId, optionId); const type this.getSwatchType(attributeId, optionId); if (type color) { return background-color: + config.value; } else if (type image) { return background: #ffffff url( + config.value + ) no-repeat center; } else { return ; } }, getSwatchText(attributeId, optionId) { const config this.getSwatchConfig(attributeId, optionId); return config.label || config.value || this.getOptionLabelFromOptionConfig(attributeId, optionId); }, getOptionLabelFromOptionConfig(attributeId, optionId) { // Fallback if no value is present in swatchConfig data // Reference issue https://gitlab.hyva.io/hyva-themes/magento2-default-theme/-/issues/190 const option this.getAllAttributeOptions(attributeId).filter(option > option.id optionId); return option && option0 && option0.label ||; }, getSwatchConfig(attributeId, optionId) { return this.swatchConfigattributeId && this.swatchConfigattributeIdoptionId ? this.swatchConfigattributeIdoptionId : false; }, activeTooltipItem: false, tooltipPositionElement: false, isTooltipVisible() { return this.activeTooltipItem && this.getSwatchConfig( this.activeTooltipItem.attribute, this.activeTooltipItem.item ); }, isFirstItemCol() { return this.activeTooltipItem.index 0; }, getTooltipImageStyle(attributeId, optionId) { const config this.getSwatchConfig(attributeId, optionId); const type this.getSwatchType(attributeId, optionId); if (type color) { return background-color: + config.value + ; width: 110px; height: 90px;; } else if (type image) { return background: #ffffff url( + config.thumb + ) center center no-repeat; width: 110px; height: 90px;; } else { return display:none; } }, getTooltipPosition() { return this.tooltipPositionElement ? `top: ${this.tooltipPositionElement.offsetTop}px;` + `left: ${ this.tooltipPositionElement.offsetLeft - ( this.tooltipPositionElement.closest(.snap) && this.tooltipPositionElement.closest(.snap).scrollLeft || 0 ) }px;` : }, getTooltipLabel() { return this.getSwatchConfig(this.activeTooltipItem.attribute, this.activeTooltipItem.item).label }, focusedLabel: false, focusLabel(optionId) { this.focusedLabel optionId; }, blurLabel() { this.focusedLabel false; }, showSwatches: false, initShowSwatchesIntersect() { if (IntersectionObserver in window && !window.scrollY) { let io new IntersectionObserver( entries > { entries.map(entry > { if (entry.isIntersecting) { this.showSwatches true; io.unobserve(this.$root); } }) } ); io.observe(this.$root); } else { this.showSwatches true } } } }/script>script> use strict; (function () { const modals ; const excludedFromFocusTrapping new Set(); function trapFocusInNextModalWithOverlay() { for (let idx modals.length -1; idx > 0; idx--) { const nextOnStack modalsidx; const nextDialogElement nextOnStack.instance.$refsnextOnStack.name; if (! isOverlayDisabled(nextDialogElement)) { hyva.trapFocus(nextDialogElement); break; } } } function focusables(dialogElement) { const selector button, href, input, textarea, select, details, tabindex:not(tabindex-1); return Array.from(dialogElement.querySelectorAll(selector)) .filter(el > !el.hasAttribute(disabled)); } function firstVisible(elements) { const a Array.from(elements); for (let i 0; i a.length; i++) { if (ai.offsetWidth || ai.offsetHeight || ai.getClientRects().length) return ai; } return null; } function isInViewport(element) { const rect element && element.getBoundingClientRect(); return rect && rect.top > 0 && rect.left > 0 && rect.right window.innerWidth && rect.bottom window.innerHeight; } function setFocusAfterTransition(dialogElement, duration) { const nested Array.from(dialogElement.querySelectorAll(roledialog)); const candidates Array.from(dialogElement.querySelectorAll(x-focus-first)); next: for (let candidate of candidates) { for (let child of nested) { if (child.contains(candidate)) continue next; } setTimeout(() > candidate.focus(), 50); break; } window.setTimeout(() > { const focusElement firstVisible(dialogElement.querySelectorAll(x-focus-first)) || focusables(dialogElement)0 || null; focusElement && isInViewport(focusElement) && focusElement.focus(); }, Math.max(1, duration)); } function determineTrigger($refs, dialog, trigger) { if (typeof trigger undefined && typeof dialog object && dialog.target instanceof HTMLElement) { return dialog.target; } if (typeof dialog string && typeof trigger object && trigger.target instanceof HTMLElement) { return trigger.target; } if (typeof trigger string) { try { return $refstrigger || document.querySelector(trigger) } catch (e) {} } if (trigger instanceof Element) { return trigger; } return null; } function isOverlayDisabled(dialog) { return dialog && dialog.hasAttribute(x-no-overlay) } function areRemainingModalsWithoutOverlay(modals) { const overflowDisabled modals.map(modal > modal.instance.$refsmodal.name).filter(isOverlayDisabled); return overflowDisabled.length modals.length; } window.hyva.modal function(options) { const config Object.assign({ dialog: dialog, duration: 300, transitionEnter: transition ease-out duration-300, transitionEnterStart: opacity-0, transitionEnterEnd: opacity-100, transitionLeave: transition ease-in duration-300, transitionLeaveStart: opacity-100, transitionLeaveEnd: opacity-0, }, options); let lastHide 0; return { opened: {}, show(dialog, trigger) { const focusTargetAfterHide determineTrigger(this.$refs, dialog, trigger); const name typeof dialog string ? dialog : config.dialog; const dialogElement this.$refsname; if (! dialogElement) { return; } const useOverlay ! dialogElement.hasAttribute(x-no-overlay); dialogElement.scrollTop 0; if (this.openedname) { return; } if (focusTargetAfterHide) { focusTargetAfterHide.setAttribute(aria-expanded, true); } this.openedname true; useOverlay && this.$nextTick(() > hyva.trapFocus(dialogElement)); setFocusAfterTransition(dialogElement, config.duration); const frame {name, instance: this, focusTarget: focusTargetAfterHide, time: Date.now()}; modals.push(frame); if (useOverlay) { document.body.classList.add(overflow-hidden); } return new Promise(resolve > frame.resolve resolve); }, cancel() { this.hide(false); }, ok() { this.hide(true); }, hide(value) { if (Date.now() - lastHide config.duration) { return; } lastHide Date.now(); const modal modals.pop() || {}; const name modal.name; this.openedname false; hyva.releaseFocus(modal.instance.$refsmodal.name) trapFocusInNextModalWithOverlay(); const nextFocusAfterHide modal.focusTarget; nextFocusAfterHide && setTimeout(() > { nextFocusAfterHide.setAttribute(aria-expanded, false); nextFocusAfterHide.focus() }, config.duration); if (modals.length 0 || areRemainingModalsWithoutOverlay(modals)) { document.body.classList.remove(overflow-hidden); } modal.resolve(value); }, overlay(dialog) { const name typeof dialog string ? dialog : config.dialog; return { x-show() { return this.openedname }, x-transition:enter: config.transitionEnter, x-transition:enter-start: config.transitionEnterStart, x-transition:enter-end: config.transitionEnterEnd, x-transition:leave: config.transitionLeave, x-transition:leave-start: config.transitionLeaveStart, x-transition:leave-end: config.transitionLeaveEnd, @hyva-modal-show.window(event) { event.detail && event.detail.dialog name && this.show(name, event.detail.focusAfterHide) } }; } }; } window.hyva.modal.peek () > modals.length > 0 && modalsmodals.length -1 window.hyva.modal.pop function () { if (modals.length > 0) { const modal modalsmodals.length -1; modal.instance.hide(); } } window.hyva.modal.excludeSelectorsFromFocusTrap function (selectors) { typeof selectors string || selectors instanceof String ? excludedFromFocusTrapping.add(selectors) : selectors.map(selector > excludedFromFocusTrapping.add(selector)); } window.hyva.modal.eventListeners { keydown: event > { if (event.key Escape) { window.hyva.modal.pop(); } }, click: event > { if (modals.length > 0) { const modal modalsmodals.length -1; const dialog modal.instance.$refsmodal.name; if (modal.time + 50 Date.now() && // if last click processing is more than 50ms ago ! isOverlayDisabled(dialog) && // if dialog has overlay ! dialog.contains(event.target)) { // if click is outside of dialog modal.instance.hide(); } } } }; document.addEventListener(keydown, window.hyva.modal.eventListeners.keydown); document.addEventListener(click, window.hyva.modal.eventListeners.click); })();/script>script> use strict; const grecaptchaV2LoadCallbacks ; function executeRecaptchaLoadCallbacks () { while (window.grecaptcha && grecaptchaV2LoadCallbacks.length > 0) { const callback grecaptchaV2LoadCallbacks.pop(); typeof callback string ? windowcallback() : callback(); } } (function() { const loadRecaptchaScript (event) > { if (window.grecaptcha || !event.target.form) { return; } const url https://www.google.com/recaptcha/api.js?onloadexecuteRecaptchaLoadCallbacks; const siteKey 6Lfgkd8ZAAAAAMSjHiX5izPxT1x2eyuRFdgTL6ec; const script document.createElement(script); script.type text/javascript; script.src siteKey ? `${url}&render${siteKey}` : `${url}&renderexplicit`; script.async true; document.head.appendChild(script); script.addEventListener(load, () > { Array.from(document.querySelectorAll(buttondata-recaptcha-btn:disabled)).forEach(btn > btn.removeAttribute(disabled)); }); } window.forceLoadRecaptchaScript (form) > { loadRecaptchaScript({target: {form: form || dummy}}); executeRecaptchaLoadCallbacks(); }; document.body.addEventListener(input, loadRecaptchaScript, { once: true }); document.body.addEventListener(focus, loadRecaptchaScript, { once: true }); }());/script>script> (() > { window.lastPageYOffset window.pageYOffset; document.documentElement.dataset.scrollDirY initial; const throttle (fn, wait) > { let timer; return function () { const context this; const args arguments; clearTimeout(timer); timer setTimeout(() > { fn.apply(context, args) }, wait); }; }; const setScrollDirY () > { const lastScrollPosition window.lastPageYOffset; const newScrollPosition window.pageYOffset; const scrollDir newScrollPosition 1 ? initial : newScrollPosition > lastScrollPosition ? down : up; document.documentElement.dataset.scrollDirY scrollDir; window.lastPageYOffset newScrollPosition; window.dispatchEvent(new Event(scrollPosition)); } window.addEventListener(scroll, throttle(setScrollDirY, 30)); })();/script>script defer> use strict; (() > { const equalizeButtonWidths (buttons) > { const buttonList buttons.querySelectorAll(data-elementlink, data-elementempty_link); let buttonMinWidth 0; buttonList.forEach(button > { const buttonWidth button.offsetWidth; if (buttonWidth > buttonMinWidth) { buttonMinWidth buttonWidth; } }); buttonList.forEach(button > { button.style.minWidth `${buttonMinWidth}px`; }); }; window.addEventListener(DOMContentLoaded, () > { document.querySelectorAll(data-content-typebuttonsdata-same-widthtrue).forEach(buttons > { equalizeButtonWidths(buttons); }); }); })();/script>script defer> use strict; (() > { const initCarousels (elements) > { if (!Glider) { return; } const initProductCarousel (carousel) > { const gliderElement carousel.querySelector(data-roleglider-content); if (!gliderElement) { return; } const gliderDots carousel.querySelector(.glider-dots); const gliderPrev carousel.querySelector(.glider-prev); const gliderNext carousel.querySelector(.glider-next); const glider new Glider(gliderElement, { slidesToShow: 2, slidesToScroll: 2, scrollLock: true, draggable: true, dragVelocity: 2.5, dots: gliderDots, arrows: { prev: gliderPrev, next: gliderNext, }, responsive: { breakpoint: 768, settings: { slidesToShow: 3, slidesToScroll: 3, } }, { breakpoint: 1024, settings: { slidesToShow: 4, slidesToScroll: 4, } }, , }); carousel.classList.remove(overflow-x-scroll); gliderPrev.classList.remove(hidden); gliderNext.classList.remove(hidden); if (carousel.dataset.autoplay ! false) { gliderAutoplay( glider, carousel.dataset.autoplaySpeed, carousel.dataset.infiniteLoop ); } }; const initSliderCarousel (slider) > { slider.innerHTML `div data-roleglider-content>${slider.innerHTML}/div>`; slider.classList.add(glider-contain); slider.insertAdjacentHTML( beforeend, \u000A\u003Cdiv\u0020class\u003D\u0022carousel\u002Dnav\u0020flex\u0020items\u002Dcenter\u0020justify\u002Dcenter\u0020flex\u002D1\u0020p\u002D4\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020aria\u002Dlabel\u003D\u0022Previous\u0022\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020class\u003D\u0022glider\u002Dprev\u0020w\u002D8\u0020h\u002D8\u0020mr\u002D1\u0020text\u002Dblack\u0020rounded\u002Dfull\u0020outline\u002Dnone\u0020focus\u003Aoutline\u002Dnone\u0020hidden\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020viewBox\u003D\u00220\u00200\u00201024\u00201024\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Cpath\u0020class\u003D\u0022path1\u0022\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020d\u003D\u0022M716.8\u00201024c6.552\u00200\u002013.102\u002D2.499\u002018.101\u002D7.499\u00209.998\u002D9.997\u00209.998\u002D26.206\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u00200\u002D36.203l\u002D442.698\u002D442.698\u0020442.698\u002D442.699c9.998\u002D9.997\u00209.998\u002D26.206\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u00200\u002D36.203s\u002D26.206\u002D9.998\u002D36.203\u00200l\u002D460.8\u0020460.8c\u002D9.998\u00209.997\u002D9.998\u002026.206\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u00200\u002036.203l460.8\u0020460.8c5\u00205\u002011.55\u00207.499\u002018.102\u00207.499z\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003C\u002Fpath\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u0020\u0020\u0020\u0020\u003Cdiv\u0020role\u003D\u0022tablist\u0022\u0020class\u003D\u0022glider\u002Ddots\u0020select\u002Dnone\u0020flex\u0020flex\u002Dwrap\u0020mx\u002D1\u0020justify\u002Dcenter\u0020p\u002D0\u0020focus\u003Aoutline\u002Dnone\u0022\u003E\u003C\u002Fdiv\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020aria\u002Dlabel\u003D\u0022Next\u0022\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020class\u003D\u0022glider\u002Dnext\u0020w\u002D8\u0020h\u002D8\u0020ml\u002D1\u0020text\u002Dblack\u0020rounded\u002Dfull\u0020outline\u002Dnone\u0020focus\u003Aoutline\u002Dnone\u0020hidden\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020viewBox\u003D\u00220\u00200\u00201024\u00201024\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Cpath\u0020class\u003D\u0022path1\u0022\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020d\u003D\u0022M256\u00201024c\u002D6.552\u00200\u002D13.102\u002D2.499\u002D18.101\u002D7.499\u002D9.998\u002D9.997\u002D9.998\u002D26.206\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u00200\u002D36.203l442.698\u002D442.698\u002D442.698\u002D442.699c\u002D9.998\u002D9.997\u002D9.998\u002D26.206\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u00200\u002D36.203s26.206\u002D9.998\u002036.203\u00200l460.8\u0020460.8c9.998\u00209.997\u00209.998\u002026.206\u00200\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u002036.203l\u002D460.8\u0020460.8c\u002D5\u00205\u002D11.55\u00207.499\u002D18.102\u00207.499z\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003C\u002Fpath\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u003C\u002Fdiv\u003E\u000A ); const gliderElement slider.querySelector(data-roleglider-content); const gliderDots slider.querySelector(.glider-dots); const gliderPrev slider.querySelector(.glider-prev); const gliderNext slider.querySelector(.glider-next); const glider new Glider(gliderElement, { slidesToShow: 1, slidesToScroll: 1, scrollLock: true, scrollLockDelay: 250, draggable: true, dragVelocity: 2.5, dots: gliderDots, arrows: { prev: gliderPrev, next: gliderNext, }, }); slider.classList.add(glider-initialized); if (slider.dataset.showArrows true) { gliderPrev.classList.remove(hidden); gliderNext.classList.remove(hidden); } if (slider.dataset.autoplay ! false) { gliderAutoplay( glider, slider.dataset.autoplaySpeed, slider.dataset.infiniteLoop ); } }; const gliderAutoplay (glider, milliseconds, loop) > { const pagesCount glider.track.childElementCount; let slideTimeout null; let nextIndex 1; let paused false; const slide () > { slideTimeout setTimeout( () > { if (loop && nextIndex > pagesCount) { nextIndex 0; } glider.scrollItem(nextIndex); }, parseInt(milliseconds) ); }; glider.ele.addEventListener(glider-animated, () > { nextIndex glider.slide + glider.opt.slidesToScroll; window.clearInterval(slideTimeout); if (!paused && (loop || nextIndex pagesCount)) { slide(); } }); const pause () > { if (!paused) { clearInterval(slideTimeout); paused true; } }; const unpause () > { if (paused) { slide(); paused false; } }; glider.ele.parentElement.addEventListener(mouseover, pause, {passive: true}); glider.ele.parentElement.addEventListener(touchstart, pause, {passive: true}); glider.ele.parentElement.addEventListener(mouseout, unpause, {passive: true}); glider.ele.parentElement.addEventListener(touchend, unpause, {passive: true}); slide(); }; elements.forEach(element > { if (element.dataset.contentType products) { initProductCarousel(element); } if (element.dataset.contentType slider) { initSliderCarousel(element); } }); }; window.addEventListener(DOMContentLoaded, () > { const carouselElements document.querySelectorAll( `data-content-typeproductsdata-appearancecarousel, data-content-typeslider` ); if (carouselElements.length > 0) { const script document.createElement(script); script.type text/javascript; script.addEventListener(load, () > { initCarousels(carouselElements); }); script.src https\u003A\u002F\u002Fwww.keepshooting.com\u002Fstatic\u002Ffrontend\u002FUnitedDefense\u002F2024\u002D12\u002D4\u002Fen_US\u002FHyva_PageBuilder\u002Fjs\u002Fglider.min.js; document.head.appendChild(script); } }); })();/script>script defer> use strict; (() > { const initMaps (elements) > { const renderMap (element) > { const dataLocations element.dataset.locations; // Hide map if no locations set if (!dataLocations || dataLocations ) { element.classList.add(hidden); return; } const map new google.maps.Map( element, getMapOptions( element.dataset.showControls ! true, element.dataset.showControls true ) ); const locations JSON.parse(dataLocations); const latitudeLongitudeBounds new google.maps.LatLngBounds(); const bounds ; locations.forEach(location > { const position { lat: parseFloat(location.position.latitude), lng: parseFloat(location.position.longitude), }; bounds.push(position); const infowindow new google.maps.InfoWindow({ content: getInfoWindowContent(location), }); const marker new google.maps.Marker({ position: position, map, title: location.location_name, }); marker.addListener(click, () > { infowindow.open(map, marker); }); }); // Set bounds if multiple locations if (bounds.length > 1) { bounds.forEach(function (bound) { latitudeLongitudeBounds.extend(bound); }); map.fitBounds(latitudeLongitudeBounds); } // Center if single location if (bounds.length 1) { map.setCenter(bounds0); } }; const getMapOptions (disableDefaultUI, mapTypeControl) > { const style ; return { zoom: 8, scrollwheel: false, disableDoubleClickZoom: false, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.DEFAULT, }, styles: style ? JSON.parse(style) : , disableDefaultUI: disableDefaultUI, mapTypeControl: mapTypeControl, }; }; const getInfoWindowContent (location) > { const title location.location_name ? `h3 classtext-2xl font-medium text-gray-900 title-font>${location.location_name}/h3>` : ; const comment location.comment ? `p classpx-1 pt-3 text-primary>${location.comment}/p>` : ; const phone location.phone ? `p classpx-1 pt-3 text-primary>Phone: ${location.phone}/p>` : ; const street location.address ? `${location.address}br/>` : ; const city location.city ? `${location.city}br/>` : ; const state location.state ? `${location.state}br/>` : ; const zipCode location.zipcode ? `${location.zipcode}br/>` : ; const country location.country ? location.country : ; return `div> ${title} ${comment} ${phone} p classpx-1 pt-3 text-primary> ${street} ${city} ${state} ${zipCode} ${country} /p> /div>`; }; const hideAllMaps () > { document.querySelectorAll(data-content-typemap).forEach(element > { element.classList.add(hidden); }); }; window.gm_authFailure () > { hideAllMaps(); }; if (typeof google.maps undefined) { hideAllMaps(); return; } elements.forEach(element > { if (element.dataset.contentType map) { renderMap(element); } }); }; window.addEventListener(DOMContentLoaded, () > { const mapElements document.querySelectorAll(data-content-typemap); if (mapElements.length > 0) { const script document.createElement(script); script.type text/javascript; script.addEventListener(load, () > { initMaps(mapElements); }); script.src https\u003A\u002F\u002Fmaps.googleapis.com\u002Fmaps\u002Fapi\u002Fjs\u003Fv\u003D3\u0026key\u003D; document.head.appendChild(script); } }); })();/script>script defer> use strict; (() > { const initParallaxImage (element) > { if (!window.jarallax) { return; } element.classList.add(jarallax); element.dataset.jarallax ; const parallaxSpeed parseFloat(element.dataset.parallaxSpeed) || 0.5; const elementStyle window.getComputedStyle(element); window.jarallax(element, { imgPosition: elementStyle.backgroundPosition || 50% 50%, imgRepeat: elementStyle.backgroundRepeat || no-repeat, imgSize: elementStyle.backgroundSize || cover, speed: parallaxSpeed, }); }; const initVideoBackground (element) > { if (!window.jarallax) { return; } let slider null; if (element.classList.contains(pagebuilder-slide-wrapper)) { const viewportElement document.createElement(div); slider element.closest(data-content-typeslider); viewportElement.classList.add(jarallax-viewport-element); element.dataset.elementInViewport .jarallax-viewport-element; element.appendChild(viewportElement); } element.classList.add(jarallax); element.dataset.jarallax ; const parallaxSpeed parseFloat(element.dataset.parallaxSpeed) || 0.5; window.jarallax(element, { imgSrc: element.dataset.videoFallbackSrc, speed: parallaxSpeed, videoLoop: element.dataset.videoLoop, videoPlayOnlyVisible: element.dataset.videoPlayOnlyVisible, videoLazyLoading: element.dataset.videoLazyLoad, disableVideo: false, elementInViewport: element.dataset.elementInViewport && element.querySelector(element.dataset.elementInViewport), }); if (slider) { if (slider.dataset.afterChangeIsSet) { return; } slider.addEventListener(glider-loaded, () > { slider.querySelectorAll(.jarallax).forEach(videoSlide > { videoSlide.jarallax && videoSlide.jarallax.onScroll(); }); }); slider.addEventListener(glider-animated, () > { slider.querySelectorAll(.jarallax).forEach(videoSlide > { videoSlide.jarallax && videoSlide.jarallax.onScroll(); }); }); slider.dataset.afterChangeIsSet true; } }; window.addEventListener(DOMContentLoaded, () > { const parallaxImageElements document.querySelectorAll( `data-content-typerowdata-background-typeimagedata-enable-parallax1, data-content-typerow > data-background-typeimagedata-enable-parallax1` ); const videoBackgroundsElements document.querySelectorAll( `data-content-typerowdata-background-typevideodata-enable-parallax1, data-content-typerow > data-background-typevideodata-enable-parallax1, data-content-typebanner data-background-typevideo, data-content-typeslide data-background-typevideo` ); if (parallaxImageElements.length > 0 || videoBackgroundsElements.length > 0) { const jarallaxScript document.createElement(script); jarallaxScript.type text/javascript; jarallaxScript.addEventListener(load, () > { parallaxImageElements.forEach(row > { initParallaxImage(row); }); const jarallaxVideoScript document.createElement(script); jarallaxVideoScript.type text/javascript; jarallaxVideoScript.addEventListener(load, () > { videoBackgroundsElements.forEach(element > { initVideoBackground(element); }); }); jarallaxVideoScript.src https\u003A\u002F\u002Fwww.keepshooting.com\u002Fstatic\u002Ffrontend\u002FUnitedDefense\u002F2024\u002D12\u002D4\u002Fen_US\u002FHyva_PageBuilder\u002Fjs\u002Fjarallax\u002Dvideo.min.js; document.head.appendChild(jarallaxVideoScript); }); jarallaxScript.src https\u003A\u002F\u002Fwww.keepshooting.com\u002Fstatic\u002Ffrontend\u002FUnitedDefense\u002F2024\u002D12\u002D4\u002Fen_US\u002FHyva_PageBuilder\u002Fjs\u002Fjarallax.min.js; document.head.appendChild(jarallaxScript); } }); })();/script>script defer> use strict; (() > { const applyShowOnHover (element) > { const showOverlayOnHover (element) > { const overlay element.querySelector(.pagebuilder-overlay); const color overlay.dataset.overlayColor; element.addEventListener(mouseover, () > { overlay.style.backgroundColor color; }); element.addEventListener(mouseout, () > { overlay.style.backgroundColor transparent; }); }; const showButtonOnHover (element) > { const button element.querySelector(.pagebuilder-banner-button); element.addEventListener(mouseover, () > { button.style.opacity 1; button.style.visibility visible; }); element.addEventListener(mouseout, () > { button.style.opacity 0; button.style.visibility hidden; }); }; if (element.dataset.showOverlay hover) { showOverlayOnHover(element); } if (element.dataset.showButton hover) { showButtonOnHover(element); } }; window.addEventListener(DOMContentLoaded, () > { document.querySelectorAll(data-content-typebanner,data-content-typeslider).forEach(element > { applyShowOnHover(element); }); }); })();/script>script defer> use strict; (() > { document.querySelectorAll(data-content-typetab-item).forEach(tabItem > { tabItem.setAttribute(x-show, `tab ${tabItem.id}`); }); document.querySelectorAll(data-content-typetabs).forEach(tab > { const defaultActiveTab parseInt(tab.dataset.activeTab) || 0; tab.querySelectorAll(.tab-header).forEach((tabHeader, index) > { const tabLink tabHeader.querySelector(a); const tabId tabLink.getAttribute(href).replace(#, ); tabHeader.setAttribute(:class, `{ active: tab ${tabId} }`); tabLink.setAttribute(x-on:click.prevent, `tab ${tabId}`); if (index defaultActiveTab) { tab.setAttribute(x-data, `{ tab: ${tabId} }`); } }); }); })();/script>script typeapplication/ld+json>{@context:https:\/\/schema.org,@type:WebSite,url:https:\/\/www.keepshooting.com\/,name:Keep Shooting,potentialAction:{@type:SearchAction,target:https:\/\/www.keepshooting.com\/catalogsearch\/result\/?q{search_term_string},query-input:required namesearch_term_string}}/script>script typeapplication/ld+json>{@context:https:\/\/schema.org,@type:Organization,url:https:\/\/www.keepshooting.com\/,name:Keepshooting,logo:https:\/\/www.keepshooting.com\/media\/logo\/stores\/1\/keepshooting-logo-r.png,contactPoint:{@type:ContactPoint,telephone:+1-877-703-2767,contactType:sales},{@type:ContactPoint,telephone:+1-877-703-2767,contactType:technical support},{@type:ContactPoint,telephone:+1-877-703-2767,contactType:customer service},address:{addressCountry:US,postalCode:17350,addressRegion:PA,addressLocality:New Oxford PA,streetAddress:214 W. Golden Lane},sameAs:https:\/\/www.facebook.com\/keepshootingcom\/,https:\/\/twitter.com\/keepshooting}/script>script typeapplication/json iddefault-section-data> {messages:,customer:,compare-products:,last-ordered-items:,cart:,directory-data:{US:{name:United States,regions:{1:{code:AL,name:Alabama},2:{code:AK,name:Alaska},3:{code:AS,name:American Samoa},4:{code:AZ,name:Arizona},5:{code:AR,name:Arkansas},6:{code:AE,name:Armed Forces Africa},7:{code:AA,name:Armed Forces Americas},8:{code:AE,name:Armed Forces Canada},9:{code:AE,name:Armed Forces Europe},10:{code:AE,name:Armed Forces Middle East},11:{code:AP,name:Armed Forces Pacific},12:{code:CA,name:California},13:{code:CO,name:Colorado},14:{code:CT,name:Connecticut},15:{code:DE,name:Delaware},16:{code:DC,name:District of Columbia},17:{code:FM,name:Federated States Of Micronesia},18:{code:FL,name:Florida},19:{code:GA,name:Georgia},20:{code:GU,name:Guam},21:{code:HI,name:Hawaii},22:{code:ID,name:Idaho},23:{code:IL,name:Illinois},24:{code:IN,name:Indiana},25:{code:IA,name:Iowa},26:{code:KS,name:Kansas},27:{code:KY,name:Kentucky},28:{code:LA,name:Louisiana},29:{code:ME,name:Maine},30:{code:MH,name:Marshall Islands},31:{code:MD,name:Maryland},32:{code:MA,name:Massachusetts},33:{code:MI,name:Michigan},34:{code:MN,name:Minnesota},35:{code:MS,name:Mississippi},36:{code:MO,name:Missouri},37:{code:MT,name:Montana},38:{code:NE,name:Nebraska},39:{code:NV,name:Nevada},40:{code:NH,name:New Hampshire},41:{code:NJ,name:New Jersey},42:{code:NM,name:New Mexico},43:{code:NY,name:New York},44:{code:NC,name:North Carolina},45:{code:ND,name:North Dakota},46:{code:MP,name:Northern Mariana Islands},47:{code:OH,name:Ohio},48:{code:OK,name:Oklahoma},49:{code:OR,name:Oregon},50:{code:PW,name:Palau},51:{code:PA,name:Pennsylvania},52:{code:PR,name:Puerto Rico},53:{code:RI,name:Rhode Island},54:{code:SC,name:South Carolina},55:{code:SD,name:South Dakota},56:{code:TN,name:Tennessee},57:{code:TX,name:Texas},58:{code:UT,name:Utah},59:{code:VT,name:Vermont},60:{code:VI,name:Virgin Islands},61:{code:VA,name:Virginia},62:{code:WA,name:Washington},63:{code:WV,name:West Virginia},64:{code:WI,name:Wisconsin},65:{code:WY,name:Wyoming}}},data_id:1737566258},captcha:,instant-purchase:,loggedAsCustomer:,persistent:,review:,wishlist:{items:},hyva_checkout:,webforms:,location:,checkout-data:,recently_viewed_product:,recently_compared_product:,product_data_storage:,paypal-billing-agreement:}/script>/div>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]