{"title":"Dandy Sack","description":"\u003cdiv id=\"ld-sku\"\u003e\n  \u003cdiv class=\"in\"\u003e\n\n    \u003cdiv class=\"band\"\u003e\n      \u003cdiv class=\"row\"\u003e\n        \u003cdiv\u003e\n          \u003cp class=\"eyb\"\u003eHangs Beneath The Grate · 4 Sizes\u003c\/p\u003e\n          \u003ch1\u003eDandy Sack\u003c\/h1\u003e\n          \u003cp class=\"tag\"\u003eTwo Feet Of Containment.\u003c\/p\u003e\n          \u003cp class=\"sub\"\u003eAn open-top sack that hangs below a storm grate on internal cradle straps. No rebar, nothing to fabricate on site.\u003c\/p\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aside\"\u003e\n          \u003cul class=\"bl\"\u003e\n            \u003cli\u003e\n\u003csvg class=\"ck\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"4 12.5 9.5 18 20 6\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003eHangs beneath the grate, open top\u003c\/li\u003e\n            \u003cli\u003e\n\u003csvg class=\"ck\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"4 12.5 9.5 18 20 6\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003eInternal straps cradle the grate\u003c\/li\u003e\n            \u003cli\u003e\n\u003csvg class=\"ck\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"4 12.5 9.5 18 20 6\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003eTwo-foot containment area\u003c\/li\u003e\n          \u003c\/ul\u003e\n          \u003ca class=\"cta\" href=\"#\" data-scroll-grid\u003eShop dandy sack\u003c\/a\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cul class=\"stats\"\u003e\n        \u003cli\u003e\n\u003cspan class=\"n\"\u003e2\u003cem\u003eft\u003c\/em\u003e\u003c\/span\u003e\u003cspan class=\"lb\"\u003eContainment depth\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003cli\u003e\n\u003cspan class=\"n\"\u003e4\u003c\/span\u003e\u003cspan class=\"lb\"\u003eSizes stocked\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003cli\u003e\n\u003cspan class=\"n\"\u003e0\u003c\/span\u003e\u003cspan class=\"lb\"\u003eRebar required\u003c\/span\u003e\n\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"intro\"\u003e\n      \u003cp class=\"kick\"\u003eChoose Your Size\u003c\/p\u003e\n      \u003ch2\u003eDandy Sack Storm Grate Sediment Filters\u003c\/h2\u003e\n      \u003cdiv class=\"rd\"\u003e\n        \u003cp\u003eThe \u003cstrong\u003eDandy Sack\u003c\/strong\u003e takes a different approach from the bags: rather than wrapping the grate, it is an incredibly strong \u003cstrong\u003eopen-top sack that hangs underneath it\u003c\/strong\u003e, with internal straps cradling the grate for support when installing and removing.\u003c\/p\u003e\n        \u003cp\u003eThat gives it a \u003cstrong\u003etwo-foot containment area\u003c\/strong\u003e — deep enough to hold a worthwhile volume of sediment between services, shallow enough that one person can still lift it out on the straps. Installation needs no rebar and nothing fabricated on site.\u003c\/p\u003e\n        \u003cp\u003eBecause the containment sits out of sight below the grate, servicing depends on looking in. \u003cstrong\u003eMore than one third full of sediment and the unit must be emptied\u003c\/strong\u003e; past that there is not enough capacity left for the next event.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n#ld-sku{\n  --f:#33471F; --o:#5B7B30; --l:#8fc24a; --ink:#141a0c; --t:#1E1B1C; --b:#4a4744;\n  --cr:#F3F0E7; --ln:#e5e2d8;\n  font-family:Archivo,'Lato',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\n  font-weight:400; width:100%; box-sizing:border-box; color:var(--t);\n}\n.collection--description.rte, .productgrid--masthead .rte, .rte:has(\u003e #ld-sku){max-width:none !important;}\n.collection--masthead .collection--title, .productgrid--masthead .collection--title,\n.template-collection .collection--title{display:none !important;}\n#ld-sku *,#ld-sku *::before,#ld-sku *::after{box-sizing:border-box;}\n#ld-sku .in{width:1150px;max-width:100%;margin:0 auto;}\n#ld-sku .band{position:relative;border-radius:6px;overflow:hidden;background:var(--ink);}\n#ld-sku .band::before{content:\"\";position:absolute;inset:0;z-index:0;opacity:.5;\n  background-image:linear-gradient(rgba(143,194,74,.15) 2px,transparent 2px),linear-gradient(90deg,rgba(143,194,74,.15) 2px,transparent 2px);\n  background-size:44px 44px;}\n#ld-sku .band::after{content:\"\";position:absolute;inset:0;z-index:1;\n  background:linear-gradient(105deg,var(--ink) 0%,rgba(20,26,12,.74) 48%,rgba(51,71,31,.56) 100%);}\n#ld-sku .row{position:relative;z-index:2;display:grid;grid-template-columns:1.45fr 1fr;align-items:center;gap:28px;padding:36px 40px 30px;}\n#ld-sku .eyb{margin:0 0 12px;font-size:12px;letter-spacing:3px;text-transform:uppercase;font-weight:700;color:var(--l);}\n#ld-sku h1{margin:0 0 8px;font-family:'League Spartan','Archivo Narrow',sans-serif;font-size:42px;line-height:.93;letter-spacing:-.5px;font-weight:700;text-transform:uppercase;color:#fff;}\n#ld-sku .tag{margin:0 0 13px;font-family:'League Spartan','Archivo Narrow',sans-serif;font-size:17px;line-height:1;letter-spacing:.5px;text-transform:uppercase;font-weight:700;color:var(--l);}\n#ld-sku .sub{margin:0;max-width:470px;font-size:14.5px;line-height:1.5;color:#e4e8da;}\n#ld-sku .aside{display:flex;flex-direction:column;gap:11px;align-items:flex-start;}\n#ld-sku .bl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}\n#ld-sku .bl li{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.4;color:#eef0e6;}\n#ld-sku .ck{width:17px;height:17px;flex:0 0 auto;margin-top:2px;fill:none;stroke:var(--l);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;}\n#ld-sku .cta{margin-top:4px;background:var(--l);color:#1c2b0c;text-decoration:none;padding:11px 24px;border-radius:3px;font-size:13px;letter-spacing:.5px;text-transform:uppercase;font-weight:700;transition:background .15s ease;}\n#ld-sku .cta:hover{background:#a3d160;}\n#ld-sku .stats{position:relative;z-index:2;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);background:rgba(10,14,6,.62);border-top:1px solid rgba(143,194,74,.25);}\n#ld-sku .stats li{padding:15px 22px;border-right:1px solid rgba(255,255,255,.08);}\n#ld-sku .stats li:last-child{border-right:0;}\n#ld-sku .n{display:block;font-family:'League Spartan',sans-serif;font-size:25px;font-weight:700;line-height:1;color:var(--l);}\n#ld-sku .n em{font-style:normal;font-size:13px;margin-left:2px;}\n#ld-sku .lb{display:block;margin-top:6px;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:#aeb6a2;}\n#ld-sku .intro{padding:38px 4px 8px;}\n#ld-sku .kick{margin:0 0 10px;font-size:12px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:var(--o);}\n#ld-sku h2{margin:0 0 18px;font-family:'League Spartan','Archivo Narrow',sans-serif;font-size:30px;line-height:1.08;font-weight:700;color:var(--t);}\n#ld-sku .rd p{margin:0 0 14px;font-size:15.5px;line-height:1.65;color:var(--b);}\n#ld-sku .rd p:last-child{margin-bottom:0;}\n@media (max-width:900px){\n  #ld-sku h1{font-size:36px;} #ld-sku .row{grid-template-columns:1fr;gap:20px;padding:30px 28px 24px;}\n  #ld-sku h2{font-size:26px;} #ld-sku .n{font-size:22px;}\n}\n@media (max-width:560px){\n  #ld-sku h1{font-size:29px;} #ld-sku .eyb{font-size:11px;letter-spacing:2px;}\n  #ld-sku .row{padding:26px 22px 20px;} #ld-sku .cta{width:100%;text-align:center;}\n  #ld-sku .stats{grid-template-columns:1fr;}\n  #ld-sku .stats li{border-right:0;border-bottom:1px solid rgba(255,255,255,.08);}\n  #ld-sku .stats li:last-child{border-bottom:0;}\n  #ld-sku .intro{padding:28px 2px 4px;}\n}\n@media (prefers-reduced-motion:reduce){#ld-sku .cta{transition:none;}}\n.template-collection .productgrid--outer{display:block!important;grid-template-columns:none!important;max-width:1150px!important;margin:0 auto!important;padding:0!important}\n.template-collection .grid--collection-sidebar{display:none!important}\n.template-collection .productgrid--wrapper{width:100%!important;margin:0!important}\n\u003c\/style\u003e\n\n\u003cscript\u003e\n(function(){\n  var b=document.querySelector('#ld-sku [data-scroll-grid]');\n  if(!b)return;\n  b.addEventListener('click',function(e){\n    e.preventDefault();\n    var g=document.querySelector('.productgrid--items, .productgrid--wrapper, [data-productgrid-items]');\n    if(g){g.scrollIntoView({behavior:'smooth',block:'start'});}\n  });\n})();\n\u003c\/script\u003e","products":[{"product_id":"dandy-sack-24-x-24-storm-grate-sediment-filter","title":"Dandy Sack - 24\" x 24\" - Storm Grate Sediment Filter","description":"\u003c!-- ================================================================\n     LANDSCAPE DISCOUNT — HDPE Tree Root Barrier Roll\n     INTRO BLOCK  ·  paste into the Shopify product DESCRIPTION field\n     Scope: #ld-ds-intro\n     ================================================================ --\u003e\n\n\u003cdiv id=\"ld-ds-intro\"\u003e\n\u003cstyle\u003e\n#ld-ds-intro{\n  --forest:#33471F; --olive:#5B7B30; --leaf:#8FC24A; --cream:#F3F0E7;\n  --ink:#1E1B1C; --body:#4a4744; --muted:#7A7568; --hair:#e5e2d8; --tint:#F7F5EF;\n  --hex:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);\n  font-family:Archivo,'Lato',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\n  color:var(--body); font-size:16px; line-height:1.65;\n}\n#ld-ds-intro *{box-sizing:border-box;}\n\n#ld-ds-intro .ld-kicker{\n  font-family:'League Spartan','Archivo Narrow',sans-serif; font-weight:700;\n  text-transform:uppercase; letter-spacing:2px; font-size:12px;\n  color:var(--olive); margin:0 0 10px;\n}\n#ld-ds-intro .ld-lead{\n  margin:0 0 22px; font-size:17px; line-height:1.62; color:var(--body);\n}\n#ld-ds-intro .ld-lead strong{color:var(--ink); font-weight:600;}\n\n\/* ---- spec cards ---- *\/\n#ld-ds-intro .ld-rail{\n  display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:0 0 14px;\n}\n#ld-ds-intro .ld-cell{\n  position:relative; background:#fff; border:1px solid var(--hair);\n  border-top:3px solid var(--olive); padding:15px 15px 14px;\n}\n#ld-ds-intro .ld-cell::before{\n  content:\"\"; position:absolute; right:12px; top:11px;\n  width:8px; height:8px; background:var(--leaf); clip-path:var(--hex);\n}\n#ld-ds-intro .ld-cell dt{\n  font-family:'League Spartan','Archivo Narrow',sans-serif; font-weight:700;\n  text-transform:uppercase; letter-spacing:1.4px; font-size:10px;\n  color:var(--olive); margin:0 0 9px; padding-right:22px;}\n#ld-ds-intro .ld-cell dd{\n  margin:0; font-family:'League Spartan','Archivo Narrow',sans-serif;\n  font-weight:700; font-size:clamp(17px,1.5vw,20px); line-height:1.1;\n  color:var(--forest); letter-spacing:-.01em; padding-right:6px;}\n#ld-ds-intro .ld-cell dd span{\n  display:block; font-family:Archivo,sans-serif; font-weight:400;\n  font-size:12px; line-height:1.4; color:var(--muted);\n  letter-spacing:0; margin-top:8px;\n}\n\n\/* ---- trust strip ---- *\/\n#ld-ds-intro .ld-strip{\n  display:flex; flex-wrap:wrap; gap:8px 26px;\n  border-top:1px solid var(--hair); padding-top:13px; margin:0;\n  list-style:none;\n}\n#ld-ds-intro .ld-strip li{\n  display:flex; align-items:center; gap:8px;\n  font-size:13.5px; color:var(--ink);\n}\n#ld-ds-intro .ld-strip li::before{\n  content:\"\"; flex:0 0 auto; width:9px; height:9px;\n  background:var(--olive); clip-path:var(--hex);\n}\n\n@media (max-width:900px){\n  #ld-ds-intro .ld-rail{grid-template-columns:1fr;}\n}\n@media (max-width:760px){\n  #ld-ds-intro .ld-lead{font-size:16px;}\n  #ld-ds-intro .ld-cell dd{font-size:18px;}\n  #ld-ds-intro .ld-strip{gap:8px 18px;}\n}\n\u003c\/style\u003e\n\n  \u003cp class=\"ld-kicker\"\u003eDandy · Beneath The Grate · 24″ × 24″\u003c\/p\u003e\n\n  \u003cp class=\"ld-lead\"\u003e\n    \u003cstrong\u003eDandy Sack storm grate sediment filter\u003c\/strong\u003e for a \u003cstrong\u003e24″ × 24″\u003c\/strong\u003e grate. A square 24-inch grate, the smallest size stocked. The\n    open-top sack hangs beneath the grate on internal cradle straps, with a two-foot containment area\n    that captures suspended solids before they reach the inlet. No rebar required.\n  \u003c\/p\u003e\n\n  \u003cdl class=\"ld-rail\"\u003e\n    \u003cdiv class=\"ld-cell\"\u003e\n      \u003cdt\u003eGrate Size\u003c\/dt\u003e\n      \u003cdd\u003e24″ × 24″\u003cspan\u003eFits the grate it hangs from\u003c\/span\u003e\n\u003c\/dd\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ld-cell\"\u003e\n      \u003cdt\u003eModel\u003c\/dt\u003e\n      \u003cdd\u003eDS-24-24\u003cspan\u003eBrand: Dandy\u003c\/span\u003e\n\u003c\/dd\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ld-cell\"\u003e\n      \u003cdt\u003eContainment\u003c\/dt\u003e\n      \u003cdd\u003e2 ft\u003cspan\u003eEmpty at one third full\u003c\/span\u003e\n\u003c\/dd\u003e\n    \u003c\/div\u003e\n  \u003c\/dl\u003e\n\n  \u003cul class=\"ld-strip\"\u003e\n    \u003cli\u003eHangs beneath the grate\u003c\/li\u003e\n    \u003cli\u003eNo rebar required\u003c\/li\u003e\n    \u003cli\u003eInternal straps cradle the grate\u003c\/li\u003e\n    \u003cli\u003eTwo-foot containment area\u003c\/li\u003e\n    \u003cli\u003eFree shipping on all orders\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n\u003c\/div\u003e","brand":"Dandy","offers":[{"title":"Default Title","offer_id":54831184314740,"sku":"DS-24-24","price":122.6,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1006\/1883\/0196\/files\/DS-24-24-2.jpg?v=1782096646"},{"product_id":"dandy-sack-36-x-24-storm-grate-sediment-filter","title":"Dandy Sack - 36\" x 24\" - Storm Grate Sediment Filter","description":"\u003c!-- ================================================================\n     LANDSCAPE DISCOUNT — HDPE Tree Root Barrier Roll\n     INTRO BLOCK  ·  paste into the Shopify product DESCRIPTION field\n     Scope: #ld-ds-intro\n     ================================================================ --\u003e\n\n\u003cdiv id=\"ld-ds-intro\"\u003e\n\u003cstyle\u003e\n#ld-ds-intro{\n  --forest:#33471F; --olive:#5B7B30; --leaf:#8FC24A; --cream:#F3F0E7;\n  --ink:#1E1B1C; --body:#4a4744; --muted:#7A7568; --hair:#e5e2d8; --tint:#F7F5EF;\n  --hex:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);\n  font-family:Archivo,'Lato',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\n  color:var(--body); font-size:16px; line-height:1.65;\n}\n#ld-ds-intro *{box-sizing:border-box;}\n\n#ld-ds-intro .ld-kicker{\n  font-family:'League Spartan','Archivo Narrow',sans-serif; font-weight:700;\n  text-transform:uppercase; letter-spacing:2px; font-size:12px;\n  color:var(--olive); margin:0 0 10px;\n}\n#ld-ds-intro .ld-lead{\n  margin:0 0 22px; font-size:17px; line-height:1.62; color:var(--body);\n}\n#ld-ds-intro .ld-lead strong{color:var(--ink); font-weight:600;}\n\n\/* ---- spec cards ---- *\/\n#ld-ds-intro .ld-rail{\n  display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:0 0 14px;\n}\n#ld-ds-intro .ld-cell{\n  position:relative; background:#fff; border:1px solid var(--hair);\n  border-top:3px solid var(--olive); padding:15px 15px 14px;\n}\n#ld-ds-intro .ld-cell::before{\n  content:\"\"; position:absolute; right:12px; top:11px;\n  width:8px; height:8px; background:var(--leaf); clip-path:var(--hex);\n}\n#ld-ds-intro .ld-cell dt{\n  font-family:'League Spartan','Archivo Narrow',sans-serif; font-weight:700;\n  text-transform:uppercase; letter-spacing:1.4px; font-size:10px;\n  color:var(--olive); margin:0 0 9px; padding-right:22px;}\n#ld-ds-intro .ld-cell dd{\n  margin:0; font-family:'League Spartan','Archivo Narrow',sans-serif;\n  font-weight:700; font-size:clamp(17px,1.5vw,20px); line-height:1.1;\n  color:var(--forest); letter-spacing:-.01em; padding-right:6px;}\n#ld-ds-intro .ld-cell dd span{\n  display:block; font-family:Archivo,sans-serif; font-weight:400;\n  font-size:12px; line-height:1.4; color:var(--muted);\n  letter-spacing:0; margin-top:8px;\n}\n\n\/* ---- trust strip ---- *\/\n#ld-ds-intro .ld-strip{\n  display:flex; flex-wrap:wrap; gap:8px 26px;\n  border-top:1px solid var(--hair); padding-top:13px; margin:0;\n  list-style:none;\n}\n#ld-ds-intro .ld-strip li{\n  display:flex; align-items:center; gap:8px;\n  font-size:13.5px; color:var(--ink);\n}\n#ld-ds-intro .ld-strip li::before{\n  content:\"\"; flex:0 0 auto; width:9px; height:9px;\n  background:var(--olive); clip-path:var(--hex);\n}\n\n@media (max-width:900px){\n  #ld-ds-intro .ld-rail{grid-template-columns:1fr;}\n}\n@media (max-width:760px){\n  #ld-ds-intro .ld-lead{font-size:16px;}\n  #ld-ds-intro .ld-cell dd{font-size:18px;}\n  #ld-ds-intro .ld-strip{gap:8px 18px;}\n}\n\u003c\/style\u003e\n\n  \u003cp class=\"ld-kicker\"\u003eDandy · Beneath The Grate · 36″ × 24″\u003c\/p\u003e\n\n  \u003cp class=\"ld-lead\"\u003e\n    \u003cstrong\u003eDandy Sack storm grate sediment filter\u003c\/strong\u003e for a \u003cstrong\u003e36″ × 24″\u003c\/strong\u003e grate. A 36-inch grate at 24-inch depth, one of the most widely used combinations. The\n    open-top sack hangs beneath the grate on internal cradle straps, with a two-foot containment area\n    that captures suspended solids before they reach the inlet. No rebar required.\n  \u003c\/p\u003e\n\n  \u003cdl class=\"ld-rail\"\u003e\n    \u003cdiv class=\"ld-cell\"\u003e\n      \u003cdt\u003eGrate Size\u003c\/dt\u003e\n      \u003cdd\u003e36″ × 24″\u003cspan\u003eFits the grate it hangs from\u003c\/span\u003e\n\u003c\/dd\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ld-cell\"\u003e\n      \u003cdt\u003eModel\u003c\/dt\u003e\n      \u003cdd\u003eDS-36-24\u003cspan\u003eBrand: Dandy\u003c\/span\u003e\n\u003c\/dd\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ld-cell\"\u003e\n      \u003cdt\u003eContainment\u003c\/dt\u003e\n      \u003cdd\u003e2 ft\u003cspan\u003eEmpty at one third full\u003c\/span\u003e\n\u003c\/dd\u003e\n    \u003c\/div\u003e\n  \u003c\/dl\u003e\n\n  \u003cul class=\"ld-strip\"\u003e\n    \u003cli\u003eHangs beneath the grate\u003c\/li\u003e\n    \u003cli\u003eNo rebar required\u003c\/li\u003e\n    \u003cli\u003eInternal straps cradle the grate\u003c\/li\u003e\n    \u003cli\u003eTwo-foot containment area\u003c\/li\u003e\n    \u003cli\u003eFree shipping on all orders\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n\u003c\/div\u003e","brand":"Dandy","offers":[{"title":"Default Title","offer_id":54831184347508,"sku":"DS-36-24","price":122.6,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1006\/1883\/0196\/files\/DS-36-24-2.jpg?v=1782096650"},{"product_id":"dandy-sack-48-x-24-storm-grate-sediment-filter","title":"Dandy Sack - 48\" x 24\" - Storm Grate Sediment Filter","description":"\u003c!-- ================================================================\n     LANDSCAPE DISCOUNT — Dandy Sack 48\" x 24\"\n     INTRO BLOCK  ·  paste into the Shopify product DESCRIPTION field\n     Scope: #ld-ds-intro\n     ================================================================ --\u003e\n\n\u003cdiv id=\"ld-ds-intro\"\u003e\n\u003cstyle\u003e\n#ld-ds-intro{\n  --forest:#33471F; --olive:#5B7B30; --leaf:#8FC24A; --cream:#F3F0E7;\n  --ink:#1E1B1C; --body:#4a4744; --muted:#7A7568; --hair:#e5e2d8; --tint:#F7F5EF;\n  --hex:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);\n  font-family:Archivo,'Lato',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\n  color:var(--body); font-size:16px; line-height:1.65;\n}\n#ld-ds-intro *{box-sizing:border-box;}\n\n#ld-ds-intro .ld-kicker{\n  font-family:'League Spartan','Archivo Narrow',sans-serif; font-weight:700;\n  text-transform:uppercase; letter-spacing:2px; font-size:12px;\n  color:var(--olive); margin:0 0 10px;\n}\n#ld-ds-intro .ld-lead{\n  margin:0 0 22px; font-size:17px; line-height:1.62; color:var(--body);\n}\n#ld-ds-intro .ld-lead strong{color:var(--ink); font-weight:600;}\n\n\/* ---- spec cards ---- *\/\n#ld-ds-intro .ld-rail{\n  display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:0 0 14px;\n}\n#ld-ds-intro .ld-cell{\n  position:relative; background:#fff; border:1px solid var(--hair);\n  border-top:3px solid var(--olive); padding:15px 15px 14px;\n}\n#ld-ds-intro .ld-cell::before{\n  content:\"\"; position:absolute; right:12px; top:11px;\n  width:8px; height:8px; background:var(--leaf); clip-path:var(--hex);\n}\n#ld-ds-intro .ld-cell dt{\n  font-family:'League Spartan','Archivo Narrow',sans-serif; font-weight:700;\n  text-transform:uppercase; letter-spacing:1.4px; font-size:10px;\n  color:var(--olive); margin:0 0 9px; padding-right:22px;}\n#ld-ds-intro .ld-cell dd{\n  margin:0; font-family:'League Spartan','Archivo Narrow',sans-serif;\n  font-weight:700; font-size:clamp(17px,1.5vw,20px); line-height:1.1;\n  color:var(--forest); letter-spacing:-.01em; padding-right:6px;}\n#ld-ds-intro .ld-cell dd span{\n  display:block; font-family:Archivo,sans-serif; font-weight:400;\n  font-size:12px; line-height:1.4; color:var(--muted);\n  letter-spacing:0; margin-top:8px;\n}\n\n\/* ---- trust strip ---- *\/\n#ld-ds-intro .ld-strip{\n  display:flex; flex-wrap:wrap; gap:8px 26px;\n  border-top:1px solid var(--hair); padding-top:13px; margin:0;\n  list-style:none;\n}\n#ld-ds-intro .ld-strip li{\n  display:flex; align-items:center; gap:8px;\n  font-size:13.5px; color:var(--ink);\n}\n#ld-ds-intro .ld-strip li::before{\n  content:\"\"; flex:0 0 auto; width:9px; height:9px;\n  background:var(--olive); clip-path:var(--hex);\n}\n\n@media (max-width:900px){\n  #ld-ds-intro .ld-rail{grid-template-columns:1fr;}\n}\n@media (max-width:760px){\n  #ld-ds-intro .ld-lead{font-size:16px;}\n  #ld-ds-intro .ld-cell dd{font-size:18px;}\n  #ld-ds-intro .ld-strip{gap:8px 18px;}\n}\n\u003c\/style\u003e\n\n  \u003cp class=\"ld-kicker\"\u003eDandy · Beneath The Grate · 48″ × 24″\u003c\/p\u003e\n\n  \u003cp class=\"ld-lead\"\u003e\n    \u003cstrong\u003eDandy Sack storm grate sediment filter\u003c\/strong\u003e for a \u003cstrong\u003e48″ × 24″\u003c\/strong\u003e grate. A full 48-inch grate at 24-inch depth, typical of larger municipal inlets. The\n    open-top sack hangs beneath the grate on internal cradle straps, with a two-foot containment area\n    that captures suspended solids before they reach the inlet. No rebar required.\n  \u003c\/p\u003e\n\n  \u003cdl class=\"ld-rail\"\u003e\n    \u003cdiv class=\"ld-cell\"\u003e\n      \u003cdt\u003eGrate Size\u003c\/dt\u003e\n      \u003cdd\u003e48″ × 24″\u003cspan\u003eFits the grate it hangs from\u003c\/span\u003e\n\u003c\/dd\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ld-cell\"\u003e\n      \u003cdt\u003eModel\u003c\/dt\u003e\n      \u003cdd\u003eDS-48-24\u003cspan\u003eBrand: Dandy\u003c\/span\u003e\n\u003c\/dd\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ld-cell\"\u003e\n      \u003cdt\u003eContainment\u003c\/dt\u003e\n      \u003cdd\u003e2 ft\u003cspan\u003eEmpty at one third full\u003c\/span\u003e\n\u003c\/dd\u003e\n    \u003c\/div\u003e\n  \u003c\/dl\u003e\n\n  \u003cul class=\"ld-strip\"\u003e\n    \u003cli\u003eHangs beneath the grate\u003c\/li\u003e\n    \u003cli\u003eNo rebar required\u003c\/li\u003e\n    \u003cli\u003eInternal straps cradle the grate\u003c\/li\u003e\n    \u003cli\u003eTwo-foot containment area\u003c\/li\u003e\n    \u003cli\u003eFree shipping on all orders\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n\u003c\/div\u003e","brand":"Dandy","offers":[{"title":"Default Title","offer_id":54831184380276,"sku":"DS-48-24","price":151.22,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1006\/1883\/0196\/files\/DS-48-24-2.jpg?v=1782096653"},{"product_id":"dandy-sack-48-x-36-storm-grate-sediment-filter","title":"Dandy Sack - 48\" x 36\" - Storm Grate Sediment Filter","description":"\u003c!-- ================================================================\n     LANDSCAPE DISCOUNT — Dandy Sack 48\" x 36\"\n     INTRO BLOCK  ·  paste into the Shopify product DESCRIPTION field\n     Scope: #ld-ds-intro\n     ================================================================ --\u003e\n\n\u003cdiv id=\"ld-ds-intro\"\u003e\n\u003cstyle\u003e\n#ld-ds-intro{\n  --forest:#33471F; --olive:#5B7B30; --leaf:#8FC24A; --cream:#F3F0E7;\n  --ink:#1E1B1C; --body:#4a4744; --muted:#7A7568; --hair:#e5e2d8; --tint:#F7F5EF;\n  --hex:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);\n  font-family:Archivo,'Lato',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;\n  color:var(--body); font-size:16px; line-height:1.65;\n}\n#ld-ds-intro *{box-sizing:border-box;}\n\n#ld-ds-intro .ld-kicker{\n  font-family:'League Spartan','Archivo Narrow',sans-serif; font-weight:700;\n  text-transform:uppercase; letter-spacing:2px; font-size:12px;\n  color:var(--olive); margin:0 0 10px;\n}\n#ld-ds-intro .ld-lead{\n  margin:0 0 22px; font-size:17px; line-height:1.62; color:var(--body);\n}\n#ld-ds-intro .ld-lead strong{color:var(--ink); font-weight:600;}\n\n\/* ---- spec cards ---- *\/\n#ld-ds-intro .ld-rail{\n  display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:0 0 14px;\n}\n#ld-ds-intro .ld-cell{\n  position:relative; background:#fff; border:1px solid var(--hair);\n  border-top:3px solid var(--olive); padding:15px 15px 14px;\n}\n#ld-ds-intro .ld-cell::before{\n  content:\"\"; position:absolute; right:12px; top:11px;\n  width:8px; height:8px; background:var(--leaf); clip-path:var(--hex);\n}\n#ld-ds-intro .ld-cell dt{\n  font-family:'League Spartan','Archivo Narrow',sans-serif; font-weight:700;\n  text-transform:uppercase; letter-spacing:1.4px; font-size:10px;\n  color:var(--olive); margin:0 0 9px; padding-right:22px;}\n#ld-ds-intro .ld-cell dd{\n  margin:0; font-family:'League Spartan','Archivo Narrow',sans-serif;\n  font-weight:700; font-size:clamp(17px,1.5vw,20px); line-height:1.1;\n  color:var(--forest); letter-spacing:-.01em; padding-right:6px;}\n#ld-ds-intro .ld-cell dd span{\n  display:block; font-family:Archivo,sans-serif; font-weight:400;\n  font-size:12px; line-height:1.4; color:var(--muted);\n  letter-spacing:0; margin-top:8px;\n}\n\n\/* ---- trust strip ---- *\/\n#ld-ds-intro .ld-strip{\n  display:flex; flex-wrap:wrap; gap:8px 26px;\n  border-top:1px solid var(--hair); padding-top:13px; margin:0;\n  list-style:none;\n}\n#ld-ds-intro .ld-strip li{\n  display:flex; align-items:center; gap:8px;\n  font-size:13.5px; color:var(--ink);\n}\n#ld-ds-intro .ld-strip li::before{\n  content:\"\"; flex:0 0 auto; width:9px; height:9px;\n  background:var(--olive); clip-path:var(--hex);\n}\n\n@media (max-width:900px){\n  #ld-ds-intro .ld-rail{grid-template-columns:1fr;}\n}\n@media (max-width:760px){\n  #ld-ds-intro .ld-lead{font-size:16px;}\n  #ld-ds-intro .ld-cell dd{font-size:18px;}\n  #ld-ds-intro .ld-strip{gap:8px 18px;}\n}\n\u003c\/style\u003e\n\n  \u003cp class=\"ld-kicker\"\u003eDandy · Beneath The Grate · 48″ × 36″\u003c\/p\u003e\n\n  \u003cp class=\"ld-lead\"\u003e\n    \u003cstrong\u003eDandy Sack storm grate sediment filter\u003c\/strong\u003e for a \u003cstrong\u003e48″ × 36″\u003c\/strong\u003e grate. The largest size stocked, for wide deep grates on high-capacity inlets. The\n    open-top sack hangs beneath the grate on internal cradle straps, with a two-foot containment area\n    that captures suspended solids before they reach the inlet. No rebar required.\n  \u003c\/p\u003e\n\n  \u003cdl class=\"ld-rail\"\u003e\n    \u003cdiv class=\"ld-cell\"\u003e\n      \u003cdt\u003eGrate Size\u003c\/dt\u003e\n      \u003cdd\u003e48″ × 36″\u003cspan\u003eFits the grate it hangs from\u003c\/span\u003e\n\u003c\/dd\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ld-cell\"\u003e\n      \u003cdt\u003eModel\u003c\/dt\u003e\n      \u003cdd\u003eDS-48-36\u003cspan\u003eBrand: Dandy\u003c\/span\u003e\n\u003c\/dd\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ld-cell\"\u003e\n      \u003cdt\u003eContainment\u003c\/dt\u003e\n      \u003cdd\u003e2 ft\u003cspan\u003eEmpty at one third full\u003c\/span\u003e\n\u003c\/dd\u003e\n    \u003c\/div\u003e\n  \u003c\/dl\u003e\n\n  \u003cul class=\"ld-strip\"\u003e\n    \u003cli\u003eHangs beneath the grate\u003c\/li\u003e\n    \u003cli\u003eNo rebar required\u003c\/li\u003e\n    \u003cli\u003eInternal straps cradle the grate\u003c\/li\u003e\n    \u003cli\u003eTwo-foot containment area\u003c\/li\u003e\n    \u003cli\u003eFree shipping on all orders\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n\u003c\/div\u003e","brand":"Dandy","offers":[{"title":"Default Title","offer_id":54831184413044,"sku":"DS-48-36","price":156.52,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1006\/1883\/0196\/files\/DS-48-36-2.jpg?v=1782096656"}],"url":"https:\/\/landscapediscount.com\/collections\/dandy-sack.oembed","provider":"Landscape Discount","version":"1.0","type":"link"}