{"title":"Objets","description":"\u003cp\u003eSteel that does one job properly. Presses, openers and small tools for the kitchen behind the table — in stock now, with more to follow this autumn.\u003c\/p\u003e","products":[{"product_id":"column-electric-corkscrew","title":"Column Electric Corkscrew","description":"\u003cp style=\"font-size:21px;line-height:1.5;margin:0 0 22px\"\u003e\u003cstrong\u003eIt opens a bottle in about eight seconds and ejects the cork\u003c\/strong\u003e, then goes back to being an object you are happy to leave out — on the table, on the sideboard, next to the decanter.\u003c\/p\u003e\n\u003cp style=\"margin:0 0 18px\"\u003eA column with a single angled metal collar, standing on its own charging base. It sits over the neck of the bottle, does the work in one motion, and lifts away with the cork held inside. There is no lever to brace against, no screw to line up by eye, and nothing to wrestle with in front of guests.\u003c\/p\u003e\n\u003cp style=\"margin:0 0 18px\"\u003eMade for the Clyro table in two finishes, \u003cstrong\u003eChampagne Gold\u003c\/strong\u003e and \u003cstrong\u003ePolished Chrome\u003c\/strong\u003e. The foil cutter, the charging base and a USB-C cable are all in the box, so the whole business of opening a bottle lives in one place instead of three drawers.\u003c\/p\u003e\n\n\u003cdiv style=\"margin:38px 0 14px;display:flex;align-items:center;gap:14px\"\u003e\n\u003cspan style=\"flex:none;font-size:11px;font-weight:700;letter-spacing:3.4px;text-transform:uppercase;opacity:.8\"\u003eWhat you get\u003c\/span\u003e\n\u003cspan style=\"flex:1;height:1px;background:currentColor;opacity:.22\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:0 0 34px\"\u003e\n\u003cdiv style=\"background:#0b0b0d;border:1px solid rgba(244,241,234,.14);padding:20px\"\u003e\n\u003cp style=\"margin:0 0 6px;font-size:11px;letter-spacing:2.6px;text-transform:uppercase;color:#c81e2d;font-weight:700\"\u003e01\u003c\/p\u003e\n\u003cp style=\"margin:0 0 6px;font-weight:700;font-size:17px\"\u003eThe Column\u003c\/p\u003e\n\u003cp style=\"margin:0;font-size:14px;opacity:.72\"\u003eThe corkscrew itself, with its single angled metal collar. It goes over the neck, opens the bottle in about eight seconds and ejects the cork.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"background:#0b0b0d;border:1px solid rgba(244,241,234,.14);padding:20px\"\u003e\n\u003cp style=\"margin:0 0 6px;font-size:11px;letter-spacing:2.6px;text-transform:uppercase;color:#c81e2d;font-weight:700\"\u003e02\u003c\/p\u003e\n\u003cp style=\"margin:0 0 6px;font-weight:700;font-size:17px\"\u003eCharging base\u003c\/p\u003e\n\u003cp style=\"margin:0;font-size:14px;opacity:.72\"\u003eThe Column stands upright in its own cradle between bottles. That is where it charges, and it is why it can be left out rather than put away.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"background:#0b0b0d;border:1px solid rgba(244,241,234,.14);padding:20px\"\u003e\n\u003cp style=\"margin:0 0 6px;font-size:11px;letter-spacing:2.6px;text-transform:uppercase;color:#c81e2d;font-weight:700\"\u003e03\u003c\/p\u003e\n\u003cp style=\"margin:0 0 6px;font-weight:700;font-size:17px\"\u003eFoil cutter\u003c\/p\u003e\n\u003cp style=\"margin:0;font-size:14px;opacity:.72\"\u003eIncluded. It takes the capsule off cleanly before the Column goes on, so the two steps are one small ritual instead of a hunt for a knife.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"background:#0b0b0d;border:1px solid rgba(244,241,234,.14);padding:20px\"\u003e\n\u003cp style=\"margin:0 0 6px;font-size:11px;letter-spacing:2.6px;text-transform:uppercase;color:#c81e2d;font-weight:700\"\u003e04\u003c\/p\u003e\n\u003cp style=\"margin:0 0 6px;font-weight:700;font-size:17px\"\u003eUSB-C cable\u003c\/p\u003e\n\u003cp style=\"margin:0;font-size:14px;opacity:.72\"\u003eIn the box. It charges from the same cable as everything else on the sideboard, so there is no proprietary brick to lose.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv style=\"margin:38px 0 14px;display:flex;align-items:center;gap:14px\"\u003e\n\u003cspan style=\"flex:none;font-size:11px;font-weight:700;letter-spacing:3.4px;text-transform:uppercase;opacity:.8\"\u003eThe two finishes\u003c\/span\u003e\n\u003cspan style=\"flex:1;height:1px;background:currentColor;opacity:.22\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;margin:0 0 34px\"\u003e\n\u003cdiv\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1079\/2524\/2188\/files\/hf_20260823_190216_30146fb8-2ce2-40ec-8295-5f8bac895ece.png?width=400\" alt=\"Column Electric Corkscrew in Champagne Gold on its charging base\" style=\"width:100%;height:auto;display:block;border:1px solid rgba(244,241,234,.14)\"\u003e\n\u003cp style=\"margin:10px 0 0;font-size:11px;letter-spacing:2.6px;text-transform:uppercase;opacity:.7\"\u003eChampagne Gold\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1079\/2524\/2188\/files\/hf_20260823_190216_1397629c-68da-4155-8217-ae8b3b002f54.png?width=400\" alt=\"Column Electric Corkscrew in Polished Chrome on its charging base\" style=\"width:100%;height:auto;display:block;border:1px solid rgba(244,241,234,.14)\"\u003e\n\u003cp style=\"margin:10px 0 0;font-size:11px;letter-spacing:2.6px;text-transform:uppercase;opacity:.7\"\u003ePolished Chrome\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1079\/2524\/2188\/files\/hf_20260823_190614_7236bb86-59e2-41b0-83bc-797109a11c71.png?width=400\" alt=\"Overhead flat lay of the Column, its charging base, the foil cutter and the USB-C cable\" style=\"width:100%;height:auto;display:block;border:1px solid rgba(244,241,234,.14)\"\u003e\n\u003cp style=\"margin:10px 0 0;font-size:11px;letter-spacing:2.6px;text-transform:uppercase;opacity:.7\"\u003eEverything in the box\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv style=\"margin:38px 0 14px;display:flex;align-items:center;gap:14px\"\u003e\n\u003cspan style=\"flex:none;font-size:11px;font-weight:700;letter-spacing:3.4px;text-transform:uppercase;opacity:.8\"\u003eWhy it earns the sideboard\u003c\/span\u003e\n\u003cspan style=\"flex:1;height:1px;background:currentColor;opacity:.22\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;margin:0 0 34px\"\u003e\n\u003cdiv\u003e\n\u003cp style=\"margin:0 0 6px;font-weight:700\"\u003eOne motion\u003c\/p\u003e\n\u003cp style=\"margin:0;opacity:.75\"\u003eOver the neck, down, off. About eight seconds, and the cork comes away held inside the body rather than left behind in the bottle.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cp style=\"margin:0 0 6px;font-weight:700\"\u003eNo forearm involved\u003c\/p\u003e\n\u003cp style=\"margin:0;opacity:.75\"\u003eNothing to brace, nothing to lever. It opens the bottle the same way for whoever is holding it.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cp style=\"margin:0 0 6px;font-weight:700\"\u003eIt stays out\u003c\/p\u003e\n\u003cp style=\"margin:0;opacity:.75\"\u003eOn its base it reads as an object, not as a gadget. That is the whole point of the column form.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv style=\"margin:38px 0 14px;display:flex;align-items:center;gap:14px\"\u003e\n\u003cspan style=\"flex:none;font-size:11px;font-weight:700;letter-spacing:3.4px;text-transform:uppercase;opacity:.8\"\u003eBuy it with glasses\u003c\/span\u003e\n\u003cspan style=\"flex:1;height:1px;background:currentColor;opacity:.22\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp style=\"margin:0 0 34px\"\u003eThe Column is offered at a reduced price when it is bought together with any set of wine glasses from Clyro. Add the glasses and the corkscrew to your bag and the offer appears in the cart on its own — there is no code to enter and nothing to claim.\u003c\/p\u003e\n\n\u003cdiv style=\"margin:38px 0 14px;display:flex;align-items:center;gap:14px\"\u003e\n\u003cspan style=\"flex:none;font-size:11px;font-weight:700;letter-spacing:3.4px;text-transform:uppercase;opacity:.8\"\u003eThe obvious questions\u003c\/span\u003e\n\u003cspan style=\"flex:1;height:1px;background:currentColor;opacity:.22\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"border-left:2px solid #c81e2d;padding:2px 0 2px 20px;margin:0 0 34px\"\u003e\n\u003cp style=\"margin:0 0 4px\"\u003e\u003cstrong\u003eDoes it deal with the cork, or do I still have to?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp style=\"margin:0 0 18px;opacity:.75\"\u003eIt ejects the cork. The bottle is open and the cork is out of the way in one go.\u003c\/p\u003e\n\u003cp style=\"margin:0 0 4px\"\u003e\u003cstrong\u003eDo I need a separate foil cutter?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp style=\"margin:0 0 18px;opacity:.75\"\u003eNo. One is included in the box.\u003c\/p\u003e\n\u003cp style=\"margin:0 0 4px\"\u003e\u003cstrong\u003eWhat is the difference between the two finishes?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp style=\"margin:0 0 18px;opacity:.75\"\u003eOnly the finish. Champagne Gold and Polished Chrome are the same corkscrew; pick the one that suits the rest of the table.\u003c\/p\u003e\n\u003cp style=\"margin:0 0 4px\"\u003e\u003cstrong\u003eHow is it charged?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp style=\"margin:0;opacity:.75\"\u003eIt stands in its charging base, and a USB-C cable comes with it. We do not publish a figure for bottles per charge, so we will not quote one.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cdiv style=\"margin:38px 0 14px;display:flex;align-items:center;gap:14px\"\u003e\n\u003cspan style=\"flex:none;font-size:11px;font-weight:700;letter-spacing:3.4px;text-transform:uppercase;opacity:.8\"\u003eGoes with it\u003c\/span\u003e\n\u003cspan style=\"flex:1;height:1px;background:currentColor;opacity:.22\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"background:#0b0b0d;border:1px solid rgba(244,241,234,.18);padding:22px;margin:0 0 34px;display:flex;gap:20px;align-items:center;flex-wrap:wrap\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1079\/2524\/2188\/files\/hf_20260822_175455_184871f8-f361-419b-8685-06302c32ac5b.png?width=300\" alt=\"The Ruby Collection\" width=\"120\" height=\"120\" style=\"flex:none;width:120px;height:120px;object-fit:cover;border:1px solid rgba(244,241,234,.14)\"\u003e\n\u003cdiv style=\"flex:1 1 260px\"\u003e\n\u003cp style=\"font-size:10.5px;letter-spacing:3.6px;text-transform:uppercase;opacity:.55;margin:0 0 8px\"\u003eGoes with it\u003c\/p\u003e\n\u003cp style=\"margin:0 0 6px\"\u003e\u003cstrong\u003eThe Ruby Collection — from $49.99\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp style=\"margin:0 0 14px\"\u003eThe Column opens the bottle; these are what you pour it into. Buying the two together is also what triggers the reduced price on the corkscrew in the cart.\u003c\/p\u003e\n\u003ca href=\"\/products\/scarlet-stem-crystal-glasses\" style=\"display:inline-block;font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:13px 26px;text-decoration:none;background:#c81e2d;color:#ffffff\"\u003eSee it\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv style=\"margin:38px 0 14px;display:flex;align-items:center;gap:14px\"\u003e\n\u003cspan style=\"flex:none;font-size:11px;font-weight:700;letter-spacing:3.4px;text-transform:uppercase;opacity:.8\"\u003eSpecification\u003c\/span\u003e\n\u003cspan style=\"flex:1;height:1px;background:currentColor;opacity:.22\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003ctable style=\"width:100%;border-collapse:collapse;margin:0 0 34px;font-size:15px\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:11px 0;border-bottom:1px solid rgba(244,241,234,.12);opacity:.6;width:42%\"\u003eFinishes\u003c\/td\u003e\n\u003ctd style=\"padding:11px 0;border-bottom:1px solid rgba(244,241,234,.12)\"\u003eChampagne Gold, Polished Chrome\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:11px 0;border-bottom:1px solid rgba(244,241,234,.12);opacity:.6;width:42%\"\u003eForm\u003c\/td\u003e\n\u003ctd style=\"padding:11px 0;border-bottom:1px solid rgba(244,241,234,.12)\"\u003eColumn with a single angled metal collar, on a standing charging base\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:11px 0;border-bottom:1px solid rgba(244,241,234,.12);opacity:.6;width:42%\"\u003eOpening time\u003c\/td\u003e\n\u003ctd style=\"padding:11px 0;border-bottom:1px solid rgba(244,241,234,.12)\"\u003eAbout eight seconds, with cork ejection\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:11px 0;border-bottom:1px solid rgba(244,241,234,.12);opacity:.6;width:42%\"\u003eCharging\u003c\/td\u003e\n\u003ctd style=\"padding:11px 0;border-bottom:1px solid rgba(244,241,234,.12)\"\u003eCharging base, USB-C cable included\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:11px 0;opacity:.6;width:42%\"\u003eIn the box\u003c\/td\u003e\n\u003ctd style=\"padding:11px 0\"\u003eCorkscrew, charging base, foil cutter, USB-C cable\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\n\u003cdiv style=\"margin:38px 0 14px;display:flex;align-items:center;gap:14px\"\u003e\n\u003cspan style=\"flex:none;font-size:11px;font-weight:700;letter-spacing:3.4px;text-transform:uppercase;opacity:.8\"\u003eDelivery and returns\u003c\/span\u003e\n\u003cspan style=\"flex:1;height:1px;background:currentColor;opacity:.22\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp style=\"margin:0 0 22px\"\u003eShips free. Most orders arrive within one to two weeks, with tracking from the moment the parcel is scanned. Thirty days to send it back if it is not what you wanted.\u003c\/p\u003e\n\n\u003cp style=\"margin:0\"\u003e\u003csmall style=\"opacity:.55\"\u003eFinishes are photographed under studio lighting; screens vary, so Champagne Gold and Polished Chrome may read slightly warmer or cooler than they do in the room. Bottles, glasses and decanters shown alongside the Column are for scale and setting and are not included.\u003c\/small\u003e\u003c\/p\u003e\n\u003cscript id=\"cl-variant-fix\"\u003e\n(function(){\n  var m = window.location.pathname.match(\/\\\/products\\\/([a-z0-9-]+)\/);\n  if (!m) return;\n  fetch('\/products\/' + m[1] + '.js', { credentials: 'same-origin' })\n    .then(function (r) { return r.json(); })\n    .then(function (p) {\n      if (!p.variants || p.variants.length \u003c 2) return;\n      function optVals(i) { var s = {}; p.variants.forEach(function (v) { s[v.options[i]] = 1; }); return Object.keys(s); }\n      function current() {\n        return p.options.map(function (name, i) {\n          var r = document.querySelector('input[type=\"radio\"][name=\"' + name + '\"]:checked');\n          if (!r) { var rs = document.querySelectorAll('input[type=\"radio\"]:checked'); for (var k = 0; k \u003c rs.length; k++) { if (optVals(i).indexOf(rs[k].value) \u003e -1) { r = rs[k]; break; } } }\n          if (r) return r.value;\n          var sels = Array.prototype.slice.call(document.querySelectorAll('select'));\n          var vals = optVals(i);\n          var s = sels.filter(function (x) { return Array.prototype.some.call(x.options, function (o) { return vals.indexOf(o.value) \u003e -1; }); })[0];\n          return s ? s.value : null;\n        });\n      }\n      function apply() {\n        var opts = current();\n        var v = p.variants.filter(function (x) { return x.options.every(function (o, i) { return opts[i] === null || o === opts[i]; }); })[0];\n        if (!v) return;\n        document.querySelectorAll('form[action*=\"\/cart\/add\"] input[name=\"id\"], form[action*=\"\/cart\/add\"] [name=\"id\"]').forEach(function (inp) { if (String(inp.value) !== String(v.id)) inp.value = v.id; });\n      }\n      document.addEventListener('change', function () { setTimeout(apply, 60); }, true);\n      document.addEventListener('click', function () { setTimeout(apply, 150); }, true);\n      apply();\n      setInterval(apply, 1200);\n    })\n    .catch(function () {});\n})();\n\u003c\/script\u003e","brand":"clyro","offers":[{"title":"Champagne Gold","offer_id":58529637302604,"sku":"CL-CO-GLD","price":89.99,"currency_code":"USD","in_stock":true},{"title":"Polished Chrome","offer_id":58529637335372,"sku":"CL-CO-CHR","price":89.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1079\/2524\/2188\/files\/hf_20260823_190216_30146fb8-2ce2-40ec-8295-5f8bac895ece.png?v=1787512069"},{"product_id":"gilt-crystal-decanter-set","title":"Gilt Crystal Decanter Set","description":"\u003cp\u003eA heavy cut-crystal decanter with a faceted stopper, banded in gold, with six matching tumblers cut to the same pattern. The facets are deep enough to throw real refractions under a single low light.\u003c\/p\u003e\n\u003cp\u003eSeven pieces. It is an ornate object, best on a dark sideboard with one lamp on it rather than lost in the middle of a dressed table. The gold is a plain band: the decoration is in the cutting.\u003c\/p\u003e","brand":"clyro","offers":[{"title":"Decanter and Six Tumblers","offer_id":58534775226700,"sku":"CL-DC-GLT-7","price":174.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1079\/2524\/2188\/files\/hf_20260826_112242_af32745d-9681-40de-a3f1-fef978cd129c.png?v=1787743660"},{"product_id":"charcuterie-guillotine","title":"Charcuterie Guillotine","description":"\u003cp\u003eCured sausage resists a knife — it rolls, it drags, and the slices come out wedge-shaped. A guillotine settles the argument.\u003c\/p\u003e\n\u003cp\u003eA hand-operated slicer for the cured end of the table: a stainless steel blade on a dark walnut base, with a steel catch tray beneath. The meat sits in the groove, the blade comes down through it in one motion, and every slice is the same.\u003c\/p\u003e","brand":"Clyro","offers":[{"title":"Stainless and hardwood","offer_id":58559224807756,"sku":"CL-CG-STL","price":74.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1079\/2524\/2188\/files\/hf_20260826_103644_0ab933f1-f60b-4404-8eb0-f0b9df12f4c8.png?v=1787740756"},{"product_id":"piston-meatball-press","title":"Piston Meatball Press","description":"\u003cp\u003eTwelve meatballs. One press. Every one the same size.\u003c\/p\u003e\n\u003cp\u003eLoad the cylinder with mince, push the bar handle down once, and a tray of even balls drops straight out. No rolling, and no mince stuck to your palms. They cook evenly because they are even. It takes about four seconds.\u003c\/p\u003e\n\n\u003cstyle\u003e\n#cl-sets{margin:6px 0 18px}\n#cl-sets .clb-head{display:flex;align-items:center;gap:12px;margin:0 0 14px}\n#cl-sets .clb-line{flex:1;height:1px;background:currentColor;opacity:.35}\n#cl-sets .clb-title{font-size:1.2rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700}\n#cl-sets .clb-card{position:relative;border:2px solid rgba(244,241,234,.28);border-radius:10px;padding:1.5rem 1.6rem;margin:0 0 1.1rem;display:flex;align-items:center;gap:1.2rem;cursor:pointer}\n#cl-sets .clb-card.sel{border-color:#c81e2d}\n#cl-sets .clb-radio{width:2rem;height:2rem;border:2px solid rgba(244,241,234,.4);border-radius:50%;flex:none;position:relative}\n#cl-sets .clb-card.sel .clb-radio{border-color:#c81e2d}\n#cl-sets .clb-card.sel .clb-radio:after{content:\"\";position:absolute;inset:4px;background:#c81e2d;border-radius:50%}\n#cl-sets .clb-main{flex:1;min-width:0}\n#cl-sets .clb-t{font-weight:700;font-size:1.5rem;line-height:1.25;display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}\n#cl-sets .clb-pill{background:#c81e2d;color:#fff;font-size:1.02rem;font-weight:700;letter-spacing:.08em;padding:.25rem .7rem;border-radius:4px;white-space:nowrap}\n#cl-sets .clb-c{font-size:1.25rem;opacity:.7;margin-top:.35rem}\n#cl-sets .clb-price{text-align:right;flex:none}\n#cl-sets .clb-p{font-size:1.6rem;font-weight:700}\n#cl-sets .clb-was{font-size:1.2rem;opacity:.55;text-decoration:line-through}\n#cl-sets .clb-badge{position:absolute;top:-1.05rem;right:1.2rem;background:#c81e2d;color:#fff;font-size:1.02rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:.35rem .9rem}\n\u003c\/style\u003e\n\u003cscript id=\"cl-sets-js\"\u003e\n(function () {\n  var HANDLE = 'piston-meatball-press';\n  function boot() {\n    if (document.getElementById('cl-sets')) return;\n    var form = document.querySelector('form[action*=\"\/cart\/add\"]');\n    if (!form || !form.querySelector('input[name=\"id\"], [name=\"id\"]')) { setTimeout(boot, 300); return; }\n    fetch('\/products\/' + HANDLE + '.js', { credentials: 'same-origin' })\n      .then(function (r) { return r.json(); })\n      .then(function (p) { build(p, form); })\n      .catch(function () {});\n  }\n  function build(p, form) {\n    if (document.getElementById('cl-sets')) return;\n    var cur = (window.Shopify \u0026\u0026 Shopify.currency \u0026\u0026 Shopify.currency.active) || 'USD';\n    function money(cents) {\n      try { return new Intl.NumberFormat(undefined, { style: 'currency', currency: cur }).format(cents \/ 100); }\n      catch (e) { return (cents \/ 100).toFixed(2) + ' ' + cur; }\n    }\n    var sizes = [];\n    p.variants.forEach(function (v) { if (sizes.indexOf(v.option1) \u003c 0) sizes.push(v.option1); });\n    function tiersFor(unit) {\n      return [\n        { qty: 1, title: 'One press', total: unit, was: 0 },\n        { qty: 2, title: 'Two presses — second one 30% off', total: unit * 2 - Math.floor(unit * 0.3), was: unit * 2 },\n        { qty: 3, title: 'Three presses — one of them free', total: unit * 2, was: unit * 3 }\n      ];\n    }\n    var chosen = 2;\n    var tiers = tiersFor(p.variants[0].price);\n    function curSize() {\n      var r = document.querySelector('input[type=\"radio\"][name*=\"Size\"]:checked');\n      if (r) return r.value;\n      return sizes[0];\n    }\n    function variantFor(size) {\n      return p.variants.filter(function (v) { return v.option1 === size; })[0] || p.variants[0];\n    }\n    function setQty(n) {\n      var forms = document.querySelectorAll('form[action*=\"\/cart\/add\"]');\n      Array.prototype.forEach.call(forms, function (f) {\n        var inputs = f.querySelectorAll('input[name=\"quantity\"], [name=\"quantity\"]');\n        if (!inputs.length) {\n          var qi = document.createElement('input');\n          qi.type = 'hidden';\n          qi.name = 'quantity';\n          f.appendChild(qi);\n          inputs = [qi];\n        }\n        Array.prototype.forEach.call(inputs, function (i) {\n          i.value = String(n);\n          try { i.dispatchEvent(new Event('change', { bubbles: true })); } catch (e) {}\n        });\n      });\n    }\n    var box = document.createElement('div');\n    box.id = 'cl-sets';\n    function render() {\n      var html = '\u003cdiv class=\"clb-head\"\u003e\u003cspan class=\"clb-line\"\u003e\u003c\/span\u003e\u003cspan class=\"clb-title\"\u003eHow many\u003c\/span\u003e\u003cspan class=\"clb-line\"\u003e\u003c\/span\u003e\u003c\/div\u003e';\n      tiers.forEach(function (t, i) {\n        var save = t.was ? t.was - t.total : 0;\n        var pill = save ? '\u003cspan class=\"clb-pill\"\u003eSAVE ' + money(save) + '\u003c\/span\u003e' : '';\n        var was = save ? '\u003cdiv class=\"clb-was\"\u003e' + money(t.was) + '\u003c\/div\u003e' : '';\n        var badge = i === 1 ? '\u003cspan class=\"clb-badge\"\u003eMost popular\u003c\/span\u003e' : '';\n        var sub = i === 0 ? 'Standard price' : 'Ships free · Applied in cart';\n        html += '\u003cdiv class=\"clb-card' + (t.qty === chosen ? ' sel' : '') + '\" data-qty=\"' + t.qty + '\"\u003e' + badge +\n          '\u003cspan class=\"clb-radio\"\u003e\u003c\/span\u003e' +\n          '\u003cspan class=\"clb-main\"\u003e\u003cspan class=\"clb-t\"\u003e' + t.title + ' ' + pill + '\u003c\/span\u003e\u003cdiv class=\"clb-c\"\u003e' + sub + '\u003c\/div\u003e\u003c\/span\u003e' +\n          '\u003cspan class=\"clb-price\"\u003e\u003cdiv class=\"clb-p\"\u003e' + money(t.total) + '\u003c\/div\u003e' + was + '\u003c\/span\u003e' +\n          '\u003c\/div\u003e';\n      });\n      box.innerHTML = html;\n    }\n    render();\n    form.parentNode.insertBefore(box, form);\n    function apply() {\n      var v = variantFor(curSize());\n      tiers = tiersFor(v.price);\n      render();\n      document.querySelectorAll('form[action*=\"\/cart\/add\"] input[name=\"id\"], form[action*=\"\/cart\/add\"] [name=\"id\"]').forEach(function (inp) { inp.value = v.id; });\n      setQty(chosen);\n      var t = tiers.filter(function (x) { return x.qty === chosen; })[0] || tiers[0];\n      document.querySelectorAll('.product__info-container .price-item--regular').forEach(function (el) { el.textContent = money(t.total); });\n      try {\n        var u = new URL(window.location.href);\n        u.searchParams.set('variant', v.id);\n        window.history.replaceState({}, '', u.toString());\n      } catch (e) {}\n    }\n    box.addEventListener('click', function (e) {\n      var card = e.target \u0026\u0026 e.target.closest ? e.target.closest('.clb-card') : null;\n      if (!card) return;\n      chosen = parseInt(card.getAttribute('data-qty'), 10) || 1;\n      apply();\n    });\n    document.addEventListener('change', function (e) {\n      if (e.target \u0026\u0026 e.target.name \u0026\u0026 String(e.target.name).indexOf('Size') \u003e -1) setTimeout(apply, 60);\n    }, true);\n    setInterval(function () { setQty(chosen); }, 1200);\n    apply();\n  }\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', boot); } else { boot(); }\n})();\n\u003c\/script\u003e\n","brand":"Clyro","offers":[{"title":"Six wells","offer_id":58568074395980,"sku":"CL-MP-06","price":24.99,"currency_code":"USD","in_stock":true},{"title":"Twelve wells","offer_id":58568074527052,"sku":"CL-MP-12","price":27.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1079\/2524\/2188\/files\/hf_20260830_120825_d7f8c29d-0482-4e9b-bdc4-67927317e9ee.png?v=1788091837"},{"product_id":"piston-burger-press","title":"Piston Burger Press","description":"\u003cp\u003eThe same idea as the meatball press, applied to a patty. A stainless ring, a sprung plunger, and one press.\u003c\/p\u003e\n\u003cp\u003eIt gives an even round of exactly the same depth every time, so the patty meets the pan flat and cooks edge to edge. The ring is ten centimetres across and four deep, so a thick patty is as easy as a thin one.\u003c\/p\u003e\n\n\u003cstyle\u003e\n#cl-bp{margin:6px 0 18px}\n#cl-bp .clb-head{display:flex;align-items:center;gap:12px;margin:0 0 14px}\n#cl-bp .clb-line{flex:1;height:1px;background:currentColor;opacity:.35}\n#cl-bp .clb-title{font-size:1.2rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700}\n#cl-bp .clb-card{position:relative;border:2px solid rgba(244,241,234,.28);border-radius:10px;padding:1.5rem 1.6rem;margin:0 0 1.1rem;display:flex;align-items:center;gap:1.2rem;cursor:pointer}\n#cl-bp .clb-card.sel{border-color:#c81e2d}\n#cl-bp .clb-radio{width:2rem;height:2rem;border:2px solid rgba(244,241,234,.4);border-radius:50%;flex:none;position:relative}\n#cl-bp .clb-card.sel .clb-radio{border-color:#c81e2d}\n#cl-bp .clb-card.sel .clb-radio:after{content:\"\";position:absolute;inset:4px;background:#c81e2d;border-radius:50%}\n#cl-bp .clb-main{flex:1;min-width:0}\n#cl-bp .clb-t{font-weight:700;font-size:1.5rem;line-height:1.25;display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}\n#cl-bp .clb-pill{background:#c81e2d;color:#fff;font-size:1.02rem;font-weight:700;letter-spacing:.08em;padding:.25rem .7rem;border-radius:4px;white-space:nowrap}\n#cl-bp .clb-c{font-size:1.25rem;opacity:.7;margin-top:.35rem}\n#cl-bp .clb-price{text-align:right;flex:none}\n#cl-bp .clb-p{font-size:1.6rem;font-weight:700}\n#cl-bp .clb-was{font-size:1.2rem;opacity:.55;text-decoration:line-through}\n#cl-bp .clb-badge{position:absolute;top:-1.05rem;right:1.2rem;background:#c81e2d;color:#fff;font-size:1.02rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:.35rem .9rem}\n\u003c\/style\u003e\n\u003cscript id=\"cl-bp-js\"\u003e\n(function () {\n  var HANDLE = 'piston-burger-press';\n  function boot() {\n    if (document.getElementById('cl-bp')) return;\n    var form = document.querySelector('form[action*=\"\/cart\/add\"]');\n    if (!form) { setTimeout(boot, 300); return; }\n    fetch('\/products\/' + HANDLE + '.js', { credentials: 'same-origin' })\n      .then(function (r) { return r.json(); })\n      .then(function (p) { build(p, form); })\n      .catch(function () {});\n  }\n  function build(p, form) {\n    if (document.getElementById('cl-bp')) return;\n    var cur = (window.Shopify \u0026\u0026 Shopify.currency \u0026\u0026 Shopify.currency.active) || 'USD';\n    function money(cents) {\n      try { return new Intl.NumberFormat(undefined, { style: 'currency', currency: cur }).format(cents \/ 100); }\n      catch (e) { return (cents \/ 100).toFixed(2) + ' ' + cur; }\n    }\n    var unit = p.variants[0].price;\n    var save = Math.floor(unit * 0.2);\n    var qty = 1;\n    var box = document.createElement('div');\n    box.id = 'cl-bp';\n    box.innerHTML =\n      '\u003cdiv class=\"clb-head\"\u003e\u003cspan class=\"clb-line\"\u003e\u003c\/span\u003e\u003cspan class=\"clb-title\"\u003eBundle \u0026amp; Save\u003c\/span\u003e\u003cspan class=\"clb-line\"\u003e\u003c\/span\u003e\u003c\/div\u003e' +\n      '\u003cdiv class=\"clb-card sel\" data-qty=\"1\"\u003e' +\n        '\u003cspan class=\"clb-radio\"\u003e\u003c\/span\u003e' +\n        '\u003cspan class=\"clb-main\"\u003e\u003cspan class=\"clb-t\"\u003eBuy 1\u003c\/span\u003e\u003cdiv class=\"clb-c\"\u003eStandard price\u003c\/div\u003e\u003c\/span\u003e' +\n        '\u003cspan class=\"clb-price\"\u003e\u003cdiv class=\"clb-p\"\u003e' + money(unit) + '\u003c\/div\u003e\u003c\/span\u003e' +\n      '\u003c\/div\u003e' +\n      '\u003cdiv class=\"clb-card\" data-qty=\"2\"\u003e\u003cspan class=\"clb-badge\"\u003eMost popular\u003c\/span\u003e' +\n        '\u003cspan class=\"clb-radio\"\u003e\u003c\/span\u003e' +\n        '\u003cspan class=\"clb-main\"\u003e\u003cspan class=\"clb-t\"\u003eBuy 2 — second one 20% off \u003cspan class=\"clb-pill\"\u003eSAVE ' + money(save) + '\u003c\/span\u003e\u003c\/span\u003e\u003cdiv class=\"clb-c\"\u003eYou save 10% · Ships free\u003c\/div\u003e\u003c\/span\u003e' +\n        '\u003cspan class=\"clb-price\"\u003e\u003cdiv class=\"clb-p\"\u003e' + money(unit * 2 - save) + '\u003c\/div\u003e\u003cdiv class=\"clb-was\"\u003e' + money(unit * 2) + '\u003c\/div\u003e\u003c\/span\u003e' +\n      '\u003c\/div\u003e';\n    form.parentNode.insertBefore(box, form);\n    function apply() {\n      var forms = document.querySelectorAll('form[action*=\"\/cart\/add\"]');\n      Array.prototype.forEach.call(forms, function (f) {\n        var inputs = f.querySelectorAll('input[name=\"quantity\"]');\n        if (!inputs.length) {\n          var qi = document.createElement('input');\n          qi.type = 'hidden';\n          qi.name = 'quantity';\n          f.appendChild(qi);\n          inputs = [qi];\n        }\n        Array.prototype.forEach.call(inputs, function (i) { i.value = qty; });\n      });\n    }\n    box.addEventListener('click', function (e) {\n      var card = e.target \u0026\u0026 e.target.closest ? e.target.closest('.clb-card') : null;\n      if (!card) return;\n      qty = parseInt(card.getAttribute('data-qty'), 10) || 1;\n      Array.prototype.forEach.call(box.querySelectorAll('.clb-card'), function (c) { c.classList.toggle('sel', c === card); });\n      apply();\n    });\n    setInterval(apply, 1200);\n    apply();\n  }\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', boot); } else { boot(); }\n})();\n\u003c\/script\u003e","brand":"Clyro","offers":[{"title":"Default Title","offer_id":58569205711180,"sku":"CL-BP-10","price":19.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1079\/2524\/2188\/files\/hf_20260825_154709_f58512a5-ef78-4ff6-8ae5-f6ccaaff479f.png?v=1787673000"}],"url":"https:\/\/clyro22.com\/collections\/objets.oembed","provider":"clyro","version":"1.0","type":"link"}