{"title":"Volume pricing","description":"\u003cp\u003eProducts with automatic volume pricing: 3 or more cases save 5%, 6 or more cases save 8%. Applied automatically in the cart.\u003c\/p\u003e","products":[{"product_id":"3-5x5-clear-2-mil-document-envelopes-tamper-proof-case-of-1000","title":"3.5x5 Clear Packing List Envelopes, 2 Mil, 1000\/Case","description":"\u003cp\u003eSKU PL471 is a clear-face, back-loading packing-list envelope measuring 3.5 x 5 inches, made from 2 mil poly and supplied 1,000 per case. It attaches documents to a shipment.\u003c\/p\u003e\u003ch2\u003ePlan your order quantity\u003c\/h2\u003e\u003cp\u003e1,000 envelopes: 1 case; 5,000 envelopes: 5 cases; 10,000 envelopes: 10 cases.\u003c\/p\u003e\u003cp\u003eUse the current selling price and delivery estimate on this page. Checkout or your reviewed quote confirms the order total.\u003c\/p\u003e\u003ch2\u003eCheck the fit and application\u003c\/h2\u003e\u003cp\u003eCheck the folded document against the listed pouch size before ordering. Insert the document from the back before attaching the pouch. Test document readability and adhesion on the packaging surface you use.\u003c\/p\u003e\u003cp\u003e\u003ca href=\"\/pages\/bulk-quote?source=product-pl471\u0026amp;sku=PL471\u0026amp;product=3-5x5-clear-2-mil-document-envelopes-tamper-proof-case-of-1000\"\u003eRequest a bulk quote for SKU PL471\u003c\/a\u003e. Include quantity, delivery ZIP and required date, with a separate quantity for each item.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53400817631600,"sku":"PL471","price":54.42,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/Pl471_image_2.jpg?v=1775279616"},{"product_id":"9x12-heavy-duty-chipboard-pads-kraft-fibreboard-stiffeners-case-of-640","title":"9x12 Heavy Duty Chipboard Pads 640\/Case","description":"\u003cp\u003eProtect your shipments with 9x12 heavy duty chipboard pads made from sturdy kraft fibreboard, ideal for envelope stiffening and carton top protection against box cutter damage. Each case contains 640 pads of.030 point recycled fibreboard, delivering cost-effective durability for high-volume shippers.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53434806075760,"sku":"CPHD912","price":73.94,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/CPHD912.jpg?v=1774840702"},{"product_id":"12x12-heavy-duty-kraft-chipboard-pads-box-protection-case-of-490","title":"12x12 Kraft Heavy-Duty Chipboard Pads 490\/Case","description":"\u003cp\u003eProtect your shipments with these durable 12x12 kraft chipboard pads, the ideal envelope stiffener and box protector. Made from sturdy.030 point recycled fibreboard, they defend cartons from cuts and damage during transit. Each case includes 490 pads for reliable, cost-effective packaging protection.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53434822459760,"sku":"CPHD1212","price":73.94,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/CPHD1212.jpg?v=1774840712"},{"product_id":"3m-h183-3-pistol-grip-carton-sealing-tape-dispenser-metal-plastic","title":"3 in Metal\/Plastic 3M H183 Pistol Grip Carton Sealing Tape Dispenser","description":"\u003cp\u003e3M H183 3\" Pistol Grip Carton Sealing Tape Dispenser - Metal\/Plastic. The 3M H183 pistol grip tape dispenser delivers fast, consistent center seam closure on standard cartons with minimal operator fatigue. Built from durable metal and high-impact plastic, this dispenser features an adjustable brake system that ensures tight, uniform tape tension across every seal, critical for packing line supervisors running high-volume operations.\u003c\/p\u003e\n\u003c!-- PACKRIFT-CATALOG-DISAMBIG-20260712 --\u003e\n\u003cp\u003eThis listing is one specification only: 3M H183 3\" Pistol Grip Carton Sealing Tape Dispenser, Metal\/Plastic. Packrift publishes no color options for this product; it is one product, not a black, white color range.\u003c\/p\u003e","brand":"3M","offers":[{"title":"Default Title","offer_id":53435887223152,"sku":"TD3MH183","price":131.2,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/TD3MH183.jpg?v=1774841656"},{"product_id":"3-16-adhesive-bubble-wrap-roll-175-self-stick-protective-packaging","title":"3\/16 in Adhesive Bubble Wrap Roll 175 ft","description":"\u003cp\u003eThe 3\/16\" Adhesive Bubble Wrap Roll 175' - Self-Stick Protective Packaging is a bubble cushioning material for wrapping, interleaving, void fill, surface protection, and shipment cushioning. Listed specs include size 3\/16\"; bubble material; Roll 175. Use it to cushion, wrap, separate, or fill space around products when the roll, sheet, or shipper size fits the packing job.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-VOID-FILL-USECASE-R01 bucket=bubble_wrap_rolls --\u003e\n\u003cp\u003e\u003cstrong\u003eBubble wrap rolls:\u003c\/strong\u003e Good fit for fragile ecommerce shipments, glassware, cosmetics, home goods, returns, and general protective cushioning before boxing. This void-fill and cushioning material helps warehouse, fulfillment, ecommerce, and shipping teams protect products, fill empty carton space, reduce movement in transit, and choose the right paper, bubble, foam, or loose-fill option for outbound orders.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53437357490544,"sku":"BDAD31612","price":84.84,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/BDAD31612.jpg?v=1774843745"},{"product_id":"1-8-x-24-x-175-polyethylene-air-foam-dispenser-roll-premium-cushioning","title":"1\/8 in x 24 in x 175 ft Polyethylene Air Foam Dispenser Roll","description":"\u003cp\u003eair foam cushioning in a convenient 175 '  dispenser roll for high-volume shippers. Cross-perforated at 12 \"  intervals for fast tear-off and minimal waste. Lightweight polyethylene foam keeps fragile items protected while reducing shipping weight and costs.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-VOID-FILL-USECASE-R01 bucket=foam_wrap_sheets --\u003e\n\u003cp\u003e\u003cstrong\u003eFoam wrap and foam sheets:\u003c\/strong\u003e Good fit for surface protection, fragile finishes, electronics, parts, furniture components, and scratch-sensitive products. This void-fill and cushioning material helps warehouse, fulfillment, ecommerce, and shipping teams protect products, fill empty carton space, reduce movement in transit, and choose the right paper, bubble, foam, or loose-fill option for outbound orders.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53437357949296,"sku":"FD1824","price":77.22,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/FD1824.jpg?v=1774843784"},{"product_id":"4x4-75-un3373-biological-substance-category-b-labels-semi-gloss-roll-of-500","title":"4x4.75 UN3373 Biological Substance Category B Labels Semi-Gloss 500\/Roll","description":"\u003cp\u003eThese 4 \"  x 4 3\/4 \"  semi-gloss coated paper labels come in rolls of 500 and are compatible with both tabletop and wall-mounted dispensers for high-volume operations.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-LABELS-USECASE-R01 bucket=hazmat_dot_compliance_labels --\u003e\n\u003cp\u003e\u003cstrong\u003eHazmat and DOT compliance labels:\u003c\/strong\u003e Good fit for regulated shipments, hazmat cartons, lithium battery shipments, DOT markings, warehouse compliance, and outbound carrier handoff. These labels help shipping, warehouse, ecommerce, compliance, and fulfillment teams match the right label format to cartons, pallets, paperwork, printer type, and outbound shipping workflows.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53437432758640,"sku":"DL1404","price":27.89,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/DL1404.jpg?v=1774843862"},{"product_id":"5-8-x-2-semi-gloss-sensitive-electronic-devices-labels-500-roll","title":"5\/8 x 2 in Semi-Gloss Sensitive Electronic Devices Labels 500\/Roll","description":"\u003cp\u003eProtect your sensitive electronic shipments with internationally recognized 5\/8 \"  x 2 \"  anti-static labels. Semi-gloss coated paper resists smudging and fading during transit. Roll of 500 labels, stock now with compatible tabletop and wall-mount dispensers for immediate deployment.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-LABELS-USECASE-R01 bucket=general_shipping_warehouse_labels --\u003e\n\u003cp\u003e\u003cstrong\u003eShipping and warehouse labels:\u003c\/strong\u003e Good fit for carton labeling, warehouse handling, inventory identification, shipping documentation, and fulfillment workflows. These labels help shipping, warehouse, ecommerce, compliance, and fulfillment teams match the right label format to cartons, pallets, paperwork, printer type, and outbound shipping workflows.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53438557880688,"sku":"DL9050","price":7.34,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/DL9050.jpg?v=1774844553"},{"product_id":"18-250-uv-stabilized-black-cable-ties-professional-grade-case-of-100","title":"18 in 250# Black UV Stabilized Cable Ties 100\/Case","description":"\u003cp\u003eHeavy-duty 18 \"  black cable ties rated for 250 lbs tensile strength with UV stabilization for outdoor and extended sunlight exposure. Sold by the case of 100 ties.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53439921258864,"sku":"CTUV18250","price":61.87,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/CTUV18250.jpg?v=1774846022"},{"product_id":"1-clear-perforated-circle-mailing-labels-polystyrene-5000-roll","title":"1 in Clear Perforated Circle Mailing Labels 5000\/Roll","description":"\u003cp\u003e1\" Clear Perforated Circle Mailing Labels - Polystyrene, 5000\/Roll. Transparent 1\" diameter circle mailing labels with perforated edges for effortless opening on envelopes and small boxes. Made from durable polystyrene with 5,000 labels per roll. Your graphics display clearly through the clear material while maintaining professional closure and tamper-evident sealing.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-LABELS-USECASE-R01 bucket=warehouse_inventory_labels --\u003e\n\u003cp\u003e\u003cstrong\u003eWarehouse and inventory labels:\u003c\/strong\u003e Good fit for inventory control, bin locations, warehouse color coding, receiving, order routing, mixed cartons, and stockroom workflows. These labels help shipping, warehouse, ecommerce, compliance, and fulfillment teams match the right label format to cartons, pallets, paperwork, printer type, and outbound shipping workflows.\u003c\/p\u003e\n\u003c!-- PACKRIFT-CATALOG-DISAMBIG-20260712 --\u003e\n\u003cp\u003eThis listing is one specification only: 1\" Clear Perforated Circle Mailing Labels, Polystyrene, 5000\/Roll. It is the titled size only; it is not sold in other roll or sheet sizes (1.5, 1000) under this SKU.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53442748481904,"sku":"DL703","price":30.42,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/DL703.jpg?v=1774848328"},{"product_id":"10x13-clear-view-poly-mailers-2-5-mil-self-seal-case-of-100","title":"10x13 2.5 Mil Clear Self-Seal Poly Mailers 100\/Case","description":"\u003cp\u003eThe 10x13\" Clear View Poly Mailers, 2.5 Mil Self-Seal is a shipping mailer for documents, catalogs, apparel, small parts, photos, and lightweight e-commerce orders. Listed specs include size 10\" x 13\"; poly material; 2.5 Mil; case of 100. Use it as a mailing envelope, poly mailer, padded mailer, or flat document shipper when the item fits the listed size.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-MAILER-USECASE-R01 bucket=poly_mailers --\u003e\n\u003cp\u003e\u003cstrong\u003ePoly mailers:\u003c\/strong\u003e Good fit for shipping clothing, apparel, accessories, documents, returns, and other lightweight non-fragile ecommerce orders. These mailers help ecommerce teams and small businesses choose protective, right-sized packaging for common fulfillment workflows.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53443315761520,"sku":"CV1013100PK","price":25.97,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/CV1013100PK.jpg?v=1774848690"},{"product_id":"10x13-black-poly-mailers-2-5-mil-self-seal-professional-shipping-case-of-100","title":"10x13 2.5 Mil Black Self-Seal Poly Mailers 100\/Case","description":"\u003cp\u003eThe 10x13 Black Poly Mailers 2.5 Mil Self-Seal is a shipping mailer for documents, catalogs, apparel, small parts, photos, and lightweight e-commerce orders. Listed specs include size 10\" x 13\"; poly material; 2.5 Mil; case of 100. Use it as a mailing envelope, poly mailer, padded mailer, or flat document shipper when the item fits the listed size.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-MAILER-USECASE-R01 bucket=poly_mailers --\u003e\n\u003cp\u003e\u003cstrong\u003ePoly mailers:\u003c\/strong\u003e Good fit for shipping clothing, apparel, accessories, documents, returns, and other lightweight non-fragile ecommerce orders. These mailers help ecommerce teams and small businesses choose protective, right-sized packaging for common fulfillment workflows.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53443740828016,"sku":"CPM1013BK","price":25.97,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/CPM1013BK.jpg?v=1774849298"},{"product_id":"14-5x19-pink-self-seal-poly-mailers-2-5-mil-100-case","title":"14.5x19 2.5 Mil Pink Self-Seal Poly Mailers 100\/Case","description":"\u003cp\u003eThe 14.5x19 Pink Self-Seal Poly Mailers 2.5 Mil is a shipping mailer for documents, catalogs, apparel, small parts, photos, and lightweight e-commerce orders. Listed specs include size 14.5\" x 19\"; poly material; 2.5 Mil; case of 100. Use it as a mailing envelope, poly mailer, padded mailer, or flat document shipper when the item fits the listed size.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-MAILER-USECASE-R01 bucket=large_poly_mailers --\u003e\n\u003cp\u003e\u003cstrong\u003eLarge poly mailers:\u003c\/strong\u003e Good fit for shipping clothing, apparel, soft goods, returns, catalog packs, and other non-fragile ecommerce orders. These mailers help ecommerce teams and small businesses choose protective, right-sized packaging for common fulfillment workflows.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53443870884208,"sku":"CPM1419P","price":51.94,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/CPM1419P.jpg?v=1774849374"},{"product_id":"1-x-1-5-consecutive-numbered-labels-500-roll-black-paper","title":"1x1.5 Black Consecutive Numbered Labels Paper 500\/Roll DL1241","description":"\u003cp\u003ePressure-sensitive consecutive numbered labels with bold 1\/2 \"  black numbers on white background. Ideal for inventory control, product tracking, and skid numbering. 1 \"  x 1.5 \"  white paper labels, 500-count roll.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-LABELS-USECASE-R01 bucket=general_shipping_warehouse_labels --\u003e\n\u003cp\u003e\u003cstrong\u003eShipping and warehouse labels:\u003c\/strong\u003e Good fit for carton labeling, warehouse handling, inventory identification, shipping documentation, and fulfillment workflows. These labels help shipping, warehouse, ecommerce, compliance, and fulfillment teams match the right label format to cartons, pallets, paperwork, printer type, and outbound shipping workflows.\u003c\/p\u003e\n\u003c!-- PACKRIFT-CATALOG-DISAMBIG-20260712 --\u003e\n\u003cp\u003eThis listing is one specification only: 1\" x 1.5\" Consecutive Numbered Labels, 500\/Roll Black Paper. It is plain and unprinted; it carries no text (numbers) under this SKU.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53444758241648,"sku":"DL1241","price":21.97,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/DL1241.jpg?v=1774850021"},{"product_id":"18x12x12-insulated-box-liners-aluminum-foil-bubble-case-of-25","title":"18x12x12 Insulated Box Liners 15\/Case","description":"\u003cp\u003e18x12x12 Insulated Box Liners - Aluminum Foil Bubble, Case of 15. Create professional insulated shipping containers with these one-piece gusseted 18x12x12 liners. Aluminum foil exterior with 3\/16\" bubble lining provides reliable thermal protection and leak resistance. FDA-compliant materials rated for food contact; sold in convenient cases of 15.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53444833804656,"sku":"INL181212","price":185.54,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/INL181212.jpg?v=1774850266"},{"product_id":"14x4x52-ect-32-side-loading-boxes-full-overlap-fol-bundle-of-15","title":"14x4x52 ECT-32 Full Overlap FOL Side Loading Boxes 15-Pack","description":"\u003cp\u003eThe 14x4x52 ECT-32 Side Loading Boxes - Full Overlap FOL is a side-loading corrugated shipping box for flat or narrow items such as framed prints, signs, panels, trim, shelves, and low-profile parts. Listed specs include inside dimensions 14\" x 4\" x 52\"; corrugated material; ECT-32; bundle of 15. The side-loading opening lets flat products slide in across the long face instead of through a small end.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53445617746288,"sku":"14452FOL","price":106.86,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/14452FOL.jpg?v=1774850675"},{"product_id":"36x22x22-double-wall-ect-51-corrugated-boxes-heavy-duty-shipping-bundle-of-5","title":"36x22x22 ECT-51 Double Wall Corrugated Boxes 5-Pack","description":"\u003cp\u003eThe 36x22x22 Double Wall ECT-51 Corrugated Boxes is a corrugated shipping box for e-commerce orders, parts, samples, retail goods, returns, and warehouse shipments. Listed specs include inside dimensions 36\" x 22\" x 22\"; corrugated material; ECT-51, double-wall; 22 box. Use it as a shipping carton, mailing box, storage box, or e-commerce shipper when the item fits the listed dimensions.\u003c\/p\u003e \u003cp\u003eIdeal for shipping bulky items, moving supplies, large equipment, and bulk fulfillment. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=large --\u003e\n\u003cp\u003e\u003cstrong\u003eLarge shipping boxes:\u003c\/strong\u003e Good fit for shipping bulky household goods, moving supplies, large equipment, soft goods, and bulk fulfillment. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53445945360752,"sku":"AF362222","price":75.61,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/AF362222.jpg?v=1774850891"},{"product_id":"32x18x8-ect-32-kraft-corrugated-boxes-bundle-of-15","title":"32x18x8 ECT-32 Kraft Corrugated Shipping Boxes 15-Pack","description":"\u003cp\u003eThe 32x18x8 ECT-32 Kraft Corrugated Boxes is a corrugated shipping box for e-commerce orders, parts, samples, retail goods, returns, and warehouse shipments. Listed specs include inside dimensions 32\" x 18\" x 8\"; kraft material; ECT-32; bundle of 15. Use it as a shipping carton, mailing box, storage box, or e-commerce shipper when the item fits the listed dimensions.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53446585188720,"sku":"32188","price":60.72,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/32188.jpg?v=1774851541"},{"product_id":"36x8x30-ect-44-kraft-side-loading-boxes-bundle-of-10","title":"36x8x30 ECT-44 Kraft Side Loading Boxes 10-Pack","description":"\u003cp\u003eThe 36x8x30 ECT-44 Kraft Side Loading Boxes is a side-loading corrugated shipping box for flat or narrow items such as framed prints, signs, panels, trim, shelves, and low-profile parts. Listed specs include inside dimensions 36\" x 8\" x 30\"; kraft material; ECT-44; bundle of 10. The side-loading opening lets flat products slide in across the long face instead of through a small end.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53447225606512,"sku":"HD36830FOL","price":124.47,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/HD36830FOL.jpg?v=1774852014"},{"product_id":"24x20x18-ect-32-kraft-corrugated-boxes-heavy-duty-shipping-bundle-of-10","title":"24x20x18 ECT-32 Kraft Corrugated Boxes 10-Pack","description":"\u003cp\u003eThe 24x20x18\" ECT-32 Kraft Corrugated Boxes is a corrugated shipping box for e-commerce orders, parts, samples, retail goods, returns, and warehouse shipments. Listed specs include inside dimensions 24\" x 20\" x 18\"; kraft material; ECT-32; bundle of 10. Use it as a shipping carton, mailing box, storage box, or e-commerce shipper when the item fits the listed dimensions.\u003c\/p\u003e \u003cp\u003eIdeal for shipping bulky items, moving supplies, large equipment, and bulk fulfillment. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=large --\u003e\n\u003cp\u003e\u003cstrong\u003eLarge shipping boxes:\u003c\/strong\u003e Good fit for shipping bulky household goods, moving supplies, large equipment, soft goods, and bulk fulfillment. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53447484014960,"sku":"242018","price":48.03,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/242018.jpg?v=1774852353"},{"product_id":"18x18x24-ect-32-kraft-corrugated-boxes-bundle-of-15","title":"18x18x24 ECT-32 Kraft Corrugated Shipping Boxes 15-Pack","description":"\u003cp\u003eThe 18x18x24 ECT-32 Kraft Corrugated Boxes is a corrugated shipping box for e-commerce orders, parts, samples, retail goods, returns, and warehouse shipments. Listed specs include inside dimensions 18\" x 18\" x 24\"; kraft material; ECT-32; bundle of 15. Use it as a shipping carton, mailing box, storage box, or e-commerce shipper when the item fits the listed dimensions.\u003c\/p\u003e \u003cp\u003eIdeal for shipping bulky items, moving supplies, large equipment, and bulk fulfillment. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=large --\u003e\n\u003cp\u003e\u003cstrong\u003eLarge shipping boxes:\u003c\/strong\u003e Good fit for shipping bulky household goods, moving supplies, large equipment, soft goods, and bulk fulfillment. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53447732560240,"sku":"181824","price":54.08,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/181824.jpg?v=1774852487"},{"product_id":"24x18x12-ect-48-double-wall-kraft-corrugated-shipping-boxes-bundle-of-10","title":"24x18x12 ECT-48 Kraft Double Wall Corrugated Shipping Boxes 10-Pack","description":"\u003cp\u003eThe 24x18x12 ECT-48 Double Wall Kraft Corrugated Shipping Boxes is a corrugated shipping box for e-commerce orders, parts, samples, retail goods, returns, and warehouse shipments. Listed specs include inside dimensions 24\" x 18\" x 12\"; kraft material; ECT-48, double-wall; bundle of 10. Use it as a shipping carton, mailing box, storage box, or e-commerce shipper when the item fits the listed dimensions.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53447790068080,"sku":"HD241812DW","price":62.43,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/HD241812DW.jpg?v=1774852520"},{"product_id":"36x6x6-ect-32-kraft-corrugated-boxes-long-format-shipping-bundle-of-25","title":"36x6x6 ECT-32 Kraft Corrugated Shipping Boxes 25-Pack","description":"\u003cp\u003eThe 36\" x 6\" x 6\" ECT-32 kraft corrugated shipping box is for e-commerce orders, parts, samples, retail goods, returns, and warehouse shipments. Listed dimensions are 36\" x 6\" x 6\"; board and format details include ECT-32, single wall; sold in a bundle of 25; listed weight 19.2 lb. For fit checks, measure the packed item against the 36\" x 6\" x 6\" inside dimensions before choosing this corrugated carton.\u003c\/p\u003e \u003cp\u003eIdeal for shipping posters, rods, artwork, banners, lighting, and rolled goods. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=long --\u003e\n\u003cp\u003e\u003cstrong\u003eLong shipping boxes:\u003c\/strong\u003e Good fit for shipping posters, rods, artwork, banners, lighting parts, and other long items. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53448118468976,"sku":"3666","price":59.7,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/3666.jpg?v=1774852691"},{"product_id":"20x14x3-ect-32-kraft-corrugated-boxes-shallow-depth-shipping-bundle-of-25","title":"20x14x3 ECT-32 Kraft Corrugated Boxes 25-Pack","description":"\u003cdiv id=\"pr-product-packs\" class=\"pr-experience\" data-packrift-release=\"PACKRIFT-BUYER-GROWTH-20261003\" data-pr-buyer-sku=\"20143\" data-pr-buyer-cohort=\"20261003\" data-pr-config='{\"sku\":\"20143\",\"handle\":\"20x14x3-ect-32-kraft-corrugated-boxes-shallow-depth-shipping-bundle-of-25\",\"dimensions\":[20.0,14.0,3.0],\"dimensionBasis\":\"listed\",\"packCount\":25,\"unit\":\"bundle\",\"pieceLabel\":\"boxes\",\"specSummary\":\"20 \\u00d7 14 \\u00d7 3 in. listed dimensions; ECT-32 Single Wall Corrugated; Kraft; 25 boxes per bundle\"}'\u003e\n\u003cp class=\"prp-summary\"\u003eSKU 20143 is a kraft corrugated shipping box with listed dimensions of 20 × 14 × 3 inches. Each bundle contains 25 boxes. Listed construction: ECT-32 Single Wall Corrugated.\u003c\/p\u003e\n\u003cspan hidden aria-hidden=\"true\"\u003eProduct fit and specs\u003c\/span\u003e\n\u003csection class=\"prp-hero\" aria-labelledby=\"prp-overview-title\"\u003e\u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003eSKU 20143 · the packing plan\u003c\/div\u003e\n\u003ch2 id=\"prp-overview-title\"\u003eLess depth.\u003cbr\u003eA clearer packing plan.\u003c\/h2\u003e\n\u003cp\u003e20 × 14 × 3 inches. 25 boxes per bundle. Compare the measurements, work out your quantity, and carry an exact requirement into your quote.\u003c\/p\u003e\n\u003cnav class=\"prp-jumps\" aria-label=\"Product buying tools\"\u003e\u003ca href=\"#prp-pack-planner\"\u003ePlan my bundles\u003c\/a\u003e\u003cspan aria-hidden=\"true\"\u003e\/\u003c\/span\u003e\u003ca href=\"#prp-fit-check\"\u003eCheck my dimensions\u003c\/a\u003e\u003c\/nav\u003e\n\u003c\/div\u003e\n\u003cfigure class=\"prp-figure\"\u003e\u003csvg viewbox=\"0 0 440 350\" role=\"img\" aria-labelledby=\"pr-drawing-title pr-drawing-desc\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003ctitle id=\"pr-drawing-title\"\u003e20 × 14 × 3 inch carton dimension diagram\u003c\/title\u003e\n\u003cdesc id=\"pr-drawing-desc\"\u003eListed dimensions: length 20, width 14, height 3 inches. Schematic, not to scale.\u003c\/desc\u003e\u003cellipse cx=\"232\" cy=\"307\" rx=\"170\" ry=\"19\" fill=\"#e0e6d6\"\u003e\u003c\/ellipse\u003e\u003cpath d=\"M65 128 L287 80 L387 147 L165 199 Z\" fill=\"#cdeb6b\" stroke=\"#102d35\" stroke-width=\"2\"\u003e\u003c\/path\u003e\u003cpath d=\"M65 128 L165 199 L165 284 L65 213 Z\" fill=\"#8ea795\" stroke=\"#102d35\" stroke-width=\"2\"\u003e\u003c\/path\u003e\u003cpath d=\"M165 199 L387 147 L387 232 L165 284 Z\" fill=\"#2e6964\" stroke=\"#102d35\" stroke-width=\"2\"\u003e\u003c\/path\u003e\u003cpath d=\"M174 112 L275 173\" fill=\"none\" stroke=\"#102d35\" stroke-width=\"2\" stroke-dasharray=\"6 5\"\u003e\u003c\/path\u003e\u003cg stroke=\"#102d35\" fill=\"none\" stroke-width=\"1.5\"\u003e\u003cpath d=\"M167 318 L390 266 M162 312 L170 324 M386 260 L394 272\"\u003e\u003c\/path\u003e\u003cpath d=\"M42 140 L42 209 M36 140 L48 140 M36 209 L48 209\"\u003e\u003c\/path\u003e\u003cpath d=\"M300 60 L407 132 M295 65 L305 55 M402 137 L412 127\"\u003e\u003c\/path\u003e\u003c\/g\u003e\u003cg fill=\"#102d35\" font-family=\"Arial,sans-serif\" font-size=\"14\" font-weight=\"700\"\u003e\u003ctext x=\"280\" y=\"329\" text-anchor=\"middle\"\u003e20 in. length\u003c\/text\u003e\u003ctext x=\"24\" y=\"220\" text-anchor=\"middle\" transform=\"rotate(-90 24 220)\"\u003e3 in. height\u003c\/text\u003e\u003ctext x=\"345\" y=\"48\" text-anchor=\"middle\"\u003e14 in. width\u003c\/text\u003e\u003c\/g\u003e\u003crect x=\"66\" y=\"41\" rx=\"14\" width=\"64\" height=\"29\" fill=\"#102d35\"\u003e\u003c\/rect\u003e\u003ctext x=\"98.0\" y=\"60\" text-anchor=\"middle\" fill=\"#cdeb6b\" font-family=\"Arial,sans-serif\" font-size=\"12\" font-weight=\"700\"\u003e20143\u003c\/text\u003e\u003c\/svg\u003e\u003cfigcaption\u003eListed dimensions · schematic, not to scale\u003c\/figcaption\u003e\u003c\/figure\u003e\u003c\/section\u003e\n\u003cdiv class=\"prp-strip\" aria-label=\"Product essentials\"\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e20 × 14 × 3\u003c\/strong\u003e\u003cspan\u003eListed dimensions, in. · L × W × H\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e25 boxes\u003c\/strong\u003e\u003cspan\u003eOne bundle · one order increment\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eECT-32 Single Wall Corrugated\u003c\/strong\u003e\u003cspan\u003eKraft · shipping carton\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003csection id=\"prp-pack-planner\" class=\"prp-section\" aria-labelledby=\"prp-pack-title\"\u003e\u003cdiv class=\"prp-section-head\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003e01 \/ order the right quantity\u003c\/div\u003e\n\u003ch3 id=\"prp-pack-title\"\u003ePieces needed. Bundles ordered.\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cp\u003eThe cart quantity counts bundles. Round your requirement up to complete bundles of 25 boxes.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-planner\" data-js-only\u003e\n\u003cdiv class=\"prp-inputs\"\u003e\u003cform id=\"pr-pack-form\" novalidate\u003e\n\u003clabel for=\"pr-pack-count\"\u003eHow many individual boxes do you need?\u003c\/label\u003e\u003cinput id=\"pr-pack-count\" type=\"number\" min=\"1\" max=\"1000000\" step=\"1\" value=\"100\" inputmode=\"numeric\" aria-describedby=\"pr-pack-help pr-pack-status\"\u003e\u003cdiv class=\"prp-presets\" aria-label=\"Common quantities\"\u003e\n\u003cbutton type=\"button\" data-pack-preset=\"100\"\u003e100 boxes\u003c\/button\u003e\u003cbutton type=\"button\" data-pack-preset=\"500\"\u003e500 boxes\u003c\/button\u003e\u003cbutton type=\"button\" data-pack-preset=\"1000\"\u003e1,000 boxes\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cbutton class=\"prp-btn\" type=\"submit\"\u003eCalculate my bundles →\u003c\/button\u003e\u003cp id=\"pr-pack-help\" class=\"prp-help\"\u003eQuantity planning only. Confirm the current price, availability and delivered total for your order.\u003c\/p\u003e\n\u003cp id=\"pr-pack-status\" class=\"prp-status\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"\u003e\u003c\/p\u003e\n\u003c\/form\u003e\u003c\/div\u003e\n\u003cdiv class=\"prp-output\"\u003e\u003cdiv id=\"pr-pack-result\"\u003e\n\u003cdiv class=\"prp-kicker\"\u003eYour complete-bundle plan\u003c\/div\u003e\n\u003cdiv class=\"prp-big-number\"\u003e\n\u003cstrong id=\"pr-pack-bundles\"\u003e4\u003c\/strong\u003e\u003cspan\u003ebundles\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdl\u003e\n\u003cdt\u003eBoxes you asked for\u003c\/dt\u003e\n\u003cdd id=\"pr-pack-requested\"\u003e100\u003c\/dd\u003e\n\u003cdt\u003eTotal boxes in your order\u003c\/dt\u003e\n\u003cdd id=\"pr-pack-total\"\u003e100\u003c\/dd\u003e\n\u003cdt\u003eExtra pieces from rounding\u003c\/dt\u003e\n\u003cdd id=\"pr-pack-extra\"\u003e0\u003c\/dd\u003e\n\u003c\/dl\u003e\n\u003ca id=\"pr-pack-quote\" class=\"prp-btn prp-btn--mint\" href=\"\/pages\/bulk-quote?source=product-20143-planner\u0026amp;page=20x14x3-ect-32-kraft-corrugated-boxes-shallow-depth-shipping-bundle-of-25\u0026amp;spec=SKU+20143+%E2%80%94+4+bundles+of+25+boxes+%28100+boxes+total%29\"\u003eQuote my 4-bundle plan →\u003c\/a\u003e\u003cp class=\"prp-help\"\u003eYour SKU and planned quantity carry into the quote request. Add your delivery ZIP, timing and receiving details there.\u003c\/p\u003e\n\u003cbutton id=\"pr-pack-copy\" class=\"prp-copy\" type=\"button\"\u003eCopy the order plan\u003c\/button\u003e\u003ctextarea id=\"pr-pack-brief\" hidden readonly aria-label=\"Order plan to copy\"\u003e\u003c\/textarea\u003e\n\u003c\/div\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-table-wrap\"\u003e\u003ctable\u003e\n\u003ccaption style=\"text-align:left;padding:14px 18px;font-weight:700\"\u003eQuick quantity reference\u003c\/caption\u003e\n\u003cthead\u003e\u003ctr\u003e\n\u003cth scope=\"col\"\u003eBoxes needed\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eBundles to order\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eBoxes supplied\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e25\u003c\/td\u003e\n\u003ctd\u003e1\u003c\/td\u003e\n\u003ctd\u003e25\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100\u003c\/td\u003e\n\u003ctd\u003e4\u003c\/td\u003e\n\u003ctd\u003e100\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e101\u003c\/td\u003e\n\u003ctd\u003e5\u003c\/td\u003e\n\u003ctd\u003e125\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e500\u003c\/td\u003e\n\u003ctd\u003e20\u003c\/td\u003e\n\u003ctd\u003e500\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e1,000\u003c\/td\u003e\n\u003ctd\u003e40\u003c\/td\u003e\n\u003ctd\u003e1,000\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\u003c\/div\u003e\n\u003cnoscript\u003e\u003cp class=\"prp-help\"\u003eDivide the number of boxes you need by 25 and round up to a whole bundle. \u003ca href=\"\/pages\/bulk-quote?source=product-20143\u0026amp;page=20x14x3-ect-32-kraft-corrugated-boxes-shallow-depth-shipping-bundle-of-25\u0026amp;spec=SKU+20143+%E2%80%94+20+%C3%97+14+%C3%97+3+in.%3B+25+boxes+per+bundle.+Quantity+to+confirm.\"\u003eRequest a quote for SKU 20143\u003c\/a\u003e.\u003c\/p\u003e\u003c\/noscript\u003e\u003c\/section\u003e\n\u003csection id=\"prp-fit-check\" class=\"prp-section\" aria-labelledby=\"prp-fit-title\"\u003e\u003cdiv class=\"prp-section-head\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003e02 \/ check the packed item\u003c\/div\u003e\n\u003ch3 id=\"prp-fit-title\"\u003eCompare the listed envelope.\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cp\u003eMeasure the whole item, including protrusions and the protection you plan to use.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-fit-grid\"\u003e\n\u003cdiv\u003e\n\u003cp class=\"prp-warning\"\u003eUsable inside dimensions are not confirmed. Compare the listed envelope below, then confirm internal space and closure clearance before ordering.\u003c\/p\u003e\n\u003cp id=\"pr-fit-help\"\u003eEnter inches as decimals or fractions, such as 3.5 or 3 1\/2. The checker tries all six axis-aligned orientations and adds your cushioning allowance to both sides of each dimension.\u003c\/p\u003e\n\u003cform id=\"pr-fit-form\" novalidate data-js-only\u003e\n\u003cdiv class=\"prp-fields\"\u003e\n\u003cdiv\u003e\n\u003clabel for=\"pr-fit-l\"\u003eItem length (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-l\" type=\"text\" inputmode=\"decimal\" value=\"19.375\" aria-describedby=\"pr-fit-help\"\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003clabel for=\"pr-fit-w\"\u003eItem width (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-w\" type=\"text\" inputmode=\"decimal\" value=\"13.375\" aria-describedby=\"pr-fit-help\"\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003clabel for=\"pr-fit-h\"\u003eItem height (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-h\" type=\"text\" inputmode=\"decimal\" value=\"2.375\" aria-describedby=\"pr-fit-help\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-field-wide\"\u003e\n\u003clabel for=\"pr-fit-pad\"\u003eCushioning per side (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-pad\" type=\"text\" inputmode=\"decimal\" value=\"0.25\" aria-describedby=\"pr-fit-padding-help\"\u003e\u003cp id=\"pr-fit-padding-help\" class=\"prp-help\"\u003e0.25 in. per side adds 0.5 in. to each dimension. This is your planning allowance, not a recommended protection level.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbutton type=\"submit\" class=\"prp-btn\"\u003eCompare the listed envelope →\u003c\/button\u003e\u003cp id=\"pr-fit-status\" class=\"prp-status\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"\u003e\u003c\/p\u003e\n\u003c\/form\u003e\n\u003cnoscript\u003e\u003cp class=\"prp-help\"\u003eCompare the packed item with the listed dimensions: 20 × 14 × 3 in. Include cushioning on both sides.\u003c\/p\u003e\u003c\/noscript\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv id=\"pr-fit-result\" class=\"prp-fit-result\" hidden\u003e\n\u003cdiv class=\"prp-kicker\"\u003eDimensional comparison\u003c\/div\u003e\n\u003cp class=\"prp-warning\"\u003eUsable inside dimensions are not confirmed. Compare the listed envelope below, then confirm internal space and closure clearance before ordering.\u003c\/p\u003e\n\u003ch3 id=\"pr-fit-verdict\"\u003e\u003c\/h3\u003e\n\u003cdl\u003e\n\u003cdt\u003eItem orientation for comparison\u003c\/dt\u003e\n\u003cdd id=\"pr-fit-orientation\"\u003e\u003c\/dd\u003e\n\u003cdt\u003eEnvelope including cushioning\u003c\/dt\u003e\n\u003cdd id=\"pr-fit-envelope\"\u003e\u003c\/dd\u003e\n\u003c\/dl\u003e\n\u003cp id=\"pr-fit-note\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-fit-result\"\u003e\n\u003cdiv class=\"prp-kicker\"\u003eBefore you commit\u003c\/div\u003e\n\u003ch3\u003eCheck the complete\u003cbr\u003epacked item.\u003c\/h3\u003e\n\u003cp\u003eAllow for inserts, protrusions and dimensional tolerances. Test a physical packed sample for tight fits. Board grade alone does not establish a contents-weight or stacking-height limit.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"prp-section\" aria-labelledby=\"prp-spec-title\"\u003e\u003cdiv class=\"prp-section-head\"\u003e\u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003e03 \/ keep the specification clear\u003c\/div\u003e\n\u003ch3 id=\"prp-spec-title\"\u003eYour order, by the details.\u003c\/h3\u003e\n\u003c\/div\u003e\u003c\/div\u003e\n\u003cdl class=\"prp-spec-list\"\u003e\n\u003cdt\u003eSKU\u003c\/dt\u003e\n\u003cdd\u003e20143\u003c\/dd\u003e\n\u003cdt\u003eListed dimensions\u003c\/dt\u003e\n\u003cdd\u003e20 × 14 × 3 in.\u003c\/dd\u003e\n\u003cdt\u003eOrder increment\u003c\/dt\u003e\n\u003cdd\u003e25 boxes per bundle\u003c\/dd\u003e\n\u003cdt\u003eListed construction\u003c\/dt\u003e\n\u003cdd\u003eECT-32 Single Wall Corrugated\u003c\/dd\u003e\n\u003cdt\u003eColor\u003c\/dt\u003e\n\u003cdd\u003eKraft\u003c\/dd\u003e\n\u003c\/dl\u003e\n\u003cdiv class=\"prp-checklist\"\u003e\n\u003cdiv\u003e\n\u003cb\u003e01 \/ THE ITEM\u003c\/b\u003e\u003ch3\u003eMeasure it packed.\u003c\/h3\u003e\n\u003cp\u003eUse all three dimensions of the packed item. Allow for protection at the ends as well as along the sides.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cb\u003e02 \/ THE HANDLING\u003c\/b\u003e\u003ch3\u003eMatch the protection.\u003c\/h3\u003e\n\u003cp\u003eConsider weight, fragility, stacking and handling. Check the assembled package for your shipment; dimensions alone do not establish protection.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cb\u003e03 \/ THE DESTINATION\u003c\/b\u003e\u003ch3\u003eInclude delivery details.\u003c\/h3\u003e\n\u003cp\u003eSend the quantity, delivery ZIP, receiving type and required date. Availability and freight are confirmed for the exact order.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"prp-close\" aria-labelledby=\"prp-close-title\"\u003e\u003cdiv\u003e\n\u003ch3 id=\"prp-close-title\"\u003eBuying for a bigger job?\u003c\/h3\u003e\n\u003cp\u003eSend SKU 20143 with your quantity, delivery ZIP and timing. For multiple products, list each SKU and quantity separately.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ca href=\"\/pages\/bulk-quote?source=product-20143\u0026amp;page=20x14x3-ect-32-kraft-corrugated-boxes-shallow-depth-shipping-bundle-of-25\u0026amp;spec=SKU+20143+%E2%80%94+20+%C3%97+14+%C3%97+3+in.%3B+25+boxes+per+bundle.+Quantity+to+confirm.\" data-pr-static-quote class=\"prp-btn\"\u003eRequest my delivered quote →\u003c\/a\u003e\u003c\/section\u003e\u003cnav class=\"prp-links\" aria-label=\"Related product buying tools\"\u003e\u003cspan\u003eExplore another size and quantity plan:\u003c\/span\u003e\u003ca data-pr-tool-route=\"related\" data-pr-tool-sku=\"20146\" href=\"\/products\/20x14x6-ect-32-kraft-corrugated-boxes-shallow-depth-design-bundle-of-25#prp-pack-planner\"\u003e20 × 14 × 6 in. · 20146 · 25 per bundle\u003c\/a\u003e\u003ca data-pr-tool-route=\"related\" data-pr-tool-sku=\"12124W\" href=\"\/products\/12x12x4-white-corrugated-boxes-ect-32-single-wall-bundle-of-25#prp-pack-planner\"\u003e12 × 12 × 4 in. · 12124W · 25 per bundle\u003c\/a\u003e\u003c\/nav\u003e\u003cnav class=\"prp-links\" aria-label=\"More buying guidance\"\u003e\u003ca href=\"\/pages\/corrugated-boxes-buying-guide\"\u003eCompare sizes and buying options\u003c\/a\u003e\u003ca href=\"\/pages\/corrugated-box-styles-rsc-hsc-fol\"\u003eUnderstand box styles\u003c\/a\u003e\u003ca href=\"\/pages\/single-wall-vs-double-wall-boxes\"\u003eCompare wall construction\u003c\/a\u003e\u003ca href=\"\/pages\/packaging-resellers\"\u003eOrdering for your own customer?\u003c\/a\u003e\u003c\/nav\u003e\u003cstyle\u003e\n#pr-product-packs{--ink:#102d35;--mint:#cdeb6b;--teal:#2e6964;--paper:#f6f7f1;--line:#d7ddd5;color:var(--ink);font-family:inherit;line-height:1.55;font-size:16px;max-width:100%;overflow-wrap:anywhere}\n#pr-product-packs *{box-sizing:border-box}\n#pr-product-packs [hidden]{display:none!important}\n#pr-product-packs h2,#pr-product-packs h3,#pr-product-packs p,#pr-product-packs figure{margin:0}\n#pr-product-packs h2,#pr-product-packs h3{color:var(--ink);line-height:1.12;letter-spacing:-.04em}\n#pr-product-packs a{color:inherit;text-underline-offset:4px}\n#pr-product-packs .prp-kicker{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;line-height:1.5}\n#pr-product-packs .prp-hero{background:var(--paper);border:1px solid var(--line);border-radius:18px;display:grid;grid-template-columns:1.08fr .92fr;gap:24px;padding:42px;margin-bottom:24px;align-items:center}\n#pr-product-packs .prp-hero h2{font-size:clamp(30px,4.2vw,54px);max-width:13ch;margin:14px 0 18px;font-weight:800}\n#pr-product-packs .prp-hero p{max-width:44ch;font-size:17px;color:#466063}\n#pr-product-packs .prp-jumps{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}\n#pr-product-packs .prp-jumps a{font-size:13px;font-weight:800;border-bottom:1px solid var(--ink);padding:3px 0;text-decoration:none}\n#pr-product-packs .prp-jumps span{color:#84908b}\n#pr-product-packs .prp-figure{min-width:0}\n#pr-product-packs .prp-figure svg{display:block;width:100%;height:auto;max-width:440px;margin:auto}\n#pr-product-packs .prp-figure figcaption{text-align:center;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#627576;margin-top:4px}\n#pr-product-packs .prp-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:38px}\n#pr-product-packs .prp-strip div{padding:20px 24px;border-right:1px solid var(--line)}\n#pr-product-packs .prp-strip div:last-child{border:0}\n#pr-product-packs .prp-strip strong{display:block;font-size:23px;line-height:1.2;letter-spacing:-.025em;margin-bottom:6px}\n#pr-product-packs .prp-strip span{font-size:12px;color:#627576}\n#pr-product-packs .prp-section{scroll-margin-top:130px;margin:38px 0}\n#pr-product-packs .prp-section-head{display:flex;justify-content:space-between;gap:28px;align-items:flex-end;margin-bottom:20px}\n#pr-product-packs .prp-section-head h3{font-size:clamp(25px,3vw,36px);margin-top:8px}\n#pr-product-packs .prp-section-head\u003ep{font-size:14px;max-width:40ch;color:#526968}\n#pr-product-packs .prp-planner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--line);border-radius:16px;overflow:hidden}\n#pr-product-packs .prp-inputs{padding:30px;background:white}\n#pr-product-packs label{display:block;font-size:13px;font-weight:800;margin-bottom:8px;line-height:1.5}\n#pr-product-packs input,#pr-product-packs textarea{width:100%;max-width:100%;border:1px solid #879c93;border-radius:7px;background:white;color:var(--ink);padding:12px 14px;font-family:inherit;font-size:16px;min-height:48px}\n#pr-product-packs input:focus,#pr-product-packs textarea:focus,#pr-product-packs a:focus-visible,#pr-product-packs button:focus-visible{outline:3px solid var(--teal);outline-offset:3px}\n#pr-product-packs button{cursor:pointer;font-family:inherit;min-height:44px}\n#pr-product-packs .prp-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid var(--ink);border-radius:7px;background:var(--ink);color:white;min-height:48px;padding:12px 18px;font-size:14px;font-weight:800;line-height:1.45;text-align:center}\n#pr-product-packs .prp-btn:hover{background:#214b54}\n#pr-product-packs .prp-btn--mint{background:var(--mint);color:var(--ink);border-color:var(--mint)}\n#pr-product-packs .prp-btn--mint:hover{background:#d8ee95}\n#pr-product-packs .prp-btn--outline{background:transparent;color:var(--ink);border-color:#879c93}\n#pr-product-packs .prp-btn--outline:hover{background:#f0f3e9}\n#pr-product-packs .prp-presets{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 18px}\n#pr-product-packs .prp-presets button{font-size:12px;font-weight:700;border:1px solid var(--line);border-radius:30px;background:var(--paper);color:var(--ink);padding:7px 13px;min-height:36px}\n#pr-product-packs .prp-help{font-size:12px;color:#627576;margin:12px 0 0;line-height:1.6}\n#pr-product-packs .prp-status{font-size:12px;min-height:20px;margin-top:12px;color:var(--teal)}\n#pr-product-packs .prp-output{background:var(--ink);color:white;padding:30px;min-width:0}\n#pr-product-packs .prp-output .prp-kicker{color:#c4d5d0}\n#pr-product-packs .prp-big-number{display:flex;align-items:baseline;gap:10px;margin:12px 0 20px}\n#pr-product-packs .prp-big-number strong{font-size:clamp(48px,7vw,72px);letter-spacing:-.06em;font-weight:800;line-height:1}\n#pr-product-packs .prp-big-number span{font-size:18px;color:#d5e2d9}\n#pr-product-packs .prp-output dl{display:grid;grid-template-columns:1fr auto;gap:10px 12px;font-size:13px;margin:0 0 22px}\n#pr-product-packs .prp-output dt{color:#cfdbd4}\n#pr-product-packs .prp-output dd{font-weight:800;text-align:right;margin:0}\n#pr-product-packs .prp-output .prp-btn{width:100%}\n#pr-product-packs .prp-output .prp-help{color:#c3d1cb}\n#pr-product-packs .prp-copy{color:white;background:transparent;border:0;border-bottom:1px solid #849b91;padding:3px 0;font-size:12px;min-height:38px;margin-top:12px}\n#pr-product-packs #pr-pack-brief{margin-top:14px;font-size:13px;line-height:1.6;min-height:160px}\n#pr-product-packs .prp-table-wrap{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:10px;margin-top:18px}\n#pr-product-packs table{width:100%;border-collapse:collapse;font-size:13px;min-width:300px;background:white}\n#pr-product-packs th,#pr-product-packs td{text-align:left;padding:13px 18px;border-bottom:1px solid var(--line);font-size:inherit;white-space:normal}\n#pr-product-packs th{background:var(--paper);font-weight:800;color:var(--ink)}\n#pr-product-packs tr:last-child td{border-bottom:0}\n#pr-product-packs .prp-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}\n#pr-product-packs .prp-field-wide{grid-column:1\/-1;max-width:340px}\n#pr-product-packs .prp-fit-grid{display:grid;grid-template-columns:1fr .85fr;gap:24px;border:1px solid var(--line);border-radius:16px;padding:30px;background:var(--paper)}\n#pr-product-packs .prp-fit-result{background:white;border:1px solid var(--line);border-radius:12px;padding:24px;align-self:start}\n#pr-product-packs .prp-fit-result h3{font-size:26px;letter-spacing:-.03em;margin:14px 0 18px}\n#pr-product-packs .prp-fit-result p{font-size:13px;color:#526968}\n#pr-product-packs .prp-fit-result[data-verdict='no-fit']{border-color:#b97557}\n#pr-product-packs .prp-fit-result dl{margin:20px 0;font-size:13px}\n#pr-product-packs .prp-fit-result dt{color:#526968;font-size:11px;text-transform:uppercase;letter-spacing:.07em;margin:14px 0 4px}\n#pr-product-packs .prp-fit-result dd{font-size:18px;font-weight:800;margin:0;line-height:1.4}\n#pr-product-packs .prp-fit-note{font-size:12px;color:#526968;margin-top:14px!important}\n#pr-product-packs .prp-checklist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;border-top:1px solid var(--line);padding-top:25px;margin-top:25px}\n#pr-product-packs .prp-checklist b{font-size:12px;display:block;color:var(--teal);margin-bottom:12px}\n#pr-product-packs .prp-checklist h3{font-size:22px;margin-bottom:10px}\n#pr-product-packs .prp-checklist p{font-size:13px;color:#526968}\n#pr-product-packs .prp-close{display:grid;grid-template-columns:1fr auto;align-items:center;gap:26px;background:var(--mint);border-radius:14px;padding:30px;margin-top:36px}\n#pr-product-packs .prp-close h3{font-size:28px;margin-bottom:10px}\n#pr-product-packs .prp-close p{font-size:14px;max-width:60ch}\n#pr-product-packs .prp-links{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:20px;font-size:12px;font-weight:700}\n#pr-product-packs [data-js-only]{display:none}\n#pr-product-packs.is-ready [data-js-only]{display:block}\n@media(max-width:760px){#pr-product-packs .prp-hero{grid-template-columns:1fr;padding:25px;gap:12px}#pr-product-packs .prp-hero h2{max-width:16ch;font-size:38px}#pr-product-packs .prp-figure svg{max-width:340px}#pr-product-packs .prp-strip div{padding:16px 12px}#pr-product-packs .prp-strip strong{font-size:20px}#pr-product-packs .prp-section-head{display:block}#pr-product-packs .prp-section-head\u003ep{margin-top:12px}#pr-product-packs .prp-planner,#pr-product-packs .prp-fit-grid{grid-template-columns:1fr}#pr-product-packs .prp-inputs,#pr-product-packs .prp-output{padding:24px}#pr-product-packs .prp-fit-grid{padding:24px}#pr-product-packs .prp-checklist{grid-template-columns:1fr;gap:24px}#pr-product-packs .prp-close{grid-template-columns:1fr;padding:24px}#pr-product-packs .prp-close .prp-btn{width:100%}}\n@media(max-width:380px){#pr-product-packs .prp-hero{padding:18px}#pr-product-packs .prp-hero h2{font-size:31px}#pr-product-packs .prp-strip{grid-template-columns:1fr}#pr-product-packs .prp-strip div{border:0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}#pr-product-packs .prp-strip strong{font-size:20px;margin:0}#pr-product-packs .prp-inputs,#pr-product-packs .prp-output,#pr-product-packs .prp-fit-grid{padding:18px}#pr-product-packs .prp-fields{grid-template-columns:1fr}#pr-product-packs .prp-field-wide{max-width:none}#pr-product-packs .prp-fit-result{padding:18px}}\n@media(prefers-reduced-motion:reduce){#pr-product-packs *{scroll-behavior:auto!important;transition:none!important}}\n\n#pr-product-packs .prp-warning{padding:16px;border-left:4px solid #2e6964;background:#e9f1e8;color:#102d35;font-size:14px;margin:16px 0}#pr-product-packs .prp-spec-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;margin:20px 0;font-size:14px}#pr-product-packs .prp-spec-list dd{margin:0;font-weight:700}#pr-product-packs .prp-spec-list dt{color:#526968}#pr-product-packs .prp-summary{margin:0 0 22px;font-size:16px;max-width:78ch}\n\u003c\/style\u003e\n\u003cscript\u003e(function (global) {\n  'use strict';\n  function measurement(value) {\n    if (typeof value === 'number') return value;\n    if (typeof value !== 'string') return NaN;\n    var s = value.trim(), mixed = s.match(\/^(?:(\\d+)\\s+)?(\\d+)\\\/(\\d+)$\/);\n    if (mixed) return Number(mixed[3]) ? Number(mixed[1] || 0) + Number(mixed[2]) \/ Number(mixed[3]) : NaN;\n    return \/^(?:\\d+(?:\\.\\d*)?|\\.\\d+)$\/.test(s) ? Number(s) : NaN;\n  }\n  function createPlanner(config) {\n    var box = (config.dimensions || []).map(measurement), size = config.packCount;\n    if ((box.length !== 0 \u0026\u0026 box.length !== 3) || box.some(function(n) { return !Number.isFinite(n) || n \u003c= 0; }) || !Number.isSafeInteger(size) || size \u003c 1) throw new Error('Invalid product configuration.');\n    if (!\/^[A-Za-z0-9_-]+$\/.test(config.sku) || !\/^[a-z0-9-]+$\/.test(config.handle) || !['bundle','case','pack','roll'].includes(config.unit)) throw new Error('Invalid product identity or sale unit.');\n    function packsFor(value) {\n      var n = typeof value === 'number' ? value : (typeof value === 'string' \u0026\u0026 \/^\\d+$\/.test(value.trim()) ? Number(value) : NaN);\n      if (!Number.isSafeInteger(n) || n \u003c 1 || n \u003e 1000000) throw new Error('Enter a whole number from 1 to 1,000,000 pieces.');\n      var packs = Math.ceil(n \/ size);\n      return { requested: n, packs: packs, pieces: packs * size, extra: packs * size - n };\n    }\n    function checkFit(values, padding) {\n      if (box.length !== 3) throw new Error(\"This product has no three-dimensional fit checker.\");\n      if (!Array.isArray(values) || values.length !== 3) throw new Error('Enter all three item dimensions.');\n      var item = values.map(measurement), pad = measurement(padding);\n      if (item.some(function(n) { return !Number.isFinite(n) || n \u003c= 0 || n \u003e 10000; })) throw new Error('Enter a positive measurement for all three item dimensions.');\n      if (!Number.isFinite(pad) || pad \u003c 0 || pad \u003e 100) throw new Error('Enter cushioning from 0 to 100 inches per side.');\n      var orders = [[0,1,2],[0,2,1],[1,0,2],[1,2,0],[2,0,1],[2,1,0]];\n      var candidates = orders.map(function(order) {\n        var oriented = order.map(function(i) { return item[i]; }), envelope = oriented.map(function(n) { return n + 2 * pad; });\n        var spare = envelope.map(function(n,i) { return box[i] - n; });\n        return { order: order, oriented: oriented, envelope: envelope, spare: spare, fits: spare.every(function(n) { return n \u003e= -1e-9; }) };\n      });\n      var result = candidates.find(function(c) { return c.fits; });\n      if (!result) result = candidates.sort(function(a,b) { return Math.min.apply(null,b.spare) - Math.min.apply(null,a.spare); })[0];\n      result.padding = pad; result.exact = result.fits \u0026\u0026 result.spare.some(function(n) { return Math.abs(n) \u003c 1e-9; });\n      result.insideVerified = config.dimensionBasis === 'inside';\n      return result;\n    }\n    function planLine(plan) {\n      return 'SKU ' + config.sku + ' — ' + plan.packs + ' ' + config.unit + (plan.packs === 1 ? '' : 's') + ' of ' + size + ' ' + config.pieceLabel + ' (' + plan.pieces + ' ' + config.pieceLabel + ' total)';\n    }\n    function quoteFor(plan) {\n      var p = new URLSearchParams({ source: 'product-' + config.sku + '-planner', page: config.handle, spec: planLine(plan) });\n      return '\/pages\/bulk-quote?' + p.toString();\n    }\n    function fitVerdict(result) {\n      if (!result.insideVerified) return result.fits ? 'Fits the listed envelope. Confirm usable inside dimensions.' : 'Exceeds the listed envelope. Confirm usable inside dimensions.';\n      return result.fits ? (result.exact ? 'Dimension match. Check the tight edges.' : 'The dimensions fit with your allowance.') : 'These dimensions need a different size.';\n    }\n    return { packsFor: packsFor, checkFit: checkFit, quoteFor: quoteFor, planLine: planLine, fitVerdict: fitVerdict };\n  }\n  var api = { createPlanner: createPlanner, measurement: measurement };\n  if (typeof module !== 'undefined' \u0026\u0026 module.exports) module.exports = api;\n  if (!global.document) return;\n  function init() {\n    var root = global.document.getElementById('pr-product-packs');\n    if (!root || root.dataset.initialized === 'true') return;\n    var config, planner;\n    try { config = JSON.parse(root.dataset.prConfig); planner = createPlanner(config); } catch (error) { return; }\n    root.dataset.initialized = 'true'; root.classList.add('is-ready');\n    var byId = function(id) { return root.querySelector('#' + id); };\n    var number = function(n) { return n.toLocaleString('en-US', { maximumFractionDigits: 4 }); };\n    var dimensions = function(ns) { return ns.map(number).join(' × ') + ' in.'; };\n    function event(action) { if (typeof global.prBuyerAction === 'function') { try { global.prBuyerAction(action, config.sku); } catch (error) { \/* Analytics must not block a buyer action. *\/ } } }\n    var packForm = byId('pr-pack-form'), count = byId('pr-pack-count'), packResult = byId('pr-pack-result'), status = byId('pr-pack-status'), quote = byId('pr-pack-quote'), brief = byId('pr-pack-brief'), plan = null;\n    function invalidate() {\n      plan = null; packResult.hidden = true; brief.hidden = true; brief.value = ''; quote.removeAttribute('href'); quote.setAttribute('aria-disabled','true');\n      status.textContent = 'Quantity changed. Calculate the updated ' + config.unit + ' count.';\n    }\n    function calculate(announce) {\n      try {\n        plan = planner.packsFor(count.value); brief.hidden = true; brief.value = '';\n        byId('pr-pack-bundles').textContent = number(plan.packs);\n        byId('pr-pack-total').textContent = number(plan.pieces); byId('pr-pack-extra').textContent = number(plan.extra); byId('pr-pack-requested').textContent = number(plan.requested);\n        quote.href = planner.quoteFor(plan); quote.removeAttribute('aria-disabled'); quote.textContent = 'Quote my ' + number(plan.packs) + '-' + config.unit + ' plan →';\n        packResult.hidden = false; status.textContent = announce ? 'Calculated: ' + planner.planLine(plan) + '.' : '';\n        if (announce) event('pack-calculated');\n      } catch (error) { invalidate(); status.textContent = error.message; count.focus(); }\n    }\n    packForm.addEventListener('submit',function(e) { e.preventDefault(); calculate(true); });\n    count.addEventListener('input',invalidate);\n    root.querySelectorAll('[data-pack-preset]').forEach(function(button) { button.addEventListener('click',function() { count.value = button.dataset.packPreset; calculate(true); }); });\n    quote.addEventListener('click',function(e) { if (!plan) e.preventDefault(); else event('quote-opened'); });\n    root.querySelectorAll('[data-pr-static-quote]').forEach(function(a) { a.addEventListener('click',function() { event('quote-opened'); }); });\n    byId('pr-pack-copy').addEventListener('click',function() {\n      if (!plan) return;\n      var text = 'Packrift ' + planner.planLine(plan) + '\\n' + config.specSummary + '\\nRequested: ' + plan.requested + ' ' + config.pieceLabel + '\\nDelivery ZIP, receiving requirements and required date: add to the quote request.\\nPlease confirm availability, freight and final delivered total.';\n      brief.value = text; brief.hidden = false;\n      function manual() { brief.focus(); brief.select(); status.textContent = 'Select and copy the order plan below.'; }\n      if (global.navigator \u0026\u0026 global.navigator.clipboard \u0026\u0026 global.isSecureContext) global.navigator.clipboard.writeText(text).then(function() { status.textContent = 'Order plan copied. Add your delivery details in the quote request.'; event('plan-copied'); }).catch(manual); else manual();\n    });\n    var fitForm = byId('pr-fit-form'), fitStatus = byId('pr-fit-status'), fitResult = byId('pr-fit-result');\n    if (!fitForm) { calculate(false); return; }\n    fitForm.addEventListener('input',function() { fitResult.hidden = true; fitStatus.textContent = 'Measurements changed. Run the updated check.'; });\n    fitForm.addEventListener('submit',function(e) {\n      e.preventDefault();\n      try {\n        var r = planner.checkFit([byId('pr-fit-l').value,byId('pr-fit-w').value,byId('pr-fit-h').value],byId('pr-fit-pad').value);\n        var title = planner.fitVerdict(r);\n        byId('pr-fit-verdict').textContent = title; byId('pr-fit-orientation').textContent = dimensions(r.oriented) + ' (L × W × H)'; byId('pr-fit-envelope').textContent = dimensions(r.envelope);\n        var note = !r.insideVerified ? 'This product does not have a confirmed inside-dimension basis in the supplied specifications. Confirm usable internal space and closure clearance before selecting it. ' : '';\n        note += r.fits ? (r.exact ? 'At least one edge has no spare clearance beyond the cushioning allowance. Check tolerances and a physical packed sample.' : 'Remaining dimensional clearance: ' + dimensions(r.spare.map(function(n) { return Math.max(0,n); })) + '. Check the packed item and protection.') : 'No axis-aligned orientation fits within ' + dimensions(config.dimensions) + ' with this allowance.';\n        byId('pr-fit-note').textContent = note; fitResult.dataset.verdict = r.fits ? 'fit' : 'no-fit'; fitResult.hidden = false; fitStatus.textContent = title; event('fit-checked');\n      } catch (error) { fitResult.hidden = true; fitStatus.textContent = error.message; }\n    });\n    calculate(false);\n  }\n  if (global.document.readyState === 'loading') global.document.addEventListener('DOMContentLoaded',init); else init();\n})(typeof window !== 'undefined' ? window : globalThis);\n\u003c\/script\u003e\n\u003c\/div\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53449720824176,"sku":"20143","price":57.03,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/20143.jpg?v=1774854088"},{"product_id":"24x10x8-ect-32-kraft-corrugated-long-boxes-easy-pack-design-bundle-of-25","title":"24x10x8 ECT-32 Kraft Corrugated Shipping Boxes 25-Pack","description":"\n\u003cdiv id=\"pr-product-packs\" class=\"pr-experience\" data-packrift-release=\"PACKRIFT-BUYER-EXPERIENCE-20260930\"\u003e\n\u003csection class=\"prp-hero\" aria-labelledby=\"prp-overview-title\"\u003e\n \u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003eSKU 24108 · the packing plan\u003c\/div\u003e\n\u003ch2 id=\"prp-overview-title\"\u003eA long box.\u003cbr\u003eA clear plan.\u003c\/h2\u003e\n\u003cp\u003e24 × 10 × 8 inches inside. 25 boxes per bundle. Check your packed dimensions, work out your bundle count, and take an exact requirement into your quote.\u003c\/p\u003e\n\u003cnav class=\"prp-jumps\" aria-label=\"Product buying tools\"\u003e\u003ca href=\"#prp-pack-planner\"\u003ePlan my bundles\u003c\/a\u003e\u003cspan aria-hidden=\"true\"\u003e\/\u003c\/span\u003e\u003ca href=\"#prp-fit-check\"\u003eCheck my dimensions\u003c\/a\u003e\u003c\/nav\u003e\n\u003c\/div\u003e\n \u003cspan hidden aria-hidden=\"true\"\u003eProduct fit and specs\u003c\/span\u003e\n \u003cfigure class=\"prp-figure\"\u003e\u003csvg viewbox=\"0 0 440 350\" role=\"img\" aria-labelledby=\"prp-box-title prp-box-desc\"\u003e\u003ctitle id=\"prp-box-title\"\u003e24 by 10 by 8 inch inside dimensions\u003c\/title\u003e\n\u003cdesc id=\"prp-box-desc\"\u003eA schematic box showing length 24 inches, width 10 inches and height 8 inches. The drawing is not to scale.\u003c\/desc\u003e\u003cdefs\u003e\u003cmarker id=\"prp-arrow\" markerwidth=\"6\" markerheight=\"6\" refx=\"3\" refy=\"3\" orient=\"auto-start-reverse\"\u003e\u003cpath d=\"M6 0L0 3L6 6\" fill=\"none\" stroke=\"#2e6964\" stroke-width=\"1.3\"\u003e\u003c\/path\u003e\u003c\/marker\u003e\u003c\/defs\u003e\u003cellipse cx=\"232\" cy=\"290\" rx=\"170\" ry=\"20\" fill=\"#e4e8db\"\u003e\u003c\/ellipse\u003e\u003cpath d=\"M70 140L130 85L370 115L310 170Z\" fill=\"#e7d5b9\" stroke=\"#102d35\" stroke-width=\"2\"\u003e\u003c\/path\u003e\u003cpath d=\"M70 140L310 170L310 280L70 250Z\" fill=\"#d6b68c\" stroke=\"#102d35\" stroke-width=\"2\"\u003e\u003c\/path\u003e\u003cpath d=\"M310 170L370 115L370 225L310 280Z\" fill=\"#c39e72\" stroke=\"#102d35\" stroke-width=\"2\"\u003e\u003c\/path\u003e\u003cpath d=\"M118 143L152 112L322 133L289 164Z\" fill=\"#cdeb6b\" stroke=\"#2e6964\" stroke-width=\"1.5\" stroke-dasharray=\"5 4\"\u003e\u003c\/path\u003e\u003cpath d=\"M195 126L199 261\" stroke=\"#9b794e\" stroke-width=\"1.2\" stroke-dasharray=\"6 5\"\u003e\u003c\/path\u003e\u003cg fill=\"none\" stroke=\"#2e6964\" stroke-width=\"1.5\"\u003e\u003cpath d=\"M70 263L70 303M310 293L310 333\" opacity=\".55\"\u003e\u003c\/path\u003e\u003cpath d=\"M77 296L303 325\" marker-start=\"url(#prp-arrow)\" marker-end=\"url(#prp-arrow)\"\u003e\u003c\/path\u003e\u003cpath d=\"M324 288L405 214M381 119L405 109\" opacity=\".55\"\u003e\u003c\/path\u003e\u003cpath d=\"M396 126L396 219\" marker-start=\"url(#prp-arrow)\" marker-end=\"url(#prp-arrow)\"\u003e\u003c\/path\u003e\u003cpath d=\"M315 160L326 167M370 115L380 122\" opacity=\".55\"\u003e\u003c\/path\u003e\u003cpath d=\"M326 164L374 120\" marker-start=\"url(#prp-arrow)\" marker-end=\"url(#prp-arrow)\"\u003e\u003c\/path\u003e\u003c\/g\u003e\u003cg fill=\"#102d35\" font-family=\"Arial,sans-serif\" font-size=\"16\" font-weight=\"700\"\u003e\u003ctext x=\"185\" y=\"343\" text-anchor=\"middle\"\u003e24 in. length\u003c\/text\u003e\u003ctext x=\"411\" y=\"179\" transform=\"rotate(-90 411 179)\" text-anchor=\"middle\"\u003e8 in. height\u003c\/text\u003e\u003ctext x=\"242\" y=\"55\" text-anchor=\"middle\"\u003e10 in. width\u003c\/text\u003e\u003c\/g\u003e\u003ccircle cx=\"95\" cy=\"53\" r=\"22\" fill=\"#102d35\"\u003e\u003c\/circle\u003e\u003ctext x=\"95\" y=\"58\" fill=\"#cdeb6b\" font-family=\"Arial,sans-serif\" font-size=\"12\" font-weight=\"700\" text-anchor=\"middle\"\u003e24108\u003c\/text\u003e\u003c\/svg\u003e\u003cfigcaption\u003eInside dimensions · schematic, not to scale\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/section\u003e\n\u003cdiv class=\"prp-strip\" aria-label=\"Verified product essentials\"\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e24 × 10 × 8\u003c\/strong\u003e\u003cspan\u003eInside dimensions, in. · L × W × H\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e25 boxes\u003c\/strong\u003e\u003cspan\u003eOne bundle · one order increment\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eECT-32\u003c\/strong\u003e\u003cspan\u003eKraft · single-wall corrugated\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003csection id=\"prp-pack-planner\" class=\"prp-section\" aria-labelledby=\"prp-pack-title\"\u003e\n \u003cdiv class=\"prp-section-head\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003e01 \/ order the right quantity\u003c\/div\u003e\n\u003ch3 id=\"prp-pack-title\"\u003eBoxes needed. Bundles ordered.\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cp\u003eThe cart quantity counts bundles. This planner rounds your box requirement up to complete bundles of 25.\u003c\/p\u003e\n\u003c\/div\u003e\n \u003cdiv class=\"prp-planner\" data-js-only\u003e\n  \u003cdiv class=\"prp-inputs\"\u003e\u003cform id=\"pr-pack-form\" novalidate\u003e\n\u003clabel for=\"pr-pack-count\"\u003eHow many individual boxes do you need?\u003c\/label\u003e\u003cinput id=\"pr-pack-count\" type=\"number\" min=\"1\" max=\"1000000\" step=\"1\" value=\"100\" inputmode=\"numeric\" aria-describedby=\"pr-pack-help pr-pack-status\"\u003e\u003cdiv class=\"prp-presets\" aria-label=\"Common quantities\"\u003e\n\u003cbutton type=\"button\" data-pack-preset=\"100\"\u003e100 boxes\u003c\/button\u003e\u003cbutton type=\"button\" data-pack-preset=\"500\"\u003e500 boxes\u003c\/button\u003e\u003cbutton type=\"button\" data-pack-preset=\"1000\"\u003e1,000 boxes\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cbutton class=\"prp-btn\" type=\"submit\"\u003eCalculate my bundles →\u003c\/button\u003e\u003cp id=\"pr-pack-help\" class=\"prp-help\"\u003eQuantity planning only. Current price, availability and the delivered total are confirmed for your order.\u003c\/p\u003e\n\u003cp id=\"pr-pack-status\" class=\"prp-status\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"\u003e\u003c\/p\u003e\n\u003c\/form\u003e\u003c\/div\u003e\n  \u003cdiv class=\"prp-output\"\u003e\u003cdiv id=\"pr-pack-result\"\u003e\n\u003cdiv class=\"prp-kicker\"\u003eYour complete-bundle plan\u003c\/div\u003e\n\u003cdiv class=\"prp-big-number\"\u003e\n\u003cstrong id=\"pr-pack-bundles\"\u003e4\u003c\/strong\u003e\u003cspan\u003ebundles\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdl\u003e\n\u003cdt\u003eBoxes you asked for\u003c\/dt\u003e\n\u003cdd id=\"pr-pack-requested\"\u003e100\u003c\/dd\u003e\n\u003cdt\u003eTotal boxes in your order\u003c\/dt\u003e\n\u003cdd id=\"pr-pack-total\"\u003e100\u003c\/dd\u003e\n\u003cdt\u003eExtra boxes from rounding\u003c\/dt\u003e\n\u003cdd id=\"pr-pack-extra\"\u003e0\u003c\/dd\u003e\n\u003c\/dl\u003e\n\u003ca id=\"pr-pack-quote\" class=\"prp-btn prp-btn--mint\" href=\"\/pages\/bulk-quote?source=product-24108-planner\u0026amp;spec=SKU%2024108%20%E2%80%94%204%20bundles%20of%2025%20boxes%20%28100%20boxes%20total%29\"\u003eQuote my 4-bundle plan →\u003c\/a\u003e\u003cp class=\"prp-help\"\u003eYour SKU and planned quantity carry into the quote request. Add your delivery ZIP, timing and receiving details there.\u003c\/p\u003e\n\u003cbutton id=\"pr-pack-copy\" class=\"prp-copy\" type=\"button\"\u003eCopy the order plan\u003c\/button\u003e\u003ctextarea id=\"pr-pack-brief\" hidden readonly aria-label=\"Order plan to copy\"\u003e\u003c\/textarea\u003e\n\u003c\/div\u003e\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"prp-table-wrap\"\u003e\u003ctable\u003e\n\u003ccaption style=\"text-align:left;padding:14px 18px;font-weight:700\"\u003eQuick quantity reference\u003c\/caption\u003e\n\u003cthead\u003e\u003ctr\u003e\n\u003cth scope=\"col\"\u003eBoxes needed\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eBundles to order\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eBoxes supplied\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e25\u003c\/td\u003e\n\u003ctd\u003e1\u003c\/td\u003e\n\u003ctd\u003e25\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100\u003c\/td\u003e\n\u003ctd\u003e4\u003c\/td\u003e\n\u003ctd\u003e100\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e101\u003c\/td\u003e\n\u003ctd\u003e5\u003c\/td\u003e\n\u003ctd\u003e125\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e500\u003c\/td\u003e\n\u003ctd\u003e20\u003c\/td\u003e\n\u003ctd\u003e500\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e1,000\u003c\/td\u003e\n\u003ctd\u003e40\u003c\/td\u003e\n\u003ctd\u003e1,000\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\u003c\/div\u003e\n \u003cnoscript\u003e\u003cp class=\"prp-help\"\u003eUse the quantity table above, or divide your box requirement by 25 and round up to a whole bundle. \u003ca href=\"\/pages\/bulk-quote?source=product-24108\u0026amp;sku=24108\u0026amp;product=24x10x8-ect-32-kraft-corrugated-long-boxes-easy-pack-design-bundle-of-25\"\u003eRequest a quote for SKU 24108\u003c\/a\u003e.\u003c\/p\u003e\u003c\/noscript\u003e\n\u003c\/section\u003e\n\u003csection id=\"prp-fit-check\" class=\"prp-section\" aria-labelledby=\"prp-fit-title\"\u003e\n \u003cdiv class=\"prp-section-head\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003e02 \/ check the packed item\u003c\/div\u003e\n\u003ch3 id=\"prp-fit-title\"\u003eThe cross-section matters, too.\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cp\u003eA 24-inch length is only part of the fit. Include protection around the item and check the 10 × 8-inch opening.\u003c\/p\u003e\n\u003c\/div\u003e\n \u003cdiv class=\"prp-fit-grid\"\u003e\n\u003cdiv\u003e\n\u003cp\u003eEnter your item's dimensions in inches before cushioning. The checker tries all six axis-aligned orientations and adds your selected cushioning to both sides of each dimension.\u003c\/p\u003e\n\u003cform id=\"pr-fit-form\" novalidate data-js-only\u003e\n\u003cdiv class=\"prp-fields\"\u003e\n\u003cdiv\u003e\n\u003clabel for=\"pr-fit-l\"\u003eItem length (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-l\" type=\"number\" min=\"0.01\" step=\"any\" value=\"20\" inputmode=\"decimal\"\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003clabel for=\"pr-fit-w\"\u003eItem width (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-w\" type=\"number\" min=\"0.01\" step=\"any\" value=\"8\" inputmode=\"decimal\"\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003clabel for=\"pr-fit-h\"\u003eItem height (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-h\" type=\"number\" min=\"0.01\" step=\"any\" value=\"6\" inputmode=\"decimal\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-field-wide\"\u003e\n\u003clabel for=\"pr-fit-pad\"\u003eCushioning per side (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-pad\" type=\"number\" min=\"0\" step=\"any\" value=\"0.5\" inputmode=\"decimal\" aria-describedby=\"pr-fit-padding-help\"\u003e\u003cp id=\"pr-fit-padding-help\" class=\"prp-help\"\u003e0.5 in. per side adds 1 in. to each item dimension. This is your planning allowance, not a recommended protection level.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbutton type=\"submit\" class=\"prp-btn\"\u003eCheck the dimensions →\u003c\/button\u003e\u003cp id=\"pr-fit-status\" class=\"prp-status\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"\u003e\u003c\/p\u003e\n\u003c\/form\u003e\n\u003cnoscript\u003e\u003cp class=\"prp-help\"\u003eCompare all three packed dimensions with 24 × 10 × 8 in. You can rotate the item if the application allows it. Include inserts and cushioning on both sides.\u003c\/p\u003e\u003c\/noscript\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003cdiv id=\"pr-fit-result\" class=\"prp-fit-result\" hidden\u003e\n\u003cdiv class=\"prp-kicker\"\u003eDimensional check\u003c\/div\u003e\n\u003ch3 id=\"pr-fit-verdict\"\u003e\u003c\/h3\u003e\n\u003cdl\u003e\n\u003cdt\u003eItem orientation inside the box\u003c\/dt\u003e\n\u003cdd id=\"pr-fit-orientation\"\u003e\u003c\/dd\u003e\n\u003cdt\u003eEnvelope including cushioning\u003c\/dt\u003e\n\u003cdd id=\"pr-fit-envelope\"\u003e\u003c\/dd\u003e\n\u003c\/dl\u003e\n\u003cp id=\"pr-fit-note\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-fit-result\"\u003e\n\u003cdiv class=\"prp-kicker\"\u003eBefore you commit\u003c\/div\u003e\n\u003ch3\u003eFit is one check.\u003cbr\u003eProtection is another.\u003c\/h3\u003e\n\u003cp\u003eAllow for inserts, protrusions and dimensional tolerances. Check a physical packed sample for tight fits. ECT-32 is a board-grade designation; it does not establish a universal payload or stacking limit.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"prp-section\" aria-labelledby=\"prp-application-title\"\u003e\u003cdiv class=\"prp-section-head\"\u003e\u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003e03 \/ specify the whole shipment\u003c\/div\u003e\n\u003ch3 id=\"prp-application-title\"\u003eThree details make a better order.\u003c\/h3\u003e\n\u003c\/div\u003e\u003c\/div\u003e\n\u003cdiv class=\"prp-checklist\"\u003e\n\u003cdiv\u003e\n\u003cb\u003e01 \/ THE ITEM\u003c\/b\u003e\u003ch3\u003eMeasure it packed.\u003c\/h3\u003e\n\u003cp\u003eFor long parts, kits or narrow goods, check the full packed envelope. End protection can use up the space you thought you had.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cb\u003e02 \/ THE HANDLING\u003c\/b\u003e\u003ch3\u003eMatch the protection.\u003c\/h3\u003e\n\u003cp\u003eAccount for weight, fragility, stacking, moisture exposure and handling. If those needs are demanding, compare board and wall options before choosing.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cb\u003e03 \/ THE DESTINATION\u003c\/b\u003e\u003ch3\u003eInclude the delivery details.\u003c\/h3\u003e\n\u003cp\u003eA bulk quote needs a ZIP, quantity, receiving type and required date. Availability and freight must be confirmed for that exact order.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"prp-close\" aria-labelledby=\"prp-close-title\"\u003e\u003cdiv\u003e\n\u003ch3 id=\"prp-close-title\"\u003eBuying for a bigger job?\u003c\/h3\u003e\n\u003cp\u003eSend SKU 24108 with your quantity, delivery ZIP and timing. For multiple products, list each SKU and quantity separately.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ca href=\"\/pages\/bulk-quote?source=product-24108\u0026amp;sku=24108\u0026amp;product=24x10x8-ect-32-kraft-corrugated-long-boxes-easy-pack-design-bundle-of-25\" class=\"prp-btn\"\u003eRequest my delivered quote →\u003c\/a\u003e\u003c\/section\u003e\n\u003cnav class=\"prp-links\" aria-label=\"More buying guidance\"\u003e\u003ca href=\"\/pages\/corrugated-boxes-buying-guide\"\u003eCompare box sizes \u0026amp; buying options\u003c\/a\u003e\u003ca href=\"\/pages\/corrugated-box-styles-rsc-hsc-fol\"\u003eUnderstand box styles\u003c\/a\u003e\u003ca href=\"\/pages\/single-wall-vs-double-wall-boxes\"\u003eCompare wall construction\u003c\/a\u003e\u003ca href=\"\/pages\/packaging-resellers\"\u003eOrdering for your own customer?\u003c\/a\u003e\u003c\/nav\u003e\n\u003cstyle\u003e\n#pr-product-packs{--ink:#102d35;--mint:#cdeb6b;--teal:#2e6964;--paper:#f6f7f1;--line:#d7ddd5;color:var(--ink);font-family:inherit;line-height:1.55;font-size:16px;max-width:100%;overflow-wrap:anywhere}\n#pr-product-packs *{box-sizing:border-box}\n#pr-product-packs [hidden]{display:none!important}\n#pr-product-packs h2,#pr-product-packs h3,#pr-product-packs p,#pr-product-packs figure{margin:0}\n#pr-product-packs h2,#pr-product-packs h3{color:var(--ink);line-height:1.12;letter-spacing:-.04em}\n#pr-product-packs a{color:inherit;text-underline-offset:4px}\n#pr-product-packs .prp-kicker{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;line-height:1.5}\n#pr-product-packs .prp-hero{background:var(--paper);border:1px solid var(--line);border-radius:18px;display:grid;grid-template-columns:1.08fr .92fr;gap:24px;padding:42px;margin-bottom:24px;align-items:center}\n#pr-product-packs .prp-hero h2{font-size:clamp(30px,4.2vw,54px);max-width:13ch;margin:14px 0 18px;font-weight:800}\n#pr-product-packs .prp-hero p{max-width:44ch;font-size:17px;color:#466063}\n#pr-product-packs .prp-jumps{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}\n#pr-product-packs .prp-jumps a{font-size:13px;font-weight:800;border-bottom:1px solid var(--ink);padding:3px 0;text-decoration:none}\n#pr-product-packs .prp-jumps span{color:#84908b}\n#pr-product-packs .prp-figure{min-width:0}\n#pr-product-packs .prp-figure svg{display:block;width:100%;height:auto;max-width:440px;margin:auto}\n#pr-product-packs .prp-figure figcaption{text-align:center;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#627576;margin-top:4px}\n#pr-product-packs .prp-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:38px}\n#pr-product-packs .prp-strip div{padding:20px 24px;border-right:1px solid var(--line)}\n#pr-product-packs .prp-strip div:last-child{border:0}\n#pr-product-packs .prp-strip strong{display:block;font-size:23px;line-height:1.2;letter-spacing:-.025em;margin-bottom:6px}\n#pr-product-packs .prp-strip span{font-size:12px;color:#627576}\n#pr-product-packs .prp-section{scroll-margin-top:130px;margin:38px 0}\n#pr-product-packs .prp-section-head{display:flex;justify-content:space-between;gap:28px;align-items:flex-end;margin-bottom:20px}\n#pr-product-packs .prp-section-head h3{font-size:clamp(25px,3vw,36px);margin-top:8px}\n#pr-product-packs .prp-section-head\u003ep{font-size:14px;max-width:40ch;color:#526968}\n#pr-product-packs .prp-planner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--line);border-radius:16px;overflow:hidden}\n#pr-product-packs .prp-inputs{padding:30px;background:white}\n#pr-product-packs label{display:block;font-size:13px;font-weight:800;margin-bottom:8px;line-height:1.5}\n#pr-product-packs input,#pr-product-packs textarea{width:100%;max-width:100%;border:1px solid #879c93;border-radius:7px;background:white;color:var(--ink);padding:12px 14px;font-family:inherit;font-size:16px;min-height:48px}\n#pr-product-packs input:focus,#pr-product-packs textarea:focus,#pr-product-packs a:focus-visible,#pr-product-packs button:focus-visible{outline:3px solid var(--teal);outline-offset:3px}\n#pr-product-packs button{cursor:pointer;font-family:inherit;min-height:44px}\n#pr-product-packs .prp-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid var(--ink);border-radius:7px;background:var(--ink);color:white;min-height:48px;padding:12px 18px;font-size:14px;font-weight:800;line-height:1.45;text-align:center}\n#pr-product-packs .prp-btn:hover{background:#214b54}\n#pr-product-packs .prp-btn--mint{background:var(--mint);color:var(--ink);border-color:var(--mint)}\n#pr-product-packs .prp-btn--mint:hover{background:#d8ee95}\n#pr-product-packs .prp-btn--outline{background:transparent;color:var(--ink);border-color:#879c93}\n#pr-product-packs .prp-btn--outline:hover{background:#f0f3e9}\n#pr-product-packs .prp-presets{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 18px}\n#pr-product-packs .prp-presets button{font-size:12px;font-weight:700;border:1px solid var(--line);border-radius:30px;background:var(--paper);color:var(--ink);padding:7px 13px;min-height:36px}\n#pr-product-packs .prp-help{font-size:12px;color:#627576;margin:12px 0 0;line-height:1.6}\n#pr-product-packs .prp-status{font-size:12px;min-height:20px;margin-top:12px;color:var(--teal)}\n#pr-product-packs .prp-output{background:var(--ink);color:white;padding:30px;min-width:0}\n#pr-product-packs .prp-output .prp-kicker{color:#c4d5d0}\n#pr-product-packs .prp-big-number{display:flex;align-items:baseline;gap:10px;margin:12px 0 20px}\n#pr-product-packs .prp-big-number strong{font-size:clamp(48px,7vw,72px);letter-spacing:-.06em;font-weight:800;line-height:1}\n#pr-product-packs .prp-big-number span{font-size:18px;color:#d5e2d9}\n#pr-product-packs .prp-output dl{display:grid;grid-template-columns:1fr auto;gap:10px 12px;font-size:13px;margin:0 0 22px}\n#pr-product-packs .prp-output dt{color:#cfdbd4}\n#pr-product-packs .prp-output dd{font-weight:800;text-align:right;margin:0}\n#pr-product-packs .prp-output .prp-btn{width:100%}\n#pr-product-packs .prp-output .prp-help{color:#c3d1cb}\n#pr-product-packs .prp-copy{color:white;background:transparent;border:0;border-bottom:1px solid #849b91;padding:3px 0;font-size:12px;min-height:38px;margin-top:12px}\n#pr-product-packs #pr-pack-brief{margin-top:14px;font-size:13px;line-height:1.6;min-height:160px}\n#pr-product-packs .prp-table-wrap{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:10px;margin-top:18px}\n#pr-product-packs table{width:100%;border-collapse:collapse;font-size:13px;min-width:300px;background:white}\n#pr-product-packs th,#pr-product-packs td{text-align:left;padding:13px 18px;border-bottom:1px solid var(--line);font-size:inherit;white-space:normal}\n#pr-product-packs th{background:var(--paper);font-weight:800;color:var(--ink)}\n#pr-product-packs tr:last-child td{border-bottom:0}\n#pr-product-packs .prp-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}\n#pr-product-packs .prp-field-wide{grid-column:1\/-1;max-width:340px}\n#pr-product-packs .prp-fit-grid{display:grid;grid-template-columns:1fr .85fr;gap:24px;border:1px solid var(--line);border-radius:16px;padding:30px;background:var(--paper)}\n#pr-product-packs .prp-fit-result{background:white;border:1px solid var(--line);border-radius:12px;padding:24px;align-self:start}\n#pr-product-packs .prp-fit-result h3{font-size:26px;letter-spacing:-.03em;margin:14px 0 18px}\n#pr-product-packs .prp-fit-result p{font-size:13px;color:#526968}\n#pr-product-packs .prp-fit-result[data-verdict='no-fit']{border-color:#b97557}\n#pr-product-packs .prp-fit-result dl{margin:20px 0;font-size:13px}\n#pr-product-packs .prp-fit-result dt{color:#526968;font-size:11px;text-transform:uppercase;letter-spacing:.07em;margin:14px 0 4px}\n#pr-product-packs .prp-fit-result dd{font-size:18px;font-weight:800;margin:0;line-height:1.4}\n#pr-product-packs .prp-fit-note{font-size:12px;color:#526968;margin-top:14px!important}\n#pr-product-packs .prp-checklist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;border-top:1px solid var(--line);padding-top:25px;margin-top:25px}\n#pr-product-packs .prp-checklist b{font-size:12px;display:block;color:var(--teal);margin-bottom:12px}\n#pr-product-packs .prp-checklist h3{font-size:22px;margin-bottom:10px}\n#pr-product-packs .prp-checklist p{font-size:13px;color:#526968}\n#pr-product-packs .prp-close{display:grid;grid-template-columns:1fr auto;align-items:center;gap:26px;background:var(--mint);border-radius:14px;padding:30px;margin-top:36px}\n#pr-product-packs .prp-close h3{font-size:28px;margin-bottom:10px}\n#pr-product-packs .prp-close p{font-size:14px;max-width:60ch}\n#pr-product-packs .prp-links{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:20px;font-size:12px;font-weight:700}\n#pr-product-packs [data-js-only]{display:none}\n#pr-product-packs.is-ready [data-js-only]{display:block}\n@media(max-width:760px){#pr-product-packs .prp-hero{grid-template-columns:1fr;padding:25px;gap:12px}#pr-product-packs .prp-hero h2{max-width:16ch;font-size:38px}#pr-product-packs .prp-figure svg{max-width:340px}#pr-product-packs .prp-strip div{padding:16px 12px}#pr-product-packs .prp-strip strong{font-size:20px}#pr-product-packs .prp-section-head{display:block}#pr-product-packs .prp-section-head\u003ep{margin-top:12px}#pr-product-packs .prp-planner,#pr-product-packs .prp-fit-grid{grid-template-columns:1fr}#pr-product-packs .prp-inputs,#pr-product-packs .prp-output{padding:24px}#pr-product-packs .prp-fit-grid{padding:24px}#pr-product-packs .prp-checklist{grid-template-columns:1fr;gap:24px}#pr-product-packs .prp-close{grid-template-columns:1fr;padding:24px}#pr-product-packs .prp-close .prp-btn{width:100%}}\n@media(max-width:380px){#pr-product-packs .prp-hero{padding:18px}#pr-product-packs .prp-hero h2{font-size:31px}#pr-product-packs .prp-strip{grid-template-columns:1fr}#pr-product-packs .prp-strip div{border:0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}#pr-product-packs .prp-strip strong{font-size:20px;margin:0}#pr-product-packs .prp-inputs,#pr-product-packs .prp-output,#pr-product-packs .prp-fit-grid{padding:18px}#pr-product-packs .prp-fields{grid-template-columns:1fr}#pr-product-packs .prp-field-wide{max-width:none}#pr-product-packs .prp-fit-result{padding:18px}}\n@media(prefers-reduced-motion:reduce){#pr-product-packs *{scroll-behavior:auto!important;transition:none!important}}\n\u003c\/style\u003e\n\u003cscript\u003e(function (global) {\n  'use strict';\n  var BOX = [24, 10, 8];\n  var HANDLE = '24x10x8-ect-32-kraft-corrugated-long-boxes-easy-pack-design-bundle-of-25';\n  function packsFor(value) {\n    var n = Number(value);\n    if (String(value).trim() === '' || !Number.isSafeInteger(n) || n \u003c 1 || n \u003e 1000000) {\n      throw new Error('Enter a whole number from 1 to 1,000,000 boxes.');\n    }\n    var packs = Math.ceil(n \/ 25);\n    return { requested: n, packs: packs, boxes: packs * 25, extra: packs * 25 - n };\n  }\n  function checkFit(values, padding) {\n    var item = values.map(Number), pad = Number(padding);\n    if (values.some(function (v) { return String(v).trim() === ''; }) || item.some(function (v) { return !Number.isFinite(v) || v \u003c= 0 || v \u003e 10000; })) {\n      throw new Error('Enter a positive measurement for all three item dimensions.');\n    }\n    if (String(padding).trim() === '' || !Number.isFinite(pad) || pad \u003c 0 || pad \u003e 100) {\n      throw new Error('Enter cushioning from 0 to 100 inches per side.');\n    }\n    var orders = [[0,1,2],[0,2,1],[1,0,2],[1,2,0],[2,0,1],[2,1,0]];\n    var candidates = orders.map(function (order) {\n      var oriented = order.map(function (i) { return item[i]; });\n      var envelope = oriented.map(function (v) { return v + 2 * pad; });\n      var spare = envelope.map(function (v,i) { return BOX[i] - v; });\n      return { order: order, oriented: oriented, envelope: envelope, spare: spare, fits: spare.every(function (v) { return v \u003e= -1e-9; }) };\n    });\n    var result = candidates.find(function (c) { return c.fits; });\n    if (!result) result = candidates.sort(function (a,b) { return Math.min.apply(null,b.spare) - Math.min.apply(null,a.spare); })[0];\n    result.padding = pad;\n    result.exact = result.fits \u0026\u0026 result.spare.some(function (v) { return Math.abs(v) \u003c 1e-9; });\n    return result;\n  }\n  function quoteFor(plan) {\n    var p = new URLSearchParams({ source: 'product-24108-planner', page: HANDLE });\n    \/\/ The existing quote form can parse a quantity-bearing item line. Passing sku\/product\n    \/\/ would start its separate estimator at one bundle, so the planned line uses spec only.\n    p.set('spec', 'SKU 24108 — ' + plan.packs + ' bundles of 25 boxes (' + plan.boxes + ' boxes total)');\n    return '\/pages\/bulk-quote?' + p.toString();\n  }\n  var api = { packsFor: packsFor, checkFit: checkFit, quoteFor: quoteFor };\n  if (typeof module !== 'undefined' \u0026\u0026 module.exports) module.exports = api;\n  if (!global.document) return;\n  function init() {\n    var root = global.document.getElementById('pr-product-packs');\n    if (!root || root.dataset.initialized === 'true') return;\n    root.dataset.initialized = 'true'; root.classList.add('is-ready');\n    var byId = function (id) { return root.querySelector('#' + id); };\n    var number = function (n) { return n.toLocaleString('en-US', { maximumFractionDigits: 2 }); };\n    function event(action) {\n      if (Array.isArray(global.dataLayer)) global.dataLayer.push({ event: 'packrift_buyer_tool', tool: 'sku-24108', action: action });\n    }\n    var packForm = byId('pr-pack-form'), count = byId('pr-pack-count'), packResult = byId('pr-pack-result'), packStatus = byId('pr-pack-status'), packQuote = byId('pr-pack-quote');\n    var plan = null;\n    function clearPack() {\n      plan = null; packResult.hidden = true; packStatus.textContent = 'Your quantity changed. Calculate the updated bundle count.';\n      packQuote.removeAttribute('href'); packQuote.setAttribute('aria-disabled', 'true');\n    }\n    function calculatePack(announce) {\n      try {\n        plan = packsFor(count.value);\n        byId('pr-pack-bundles').textContent = number(plan.packs);\n        byId('pr-pack-total').textContent = number(plan.boxes);\n        byId('pr-pack-extra').textContent = number(plan.extra);\n        byId('pr-pack-requested').textContent = number(plan.requested);\n        packQuote.href = quoteFor(plan); packQuote.removeAttribute('aria-disabled');\n        packQuote.textContent = 'Quote my ' + number(plan.packs) + '-bundle plan →';\n        packResult.hidden = false; packStatus.textContent = announce ? 'Calculated: ' + number(plan.packs) + ' bundles, ' + number(plan.boxes) + ' boxes total.' : '';\n        if (announce) event('pack-calculated');\n      } catch (e) {\n        plan = null; packResult.hidden = true; packQuote.removeAttribute('href'); packQuote.setAttribute('aria-disabled', 'true');\n        packStatus.textContent = e.message; count.focus();\n      }\n    }\n    packForm.addEventListener('submit', function (e) { e.preventDefault(); calculatePack(true); });\n    count.addEventListener('input', clearPack);\n    root.querySelectorAll('[data-pack-preset]').forEach(function (button) {\n      button.addEventListener('click', function () { count.value = button.dataset.packPreset; calculatePack(true); });\n    });\n    packQuote.addEventListener('click', function (e) {\n      if (!plan) e.preventDefault(); else event('quote-opened');\n    });\n    byId('pr-pack-copy').addEventListener('click', function () {\n      if (!plan) return;\n      var brief = 'Packrift SKU 24108\\n24 × 10 × 8 in. inside dimensions; ECT-32 single wall; kraft\\n' + plan.packs + ' bundles of 25 boxes = ' + plan.boxes + ' boxes total\\nRequested: ' + plan.requested + ' boxes\\nDelivery ZIP, receiving requirements and required date: add to the quote request.\\nPlease confirm availability, freight and final delivered total.';\n      byId('pr-pack-brief').value = brief;\n      byId('pr-pack-brief').hidden = false;\n      if (global.navigator.clipboard \u0026\u0026 global.isSecureContext) {\n        global.navigator.clipboard.writeText(brief).then(function () { packStatus.textContent = 'Order plan copied. Add your delivery details when requesting the quote.'; event('plan-copied'); }).catch(function () { byId('pr-pack-brief').focus(); byId('pr-pack-brief').select(); packStatus.textContent = 'Select and copy the order plan below.'; });\n      } else { byId('pr-pack-brief').focus(); byId('pr-pack-brief').select(); packStatus.textContent = 'Select and copy the order plan below.'; }\n    });\n    var fitForm = byId('pr-fit-form'), fitStatus = byId('pr-fit-status'), fitResult = byId('pr-fit-result');\n    fitForm.addEventListener('input', function () { fitResult.hidden = true; fitStatus.textContent = 'Measurements changed. Run the updated fit check.'; });\n    fitForm.addEventListener('submit', function (e) {\n      e.preventDefault();\n      try {\n        var result = checkFit([byId('pr-fit-l').value, byId('pr-fit-w').value, byId('pr-fit-h').value], byId('pr-fit-pad').value);\n        var title = result.fits ? (result.exact ? 'Dimension match. Check the tight edges.' : 'The dimensions fit with your allowance.') : 'These dimensions need a different box.';\n        byId('pr-fit-verdict').textContent = title;\n        byId('pr-fit-envelope').textContent = result.envelope.map(number).join(' × ') + ' in.';\n        byId('pr-fit-orientation').textContent = result.oriented.map(number).join(' × ') + ' in. (L × W × H)';\n        byId('pr-fit-note').textContent = result.fits ? (result.exact ? 'At least one edge has no spare clearance beyond your cushioning allowance. Check tolerances and a physical packed sample.' : 'Remaining clearance: ' + result.spare.map(function (v) { return number(Math.max(0,v)); }).join(' × ') + ' in. This compares dimensions only; check the packed item and protection.') : 'No axis-aligned orientation fits in 24 × 10 × 8 in. with the selected cushioning. Check another size or request help with the packed dimensions.';\n        fitResult.dataset.verdict = result.fits ? 'fit' : 'no-fit'; fitResult.hidden = false;\n        fitStatus.textContent = title; event('fit-checked');\n      } catch (e) { fitResult.hidden = true; fitStatus.textContent = e.message; }\n    });\n    calculatePack(false);\n  }\n  if (global.document.readyState === 'loading') global.document.addEventListener('DOMContentLoaded', init); else init();\n})(typeof window !== 'undefined' ? window : globalThis);\n\u003c\/script\u003e\n\u003c\/div\u003e\n","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53449723576688,"sku":"24108","price":45.66,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/24108.jpg?v=1774854168"},{"product_id":"20x14x12-ect-32-kraft-corrugated-boxes-bundle-of-20","title":"20x14x12 ECT-32 Kraft Corrugated Shipping Boxes 20-Pack","description":"\u003cp\u003e20x14x12 ECT-32 Kraft Corrugated Boxes - Bundle of 20. Use this item for products that match the listed inside dimensions, box style, board strength when shown, and bundle quantity. Listed specs include size 20 x 14 x 12 in; material kraft; sold as Bundle of 20. Confirm SKU, pack count, price, availability, and checkout delivery before ordering.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53449723740528,"sku":"201412","price":45.45,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/201412.jpg?v=1774854190"},{"product_id":"18x14x4-ect-32-kraft-corrugated-boxes-shallow-depth-shipping-bundle-of-25","title":"18x14x4 ECT-32 Kraft Corrugated Boxes 25-Pack","description":"\u003cp\u003eThe 18x14x4\" ECT-32 Kraft Corrugated Boxes - Shallow Depth Shipping is a shallow corrugated shipping box for books, binders, framed prints, catalogs, folded apparel, and other low-profile items. Listed specs include inside dimensions 18\" x 14\" x 4\"; kraft material; ECT-32; bundle of 25. Use it as a shipping carton, mailing box, storage box, or e-commerce shipper when the item fits the listed dimensions.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53449948889456,"sku":"18144","price":42.34,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/18144.jpg?v=1774854456"},{"product_id":"18x14x8-ect-32-kraft-corrugated-boxes-bundle-of-20","title":"18x14x8 ECT-32 Kraft Corrugated Shipping Boxes 20-Pack","description":"\u003cdiv id=\"pr-product-packs\" class=\"pr-experience\" data-packrift-release=\"PACKRIFT-BUYER-GROWTH-20261001\" data-pr-buyer-sku=\"18148\" data-pr-buyer-cohort=\"20261001\" data-pr-config='{\"sku\":\"18148\",\"handle\":\"18x14x8-ect-32-kraft-corrugated-boxes-bundle-of-20\",\"dimensions\":[18.0,14.0,8.0],\"dimensionBasis\":\"inside\",\"packCount\":20,\"unit\":\"bundle\",\"pieceLabel\":\"boxes\",\"specSummary\":\"18 \\u00d7 14 \\u00d7 8 in. inside dimensions; ECT-32 Single Wall Corrugated; Kraft; 20 boxes per bundle\"}'\u003e\n\u003cp class=\"prp-summary\"\u003eSKU 18148 is a kraft corrugated shipping box with inside dimensions of 18 × 14 × 8 inches. Each bundle contains 20 boxes. Listed construction: ECT-32 Single Wall Corrugated.\u003c\/p\u003e\n\u003cspan hidden aria-hidden=\"true\"\u003eProduct fit and specs\u003c\/span\u003e\n\u003csection class=\"prp-hero\" aria-labelledby=\"prp-overview-title\"\u003e\u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003eSKU 18148 · the packing plan\u003c\/div\u003e\n\u003ch2 id=\"prp-overview-title\"\u003eThe right size.\u003cbr\u003eThe right quantity.\u003c\/h2\u003e\n\u003cp\u003e18 × 14 × 8 inches. 20 boxes per bundle. Compare the measurements, work out your quantity, and carry an exact requirement into your quote.\u003c\/p\u003e\n\u003cnav class=\"prp-jumps\" aria-label=\"Product buying tools\"\u003e\u003ca href=\"#prp-pack-planner\"\u003ePlan my bundles\u003c\/a\u003e\u003cspan aria-hidden=\"true\"\u003e\/\u003c\/span\u003e\u003ca href=\"#prp-fit-check\"\u003eCheck my dimensions\u003c\/a\u003e\u003c\/nav\u003e\n\u003c\/div\u003e\n\u003cfigure class=\"prp-figure\"\u003e\u003csvg viewbox=\"0 0 440 350\" role=\"img\" aria-labelledby=\"pr-drawing-title pr-drawing-desc\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003ctitle id=\"pr-drawing-title\"\u003e18 × 14 × 8 inch carton dimension diagram\u003c\/title\u003e\n\u003cdesc id=\"pr-drawing-desc\"\u003eInside dimensions: length 18, width 14, height 8 inches. Schematic, not to scale.\u003c\/desc\u003e\u003cellipse cx=\"232\" cy=\"307\" rx=\"170\" ry=\"19\" fill=\"#e0e6d6\"\u003e\u003c\/ellipse\u003e\u003cpath d=\"M65 128 L287 80 L387 147 L165 199 Z\" fill=\"#cdeb6b\" stroke=\"#102d35\" stroke-width=\"2\"\u003e\u003c\/path\u003e\u003cpath d=\"M65 128 L165 199 L165 284 L65 213 Z\" fill=\"#8ea795\" stroke=\"#102d35\" stroke-width=\"2\"\u003e\u003c\/path\u003e\u003cpath d=\"M165 199 L387 147 L387 232 L165 284 Z\" fill=\"#2e6964\" stroke=\"#102d35\" stroke-width=\"2\"\u003e\u003c\/path\u003e\u003cpath d=\"M174 112 L275 173\" fill=\"none\" stroke=\"#102d35\" stroke-width=\"2\" stroke-dasharray=\"6 5\"\u003e\u003c\/path\u003e\u003cg stroke=\"#102d35\" fill=\"none\" stroke-width=\"1.5\"\u003e\u003cpath d=\"M167 318 L390 266 M162 312 L170 324 M386 260 L394 272\"\u003e\u003c\/path\u003e\u003cpath d=\"M42 140 L42 209 M36 140 L48 140 M36 209 L48 209\"\u003e\u003c\/path\u003e\u003cpath d=\"M300 60 L407 132 M295 65 L305 55 M402 137 L412 127\"\u003e\u003c\/path\u003e\u003c\/g\u003e\u003cg fill=\"#102d35\" font-family=\"Arial,sans-serif\" font-size=\"14\" font-weight=\"700\"\u003e\u003ctext x=\"280\" y=\"329\" text-anchor=\"middle\"\u003e18 in. length\u003c\/text\u003e\u003ctext x=\"24\" y=\"220\" text-anchor=\"middle\" transform=\"rotate(-90 24 220)\"\u003e8 in. height\u003c\/text\u003e\u003ctext x=\"345\" y=\"48\" text-anchor=\"middle\"\u003e14 in. width\u003c\/text\u003e\u003c\/g\u003e\u003crect x=\"66\" y=\"41\" rx=\"14\" width=\"64\" height=\"29\" fill=\"#102d35\"\u003e\u003c\/rect\u003e\u003ctext x=\"98.0\" y=\"60\" text-anchor=\"middle\" fill=\"#cdeb6b\" font-family=\"Arial,sans-serif\" font-size=\"12\" font-weight=\"700\"\u003e18148\u003c\/text\u003e\u003c\/svg\u003e\u003cfigcaption\u003eInside dimensions · schematic, not to scale\u003c\/figcaption\u003e\u003c\/figure\u003e\u003c\/section\u003e\n\u003cdiv class=\"prp-strip\" aria-label=\"Product essentials\"\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e18 × 14 × 8\u003c\/strong\u003e\u003cspan\u003eInside dimensions, in. · L × W × H\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e20 boxes\u003c\/strong\u003e\u003cspan\u003eOne bundle · one order increment\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eECT-32 Single Wall Corrugated\u003c\/strong\u003e\u003cspan\u003eKraft · shipping carton\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003csection id=\"prp-pack-planner\" class=\"prp-section\" aria-labelledby=\"prp-pack-title\"\u003e\u003cdiv class=\"prp-section-head\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003e01 \/ order the right quantity\u003c\/div\u003e\n\u003ch3 id=\"prp-pack-title\"\u003ePieces needed. Bundles ordered.\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cp\u003eThe cart quantity counts bundles. Round your requirement up to complete bundles of 20 boxes.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-planner\" data-js-only\u003e\n\u003cdiv class=\"prp-inputs\"\u003e\u003cform id=\"pr-pack-form\" novalidate\u003e\n\u003clabel for=\"pr-pack-count\"\u003eHow many individual boxes do you need?\u003c\/label\u003e\u003cinput id=\"pr-pack-count\" type=\"number\" min=\"1\" max=\"1000000\" step=\"1\" value=\"80\" inputmode=\"numeric\" aria-describedby=\"pr-pack-help pr-pack-status\"\u003e\u003cdiv class=\"prp-presets\" aria-label=\"Common quantities\"\u003e\n\u003cbutton type=\"button\" data-pack-preset=\"100\"\u003e100 boxes\u003c\/button\u003e\u003cbutton type=\"button\" data-pack-preset=\"500\"\u003e500 boxes\u003c\/button\u003e\u003cbutton type=\"button\" data-pack-preset=\"1000\"\u003e1,000 boxes\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cbutton class=\"prp-btn\" type=\"submit\"\u003eCalculate my bundles →\u003c\/button\u003e\u003cp id=\"pr-pack-help\" class=\"prp-help\"\u003eQuantity planning only. Confirm the current price, availability and delivered total for your order.\u003c\/p\u003e\n\u003cp id=\"pr-pack-status\" class=\"prp-status\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"\u003e\u003c\/p\u003e\n\u003c\/form\u003e\u003c\/div\u003e\n\u003cdiv class=\"prp-output\"\u003e\u003cdiv id=\"pr-pack-result\"\u003e\n\u003cdiv class=\"prp-kicker\"\u003eYour complete-bundle plan\u003c\/div\u003e\n\u003cdiv class=\"prp-big-number\"\u003e\n\u003cstrong id=\"pr-pack-bundles\"\u003e4\u003c\/strong\u003e\u003cspan\u003ebundles\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdl\u003e\n\u003cdt\u003eBoxes you asked for\u003c\/dt\u003e\n\u003cdd id=\"pr-pack-requested\"\u003e80\u003c\/dd\u003e\n\u003cdt\u003eTotal boxes in your order\u003c\/dt\u003e\n\u003cdd id=\"pr-pack-total\"\u003e80\u003c\/dd\u003e\n\u003cdt\u003eExtra pieces from rounding\u003c\/dt\u003e\n\u003cdd id=\"pr-pack-extra\"\u003e0\u003c\/dd\u003e\n\u003c\/dl\u003e\n\u003ca id=\"pr-pack-quote\" class=\"prp-btn prp-btn--mint\" href=\"\/pages\/bulk-quote?source=product-18148-planner\u0026amp;page=18x14x8-ect-32-kraft-corrugated-boxes-bundle-of-20\u0026amp;spec=SKU+18148+%E2%80%94+4+bundles+of+20+boxes+%2880+boxes+total%29\"\u003eQuote my 4-bundle plan →\u003c\/a\u003e\u003cp class=\"prp-help\"\u003eYour SKU and planned quantity carry into the quote request. Add your delivery ZIP, timing and receiving details there.\u003c\/p\u003e\n\u003cbutton id=\"pr-pack-copy\" class=\"prp-copy\" type=\"button\"\u003eCopy the order plan\u003c\/button\u003e\u003ctextarea id=\"pr-pack-brief\" hidden readonly aria-label=\"Order plan to copy\"\u003e\u003c\/textarea\u003e\n\u003c\/div\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-table-wrap\"\u003e\u003ctable\u003e\n\u003ccaption style=\"text-align:left;padding:14px 18px;font-weight:700\"\u003eQuick quantity reference\u003c\/caption\u003e\n\u003cthead\u003e\u003ctr\u003e\n\u003cth scope=\"col\"\u003eBoxes needed\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eBundles to order\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eBoxes supplied\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e20\u003c\/td\u003e\n\u003ctd\u003e1\u003c\/td\u003e\n\u003ctd\u003e20\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e80\u003c\/td\u003e\n\u003ctd\u003e4\u003c\/td\u003e\n\u003ctd\u003e80\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e81\u003c\/td\u003e\n\u003ctd\u003e5\u003c\/td\u003e\n\u003ctd\u003e100\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e500\u003c\/td\u003e\n\u003ctd\u003e25\u003c\/td\u003e\n\u003ctd\u003e500\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e1,000\u003c\/td\u003e\n\u003ctd\u003e50\u003c\/td\u003e\n\u003ctd\u003e1,000\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\u003c\/div\u003e\n\u003cnoscript\u003e\u003cp class=\"prp-help\"\u003eDivide the number of boxes you need by 20 and round up to a whole bundle. \u003ca href=\"\/pages\/bulk-quote?source=product-18148\u0026amp;page=18x14x8-ect-32-kraft-corrugated-boxes-bundle-of-20\u0026amp;spec=SKU+18148+%E2%80%94+18+%C3%97+14+%C3%97+8+in.%3B+20+boxes+per+bundle.+Quantity+to+confirm.\"\u003eRequest a quote for SKU 18148\u003c\/a\u003e.\u003c\/p\u003e\u003c\/noscript\u003e\u003c\/section\u003e\n\u003csection id=\"prp-fit-check\" class=\"prp-section\" aria-labelledby=\"prp-fit-title\"\u003e\u003cdiv class=\"prp-section-head\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003e02 \/ check the packed item\u003c\/div\u003e\n\u003ch3 id=\"prp-fit-title\"\u003eCheck all three dimensions.\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cp\u003eMeasure the whole item, including protrusions and the protection you plan to use.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-fit-grid\"\u003e\n\u003cdiv\u003e\n\u003cp id=\"pr-fit-help\"\u003eEnter inches as decimals or fractions, such as 3.5 or 3 1\/2. The checker tries all six axis-aligned orientations and adds your cushioning allowance to both sides of each dimension.\u003c\/p\u003e\n\u003cform id=\"pr-fit-form\" novalidate data-js-only\u003e\n\u003cdiv class=\"prp-fields\"\u003e\n\u003cdiv\u003e\n\u003clabel for=\"pr-fit-l\"\u003eItem length (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-l\" type=\"text\" inputmode=\"decimal\" value=\"17.375\" aria-describedby=\"pr-fit-help\"\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003clabel for=\"pr-fit-w\"\u003eItem width (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-w\" type=\"text\" inputmode=\"decimal\" value=\"13.375\" aria-describedby=\"pr-fit-help\"\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003clabel for=\"pr-fit-h\"\u003eItem height (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-h\" type=\"text\" inputmode=\"decimal\" value=\"7.375\" aria-describedby=\"pr-fit-help\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-field-wide\"\u003e\n\u003clabel for=\"pr-fit-pad\"\u003eCushioning per side (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-pad\" type=\"text\" inputmode=\"decimal\" value=\"0.25\" aria-describedby=\"pr-fit-padding-help\"\u003e\u003cp id=\"pr-fit-padding-help\" class=\"prp-help\"\u003e0.25 in. per side adds 0.5 in. to each dimension. This is your planning allowance, not a recommended protection level.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbutton type=\"submit\" class=\"prp-btn\"\u003eCheck the dimensions →\u003c\/button\u003e\u003cp id=\"pr-fit-status\" class=\"prp-status\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"\u003e\u003c\/p\u003e\n\u003c\/form\u003e\n\u003cnoscript\u003e\u003cp class=\"prp-help\"\u003eCompare the packed item with the inside dimensions: 18 × 14 × 8 in. Include cushioning on both sides.\u003c\/p\u003e\u003c\/noscript\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv id=\"pr-fit-result\" class=\"prp-fit-result\" hidden\u003e\n\u003cdiv class=\"prp-kicker\"\u003eDimensional comparison\u003c\/div\u003e\n\u003ch3 id=\"pr-fit-verdict\"\u003e\u003c\/h3\u003e\n\u003cdl\u003e\n\u003cdt\u003eItem orientation for comparison\u003c\/dt\u003e\n\u003cdd id=\"pr-fit-orientation\"\u003e\u003c\/dd\u003e\n\u003cdt\u003eEnvelope including cushioning\u003c\/dt\u003e\n\u003cdd id=\"pr-fit-envelope\"\u003e\u003c\/dd\u003e\n\u003c\/dl\u003e\n\u003cp id=\"pr-fit-note\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-fit-result\"\u003e\n\u003cdiv class=\"prp-kicker\"\u003eBefore you commit\u003c\/div\u003e\n\u003ch3\u003eCheck the complete\u003cbr\u003epacked item.\u003c\/h3\u003e\n\u003cp\u003eAllow for inserts, protrusions and dimensional tolerances. Test a physical packed sample for tight fits. Board grade alone does not establish a contents-weight or stacking-height limit.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"prp-section\" aria-labelledby=\"prp-spec-title\"\u003e\u003cdiv class=\"prp-section-head\"\u003e\u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003e03 \/ keep the specification clear\u003c\/div\u003e\n\u003ch3 id=\"prp-spec-title\"\u003eYour order, by the details.\u003c\/h3\u003e\n\u003c\/div\u003e\u003c\/div\u003e\n\u003cdl class=\"prp-spec-list\"\u003e\n\u003cdt\u003eSKU\u003c\/dt\u003e\n\u003cdd\u003e18148\u003c\/dd\u003e\n\u003cdt\u003eInside dimensions\u003c\/dt\u003e\n\u003cdd\u003e18 × 14 × 8 in.\u003c\/dd\u003e\n\u003cdt\u003eOrder increment\u003c\/dt\u003e\n\u003cdd\u003e20 boxes per bundle\u003c\/dd\u003e\n\u003cdt\u003eListed construction\u003c\/dt\u003e\n\u003cdd\u003eECT-32 Single Wall Corrugated\u003c\/dd\u003e\n\u003cdt\u003eColor\u003c\/dt\u003e\n\u003cdd\u003eKraft\u003c\/dd\u003e\n\u003c\/dl\u003e\n\u003cdiv class=\"prp-checklist\"\u003e\n\u003cdiv\u003e\n\u003cb\u003e01 \/ THE ITEM\u003c\/b\u003e\u003ch3\u003eMeasure it packed.\u003c\/h3\u003e\n\u003cp\u003eUse all three dimensions of the packed item. Allow for protection at the ends as well as along the sides.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cb\u003e02 \/ THE HANDLING\u003c\/b\u003e\u003ch3\u003eMatch the protection.\u003c\/h3\u003e\n\u003cp\u003eConsider weight, fragility, stacking and handling. Check the assembled package for your shipment; dimensions alone do not establish protection.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cb\u003e03 \/ THE DESTINATION\u003c\/b\u003e\u003ch3\u003eInclude delivery details.\u003c\/h3\u003e\n\u003cp\u003eSend the quantity, delivery ZIP, receiving type and required date. Availability and freight are confirmed for the exact order.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"prp-close\" aria-labelledby=\"prp-close-title\"\u003e\u003cdiv\u003e\n\u003ch3 id=\"prp-close-title\"\u003eBuying for a bigger job?\u003c\/h3\u003e\n\u003cp\u003eSend SKU 18148 with your quantity, delivery ZIP and timing. For multiple products, list each SKU and quantity separately.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ca href=\"\/pages\/bulk-quote?source=product-18148\u0026amp;page=18x14x8-ect-32-kraft-corrugated-boxes-bundle-of-20\u0026amp;spec=SKU+18148+%E2%80%94+18+%C3%97+14+%C3%97+8+in.%3B+20+boxes+per+bundle.+Quantity+to+confirm.\" data-pr-static-quote class=\"prp-btn\"\u003eRequest my delivered quote →\u003c\/a\u003e\u003c\/section\u003e\u003cnav class=\"prp-links\" aria-label=\"More buying guidance\"\u003e\u003ca href=\"\/pages\/corrugated-boxes-buying-guide\"\u003eCompare sizes and buying options\u003c\/a\u003e\u003ca href=\"\/pages\/corrugated-box-styles-rsc-hsc-fol\"\u003eUnderstand box styles\u003c\/a\u003e\u003ca href=\"\/pages\/single-wall-vs-double-wall-boxes\"\u003eCompare wall construction\u003c\/a\u003e\u003ca href=\"\/pages\/packaging-resellers\"\u003eOrdering for your own customer?\u003c\/a\u003e\u003c\/nav\u003e\u003cstyle\u003e\n#pr-product-packs{--ink:#102d35;--mint:#cdeb6b;--teal:#2e6964;--paper:#f6f7f1;--line:#d7ddd5;color:var(--ink);font-family:inherit;line-height:1.55;font-size:16px;max-width:100%;overflow-wrap:anywhere}\n#pr-product-packs *{box-sizing:border-box}\n#pr-product-packs [hidden]{display:none!important}\n#pr-product-packs h2,#pr-product-packs h3,#pr-product-packs p,#pr-product-packs figure{margin:0}\n#pr-product-packs h2,#pr-product-packs h3{color:var(--ink);line-height:1.12;letter-spacing:-.04em}\n#pr-product-packs a{color:inherit;text-underline-offset:4px}\n#pr-product-packs .prp-kicker{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;line-height:1.5}\n#pr-product-packs .prp-hero{background:var(--paper);border:1px solid var(--line);border-radius:18px;display:grid;grid-template-columns:1.08fr .92fr;gap:24px;padding:42px;margin-bottom:24px;align-items:center}\n#pr-product-packs .prp-hero h2{font-size:clamp(30px,4.2vw,54px);max-width:13ch;margin:14px 0 18px;font-weight:800}\n#pr-product-packs .prp-hero p{max-width:44ch;font-size:17px;color:#466063}\n#pr-product-packs .prp-jumps{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}\n#pr-product-packs .prp-jumps a{font-size:13px;font-weight:800;border-bottom:1px solid var(--ink);padding:3px 0;text-decoration:none}\n#pr-product-packs .prp-jumps span{color:#84908b}\n#pr-product-packs .prp-figure{min-width:0}\n#pr-product-packs .prp-figure svg{display:block;width:100%;height:auto;max-width:440px;margin:auto}\n#pr-product-packs .prp-figure figcaption{text-align:center;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#627576;margin-top:4px}\n#pr-product-packs .prp-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:38px}\n#pr-product-packs .prp-strip div{padding:20px 24px;border-right:1px solid var(--line)}\n#pr-product-packs .prp-strip div:last-child{border:0}\n#pr-product-packs .prp-strip strong{display:block;font-size:23px;line-height:1.2;letter-spacing:-.025em;margin-bottom:6px}\n#pr-product-packs .prp-strip span{font-size:12px;color:#627576}\n#pr-product-packs .prp-section{scroll-margin-top:130px;margin:38px 0}\n#pr-product-packs .prp-section-head{display:flex;justify-content:space-between;gap:28px;align-items:flex-end;margin-bottom:20px}\n#pr-product-packs .prp-section-head h3{font-size:clamp(25px,3vw,36px);margin-top:8px}\n#pr-product-packs .prp-section-head\u003ep{font-size:14px;max-width:40ch;color:#526968}\n#pr-product-packs .prp-planner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--line);border-radius:16px;overflow:hidden}\n#pr-product-packs .prp-inputs{padding:30px;background:white}\n#pr-product-packs label{display:block;font-size:13px;font-weight:800;margin-bottom:8px;line-height:1.5}\n#pr-product-packs input,#pr-product-packs textarea{width:100%;max-width:100%;border:1px solid #879c93;border-radius:7px;background:white;color:var(--ink);padding:12px 14px;font-family:inherit;font-size:16px;min-height:48px}\n#pr-product-packs input:focus,#pr-product-packs textarea:focus,#pr-product-packs a:focus-visible,#pr-product-packs button:focus-visible{outline:3px solid var(--teal);outline-offset:3px}\n#pr-product-packs button{cursor:pointer;font-family:inherit;min-height:44px}\n#pr-product-packs .prp-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid var(--ink);border-radius:7px;background:var(--ink);color:white;min-height:48px;padding:12px 18px;font-size:14px;font-weight:800;line-height:1.45;text-align:center}\n#pr-product-packs .prp-btn:hover{background:#214b54}\n#pr-product-packs .prp-btn--mint{background:var(--mint);color:var(--ink);border-color:var(--mint)}\n#pr-product-packs .prp-btn--mint:hover{background:#d8ee95}\n#pr-product-packs .prp-btn--outline{background:transparent;color:var(--ink);border-color:#879c93}\n#pr-product-packs .prp-btn--outline:hover{background:#f0f3e9}\n#pr-product-packs .prp-presets{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 18px}\n#pr-product-packs .prp-presets button{font-size:12px;font-weight:700;border:1px solid var(--line);border-radius:30px;background:var(--paper);color:var(--ink);padding:7px 13px;min-height:36px}\n#pr-product-packs .prp-help{font-size:12px;color:#627576;margin:12px 0 0;line-height:1.6}\n#pr-product-packs .prp-status{font-size:12px;min-height:20px;margin-top:12px;color:var(--teal)}\n#pr-product-packs .prp-output{background:var(--ink);color:white;padding:30px;min-width:0}\n#pr-product-packs .prp-output .prp-kicker{color:#c4d5d0}\n#pr-product-packs .prp-big-number{display:flex;align-items:baseline;gap:10px;margin:12px 0 20px}\n#pr-product-packs .prp-big-number strong{font-size:clamp(48px,7vw,72px);letter-spacing:-.06em;font-weight:800;line-height:1}\n#pr-product-packs .prp-big-number span{font-size:18px;color:#d5e2d9}\n#pr-product-packs .prp-output dl{display:grid;grid-template-columns:1fr auto;gap:10px 12px;font-size:13px;margin:0 0 22px}\n#pr-product-packs .prp-output dt{color:#cfdbd4}\n#pr-product-packs .prp-output dd{font-weight:800;text-align:right;margin:0}\n#pr-product-packs .prp-output .prp-btn{width:100%}\n#pr-product-packs .prp-output .prp-help{color:#c3d1cb}\n#pr-product-packs .prp-copy{color:white;background:transparent;border:0;border-bottom:1px solid #849b91;padding:3px 0;font-size:12px;min-height:38px;margin-top:12px}\n#pr-product-packs #pr-pack-brief{margin-top:14px;font-size:13px;line-height:1.6;min-height:160px}\n#pr-product-packs .prp-table-wrap{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:10px;margin-top:18px}\n#pr-product-packs table{width:100%;border-collapse:collapse;font-size:13px;min-width:300px;background:white}\n#pr-product-packs th,#pr-product-packs td{text-align:left;padding:13px 18px;border-bottom:1px solid var(--line);font-size:inherit;white-space:normal}\n#pr-product-packs th{background:var(--paper);font-weight:800;color:var(--ink)}\n#pr-product-packs tr:last-child td{border-bottom:0}\n#pr-product-packs .prp-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}\n#pr-product-packs .prp-field-wide{grid-column:1\/-1;max-width:340px}\n#pr-product-packs .prp-fit-grid{display:grid;grid-template-columns:1fr .85fr;gap:24px;border:1px solid var(--line);border-radius:16px;padding:30px;background:var(--paper)}\n#pr-product-packs .prp-fit-result{background:white;border:1px solid var(--line);border-radius:12px;padding:24px;align-self:start}\n#pr-product-packs .prp-fit-result h3{font-size:26px;letter-spacing:-.03em;margin:14px 0 18px}\n#pr-product-packs .prp-fit-result p{font-size:13px;color:#526968}\n#pr-product-packs .prp-fit-result[data-verdict='no-fit']{border-color:#b97557}\n#pr-product-packs .prp-fit-result dl{margin:20px 0;font-size:13px}\n#pr-product-packs .prp-fit-result dt{color:#526968;font-size:11px;text-transform:uppercase;letter-spacing:.07em;margin:14px 0 4px}\n#pr-product-packs .prp-fit-result dd{font-size:18px;font-weight:800;margin:0;line-height:1.4}\n#pr-product-packs .prp-fit-note{font-size:12px;color:#526968;margin-top:14px!important}\n#pr-product-packs .prp-checklist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;border-top:1px solid var(--line);padding-top:25px;margin-top:25px}\n#pr-product-packs .prp-checklist b{font-size:12px;display:block;color:var(--teal);margin-bottom:12px}\n#pr-product-packs .prp-checklist h3{font-size:22px;margin-bottom:10px}\n#pr-product-packs .prp-checklist p{font-size:13px;color:#526968}\n#pr-product-packs .prp-close{display:grid;grid-template-columns:1fr auto;align-items:center;gap:26px;background:var(--mint);border-radius:14px;padding:30px;margin-top:36px}\n#pr-product-packs .prp-close h3{font-size:28px;margin-bottom:10px}\n#pr-product-packs .prp-close p{font-size:14px;max-width:60ch}\n#pr-product-packs .prp-links{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:20px;font-size:12px;font-weight:700}\n#pr-product-packs [data-js-only]{display:none}\n#pr-product-packs.is-ready [data-js-only]{display:block}\n@media(max-width:760px){#pr-product-packs .prp-hero{grid-template-columns:1fr;padding:25px;gap:12px}#pr-product-packs .prp-hero h2{max-width:16ch;font-size:38px}#pr-product-packs .prp-figure svg{max-width:340px}#pr-product-packs .prp-strip div{padding:16px 12px}#pr-product-packs .prp-strip strong{font-size:20px}#pr-product-packs .prp-section-head{display:block}#pr-product-packs .prp-section-head\u003ep{margin-top:12px}#pr-product-packs .prp-planner,#pr-product-packs .prp-fit-grid{grid-template-columns:1fr}#pr-product-packs .prp-inputs,#pr-product-packs .prp-output{padding:24px}#pr-product-packs .prp-fit-grid{padding:24px}#pr-product-packs .prp-checklist{grid-template-columns:1fr;gap:24px}#pr-product-packs .prp-close{grid-template-columns:1fr;padding:24px}#pr-product-packs .prp-close .prp-btn{width:100%}}\n@media(max-width:380px){#pr-product-packs .prp-hero{padding:18px}#pr-product-packs .prp-hero h2{font-size:31px}#pr-product-packs .prp-strip{grid-template-columns:1fr}#pr-product-packs .prp-strip div{border:0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}#pr-product-packs .prp-strip strong{font-size:20px;margin:0}#pr-product-packs .prp-inputs,#pr-product-packs .prp-output,#pr-product-packs .prp-fit-grid{padding:18px}#pr-product-packs .prp-fields{grid-template-columns:1fr}#pr-product-packs .prp-field-wide{max-width:none}#pr-product-packs .prp-fit-result{padding:18px}}\n@media(prefers-reduced-motion:reduce){#pr-product-packs *{scroll-behavior:auto!important;transition:none!important}}\n\n#pr-product-packs .prp-warning{padding:16px;border-left:4px solid #2e6964;background:#e9f1e8;color:#102d35;font-size:14px;margin:16px 0}#pr-product-packs .prp-spec-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;margin:20px 0;font-size:14px}#pr-product-packs .prp-spec-list dd{margin:0;font-weight:700}#pr-product-packs .prp-spec-list dt{color:#526968}#pr-product-packs .prp-summary{margin:0 0 22px;font-size:16px;max-width:78ch}\n\u003c\/style\u003e\n\u003cscript\u003e(function (global) {\n  'use strict';\n  function measurement(value) {\n    if (typeof value === 'number') return value;\n    if (typeof value !== 'string') return NaN;\n    var s = value.trim(), mixed = s.match(\/^(?:(\\d+)\\s+)?(\\d+)\\\/(\\d+)$\/);\n    if (mixed) return Number(mixed[3]) ? Number(mixed[1] || 0) + Number(mixed[2]) \/ Number(mixed[3]) : NaN;\n    return \/^(?:\\d+(?:\\.\\d*)?|\\.\\d+)$\/.test(s) ? Number(s) : NaN;\n  }\n  function createPlanner(config) {\n    var box = config.dimensions.map(measurement), size = config.packCount;\n    if (box.length !== 3 || box.some(function(n) { return !Number.isFinite(n) || n \u003c= 0; }) || !Number.isSafeInteger(size) || size \u003c 1) throw new Error('Invalid product configuration.');\n    if (!\/^[A-Za-z0-9_-]+$\/.test(config.sku) || !\/^[a-z0-9-]+$\/.test(config.handle) || !['bundle','case','pack'].includes(config.unit)) throw new Error('Invalid product identity or sale unit.');\n    function packsFor(value) {\n      var n = typeof value === 'number' ? value : (typeof value === 'string' \u0026\u0026 \/^\\d+$\/.test(value.trim()) ? Number(value) : NaN);\n      if (!Number.isSafeInteger(n) || n \u003c 1 || n \u003e 1000000) throw new Error('Enter a whole number from 1 to 1,000,000 pieces.');\n      var packs = Math.ceil(n \/ size);\n      return { requested: n, packs: packs, pieces: packs * size, extra: packs * size - n };\n    }\n    function checkFit(values, padding) {\n      if (!Array.isArray(values) || values.length !== 3) throw new Error('Enter all three item dimensions.');\n      var item = values.map(measurement), pad = measurement(padding);\n      if (item.some(function(n) { return !Number.isFinite(n) || n \u003c= 0 || n \u003e 10000; })) throw new Error('Enter a positive measurement for all three item dimensions.');\n      if (!Number.isFinite(pad) || pad \u003c 0 || pad \u003e 100) throw new Error('Enter cushioning from 0 to 100 inches per side.');\n      var orders = [[0,1,2],[0,2,1],[1,0,2],[1,2,0],[2,0,1],[2,1,0]];\n      var candidates = orders.map(function(order) {\n        var oriented = order.map(function(i) { return item[i]; }), envelope = oriented.map(function(n) { return n + 2 * pad; });\n        var spare = envelope.map(function(n,i) { return box[i] - n; });\n        return { order: order, oriented: oriented, envelope: envelope, spare: spare, fits: spare.every(function(n) { return n \u003e= -1e-9; }) };\n      });\n      var result = candidates.find(function(c) { return c.fits; });\n      if (!result) result = candidates.sort(function(a,b) { return Math.min.apply(null,b.spare) - Math.min.apply(null,a.spare); })[0];\n      result.padding = pad; result.exact = result.fits \u0026\u0026 result.spare.some(function(n) { return Math.abs(n) \u003c 1e-9; });\n      result.insideVerified = config.dimensionBasis === 'inside';\n      return result;\n    }\n    function planLine(plan) {\n      return 'SKU ' + config.sku + ' — ' + plan.packs + ' ' + config.unit + (plan.packs === 1 ? '' : 's') + ' of ' + size + ' ' + config.pieceLabel + ' (' + plan.pieces + ' ' + config.pieceLabel + ' total)';\n    }\n    function quoteFor(plan) {\n      var p = new URLSearchParams({ source: 'product-' + config.sku + '-planner', page: config.handle, spec: planLine(plan) });\n      return '\/pages\/bulk-quote?' + p.toString();\n    }\n    function fitVerdict(result) {\n      if (!result.insideVerified) return result.fits ? 'Fits the listed envelope. Confirm usable inside dimensions.' : 'Exceeds the listed envelope. Confirm usable inside dimensions.';\n      return result.fits ? (result.exact ? 'Dimension match. Check the tight edges.' : 'The dimensions fit with your allowance.') : 'These dimensions need a different size.';\n    }\n    return { packsFor: packsFor, checkFit: checkFit, quoteFor: quoteFor, planLine: planLine, fitVerdict: fitVerdict };\n  }\n  var api = { createPlanner: createPlanner, measurement: measurement };\n  if (typeof module !== 'undefined' \u0026\u0026 module.exports) module.exports = api;\n  if (!global.document) return;\n  function init() {\n    var root = global.document.getElementById('pr-product-packs');\n    if (!root || root.dataset.initialized === 'true') return;\n    var config, planner;\n    try { config = JSON.parse(root.dataset.prConfig); planner = createPlanner(config); } catch (error) { return; }\n    root.dataset.initialized = 'true'; root.classList.add('is-ready');\n    var byId = function(id) { return root.querySelector('#' + id); };\n    var number = function(n) { return n.toLocaleString('en-US', { maximumFractionDigits: 4 }); };\n    var dimensions = function(ns) { return ns.map(number).join(' × ') + ' in.'; };\n    function event(action) { if (typeof global.prBuyerAction === 'function') { try { global.prBuyerAction(action, config.sku); } catch (error) { \/* Analytics must not block a buyer action. *\/ } } }\n    var packForm = byId('pr-pack-form'), count = byId('pr-pack-count'), packResult = byId('pr-pack-result'), status = byId('pr-pack-status'), quote = byId('pr-pack-quote'), brief = byId('pr-pack-brief'), plan = null;\n    function invalidate() {\n      plan = null; packResult.hidden = true; brief.hidden = true; brief.value = ''; quote.removeAttribute('href'); quote.setAttribute('aria-disabled','true');\n      status.textContent = 'Quantity changed. Calculate the updated ' + config.unit + ' count.';\n    }\n    function calculate(announce) {\n      try {\n        plan = planner.packsFor(count.value); brief.hidden = true; brief.value = '';\n        byId('pr-pack-bundles').textContent = number(plan.packs);\n        byId('pr-pack-total').textContent = number(plan.pieces); byId('pr-pack-extra').textContent = number(plan.extra); byId('pr-pack-requested').textContent = number(plan.requested);\n        quote.href = planner.quoteFor(plan); quote.removeAttribute('aria-disabled'); quote.textContent = 'Quote my ' + number(plan.packs) + '-' + config.unit + ' plan →';\n        packResult.hidden = false; status.textContent = announce ? 'Calculated: ' + planner.planLine(plan) + '.' : '';\n        if (announce) event('pack-calculated');\n      } catch (error) { invalidate(); status.textContent = error.message; count.focus(); }\n    }\n    packForm.addEventListener('submit',function(e) { e.preventDefault(); calculate(true); });\n    count.addEventListener('input',invalidate);\n    root.querySelectorAll('[data-pack-preset]').forEach(function(button) { button.addEventListener('click',function() { count.value = button.dataset.packPreset; calculate(true); }); });\n    quote.addEventListener('click',function(e) { if (!plan) e.preventDefault(); else event('quote-opened'); });\n    root.querySelectorAll('[data-pr-static-quote]').forEach(function(a) { a.addEventListener('click',function() { event('quote-opened'); }); });\n    byId('pr-pack-copy').addEventListener('click',function() {\n      if (!plan) return;\n      var text = 'Packrift ' + planner.planLine(plan) + '\\n' + config.specSummary + '\\nRequested: ' + plan.requested + ' ' + config.pieceLabel + '\\nDelivery ZIP, receiving requirements and required date: add to the quote request.\\nPlease confirm availability, freight and final delivered total.';\n      brief.value = text; brief.hidden = false;\n      function manual() { brief.focus(); brief.select(); status.textContent = 'Select and copy the order plan below.'; }\n      if (global.navigator \u0026\u0026 global.navigator.clipboard \u0026\u0026 global.isSecureContext) global.navigator.clipboard.writeText(text).then(function() { status.textContent = 'Order plan copied. Add your delivery details in the quote request.'; event('plan-copied'); }).catch(manual); else manual();\n    });\n    var fitForm = byId('pr-fit-form'), fitStatus = byId('pr-fit-status'), fitResult = byId('pr-fit-result');\n    fitForm.addEventListener('input',function() { fitResult.hidden = true; fitStatus.textContent = 'Measurements changed. Run the updated check.'; });\n    fitForm.addEventListener('submit',function(e) {\n      e.preventDefault();\n      try {\n        var r = planner.checkFit([byId('pr-fit-l').value,byId('pr-fit-w').value,byId('pr-fit-h').value],byId('pr-fit-pad').value);\n        var title = planner.fitVerdict(r);\n        byId('pr-fit-verdict').textContent = title; byId('pr-fit-orientation').textContent = dimensions(r.oriented) + ' (L × W × H)'; byId('pr-fit-envelope').textContent = dimensions(r.envelope);\n        var note = !r.insideVerified ? 'This product does not have a confirmed inside-dimension basis in the supplied specifications. Confirm usable internal space and closure clearance before selecting it. ' : '';\n        note += r.fits ? (r.exact ? 'At least one edge has no spare clearance beyond the cushioning allowance. Check tolerances and a physical packed sample.' : 'Remaining dimensional clearance: ' + dimensions(r.spare.map(function(n) { return Math.max(0,n); })) + '. Check the packed item and protection.') : 'No axis-aligned orientation fits within ' + dimensions(config.dimensions) + ' with this allowance.';\n        byId('pr-fit-note').textContent = note; fitResult.dataset.verdict = r.fits ? 'fit' : 'no-fit'; fitResult.hidden = false; fitStatus.textContent = title; event('fit-checked');\n      } catch (error) { fitResult.hidden = true; fitStatus.textContent = error.message; }\n    });\n    calculate(false);\n  }\n  if (global.document.readyState === 'loading') global.document.addEventListener('DOMContentLoaded',init); else init();\n})(typeof window !== 'undefined' ? window : globalThis);\n\u003c\/script\u003e\n\u003c\/div\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53449973825904,"sku":"18148","price":35.91,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/18148.jpg?v=1774854467"},{"product_id":"15x15x10-ect-32-kraft-corrugated-boxes-industrial-strength-bundle-of-20","title":"15x15x10 ECT-32 Kraft Corrugated Shipping Boxes 20-Pack","description":"\u003cdiv id=\"pr-product-packs\" class=\"pr-experience\" data-packrift-release=\"PACKRIFT-BUYER-GROWTH-20261003\" data-pr-buyer-sku=\"151510\" data-pr-buyer-cohort=\"20261003\" data-pr-config='{\"sku\":\"151510\",\"handle\":\"15x15x10-ect-32-kraft-corrugated-boxes-industrial-strength-bundle-of-20\",\"dimensions\":[15.0,15.0,10.0],\"dimensionBasis\":\"listed\",\"packCount\":20,\"unit\":\"bundle\",\"pieceLabel\":\"boxes\",\"specSummary\":\"15 \\u00d7 15 \\u00d7 10 in. listed dimensions; ECT-32 Single Wall Corrugated; Kraft; 20 boxes per bundle\"}'\u003e\n\u003cp class=\"prp-summary\"\u003eSKU 151510 is a kraft corrugated shipping box with listed dimensions of 15 × 15 × 10 inches. Each bundle contains 20 boxes. Listed construction: ECT-32 Single Wall Corrugated.\u003c\/p\u003e\n\u003cspan hidden aria-hidden=\"true\"\u003eProduct fit and specs\u003c\/span\u003e\n\u003csection class=\"prp-hero\" aria-labelledby=\"prp-overview-title\"\u003e\u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003eSKU 151510 · the packing plan\u003c\/div\u003e\n\u003ch2 id=\"prp-overview-title\"\u003eThe right size.\u003cbr\u003eThe right quantity.\u003c\/h2\u003e\n\u003cp\u003e15 × 15 × 10 inches. 20 boxes per bundle. Compare the measurements, work out your quantity, and carry an exact requirement into your quote.\u003c\/p\u003e\n\u003cnav class=\"prp-jumps\" aria-label=\"Product buying tools\"\u003e\u003ca href=\"#prp-pack-planner\"\u003ePlan my bundles\u003c\/a\u003e\u003cspan aria-hidden=\"true\"\u003e\/\u003c\/span\u003e\u003ca href=\"#prp-fit-check\"\u003eCheck my dimensions\u003c\/a\u003e\u003c\/nav\u003e\n\u003c\/div\u003e\n\u003cfigure class=\"prp-figure\"\u003e\u003csvg viewbox=\"0 0 440 350\" role=\"img\" aria-labelledby=\"pr-drawing-title pr-drawing-desc\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003ctitle id=\"pr-drawing-title\"\u003e15 × 15 × 10 inch carton dimension diagram\u003c\/title\u003e\n\u003cdesc id=\"pr-drawing-desc\"\u003eListed dimensions: length 15, width 15, height 10 inches. Schematic, not to scale.\u003c\/desc\u003e\u003cellipse cx=\"232\" cy=\"307\" rx=\"170\" ry=\"19\" fill=\"#e0e6d6\"\u003e\u003c\/ellipse\u003e\u003cpath d=\"M65 128 L287 80 L387 147 L165 199 Z\" fill=\"#cdeb6b\" stroke=\"#102d35\" stroke-width=\"2\"\u003e\u003c\/path\u003e\u003cpath d=\"M65 128 L165 199 L165 284 L65 213 Z\" fill=\"#8ea795\" stroke=\"#102d35\" stroke-width=\"2\"\u003e\u003c\/path\u003e\u003cpath d=\"M165 199 L387 147 L387 232 L165 284 Z\" fill=\"#2e6964\" stroke=\"#102d35\" stroke-width=\"2\"\u003e\u003c\/path\u003e\u003cpath d=\"M174 112 L275 173\" fill=\"none\" stroke=\"#102d35\" stroke-width=\"2\" stroke-dasharray=\"6 5\"\u003e\u003c\/path\u003e\u003cg stroke=\"#102d35\" fill=\"none\" stroke-width=\"1.5\"\u003e\u003cpath d=\"M167 318 L390 266 M162 312 L170 324 M386 260 L394 272\"\u003e\u003c\/path\u003e\u003cpath d=\"M42 140 L42 209 M36 140 L48 140 M36 209 L48 209\"\u003e\u003c\/path\u003e\u003cpath d=\"M300 60 L407 132 M295 65 L305 55 M402 137 L412 127\"\u003e\u003c\/path\u003e\u003c\/g\u003e\u003cg fill=\"#102d35\" font-family=\"Arial,sans-serif\" font-size=\"14\" font-weight=\"700\"\u003e\u003ctext x=\"280\" y=\"329\" text-anchor=\"middle\"\u003e15 in. length\u003c\/text\u003e\u003ctext x=\"24\" y=\"220\" text-anchor=\"middle\" transform=\"rotate(-90 24 220)\"\u003e10 in. height\u003c\/text\u003e\u003ctext x=\"345\" y=\"48\" text-anchor=\"middle\"\u003e15 in. width\u003c\/text\u003e\u003c\/g\u003e\u003crect x=\"66\" y=\"41\" rx=\"14\" width=\"68\" height=\"29\" fill=\"#102d35\"\u003e\u003c\/rect\u003e\u003ctext x=\"100.0\" y=\"60\" text-anchor=\"middle\" fill=\"#cdeb6b\" font-family=\"Arial,sans-serif\" font-size=\"12\" font-weight=\"700\"\u003e151510\u003c\/text\u003e\u003c\/svg\u003e\u003cfigcaption\u003eListed dimensions · schematic, not to scale\u003c\/figcaption\u003e\u003c\/figure\u003e\u003c\/section\u003e\n\u003cdiv class=\"prp-strip\" aria-label=\"Product essentials\"\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e15 × 15 × 10\u003c\/strong\u003e\u003cspan\u003eListed dimensions, in. · L × W × H\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e20 boxes\u003c\/strong\u003e\u003cspan\u003eOne bundle · one order increment\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eECT-32 Single Wall Corrugated\u003c\/strong\u003e\u003cspan\u003eKraft · shipping carton\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003csection id=\"prp-pack-planner\" class=\"prp-section\" aria-labelledby=\"prp-pack-title\"\u003e\u003cdiv class=\"prp-section-head\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003e01 \/ order the right quantity\u003c\/div\u003e\n\u003ch3 id=\"prp-pack-title\"\u003ePieces needed. Bundles ordered.\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cp\u003eThe cart quantity counts bundles. Round your requirement up to complete bundles of 20 boxes.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-planner\" data-js-only\u003e\n\u003cdiv class=\"prp-inputs\"\u003e\u003cform id=\"pr-pack-form\" novalidate\u003e\n\u003clabel for=\"pr-pack-count\"\u003eHow many individual boxes do you need?\u003c\/label\u003e\u003cinput id=\"pr-pack-count\" type=\"number\" min=\"1\" max=\"1000000\" step=\"1\" value=\"80\" inputmode=\"numeric\" aria-describedby=\"pr-pack-help pr-pack-status\"\u003e\u003cdiv class=\"prp-presets\" aria-label=\"Common quantities\"\u003e\n\u003cbutton type=\"button\" data-pack-preset=\"100\"\u003e100 boxes\u003c\/button\u003e\u003cbutton type=\"button\" data-pack-preset=\"500\"\u003e500 boxes\u003c\/button\u003e\u003cbutton type=\"button\" data-pack-preset=\"1000\"\u003e1,000 boxes\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cbutton class=\"prp-btn\" type=\"submit\"\u003eCalculate my bundles →\u003c\/button\u003e\u003cp id=\"pr-pack-help\" class=\"prp-help\"\u003eQuantity planning only. Confirm the current price, availability and delivered total for your order.\u003c\/p\u003e\n\u003cp id=\"pr-pack-status\" class=\"prp-status\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"\u003e\u003c\/p\u003e\n\u003c\/form\u003e\u003c\/div\u003e\n\u003cdiv class=\"prp-output\"\u003e\u003cdiv id=\"pr-pack-result\"\u003e\n\u003cdiv class=\"prp-kicker\"\u003eYour complete-bundle plan\u003c\/div\u003e\n\u003cdiv class=\"prp-big-number\"\u003e\n\u003cstrong id=\"pr-pack-bundles\"\u003e4\u003c\/strong\u003e\u003cspan\u003ebundles\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdl\u003e\n\u003cdt\u003eBoxes you asked for\u003c\/dt\u003e\n\u003cdd id=\"pr-pack-requested\"\u003e80\u003c\/dd\u003e\n\u003cdt\u003eTotal boxes in your order\u003c\/dt\u003e\n\u003cdd id=\"pr-pack-total\"\u003e80\u003c\/dd\u003e\n\u003cdt\u003eExtra pieces from rounding\u003c\/dt\u003e\n\u003cdd id=\"pr-pack-extra\"\u003e0\u003c\/dd\u003e\n\u003c\/dl\u003e\n\u003ca id=\"pr-pack-quote\" class=\"prp-btn prp-btn--mint\" href=\"\/pages\/bulk-quote?source=product-151510-planner\u0026amp;page=15x15x10-ect-32-kraft-corrugated-boxes-industrial-strength-bundle-of-20\u0026amp;spec=SKU+151510+%E2%80%94+4+bundles+of+20+boxes+%2880+boxes+total%29\"\u003eQuote my 4-bundle plan →\u003c\/a\u003e\u003cp class=\"prp-help\"\u003eYour SKU and planned quantity carry into the quote request. Add your delivery ZIP, timing and receiving details there.\u003c\/p\u003e\n\u003cbutton id=\"pr-pack-copy\" class=\"prp-copy\" type=\"button\"\u003eCopy the order plan\u003c\/button\u003e\u003ctextarea id=\"pr-pack-brief\" hidden readonly aria-label=\"Order plan to copy\"\u003e\u003c\/textarea\u003e\n\u003c\/div\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-table-wrap\"\u003e\u003ctable\u003e\n\u003ccaption style=\"text-align:left;padding:14px 18px;font-weight:700\"\u003eQuick quantity reference\u003c\/caption\u003e\n\u003cthead\u003e\u003ctr\u003e\n\u003cth scope=\"col\"\u003eBoxes needed\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eBundles to order\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eBoxes supplied\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e20\u003c\/td\u003e\n\u003ctd\u003e1\u003c\/td\u003e\n\u003ctd\u003e20\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e80\u003c\/td\u003e\n\u003ctd\u003e4\u003c\/td\u003e\n\u003ctd\u003e80\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e81\u003c\/td\u003e\n\u003ctd\u003e5\u003c\/td\u003e\n\u003ctd\u003e100\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e500\u003c\/td\u003e\n\u003ctd\u003e25\u003c\/td\u003e\n\u003ctd\u003e500\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e1,000\u003c\/td\u003e\n\u003ctd\u003e50\u003c\/td\u003e\n\u003ctd\u003e1,000\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\u003c\/div\u003e\n\u003cnoscript\u003e\u003cp class=\"prp-help\"\u003eDivide the number of boxes you need by 20 and round up to a whole bundle. \u003ca href=\"\/pages\/bulk-quote?source=product-151510\u0026amp;page=15x15x10-ect-32-kraft-corrugated-boxes-industrial-strength-bundle-of-20\u0026amp;spec=SKU+151510+%E2%80%94+15+%C3%97+15+%C3%97+10+in.%3B+20+boxes+per+bundle.+Quantity+to+confirm.\"\u003eRequest a quote for SKU 151510\u003c\/a\u003e.\u003c\/p\u003e\u003c\/noscript\u003e\u003c\/section\u003e\n\u003csection id=\"prp-fit-check\" class=\"prp-section\" aria-labelledby=\"prp-fit-title\"\u003e\u003cdiv class=\"prp-section-head\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003e02 \/ check the packed item\u003c\/div\u003e\n\u003ch3 id=\"prp-fit-title\"\u003eCompare the listed envelope.\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cp\u003eMeasure the whole item, including protrusions and the protection you plan to use.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-fit-grid\"\u003e\n\u003cdiv\u003e\n\u003cp class=\"prp-warning\"\u003eUsable inside dimensions are not confirmed. Compare the listed envelope below, then confirm internal space and closure clearance before ordering.\u003c\/p\u003e\n\u003cp id=\"pr-fit-help\"\u003eEnter inches as decimals or fractions, such as 3.5 or 3 1\/2. The checker tries all six axis-aligned orientations and adds your cushioning allowance to both sides of each dimension.\u003c\/p\u003e\n\u003cform id=\"pr-fit-form\" novalidate data-js-only\u003e\n\u003cdiv class=\"prp-fields\"\u003e\n\u003cdiv\u003e\n\u003clabel for=\"pr-fit-l\"\u003eItem length (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-l\" type=\"text\" inputmode=\"decimal\" value=\"14.375\" aria-describedby=\"pr-fit-help\"\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003clabel for=\"pr-fit-w\"\u003eItem width (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-w\" type=\"text\" inputmode=\"decimal\" value=\"14.375\" aria-describedby=\"pr-fit-help\"\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003clabel for=\"pr-fit-h\"\u003eItem height (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-h\" type=\"text\" inputmode=\"decimal\" value=\"9.375\" aria-describedby=\"pr-fit-help\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-field-wide\"\u003e\n\u003clabel for=\"pr-fit-pad\"\u003eCushioning per side (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-pad\" type=\"text\" inputmode=\"decimal\" value=\"0.25\" aria-describedby=\"pr-fit-padding-help\"\u003e\u003cp id=\"pr-fit-padding-help\" class=\"prp-help\"\u003e0.25 in. per side adds 0.5 in. to each dimension. This is your planning allowance, not a recommended protection level.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbutton type=\"submit\" class=\"prp-btn\"\u003eCompare the listed envelope →\u003c\/button\u003e\u003cp id=\"pr-fit-status\" class=\"prp-status\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"\u003e\u003c\/p\u003e\n\u003c\/form\u003e\n\u003cnoscript\u003e\u003cp class=\"prp-help\"\u003eCompare the packed item with the listed dimensions: 15 × 15 × 10 in. Include cushioning on both sides.\u003c\/p\u003e\u003c\/noscript\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv id=\"pr-fit-result\" class=\"prp-fit-result\" hidden\u003e\n\u003cdiv class=\"prp-kicker\"\u003eDimensional comparison\u003c\/div\u003e\n\u003cp class=\"prp-warning\"\u003eUsable inside dimensions are not confirmed. Compare the listed envelope below, then confirm internal space and closure clearance before ordering.\u003c\/p\u003e\n\u003ch3 id=\"pr-fit-verdict\"\u003e\u003c\/h3\u003e\n\u003cdl\u003e\n\u003cdt\u003eItem orientation for comparison\u003c\/dt\u003e\n\u003cdd id=\"pr-fit-orientation\"\u003e\u003c\/dd\u003e\n\u003cdt\u003eEnvelope including cushioning\u003c\/dt\u003e\n\u003cdd id=\"pr-fit-envelope\"\u003e\u003c\/dd\u003e\n\u003c\/dl\u003e\n\u003cp id=\"pr-fit-note\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-fit-result\"\u003e\n\u003cdiv class=\"prp-kicker\"\u003eBefore you commit\u003c\/div\u003e\n\u003ch3\u003eCheck the complete\u003cbr\u003epacked item.\u003c\/h3\u003e\n\u003cp\u003eAllow for inserts, protrusions and dimensional tolerances. Test a physical packed sample for tight fits. Board grade alone does not establish a contents-weight or stacking-height limit.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"prp-section\" aria-labelledby=\"prp-spec-title\"\u003e\u003cdiv class=\"prp-section-head\"\u003e\u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003e03 \/ keep the specification clear\u003c\/div\u003e\n\u003ch3 id=\"prp-spec-title\"\u003eYour order, by the details.\u003c\/h3\u003e\n\u003c\/div\u003e\u003c\/div\u003e\n\u003cdl class=\"prp-spec-list\"\u003e\n\u003cdt\u003eSKU\u003c\/dt\u003e\n\u003cdd\u003e151510\u003c\/dd\u003e\n\u003cdt\u003eListed dimensions\u003c\/dt\u003e\n\u003cdd\u003e15 × 15 × 10 in.\u003c\/dd\u003e\n\u003cdt\u003eOrder increment\u003c\/dt\u003e\n\u003cdd\u003e20 boxes per bundle\u003c\/dd\u003e\n\u003cdt\u003eListed construction\u003c\/dt\u003e\n\u003cdd\u003eECT-32 Single Wall Corrugated\u003c\/dd\u003e\n\u003cdt\u003eColor\u003c\/dt\u003e\n\u003cdd\u003eKraft\u003c\/dd\u003e\n\u003c\/dl\u003e\n\u003cdiv class=\"prp-checklist\"\u003e\n\u003cdiv\u003e\n\u003cb\u003e01 \/ THE ITEM\u003c\/b\u003e\u003ch3\u003eMeasure it packed.\u003c\/h3\u003e\n\u003cp\u003eUse all three dimensions of the packed item. Allow for protection at the ends as well as along the sides.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cb\u003e02 \/ THE HANDLING\u003c\/b\u003e\u003ch3\u003eMatch the protection.\u003c\/h3\u003e\n\u003cp\u003eConsider weight, fragility, stacking and handling. Check the assembled package for your shipment; dimensions alone do not establish protection.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cb\u003e03 \/ THE DESTINATION\u003c\/b\u003e\u003ch3\u003eInclude delivery details.\u003c\/h3\u003e\n\u003cp\u003eSend the quantity, delivery ZIP, receiving type and required date. Availability and freight are confirmed for the exact order.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"prp-close\" aria-labelledby=\"prp-close-title\"\u003e\u003cdiv\u003e\n\u003ch3 id=\"prp-close-title\"\u003eBuying for a bigger job?\u003c\/h3\u003e\n\u003cp\u003eSend SKU 151510 with your quantity, delivery ZIP and timing. For multiple products, list each SKU and quantity separately.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ca href=\"\/pages\/bulk-quote?source=product-151510\u0026amp;page=15x15x10-ect-32-kraft-corrugated-boxes-industrial-strength-bundle-of-20\u0026amp;spec=SKU+151510+%E2%80%94+15+%C3%97+15+%C3%97+10+in.%3B+20+boxes+per+bundle.+Quantity+to+confirm.\" data-pr-static-quote class=\"prp-btn\"\u003eRequest my delivered quote →\u003c\/a\u003e\u003c\/section\u003e\u003cnav class=\"prp-links\" aria-label=\"Related product buying tools\"\u003e\u003cspan\u003eExplore another size and quantity plan:\u003c\/span\u003e\u003ca data-pr-tool-route=\"related\" data-pr-tool-sku=\"HD161410\" href=\"\/products\/16x14x10-ect-44-heavy-duty-corrugated-boxes-bundle-of-25#prp-pack-planner\"\u003e16 × 14 × 10 in. · HD161410 · 25 per bundle\u003c\/a\u003e\u003ca data-pr-tool-route=\"related\" data-pr-tool-sku=\"HD151210DW\" href=\"\/products\/15x12x10-double-wall-corrugated-boxes-ect-48-kraft-bundle-of-15#prp-pack-planner\"\u003e15 × 12 × 10 in. · HD151210DW · 15 per bundle\u003c\/a\u003e\u003c\/nav\u003e\u003cnav class=\"prp-links\" aria-label=\"More buying guidance\"\u003e\u003ca href=\"\/pages\/corrugated-boxes-buying-guide\"\u003eCompare sizes and buying options\u003c\/a\u003e\u003ca href=\"\/pages\/corrugated-box-styles-rsc-hsc-fol\"\u003eUnderstand box styles\u003c\/a\u003e\u003ca href=\"\/pages\/single-wall-vs-double-wall-boxes\"\u003eCompare wall construction\u003c\/a\u003e\u003ca href=\"\/pages\/packaging-resellers\"\u003eOrdering for your own customer?\u003c\/a\u003e\u003c\/nav\u003e\u003cstyle\u003e\n#pr-product-packs{--ink:#102d35;--mint:#cdeb6b;--teal:#2e6964;--paper:#f6f7f1;--line:#d7ddd5;color:var(--ink);font-family:inherit;line-height:1.55;font-size:16px;max-width:100%;overflow-wrap:anywhere}\n#pr-product-packs *{box-sizing:border-box}\n#pr-product-packs [hidden]{display:none!important}\n#pr-product-packs h2,#pr-product-packs h3,#pr-product-packs p,#pr-product-packs figure{margin:0}\n#pr-product-packs h2,#pr-product-packs h3{color:var(--ink);line-height:1.12;letter-spacing:-.04em}\n#pr-product-packs a{color:inherit;text-underline-offset:4px}\n#pr-product-packs .prp-kicker{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;line-height:1.5}\n#pr-product-packs .prp-hero{background:var(--paper);border:1px solid var(--line);border-radius:18px;display:grid;grid-template-columns:1.08fr .92fr;gap:24px;padding:42px;margin-bottom:24px;align-items:center}\n#pr-product-packs .prp-hero h2{font-size:clamp(30px,4.2vw,54px);max-width:13ch;margin:14px 0 18px;font-weight:800}\n#pr-product-packs .prp-hero p{max-width:44ch;font-size:17px;color:#466063}\n#pr-product-packs .prp-jumps{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}\n#pr-product-packs .prp-jumps a{font-size:13px;font-weight:800;border-bottom:1px solid var(--ink);padding:3px 0;text-decoration:none}\n#pr-product-packs .prp-jumps span{color:#84908b}\n#pr-product-packs .prp-figure{min-width:0}\n#pr-product-packs .prp-figure svg{display:block;width:100%;height:auto;max-width:440px;margin:auto}\n#pr-product-packs .prp-figure figcaption{text-align:center;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#627576;margin-top:4px}\n#pr-product-packs .prp-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:38px}\n#pr-product-packs .prp-strip div{padding:20px 24px;border-right:1px solid var(--line)}\n#pr-product-packs .prp-strip div:last-child{border:0}\n#pr-product-packs .prp-strip strong{display:block;font-size:23px;line-height:1.2;letter-spacing:-.025em;margin-bottom:6px}\n#pr-product-packs .prp-strip span{font-size:12px;color:#627576}\n#pr-product-packs .prp-section{scroll-margin-top:130px;margin:38px 0}\n#pr-product-packs .prp-section-head{display:flex;justify-content:space-between;gap:28px;align-items:flex-end;margin-bottom:20px}\n#pr-product-packs .prp-section-head h3{font-size:clamp(25px,3vw,36px);margin-top:8px}\n#pr-product-packs .prp-section-head\u003ep{font-size:14px;max-width:40ch;color:#526968}\n#pr-product-packs .prp-planner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--line);border-radius:16px;overflow:hidden}\n#pr-product-packs .prp-inputs{padding:30px;background:white}\n#pr-product-packs label{display:block;font-size:13px;font-weight:800;margin-bottom:8px;line-height:1.5}\n#pr-product-packs input,#pr-product-packs textarea{width:100%;max-width:100%;border:1px solid #879c93;border-radius:7px;background:white;color:var(--ink);padding:12px 14px;font-family:inherit;font-size:16px;min-height:48px}\n#pr-product-packs input:focus,#pr-product-packs textarea:focus,#pr-product-packs a:focus-visible,#pr-product-packs button:focus-visible{outline:3px solid var(--teal);outline-offset:3px}\n#pr-product-packs button{cursor:pointer;font-family:inherit;min-height:44px}\n#pr-product-packs .prp-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid var(--ink);border-radius:7px;background:var(--ink);color:white;min-height:48px;padding:12px 18px;font-size:14px;font-weight:800;line-height:1.45;text-align:center}\n#pr-product-packs .prp-btn:hover{background:#214b54}\n#pr-product-packs .prp-btn--mint{background:var(--mint);color:var(--ink);border-color:var(--mint)}\n#pr-product-packs .prp-btn--mint:hover{background:#d8ee95}\n#pr-product-packs .prp-btn--outline{background:transparent;color:var(--ink);border-color:#879c93}\n#pr-product-packs .prp-btn--outline:hover{background:#f0f3e9}\n#pr-product-packs .prp-presets{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 18px}\n#pr-product-packs .prp-presets button{font-size:12px;font-weight:700;border:1px solid var(--line);border-radius:30px;background:var(--paper);color:var(--ink);padding:7px 13px;min-height:36px}\n#pr-product-packs .prp-help{font-size:12px;color:#627576;margin:12px 0 0;line-height:1.6}\n#pr-product-packs .prp-status{font-size:12px;min-height:20px;margin-top:12px;color:var(--teal)}\n#pr-product-packs .prp-output{background:var(--ink);color:white;padding:30px;min-width:0}\n#pr-product-packs .prp-output .prp-kicker{color:#c4d5d0}\n#pr-product-packs .prp-big-number{display:flex;align-items:baseline;gap:10px;margin:12px 0 20px}\n#pr-product-packs .prp-big-number strong{font-size:clamp(48px,7vw,72px);letter-spacing:-.06em;font-weight:800;line-height:1}\n#pr-product-packs .prp-big-number span{font-size:18px;color:#d5e2d9}\n#pr-product-packs .prp-output dl{display:grid;grid-template-columns:1fr auto;gap:10px 12px;font-size:13px;margin:0 0 22px}\n#pr-product-packs .prp-output dt{color:#cfdbd4}\n#pr-product-packs .prp-output dd{font-weight:800;text-align:right;margin:0}\n#pr-product-packs .prp-output .prp-btn{width:100%}\n#pr-product-packs .prp-output .prp-help{color:#c3d1cb}\n#pr-product-packs .prp-copy{color:white;background:transparent;border:0;border-bottom:1px solid #849b91;padding:3px 0;font-size:12px;min-height:38px;margin-top:12px}\n#pr-product-packs #pr-pack-brief{margin-top:14px;font-size:13px;line-height:1.6;min-height:160px}\n#pr-product-packs .prp-table-wrap{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:10px;margin-top:18px}\n#pr-product-packs table{width:100%;border-collapse:collapse;font-size:13px;min-width:300px;background:white}\n#pr-product-packs th,#pr-product-packs td{text-align:left;padding:13px 18px;border-bottom:1px solid var(--line);font-size:inherit;white-space:normal}\n#pr-product-packs th{background:var(--paper);font-weight:800;color:var(--ink)}\n#pr-product-packs tr:last-child td{border-bottom:0}\n#pr-product-packs .prp-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}\n#pr-product-packs .prp-field-wide{grid-column:1\/-1;max-width:340px}\n#pr-product-packs .prp-fit-grid{display:grid;grid-template-columns:1fr .85fr;gap:24px;border:1px solid var(--line);border-radius:16px;padding:30px;background:var(--paper)}\n#pr-product-packs .prp-fit-result{background:white;border:1px solid var(--line);border-radius:12px;padding:24px;align-self:start}\n#pr-product-packs .prp-fit-result h3{font-size:26px;letter-spacing:-.03em;margin:14px 0 18px}\n#pr-product-packs .prp-fit-result p{font-size:13px;color:#526968}\n#pr-product-packs .prp-fit-result[data-verdict='no-fit']{border-color:#b97557}\n#pr-product-packs .prp-fit-result dl{margin:20px 0;font-size:13px}\n#pr-product-packs .prp-fit-result dt{color:#526968;font-size:11px;text-transform:uppercase;letter-spacing:.07em;margin:14px 0 4px}\n#pr-product-packs .prp-fit-result dd{font-size:18px;font-weight:800;margin:0;line-height:1.4}\n#pr-product-packs .prp-fit-note{font-size:12px;color:#526968;margin-top:14px!important}\n#pr-product-packs .prp-checklist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;border-top:1px solid var(--line);padding-top:25px;margin-top:25px}\n#pr-product-packs .prp-checklist b{font-size:12px;display:block;color:var(--teal);margin-bottom:12px}\n#pr-product-packs .prp-checklist h3{font-size:22px;margin-bottom:10px}\n#pr-product-packs .prp-checklist p{font-size:13px;color:#526968}\n#pr-product-packs .prp-close{display:grid;grid-template-columns:1fr auto;align-items:center;gap:26px;background:var(--mint);border-radius:14px;padding:30px;margin-top:36px}\n#pr-product-packs .prp-close h3{font-size:28px;margin-bottom:10px}\n#pr-product-packs .prp-close p{font-size:14px;max-width:60ch}\n#pr-product-packs .prp-links{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:20px;font-size:12px;font-weight:700}\n#pr-product-packs [data-js-only]{display:none}\n#pr-product-packs.is-ready [data-js-only]{display:block}\n@media(max-width:760px){#pr-product-packs .prp-hero{grid-template-columns:1fr;padding:25px;gap:12px}#pr-product-packs .prp-hero h2{max-width:16ch;font-size:38px}#pr-product-packs .prp-figure svg{max-width:340px}#pr-product-packs .prp-strip div{padding:16px 12px}#pr-product-packs .prp-strip strong{font-size:20px}#pr-product-packs .prp-section-head{display:block}#pr-product-packs .prp-section-head\u003ep{margin-top:12px}#pr-product-packs .prp-planner,#pr-product-packs .prp-fit-grid{grid-template-columns:1fr}#pr-product-packs .prp-inputs,#pr-product-packs .prp-output{padding:24px}#pr-product-packs .prp-fit-grid{padding:24px}#pr-product-packs .prp-checklist{grid-template-columns:1fr;gap:24px}#pr-product-packs .prp-close{grid-template-columns:1fr;padding:24px}#pr-product-packs .prp-close .prp-btn{width:100%}}\n@media(max-width:380px){#pr-product-packs .prp-hero{padding:18px}#pr-product-packs .prp-hero h2{font-size:31px}#pr-product-packs .prp-strip{grid-template-columns:1fr}#pr-product-packs .prp-strip div{border:0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}#pr-product-packs .prp-strip strong{font-size:20px;margin:0}#pr-product-packs .prp-inputs,#pr-product-packs .prp-output,#pr-product-packs .prp-fit-grid{padding:18px}#pr-product-packs .prp-fields{grid-template-columns:1fr}#pr-product-packs .prp-field-wide{max-width:none}#pr-product-packs .prp-fit-result{padding:18px}}\n@media(prefers-reduced-motion:reduce){#pr-product-packs *{scroll-behavior:auto!important;transition:none!important}}\n\n#pr-product-packs .prp-warning{padding:16px;border-left:4px solid #2e6964;background:#e9f1e8;color:#102d35;font-size:14px;margin:16px 0}#pr-product-packs .prp-spec-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;margin:20px 0;font-size:14px}#pr-product-packs .prp-spec-list dd{margin:0;font-weight:700}#pr-product-packs .prp-spec-list dt{color:#526968}#pr-product-packs .prp-summary{margin:0 0 22px;font-size:16px;max-width:78ch}\n\u003c\/style\u003e\n\u003cscript\u003e(function (global) {\n  'use strict';\n  function measurement(value) {\n    if (typeof value === 'number') return value;\n    if (typeof value !== 'string') return NaN;\n    var s = value.trim(), mixed = s.match(\/^(?:(\\d+)\\s+)?(\\d+)\\\/(\\d+)$\/);\n    if (mixed) return Number(mixed[3]) ? Number(mixed[1] || 0) + Number(mixed[2]) \/ Number(mixed[3]) : NaN;\n    return \/^(?:\\d+(?:\\.\\d*)?|\\.\\d+)$\/.test(s) ? Number(s) : NaN;\n  }\n  function createPlanner(config) {\n    var box = (config.dimensions || []).map(measurement), size = config.packCount;\n    if ((box.length !== 0 \u0026\u0026 box.length !== 3) || box.some(function(n) { return !Number.isFinite(n) || n \u003c= 0; }) || !Number.isSafeInteger(size) || size \u003c 1) throw new Error('Invalid product configuration.');\n    if (!\/^[A-Za-z0-9_-]+$\/.test(config.sku) || !\/^[a-z0-9-]+$\/.test(config.handle) || !['bundle','case','pack','roll'].includes(config.unit)) throw new Error('Invalid product identity or sale unit.');\n    function packsFor(value) {\n      var n = typeof value === 'number' ? value : (typeof value === 'string' \u0026\u0026 \/^\\d+$\/.test(value.trim()) ? Number(value) : NaN);\n      if (!Number.isSafeInteger(n) || n \u003c 1 || n \u003e 1000000) throw new Error('Enter a whole number from 1 to 1,000,000 pieces.');\n      var packs = Math.ceil(n \/ size);\n      return { requested: n, packs: packs, pieces: packs * size, extra: packs * size - n };\n    }\n    function checkFit(values, padding) {\n      if (box.length !== 3) throw new Error(\"This product has no three-dimensional fit checker.\");\n      if (!Array.isArray(values) || values.length !== 3) throw new Error('Enter all three item dimensions.');\n      var item = values.map(measurement), pad = measurement(padding);\n      if (item.some(function(n) { return !Number.isFinite(n) || n \u003c= 0 || n \u003e 10000; })) throw new Error('Enter a positive measurement for all three item dimensions.');\n      if (!Number.isFinite(pad) || pad \u003c 0 || pad \u003e 100) throw new Error('Enter cushioning from 0 to 100 inches per side.');\n      var orders = [[0,1,2],[0,2,1],[1,0,2],[1,2,0],[2,0,1],[2,1,0]];\n      var candidates = orders.map(function(order) {\n        var oriented = order.map(function(i) { return item[i]; }), envelope = oriented.map(function(n) { return n + 2 * pad; });\n        var spare = envelope.map(function(n,i) { return box[i] - n; });\n        return { order: order, oriented: oriented, envelope: envelope, spare: spare, fits: spare.every(function(n) { return n \u003e= -1e-9; }) };\n      });\n      var result = candidates.find(function(c) { return c.fits; });\n      if (!result) result = candidates.sort(function(a,b) { return Math.min.apply(null,b.spare) - Math.min.apply(null,a.spare); })[0];\n      result.padding = pad; result.exact = result.fits \u0026\u0026 result.spare.some(function(n) { return Math.abs(n) \u003c 1e-9; });\n      result.insideVerified = config.dimensionBasis === 'inside';\n      return result;\n    }\n    function planLine(plan) {\n      return 'SKU ' + config.sku + ' — ' + plan.packs + ' ' + config.unit + (plan.packs === 1 ? '' : 's') + ' of ' + size + ' ' + config.pieceLabel + ' (' + plan.pieces + ' ' + config.pieceLabel + ' total)';\n    }\n    function quoteFor(plan) {\n      var p = new URLSearchParams({ source: 'product-' + config.sku + '-planner', page: config.handle, spec: planLine(plan) });\n      return '\/pages\/bulk-quote?' + p.toString();\n    }\n    function fitVerdict(result) {\n      if (!result.insideVerified) return result.fits ? 'Fits the listed envelope. Confirm usable inside dimensions.' : 'Exceeds the listed envelope. Confirm usable inside dimensions.';\n      return result.fits ? (result.exact ? 'Dimension match. Check the tight edges.' : 'The dimensions fit with your allowance.') : 'These dimensions need a different size.';\n    }\n    return { packsFor: packsFor, checkFit: checkFit, quoteFor: quoteFor, planLine: planLine, fitVerdict: fitVerdict };\n  }\n  var api = { createPlanner: createPlanner, measurement: measurement };\n  if (typeof module !== 'undefined' \u0026\u0026 module.exports) module.exports = api;\n  if (!global.document) return;\n  function init() {\n    var root = global.document.getElementById('pr-product-packs');\n    if (!root || root.dataset.initialized === 'true') return;\n    var config, planner;\n    try { config = JSON.parse(root.dataset.prConfig); planner = createPlanner(config); } catch (error) { return; }\n    root.dataset.initialized = 'true'; root.classList.add('is-ready');\n    var byId = function(id) { return root.querySelector('#' + id); };\n    var number = function(n) { return n.toLocaleString('en-US', { maximumFractionDigits: 4 }); };\n    var dimensions = function(ns) { return ns.map(number).join(' × ') + ' in.'; };\n    function event(action) { if (typeof global.prBuyerAction === 'function') { try { global.prBuyerAction(action, config.sku); } catch (error) { \/* Analytics must not block a buyer action. *\/ } } }\n    var packForm = byId('pr-pack-form'), count = byId('pr-pack-count'), packResult = byId('pr-pack-result'), status = byId('pr-pack-status'), quote = byId('pr-pack-quote'), brief = byId('pr-pack-brief'), plan = null;\n    function invalidate() {\n      plan = null; packResult.hidden = true; brief.hidden = true; brief.value = ''; quote.removeAttribute('href'); quote.setAttribute('aria-disabled','true');\n      status.textContent = 'Quantity changed. Calculate the updated ' + config.unit + ' count.';\n    }\n    function calculate(announce) {\n      try {\n        plan = planner.packsFor(count.value); brief.hidden = true; brief.value = '';\n        byId('pr-pack-bundles').textContent = number(plan.packs);\n        byId('pr-pack-total').textContent = number(plan.pieces); byId('pr-pack-extra').textContent = number(plan.extra); byId('pr-pack-requested').textContent = number(plan.requested);\n        quote.href = planner.quoteFor(plan); quote.removeAttribute('aria-disabled'); quote.textContent = 'Quote my ' + number(plan.packs) + '-' + config.unit + ' plan →';\n        packResult.hidden = false; status.textContent = announce ? 'Calculated: ' + planner.planLine(plan) + '.' : '';\n        if (announce) event('pack-calculated');\n      } catch (error) { invalidate(); status.textContent = error.message; count.focus(); }\n    }\n    packForm.addEventListener('submit',function(e) { e.preventDefault(); calculate(true); });\n    count.addEventListener('input',invalidate);\n    root.querySelectorAll('[data-pack-preset]').forEach(function(button) { button.addEventListener('click',function() { count.value = button.dataset.packPreset; calculate(true); }); });\n    quote.addEventListener('click',function(e) { if (!plan) e.preventDefault(); else event('quote-opened'); });\n    root.querySelectorAll('[data-pr-static-quote]').forEach(function(a) { a.addEventListener('click',function() { event('quote-opened'); }); });\n    byId('pr-pack-copy').addEventListener('click',function() {\n      if (!plan) return;\n      var text = 'Packrift ' + planner.planLine(plan) + '\\n' + config.specSummary + '\\nRequested: ' + plan.requested + ' ' + config.pieceLabel + '\\nDelivery ZIP, receiving requirements and required date: add to the quote request.\\nPlease confirm availability, freight and final delivered total.';\n      brief.value = text; brief.hidden = false;\n      function manual() { brief.focus(); brief.select(); status.textContent = 'Select and copy the order plan below.'; }\n      if (global.navigator \u0026\u0026 global.navigator.clipboard \u0026\u0026 global.isSecureContext) global.navigator.clipboard.writeText(text).then(function() { status.textContent = 'Order plan copied. Add your delivery details in the quote request.'; event('plan-copied'); }).catch(manual); else manual();\n    });\n    var fitForm = byId('pr-fit-form'), fitStatus = byId('pr-fit-status'), fitResult = byId('pr-fit-result');\n    if (!fitForm) { calculate(false); return; }\n    fitForm.addEventListener('input',function() { fitResult.hidden = true; fitStatus.textContent = 'Measurements changed. Run the updated check.'; });\n    fitForm.addEventListener('submit',function(e) {\n      e.preventDefault();\n      try {\n        var r = planner.checkFit([byId('pr-fit-l').value,byId('pr-fit-w').value,byId('pr-fit-h').value],byId('pr-fit-pad').value);\n        var title = planner.fitVerdict(r);\n        byId('pr-fit-verdict').textContent = title; byId('pr-fit-orientation').textContent = dimensions(r.oriented) + ' (L × W × H)'; byId('pr-fit-envelope').textContent = dimensions(r.envelope);\n        var note = !r.insideVerified ? 'This product does not have a confirmed inside-dimension basis in the supplied specifications. Confirm usable internal space and closure clearance before selecting it. ' : '';\n        note += r.fits ? (r.exact ? 'At least one edge has no spare clearance beyond the cushioning allowance. Check tolerances and a physical packed sample.' : 'Remaining dimensional clearance: ' + dimensions(r.spare.map(function(n) { return Math.max(0,n); })) + '. Check the packed item and protection.') : 'No axis-aligned orientation fits within ' + dimensions(config.dimensions) + ' with this allowance.';\n        byId('pr-fit-note').textContent = note; fitResult.dataset.verdict = r.fits ? 'fit' : 'no-fit'; fitResult.hidden = false; fitStatus.textContent = title; event('fit-checked');\n      } catch (error) { fitResult.hidden = true; fitStatus.textContent = error.message; }\n    });\n    calculate(false);\n  }\n  if (global.document.readyState === 'loading') global.document.addEventListener('DOMContentLoaded',init); else init();\n})(typeof window !== 'undefined' ? window : globalThis);\n\u003c\/script\u003e\n\u003c\/div\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53450412720496,"sku":"151510","price":43.77,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/151510.jpg?v=1774854767"},{"product_id":"20x10x8-ect-32-kraft-corrugated-boxes-ai-easy-pack-long-format-bundle-of-20","title":"20x10x8 ECT-32 Kraft Corrugated Shipping Boxes 20-Pack","description":"\u003cp\u003eThe 20 x 10 x 8 in ECT-32 kraft corrugated shipping box is for e-commerce orders, parts, samples, retail goods, returns, and warehouse shipments. Listed dimensions are 20 x 10 x 8 in; board and format details include ECT-32, single wall; sold in a bundle of 20; listed weight 16.6 lb. For fit checks, measure the packed item against the 20 x 10 x 8 in inside dimensions before choosing this corrugated carton.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53450650878320,"sku":"20108","price":30.76,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/20108.jpg?v=1774854885"},{"product_id":"16x14x8-ect-32-kraft-corrugated-boxes-standard-strength-shipping-25-pack","title":"16x14x8 ECT-32 Kraft Corrugated Shipping Boxes 25-Pack","description":"\u003cp\u003eReliable ECT-32 single-wall corrugated boxes sized 16 \"  x 14 \"  x 8 \"  in kraft brown. Use for mid-weight product shipping and warehouse storage. Sold as a 25-pack bundle for volume efficiency and cost savings.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53450757767536,"sku":"16148","price":45.92,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/16148.jpg?v=1774854951"},{"product_id":"16x13x13-ect-32-kraft-corrugated-boxes-durable-shipping-25-pack","title":"16x13x13 ECT-32 Kraft Corrugated Shipping Boxes 25-Pack","description":"\u003cp\u003ePremium ECT-32 kraft corrugated boxes sized 16 \"  x 13 \"  x 13 \"  for efficient mid-weight shipping and storage. Sold in bundles of 25 to maximize your packaging volume and reduce per-unit costs. Built for stacking performance and freight optimization in warehouse operations.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53450930258288,"sku":"161313","price":54.39,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/161313.jpg?v=1774855072"},{"product_id":"17-25x11-5x11-multi-depth-corrugated-boxes-ect-32-kraft-25-bundle","title":"17.25x11.5x11 ECT-32 Kraft Multi-Depth Corrugated Shipping Boxes 25-Pack","description":"\u003cp\u003eThe 17.25x11.5x11 Multi-Depth Corrugated Boxes ECT-32 Kraft is a shallow corrugated shipping box for books, binders, framed prints, catalogs, folded apparel, and other low-profile items. Listed specs include inside dimensions 17.25\" x 11.5\" x 11\"; kraft material; ECT-32; bundle of 25. Use it as a shipping carton, mailing box, storage box, or e-commerce shipper when the item fits the listed dimensions.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53450963157360,"sku":"MD171111","price":46.8,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/MD171111.jpg?v=1774855104"},{"product_id":"12x12x16-ect-32-kraft-corrugated-boxes-strong-stacking-25-pack","title":"12x12x16 ECT-32 Kraft Corrugated Shipping Boxes 25-Pack","description":"\u003cp\u003eThe 12\" x 12\" x 16\" ECT-32 kraft corrugated shipping box is for e-commerce orders, parts, samples, retail goods, returns, and warehouse shipments. Listed dimensions are 12\" x 12\" x 16\"; board and format details include ECT-32, single wall; sold as a pack of 25; listed weight 25.3 lb. For fit checks, measure the packed item against the 12\" x 12\" x 16\" inside dimensions before choosing this corrugated carton.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53450964566384,"sku":"121216","price":50.12,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/121216.jpg?v=1774855271"},{"product_id":"16x12x12-ect-32-kraft-corrugated-boxes-heavy-duty-shipping-25-pack","title":"16x12x12 ECT-32 Kraft Corrugated Heavy Duty Shipping Boxes 25-Pack","description":"\u003cp\u003eThe 16x12x12 ECT-32 Kraft Corrugated Boxes, 25-Pack is a corrugated shipping box for e-commerce orders, parts, samples, retail goods, returns, and warehouse shipments. Listed specs include inside dimensions 16\" x 12\" x 12\"; kraft material; ECT-32; bundle of 25. Use it as a shipping carton, mailing box, storage box, or e-commerce shipper when the item fits the listed dimensions.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53451270488432,"sku":"161212","price":41.73,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/161212.jpg?v=1774855555"},{"product_id":"17x10x10-ect-32-kraft-corrugated-boxes-easy-pack-long-format-bundle-of-25","title":"17x10x10 ECT-32 Kraft Corrugated Shipping Boxes 25-Pack","description":"\u003cp\u003eThe 17 x 10 x 10 in ECT-32 kraft corrugated shipping box is for e-commerce orders, parts, samples, retail goods, returns, and warehouse shipments. Listed dimensions are 17 x 10 x 10 in; board and format details include ECT-32, single wall; sold in a bundle of 25; listed weight 20.6 lb. For fit checks, measure the packed item against the 17 x 10 x 10 in inside dimensions before choosing this corrugated carton.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53451574182256,"sku":"171010","price":40.27,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/171010.jpg?v=1774855716"},{"product_id":"13x13x10-ect-32-kraft-corrugated-boxes-durable-single-wall-bundle-of-25","title":"13x13x10 ECT-32 Kraft Corrugated Shipping Boxes 25-Pack","description":"\u003cp\u003eThe 13 x 13 x 10 in ECT-32 kraft corrugated shipping box is for e-commerce orders, parts, samples, retail goods, returns, and warehouse shipments. Listed dimensions are 13 x 13 x 10 in; board and format details include ECT-32, Single Wall; sold in a bundle of 25; listed weight 23.7 lb. For fit checks, measure the packed item against the 13 x 13 x 10 in inside dimensions before choosing this corrugated carton.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53451837374832,"sku":"131310","price":44.3,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/131310.jpg?v=1774855885"},{"product_id":"15x10x6-ect-32-kraft-corrugated-boxes-25-pack-shipping-cartons","title":"15x10x6 ECT-32 Kraft Corrugated Shipping Boxes 25-Pack","description":"\u003cp\u003eThe 15x10x6 ECT-32 Kraft Corrugated Boxes - 25 Pack Shipping Cartons is a corrugated shipping box for e-commerce orders, parts, samples, retail goods, returns, and warehouse shipments. Listed specs include inside dimensions 15\" x 10\" x 6\"; kraft material; ECT-32; box 15106. Use it as a shipping carton, mailing box, storage box, or e-commerce shipper when the item fits the listed dimensions.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53472830620016,"sku":"15106","price":30.59,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/15106.jpg?v=1774899698"},{"product_id":"12-5x12-5x12-multi-depth-corrugated-boxes-ect-32-kraft-25-pack","title":"12.5x12.5x12 ECT-32 Kraft Multi-Depth Corrugated Shipping Boxes 25-Pack","description":"\u003cp\u003eEliminate carton sizer equipment and inventory bloat with these pre-scored, adjustable-height corrugated boxes. Fold to 6 \" , 9 \" , or 12 \"  heights using the same ECT-32 kraft carton, cut packaging SKUs and parcel service fees instantly. Sold in bundles of 25.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53472830849392,"sku":"MD121212R","price":53.43,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/MD121212R.jpg?v=1774899714"},{"product_id":"14x11x3-ect-32-kraft-corrugated-boxes-shallow-depth-shipping-bundle-of-25","title":"14x11x3 ECT-32 Kraft Corrugated Shipping Boxes 25-Pack","description":"\u003cp\u003eThe 14\" x 11\" x 3\" ECT-32 kraft shallow corrugated shipping box is for books, binders, framed prints, catalogs, folded apparel, and other low-profile items. Listed dimensions are 14\" x 11\" x 3\"; board and format details include ECT-32, single wall; sold in a bundle of 25; listed weight 13.6 lb. For fit checks, use the 14\" x 11\" x 3\" inside dimensions for flat goods that need less empty depth than a taller shipping box.\u003c\/p\u003e \u003cp\u003eIdeal for shipping documents, framed art, signage, flat goods, and large prints. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=flat --\u003e\n\u003cp\u003e\u003cstrong\u003eFlat shipping boxes:\u003c\/strong\u003e Good fit for shipping documents, framed prints, signage, flat goods, apparel layers, and large paper products. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53472830947696,"sku":"14113","price":28.75,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/14113.jpg?v=1774899720"},{"product_id":"12x12x12-ect-32-kraft-corrugated-cube-boxes-25-pack-bundle","title":"12x12x12 ECT-32 Kraft Corrugated Cube Shipping Boxes 25-Pack","description":"\u003cp\u003eThe 12\" x 12\" x 12\" ECT-32 kraft cube-style corrugated shipping box is for small parts, boxed retail goods, samples, mugs, jars, and compact e-commerce orders. Listed dimensions are 12\" x 12\" x 12\"; board and format details include ECT-32, single wall; sold as a pack of 25; listed weight 21.6 lb. For fit checks, use the 12\" x 12\" x 12\" inside dimensions for compact products that need a cube-style shipping carton.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53472838484336,"sku":"121212","price":31.21,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/121212.jpg?v=1774899933"},{"product_id":"12x12x12-ect-32-white-corrugated-boxes-25-pack-bundle","title":"12x12x12 ECT-32 White Corrugated Shipping Boxes 25-Pack","description":"\u003cp\u003eThe 12\" x 12\" x 12\" ECT-32 white cube-style corrugated shipping box is for small parts, boxed retail goods, samples, mugs, jars, and compact e-commerce orders. Listed dimensions are 12\" x 12\" x 12\"; board and format details include ECT-32, single wall; sold as a pack of 25; listed weight 21.6 lb. For fit checks, use the 12\" x 12\" x 12\" inside dimensions for compact products that need a cube-style shipping carton.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53472838582640,"sku":"121212W","price":47.39,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/121212W.jpg?v=1774899944"},{"product_id":"13x11x9-ect-32-kraft-corrugated-boxes-25-bundle-shipping-cartons","title":"13x11x9 ECT-32 Kraft Corrugated Shipping Boxes 25-Pack","description":"\u003cp\u003e13x11x9 ECT-32 Kraft Corrugated Boxes - 25 Bundle Shipping Cartons. ECT-32 single wall kraft corrugated boxes sized 13\" 11\" 9\" for reliable mid-weight product shipping. This 25-box bundle delivers standard industrial strength at volume pricing. Fully recyclable kraft construction reduces shipping costs per unit.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53472840417648,"sku":"13119","price":36.13,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/13119.jpg?v=1774900106"},{"product_id":"14x10x4-ect-32-kraft-corrugated-boxes-shallow-depth-bundle-of-25","title":"14x10x4 ECT-32 Kraft Corrugated Shipping Boxes 25-Pack","description":"\u003cp\u003eThe 14 x 10 x 4 in ECT-32 kraft shallow corrugated shipping box is for books, binders, framed prints, catalogs, folded apparel, and other low-profile items. Listed dimensions are 14 x 10 x 4 in; board and format details include ECT-32, single wall; sold in a bundle of 25; listed weight 13.1 lb. For fit checks, use the 14 x 10 x 4 in inside dimensions for flat goods that need less empty depth than a taller shipping box.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53472840745328,"sku":"14104","price":25.53,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/14104.jpg?v=1774900134"},{"product_id":"14x10x6-ect-32-kraft-corrugated-boxes-bundle-of-25","title":"14x10x6 ECT-32 Kraft Corrugated Shipping Boxes 25-Pack","description":"\u003cp\u003eThe 14 x 10 x 6 in ECT-32 kraft corrugated shipping box is for e-commerce orders, parts, samples, retail goods, returns, and warehouse shipments. Listed dimensions are 14 x 10 x 6 in; board and format details include ECT-32, single wall; sold in a bundle of 25; listed weight 14.3 lb. For fit checks, measure the packed item against the 14 x 10 x 6 in inside dimensions before choosing this corrugated carton.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53472840909168,"sku":"14106","price":26.98,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/14106.jpg?v=1774900145"},{"product_id":"13x10x10-ect-32-kraft-corrugated-boxes-25-pack-bundle","title":"13x10x10 ECT-32 Kraft Corrugated Shipping Boxes 25-Pack","description":"\u003cp\u003eThe 13 x 10 x 10\" ECT-32 kraft corrugated shipping box is for e-commerce orders, parts, samples, retail goods, returns, and warehouse shipments. Listed dimensions are 13 x 10 x 10\"; board and format details include ECT-32, single wall; sold as a pack of 25; listed weight 17.1 lb. For fit checks, measure the packed item against the 13 x 10 x 10\" inside dimensions before choosing this corrugated carton.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53472857129328,"sku":"131010","price":33.92,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/131010.jpg?v=1774900323"},{"product_id":"12x10x4-ect-32-kraft-corrugated-boxes-shallow-depth-shipping-bundle-of-25","title":"12x10x4 ECT-32 Kraft Corrugated Shipping Boxes 25-Pack","description":"\u003cp\u003eSKU 12104 is Packrift's exact 12x10x4 ECT-32 kraft corrugated shipping box in a 25-pack. Choose this item when the buyer needs a 12 inch length, 10 inch width, and 4 inch depth single-wall carton for shallow product shipping. It is the standard ECT-32 version, separate from HD12104 heavy-duty ECT-44 boxes and separate from adjacent 12x10x3, 12x10x5, 12x9x4, and 20x16x4 boxes. Use SKU 12104 for searches such as 12x10x4 shipping boxes, 12x10x4 shallow shipping boxes, and 12x10x4 ECT-32 kraft boxes.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53472860078448,"sku":"12104","price":23.46,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/12104.jpg?v=1774900488"},{"product_id":"12x10x6-ect-32-white-corrugated-boxes-25-bundle","title":"12x10x6 ECT-32 White Corrugated Shipping Boxes 25-Pack","description":"\u003cdiv id=\"pr-product-packs\" class=\"pr-experience\" data-packrift-release=\"PACKRIFT-BUYER-GROWTH-20261001\" data-pr-buyer-sku=\"12106W\" data-pr-buyer-cohort=\"20261001\" data-pr-config='{\"sku\":\"12106W\",\"handle\":\"12x10x6-ect-32-white-corrugated-boxes-25-bundle\",\"dimensions\":[12.0,10.0,6.0],\"dimensionBasis\":\"inside\",\"packCount\":25,\"unit\":\"bundle\",\"pieceLabel\":\"boxes\",\"specSummary\":\"12 \\u00d7 10 \\u00d7 6 in. inside dimensions; ECT-32 Single Wall Corrugated; White; 25 boxes per bundle\"}'\u003e\n\u003cp class=\"prp-summary\"\u003eSKU 12106W is a white corrugated shipping box with inside dimensions of 12 × 10 × 6 inches. Each bundle contains 25 boxes. Listed construction: ECT-32 Single Wall Corrugated.\u003c\/p\u003e\n\u003cspan hidden aria-hidden=\"true\"\u003eProduct fit and specs\u003c\/span\u003e\n\u003csection class=\"prp-hero\" aria-labelledby=\"prp-overview-title\"\u003e\u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003eSKU 12106W · the packing plan\u003c\/div\u003e\n\u003ch2 id=\"prp-overview-title\"\u003eThe right size.\u003cbr\u003eThe right quantity.\u003c\/h2\u003e\n\u003cp\u003e12 × 10 × 6 inches. 25 boxes per bundle. Compare the measurements, work out your quantity, and carry an exact requirement into your quote.\u003c\/p\u003e\n\u003cnav class=\"prp-jumps\" aria-label=\"Product buying tools\"\u003e\u003ca href=\"#prp-pack-planner\"\u003ePlan my bundles\u003c\/a\u003e\u003cspan aria-hidden=\"true\"\u003e\/\u003c\/span\u003e\u003ca href=\"#prp-fit-check\"\u003eCheck my dimensions\u003c\/a\u003e\u003c\/nav\u003e\n\u003c\/div\u003e\n\u003cfigure class=\"prp-figure\"\u003e\u003csvg viewbox=\"0 0 440 350\" role=\"img\" aria-labelledby=\"pr-drawing-title pr-drawing-desc\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003ctitle id=\"pr-drawing-title\"\u003e12 × 10 × 6 inch carton dimension diagram\u003c\/title\u003e\n\u003cdesc id=\"pr-drawing-desc\"\u003eInside dimensions: length 12, width 10, height 6 inches. Schematic, not to scale.\u003c\/desc\u003e\u003cellipse cx=\"232\" cy=\"307\" rx=\"170\" ry=\"19\" fill=\"#e0e6d6\"\u003e\u003c\/ellipse\u003e\u003cpath d=\"M65 128 L287 80 L387 147 L165 199 Z\" fill=\"#cdeb6b\" stroke=\"#102d35\" stroke-width=\"2\"\u003e\u003c\/path\u003e\u003cpath d=\"M65 128 L165 199 L165 284 L65 213 Z\" fill=\"#8ea795\" stroke=\"#102d35\" stroke-width=\"2\"\u003e\u003c\/path\u003e\u003cpath d=\"M165 199 L387 147 L387 232 L165 284 Z\" fill=\"#2e6964\" stroke=\"#102d35\" stroke-width=\"2\"\u003e\u003c\/path\u003e\u003cpath d=\"M174 112 L275 173\" fill=\"none\" stroke=\"#102d35\" stroke-width=\"2\" stroke-dasharray=\"6 5\"\u003e\u003c\/path\u003e\u003cg stroke=\"#102d35\" fill=\"none\" stroke-width=\"1.5\"\u003e\u003cpath d=\"M167 318 L390 266 M162 312 L170 324 M386 260 L394 272\"\u003e\u003c\/path\u003e\u003cpath d=\"M42 140 L42 209 M36 140 L48 140 M36 209 L48 209\"\u003e\u003c\/path\u003e\u003cpath d=\"M300 60 L407 132 M295 65 L305 55 M402 137 L412 127\"\u003e\u003c\/path\u003e\u003c\/g\u003e\u003cg fill=\"#102d35\" font-family=\"Arial,sans-serif\" font-size=\"14\" font-weight=\"700\"\u003e\u003ctext x=\"280\" y=\"329\" text-anchor=\"middle\"\u003e12 in. length\u003c\/text\u003e\u003ctext x=\"24\" y=\"220\" text-anchor=\"middle\" transform=\"rotate(-90 24 220)\"\u003e6 in. height\u003c\/text\u003e\u003ctext x=\"345\" y=\"48\" text-anchor=\"middle\"\u003e10 in. width\u003c\/text\u003e\u003c\/g\u003e\u003crect x=\"66\" y=\"41\" rx=\"14\" width=\"68\" height=\"29\" fill=\"#102d35\"\u003e\u003c\/rect\u003e\u003ctext x=\"100.0\" y=\"60\" text-anchor=\"middle\" fill=\"#cdeb6b\" font-family=\"Arial,sans-serif\" font-size=\"12\" font-weight=\"700\"\u003e12106W\u003c\/text\u003e\u003c\/svg\u003e\u003cfigcaption\u003eInside dimensions · schematic, not to scale\u003c\/figcaption\u003e\u003c\/figure\u003e\u003c\/section\u003e\n\u003cdiv class=\"prp-strip\" aria-label=\"Product essentials\"\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e12 × 10 × 6\u003c\/strong\u003e\u003cspan\u003eInside dimensions, in. · L × W × H\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e25 boxes\u003c\/strong\u003e\u003cspan\u003eOne bundle · one order increment\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eECT-32 Single Wall Corrugated\u003c\/strong\u003e\u003cspan\u003eWhite · shipping carton\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003csection id=\"prp-pack-planner\" class=\"prp-section\" aria-labelledby=\"prp-pack-title\"\u003e\u003cdiv class=\"prp-section-head\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003e01 \/ order the right quantity\u003c\/div\u003e\n\u003ch3 id=\"prp-pack-title\"\u003ePieces needed. Bundles ordered.\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cp\u003eThe cart quantity counts bundles. Round your requirement up to complete bundles of 25 boxes.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-planner\" data-js-only\u003e\n\u003cdiv class=\"prp-inputs\"\u003e\u003cform id=\"pr-pack-form\" novalidate\u003e\n\u003clabel for=\"pr-pack-count\"\u003eHow many individual boxes do you need?\u003c\/label\u003e\u003cinput id=\"pr-pack-count\" type=\"number\" min=\"1\" max=\"1000000\" step=\"1\" value=\"100\" inputmode=\"numeric\" aria-describedby=\"pr-pack-help pr-pack-status\"\u003e\u003cdiv class=\"prp-presets\" aria-label=\"Common quantities\"\u003e\n\u003cbutton type=\"button\" data-pack-preset=\"100\"\u003e100 boxes\u003c\/button\u003e\u003cbutton type=\"button\" data-pack-preset=\"500\"\u003e500 boxes\u003c\/button\u003e\u003cbutton type=\"button\" data-pack-preset=\"1000\"\u003e1,000 boxes\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cbutton class=\"prp-btn\" type=\"submit\"\u003eCalculate my bundles →\u003c\/button\u003e\u003cp id=\"pr-pack-help\" class=\"prp-help\"\u003eQuantity planning only. Confirm the current price, availability and delivered total for your order.\u003c\/p\u003e\n\u003cp id=\"pr-pack-status\" class=\"prp-status\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"\u003e\u003c\/p\u003e\n\u003c\/form\u003e\u003c\/div\u003e\n\u003cdiv class=\"prp-output\"\u003e\u003cdiv id=\"pr-pack-result\"\u003e\n\u003cdiv class=\"prp-kicker\"\u003eYour complete-bundle plan\u003c\/div\u003e\n\u003cdiv class=\"prp-big-number\"\u003e\n\u003cstrong id=\"pr-pack-bundles\"\u003e4\u003c\/strong\u003e\u003cspan\u003ebundles\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdl\u003e\n\u003cdt\u003eBoxes you asked for\u003c\/dt\u003e\n\u003cdd id=\"pr-pack-requested\"\u003e100\u003c\/dd\u003e\n\u003cdt\u003eTotal boxes in your order\u003c\/dt\u003e\n\u003cdd id=\"pr-pack-total\"\u003e100\u003c\/dd\u003e\n\u003cdt\u003eExtra pieces from rounding\u003c\/dt\u003e\n\u003cdd id=\"pr-pack-extra\"\u003e0\u003c\/dd\u003e\n\u003c\/dl\u003e\n\u003ca id=\"pr-pack-quote\" class=\"prp-btn prp-btn--mint\" href=\"\/pages\/bulk-quote?source=product-12106W-planner\u0026amp;page=12x10x6-ect-32-white-corrugated-boxes-25-bundle\u0026amp;spec=SKU+12106W+%E2%80%94+4+bundles+of+25+boxes+%28100+boxes+total%29\"\u003eQuote my 4-bundle plan →\u003c\/a\u003e\u003cp class=\"prp-help\"\u003eYour SKU and planned quantity carry into the quote request. Add your delivery ZIP, timing and receiving details there.\u003c\/p\u003e\n\u003cbutton id=\"pr-pack-copy\" class=\"prp-copy\" type=\"button\"\u003eCopy the order plan\u003c\/button\u003e\u003ctextarea id=\"pr-pack-brief\" hidden readonly aria-label=\"Order plan to copy\"\u003e\u003c\/textarea\u003e\n\u003c\/div\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-table-wrap\"\u003e\u003ctable\u003e\n\u003ccaption style=\"text-align:left;padding:14px 18px;font-weight:700\"\u003eQuick quantity reference\u003c\/caption\u003e\n\u003cthead\u003e\u003ctr\u003e\n\u003cth scope=\"col\"\u003eBoxes needed\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eBundles to order\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eBoxes supplied\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e25\u003c\/td\u003e\n\u003ctd\u003e1\u003c\/td\u003e\n\u003ctd\u003e25\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100\u003c\/td\u003e\n\u003ctd\u003e4\u003c\/td\u003e\n\u003ctd\u003e100\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e101\u003c\/td\u003e\n\u003ctd\u003e5\u003c\/td\u003e\n\u003ctd\u003e125\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e500\u003c\/td\u003e\n\u003ctd\u003e20\u003c\/td\u003e\n\u003ctd\u003e500\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e1,000\u003c\/td\u003e\n\u003ctd\u003e40\u003c\/td\u003e\n\u003ctd\u003e1,000\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\u003c\/div\u003e\n\u003cnoscript\u003e\u003cp class=\"prp-help\"\u003eDivide the number of boxes you need by 25 and round up to a whole bundle. \u003ca href=\"\/pages\/bulk-quote?source=product-12106W\u0026amp;page=12x10x6-ect-32-white-corrugated-boxes-25-bundle\u0026amp;spec=SKU+12106W+%E2%80%94+12+%C3%97+10+%C3%97+6+in.%3B+25+boxes+per+bundle.+Quantity+to+confirm.\"\u003eRequest a quote for SKU 12106W\u003c\/a\u003e.\u003c\/p\u003e\u003c\/noscript\u003e\u003c\/section\u003e\n\u003csection id=\"prp-fit-check\" class=\"prp-section\" aria-labelledby=\"prp-fit-title\"\u003e\u003cdiv class=\"prp-section-head\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003e02 \/ check the packed item\u003c\/div\u003e\n\u003ch3 id=\"prp-fit-title\"\u003eCheck all three dimensions.\u003c\/h3\u003e\n\u003c\/div\u003e\n\u003cp\u003eMeasure the whole item, including protrusions and the protection you plan to use.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-fit-grid\"\u003e\n\u003cdiv\u003e\n\u003cp id=\"pr-fit-help\"\u003eEnter inches as decimals or fractions, such as 3.5 or 3 1\/2. The checker tries all six axis-aligned orientations and adds your cushioning allowance to both sides of each dimension.\u003c\/p\u003e\n\u003cform id=\"pr-fit-form\" novalidate data-js-only\u003e\n\u003cdiv class=\"prp-fields\"\u003e\n\u003cdiv\u003e\n\u003clabel for=\"pr-fit-l\"\u003eItem length (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-l\" type=\"text\" inputmode=\"decimal\" value=\"11.375\" aria-describedby=\"pr-fit-help\"\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003clabel for=\"pr-fit-w\"\u003eItem width (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-w\" type=\"text\" inputmode=\"decimal\" value=\"9.375\" aria-describedby=\"pr-fit-help\"\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003clabel for=\"pr-fit-h\"\u003eItem height (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-h\" type=\"text\" inputmode=\"decimal\" value=\"5.375\" aria-describedby=\"pr-fit-help\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-field-wide\"\u003e\n\u003clabel for=\"pr-fit-pad\"\u003eCushioning per side (in.)\u003c\/label\u003e\u003cinput id=\"pr-fit-pad\" type=\"text\" inputmode=\"decimal\" value=\"0.25\" aria-describedby=\"pr-fit-padding-help\"\u003e\u003cp id=\"pr-fit-padding-help\" class=\"prp-help\"\u003e0.25 in. per side adds 0.5 in. to each dimension. This is your planning allowance, not a recommended protection level.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbutton type=\"submit\" class=\"prp-btn\"\u003eCheck the dimensions →\u003c\/button\u003e\u003cp id=\"pr-fit-status\" class=\"prp-status\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"\u003e\u003c\/p\u003e\n\u003c\/form\u003e\n\u003cnoscript\u003e\u003cp class=\"prp-help\"\u003eCompare the packed item with the inside dimensions: 12 × 10 × 6 in. Include cushioning on both sides.\u003c\/p\u003e\u003c\/noscript\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv id=\"pr-fit-result\" class=\"prp-fit-result\" hidden\u003e\n\u003cdiv class=\"prp-kicker\"\u003eDimensional comparison\u003c\/div\u003e\n\u003ch3 id=\"pr-fit-verdict\"\u003e\u003c\/h3\u003e\n\u003cdl\u003e\n\u003cdt\u003eItem orientation for comparison\u003c\/dt\u003e\n\u003cdd id=\"pr-fit-orientation\"\u003e\u003c\/dd\u003e\n\u003cdt\u003eEnvelope including cushioning\u003c\/dt\u003e\n\u003cdd id=\"pr-fit-envelope\"\u003e\u003c\/dd\u003e\n\u003c\/dl\u003e\n\u003cp id=\"pr-fit-note\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prp-fit-result\"\u003e\n\u003cdiv class=\"prp-kicker\"\u003eBefore you commit\u003c\/div\u003e\n\u003ch3\u003eCheck the complete\u003cbr\u003epacked item.\u003c\/h3\u003e\n\u003cp\u003eAllow for inserts, protrusions and dimensional tolerances. Test a physical packed sample for tight fits. Board grade alone does not establish a contents-weight or stacking-height limit.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"prp-section\" aria-labelledby=\"prp-spec-title\"\u003e\u003cdiv class=\"prp-section-head\"\u003e\u003cdiv\u003e\n\u003cdiv class=\"prp-kicker\"\u003e03 \/ keep the specification clear\u003c\/div\u003e\n\u003ch3 id=\"prp-spec-title\"\u003eYour order, by the details.\u003c\/h3\u003e\n\u003c\/div\u003e\u003c\/div\u003e\n\u003cdl class=\"prp-spec-list\"\u003e\n\u003cdt\u003eSKU\u003c\/dt\u003e\n\u003cdd\u003e12106W\u003c\/dd\u003e\n\u003cdt\u003eInside dimensions\u003c\/dt\u003e\n\u003cdd\u003e12 × 10 × 6 in.\u003c\/dd\u003e\n\u003cdt\u003eOrder increment\u003c\/dt\u003e\n\u003cdd\u003e25 boxes per bundle\u003c\/dd\u003e\n\u003cdt\u003eListed construction\u003c\/dt\u003e\n\u003cdd\u003eECT-32 Single Wall Corrugated\u003c\/dd\u003e\n\u003cdt\u003eColor\u003c\/dt\u003e\n\u003cdd\u003eWhite\u003c\/dd\u003e\n\u003c\/dl\u003e\n\u003cdiv class=\"prp-checklist\"\u003e\n\u003cdiv\u003e\n\u003cb\u003e01 \/ THE ITEM\u003c\/b\u003e\u003ch3\u003eMeasure it packed.\u003c\/h3\u003e\n\u003cp\u003eUse all three dimensions of the packed item. Allow for protection at the ends as well as along the sides.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cb\u003e02 \/ THE HANDLING\u003c\/b\u003e\u003ch3\u003eMatch the protection.\u003c\/h3\u003e\n\u003cp\u003eConsider weight, fragility, stacking and handling. Check the assembled package for your shipment; dimensions alone do not establish protection.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cb\u003e03 \/ THE DESTINATION\u003c\/b\u003e\u003ch3\u003eInclude delivery details.\u003c\/h3\u003e\n\u003cp\u003eSend the quantity, delivery ZIP, receiving type and required date. Availability and freight are confirmed for the exact order.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"prp-close\" aria-labelledby=\"prp-close-title\"\u003e\u003cdiv\u003e\n\u003ch3 id=\"prp-close-title\"\u003eBuying for a bigger job?\u003c\/h3\u003e\n\u003cp\u003eSend SKU 12106W with your quantity, delivery ZIP and timing. For multiple products, list each SKU and quantity separately.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ca href=\"\/pages\/bulk-quote?source=product-12106W\u0026amp;page=12x10x6-ect-32-white-corrugated-boxes-25-bundle\u0026amp;spec=SKU+12106W+%E2%80%94+12+%C3%97+10+%C3%97+6+in.%3B+25+boxes+per+bundle.+Quantity+to+confirm.\" data-pr-static-quote class=\"prp-btn\"\u003eRequest my delivered quote →\u003c\/a\u003e\u003c\/section\u003e\u003cnav class=\"prp-links\" aria-label=\"More buying guidance\"\u003e\u003ca href=\"\/pages\/corrugated-boxes-buying-guide\"\u003eCompare sizes and buying options\u003c\/a\u003e\u003ca href=\"\/pages\/corrugated-box-styles-rsc-hsc-fol\"\u003eUnderstand box styles\u003c\/a\u003e\u003ca href=\"\/pages\/single-wall-vs-double-wall-boxes\"\u003eCompare wall construction\u003c\/a\u003e\u003ca href=\"\/pages\/packaging-resellers\"\u003eOrdering for your own customer?\u003c\/a\u003e\u003c\/nav\u003e\u003cstyle\u003e\n#pr-product-packs{--ink:#102d35;--mint:#cdeb6b;--teal:#2e6964;--paper:#f6f7f1;--line:#d7ddd5;color:var(--ink);font-family:inherit;line-height:1.55;font-size:16px;max-width:100%;overflow-wrap:anywhere}\n#pr-product-packs *{box-sizing:border-box}\n#pr-product-packs [hidden]{display:none!important}\n#pr-product-packs h2,#pr-product-packs h3,#pr-product-packs p,#pr-product-packs figure{margin:0}\n#pr-product-packs h2,#pr-product-packs h3{color:var(--ink);line-height:1.12;letter-spacing:-.04em}\n#pr-product-packs a{color:inherit;text-underline-offset:4px}\n#pr-product-packs .prp-kicker{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;line-height:1.5}\n#pr-product-packs .prp-hero{background:var(--paper);border:1px solid var(--line);border-radius:18px;display:grid;grid-template-columns:1.08fr .92fr;gap:24px;padding:42px;margin-bottom:24px;align-items:center}\n#pr-product-packs .prp-hero h2{font-size:clamp(30px,4.2vw,54px);max-width:13ch;margin:14px 0 18px;font-weight:800}\n#pr-product-packs .prp-hero p{max-width:44ch;font-size:17px;color:#466063}\n#pr-product-packs .prp-jumps{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}\n#pr-product-packs .prp-jumps a{font-size:13px;font-weight:800;border-bottom:1px solid var(--ink);padding:3px 0;text-decoration:none}\n#pr-product-packs .prp-jumps span{color:#84908b}\n#pr-product-packs .prp-figure{min-width:0}\n#pr-product-packs .prp-figure svg{display:block;width:100%;height:auto;max-width:440px;margin:auto}\n#pr-product-packs .prp-figure figcaption{text-align:center;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#627576;margin-top:4px}\n#pr-product-packs .prp-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:38px}\n#pr-product-packs .prp-strip div{padding:20px 24px;border-right:1px solid var(--line)}\n#pr-product-packs .prp-strip div:last-child{border:0}\n#pr-product-packs .prp-strip strong{display:block;font-size:23px;line-height:1.2;letter-spacing:-.025em;margin-bottom:6px}\n#pr-product-packs .prp-strip span{font-size:12px;color:#627576}\n#pr-product-packs .prp-section{scroll-margin-top:130px;margin:38px 0}\n#pr-product-packs .prp-section-head{display:flex;justify-content:space-between;gap:28px;align-items:flex-end;margin-bottom:20px}\n#pr-product-packs .prp-section-head h3{font-size:clamp(25px,3vw,36px);margin-top:8px}\n#pr-product-packs .prp-section-head\u003ep{font-size:14px;max-width:40ch;color:#526968}\n#pr-product-packs .prp-planner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--line);border-radius:16px;overflow:hidden}\n#pr-product-packs .prp-inputs{padding:30px;background:white}\n#pr-product-packs label{display:block;font-size:13px;font-weight:800;margin-bottom:8px;line-height:1.5}\n#pr-product-packs input,#pr-product-packs textarea{width:100%;max-width:100%;border:1px solid #879c93;border-radius:7px;background:white;color:var(--ink);padding:12px 14px;font-family:inherit;font-size:16px;min-height:48px}\n#pr-product-packs input:focus,#pr-product-packs textarea:focus,#pr-product-packs a:focus-visible,#pr-product-packs button:focus-visible{outline:3px solid var(--teal);outline-offset:3px}\n#pr-product-packs button{cursor:pointer;font-family:inherit;min-height:44px}\n#pr-product-packs .prp-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid var(--ink);border-radius:7px;background:var(--ink);color:white;min-height:48px;padding:12px 18px;font-size:14px;font-weight:800;line-height:1.45;text-align:center}\n#pr-product-packs .prp-btn:hover{background:#214b54}\n#pr-product-packs .prp-btn--mint{background:var(--mint);color:var(--ink);border-color:var(--mint)}\n#pr-product-packs .prp-btn--mint:hover{background:#d8ee95}\n#pr-product-packs .prp-btn--outline{background:transparent;color:var(--ink);border-color:#879c93}\n#pr-product-packs .prp-btn--outline:hover{background:#f0f3e9}\n#pr-product-packs .prp-presets{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 18px}\n#pr-product-packs .prp-presets button{font-size:12px;font-weight:700;border:1px solid var(--line);border-radius:30px;background:var(--paper);color:var(--ink);padding:7px 13px;min-height:36px}\n#pr-product-packs .prp-help{font-size:12px;color:#627576;margin:12px 0 0;line-height:1.6}\n#pr-product-packs .prp-status{font-size:12px;min-height:20px;margin-top:12px;color:var(--teal)}\n#pr-product-packs .prp-output{background:var(--ink);color:white;padding:30px;min-width:0}\n#pr-product-packs .prp-output .prp-kicker{color:#c4d5d0}\n#pr-product-packs .prp-big-number{display:flex;align-items:baseline;gap:10px;margin:12px 0 20px}\n#pr-product-packs .prp-big-number strong{font-size:clamp(48px,7vw,72px);letter-spacing:-.06em;font-weight:800;line-height:1}\n#pr-product-packs .prp-big-number span{font-size:18px;color:#d5e2d9}\n#pr-product-packs .prp-output dl{display:grid;grid-template-columns:1fr auto;gap:10px 12px;font-size:13px;margin:0 0 22px}\n#pr-product-packs .prp-output dt{color:#cfdbd4}\n#pr-product-packs .prp-output dd{font-weight:800;text-align:right;margin:0}\n#pr-product-packs .prp-output .prp-btn{width:100%}\n#pr-product-packs .prp-output .prp-help{color:#c3d1cb}\n#pr-product-packs .prp-copy{color:white;background:transparent;border:0;border-bottom:1px solid #849b91;padding:3px 0;font-size:12px;min-height:38px;margin-top:12px}\n#pr-product-packs #pr-pack-brief{margin-top:14px;font-size:13px;line-height:1.6;min-height:160px}\n#pr-product-packs .prp-table-wrap{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:10px;margin-top:18px}\n#pr-product-packs table{width:100%;border-collapse:collapse;font-size:13px;min-width:300px;background:white}\n#pr-product-packs th,#pr-product-packs td{text-align:left;padding:13px 18px;border-bottom:1px solid var(--line);font-size:inherit;white-space:normal}\n#pr-product-packs th{background:var(--paper);font-weight:800;color:var(--ink)}\n#pr-product-packs tr:last-child td{border-bottom:0}\n#pr-product-packs .prp-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}\n#pr-product-packs .prp-field-wide{grid-column:1\/-1;max-width:340px}\n#pr-product-packs .prp-fit-grid{display:grid;grid-template-columns:1fr .85fr;gap:24px;border:1px solid var(--line);border-radius:16px;padding:30px;background:var(--paper)}\n#pr-product-packs .prp-fit-result{background:white;border:1px solid var(--line);border-radius:12px;padding:24px;align-self:start}\n#pr-product-packs .prp-fit-result h3{font-size:26px;letter-spacing:-.03em;margin:14px 0 18px}\n#pr-product-packs .prp-fit-result p{font-size:13px;color:#526968}\n#pr-product-packs .prp-fit-result[data-verdict='no-fit']{border-color:#b97557}\n#pr-product-packs .prp-fit-result dl{margin:20px 0;font-size:13px}\n#pr-product-packs .prp-fit-result dt{color:#526968;font-size:11px;text-transform:uppercase;letter-spacing:.07em;margin:14px 0 4px}\n#pr-product-packs .prp-fit-result dd{font-size:18px;font-weight:800;margin:0;line-height:1.4}\n#pr-product-packs .prp-fit-note{font-size:12px;color:#526968;margin-top:14px!important}\n#pr-product-packs .prp-checklist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;border-top:1px solid var(--line);padding-top:25px;margin-top:25px}\n#pr-product-packs .prp-checklist b{font-size:12px;display:block;color:var(--teal);margin-bottom:12px}\n#pr-product-packs .prp-checklist h3{font-size:22px;margin-bottom:10px}\n#pr-product-packs .prp-checklist p{font-size:13px;color:#526968}\n#pr-product-packs .prp-close{display:grid;grid-template-columns:1fr auto;align-items:center;gap:26px;background:var(--mint);border-radius:14px;padding:30px;margin-top:36px}\n#pr-product-packs .prp-close h3{font-size:28px;margin-bottom:10px}\n#pr-product-packs .prp-close p{font-size:14px;max-width:60ch}\n#pr-product-packs .prp-links{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:20px;font-size:12px;font-weight:700}\n#pr-product-packs [data-js-only]{display:none}\n#pr-product-packs.is-ready [data-js-only]{display:block}\n@media(max-width:760px){#pr-product-packs .prp-hero{grid-template-columns:1fr;padding:25px;gap:12px}#pr-product-packs .prp-hero h2{max-width:16ch;font-size:38px}#pr-product-packs .prp-figure svg{max-width:340px}#pr-product-packs .prp-strip div{padding:16px 12px}#pr-product-packs .prp-strip strong{font-size:20px}#pr-product-packs .prp-section-head{display:block}#pr-product-packs .prp-section-head\u003ep{margin-top:12px}#pr-product-packs .prp-planner,#pr-product-packs .prp-fit-grid{grid-template-columns:1fr}#pr-product-packs .prp-inputs,#pr-product-packs .prp-output{padding:24px}#pr-product-packs .prp-fit-grid{padding:24px}#pr-product-packs .prp-checklist{grid-template-columns:1fr;gap:24px}#pr-product-packs .prp-close{grid-template-columns:1fr;padding:24px}#pr-product-packs .prp-close .prp-btn{width:100%}}\n@media(max-width:380px){#pr-product-packs .prp-hero{padding:18px}#pr-product-packs .prp-hero h2{font-size:31px}#pr-product-packs .prp-strip{grid-template-columns:1fr}#pr-product-packs .prp-strip div{border:0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}#pr-product-packs .prp-strip strong{font-size:20px;margin:0}#pr-product-packs .prp-inputs,#pr-product-packs .prp-output,#pr-product-packs .prp-fit-grid{padding:18px}#pr-product-packs .prp-fields{grid-template-columns:1fr}#pr-product-packs .prp-field-wide{max-width:none}#pr-product-packs .prp-fit-result{padding:18px}}\n@media(prefers-reduced-motion:reduce){#pr-product-packs *{scroll-behavior:auto!important;transition:none!important}}\n\n#pr-product-packs .prp-warning{padding:16px;border-left:4px solid #2e6964;background:#e9f1e8;color:#102d35;font-size:14px;margin:16px 0}#pr-product-packs .prp-spec-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;margin:20px 0;font-size:14px}#pr-product-packs .prp-spec-list dd{margin:0;font-weight:700}#pr-product-packs .prp-spec-list dt{color:#526968}#pr-product-packs .prp-summary{margin:0 0 22px;font-size:16px;max-width:78ch}\n\u003c\/style\u003e\n\u003cscript\u003e(function (global) {\n  'use strict';\n  function measurement(value) {\n    if (typeof value === 'number') return value;\n    if (typeof value !== 'string') return NaN;\n    var s = value.trim(), mixed = s.match(\/^(?:(\\d+)\\s+)?(\\d+)\\\/(\\d+)$\/);\n    if (mixed) return Number(mixed[3]) ? Number(mixed[1] || 0) + Number(mixed[2]) \/ Number(mixed[3]) : NaN;\n    return \/^(?:\\d+(?:\\.\\d*)?|\\.\\d+)$\/.test(s) ? Number(s) : NaN;\n  }\n  function createPlanner(config) {\n    var box = config.dimensions.map(measurement), size = config.packCount;\n    if (box.length !== 3 || box.some(function(n) { return !Number.isFinite(n) || n \u003c= 0; }) || !Number.isSafeInteger(size) || size \u003c 1) throw new Error('Invalid product configuration.');\n    if (!\/^[A-Za-z0-9_-]+$\/.test(config.sku) || !\/^[a-z0-9-]+$\/.test(config.handle) || !['bundle','case','pack'].includes(config.unit)) throw new Error('Invalid product identity or sale unit.');\n    function packsFor(value) {\n      var n = typeof value === 'number' ? value : (typeof value === 'string' \u0026\u0026 \/^\\d+$\/.test(value.trim()) ? Number(value) : NaN);\n      if (!Number.isSafeInteger(n) || n \u003c 1 || n \u003e 1000000) throw new Error('Enter a whole number from 1 to 1,000,000 pieces.');\n      var packs = Math.ceil(n \/ size);\n      return { requested: n, packs: packs, pieces: packs * size, extra: packs * size - n };\n    }\n    function checkFit(values, padding) {\n      if (!Array.isArray(values) || values.length !== 3) throw new Error('Enter all three item dimensions.');\n      var item = values.map(measurement), pad = measurement(padding);\n      if (item.some(function(n) { return !Number.isFinite(n) || n \u003c= 0 || n \u003e 10000; })) throw new Error('Enter a positive measurement for all three item dimensions.');\n      if (!Number.isFinite(pad) || pad \u003c 0 || pad \u003e 100) throw new Error('Enter cushioning from 0 to 100 inches per side.');\n      var orders = [[0,1,2],[0,2,1],[1,0,2],[1,2,0],[2,0,1],[2,1,0]];\n      var candidates = orders.map(function(order) {\n        var oriented = order.map(function(i) { return item[i]; }), envelope = oriented.map(function(n) { return n + 2 * pad; });\n        var spare = envelope.map(function(n,i) { return box[i] - n; });\n        return { order: order, oriented: oriented, envelope: envelope, spare: spare, fits: spare.every(function(n) { return n \u003e= -1e-9; }) };\n      });\n      var result = candidates.find(function(c) { return c.fits; });\n      if (!result) result = candidates.sort(function(a,b) { return Math.min.apply(null,b.spare) - Math.min.apply(null,a.spare); })[0];\n      result.padding = pad; result.exact = result.fits \u0026\u0026 result.spare.some(function(n) { return Math.abs(n) \u003c 1e-9; });\n      result.insideVerified = config.dimensionBasis === 'inside';\n      return result;\n    }\n    function planLine(plan) {\n      return 'SKU ' + config.sku + ' — ' + plan.packs + ' ' + config.unit + (plan.packs === 1 ? '' : 's') + ' of ' + size + ' ' + config.pieceLabel + ' (' + plan.pieces + ' ' + config.pieceLabel + ' total)';\n    }\n    function quoteFor(plan) {\n      var p = new URLSearchParams({ source: 'product-' + config.sku + '-planner', page: config.handle, spec: planLine(plan) });\n      return '\/pages\/bulk-quote?' + p.toString();\n    }\n    function fitVerdict(result) {\n      if (!result.insideVerified) return result.fits ? 'Fits the listed envelope. Confirm usable inside dimensions.' : 'Exceeds the listed envelope. Confirm usable inside dimensions.';\n      return result.fits ? (result.exact ? 'Dimension match. Check the tight edges.' : 'The dimensions fit with your allowance.') : 'These dimensions need a different size.';\n    }\n    return { packsFor: packsFor, checkFit: checkFit, quoteFor: quoteFor, planLine: planLine, fitVerdict: fitVerdict };\n  }\n  var api = { createPlanner: createPlanner, measurement: measurement };\n  if (typeof module !== 'undefined' \u0026\u0026 module.exports) module.exports = api;\n  if (!global.document) return;\n  function init() {\n    var root = global.document.getElementById('pr-product-packs');\n    if (!root || root.dataset.initialized === 'true') return;\n    var config, planner;\n    try { config = JSON.parse(root.dataset.prConfig); planner = createPlanner(config); } catch (error) { return; }\n    root.dataset.initialized = 'true'; root.classList.add('is-ready');\n    var byId = function(id) { return root.querySelector('#' + id); };\n    var number = function(n) { return n.toLocaleString('en-US', { maximumFractionDigits: 4 }); };\n    var dimensions = function(ns) { return ns.map(number).join(' × ') + ' in.'; };\n    function event(action) { if (typeof global.prBuyerAction === 'function') { try { global.prBuyerAction(action, config.sku); } catch (error) { \/* Analytics must not block a buyer action. *\/ } } }\n    var packForm = byId('pr-pack-form'), count = byId('pr-pack-count'), packResult = byId('pr-pack-result'), status = byId('pr-pack-status'), quote = byId('pr-pack-quote'), brief = byId('pr-pack-brief'), plan = null;\n    function invalidate() {\n      plan = null; packResult.hidden = true; brief.hidden = true; brief.value = ''; quote.removeAttribute('href'); quote.setAttribute('aria-disabled','true');\n      status.textContent = 'Quantity changed. Calculate the updated ' + config.unit + ' count.';\n    }\n    function calculate(announce) {\n      try {\n        plan = planner.packsFor(count.value); brief.hidden = true; brief.value = '';\n        byId('pr-pack-bundles').textContent = number(plan.packs);\n        byId('pr-pack-total').textContent = number(plan.pieces); byId('pr-pack-extra').textContent = number(plan.extra); byId('pr-pack-requested').textContent = number(plan.requested);\n        quote.href = planner.quoteFor(plan); quote.removeAttribute('aria-disabled'); quote.textContent = 'Quote my ' + number(plan.packs) + '-' + config.unit + ' plan →';\n        packResult.hidden = false; status.textContent = announce ? 'Calculated: ' + planner.planLine(plan) + '.' : '';\n        if (announce) event('pack-calculated');\n      } catch (error) { invalidate(); status.textContent = error.message; count.focus(); }\n    }\n    packForm.addEventListener('submit',function(e) { e.preventDefault(); calculate(true); });\n    count.addEventListener('input',invalidate);\n    root.querySelectorAll('[data-pack-preset]').forEach(function(button) { button.addEventListener('click',function() { count.value = button.dataset.packPreset; calculate(true); }); });\n    quote.addEventListener('click',function(e) { if (!plan) e.preventDefault(); else event('quote-opened'); });\n    root.querySelectorAll('[data-pr-static-quote]').forEach(function(a) { a.addEventListener('click',function() { event('quote-opened'); }); });\n    byId('pr-pack-copy').addEventListener('click',function() {\n      if (!plan) return;\n      var text = 'Packrift ' + planner.planLine(plan) + '\\n' + config.specSummary + '\\nRequested: ' + plan.requested + ' ' + config.pieceLabel + '\\nDelivery ZIP, receiving requirements and required date: add to the quote request.\\nPlease confirm availability, freight and final delivered total.';\n      brief.value = text; brief.hidden = false;\n      function manual() { brief.focus(); brief.select(); status.textContent = 'Select and copy the order plan below.'; }\n      if (global.navigator \u0026\u0026 global.navigator.clipboard \u0026\u0026 global.isSecureContext) global.navigator.clipboard.writeText(text).then(function() { status.textContent = 'Order plan copied. Add your delivery details in the quote request.'; event('plan-copied'); }).catch(manual); else manual();\n    });\n    var fitForm = byId('pr-fit-form'), fitStatus = byId('pr-fit-status'), fitResult = byId('pr-fit-result');\n    fitForm.addEventListener('input',function() { fitResult.hidden = true; fitStatus.textContent = 'Measurements changed. Run the updated check.'; });\n    fitForm.addEventListener('submit',function(e) {\n      e.preventDefault();\n      try {\n        var r = planner.checkFit([byId('pr-fit-l').value,byId('pr-fit-w').value,byId('pr-fit-h').value],byId('pr-fit-pad').value);\n        var title = planner.fitVerdict(r);\n        byId('pr-fit-verdict').textContent = title; byId('pr-fit-orientation').textContent = dimensions(r.oriented) + ' (L × W × H)'; byId('pr-fit-envelope').textContent = dimensions(r.envelope);\n        var note = !r.insideVerified ? 'This product does not have a confirmed inside-dimension basis in the supplied specifications. Confirm usable internal space and closure clearance before selecting it. ' : '';\n        note += r.fits ? (r.exact ? 'At least one edge has no spare clearance beyond the cushioning allowance. Check tolerances and a physical packed sample.' : 'Remaining dimensional clearance: ' + dimensions(r.spare.map(function(n) { return Math.max(0,n); })) + '. Check the packed item and protection.') : 'No axis-aligned orientation fits within ' + dimensions(config.dimensions) + ' with this allowance.';\n        byId('pr-fit-note').textContent = note; fitResult.dataset.verdict = r.fits ? 'fit' : 'no-fit'; fitResult.hidden = false; fitStatus.textContent = title; event('fit-checked');\n      } catch (error) { fitResult.hidden = true; fitStatus.textContent = error.message; }\n    });\n    calculate(false);\n  }\n  if (global.document.readyState === 'loading') global.document.addEventListener('DOMContentLoaded',init); else init();\n})(typeof window !== 'undefined' ? window : globalThis);\n\u003c\/script\u003e\n\u003c\/div\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53472860340592,"sku":"12106W","price":32.58,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/12106W.jpg?v=1774900510"},{"product_id":"14x8x6-ect-32-kraft-corrugated-boxes-reliable-shipping-storage-25-pack","title":"14x8x6 ECT-32 Kraft Corrugated Shipping Boxes 25-Pack","description":"\u003cp\u003eThe 14x8x6 ECT-32 Kraft Corrugated Boxes - Reliable Shipping \u0026amp; Storage, 25-Pack is a corrugated file storage box for folders, records, binders, manuals, archive paperwork, and office moves. Listed specs include inside dimensions 14\" x 8\" x 6\"; kraft material; ECT-32; bundle of 25. The file-box format keeps paperwork grouped for shelving, retrieval, transport, and office storage.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53472861290864,"sku":"1486","price":23.39,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/1486.jpg?v=1774900582"},{"product_id":"12x9x4-ect-32-kraft-corrugated-boxes-shallow-depth-shipping-bundle-of-25","title":"12x9x4 ECT-32 Kraft Corrugated Shipping Boxes 25-Pack","description":"\u003cp\u003eThe 12\" x 9\" x 4\" ECT-32 kraft shallow corrugated shipping box is for books, binders, framed prints, catalogs, folded apparel, and other low-profile items. Listed dimensions are 12\" x 9\" x 4\"; board and format details include ECT-32, single wall; sold in a bundle of 25; listed weight 10.6 lb. For fit checks, use the 12\" x 9\" x 4\" inside dimensions for flat goods that need less empty depth than a taller shipping box.\u003c\/p\u003e \u003cp\u003eIdeal for shipping apparel, shoes, books, household goods, and everyday ecommerce orders. A sturdy, reliable choice for small-business, Etsy, and ecommerce shippers.\u003c\/p\u003e\n\u003c!-- PACKRIFT-UCP-SEMANTIC-BOX-USECASE-R01 bucket=medium --\u003e\n\u003cp\u003e\u003cstrong\u003eEcommerce shipping boxes:\u003c\/strong\u003e Good fit for shipping apparel, shoes, books, household goods, small appliances, warehouse picks, and everyday ecommerce orders. These corrugated boxes help small businesses, ecommerce teams, and warehouse shippers match products to the right box size for everyday fulfillment.\u003c\/p\u003e","brand":"Packrift","offers":[{"title":"Default Title","offer_id":53472863551856,"sku":"1294","price":22.09,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1004\/9159\/2048\/files\/1294.jpg?v=1774900734"}],"url":"https:\/\/packrift.com\/collections\/volume-pricing.oembed?page=4","provider":"Packrift","version":"1.0","type":"link"}