{"title":"Patriotic Collection","description":"\u003cp\u003eShow your American pride. Embroidered patches featuring flags, founding documents, and patriotic symbols — all made in the USA.\u003c\/p\u003e","products":[{"product_id":"2ndamendment","title":"2nd Amendment","description":"\u003cp\u003eDo you support the Second Amendment? Show your 2A pride with this unique Kap-Bak! Expertly embroidered on black fabric, this 2A Kap-Bak makes it clear that you support the Constitution.\u003c\/p\u003e","brand":"Kap-Bak","offers":[{"title":"Default Title","offer_id":43573234499757,"sku":"2A-0001","price":14.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0663\/8000\/5549\/files\/2a1.png?v=1724787046"},{"product_id":"gadsden-kap-bak","title":"Don't Tread On Me","description":"\u003cp\u003eThe often requested Gadsden Kap-Bak is finally here! Due to an overwhelming request we are adding the “Don’t Tread On Me” classic, the Gadsden Flag. Designed in 1775 by Christopher Gadsden from South Carolina and used by many different patriots over the years as their banner. Popular once again, the Gadsden Kap-Bak is sure to be an instant hit! Get yours today!\u003c\/p\u003e","brand":"Kap-Bak","offers":[{"title":"Default Title","offer_id":43573236138157,"sku":"DTOM-0027","price":14.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0663\/8000\/5549\/files\/Donttread1.png?v=1724786238"},{"product_id":"american-flag-kap-bak","title":"American Flag V1","description":"\u003cp\u003eProudly display Old Glory on the back of your favorite cap! The American Flag skillfully embroidered in a variety of colors on the Kap-Bak material. Made entirely in the USA, naturally. V1 has gold border. V2 has white border.\u003c\/p\u003e","brand":"Kap-Bak","offers":[{"title":"White","offer_id":43574280683693,"sku":"AF-0032-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Black","offer_id":43574280716461,"sku":"AF-0001-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Navy Blue","offer_id":43574280749229,"sku":"AF-0002-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Red","offer_id":43574280781997,"sku":"AF-0010-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Royal Blue","offer_id":43574280814765,"sku":"AF-0006-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Charcoal","offer_id":43574280847533,"sku":"AF-0012-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Silver","offer_id":43574280880301,"sku":"AF-0013-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Army Green","offer_id":43574280913069,"sku":"AF-0018-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Mocha","offer_id":43574280945837,"sku":"AF-0004-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Khaki","offer_id":43574280978605,"sku":"AF-0004-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Digital Camo","offer_id":46026991009965,"sku":"AF-0041-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Forest Green","offer_id":46026991042733,"sku":"AF-0017-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Burgundy","offer_id":46026991108269,"sku":"AF-0009-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Wine","offer_id":46026991141037,"sku":"AF-0008-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Brown","offer_id":46026991173805,"sku":"AF-0003-G","price":14.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0663\/8000\/5549\/files\/AF-Navy-Gold_Border.jpg?v=1779569614"},{"product_id":"we-the-people-1","title":"We the People","description":"\u003cp\u003e\"We the People\" — the three most powerful words in American history, now embroidered on a Kap-Bak for the back of your baseball cap. Clean stitching on black material, made in the USA from start to finish.\u003c\/p\u003e\n\u003cp\u003eThis isn't just a Kap-Bak, it's a reminder of what this country was built on. Wear the Constitution proudly wherever you go.\u003c\/p\u003e","brand":"Kap-Bak","offers":[{"title":"Default Title","offer_id":43681108623533,"sku":"WTP-0001","price":14.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0663\/8000\/5549\/files\/WeThePeople1.png?v=1724790894"},{"product_id":"usa-red-white-blue","title":"Continental USA Flag","description":"\u003cp\u003eThe Stars and Stripes stretched across the outline of the Continental United States — it doesn't get more American than that. This embroidered Kap-Bak is stitched with care right here in the USA and attaches to the back panel of any baseball cap.\u003c\/p\u003e\n\u003cp\u003eWhether you're at a cookout, a ballgame, or just running errands, this Kap-Bak lets everyone know where your heart is. Proudly made in America, just like you.\u003c\/p\u003e","brand":"Kap-Bak","offers":[{"title":"Default Title","offer_id":43681111376045,"sku":"US-0032-RWB","price":14.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0663\/8000\/5549\/files\/USFlagCountry_a82ce701-c80f-43ec-b686-289d16c54873.png?v=1724864027"},{"product_id":"maga","title":"MAGA","description":"\u003cp\u003eMake America Great Again — and look good doing it. This embroidered MAGA Kap-Bak attaches right to the back of your favorite baseball cap. Bold lettering, clean stitching, made entirely in the USA.\u003c\/p\u003e\n\u003cp\u003eNo matter where you wear it, this Kap-Bak makes a statement. Swap it between caps whenever you want — that's the beauty of Kap-Bak.\u003c\/p\u003e","brand":"Kap-Bak","offers":[{"title":"Maga Red","offer_id":43761334583469,"sku":"","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Maga Blue","offer_id":43761342447789,"sku":"","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Camo Maga","offer_id":43761359945901,"sku":"","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Black Maga","offer_id":43761361354925,"sku":"","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Pink Maga","offer_id":43761368793261,"sku":"","price":14.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0663\/8000\/5549\/files\/Maga.png?v=1724864504"},{"product_id":"america-peace-fingers","title":"USA Peace Sign","description":"\u003cp\u003ePeace and patriotism — why not both? This embroidered USA Peace Sign Kap-Bak combines the classic peace symbol with American flag styling. Attaches to the back of any baseball cap, made entirely in the USA.\u003c\/p\u003e\n\u003cp\u003eA unique design that stands out from the crowd. If you believe in America and good vibes, this Kap-Bak was made for you.\u003c\/p\u003e","brand":"Kap-Bak","offers":[{"title":"Default Title","offer_id":43681116979373,"sku":"PS-0032","price":14.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0663\/8000\/5549\/files\/USFlagPeace_fcdd1b22-b319-485a-b6ff-1c36f69e0ac4.png?v=1724863722"},{"product_id":"dont-tread-on-me-flag","title":"Navy Jack Flag","description":"\u003cp\u003eFly your colors with the Don't Tread On Me Flag Kap-Bak! The classic American flag and snake design embroidered on navy — a bold statement of independence and patriotism.\u003c\/p\u003e","brand":"Kap-Bak","offers":[{"title":"Default Title","offer_id":45914648051885,"sku":"FR-DTOM-001","price":14.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0663\/8000\/5549\/files\/fr-dont-tread-flag.png?v=1776360597"},{"product_id":"merica-flag","title":"'Merica Flag","description":"\u003cp\u003eShow your American pride with the 'Merica Flag Kap-Bak! A stylized distressed American flag embroidered on various fabric colors — because some things never go out of style.\u003c\/p\u003e","brand":"Kap-Bak","offers":[{"title":"Navy Blue","offer_id":45914648445101,"sku":"MF-0002","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Black","offer_id":46076315631789,"sku":"MF-0001","price":14.99,"currency_code":"USD","in_stock":false},{"title":"Charcoal","offer_id":46076317630637,"sku":"MF-0012","price":14.99,"currency_code":"USD","in_stock":false},{"title":"Royal Blue","offer_id":46076317728941,"sku":"MF-0006","price":14.99,"currency_code":"USD","in_stock":false},{"title":"Red","offer_id":46076317860013,"sku":"MF-0010","price":14.99,"currency_code":"USD","in_stock":false},{"title":"Silver","offer_id":46076319858861,"sku":"MF-0013","price":14.99,"currency_code":"USD","in_stock":false},{"title":"White","offer_id":46076319957165,"sku":"MF-0032","price":14.99,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0663\/8000\/5549\/files\/fr-merica-flag.png?v=1776360605"},{"product_id":"american-flag-v2","title":"American Flag V2","description":"\u003cp\u003eThe newest rendition of our American Flag design, the core design in our patriotic collection! V2 has white border or solid thread color stitching. V1 has gold border.\u003c\/p\u003e","brand":"Kap-Bak","offers":[{"title":"Black \/ Gold Border","offer_id":46046031413421,"sku":"AF-0001-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Black \/ White Border","offer_id":46046031446189,"sku":"AF-0001-W","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Black \/ Gold Thread","offer_id":46046031478957,"sku":"AF-0001-SG","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Black \/ Yellow Thread","offer_id":46046031511725,"sku":"AF-0001-SY","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Navy Blue \/ Gold Border","offer_id":46046031544493,"sku":"AF-0002-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Navy Blue \/ White Border","offer_id":46046031577261,"sku":"AF-0002-W","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Brown \/ White Border","offer_id":46046031610029,"sku":"AF-0003-W","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Brown \/ Gold Border","offer_id":46046031642797,"sku":"AF-0003-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Mocha \/ White Border","offer_id":46046031675565,"sku":"AF-0004-W","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Mocha \/ Gold Border","offer_id":46046031708333,"sku":"AF-0004-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Royal Blue \/ White Border","offer_id":46046031741101,"sku":"AF-0006-W","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Royal Blue \/ Gold Border","offer_id":46046031773869,"sku":"AF-0006-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Red \/ White Border","offer_id":46046031806637,"sku":"AF-0010-W","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Red \/ Gold Border","offer_id":46046031839405,"sku":"AF-0010-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Charcoal \/ White Border","offer_id":46046031872173,"sku":"AF-0012-W","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Charcoal \/ Gold Border","offer_id":46046031904941,"sku":"AF-0012-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Silver \/ White Border","offer_id":46046031937709,"sku":"AF-0013-W","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Silver \/ Gold Border","offer_id":46046031970477,"sku":"AF-0013-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Forest Green \/ White Border","offer_id":46046032003245,"sku":"AF-0017-W","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Forest Green \/ Gold Border","offer_id":46046032036013,"sku":"AF-0017-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Army Green \/ White Border","offer_id":46046032068781,"sku":"AF-0018-W","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Army Green \/ Gold Border","offer_id":46046032101549,"sku":"AF-0018-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Army Green \/ Green Thread","offer_id":46046032134317,"sku":"AF-0018-S","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Khaki \/ Gold Border","offer_id":46046032167085,"sku":"AF-0028-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Khaki \/ White Border","offer_id":46046032199853,"sku":"AF-0028-W","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Khaki \/ Bronze Thread","offer_id":46046032232621,"sku":"AF-0028-S","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Beige \/ Gold Border","offer_id":46046032265389,"sku":"AF-0030-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Beige \/ White Border","offer_id":46046032298157,"sku":"AF-0030-W","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Beige \/ Bronze Thread","offer_id":46046032330925,"sku":"AF-0030-S","price":14.99,"currency_code":"USD","in_stock":true},{"title":"White \/ Gold Border","offer_id":46046032363693,"sku":"AF-0032-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Digital Camo \/ Gold Border","offer_id":46046032396461,"sku":"AF-0041-G","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Digital Camo \/ White Border","offer_id":46046032429229,"sku":"AF-0041-W","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Blue Camo \/ White Border","offer_id":46046032461997,"sku":"AF-0042-W","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Brown Camo \/ White Border","offer_id":46046032494765,"sku":"AF-0043-W","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Jungle Camo \/ White Border","offer_id":46046032527533,"sku":"AF-0044-W","price":14.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0663\/8000\/5549\/files\/AF-Black-WhiteBorder.jpg?v=1779568718"},{"product_id":"america-250","title":"America 250th Anniversary","description":"\u003cp\u003eCelebrate America's 250th. The America 250 Kap-Bak puts the stars-and-stripes \"250\" mark front and center with \"1776–2026\" stitched below — a clean, bold tribute to a quarter-millennium of freedom.\u003c\/p\u003e\n\u003cp\u003eThis embroidered Kap-Bak attaches to the back of any standard cap with a 1.5\" × 2.5\" Velcro® loop. Swap it between hats whenever you want — clean stitching, made entirely in the USA.\u003c\/p\u003e","brand":"Kap-Bak","offers":[{"title":"Black","offer_id":46067107332269,"sku":"250-0001","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Navy Blue","offer_id":46067107365037,"sku":"250-0002","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Royal Blue","offer_id":46067107397805,"sku":"250-0006","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Red","offer_id":46067107430573,"sku":"250-0010","price":14.99,"currency_code":"USD","in_stock":true},{"title":"White","offer_id":46067107463341,"sku":"250-0032","price":14.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0663\/8000\/5549\/files\/250-0001-cap_25a02a6f-6f47-4b9d-a5ac-54e96396a688.png?v=1780326873"},{"product_id":"eagle-flag","title":"Eagle Flag","description":"\u003cp\u003eBald eagle over Old Glory — the symbol that says it all, embroidered crisp and clean on a Kap-Bak base.\u003c\/p\u003e\n\u003cp\u003eThis embroidered Kap-Bak attaches to the back of any standard cap with a 1.5\" × 2.5\" Velcro® loop. Swap it between hats whenever you want — clean stitching, made entirely in the USA.\u003c\/p\u003e","brand":"Kap-Bak","offers":[{"title":"Black","offer_id":46067107561645,"sku":"EF-0001","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Navy Blue","offer_id":46067107594413,"sku":"EF-0002","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Royal Blue","offer_id":46067107627181,"sku":"EF-0006","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Red","offer_id":46067107659949,"sku":"EF-0010","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Charcoal","offer_id":46067107692717,"sku":"EF-0012","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Silver","offer_id":46067107725485,"sku":"EF-0013","price":14.99,"currency_code":"USD","in_stock":true},{"title":"White","offer_id":46067107758253,"sku":"EF-0032","price":14.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0663\/8000\/5549\/files\/EF-0001-cap_0b46abbf-de0a-4e4f-bf64-406036c93d4b.png?v=1780326956"},{"product_id":"texas-flag","title":"Texas Flag","description":"\u003cp\u003eThe Lone Star State, stitched proud. Texas Flag Kap-Bak in the classic red-white-and-blue layout.\u003c\/p\u003e\n\u003cp\u003eThis embroidered Kap-Bak attaches to the back of any standard cap with a 1.5\" × 2.5\" Velcro® loop. Swap it between hats whenever you want — clean stitching, made entirely in the USA.\u003c\/p\u003e","brand":"Kap-Bak","offers":[{"title":"Navy Blue","offer_id":46067107954861,"sku":"TF-0002","price":14.99,"currency_code":"USD","in_stock":true},{"title":"Royal Blue","offer_id":46067107987629,"sku":"TF-0006","price":14.99,"currency_code":"USD","in_stock":true},{"title":"White","offer_id":46067108020397,"sku":"TF-0032","price":14.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0663\/8000\/5549\/files\/TF-0002-cap_5720657b-95ba-469d-a7b8-a67215009a00.png?v=1780327112"},{"product_id":"texas-state","title":"Texas State","description":"\u003cp\u003eTexas — just the outline, just the state. Clean embroidered silhouette of the Lone Star State on a Kap-Bak base.\u003c\/p\u003e\n\u003cp\u003eThis embroidered Kap-Bak attaches to the back of any standard cap with a 1.5\" × 2.5\" Velcro® loop. Swap it between hats whenever you want — clean stitching, made entirely in the USA.\u003c\/p\u003e","brand":"Kap-Bak","offers":[{"title":"Navy Blue","offer_id":46067108085933,"sku":null,"price":14.99,"currency_code":"USD","in_stock":true},{"title":"Royal Blue","offer_id":46067108118701,"sku":null,"price":14.99,"currency_code":"USD","in_stock":true},{"title":"White","offer_id":46067108151469,"sku":null,"price":14.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0663\/8000\/5549\/files\/TS-Navy_Blue-cap_0fbfdaf5-288d-4922-9523-7da510e11399.png?v=1780327122"},{"product_id":"america-250-3-pack-preset-bundle","title":"America 250 3-Pack - Preset Bundle","description":"\u003c!-- KB_FREE_SHIPPING_BUNDLE_NOTE_START --\u003e\n\u003cdiv class=\"kb-free-shipping-note\" style=\"margin: 18px 0; padding: 14px 16px; border: 1px solid #108474; border-radius: 8px; background: #f2fbf8; color: #12312c;\"\u003e\n  \u003cstrong\u003eFree shipping:\u003c\/strong\u003e Bundle orders qualify for free shipping automatically at checkout on orders $30+.\n\u003c\/div\u003e\n\u003c!-- KB_FREE_SHIPPING_BUNDLE_NOTE_END --\u003e\n\u003cdiv class=\"kb-preset-bundle\"\u003e\n  \u003cp\u003eThis is a ready-made preset bundle. Add it once and get the exact Kap-Bak set listed below.\u003c\/p\u003e\n  \u003ch3\u003eIncluded Kap-Baks\u003c\/h3\u003e\n  \u003cul\u003e\n\u003cli\u003eAmerica 250th Anniversary\u003c\/li\u003e\n\u003cli\u003eAmerican Flag\u003c\/li\u003e\n\u003cli\u003eWe the People\u003c\/li\u003e\n\u003c\/ul\u003e\n  \u003cp\u003ePrefer to choose your own designs? Use the Pick Any 3, Starter Pack, or licensed college custom bundle instead.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"Kap-Bak","offers":[{"title":"Default Title","offer_id":46424121147565,"sku":"BUNDLE-AMERICA250-3","price":39.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0663\/8000\/5549\/files\/preset-america-250-3-fan_76145f1b-e6f8-4e86-a273-6f622108034a.png?v=1782419608"},{"product_id":"patriotic-pick-any-3-kap-baks","title":"Patriotic Pick Any 3 Kap-Baks - Choose Colors","description":"\u003c!-- KB_VARIANT_BUNDLE_PICKER_START --\u003e\n\u003cstyle\u003e\n.product__info-container:has(#kbv-patriotic-pick-any-3-kap-baks) .product-form__quantity,\n.product__info-container:has(#kbv-patriotic-pick-any-3-kap-baks) product-form.product-form,\n.product__info-container:has(#kbv-patriotic-pick-any-3-kap-baks) form.installment,\n.product__info-container:has(#kbv-patriotic-pick-any-3-kap-baks) pickup-availability {\n  display: none !important;\n}\n.kbv-wrap { font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif; color: #121212; margin: 22px 0 34px; }\n.kbv-hero { border: 1px solid #d8d8d8; background: #f7f5f0; padding: 22px; margin-bottom: 20px; }\n.kbv-badge { display: inline-block; font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #8b1e1e; margin-bottom: 8px; }\n.kbv-hero h3 { margin: 0 0 8px; font-size: 28px; line-height: 1.08; }\n.kbv-hero p { margin: 0; color: #444; }\n.kbv-free { border: 1px solid #108474; background: #f2fbf8; padding: 12px 14px; margin: 14px 0 0; color: #12312c; }\n.kbv-note { margin: 10px 0 0; font-size: 13px; color: #555; }\n.kbv-group { margin-top: 22px; }\n.kbv-group-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; }\n.kbv-group h4 { margin: 0; font-size: 18px; }\n.kbv-count { font-size: 13px; color: #555; font-weight: 700; }\n.kbv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }\n.kbv-card { position: relative; border: 1px solid #d7d7d7; background: #fff; padding: 12px; text-align: left; cursor: pointer; min-height: 214px; }\n.kbv-card:hover { border-color: #108474; }\n.kbv-card.kbv-selected { border-color: #108474; box-shadow: 0 0 0 2px rgba(16,132,116,.18); }\n.kbv-img { width: 100%; aspect-ratio: 1 \/ 1; object-fit: contain; background: #fafafa; display: block; margin-bottom: 8px; }\n.kbv-name { margin: 0 0 4px; font-size: 13px; line-height: 1.25; font-weight: 800; }\n.kbv-variant { margin: 0; font-size: 12px; line-height: 1.25; color: #555; }\n.kbv-check { position: absolute; top: 8px; right: 8px; background: #108474; color: #fff; min-width: 24px; height: 24px; border-radius: 999px; display: none; align-items: center; justify-content: center; font-size: 12px; font-weight: 900; padding: 0 6px; }\n.kbv-selected .kbv-check { display: inline-flex; }\n.kbv-error { border: 1px solid #a33; background: #fff6f6; padding: 12px; color: #7a1a1a; }\n.kbv-actions { position: sticky; bottom: 0; z-index: 5; background: rgba(255,255,255,.96); border-top: 1px solid #ddd; padding: 14px 0; margin-top: 22px; }\n.kbv-button { width: 100%; border: 0; background: #108474; color: #fff; font-weight: 900; font-size: 16px; padding: 15px 18px; cursor: pointer; }\n.kbv-button:disabled { background: #9ca3a7; cursor: not-allowed; }\n.kbv-status { margin: 8px 0 0; min-height: 20px; font-size: 13px; color: #444; }\n\u003c\/style\u003e\n\u003cdiv class=\"kbv-wrap\" id=\"kbv-patriotic-pick-any-3-kap-baks\"\u003e\n  \u003cdiv class=\"kbv-hero\"\u003e\n    \u003cdiv class=\"kbv-badge\"\u003eJuly 4 Bundle\u003c\/div\u003e\n    \u003ch3\u003eBuild a patriotic 3-pack\u003c\/h3\u003e\n    \u003cp\u003eChoose any 3 patriotic Kap-Baks and pick the color\/style where options exist.\u003c\/p\u003e\n    \u003cdiv class=\"kbv-free\"\u003e\n\u003cstrong\u003eFree shipping:\u003c\/strong\u003e Bundle orders qualify automatically at checkout on orders $30+.\u003c\/div\u003e\n    \u003cp class=\"kbv-note\"\u003eNonpartisan patriotic bundle for the July 4 push.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"kbv-groups\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"kbv-actions\"\u003e\n    \u003cbutton class=\"kbv-button\" type=\"button\" disabled\u003eAdd Bundle to Cart - $39.99\u003c\/button\u003e\n    \u003cp class=\"kbv-status\"\u003e\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function() {\n  var config = {\"id\":\"kbv-patriotic-pick-any-3-kap-baks\",\"variantId\":46750684938413,\"price\":\"$39.99\",\"bundleTitle\":\"Patriotic Pick Any 3 Kap-Baks - Choose Colors\",\"groups\":[{\"key\":\"pick\",\"label\":\"Pick\",\"pickN\":3,\"handles\":[\"america-250\",\"merica-flag\",\"american-flag-kap-bak\",\"american-flag-v2\",\"eagle-flag\",\"usa-red-white-blue\",\"gadsden-kap-bak\",\"dont-tread-on-me-flag\",\"america-peace-fingers\",\"we-the-people-1\",\"texas-flag\",\"texas-state\",\"2ndamendment\"],\"mode\":\"handles\",\"includeTagsAny\":[],\"excludeTagsAny\":[],\"excludeHandles\":[],\"allowRepeat\":false}]};\n  var root = document.getElementById(config.id);\n  if (!root) return;\n  function hideNativeForm() {\n    var holder = root.closest('.product__info-container') || document;\n    holder.querySelectorAll('.product-form__quantity, product-form.product-form, form.installment, pickup-availability').forEach(function(el) {\n      el.style.display = 'none';\n      el.setAttribute('aria-hidden', 'true');\n    });\n  }\n  hideNativeForm();\n  var groupsEl = root.querySelector('.kbv-groups');\n  var button = root.querySelector('.kbv-button');\n  var status = root.querySelector('.kbv-status');\n  var selected = {};\n  config.groups.forEach(function(group) { selected[group.key] = []; });\n\n  function tagsOf(product) {\n    if (Array.isArray(product.tags)) return product.tags.map(function(t) { return String(t).toLowerCase(); });\n    return String(product.tags || '').split(',').map(function(t) { return t.trim().toLowerCase(); });\n  }\n  function hasAny(tags, needles) {\n    return (needles || []).some(function(n) { return tags.indexOf(String(n).toLowerCase()) \u003e= 0; });\n  }\n  function passes(product, group) {\n    var tags = tagsOf(product);\n    if ((group.excludeHandles || []).indexOf(product.handle) \u003e= 0) return false;\n    if (group.excludeTagsAny \u0026\u0026 group.excludeTagsAny.length \u0026\u0026 hasAny(tags, group.excludeTagsAny)) return false;\n    if (group.includeTagsAny \u0026\u0026 group.includeTagsAny.length \u0026\u0026 !hasAny(tags, group.includeTagsAny)) return false;\n    return true;\n  }\n  function productImage(product, variant) {\n    if (variant \u0026\u0026 variant.featured_image) {\n      if (typeof variant.featured_image === 'string') return variant.featured_image;\n      if (variant.featured_image.src) return variant.featured_image.src;\n    }\n    if (product.featured_image) {\n      if (typeof product.featured_image === 'string') return product.featured_image;\n      if (product.featured_image.src) return product.featured_image.src;\n    }\n    if (product.images \u0026\u0026 product.images.length) {\n      var first = product.images[0];\n      return typeof first === 'string' ? first : first.src;\n    }\n    return '';\n  }\n  function variantLabel(product, variant) {\n    var title = variant \u0026\u0026 variant.title ? variant.title : 'Default Title';\n    return title === 'Default Title' ? product.title : title;\n  }\n  function itemLabel(item) {\n    return item.variantTitle === 'Default Title' ? item.productTitle : item.productTitle + ' - ' + item.variantTitle;\n  }\n  function expand(product, group) {\n    var variants = product.variants \u0026\u0026 product.variants.length ? product.variants : [{ id: product.id, title: 'Default Title', available: true }];\n    return variants.filter(function(v) { return v.available !== false; }).map(function(v) {\n      return {\n        productTitle: product.title,\n        handle: product.handle,\n        variantId: String(v.id),\n        variantTitle: variantLabel(product, v),\n        image: productImage(product, v),\n        groupKey: group.key\n      };\n    });\n  }\n  function fetchProducts(group) {\n    if (group.mode === 'all') {\n      return fetch('\/products.json?limit=250').then(function(r) { return r.json(); }).then(function(data) {\n        return (data.products || []).filter(function(p) { return passes(p, group); });\n      });\n    }\n    return Promise.all((group.handles || []).map(function(handle) {\n      return fetch('\/products\/' + handle + '.js').then(function(r) {\n        if (!r.ok) throw new Error('Could not load ' + handle);\n        return r.json();\n      });\n    })).then(function(products) {\n      return products.filter(function(p) { return passes(p, group); });\n    });\n  }\n  function countFor(group, item) {\n    return selected[group.key].filter(function(s) { return s.variantId === item.variantId; }).length;\n  }\n  function ready() {\n    return config.groups.every(function(group) { return selected[group.key].length === group.pickN; });\n  }\n  function refresh() {\n    config.groups.forEach(function(group) {\n      var container = root.querySelector('[data-group=\"' + group.key + '\"]');\n      if (!container) return;\n      container.querySelector('.kbv-count').textContent = selected[group.key].length + ' of ' + group.pickN + ' selected';\n      container.querySelectorAll('.kbv-card').forEach(function(card) {\n        var id = card.getAttribute('data-variant-id');\n        var qty = selected[group.key].filter(function(s) { return s.variantId === id; }).length;\n        card.classList.toggle('kbv-selected', qty \u003e 0);\n        card.querySelector('.kbv-check').textContent = qty \u003e 1 ? 'x' + qty : '1';\n      });\n    });\n    button.disabled = !ready();\n    status.textContent = ready() ? 'Ready to add your selected bundle.' : 'Choose all bundle items to continue.';\n  }\n  function toggle(group, item) {\n    var list = selected[group.key];\n    var idx = list.findIndex(function(s) { return s.variantId === item.variantId; });\n    if (group.allowRepeat) {\n      if (list.length \u003c group.pickN) {\n        list.push(item);\n      } else if (idx \u003e= 0) {\n        list.splice(idx, 1);\n      } else {\n        list.pop();\n        list.push(item);\n      }\n    } else if (idx \u003e= 0) {\n      list.splice(idx, 1);\n    } else {\n      if (list.length \u003e= group.pickN) list.pop();\n      list.push(item);\n    }\n    refresh();\n  }\n  function renderGroup(group, products) {\n    var section = document.createElement('section');\n    section.className = 'kbv-group';\n    section.setAttribute('data-group', group.key);\n    section.innerHTML = '\u003cdiv class=\"kbv-group-head\"\u003e\u003ch4\u003e' + group.label + 's\u003c\/h4\u003e\u003cspan class=\"kbv-count\"\u003e0 of ' + group.pickN + ' selected\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"kbv-grid\"\u003e\u003c\/div\u003e';\n    var grid = section.querySelector('.kbv-grid');\n    var items = [];\n    products.sort(function(a, b) { return a.title.localeCompare(b.title); }).forEach(function(product) {\n      items = items.concat(expand(product, group));\n    });\n    if (!items.length) {\n      grid.innerHTML = '\u003cdiv class=\"kbv-error\"\u003eNo eligible designs are available right now.\u003c\/div\u003e';\n      return section;\n    }\n    items.forEach(function(item) {\n      var card = document.createElement('button');\n      card.type = 'button';\n      card.className = 'kbv-card';\n      card.setAttribute('data-variant-id', item.variantId);\n      card.innerHTML = '\u003cspan class=\"kbv-check\"\u003e1\u003c\/span\u003e\u003cimg class=\"kbv-img\" src=\"' + item.image + '\u0026width=360\" loading=\"lazy\" alt=\"' + itemLabel(item).replace(\/\"\/g, '\u0026quot;') + '\"\u003e\u003cp class=\"kbv-name\"\u003e' + item.productTitle + '\u003c\/p\u003e\u003cp class=\"kbv-variant\"\u003e' + item.variantTitle + '\u003c\/p\u003e';\n      card.addEventListener('click', function() { toggle(group, item); });\n      grid.appendChild(card);\n    });\n    return section;\n  }\n  Promise.all(config.groups.map(function(group) {\n    return fetchProducts(group).then(function(products) { return renderGroup(group, products); });\n  })).then(function(sections) {\n    groupsEl.innerHTML = '';\n    sections.forEach(function(section) { groupsEl.appendChild(section); });\n    refresh();\n  }).catch(function(err) {\n    groupsEl.innerHTML = '\u003cdiv class=\"kbv-error\"\u003e' + (err \u0026\u0026 err.message ? err.message : 'Could not load bundle options.') + '\u003c\/div\u003e';\n  });\n  button.addEventListener('click', function() {\n    if (!ready()) return;\n    var defaultText = button.textContent;\n    var props = { 'Bundle': config.bundleTitle };\n    config.groups.forEach(function(group) {\n      selected[group.key].forEach(function(item, index) {\n        var prefix = group.label + ' ' + (index + 1);\n        props[prefix] = itemLabel(item);\n        props[prefix + ' Variant ID'] = item.variantId;\n      });\n    });\n    button.disabled = true;\n    button.textContent = 'Adding bundle...';\n    status.textContent = 'Adding your bundle to cart...';\n    fetch('\/cart\/add.js', {\n      method: 'POST',\n      credentials: 'same-origin',\n      headers: { 'Content-Type': 'application\/json', 'Accept': 'application\/json' },\n      body: JSON.stringify({ items: [{ id: config.variantId, quantity: 1, properties: props }] })\n    }).then(function(r) {\n      if (!r.ok) return r.json().catch(function() { return {}; }).then(function(data) {\n        throw new Error(data.description || data.message || 'Could not add this bundle.');\n      });\n      return r.json();\n    }).then(function() {\n      window.location.href = '\/cart';\n    }).catch(function(err) {\n      button.disabled = false;\n      button.textContent = defaultText;\n      status.textContent = err \u0026\u0026 err.message ? err.message : 'Could not add this bundle. Please refresh and try again.';\n    });\n  });\n})();\n\u003c\/script\u003e\n\u003cp\u003e\u003cem\u003eThis bundle is fulfilled from the selected Kap-Bak designs above. If a design has colors or styles, your exact choice is saved with the cart item.\u003c\/em\u003e\u003c\/p\u003e\n\u003c!-- KB_VARIANT_BUNDLE_PICKER_END --\u003e","brand":"Kap-Bak","offers":[{"title":"Default Title","offer_id":46750684938413,"sku":"BUNDLE-PATRIOTIC-3","price":39.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0663\/8000\/5549\/files\/250-0001-cap_3a9e30f7-b2f9-46e6-bee7-760e44e4732a.png?v=1783176471"},{"product_id":"american-flag-3-pack-choose-colors","title":"American Flag 3-Pack - Choose Colors","description":"\u003c!-- KB_VARIANT_BUNDLE_PICKER_START --\u003e\n\u003cstyle\u003e\n.product__info-container:has(#kbv-american-flag-3-pack-choose-colors) .product-form__quantity,\n.product__info-container:has(#kbv-american-flag-3-pack-choose-colors) product-form.product-form,\n.product__info-container:has(#kbv-american-flag-3-pack-choose-colors) form.installment,\n.product__info-container:has(#kbv-american-flag-3-pack-choose-colors) pickup-availability {\n  display: none !important;\n}\n.kbv-wrap { font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif; color: #121212; margin: 22px 0 34px; }\n.kbv-hero { border: 1px solid #d8d8d8; background: #f7f5f0; padding: 22px; margin-bottom: 20px; }\n.kbv-badge { display: inline-block; font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #8b1e1e; margin-bottom: 8px; }\n.kbv-hero h3 { margin: 0 0 8px; font-size: 28px; line-height: 1.08; }\n.kbv-hero p { margin: 0; color: #444; }\n.kbv-free { border: 1px solid #108474; background: #f2fbf8; padding: 12px 14px; margin: 14px 0 0; color: #12312c; }\n.kbv-note { margin: 10px 0 0; font-size: 13px; color: #555; }\n.kbv-group { margin-top: 22px; }\n.kbv-group-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; }\n.kbv-group h4 { margin: 0; font-size: 18px; }\n.kbv-count { font-size: 13px; color: #555; font-weight: 700; }\n.kbv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }\n.kbv-card { position: relative; border: 1px solid #d7d7d7; background: #fff; padding: 12px; text-align: left; cursor: pointer; min-height: 214px; }\n.kbv-card:hover { border-color: #108474; }\n.kbv-card.kbv-selected { border-color: #108474; box-shadow: 0 0 0 2px rgba(16,132,116,.18); }\n.kbv-img { width: 100%; aspect-ratio: 1 \/ 1; object-fit: contain; background: #fafafa; display: block; margin-bottom: 8px; }\n.kbv-name { margin: 0 0 4px; font-size: 13px; line-height: 1.25; font-weight: 800; }\n.kbv-variant { margin: 0; font-size: 12px; line-height: 1.25; color: #555; }\n.kbv-check { position: absolute; top: 8px; right: 8px; background: #108474; color: #fff; min-width: 24px; height: 24px; border-radius: 999px; display: none; align-items: center; justify-content: center; font-size: 12px; font-weight: 900; padding: 0 6px; }\n.kbv-selected .kbv-check { display: inline-flex; }\n.kbv-error { border: 1px solid #a33; background: #fff6f6; padding: 12px; color: #7a1a1a; }\n.kbv-actions { position: sticky; bottom: 0; z-index: 5; background: rgba(255,255,255,.96); border-top: 1px solid #ddd; padding: 14px 0; margin-top: 22px; }\n.kbv-button { width: 100%; border: 0; background: #108474; color: #fff; font-weight: 900; font-size: 16px; padding: 15px 18px; cursor: pointer; }\n.kbv-button:disabled { background: #9ca3a7; cursor: not-allowed; }\n.kbv-status { margin: 8px 0 0; min-height: 20px; font-size: 13px; color: #444; }\n\u003c\/style\u003e\n\u003cdiv class=\"kbv-wrap\" id=\"kbv-american-flag-3-pack-choose-colors\"\u003e\n  \u003cdiv class=\"kbv-hero\"\u003e\n    \u003cdiv class=\"kbv-badge\"\u003eChoose Colors\u003c\/div\u003e\n    \u003ch3\u003ePick your American Flag 3-pack\u003c\/h3\u003e\n    \u003cp\u003eChoose any 3 American Flag Kap-Baks, including the color\/border variants you want.\u003c\/p\u003e\n    \u003cdiv class=\"kbv-free\"\u003e\n\u003cstrong\u003eFree shipping:\u003c\/strong\u003e Bundle orders qualify automatically at checkout on orders $30+.\u003c\/div\u003e\n    \n  \u003c\/div\u003e\n  \u003cdiv class=\"kbv-groups\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"kbv-actions\"\u003e\n    \u003cbutton class=\"kbv-button\" type=\"button\" disabled\u003eAdd Bundle to Cart - $39.99\u003c\/button\u003e\n    \u003cp class=\"kbv-status\"\u003e\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function() {\n  var config = {\"id\":\"kbv-american-flag-3-pack-choose-colors\",\"variantId\":46750685954221,\"price\":\"$39.99\",\"bundleTitle\":\"American Flag 3-Pack - Choose Colors\",\"groups\":[{\"key\":\"pick\",\"label\":\"Flag\",\"pickN\":3,\"handles\":[\"american-flag-kap-bak\",\"american-flag-v2\"],\"mode\":\"handles\",\"includeTagsAny\":[],\"excludeTagsAny\":[],\"excludeHandles\":[],\"allowRepeat\":true}]};\n  var root = document.getElementById(config.id);\n  if (!root) return;\n  function hideNativeForm() {\n    var holder = root.closest('.product__info-container') || document;\n    holder.querySelectorAll('.product-form__quantity, product-form.product-form, form.installment, pickup-availability').forEach(function(el) {\n      el.style.display = 'none';\n      el.setAttribute('aria-hidden', 'true');\n    });\n  }\n  hideNativeForm();\n  var groupsEl = root.querySelector('.kbv-groups');\n  var button = root.querySelector('.kbv-button');\n  var status = root.querySelector('.kbv-status');\n  var selected = {};\n  config.groups.forEach(function(group) { selected[group.key] = []; });\n\n  function tagsOf(product) {\n    if (Array.isArray(product.tags)) return product.tags.map(function(t) { return String(t).toLowerCase(); });\n    return String(product.tags || '').split(',').map(function(t) { return t.trim().toLowerCase(); });\n  }\n  function hasAny(tags, needles) {\n    return (needles || []).some(function(n) { return tags.indexOf(String(n).toLowerCase()) \u003e= 0; });\n  }\n  function passes(product, group) {\n    var tags = tagsOf(product);\n    if ((group.excludeHandles || []).indexOf(product.handle) \u003e= 0) return false;\n    if (group.excludeTagsAny \u0026\u0026 group.excludeTagsAny.length \u0026\u0026 hasAny(tags, group.excludeTagsAny)) return false;\n    if (group.includeTagsAny \u0026\u0026 group.includeTagsAny.length \u0026\u0026 !hasAny(tags, group.includeTagsAny)) return false;\n    return true;\n  }\n  function productImage(product, variant) {\n    if (variant \u0026\u0026 variant.featured_image) {\n      if (typeof variant.featured_image === 'string') return variant.featured_image;\n      if (variant.featured_image.src) return variant.featured_image.src;\n    }\n    if (product.featured_image) {\n      if (typeof product.featured_image === 'string') return product.featured_image;\n      if (product.featured_image.src) return product.featured_image.src;\n    }\n    if (product.images \u0026\u0026 product.images.length) {\n      var first = product.images[0];\n      return typeof first === 'string' ? first : first.src;\n    }\n    return '';\n  }\n  function variantLabel(product, variant) {\n    var title = variant \u0026\u0026 variant.title ? variant.title : 'Default Title';\n    return title === 'Default Title' ? product.title : title;\n  }\n  function itemLabel(item) {\n    return item.variantTitle === 'Default Title' ? item.productTitle : item.productTitle + ' - ' + item.variantTitle;\n  }\n  function expand(product, group) {\n    var variants = product.variants \u0026\u0026 product.variants.length ? product.variants : [{ id: product.id, title: 'Default Title', available: true }];\n    return variants.filter(function(v) { return v.available !== false; }).map(function(v) {\n      return {\n        productTitle: product.title,\n        handle: product.handle,\n        variantId: String(v.id),\n        variantTitle: variantLabel(product, v),\n        image: productImage(product, v),\n        groupKey: group.key\n      };\n    });\n  }\n  function fetchProducts(group) {\n    if (group.mode === 'all') {\n      return fetch('\/products.json?limit=250').then(function(r) { return r.json(); }).then(function(data) {\n        return (data.products || []).filter(function(p) { return passes(p, group); });\n      });\n    }\n    return Promise.all((group.handles || []).map(function(handle) {\n      return fetch('\/products\/' + handle + '.js').then(function(r) {\n        if (!r.ok) throw new Error('Could not load ' + handle);\n        return r.json();\n      });\n    })).then(function(products) {\n      return products.filter(function(p) { return passes(p, group); });\n    });\n  }\n  function countFor(group, item) {\n    return selected[group.key].filter(function(s) { return s.variantId === item.variantId; }).length;\n  }\n  function ready() {\n    return config.groups.every(function(group) { return selected[group.key].length === group.pickN; });\n  }\n  function refresh() {\n    config.groups.forEach(function(group) {\n      var container = root.querySelector('[data-group=\"' + group.key + '\"]');\n      if (!container) return;\n      container.querySelector('.kbv-count').textContent = selected[group.key].length + ' of ' + group.pickN + ' selected';\n      container.querySelectorAll('.kbv-card').forEach(function(card) {\n        var id = card.getAttribute('data-variant-id');\n        var qty = selected[group.key].filter(function(s) { return s.variantId === id; }).length;\n        card.classList.toggle('kbv-selected', qty \u003e 0);\n        card.querySelector('.kbv-check').textContent = qty \u003e 1 ? 'x' + qty : '1';\n      });\n    });\n    button.disabled = !ready();\n    status.textContent = ready() ? 'Ready to add your selected bundle.' : 'Choose all bundle items to continue.';\n  }\n  function toggle(group, item) {\n    var list = selected[group.key];\n    var idx = list.findIndex(function(s) { return s.variantId === item.variantId; });\n    if (group.allowRepeat) {\n      if (list.length \u003c group.pickN) {\n        list.push(item);\n      } else if (idx \u003e= 0) {\n        list.splice(idx, 1);\n      } else {\n        list.pop();\n        list.push(item);\n      }\n    } else if (idx \u003e= 0) {\n      list.splice(idx, 1);\n    } else {\n      if (list.length \u003e= group.pickN) list.pop();\n      list.push(item);\n    }\n    refresh();\n  }\n  function renderGroup(group, products) {\n    var section = document.createElement('section');\n    section.className = 'kbv-group';\n    section.setAttribute('data-group', group.key);\n    section.innerHTML = '\u003cdiv class=\"kbv-group-head\"\u003e\u003ch4\u003e' + group.label + 's\u003c\/h4\u003e\u003cspan class=\"kbv-count\"\u003e0 of ' + group.pickN + ' selected\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"kbv-grid\"\u003e\u003c\/div\u003e';\n    var grid = section.querySelector('.kbv-grid');\n    var items = [];\n    products.sort(function(a, b) { return a.title.localeCompare(b.title); }).forEach(function(product) {\n      items = items.concat(expand(product, group));\n    });\n    if (!items.length) {\n      grid.innerHTML = '\u003cdiv class=\"kbv-error\"\u003eNo eligible designs are available right now.\u003c\/div\u003e';\n      return section;\n    }\n    items.forEach(function(item) {\n      var card = document.createElement('button');\n      card.type = 'button';\n      card.className = 'kbv-card';\n      card.setAttribute('data-variant-id', item.variantId);\n      card.innerHTML = '\u003cspan class=\"kbv-check\"\u003e1\u003c\/span\u003e\u003cimg class=\"kbv-img\" src=\"' + item.image + '\u0026width=360\" loading=\"lazy\" alt=\"' + itemLabel(item).replace(\/\"\/g, '\u0026quot;') + '\"\u003e\u003cp class=\"kbv-name\"\u003e' + item.productTitle + '\u003c\/p\u003e\u003cp class=\"kbv-variant\"\u003e' + item.variantTitle + '\u003c\/p\u003e';\n      card.addEventListener('click', function() { toggle(group, item); });\n      grid.appendChild(card);\n    });\n    return section;\n  }\n  Promise.all(config.groups.map(function(group) {\n    return fetchProducts(group).then(function(products) { return renderGroup(group, products); });\n  })).then(function(sections) {\n    groupsEl.innerHTML = '';\n    sections.forEach(function(section) { groupsEl.appendChild(section); });\n    refresh();\n  }).catch(function(err) {\n    groupsEl.innerHTML = '\u003cdiv class=\"kbv-error\"\u003e' + (err \u0026\u0026 err.message ? err.message : 'Could not load bundle options.') + '\u003c\/div\u003e';\n  });\n  button.addEventListener('click', function() {\n    if (!ready()) return;\n    var defaultText = button.textContent;\n    var props = { 'Bundle': config.bundleTitle };\n    config.groups.forEach(function(group) {\n      selected[group.key].forEach(function(item, index) {\n        var prefix = group.label + ' ' + (index + 1);\n        props[prefix] = itemLabel(item);\n        props[prefix + ' Variant ID'] = item.variantId;\n      });\n    });\n    button.disabled = true;\n    button.textContent = 'Adding bundle...';\n    status.textContent = 'Adding your bundle to cart...';\n    fetch('\/cart\/add.js', {\n      method: 'POST',\n      credentials: 'same-origin',\n      headers: { 'Content-Type': 'application\/json', 'Accept': 'application\/json' },\n      body: JSON.stringify({ items: [{ id: config.variantId, quantity: 1, properties: props }] })\n    }).then(function(r) {\n      if (!r.ok) return r.json().catch(function() { return {}; }).then(function(data) {\n        throw new Error(data.description || data.message || 'Could not add this bundle.');\n      });\n      return r.json();\n    }).then(function() {\n      window.location.href = '\/cart';\n    }).catch(function(err) {\n      button.disabled = false;\n      button.textContent = defaultText;\n      status.textContent = err \u0026\u0026 err.message ? err.message : 'Could not add this bundle. Please refresh and try again.';\n    });\n  });\n})();\n\u003c\/script\u003e\n\u003cp\u003e\u003cem\u003eThis bundle is fulfilled from the selected Kap-Bak designs above. If a design has colors or styles, your exact choice is saved with the cart item.\u003c\/em\u003e\u003c\/p\u003e\n\u003c!-- KB_VARIANT_BUNDLE_PICKER_END --\u003e","brand":"Kap-Bak","offers":[{"title":"Default Title","offer_id":46750685954221,"sku":"BUNDLE-FLAG-3-COLOR","price":39.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0663\/8000\/5549\/files\/AF-Navy-Gold_Border_9920f624-3dc1-4d64-9d6d-c89029809e4e.jpg?v=1783176476"}],"url":"https:\/\/kap-bak.com\/collections\/patriotic-collection.oembed?page=2","provider":"Kap-Bak","version":"1.0","type":"link"}