{"product_id":"pet-dog-clothing-winter-cotton-dog-vest-jacket","title":"French Bulldog Winter Cotton Vest – Slim Fit \u0026 Minimalist Style","description":"\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\u003cdiv id=\"frenchie-calc\"\u003e\n\u003cbutton class=\"fc-open-btn\"\u003e 📏 Find my Frenchie's size \u003c\/button\u003e\n\u003cdiv id=\"fc-modal-bg\" class=\"fc-modal-bg\"\u003e\n\u003cdiv class=\"fc-modal\"\u003e\n\u003cbutton class=\"fc-close\"\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\u003cdiv class=\"fc-unit-toggle\"\u003e\n\u003cbutton id=\"fc-btn-cm\" class=\"fc-unit-btn active\"\u003ecm\u003c\/button\u003e \u003cbutton id=\"fc-btn-in\" class=\"fc-unit-btn\"\u003einches\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fc-grid\"\u003e\n\u003cdiv class=\"fc-field\"\u003e\n\u003clabel id=\"fc-lbl-neck\"\u003eNeck (cm)\u003c\/label\u003e\u003cinput min=\"1\" placeholder=\"e.g. 32\" id=\"fc-neck\" type=\"number\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fc-field\"\u003e\n\u003clabel id=\"fc-lbl-chest\"\u003eChest (cm)\u003c\/label\u003e\u003cinput min=\"1\" placeholder=\"e.g. 54\" id=\"fc-chest\" type=\"number\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fc-field\"\u003e\n\u003clabel id=\"fc-lbl-back\"\u003eBack (cm)\u003c\/label\u003e\u003cinput min=\"1\" placeholder=\"e.g. 30\" id=\"fc-back\" type=\"number\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"fc-result\" class=\"fc-result\"\u003e\n\u003cdiv class=\"fc-placeholder\"\u003eEnter measurements above to get your size.\u003c\/div\u003e\n\u003c\/div\u003e\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\u003cbutton id=\"fc-chart-toggle\" class=\"fc-toggle-btn\"\u003eShow full size chart ↓\u003c\/button\u003e\n\u003cdiv style=\"display: none;\" id=\"fc-chart\"\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\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\n\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\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\u003eSimple, clean and effortlessly chic — because your Frenchie's winter wardrobe deserves a staple they can wear anywhere. 🐾\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\u003eWarm Cotton Fill\u003c\/strong\u003e: Cozy padded vest keeps your Frenchie snug without the bulk this winter\u003c\/li\u003e\n\u003cli\u003e✂️ \u003cstrong\u003eSlim Fit Cut\u003c\/strong\u003e: Tailored fit hugs your Frenchie's body perfectly — no baggy, no sliding\u003c\/li\u003e\n\u003cli\u003e🔘 \u003cstrong\u003eButton Closure\u003c\/strong\u003e: Easy button-up design makes dressing your Frenchie quick and stress-free\u003c\/li\u003e\n\u003cli\u003e👕 \u003cstrong\u003eSleeveless \u0026amp; Round Neck\u003c\/strong\u003e: Freedom of movement for active Frenchies while keeping the core warm\u003c\/li\u003e\n\u003cli\u003e🎨 \u003cstrong\u003e4 Colors\u003c\/strong\u003e: Off White, Pink, Red and Blue — a clean minimalist palette for every mood\u003c\/li\u003e\n\u003cli\u003e🌿 \u003cstrong\u003eMinimalist Style\u003c\/strong\u003e: Solid, no-fuss design that looks polished and pairs with any outfit\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0722\/2539\/0753\/files\/1.png?v=1777742275\"\u003e\u003c\/p\u003e","brand":"eprolo","offers":[{"title":"Off white \/ XS","offer_id":46221772947617,"sku":"DC2EEE4794444372967C032D2D03AEB3","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Off white \/ S","offer_id":46221772980385,"sku":"81485939F927409CB35F30FBDBD9C15F","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Off white \/ M","offer_id":46221773013153,"sku":"00CB49C715324B4FBFA70D3039B14241","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Off white \/ L","offer_id":46221773045921,"sku":"205F43A3474A437FB857B7E31D37A6F5","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Off white \/ XL","offer_id":46221773078689,"sku":"78181861C1D748EE9167663574F91024","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Off white \/ XXL","offer_id":46221773111457,"sku":"EF02D960D43B4847A3885A5B9CBF831D","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Pink \/ XS","offer_id":46221773144225,"sku":"8921820E7312447288324614E369AB5E","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Pink \/ S","offer_id":46221773176993,"sku":"BE7C6166E036495482BBD10771887B5D","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Pink \/ M","offer_id":46221773209761,"sku":"7F28FF6DF31A491A8C107AA15EA11ACF","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Pink \/ L","offer_id":46221773242529,"sku":"C000945E4AB44985B1A9767E4EE6B3DA","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Pink \/ XL","offer_id":46221773275297,"sku":"1B52DA0B0CC24DB684ACC80C4868A445","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Pink \/ XXL","offer_id":46221773308065,"sku":"A5AC2E8D474B4D80BFD351F7DE9D178B","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Red \/ XS","offer_id":46221773340833,"sku":"4A00C3E15A494827BC1DA93BAD09A458","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Red \/ S","offer_id":46221773373601,"sku":"64EFD58EC81347519CB79F8B7338FF9C","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Red \/ M","offer_id":46221773406369,"sku":"0256D49A70C0450A9E5DE47FD3275BD6","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Red \/ L","offer_id":46221773439137,"sku":"71858392FFCD42BABB078E271F8FF777","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Red \/ XL","offer_id":46221773471905,"sku":"80F0A23455D44A778079FC32FBE92150","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Red \/ XXL","offer_id":46221773504673,"sku":"1BF8DDAA279443D5913DD9104DBFB71B","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Blue \/ XS","offer_id":46221773537441,"sku":"5146BDD99BC64215AB372355FAEC4DB1","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Blue \/ S","offer_id":46221773570209,"sku":"401EECB7C64B49B6B1A1544AD855EEAA","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Blue \/ M","offer_id":46221773602977,"sku":"75E6858BE4884DA694E95EC16C67FFCB","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Blue \/ L","offer_id":46221773635745,"sku":"FA3D6CD852B048CBB51C82DD3446B1E4","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Blue \/ XL","offer_id":46221773668513,"sku":"8761AC962BFA42F49F7684291917F050","price":20.99,"currency_code":"USD","in_stock":true},{"title":"Blue \/ XXL","offer_id":46221773701281,"sku":"D5BA3956329743D393E4AF01F85BC095","price":20.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0722\/2539\/0753\/files\/Gemini_Generated_Image_k7dg90k7dg90k7dg_1.jpg?v=1777742080","url":"https:\/\/frenchiehub.shop\/products\/pet-dog-clothing-winter-cotton-dog-vest-jacket","provider":"Frenchie Hub","version":"1.0","type":"link"}