{"product_id":"jeans","title":"French Bulldog Denim Overalls – Stretchy Washed Jeans Jumpsuit","description":"\u003cdiv id=\"frenchie-calc\"\u003e\n  \u003cstyle\u003e\n    #frenchie-calc{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;max-width:600px;margin:1.5rem auto;color:#1a1a1a}\n    #frenchie-calc .fc-open-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 22px;background:#FFA02E;color:#003049;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}\n    #frenchie-calc .fc-open-btn:hover{opacity:.85}\n    #frenchie-calc .fc-modal-bg{display:none;margin-top:16px}\n    #frenchie-calc .fc-modal-bg.open{display:block}\n    #frenchie-calc .fc-modal{background:#fff;border:1px solid #e0e0e0;border-radius:14px;padding:24px;position:relative}\n    #frenchie-calc .fc-close{position:absolute;top:14px;right:16px;background:none;border:none;font-size:20px;cursor:pointer;color:#888;line-height:1;padding:0}\n    #frenchie-calc h3{font-size:16px;font-weight:600;margin:0 0 4px}\n    #frenchie-calc .fc-sub{font-size:13px;color:#666;margin:0 0 18px}\n    #frenchie-calc .fc-unit-toggle{display:flex;border:1px solid #ddd;border-radius:8px;overflow:hidden;width:fit-content;margin-bottom:18px}\n    #frenchie-calc .fc-unit-btn{padding:6px 18px;font-size:13px;cursor:pointer;background:transparent;border:none;color:#666;font-family:inherit}\n    #frenchie-calc .fc-unit-btn.active{background:#f0f0f0;color:#1a1a1a;font-weight:600}\n    #frenchie-calc .fc-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:18px}\n    #frenchie-calc .fc-field label{display:block;font-size:12px;color:#666;margin-bottom:5px;font-weight:500}\n    #frenchie-calc .fc-field input{width:100%;box-sizing:border-box;padding:8px 11px;border:1px solid #ddd;border-radius:8px;font-size:14px;font-family:inherit;outline:none}\n    #frenchie-calc .fc-field input:focus{border-color:#FFA02E}\n    #frenchie-calc .fc-result{border:1px solid #e0e0e0;border-radius:10px;padding:16px;margin-bottom:14px;background:#fafafa;min-height:70px}\n    #frenchie-calc .fc-size-big{font-size:48px;font-weight:700;line-height:1;color:#003049}\n    #frenchie-calc .fc-result-note{font-size:13px;color:#444;margin-top:8px;line-height:1.6}\n    #frenchie-calc .fc-pills{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}\n    #frenchie-calc .fc-pill{padding:3px 10px;border-radius:20px;font-size:12px;border:1px solid #ddd;color:#888;background:transparent;font-weight:500}\n    #frenchie-calc .fc-pill.active{background:#FFA02E;color:#003049;border-color:#FFA02E;font-weight:700}\n    #frenchie-calc .fc-tip{border-left:2px solid #FFA02E;padding:9px 12px;font-size:12px;color:#555;line-height:1.6;margin-bottom:12px}\n    #frenchie-calc .fc-toggle-btn{font-size:12px;color:#555;cursor:pointer;background:none;border:none;padding:0;font-family:inherit;text-decoration:underline;margin-bottom:8px}\n    #frenchie-calc table{width:100%;border-collapse:collapse;font-size:12px;margin-top:6px}\n    #frenchie-calc table th{text-align:left;padding:7px 8px;color:#666;font-weight:600;border-bottom:1px solid #e0e0e0}\n    #frenchie-calc table td{padding:7px 8px;border-bottom:1px solid #f0f0f0;color:#1a1a1a}\n    #frenchie-calc table tr.fc-hl td{background:#003049;color:#fff;font-weight:600}\n    #frenchie-calc .fc-placeholder{font-size:13px;color:#888;padding:8px 0}\n    @media(max-width:460px){#frenchie-calc .fc-grid{grid-template-columns:1fr}}\n  \u003c\/style\u003e\n\n  \u003cbutton class=\"fc-open-btn\" onclick=\"fcToggleModal()\"\u003e\n    📏 Find my Frenchie's size\n  \u003c\/button\u003e\n\n  \u003cdiv class=\"fc-modal-bg\" id=\"fc-modal-bg\"\u003e\n    \u003cdiv class=\"fc-modal\"\u003e\n      \u003cbutton class=\"fc-close\" onclick=\"fcToggleModal()\"\u003e×\u003c\/button\u003e\n      \u003ch3\u003eSize calculator\u003c\/h3\u003e\n      \u003cp class=\"fc-sub\"\u003eEnter your dog's measurements for an instant recommendation.\u003c\/p\u003e\n\n      \u003cdiv class=\"fc-unit-toggle\"\u003e\n        \u003cbutton class=\"fc-unit-btn active\" onclick=\"fcSetUnit('cm')\" id=\"fc-btn-cm\"\u003ecm\u003c\/button\u003e\n        \u003cbutton class=\"fc-unit-btn\" onclick=\"fcSetUnit('in')\" id=\"fc-btn-in\"\u003einches\u003c\/button\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fc-grid\"\u003e\n        \u003cdiv class=\"fc-field\"\u003e\n\u003clabel id=\"fc-lbl-neck\"\u003eNeck (cm)\u003c\/label\u003e\u003cinput type=\"number\" id=\"fc-neck\" placeholder=\"e.g. 32\" min=\"1\" oninput=\"fcCalc()\"\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"fc-field\"\u003e\n\u003clabel id=\"fc-lbl-chest\"\u003eChest (cm)\u003c\/label\u003e\u003cinput type=\"number\" id=\"fc-chest\" placeholder=\"e.g. 54\" min=\"1\" oninput=\"fcCalc()\"\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"fc-field\"\u003e\n\u003clabel id=\"fc-lbl-back\"\u003eBack (cm)\u003c\/label\u003e\u003cinput type=\"number\" id=\"fc-back\" placeholder=\"e.g. 30\" min=\"1\" oninput=\"fcCalc()\"\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fc-result\" id=\"fc-result\"\u003e\n        \u003cdiv class=\"fc-placeholder\"\u003eEnter measurements above to get your size.\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fc-tip\"\u003eFrench bulldogs have a wide chest — always size up if between sizes. Chest measurement is the most important.\u003c\/div\u003e\n\n      \u003cbutton class=\"fc-toggle-btn\" onclick=\"fcToggleChart()\" id=\"fc-chart-toggle\"\u003eShow full size chart ↓\u003c\/button\u003e\n      \u003cdiv id=\"fc-chart\" style=\"display:none\"\u003e\n        \u003ctable\u003e\n          \u003cthead\u003e\u003ctr\u003e\n\u003cth\u003eSize\u003c\/th\u003e\n\u003cth id=\"fc-th-neck\"\u003eNeck (cm)\u003c\/th\u003e\n\u003cth id=\"fc-th-chest\"\u003eChest (cm)\u003c\/th\u003e\n\u003cth id=\"fc-th-back\"\u003eBack (cm)\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n          \u003ctbody id=\"fc-tbody\"\u003e\u003c\/tbody\u003e\n        \u003c\/table\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cscript\u003e\n    (function(){\n      var SIZES=[\n        {name:'XXS',neck:[22,26],chest:[32,38],back:[18,22]},\n        {name:'XS',neck:[26,30],chest:[38,44],back:[22,26]},\n        {name:'S',neck:[30,34],chest:[44,50],back:[26,30]},\n        {name:'M',neck:[34,38],chest:[50,57],back:[30,35]},\n        {name:'L',neck:[38,43],chest:[57,64],back:[35,40]},\n        {name:'XL',neck:[43,49],chest:[64,72],back:[40,46]},\n        {name:'XXL',neck:[49,55],chest:[72,80],back:[46,52]},\n        {name:'3XL',neck:[55,62],chest:[80,90],back:[52,58]}\n      ];\n      var unit='cm';\n\n      window.fcToggleModal=function(){\n        document.getElementById('fc-modal-bg').classList.toggle('open');\n      };\n\n      window.fcSetUnit=function(u){\n        unit=u;\n        document.getElementById('fc-btn-cm').className='fc-unit-btn'+(u==='cm'?' active':'');\n        document.getElementById('fc-btn-in').className='fc-unit-btn'+(u==='in'?' active':'');\n        var s=u==='cm'?'cm':'in';\n        document.getElementById('fc-lbl-neck').textContent='Neck ('+s+')';\n        document.getElementById('fc-lbl-chest').textContent='Chest ('+s+')';\n        document.getElementById('fc-lbl-back').textContent='Back ('+s+')';\n        document.getElementById('fc-th-neck').textContent='Neck ('+s+')';\n        document.getElementById('fc-th-chest').textContent='Chest ('+s+')';\n        document.getElementById('fc-th-back').textContent='Back ('+s+')';\n        document.getElementById('fc-neck').value='';\n        document.getElementById('fc-chest').value='';\n        document.getElementById('fc-back').value='';\n        fcRenderChart(-1);fcCalc();\n      };\n\n      function toCm(v){return unit==='in'?v*2.54:v;}\n      function fromCm(v){return unit==='in'?(v\/2.54).toFixed(1):v;}\n\n      window.fcCalc=function(){\n        var n=parseFloat(document.getElementById('fc-neck').value);\n        var c=parseFloat(document.getElementById('fc-chest').value);\n        var b=parseFloat(document.getElementById('fc-back').value);\n        var result=document.getElementById('fc-result');\n        if([n,c,b].filter(function(x){return!isNaN(x)\u0026\u0026x\u003e0;}).length===0){\n          result.innerHTML='\u003cdiv class=\"fc-placeholder\"\u003eEnter measurements above to get your size.\u003c\/div\u003e';\n          fcRenderChart(-1);return;\n        }\n        var ncm=isNaN(n)?null:toCm(n),ccm=isNaN(c)?null:toCm(c),bcm=isNaN(b)?null:toCm(b);\n        var best=null,bestScore=-1;\n        for(var i=0;i\u003cSIZES.length;i++){\n          var s=SIZES[i],pts=0;\n          if(ncm!==null\u0026\u0026ncm\u003e=s.neck[0]\u0026\u0026ncm\u003cs.neck[1])pts+=1;\n          if(ccm!==null\u0026\u0026ccm\u003e=s.chest[0]\u0026\u0026ccm\u003cs.chest[1])pts+=2;\n          if(bcm!==null\u0026\u0026bcm\u003e=s.back[0]\u0026\u0026bcm\u003cs.back[1])pts+=1;\n          if(pts\u003ebestScore){bestScore=pts;best=i;}\n        }\n        if(bestScore===0){\n          result.innerHTML='\u003cdiv class=\"fc-placeholder\"\u003eCould not match — please check measurements or contact us.\u003c\/div\u003e';\n          fcRenderChart(-1);return;\n        }\n        var sz=SIZES[best];\n        var nextName=best\u003cSIZES.length-1?SIZES[best+1].name:null;\n        var note=(ccm!==null\u0026\u0026ccm\u003e=sz.chest[1]-2\u0026\u0026nextName)?'Chest is near the upper limit — consider \u003cstrong\u003e'+nextName+'\u003c\/strong\u003e for a roomier fit.':'This size should fit your Frenchie well.';\n        var pills=SIZES.map(function(s){return'\u003cdiv class=\"fc-pill'+(s.name===sz.name?' active':'')+'\"\u003e'+ s.name+'\u003c\/div\u003e';}).join('');\n        result.innerHTML='\u003cdiv style=\"display:flex;align-items:flex-end;gap:10px;margin-bottom:6px\"\u003e\u003cdiv class=\"fc-size-big\"\u003e'+sz.name+'\u003c\/div\u003e\u003cdiv style=\"font-size:13px;color:#666;padding-bottom:8px\"\u003erecommended\u003c\/div\u003e\u003c\/div\u003e\u003cdiv class=\"fc-result-note\"\u003e'+note+'\u003c\/div\u003e\u003cdiv class=\"fc-pills\"\u003e'+pills+'\u003c\/div\u003e';\n        fcRenderChart(best);\n      };\n\n      function fcRenderChart(activeIdx){\n        document.getElementById('fc-tbody').innerHTML=SIZES.map(function(s,i){\n          var cls=i===activeIdx?' class=\"fc-hl\"':'';\n          return'\u003ctr'+cls+'\u003e\u003ctd\u003e'+s.name+'\u003c\/td\u003e\u003ctd\u003e'+fromCm(s.neck[0])+' – '+fromCm(s.neck[1])+'\u003c\/td\u003e\u003ctd\u003e'+fromCm(s.chest[0])+' – '+fromCm(s.chest[1])+'\u003c\/td\u003e\u003ctd\u003e'+fromCm(s.back[0])+' – '+fromCm(s.back[1])+'\u003c\/td\u003e\u003c\/tr\u003e';\n        }).join('');\n      }\n\n      window.fcToggleChart=function(){\n        var chart=document.getElementById('fc-chart'),btn=document.getElementById('fc-chart-toggle');\n        if(chart.style.display==='none'){chart.style.display='block';btn.textContent='Hide size chart ↑';}\n        else{chart.style.display='none';btn.textContent='Show full size chart ↓';}\n      };\n\n      fcRenderChart(-1);\n    })();\n  \u003c\/script\u003e\n\u003c\/div\u003e\n\u003cp\u003eYour Frenchie just became the most stylish dog on the block — denim overalls that are as comfy as they are cool. 👖🐾\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"\u003e\u003cstrong\u003eProduct Features:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e👖 \u003cstrong\u003eWashed Denim Style\u003c\/strong\u003e: Casual worn-in denim look that gives your Frenchie instant streetwear credibility\u003c\/li\u003e\n\u003cli\u003e🤸 \u003cstrong\u003eStretchy \u0026amp; Flexible\u003c\/strong\u003e: Elastic denim fabric moves with your Frenchie — no restriction, full comfort all day\u003c\/li\u003e\n\u003cli\u003e🎽 \u003cstrong\u003eOverall Jumpsuit Cut\u003c\/strong\u003e: Full coverage one-piece design that fits the stocky Frenchie build perfectly\u003c\/li\u003e\n\u003cli\u003e🌀 \u003cstrong\u003eSoft \u0026amp; Comfortable\u003c\/strong\u003e: Lightweight denim feel that won't irritate your Frenchie's skin during long wear\u003c\/li\u003e\n\u003cli\u003e🔵 \u003cstrong\u003eClassic Denim Blue\u003c\/strong\u003e: Timeless washed blue color that pairs with absolutely any look or occasion\u003c\/li\u003e\n\u003cli\u003e📏 \u003cstrong\u003e6 Sizes\u003c\/strong\u003e: S to XXL — a perfect fit for every French Bulldog from lean pups to chunky adults\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0722\/2539\/0753\/files\/ChatGPT_Image_10_mai_2026_11_58_28.png?v=1778410739\" alt=\"\"\u003e\u003c\/p\u003e","brand":"eprolo","offers":[{"title":"Denim Blue \/ S","offer_id":46419640156321,"sku":"23026F0DEB5E45B6AAD055FE643372B8","price":28.99,"currency_code":"USD","in_stock":true},{"title":"Denim Blue \/ SM","offer_id":46419640189089,"sku":"EBCBB64D2DDE49F589E55AA219AEA2D4","price":28.99,"currency_code":"USD","in_stock":true},{"title":"Denim Blue \/ M","offer_id":46419640221857,"sku":"04B4008E8A514F04AF7E40E6D42A13EA","price":28.99,"currency_code":"USD","in_stock":true},{"title":"Denim Blue \/ L","offer_id":46419640254625,"sku":"B259AD7FC797445DA11995F4845B89B1","price":28.99,"currency_code":"USD","in_stock":true},{"title":"Denim Blue \/ XL","offer_id":46419640287393,"sku":"65D734ABBE574E81A87B221C5D313E8F","price":28.99,"currency_code":"USD","in_stock":true},{"title":"Denim Blue \/ XXL","offer_id":46419640320161,"sku":"E9840E32B10B4E1B929886F91F0E5895","price":28.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0722\/2539\/0753\/files\/Gemini_Generated_Image_acgedyacgedyacge_3.jpg?v=1778410375","url":"https:\/\/frenchiehub.shop\/products\/jeans","provider":"Frenchie Hub","version":"1.0","type":"link"}