1<!doctype html> 2<html class="js" lang="en"> 3 <head> 4 <!-- Google Tag Manager -->
5<script>
vendor: 327 bytes, lines 5-9
5(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 6new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 7j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 8'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 9})(window,document,'script','dataLayer','
9GTM-T2NKS496
vendor: 3 bytes, line 9
9');
9</script>
9 10<!-- End Google Tag Manager --> 11 12 <!-- Added by AVADA SEO Suite --> 13
13<script> 14 const avadaLightJsExclude = ['cdn.nfcube.com', 'assets/ecom.js', 'variant-title-king', 'linked_options_variants', 'smile-loader.js', 'smart-product-filter-search', 'rivo-loyalty-referrals', 'avada-cookie-consent', 'consentmo-gdpr', 'quinn', 'pandectes']; 15 const avadaLightJsInclude = ['https://www.googletagmanager.com/', 'https://connect.facebook.net/', 'https://business-api.tiktok.com/', 'https://static.klaviyo.com/']; 16 window.AVADA_SPEED_BLACKLIST = avadaLightJsInclude.map(item => new RegExp(item, 'i')); 17 window.AVADA_SPEED_WHITELIST = avadaLightJsExclude.map(item => new RegExp(item, 'i')); 18</script>
18 19
20<script> 21 const isSpeedUpEnable = !1752046266922 || Date.now() < 1752046266922; 22 if (isSpeedUpEnable) { 23 const avadaSpeedUp=1; 24 if(isSpeedUpEnable) { 25 function _0x53d9(){const _0x170185=['nodeType','63369lszPLx','iKPvb','HVOeQ','Avada\x20cann','ZrZqm','3863800QrUFjW','kTvxK','2247192hCVzur','getAttribu','fSThr','getOwnProp','disconnect','stener','type','removeEven','prototype','chwwO','tGtjK','D_BLACKLIS','iLLZu','2136ktFTsV','SCRIPT','observe','ptexecute','listener','applicatio','whitelist','beforescri','WTgRI','removeChil','toString','script','e=\x22','tFvnw','script[src','JNnKq','dHASL','warn','splice','NsUJZ','urocl','documentEl','VSqHW','querySelec','D_WHITELIS','wheel','itmxP','hMRjL','qRLVy','tagName','JGbBg','GHjch','YmmvJ','ent','QFogi','anFcU','name','some','options','wWnZL','head','ZAAUA','OOkjo','BKIcp','swzTT','toLowerCas','82652hFIPyX','qFqmP','4060362ANYaFw','WTKUX','ertyDescri','6263585qGddVJ','VnIiw','mayIQ','gQMba','test','FkDlF','parentElem','addEventLi','filter','keydown','AVADA_SPEE','mousemove','text/javas','ad\x20script','map','defineProp','ault','OEUDj','wWCAa','JkVKx','call','ayISI','n/javascri','hjpTX','fnfiT','forEach','touchstart','LQYPD','zFqqZ','xDeJh','push','value','attributes','erties','ement','GavtH','cript','bQbpj','preventDef','blacklist','Guypn','every','czMAC','touchmove','SxZcH','/blocked','KEjiW','tListener','\x5c$&','ptor','geSDJ','7QTFVxh','get','string','170478TNKaMQ','touchend','srwZD','src','blackliste','set','replace','appendChil','OJdKO','jblnV','length','ot\x20lazy\x20lo','HxEaK','setAttribu','torAll','javascript','bind','script[typ','createElem'];_0x53d9=function(){return _0x170185;};return _0x53d9();}function _0x24be(_0x50f909,_0x28e12b){_0x50f909=_0x50f909-(-0x1*-0x1da7+0x25f5+-0x1*0x42a7);const _0x883a1c=_0x53d9();let _0x1a279c=_0x883a1c[_0x50f909];return _0x1a279c;}(function(_0xe92e08,_0x5b766b){const _0x4ffdf8=_0x24be,_0x18a97e=_0xe92e08();while(!![]){try{const _0x3fb055=-parseInt(_0x4ffdf8(0x140))/(-0x19ec+0x2257+0x2*-0x435)+parseInt(_0x4ffdf8(0x17b))/(-0x1*0x15f7+-0xe*-0x1bc+-0x3*0xc5)+-parseInt(_0x4ffdf8(0x105))/(-0xd99+0x1d1f+-0x1*0xf83)+-parseInt(_0x4ffdf8(0x103))/(0x1*-0xc1+-0x278+-0x1*-0x33d)+parseInt(_0x4ffdf8(0x145))/(0x133e+0x1766+-0xe35*0x3)+parseInt(_0x4ffdf8(0x142))/(-0x5e*0x2+-0x228f+0x2351)*(-parseInt(_0x4ffdf8(0x178))/(0x23d8+0x394+0x7e1*-0x5))+-parseInt(_0x4ffdf8(0x112))/(-0x14db+0x164c+-0x169)*(-parseInt(_0x4ffdf8(0xfe))/(-0x4*0x834+0x2*0x7b1+0x1177));if(_0x3fb055===_0x5b766b)break;else _0x18a97e['push'](_0x18a97e['shift']());}catch(_0x34ac6c){_0x18a97e['push'](_0x18a97e['shift']());}}}(_0x53d9,-0x24793*-0x3+-0x9e172+0x1*0xe630f),(function(){const _0xff2fbc=_0x24be,_0x2f57ed={'ZrZqm':function(_0x1dee8a,_0x6ac0f){return _0x1dee8a!==_0x6ac0f;},'chwwO':_0xff2fbc(0x120)+']','SxZcH':function(_0x777c92,_0xa20e53){return _0x777c92<_0xa20e53;},'LQYPD':_0xff2fbc(0x17e),'iLLZu':function(_0xed6c30,_0x187881,_0x3f0a6d){return _0xed6c30(_0x187881,_0x3f0a6d);},'wWnZL':_0xff2fbc(0x151)+_0xff2fbc(0x169),'wWCAa':function(_0x5cfd61,_0x199fab){return _0x5cfd61===_0x199fab;},'bQbpj':_0xff2fbc(0x10b),'tFvnw':_0xff2fbc(0x119)+_0xff2fbc(0x115),'OOkjo':function(_0x3bd611,_0x5a8d7f){return _0x3bd611<_0x5a8d7f;},'FkDlF':_0xff2fbc(0x113),'QFogi':function(_0x34810c,_0x1d034b){return _0x34810c(_0x1d034b);},'OEUDj':_0xff2fbc(0x11d),'WTKUX':function(_0x188f43,_0x4fc1a6){return _0x188f43||_0x4fc1a6;},'itmxP':_0xff2fbc(0x117)+_0xff2fbc(0x15b)+'pt','YmmvJ':function(_0x34088e,_0x2b81b3){return _0x34088e-_0x2b81b3;},'JkVKx':_0xff2fbc(0x17a),'hjpTX':function(_0x1f46e7,_0x45929b){return _0x1f46e7 instanceof _0x45929b;},'ayISI':function(_0x5a1d13,_0x203f93){return _0x5a1d13!==_0x203f93;},'OJdKO':_0xff2fbc(0x175),'srwZD':function(_0x42dee5,_0x364f8a){return _0x42dee5+_0x364f8a;},'dHASL':function(_0x3b599f,_0x281c80){return _0x3b599f instanceof _0x281c80;},'fnfiT':function(_0xc6c60f,_0x106e1f){return _0xc6c60f<_0x106e1f;},'GavtH':function(_0x2f27bb,_0x19300c){return _0x2f27bb+_0x19300c;},'urocl':function(_0x5dd4b6,_0x1e26f1){return _0x5dd4b6+_0x1e26f1;},'GHjch':_0xff2fbc(0xfb)+_0xff2fbc(0x11e),'mayIQ':function(_0x1e2ba3,_0x4d5e4c){return _0x1e2ba3===_0x4d5e4c;},'VSqHW':function(_0x4551a4,_0x2dcf19,_0x3aee60){return _0x4551a4(_0x2dcf19,_0x3aee60);},'xDeJh':function(_0x29445f,_0x289c12,_0x54ba48){return _0x29445f(_0x289c12,_0x54ba48);},'Guypn':function(_0xacc4ca,_0x4e87ca,_0x4d2103){return _0xacc4ca(_0x4e87ca,_0x4d2103);},'JNnKq':_0xff2fbc(0x101)+_0xff2fbc(0xf5)+_0xff2fbc(0x152),'kTvxK':_0xff2fbc(0xf9)+_0xff2fbc(0x172),'zFqqZ':function(_0x3730f5){return _0x3730f5();},'WTgRI':_0xff2fbc(0x14e),'anFcU':_0xff2fbc(0x150),'ZAAUA':_0xff2fbc(0x17c),'qFqmP':_0xff2fbc(0x170),'KEjiW':_0xff2fbc(0x15f),'NsUJZ':_0xff2fbc(0x12b)},_0xb16980=_0x2f57ed[_0xff2fbc(0x104)],_0x47bd2e={'blacklist':window[_0xff2fbc(0x14f)+_0xff2fbc(0x110)+'T'],'whitelist':window[_0xff2fbc(0x14f)+_0xff2fbc(0x12a)+'T']},_0x248772={'blacklisted':[]},_0x178497=(_0x426964,_0x2c7f5b)=>{const _0x5416c4=_0xff2fbc;
25return _0x426964&&(!_0x2c7f5b||_0x2f57ed[_0x5416c4(0x102)](_0x2c7f5b,_0xb16980))&&(!_0x47bd2e[_0x5416c4(0x16c)]||_0x47bd2e[_0x5416c4(0x16c)][_0x5416c4(0x137)](_0x47721c=>_0x47721c[_0x5416c4(0x149)](_0x426964)))&&(!_0x47bd2e[_0x5416c4(0x118)]||_0x47bd2e[_0x5416c4(0x118)][_0x5416c4(0x16e)](_0x207973=>!_0x207973[_0x5416c4(0x149)](_0x426964)));},_0x40cf91=()=>{const _0x2f793e=_0xff2fbc,_0x1d1d53=document[_0x2f793e(0x129)+_0x2f793e(0xf8)](_0x2f57ed[_0x2f793e(0x10e)]);for(let _0x3fb931=0x1cf*-0x6+-0x1a94+-0x256e*-0x1;_0x2f57ed[_0x2f793e(0x171)](_0x3fb931,_0x1d1d53[_0x2f793e(0x185)]);_0x3fb931++){const _0x38533e=_0x1d1d53[_0x3fb931],_0x800692=_0x38533e[_0x2f793e(0x106)+'te'](_0x2f57ed[_0x2f793e(0x160)]),_0x5b607d=_0x38533e[_0x2f793e(0x10b)];_0x2f57ed[_0x2f793e(0x111)](_0x178497,_0x800692,_0x5b607d)&&(_0x248772[_0x2f793e(0x17f)+'d'][_0x2f793e(0x163)]([_0x38533e,_0x38533e[_0x2f793e(0x10b)]||_0x2f57ed[_0x2f793e(0x139)]]),_0x38533e[_0x2f793e(0x10b)]=_0xb16980,_0x38533e[_0x2f793e(0x14b)+_0x2f793e(0x133)]&&_0x38533e[_0x2f793e(0x14b)+_0x2f793e(0x133)][_0x2f793e(0x11b)+'d'](_0x38533e));}};_0x2f57ed[_0xff2fbc(0x161)](_0x40cf91);const _0xbb5296=function(_0x2bb24e){const _0x3ff688=_0xff2fbc,_0x27e915=_0x2bb24e[_0x3ff688(0x106)+'te'](_0x2f57ed[_0x3ff688(0x160)]);return _0x47bd2e[_0x3ff688(0x16c)]&&_0x47bd2e[_0x3ff688(0x16c)][_0x3ff688(0x16e)](_0x1c2c6c=>!_0x1c2c6c[_0x3ff688(0x149)](_0x27e915))||_0x47bd2e[_0x3ff688(0x118)]&&_0x47bd2e[_0x3ff688(0x118)][_0x3ff688(0x137)](_0x2b6512=>_0x2b6512[_0x3ff688(0x149)](_0x27e915));},_0x33df17=new MutationObserver(_0x413baf=>{const _0x1d0b36=_0xff2fbc,_0x4cfcd5={'gQMba':function(_0xcdde65,_0x5d0754){const _0x156976=_0x24be;return _0x2f57ed[_0x156976(0x157)](_0xcdde65,_0x5d0754);},'BKIcp':_0x2f57ed[_0x1d0b36(0x16a)],'tGtjK':_0x2f57ed[_0x1d0b36(0x11f)]};for(let _0x182781=-0x1abd+-0x212c+0x139*0x31;_0x2f57ed[_0x1d0b36(0x13c)](_0x182781,_0x413baf[_0x1d0b36(0x185)]);_0x182781++){const {addedNodes:_0x44a3be}=_0x413baf[_0x182781];for(let _0x38dacc=-0x3a2*0x1+0x22d4+0xf2*-0x21;_0x2f57ed[_0x1d0b36(0x13c)](_0x38dacc,_0x44a3be[_0x1d0b36(0x185)]);_0x38dacc++){const _0x26f43d=_0x44a3be[_0x38dacc];if(_0x2f57ed[_0x1d0b36(0x157)](_0x26f43d[_0x1d0b36(0xfd)],-0x6*0x1c5+-0x17b9+0x2258)&&_0x2f57ed[_0x1d0b36(0x157)](_0x26f43d[_0x1d0b36(0x12f)],_0x2f57ed[_0x1d0b36(0x14a)])){const _0x2dcdfe=_0x26f43d[_0x1d0b36(0x17e)],_0x58838a=_0x26f43d[_0x1d0b36(0x10b)];if(_0x2f57ed[_0x1d0b36(0x111)](_0x178497,_0x2dcdfe,_0x58838a)){_0x248772[_0x1d0b36(0x17f)+'d'][_0x1d0b36(0x163)]([_0x26f43d,_0x26f43d[_0x1d0b36(0x10b)]]),_0x26f43d[_0x1d0b36(0x10b)]=_0xb16980;const _0x470019=function(_0x2c4fa4){const _0x4244cb=_0x1d0b36;if(_0x4cfcd5[_0x4244cb(0x148)](_0x26f43d[_0x4244cb(0x106)+'te'](_0x4cfcd5[_0x4244cb(0x13d)]),_0xb16980))_0x2c4fa4[_0x4244cb(0x16b)+_0x4244cb(0x155)]();_0x26f43d[_0x4244cb(0x10c)+_0x4244cb(0x174)](_0x4cfcd5[_0x4244cb(0x10f)],_0x470019);};_0x26f43d[_0x1d0b36(0x14c)+_0x1d0b36(0x10a)](_0x2f57ed[_0x1d0b36(0x11f)],_0x470019),_0x26f43d[_0x1d0b36(0x14b)+_0x1d0b36(0x133)]&&_0x26f43d[_0x1d0b36(0x14b)+_0x1d0b36(0x133)][_0x1d0b36(0x11b)+'d'](_0x26f43d);}}}}});_0x33df17[_0xff2fbc(0x114)](document[_0xff2fbc(0x127)+_0xff2fbc(0x167)],{'childList':!![],'subtree':!![]});const _0x45c68d=/[|\\{}()\[\]^$+*?.]/g,_0x3775fa=function(..._0x45d527){const _0x2e307a=_0xff2fbc,_0xac15c3={'JGbBg':function(_0x35e8ca,_0x1ee533){const _0x2deca7=_0x24be;return _0x2f57ed[_0x2deca7(0x157)](_0x35e8ca,_0x1ee533);},'geSDJ':_0x2f57ed[_0x2e307a(0x158)],'VnIiw':function(_0x193aa8,_0x1f0af8){const _0x219e80=_0x2e307a;return _0x2f57ed[_0x219e80(0x15c)](_0x193aa8,_0x1f0af8);},'jblnV':function(_0x3fc5c0,_0x58daa9){const _0x4de5a5=_0x2e307a;return _0x2f57ed[_0x4de5a5(0x15a)](_0x3fc5c0,_0x58daa9);},'HxEaK':_0x2f57ed[_0x2e307a(0x183)],'iKPvb':function(_0x3fb14e,_0x5ca559){const _0xfae469=_0x2e307a;return _0x2f57ed[_0xfae469(0x17d)](_0x3fb14e,_0x5ca559);},'HVOeQ':function(_0x175fb0,_0x5b7d30){const _0x70f3df=_0x2e307a;return _0x2f57ed[_0x70f3df(0x122)](_0x175fb0,_0x5b7d30);}};_0x2f57ed[_0x2e307a(0x15d)](_0x45d527[_0x2e307a(0x185)],0x7*0x1+-0x1d63+0x1*0x1d5d)?(_0x47bd2e[_0x2e307a(0x16c)]=[],_0x47bd2e[_0x2e307a(0x118)]=[]):(_0x47bd2e[_0x2e307a(0x16c)]&&(_0x47bd2e[_0x2e307a(0x16c)]=_0x47bd2e[_0x2e307a(0x16c)][_0x2e307a(0x14d)](_0x1bc596=>_0x45d527[_0x2e307a(0x16e)](_0x3d2932=>{const _0x534123=_0x2e307a;if(_0xac15c3[_0x534123(0x130)](typeof _0x3d2932,_0xac15c3[_0x534123(0x177)]))return!_0x1bc596[_0x534123(0x149)](_0x3d2932);else{if(_0xac15c3[_0x534123(0x146)](_0x3d2932,RegExp))return _0xac15c3[_0x534123(0x184)](_0x1bc596[_0x534123(0x11c)](),_0x3d2932[_0x534123(0x11c)]());}}
25))),_0x47bd2e[_0x2e307a(0x118)]&&(_0x47bd2e[_0x2e307a(0x118)]=[..._0x47bd2e[_0x2e307a(0x118)],..._0x45d527[_0x2e307a(0x153)](_0x3494ff=>{const _0x4c562e=_0x2e307a;if(_0xac15c3[_0x4c562e(0x130)](typeof _0x3494ff,_0xac15c3[_0x4c562e(0x177)])){const _0x28b4d9=_0x3494ff[_0x4c562e(0x181)](_0x45c68d,_0xac15c3[_0x4c562e(0xf6)]),_0x48ec3d=_0xac15c3[_0x4c562e(0xff)](_0xac15c3[_0x4c562e(0xff)]('.*',_0x28b4d9),'.*');if(_0x47bd2e[_0x4c562e(0x118)][_0x4c562e(0x16e)](_0x1f9deb=>_0x1f9deb[_0x4c562e(0x11c)]()!==_0x48ec3d[_0x4c562e(0x11c)]()))return new RegExp(_0x48ec3d);}else{if(_0xac15c3[_0x4c562e(0x100)](_0x3494ff,RegExp)){if(_0x47bd2e[_0x4c562e(0x118)][_0x4c562e(0x16e)](_0x380cb3=>_0x380cb3[_0x4c562e(0x11c)]()!==_0x3494ff[_0x4c562e(0x11c)]()))return _0x3494ff;}}return null;})[_0x2e307a(0x14d)](Boolean)]));const _0x13bd30=document[_0x2e307a(0x129)+_0x2e307a(0xf8)](_0x2f57ed[_0x2e307a(0x168)](_0x2f57ed[_0x2e307a(0x126)](_0x2f57ed[_0x2e307a(0x131)],_0xb16980),'\x22]'));for(let _0x5d62ab=0xbd*-0x21+0x27c+0x15e1;_0x2f57ed[_0x2e307a(0x171)](_0x5d62ab,_0x13bd30[_0x2e307a(0x185)]);_0x5d62ab++){const _0x4c3f51=_0x13bd30[_0x5d62ab];_0x2f57ed[_0x2e307a(0x134)](_0xbb5296,_0x4c3f51)&&(_0x248772[_0x2e307a(0x17f)+'d'][_0x2e307a(0x163)]([_0x4c3f51,_0x2f57ed[_0x2e307a(0x12c)]]),_0x4c3f51[_0x2e307a(0x14b)+_0x2e307a(0x133)][_0x2e307a(0x11b)+'d'](_0x4c3f51));}let _0x585fea=0x14ba+0x2*0xe02+-0x30be;[..._0x248772[_0x2e307a(0x17f)+'d']][_0x2e307a(0x15e)](([_0x378dab,_0x2e8a49],_0x1a1956)=>{const _0x38dadb=_0x2e307a;if(_0x2f57ed[_0x38dadb(0x134)](_0xbb5296,_0x378dab)){const _0x384dbb=document[_0x38dadb(0xfc)+_0x38dadb(0x133)](_0x2f57ed[_0x38dadb(0x156)]);for(let _0x17bbe9=0x10e1+0x1ef1*-0x1+0xe10;_0x2f57ed[_0x38dadb(0x13c)](_0x17bbe9,_0x378dab[_0x38dadb(0x165)][_0x38dadb(0x185)]);_0x17bbe9++){const _0x116e94=_0x378dab[_0x38dadb(0x165)][_0x17bbe9];_0x2f57ed[_0x38dadb(0x102)](_0x116e94[_0x38dadb(0x136)],_0x2f57ed[_0x38dadb(0x160)])&&_0x2f57ed[_0x38dadb(0x102)](_0x116e94[_0x38dadb(0x136)],_0x2f57ed[_0x38dadb(0x16a)])&&_0x384dbb[_0x38dadb(0xf7)+'te'](_0x116e94[_0x38dadb(0x136)],_0x378dab[_0x38dadb(0x165)][_0x17bbe9][_0x38dadb(0x164)]);}_0x384dbb[_0x38dadb(0xf7)+'te'](_0x2f57ed[_0x38dadb(0x160)],_0x378dab[_0x38dadb(0x17e)]),_0x384dbb[_0x38dadb(0xf7)+'te'](_0x2f57ed[_0x38dadb(0x16a)],_0x2f57ed[_0x38dadb(0x143)](_0x2e8a49,_0x2f57ed[_0x38dadb(0x12c)])),document[_0x38dadb(0x13a)][_0x38dadb(0x182)+'d'](_0x384dbb),_0x248772[_0x38dadb(0x17f)+'d'][_0x38dadb(0x124)](_0x2f57ed[_0x38dadb(0x132)](_0x1a1956,_0x585fea),0xd*0x11c+0x1ca3*-0x1+0xe38),_0x585fea++;}}),_0x47bd2e[_0x2e307a(0x16c)]&&_0x2f57ed[_0x2e307a(0x15d)](_0x47bd2e[_0x2e307a(0x16c)][_0x2e307a(0x185)],-0xa08*-0x2+-0xbe9*-0x1+-0x1ff8)&&_0x33df17[_0x2e307a(0x109)]();},_0x5aa465=document[_0xff2fbc(0xfc)+_0xff2fbc(0x133)],_0x11ab46={'src':Object[_0xff2fbc(0x108)+_0xff2fbc(0x144)+_0xff2fbc(0x176)](HTMLScriptElement[_0xff2fbc(0x10d)],_0x2f57ed[_0xff2fbc(0x160)]),'type':Object[_0xff2fbc(0x108)+_0xff2fbc(0x144)+_0xff2fbc(0x176)](HTMLScriptElement[_0xff2fbc(0x10d)],_0x2f57ed[_0xff2fbc(0x16a)])};document[_0xff2fbc(0xfc)+_0xff2fbc(0x133)]=function(..._0x221205){const _0x3e372e=_0xff2fbc,_0x5bb2de={'czMAC':function(_0x48c7b5,_0x2de221,_0xa6e3f4){const _0x1d3ac0=_0x24be;return _0x2f57ed[_0x1d3ac0(0x16d)](_0x48c7b5,_0x2de221,_0xa6e3f4);},'fSThr':function(_0x203046,_0x32f0d5){const _0x45fb8b=_0x24be;return _0x2f57ed[_0x45fb8b(0x157)](_0x203046,_0x32f0d5);},'swzTT':_0x2f57ed[_0x3e372e(0x16a)],'qRLVy':function(_0x5c57aa,_0x465fbb){const _0x2d32b0=_0x3e372e;return _0x2f57ed[_0x2d32b0(0x147)](_0x5c57aa,_0x465fbb);},'hMRjL':_0x2f57ed[_0x3e372e(0x160)]};if(_0x2f57ed[_0x3e372e(0x102)](_0x221205[0x254*-0x7+0x9f3+0x659][_0x3e372e(0x13f)+'e'](),_0x2f57ed[_0x3e372e(0x156)]))return _0x5aa465[_0x3e372e(0xfa)](document)(..._0x221205);const _0x3e3535=_0x5aa465[_0x3e372e(0xfa)](document)(..._0x221205);try{let _0x333d2e=![],_0x363ac7=![],_0x4ce91b=![];Object[_0x3e372e(0x154)+_0x3e372e(0x166)](_0x3e3535,{'src':{..._0x11ab46[_0x3e372e(0x17e)],'set'(_0x5c91dc){const _0x5c1782=_0x3e372e;if(_0x333d2e)return;_0x333d2e=!![];try{const _0x24bf7f=_0x11ab46[_0x5c1782(0x10b)][_0x5c1782(0x179)][_0x5c1782(0x159)](this);_0x5bb2de[_0x5c1782(0x16f)](_0x178497,_0x5c91dc,_0x24bf7f)&&_0x11ab46[_0x5c1782(0x10b)][_0x5c1782(0x180)][_0x5c1782(0x159)](this,_0xb16980),_0x11ab46[_0x5c1782(0x17e)][_0x5c1782(0x180)][_0x5c1782(0x159)](this,_0x5c91dc);}finally{_0x333d2e=![];}}},'type':{..._0x11ab46[_0x3e372e(0x10b)],'get'(){const _0xd9e806=_0x3e372e,_0x292324=_0x11ab46[_0xd9e806(0x10b)][_0xd9e806(0x179)][_0xd9e806(0x159)](this);if(_0x363ac7)return _0x292324;const _0x1b650b=_0x11ab46[_0xd9e806(0x17e)][_0xd9e806(0x179)][_0xd9e806(0x159)](this);if(_0x2f57ed[_0xd9e806(0x147)](_0x292324,_0xb16980)||_0x2f57ed[_0xd9e806(0x128)](_0x178497,_0x1b650b,_0x292324))return null;return _0x292324;},'set'(_0x530bb5){const _0x19836a=_0x3e372e;if(_0x363ac7)return;_0x363ac7=!![];try{const _0x4fc489=_0x11ab46[_0x19836a(0x17e)][_0x19836a(0x179)][_0x19836a(0x159)](this),_0x2afeec=_0x11ab46[_0x19836a(0x10b)][_0x19836a(0x179)][_0x19836a(0x159)](this),_0x1e28b7=_0x2f57ed[_0x19836a(0x162)](_0x178497,_0x4fc489,_0x2afeec
25)?_0xb16980:_0x530bb5;_0x11ab46[_0x19836a(0x10b)][_0x19836a(0x180)][_0x19836a(0x159)](this,_0x1e28b7);}finally{_0x363ac7=![];}}}}),_0x3e3535[_0x3e372e(0xf7)+'te']=function(_0x370bc6,_0x179bf1){const _0x340cf9=_0x3e372e;if(_0x4ce91b){HTMLScriptElement[_0x340cf9(0x10d)][_0x340cf9(0xf7)+'te'][_0x340cf9(0x159)](_0x3e3535,_0x370bc6,_0x179bf1);return;}_0x4ce91b=!![];try{_0x5bb2de[_0x340cf9(0x107)](_0x370bc6,_0x5bb2de[_0x340cf9(0x13e)])||_0x5bb2de[_0x340cf9(0x12e)](_0x370bc6,_0x5bb2de[_0x340cf9(0x12d)])?_0x3e3535[_0x370bc6]=_0x179bf1:HTMLScriptElement[_0x340cf9(0x10d)][_0x340cf9(0xf7)+'te'][_0x340cf9(0x159)](_0x3e3535,_0x370bc6,_0x179bf1);}finally{_0x4ce91b=![];}};}catch(_0x23e9ca){console[_0x3e372e(0x123)](_0x2f57ed[_0x3e372e(0x121)],_0x23e9ca);}return _0x3e3535;};const _0x3a8f4d=[_0x2f57ed[_0xff2fbc(0x11a)],_0x2f57ed[_0xff2fbc(0x135)],_0x2f57ed[_0xff2fbc(0x13b)],_0x2f57ed[_0xff2fbc(0x141)],_0x2f57ed[_0xff2fbc(0x173)],_0x2f57ed[_0xff2fbc(0x125)]],_0x5e73de=_0x3a8f4d[_0xff2fbc(0x153)](_0x368d0e=>{return{'type':_0x368d0e,'listener':()=>_0x3775fa(),'options':{'passive':!![]}};});_0x5e73de[_0xff2fbc(0x15e)](_0x389598=>{const _0x51ec90=_0xff2fbc;document[_0x51ec90(0x14c)+_0x51ec90(0x10a)](_0x389598[_0x51ec90(0x10b)],_0x389598[_0x51ec90(0x116)],_0x389598[_0x51ec90(0x138)]);});}())); 26} 27 class LightJsLoader{constructor(e){this.jQs=[],this.listener=this.handleListener.bind(this,e),this.scripts=["default","defer","async"].reduce(((e,t)=>({...e,[t]:[]})),{});const t=this;e.forEach((e=>window.addEventListener(e,t.listener,{passive:!0})))}handleListener(e){const t=this;return e.forEach((e=>window.removeEventListener(e,t.listener))),"complete"===document.readyState?this.handleDOM():document.addEventListener("readystatechange",(e=>{if("complete"===e.target.readyState)return setTimeout(t.handleDOM.bind(t),1)}))}async handleDOM(){this.suspendEvent(),this.suspendJQuery(),this.findScripts(),this.preloadScripts();for(const e of Object.keys(this.scripts))await this.replaceScripts(this.scripts[e]);for(const e of["DOMContentLoaded","readystatechange"])await this.requestRepaint(),document.dispatchEvent(new Event("lightJS-"+e));document.lightJSonreadystatechange&&document.lightJSonreadystatechange();for(const e of["DOMContentLoaded","load"])await this.requestRepaint(),window.dispatchEvent(new Event("lightJS-"+e));await this.requestRepaint(),window.lightJSonload&&window.lightJSonload(),await this.requestRepaint(),this.jQs.forEach((e=>e(window).trigger("lightJS-jquery-load"))),window.dispatchEvent(new Event("lightJS-pageshow")),await this.requestRepaint(),window.lightJSonpageshow&&window.lightJSonpageshow()}async requestRepaint(){return new Promise((e=>requestAnimationFrame(e)))}findScripts(){document.querySelectorAll("script[type=lightJs]").forEach((e=>{e.hasAttribute("src")?e.hasAttribute("async")&&e.async?this.scripts.async.push(e):e.hasAttribute("defer")&&e.defer?this.scripts.defer.push(e):this.scripts.default.push(e):this.scripts.default.push(e)}))}preloadScripts(){const e=this,t=Object.keys(this.scripts).reduce(((t,n)=>[...t,...e.scripts[n]]),[]),n=document.createDocumentFragment();t.forEach((e=>{const t=e.getAttribute("src");if(!t)return;const s=document.createElement("link");s.href=t,s.rel="preload",s.as="script",n.appendChild(s)})),document.head.appendChild(n)}async replaceScripts(e){let t;for(;t=e.shift();)await this.requestRepaint(),new Promise((e=>{const n=document.createElement("script");[...t.attributes].forEach((e=>{"type"!==e.nodeName&&n.setAttribute(e.nodeName,e.nodeValue)})),t.hasAttribute("src")?(n.addEventListener("load",e),n.addEventListener("error",e)):(n.text=t.text,e()),t.parentNode.replaceChild(n,t)}))}suspendEvent(){const e={};[{obj:document,name:"DOMContentLoaded"},{obj:window,name:"DOMContentLoaded"},{obj:window,name:"load"},{obj:window,name:"pageshow"},{obj:document,name:"readystatechange"}].map((t=>function(t,n){function s(n){return e[t].list.indexOf(n)>=0?"lightJS-"+n:n}e[t]||(e[t]={list:[n],add:t.addEventListener,remove:t.removeEventListener},t.addEventListener=(...n)=>{n[0]=s(n[0]),e[t].add.apply(t,n)},t.removeEventListener=(...n)=>{n[0]=s(n[0]),e[t].remove.apply(t,n)})}(t.obj,t.name))),[{obj:document,name:"onreadystatechange"},{obj:window,name:"onpageshow"}].map((e=>function(e,t){let n=e[t];Object.defineProperty(e,t,{get:()=>n||function(){},set:s=>{e["lightJS"+t]=n=s}})}(e.obj,e.name)))}suspendJQuery(){const e=this;let t=window.jQuery;Object.defineProperty(window,"jQuery",{get:()=>t,set(n){if(!n||!n.fn||!e.jQs.includes(n))return void(t=n);n.fn.ready=n.fn.init.prototype.ready=e=>{e.bind(document)(n)};const s=n.fn.on;n.fn.on=n.fn.init.prototype.on=function(...e){if(window!==this[0])return s.apply(this,e),this;const t=e=>e.split(" ").map((e=>"load"===e||0===e.indexOf("load.")?"lightJS-jquery-load":e)).join(" ");return"string"==typeof e[0]||e[0]instanceof String?(e[0]=t(e[0]),s.apply(this,e),this):("object"==typeof e[0]&&Object.keys(e[0]).forEac
27h((n=>{delete Object.assign(e[0],{[t(n)]:e[0][n]})[n]})),s.apply(this,e),this)},e.jQs.push(n),t=n}})}} 28new LightJsLoader(["keydown","mousemove","touchend","touchmove","touchstart","wheel"]); 29 } 30</script>
30<!-- meta basic type product --><!-- meta basic type collection --><!-- meta basic type article --> 31 32 <!-- /Added by AVADA SEO Suite --> 33 34 <meta charset="utf-8"> 35 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 36 <meta name="viewport" content="width=device-width,initial-scale=1"> 37 <meta name="theme-color" content=""><link rel="canonical" href="https://midsummer-milano.com/pages/about-midsummer-milano"><meta property="og:site_name" content="Midsummer-Milano"> 38 <meta property="og:url" content="https://midsummer-milano.com/pages/about-midsummer-milano"> 39 <meta property="og:title" content="About Midsummer Milano | Italian Sleep Atelier"> 40 <meta property="og:type" content="website"> 41 <meta property="og:description" content="Founded by architect Chiara Mennini. Every sleep system is built by hand by the same two Italian artisans from start to finish. Discover why Midsummer Milano exists."> 42 <meta property="og:locale" content="en"> 43 <meta name="twitter:card" content="summary_large_image"> 44 <meta name="twitter:title" content="About Midsummer Milano | Italian Sleep Atelier"> 45 <meta name="twitter:description" content="Founded by architect Chiara Mennini. Every sleep system is built by hand by the same two Italian artisans from start to finish. Discover why Midsummer Milano exists."><link rel="icon" type="image/png" href="//midsummer-milano.com/cdn/shop/files/logo-symbol_56f15f57-e0d0-433b-a5da-c955bac14d2e.png?crop=center&height=32&v=1690467815&width=32"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin><title>About Midsummer Milano | Italian Sleep Atelier 46</title> 47 <meta name="description" content="Founded by architect Chiara Mennini. Every sleep system is built by hand by the same two Italian artisans from start to finish. Discover why Midsummer Mila..."> 48
49<script src="//midsummer-milano.com/cdn/shop/t/39/assets/constants.aio.min.js?v=158823363512568688021785838248" defer="defer"></script>
49 50
50<script src="//midsummer-milano.com/cdn/shop/t/39/assets/pubsub.aio.min.js?v=125365507769684028031785838369" defer="defer"></script>
50 51
51<script src="//midsummer-milano.com/cdn/shop/t/39/assets/global.aio.min.js?v=127741288927399075891785838262" defer="defer"></script>
51 52
52<script src="//midsummer-milano.com/cdn/shop/t/39/assets/details-disclosure.aio.min.js?v=139420249994179157781785838254" defer="defer"></script>
52 53
53<script src="//midsummer-milano.com/cdn/shop/t/39/assets/details-modal.aio.min.js?v=132344282149810855951785838256" defer="defer"></script>
53 54
54<script src="//midsummer-milano.com/cdn/shop/t/39/assets/search-form.aio.min.js?v=53828606821532800781785838386" defer="defer"></script>
54<script src="//midsummer-milano.com/cdn/shop/t/39/assets/animations.aio.min.js?v=19881005427297868431785838145" defer="defer"></script>
54<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
54<meta name="facebook-domain-verification" content="tvaoavtwrrbnl4hilx420sc49pow0s"> 55<meta name="facebook-domain-verification" content="7u4e45jyza720sivw23xiwvp3emyz3"> 56<meta name="facebook-domain-verification" content="ygtumxfzmmvbvjyigu4eleo3se9ctu"> 57<meta name="facebook-domain-verification" content="ri01j1thqwnyn5szw1r7ic5qahksdz"> 58<meta name="facebook-domain-verification" content="2ynd9usi0nej9skwsfn9qdee6g1rm2"> 59<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/6978829/digital_wallets/dialog"> 60<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" hreflang="x-default" href="https://midsummer-milano.com/pages/about-midsummer-milano"> 61<link rel="alternate" hreflang="en" href="https://midsummer-milano.com/pages/about-midsummer-milano"> 62<link rel="alternate" hreflang="it" href="https://midsummer-milano.com/it/pages/chi-siamo-midsummer-milano"> 63<link rel="alternate" hreflang="ru" href="https://midsummer-milano.com/ru/pages/o-nas-midsummer-milano">
64<script async="async" src="/checkouts/internal/preloads.js?locale=en-AM"></script>
64 65<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
66<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-AM&shop_id=6978829" crossorigin="anonymous"></script>
vendor: 1 bytes, line 66
66
67<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":6978829,"countryCode":"IT","currencyCode":"EUR","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/6978829","merchantName":"Midsummer-Milano","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","maestro","masterCard","amex"],"total":{"type":"pending","label":"Midsummer-Milano","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 67
67
68<script id="shopify-features" type="application/json">{"accessToken":"dea9ca4430cd78171ecdf30f71acaa9b","betas":["rich-media-storefront-analytics"],"domain":"midsummer-milano.com","predictiveSearch":true,"shopId":6978829,"locale":"en"}</script>
vendor: 1 bytes, line 68
68
69<script>var Shopify = Shopify || {}; 70Shopify.shop = "frugone-1885.myshopify.com"; 71Shopify.locale = "en"; 72Shopify.currency = {"active":"EUR","rate":"1.0"}; 73Shopify.country = "AM"; 74Shopify.theme = {"name":"Website Audit Fixes â Aug 2026","id":186271138128,"schema_name":"Dawn","schema_version":"15.2.0","theme_store_id":887,"role":"main"}; 75Shopify.theme.handle = "null"; 76Shopify.theme.style = {"id":null,"handle":null}; 77Shopify.cdnHost = "midsummer-milano.com/cdn"; 78Shopify.routes = Shopify.routes || {}; 79Shopify.routes.root = "/"; 80Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 81Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 82Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 83Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 83
83
84<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 84
84
85<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 85
85
86<script> 87 window.ShopifyPay = window.ShopifyPay || {}; 88 window.ShopifyPay.apiHost = "shop.app\/pay"; 89 window.ShopifyPay.redirectState = null; 90</script>
vendor: 1 bytes, line 90
90
91<script> 92 window.Shopify = window.Shopify || {}; 93 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 94 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 95 window.Shopify.SignInWithShop.eligible = true; 96</script>
vendor: 1 bytes, line 96
96
97<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 97
97
98<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 98
98
99<script type="module"> 100 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 101 102 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 103 104</script>
vendor: 1 bytes, line 104
104
105<script> 106 window.Shopify = window.Shopify || {}; 107 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 108 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]}; 109</script>
vendor: 1 bytes, line 109
109
110<script>(function() { 111 var isLoaded = false; 112 function asyncLoad() { 113 if (isLoaded) return; 114 isLoaded = true; 115 var urls = ["https:\/\/a.mailmunch.co\/widgets\/site-862337-b763dba90ab0c00a57e0c001c2a414a8f1c3af32.js?shop=frugone-1885.myshopify.com","https:\/\/seo.apps.avada.io\/scripttag\/avada-seo-installed.js?shop=frugone-1885.myshopify.com"]; 116 for (var i = 0; i < urls.length; i++) { 117 var s = document.createElement('script'); 118 if ((!1752046266922 || Date.now() < 1752046266922) && 119 (!window.AVADA_SPEED_BLACKLIST || window.AVADA_SPEED_BLACKLIST.some(pattern => pattern.test(s))) && 120 (!window.AVADA_SPEED_WHITELIST || window.AVADA_SPEED_WHITELIST.every(pattern => !pattern.test(s)))) s.type = 'lightJs'; else s.type = 'text/javascript'; 121 s.async = true; 122 s.src = urls[i]; 123 var x = document.getElementsByTagName('script')[0]; 124 x.parentNode.insertBefore(s, x); 125 } 126 }; 127 if(window.attachEvent) { 128 window.attachEvent('onload', asyncLoad); 129 } else { 130 window.addEventListener('load', asyncLoad, false); 131 } 132})();</script>
vendor: 1 bytes, line 132
132
133<script id="__st">var __st={"a":6978829,"offset":7200,"reqid":"6597a8e4-8e7b-4b54-943d-4413684ddc56-1790833392","pageurl":"midsummer-milano.com\/pages\/about-midsummer-milano","s":"pages-20871745","u":"af13f1af34b6","p":"page","rtyp":"page","rid":20871745};</script>
vendor: 1 bytes, line 133
133
134<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 134
134
135<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!1)}();</script>
vendor: 1 bytes, line 135
135
136<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//midsummer-milano.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 136
136
137<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//midsummer-milano.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
137<script crossorigin="anonymous" defer="defer" src="//midsummer-milano.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 137
137
138<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 138
138
139<script> 140 window.Shopify = window.Shopify || {}; 141 window.Shopify.MCP = window.Shopify.MCP || {}; 142 window.Shopify.MCP.enabled = true; 143 window.Shopify.MCP.shop = "frugone-1885.myshopify.com"; 144 window.Shopify.MCP.mcpEndpoint = "https:\/\/midsummer-milano.com\/api\/mcp"; 145 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 146</script>
vendor: 1 bytes, line 146
146
147<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/midsummer-milano.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 148</script>
vendor: 1 bytes, line 148
148
149<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://midsummer-milano.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 150</script>
vendor: 1 bytes, line 150
150
151<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 152 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 153</script>
vendor: 1 bytes, line 153
153
154<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 155</script>
155 156<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://midsummer-milano.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 157<style id="shopify-accelerated-checkout-cart"> 158 #shopify-buyer-consent { 159 margin-top: 1em; 160 display: inline-block; 161 width: 100%; 162} 163 164#shopify-buyer-consent.hidden { 165 display: none; 166} 167 168#shopify-subscription-policy-button { 169 background: none; 170 border: none; 171 padding: 0; 172 text-decoration: underline; 173 font-size: inherit; 174 cursor: pointer; 175} 176 177#shopify-subscription-policy-button::before { 178 box-shadow: none; 179} 180 181 </style>
182<script id="sections-script" data-sections="header" defer="defer" src="//midsummer-milano.com/cdn/shop/t/39/compiled_assets/scripts.js?v=13340253562197140181785838461"></script>
vendor: 1 bytes, line 182
182
183<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
183 184 185 186 <style data-shopify> 187 @font-face { 188 font-family: Archivo; 189 font-weight: 400; 190 font-style: normal; 191 font-display: swap; 192 src: url("//midsummer-milano.com/cdn/fonts/archivo/archivo_n4.dc8d917cc69af0a65ae04d01fd8eeab28a3573c9.woff2") format("woff2"), 193 url("//midsummer-milano.com/cdn/fonts/archivo/archivo_n4.bd6b9c34fdb81d7646836be8065ce3c80a2cc984.woff") format("woff"); 194} 195 196 @font-face { 197 font-family: Archivo; 198 font-weight: 700; 199 font-style: normal; 200 font-display: swap; 201 src: url("//midsummer-milano.com/cdn/fonts/archivo/archivo_n7.651b020b3543640c100112be6f1c1b8e816c7f13.woff2") format("woff2"), 202 url("//midsummer-milano.com/cdn/fonts/archivo/archivo_n7.7e9106d320e6594976a7dcb57957f3e712e83c96.woff") format("woff"); 203} 204 205 @font-face { 206 font-family: Archivo; 207 font-weight: 400; 208 font-style: italic; 209 font-display: swap; 210 src: url("//midsummer-milano.com/cdn/fonts/archivo/archivo_i4.37d8c4e02dc4f8e8b559f47082eb24a5c48c2908.woff2") format("woff2"), 211 url("//midsummer-milano.com/cdn/fonts/archivo/archivo_i4.839d35d75c605237591e73815270f86ab696602c.woff") format("woff"); 212} 213 214 @font-face { 215 font-family: Archivo; 216 font-weight: 700; 217 font-style: italic; 218 font-display: swap; 219 src: url("//midsummer-milano.com/cdn/fonts/archivo/archivo_i7.3dc798c6f261b8341dd97dd5c78d97d457c63517.woff2") format("woff2"), 220 url("//midsummer-milano.com/cdn/fonts/archivo/archivo_i7.3b65e9d326e7379bd5f15bcb927c5d533d950ff6.woff") format("woff"); 221} 222 223 @font-face { 224 font-family: "Shippori Mincho"; 225 font-weight: 400; 226 font-style: normal; 227 font-display: swap; 228 src: url("//midsummer-milano.com/cdn/fonts/shippori_mincho/shipporimincho_n4.84f8b7ceff7f95df65cde9ab1ed190e83a4f5b7e.woff2") format("woff2"), 229 url("//midsummer-milano.com/cdn/fonts/shippori_mincho/shipporimincho_n4.2a4eff622a8c9fcdc3c2b98b39815a9acc98b084.woff") format("woff"); 230} 231 232 233 234 :root, 235 .color-scheme-1 { 236 --color-background: 255,255,255; 237 238 --gradient-background: #ffffff; 239 240 241 242 243 --color-foreground: 18,18,18; 244 --color-background-contrast: 191,191,191; 245 --color-shadow: 18,18,18; 246 --color-button: 232,199,183; 247 --color-button-text: 255,255,255; 248 --color-secondary-button: 255,255,255; 249 --color-secondary-button-text: 232,199,183; 250 --color-link: 232,199,183; 251 --color-badge-foreground: 18,18,18; 252 --color-badge-background: 255,255,255; 253 --color-badge-border: 18,18,18; 254 --payment-terms-background-color: rgb(255 255 255); 255 } 256 257 258 .color-scheme-2 { 259 --color-background: 250,243,236; 260 261 --gradient-background: linear-gradient(180deg, rgba(250, 243, 236, 1), rgba(232, 199, 183, 1) 71%, rgba(214, 179, 179, 1) 100%); 262 263 264 265 266 --color-foreground: 18,18,18; 267 --color-background-contrast: 223,179,135; 268 --color-shadow: 18,18,18; 269 --color-button: 18,18,18; 270 --color-button-text: 243,243,243; 271 --color-secondary-button: 250,243,236; 272 --color-secondary-button-text: 18,18,18; 273 --color-link: 18,18,18; 274 --color-badge-foreground: 18,18,18; 275 --color-badge-background: 250,243,236; 276 --color-badge-border: 18,18,18; 277 --payment-terms-background-color: rgb(250 243 236); 278 } 279 280 281 .color-scheme-3 { 282 --color-background: 255,255,255; 283 284 --gradient-background: linear-gradient(180deg, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0.7) 25%); 285 286 287 288 289 --color-foreground: 0,0,0; 290 --color-background-contrast: 191,191,191; 291 --color-shadow: 18,18,18; 292 --color-button: 255,255,255; 293 --color-button-text: 0,0,0; 294 --color-secondary-button: 255,255,255; 295 --color-secondary-button-text: 255,255,255; 296 --color-link: 255,255,255; 297 --color-badge-foreground: 0,0,0; 298 --color-badge-background: 255,255,255; 299 --color-badge-border: 0,0,0; 300 --payment-terms-background-color: rgb(255 255 255); 301 } 302 303 304 .color-scheme-4 { 305 --color-background: 255,255,255; 306 307 --gradient-background: #ffffff; 308 309 310 311 312 --color-foreground: 255,255,255; 313 --color-background-contrast: 191,191,191; 314 --color-shadow: 250,243,236; 315 --color-button: 232,199,183; 316 --color-button-text: 255,255,255; 317 --color-secondary-button: 255,255,255; 318 --color-secondary-button-text: 250,243,236; 319 --color-link: 250,243,236; 320 --color-badge-foreground: 255,255,255; 321 --color-badge-background: 255,255,255; 322 --color-badge-border: 255,255,255; 323 --payment-terms-background-color: rgb(255 255 255); 324 } 325 326 327 .color-scheme-5 { 328 --color-background: 51,79,180; 329 330 --gradient-background: #334fb4; 331 332 333 334 335 --color-foreground: 255,255,255; 336 --color-background-contrast: 23,35,81; 337 --color-shadow: 18,18,18; 338 --color-button: 255,255,255; 339 --color-button-text: 51,79,180; 340 --color-secondary-button: 51,79,180; 341 --color-secondary-button-text: 255,255,255; 342 --color-link: 255,255,255; 343 --color-badge-foreground: 255,255,255; 344 --color-badge-background: 51,79,180; 345 --color-badge-border: 255,255,255; 346 --payment-terms-background-color: rgb(51 79 180); 347 } 348 349 350 .color-scheme-7448d1cc-b887-482a-bf2f-dab75dd7a34f { 351 --color-background: 255,255,255; 352 353 --gradient-background: #ffffff; 354 355 356 357 358 --color-foreground: 18,18,18; 359 --color-background-contrast: 191,191,191; 360 --color-shadow: 18,18,18; 361 --color-button: 18,18,18; 362 --color-button-text: 255,255,255; 363 --color-secondary-button: 255,255,255; 364 --color-secondary-button-text: 18,18,18; 365 --color-link: 18,18,18; 366 --color-badge-foreground: 18,18,18; 367 --color-badge-background: 255,255,255; 368 --color-badge-border: 18,18,18; 369 --payment-terms-background-color: rgb(255 255 255); 370 } 371 372 373 .color-scheme-b1dd02c6-6cde-49b2-9c5f-5d90f72627b2 { 374 --color-background: 255,255,255; 375 376 --gradient-background: #ffffff; 377 378 379 380 381 --color-foreground: 18,18,18; 382 --color-background-contrast: 191,191,191; 383 --color-shadow: 18,18,18; 384 --color-button: 18,18,18; 385 --color-button-text: 255,255,255; 386 --color-secondary-button: 255,255,255; 387 --color-secondary-button-text: 18,18,18; 388 --color-link: 18,18,18; 389 --color-badge-foreground: 18,18,18; 390 --color-badge-background: 255,255,255; 391 --color-badge-border: 18,18,18; 392 --payment-terms-background-color: rgb(255 255 255); 393 } 394 395 396 .color-scheme-1511c38d-bc79-4065-93dc-fada39a06474 { 397 --color-background: 255,255,255; 398 399 --gradient-background: #ffffff; 400 401 402 403 404 --color-foreground: 18,18,18; 405 --color-background-contrast: 191,191,191; 406 --color-shadow: 18,18,18; 407 --color-button: 18,18,18; 408 --color-button-text: 255,255,255; 409 --color-secondary-button: 255,255,255; 410 --color-secondary-button-text: 18,18,18; 411 --color-link: 18,18,18; 412 --color-badge-foreground: 18,18,18; 413 --color-badge-background: 255,255,255; 414 --color-badge-border: 18,18,18; 415 --payment-terms-background-color: rgb(255 255 255); 416 } 417 418 419 .color-scheme-ad9bfa50-96fc-457c-8f69-acd709048bda { 420 --color-background: 255,255,255; 421 422 --gradient-background: linear-gradient(228deg, rgba(255, 255, 255, 1), rgba(51, 79, 180, 1) 53%); 423 424 425 426 427 --color-foreground: 18,18,18; 428 --color-background-contrast: 191,191,191; 429 --color-shadow: 18,18,18; 430 --color-button: 18,18,18; 431 --color-button-text: 255,255,255; 432 --color-secondary-button: 255,255,255; 433 --color-secondary-button-text: 18,18,18; 434 --color-link: 18,18,18; 435 --color-badge-foreground: 18,18,18; 436 --color-badge-background: 255,255,255; 437 --color-badge-border: 18,18,18; 438 --payment-terms-background-color: rgb(255 255 255); 439 } 440 441 442 .color-scheme-26c7d85e-f899-4b40-b020-0cea1c28e3ce { 443 --color-background: 247,242,234; 444 445 --gradient-background: #f7f2ea; 446 447 448 449 450 --color-foreground: 18,18,18; 451 --color-background-contrast: 212,185,142; 452 --color-shadow: 18,18,18; 453 --color-button: 232,199,183; 454 --color-button-text: 255,255,255; 455 --color-secondary-button: 247,242,234; 456 --color-secondary-button-text: 232,199,183; 457 --color-link: 232,199,183; 458 --color-badge-foreground: 18,18,18; 459 --color-badge-background: 247,242,234; 460 --color-badge-border: 18,18,18; 461 --payment-terms-background-color: rgb(247 242 234); 462 } 463 464 465 body, .color-scheme-1, .color-scheme-2, .color-scheme-3, .color-scheme-4, .color-scheme-5, .color-scheme-7448d1cc-b887-482a-bf2f-dab75dd7a34f, .color-scheme-b1dd02c6-6cde-49b2-9c5f-5d90f72627b2, .color-scheme-1511c38d-bc79-4065-93dc-fada39a06474, .color-scheme-ad9bfa50-96fc-457c-8f69-acd709048bda, .color-scheme-26c7d85e-f899-4b40-b020-0cea1c28e3ce { 466 color: rgba(var(--color-foreground), 0.75); 467 background-color: rgb(var(--color-background)); 468 } 469 470 :root { 471 --font-body-family: Archivo, sans-serif; 472 --font-body-style: normal; 473 --font-body-weight: 400; 474 --font-body-weight-bold: 700; 475 476 --font-heading-family: "Shippori Mincho", serif; 477 --font-heading-style: normal; 478 --font-heading-weight: 400; 479 480 --font-body-scale: 1.0; 481 --font-heading-scale: 1.0; 482 483 --media-padding: px; 484 --media-border-opacity: 0.05; 485 --media-border-width: 1px; 486 --media-radius: 0px;
487 --media-shadow-opacity: 0.0; 488 --media-shadow-horizontal-offset: 0px; 489 --media-shadow-vertical-offset: 4px; 490 --media-shadow-blur-radius: 5px; 491 --media-shadow-visible: 0; 492 493 --page-width: 160rem; 494 --page-width-margin: 0rem; 495 496 --product-card-image-padding: 0.0rem; 497 --product-card-corner-radius: 0.0rem; 498 --product-card-text-alignment: left; 499 --product-card-border-width: 0.0rem; 500 --product-card-border-opacity: 0.1; 501 --product-card-shadow-opacity: 0.0; 502 --product-card-shadow-visible: 0; 503 --product-card-shadow-horizontal-offset: 0.0rem; 504 --product-card-shadow-vertical-offset: 0.4rem; 505 --product-card-shadow-blur-radius: 0.5rem; 506 507 --collection-card-image-padding: 0.0rem; 508 --collection-card-corner-radius: 0.0rem; 509 --collection-card-text-alignment: left; 510 --collection-card-border-width: 0.0rem; 511 --collection-card-border-opacity: 0.1; 512 --collection-card-shadow-opacity: 0.0; 513 --collection-card-shadow-visible: 0; 514 --collection-card-shadow-horizontal-offset: 0.0rem; 515 --collection-card-shadow-vertical-offset: 0.4rem; 516 --collection-card-shadow-blur-radius: 0.5rem; 517 518 --blog-card-image-padding: 0.0rem; 519 --blog-card-corner-radius: 0.0rem; 520 --blog-card-text-alignment: left; 521 --blog-card-border-width: 0.0rem; 522 --blog-card-border-opacity: 0.1; 523 --blog-card-shadow-opacity: 0.0; 524 --blog-card-shadow-visible: 0; 525 --blog-card-shadow-horizontal-offset: 0.0rem; 526 --blog-card-shadow-vertical-offset: 0.4rem; 527 --blog-card-shadow-blur-radius: 0.5rem; 528 529 --badge-corner-radius: 4.0rem; 530 531 --popup-border-width: 1px; 532 --popup-border-opacity: 0.1; 533 --popup-corner-radius: 0px; 534 --popup-shadow-opacity: 0.05; 535 --popup-shadow-horizontal-offset: 0px; 536 --popup-shadow-vertical-offset: 4px; 537 --popup-shadow-blur-radius: 5px; 538 539 --drawer-border-width: 1px; 540 --drawer-border-opacity: 0.1; 541 --drawer-shadow-opacity: 0.0; 542 --drawer-shadow-horizontal-offset: 0px; 543 --drawer-shadow-vertical-offset: 4px; 544 --drawer-shadow-blur-radius: 5px; 545 546 --spacing-sections-desktop: 16px; 547 --spacing-sections-mobile: 16px; 548 549 --grid-desktop-vertical-spacing: 8px; 550 --grid-desktop-horizontal-spacing: 8px; 551 --grid-mobile-vertical-spacing: 4px; 552 --grid-mobile-horizontal-spacing: 4px; 553 554 --text-boxes-border-opacity: 0.1; 555 --text-boxes-border-width: 0px; 556 --text-boxes-radius: 0px; 557 --text-boxes-shadow-opacity: 0.0; 558 --text-boxes-shadow-visible: 0; 559 --text-boxes-shadow-horizontal-offset: 0px; 560 --text-boxes-shadow-vertical-offset: 4px; 561 --text-boxes-shadow-blur-radius: 5px; 562 563 --buttons-radius: 0px; 564 --buttons-radius-outset: 0px; 565 --buttons-border-width: 1px; 566 --buttons-border-opacity: 1.0; 567 --buttons-shadow-opacity: 0.0; 568 --buttons-shadow-visible: 0; 569 --buttons-shadow-horizontal-offset: 0px; 570 --buttons-shadow-vertical-offset: 4px; 571 --buttons-shadow-blur-radius: 5px; 572 --buttons-border-offset: 0px; 573 574 --inputs-radius: 0px; 575 --inputs-border-width: 1px; 576 --inputs-border-opacity: 0.55; 577 --inputs-shadow-opacity: 0.0; 578 --inputs-shadow-horizontal-offset: 0px; 579 --inputs-margin-offset: 0px; 580 --inputs-shadow-vertical-offset: 0px; 581 --inputs-shadow-blur-radius: 5px; 582 --inputs-radius-outset: 0px; 583 584 --variant-pills-radius: 0px; 585 --variant-pills-border-width: 1px; 586 --variant-pills-border-opacity: 0.35; 587 --variant-pills-shadow-opacity: 0.1; 588 --variant-pills-shadow-horizontal-offset: 0px; 589 --variant-pills-shadow-vertical-offset: 0px; 590 --variant-pills-shadow-blur-radius: 5px; 591 } 592 593 *, 594 *::before, 595 *::after { 596 box-sizing: inherit; 597 } 598 599 html { 600 box-sizing: border-box; 601 font-size: calc(var(--font-body-scale) * 62.5%); 602 height: 100%; 603 } 604 605 body { 606 display: grid; 607 grid-template-rows: auto auto 1fr auto; 608 grid-template-columns: 100%; 609 min-height: 100%; 610 margin: 0; 611 font-size: 1.5rem; 612 letter-spacing: 0.06rem; 613 line-height: calc(1 + 0.8 / var(--font-body-scale)); 614 font-family: var(--font-body-family); 615 font-style: var(--font-body-style); 616 font-weight: var(--font-body-weight); 617 } 618 619 @media screen and (min-width: 750px) { 620 body { 621 font-size: 1.6rem; 622 } 623 } 624 </style> 625 626 <link href="//midsummer-milano.com/cdn/shop/t/39/assets/base.aio.min.css?v=123293343462247259651785838147" rel="stylesheet" type="text/css" media="all" /> 627 <link rel="stylesheet" href="//midsummer-milano.com/cdn/shop/t/39/assets/component-cart-items.aio.min.css?v=73545568238200293021785838167" media="print" onload="this.media='all'"> 628 <link rel="preload" as="font" href="//midsummer-milano.com/cdn/fonts/archivo/archivo_n4.dc8d917cc69af0
628a65ae04d01fd8eeab28a3573c9.woff2" type="font/woff2" crossorigin> 629 630 631 <link rel="preload" as="font" href="//midsummer-milano.com/cdn/fonts/shippori_mincho/shipporimincho_n4.84f8b7ceff7f95df65cde9ab1ed190e83a4f5b7e.woff2" type="font/woff2" crossorigin> 632 633<link href="//midsummer-milano.com/cdn/shop/t/39/assets/component-localization-form.aio.min.css?v=111950455872200724121785838189" rel="stylesheet" type="text/css" media="all" /> 634
634<script src="//midsummer-milano.com/cdn/shop/t/39/assets/localization-form.aio.min.js?v=113863212043309336071785838343" defer="defer"></script>
634<link 635 rel="stylesheet" 636 href="//midsummer-milano.com/cdn/shop/t/39/assets/component-predictive-search.aio.min.css?v=142827984197593395471785838212" 637 media="print" 638 onload="this.media='all'" 639 >
639<script> 640 if (Shopify.designMode) { 641 document.documentElement.classList.add('shopify-design-mode'); 642 } 643 </script>
643 644 645 646<!-- code for Shopify (2 of 2) - Tracking API -->
647<script type="text/javascript"> 648window.Shopify.loadFeatures( 649 [ 650 { 651 name: 'consent-tracking-api', 652 version: '0.1', 653 }, 654 ], 655 function(error) { 656 if (error) { 657 throw error; 658 } 659 } 660); 661</script>
661 662 663 664 665 <!-- Added by AVADA SEO Suite --><!-- /Added by AVADA SEO Suite --> 666 667 <!-- Midsummer: Social icons â normalize stroke + on-brand hover --> 668 <style id="msm-social-icons"> 669 .list-social a { 670 color: rgba(var(--color-foreground, 0,0,0), .85); 671 transition: color .18s ease, opacity .18s ease; 672 } 673 .list-social a:hover, 674 .list-social a:focus { 675 color: #5B423D; /* deep clay */ 676 } 677 .list-social svg [stroke]{ 678 stroke: currentColor !important; 679 stroke-width: 1.4 !important; 680 vector-effect: non-scaling-stroke; 681 } 682 .list-social svg [fill="none"]{ fill: none !important; } 683 .list-social svg .icon-fill, 684 .list-social svg [data-fill], 685 .list-social svg path[fill]:not([fill="none"]){ 686 fill: currentColor !important; 687 stroke: none !important; 688 } 689 .list-social svg{ shape-rendering: geometricPrecision; } 690 </style> 691 <!-- BEGIN app block: shopify://apps/avada-seo-suite/blocks/avada-seo/15507c6e-1aa3-45d3-b698-7e175e033440 -->
691<script> 692 window.AVADA_SEO_ENABLED = true; 693</script>
693<!-- BEGIN app snippet: avada-seo-social --><meta property='og:site_name' content='Midsummer Milano'> 694<meta property='og:url' content='https://midsummer-milano.com/pages/about-midsummer-milano'> 695<meta property='og:title' content='About Midsummer Milano | Italian Sleep Atelier'> 696<meta property='og:type' content='page'> 697<meta property='og:description' content='Founded by architect Chiara Mennini. Every sleep system is built by hand by the same two Italian artisans from start to finish. Discover why Midsummer Milano exists.'> 698<meta property='og:image' content='https://midsummer-milano.com/cdn/shop/files/logo-midsummer-milano-450x200.png?v=1759917848&width=600'> 699 <meta property='og:image:secure_url' content='https://midsummer-milano.com/cdn/shop/files/logo-midsummer-milano-450x200.png?v=1759917848&width=600'> 700 <meta name='twitter:image' content='https://midsummer-milano.com/cdn/shop/files/logo-midsummer-milano-450x200.png?v=1759917848&width=600'> 701<meta name='twitter:site' content='@midsummermilano'><meta name='twitter:card' content='summary_large_image'> 702<meta name='twitter:title' content='About Midsummer Milano | Italian Sleep Atelier'> 703<meta 704 name='twitter:description' 705 content='Founded by architect Chiara Mennini. Every sleep system is built by hand by the same two Italian artisans from start to finish. Discover ...' 706> 707<!-- END app snippet --><!-- BEGIN app snippet: avada-blog-posts-and-article --><!-- END app snippet --><!-- BEGIN app snippet: avada-homepage --> 708 709 710 711
711<script type="application/ld+json"> 712 { 713 "@context": "https://schema.org", 714 "@type": "Organization", 715 "name": "Midsummer Milano", 716 "description": "Midsummer-Milano creates luxury beds and mattresses, handmade from natural materials. Italian design, artisanal savoir-faire, and comfort born from time and beauty.", 717 "image": "https:\/\/cdn.shopify.com\/s\/files\/1\/0697\/8829\/files\/logo-midsummer-milano-450x200.png?v=1613504017", 718 "url": "https:\/\/midsummer-milano.com", 719 "logo": "https:\/\/cdn.shopify.com\/s\/files\/1\/0697\/8829\/files\/logo-midsummer-milano-450x200.png?v=1613504017", 720 "email": "[email protected]","telephone": "+39 335 6327 791", 721 "contactPoint": { 722 "@type": "ContactPoint", 723 "contactType": "Customer Support", 724 "telephone": "+39 335 6327 791", 725 726 "email": "[email protected]" 727 }, 728 729 "vatID": "IT02282810999", 730 "taxID": "", 731 "legalName": "", 732 "naics": "", 733 "foundingDate": "", 734 735 "address": { 736 "@type": "PostalAddress", 737 "streetAddress": "Via Andegari, 4", 738 "addressLocality": "Milano", 739 "addressCountry": "IT", 740 "addressRegion": "MI", 741 "postalCode": "20121" 742 }, 743 "sameAs": [ 744 745 "https:\/\/www.instagram.com\/midsummermilano\/" 746 , 747 748 "https:\/\/it.pinterest.com\/midsummermilanosocial\/" 749 , 750 751 "https:\/\/www.linkedin.com\/company\/midsummer-milano\/" 752 753 754 ] 755 } 756 </script>
756 757 758<!-- END app snippet --><!-- BEGIN app snippet: avada-local-business --> 759 760 761 762 763 764 765 766 767<!-- END app snippet --><!-- BEGIN app snippet: avada-product-and-collection --><!-- END app snippet --><!-- BEGIN app snippet: avada-frequently-asked-questions --> 768 769 770 771 772 773 774 775 776 777 778 779 780<!-- END app snippet --><!-- BEGIN app snippet: avada-seo-preload -->
780<script> 781 const ignore = ["\/cart","\/account"]; 782 window.FPConfig = { 783 delay: 0, 784 ignoreKeywords: ignore || ['/cart', '/account/login', '/account/logout', '/account'], 785 maxRPS: 3, 786 hoverDelay: 50 787 }; 788</script>
788 789 790 791
791<script type="lightJs" src="https://cdn.shopify.com/extensions/01a0f16d-e2ec-7486-9202-1e312931a993/avada-seo-suite-296/assets/flying-pages.js" defer="defer"></script>
791 792<!-- END app snippet --><!-- BEGIN app snippet: avada-breadcrumb -->
792<script type='application/ld+json'> 793 { 794 "@context": "https://schema.org", 795 "@type": "BreadcrumbList", 796 "itemListElement": [ 797 { 798 "@type": "ListItem", 799 "position": 1, 800 "name": "Home", 801 "item": "https://midsummer-milano.com" 802 }, 803 { 804 "@type": "ListItem", 805 "position": 2, 806 "name": "About Us", 807 "item": "https://midsummer-milano.com/pages/about-midsummer-milano" 808 }] 809} 810</script>
810<!-- END app snippet --><!-- BEGIN app snippet: avada-loading --><style> 811 @keyframes avada-rotate { 812 0% { transform: rotate(0); } 813 100% { transform: rotate(360deg); } 814 } 815 816 @keyframes avada-fade-out { 817 0% { opacity: 1; visibility: visible; } 818 100% { opacity: 0; visibility: hidden; } 819 } 820 821 .Avada-LoadingScreen { 822 display: none; 823 width: 100%; 824 height: 100vh; 825 top: 0; 826 position: fixed; 827 z-index: 9999; 828 display: flex; 829 align-items: center; 830 justify-content: center; 831 832 background-color: #F2F2F2; 833 834 } 835 836 .Avada-LoadingScreen svg { 837 animation: avada-rotate 1s linear infinite; 838 width: 50px; 839 height: 50px; 840 } 841</style>
842<script> 843 const themeId = Shopify.theme.id; 844 const loadingSettingsValue = {"enabled":true,"loadingColor":"#333333","bgColor":"#F2F2F2","waitTime":0,"durationTime":2,"loadingType":"circle","bgType":"color","sizeLoading":"50","displayShow":"first","bgImage":"","themeIds":[]}; 845 const loadingType = loadingSettingsValue?.loadingType; 846 function renderLoading() { 847 new MutationObserver((mutations, observer) => { 848 if (document.body) { 849 observer.disconnect(); 850 const loadingDiv = document.createElement('div'); 851 loadingDiv.className = 'Avada-LoadingScreen'; 852 if(loadingType === 'custom_logo' || loadingType === 'favicon_logo') { 853 const srcLoadingImage = loadingSettingsValue?.loadingImageUrl || loadingSettingsValue?.customLogoThemeIds?.[themeId] || ''; 854 if(srcLoadingImage) { 855 loadingDiv.innerHTML = ` 856 <img alt="Avada logo" height="600px" loading="eager" fetchpriority="high" 857 src="${srcLoadingImage}&width=600" 858 width="600px" /> 859 ` 860 } 861 } 862 if(loadingType === 'circle') { 863 loadingDiv.innerHTML = ` 864 <svg viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"> 865 <path d="M20 3.75C11.0254 3.75 3.75 11.0254 3.75 20C3.75 21.0355 2.91053 21.875 1.875 21.875C0.839475 21.875 0 21.0355 0 20C0 8.9543 8.9543 0 20 0C31.0457 0 40 8.9543 40 20C40 31.0457 31.0457 40 20 40C18.9645 40 18.125 39.1605 18.125 38.125C18.125 37.0895 18.9645 36.25 20 36.25C28.9748 36.25 36.25 28.9748 36.25 20C36.25 11.0254 28.9748 3.75 20 3.75Z" fill="#333333"/> 866 </svg> 867 `; 868 } 869 870 document.body.insertBefore(loadingDiv, document.body.firstChild || null); 871 const e = '2'; 872 const t = 'first'; 873 const o = 'first' === t; 874 const a = sessionStorage.getItem('isShowLoadingAvada'); 875 const n = document.querySelector('.Avada-LoadingScreen'); 876 if (a && o) return (n.style.display = 'none'); 877 n.style.display = 'flex'; 878 const i = document.body; 879 i.style.overflow = 'hidden'; 880 const l = () => { 881 i.style.overflow = 'auto'; 882 n.style.animation = 'avada-fade-out 1s ease-out forwards'; 883 setTimeout(() => { 884 n.style.display = 'none'; 885 }, 1000); 886 }; 887 if ((o && !a && sessionStorage.setItem('isShowLoadingAvada', true), 'duration_auto' === e)) { 888 window.onload = function() { 889 l(); 890 }; 891 return; 892 } 893 setTimeout(() => { 894 l(); 895 }, 1000 * e); 896 } 897 }).observe(document.documentElement, { childList: true, subtree: true }); 898 }; 899 function isNullish(value) { 900 return value === null || value === undefined; 901 } 902 const themeIds = ''; 903 const themeIdsArray = themeIds ? themeIds.split(',') : []; 904 905 if(!isNullish(themeIds) && themeIdsArray.includes(themeId.toString()) && loadingSettingsValue?.enabled) { 906 renderLoading(); 907 } 908 909 if(isNullish(loadingSettingsValue?.themeIds) && loadingSettingsValue?.enabled) { 910 renderLoading(); 911 } 912</script>
912 913<!-- END app snippet --> 914<!-- END app block --><!-- BEGIN app block: shopify://apps/avada-seo-ai-blog/blocks/avada-seoon-setting/a45c3e67-be9f-4255-a194-b255a24f37c9 --><!-- BEGIN app snippet: avada-seoon-page-tag --><link href="//cdn.shopify.com/extensions/01a0ec14-64b2-7c1c-b82e-9d0d0a1ea983/seoon-blog-141/assets/page-tag.css" rel="stylesheet" type="text/css" media="all" /> 915
915<script src='https://code.jquery.com/jquery-3.6.0.min.js'></script>
915 916 917
917<script> 918 const endpoint = 'https://blogapp-proxy.seoon.io/proxy'; 919 const fallbackImg = 'https://cdnapps.avada.io/seo/avada-placeholder.webp'; 920 const IMAGE_URL = 'https://cdnapps.avada.io/blog/icons'; 921 const AVADA_TAGS = '#Avada-Tags'; 922 const AVADA_ARTICLES = '#Avada-ListArticles'; 923 const AVADA_PAGINATION = '#Avada-Pagination'; 924 925 function fetchData(path, params = '') { 926 return $.ajax({ 927 url: `${endpoint}${path}?domain=frugone-1885.myshopify.com&${params}`, 928 method: 'GET', 929 dataType: 'json', 930 }).fail((error) => console.error('Error fetching data:', error)); 931 } 932 933 function setQueryParams(params) { 934 const urlParams = new URLSearchParams(window.location.search); 935 Object.entries(params).forEach(([key, value]) => urlParams.set(key, value)); 936 window.history.pushState({}, '', `${window.location.pathname}?${urlParams.toString()}`); 937 } 938 939 function getQueryParams() { 940 const urlParams = new URLSearchParams(window.location.search); 941 return { 942 search: decodeURIComponent(urlParams.get('search') || ''), 943 }; 944 } 945 946 /** Rendering Functions **/
947 function renderSkeletonTags(count = 6) { 948 const tagsContainer = $(AVADA_TAGS).empty(); 949 for (let i = 0; i < count; i++) { 950 tagsContainer.append('<p class="Avada-Skeleton Avada-Skeleton-tag"></p>'); 951 } 952 } 953 954 function renderSkeletonArticles(count = 6) { 955 const articlesContainer = $(AVADA_ARTICLES).empty(); 956 for (let i = 0; i < count; i++) { 957 articlesContainer.append(` 958 <div class="Avada-ListArticles__Item"> 959 <div class="Avada-Skeleton Avada-Skeleton-img"></div> 960 <div class="Avada-ListArticles__Info"> 961 <div class="Avada-Skeleton Avada-Skeleton-text" style="width: 60%;"></div> 962 <div class="Avada-Skeleton Avada-Skeleton-text" style="width: 80%;"></div> 963 </div> 964 </div> 965 `); 966 } 967 } 968 969 function renderTags(tags) { 970 const tagsContainer = $(AVADA_TAGS).empty(); 971 972 if (tags.length) { 973 tags.forEach((tag) => { 974 // Store both slug and title for matching flexibility 975 tagsContainer.append( 976 `<div data-tag="${tag.slug}" data-title="${tag.title}" class="tag-item">#${tag.title}</div>` 977 ); 978 }); 979 } else { 980 tagsContainer.html('<span style="margin-top: 1rem;">No tags found.</span>'); 981 } 982 } 983 984 function renderArticles(articles) { 985 const articlesContainer = $(AVADA_ARTICLES).empty(); 986 if (articles.length) { 987 articles.forEach((article) => { 988 const imageUrl = article.thumbnail || fallbackImg; 989 const imageAlt = article.image?.altText || article.title; 990 const articleStringify = JSON.stringify(article); 991 const formattedDate = article.publishedAt 992 ? new Intl.DateTimeFormat('en-US', { 993 month: 'short', 994 day: '2-digit', 995 year: 'numeric', 996 }).format(new Date(article.publishedAt)) 997 : ''; 998 999 articlesContainer.append(` 1000 <div class="Avada-ListArticles__Item" data-category='${JSON.stringify( 1001 article.category 1002 )}' data-slug='${article.slug}'> 1003 <img alt="${imageAlt}" loading="lazy" src="${imageUrl}" class="Avada-ListArticles__ItemThumb" onError="this.onerror=null;this.src='${fallbackImg}';"/> 1004 <div class="Avada-ListArticles__Info"> 1005 <div class="Avada-ListArticles__category">${article.category.name}</div> 1006 <div class="Avada-ListArticles__title">${article.title}</div> 1007 ${ 1008 article.summary 1009 ? `<div class="Avada-ListArticles__des">${article.summary}</div>` 1010 : '' 1011 } 1012 </div> 1013 <div class="Avada-ListArticles__Footer"> 1014 <div class="Avada-ListArticles__Author"> 1015 <div class="Avada-ListArticles__Author--name">${article.author}</div> 1016 ${ 1017 formattedDate 1018 ? `<div class="Avada-ListArticles__Author--name">${formattedDate}</div>` 1019 : '' 1020 } 1021 </div> 1022 <div class="Avada-ListArticles__Action"> 1023 <div class="Avada-ListArticles__Action-Icon"> 1024 <img height="20" src="${IMAGE_URL + '/like.png'}" width="20" height="20" /> 1025 <p class="icon-text">1</p> 1026 </div> 1027 <div class="Avada-ListArticles__Action-Icon"> 1028 <img height="20" src="${IMAGE_URL + '/comment.png'}" width="20" height="20" /> 1029 <p class="icon-text">1</p> 1030 </div> 1031 <div class="Avada-ListArticles__Action-Icon"> 1032 <img height="20" src="${IMAGE_URL + '/share.png'}" width="20" height="20" /> 1033 <p class="icon-text">1</p> 1034 </div> 1035 </div> 1036 </div> 1037 </div> 1038 `); 1039 }); 1040 } else { 1041 articlesContainer.html('<div style="margin-top: 1rem;">No blogs found.</div>'); 1042 } 1043 } 1044 1045 function renderPagination({hasNextPage, hasPreviousPage, endCursor, startCursor}) { 1046 const paginationContainer = $(AVADA_PAGINATION).empty(); 1047 1048 paginationContainer.append(` 1049 <div class="btn-wrap ${ 1050 !hasPreviousPage ? 'disabled' : '' 1051 }" id="Avada-Btn-Prev" data-cursor="${startCursor}" data-direction="before"> 1052 <img src="${IMAGE_URL + '/chevon-left.png'}" width="20" height="20" /> 1053 <div>Back</div> 1054 </div> 1055 `); 1056 1057 paginationContainer.append(` 1058 <div class="btn-wrap ${ 1059 !hasNextPage ? 'disabled' : '' 1060 }" id="Avada-Btn-Next" data-cursor="${endCursor}" data-direction="after"> 1061 <div>Next</div> 1062 <img src="${IMAGE_URL + '/chevon-right.png'}" width="20" height="20" /> 1063 </div> 1064 `); 1065 } 1066 1067 /** Data Loading Functions **/ 1068 function loadTags(currentTag, searchTerm = '') { 1069 renderSkeletonTags(); 1070 const searchParam = searchTerm ? `search=${encodeURIComponent(searchTerm)}` : ''; 1071 const limitParam = searchTerm ? '' : '&limit=20'; 1072 const apiUrl = `${searchParam}&orderBy=updatedAt desc${limitParam}`; 1073 1074 fetchData('/tags', apiUrl) 1075 .done((data) => { 1076 renderTags(data?.data || []); 1077 updateActiveTag(currentTag); 1078 }) 1079 .fail((error) => { 1080 console.error('â API Error TAG:', error); 1081 }); 1082 } 1083 1084 function loadArticles({search = '', after = null, before = null}) { 1085 renderSkeletonArticles(); 1086 $(AVADA_PAGINATION).hide(); 1087 1088 const params = new URLSearchParams({ 1089 limit: 6, 1090 search: search, 1091 }); 1092 if (after) params.append('after', after); 1093 if (before) params.append('before', before); 1094 1095 fetchData('/posts-by-tag', params.toString()).done((data) => { 1096 const {data: articles, hasNextPage, hasPreviousPage, endCursor, startCursor} = data?.data; 1097 renderArticles(articles || []); 1098 if (articles?.length > 0) { 1099 const pagination = { 1100 hasNextPage, 1101 hasPreviousPage, 1102 endCursor, 1103 startCursor, 1104 }; 1105 renderPagination(pagination); 1106 } 1107 $(AVADA_PAGINATION).show(); 1108 }); 1109 } 1110 1111 /** Helper Functions **/ 1112 function updateActiveTag(tag) { 1113 $(`${AVADA_TAGS} div`).removeClass('active'); 1114 if (tag) { 1115 // Try to match both encoded and decoded versions 1116 const decodedTag = decodeURIComponent(tag); 1117 let targetElement = $(`${AVADA_TAGS} div[data-tag="${tag}"]`); 1118 if (targetElement.length === 0) { 1119 targetElement = $(`${AVADA_TAGS} div[data-tag="${decodedTag}"]`); 1120 } 1121 if (targetElement.length === 0) { 1122 // Try matching by data-title attribute 1123 targetElement = $(`${AVADA_TAGS} div[data-title="${decodedTag}"]`); 1124 } 1125 if (targetElement.length === 0) { 1126 // Try matching by title content as fallback 1127 targetElement = $(`${AVADA_TAGS} div`).filter(function () { 1128 return $(this).text().replace('#', '').trim() === decodedTag; 1129 }); 1130 } 1131 targetElement.addClass('active'); 1132 } 1133 } 1134 1135 function handleChangePage() { 1136 const cursor = $(this).data('cursor'); 1137 const direction = $(this).data('direction'); 1138 const params = getQueryParams(); 1139 1140 if (cursor && !$(this).hasClass('disabled')) { 1141 const loadParams = {search: params.search}; 1142 if (direction === 'after') { 1143 loadParams.after = cursor; 1144 } else if (direction === 'before') {
1145 loadParams.before = cursor; 1146 } 1147 loadArticles(loadParams); 1148 } 1149 } 1150 1151 /** Event Listeners **/ 1152 $(document).ready(() => { 1153 const params = getQueryParams(); 1154 const currentTag = params.search; 1155 1156 if ($('#Avada-TagSearch').length && $('#Avada-SearchButton').length === 0) { 1157 const searchButton = 1158 '<button id="Avada-SearchButton" style="margin-left: 8px; padding: 6px 12px; background: #007cba; color: white; border: none; border-radius: 4px; cursor: pointer;">Search</button>'; 1159 $('#Avada-TagSearch').after(searchButton); 1160 } 1161 1162 loadTags(currentTag); 1163 loadArticles(params); 1164 1165 $(AVADA_TAGS).on('click', 'div', function () { 1166 const newTag = $(this).data('tag'); 1167 const {search} = getQueryParams(); 1168 1169 if (search !== newTag) { 1170 setQueryParams({search: newTag}); 1171 loadArticles({search: newTag}); 1172 updateActiveTag(newTag); 1173 } 1174 }); 1175 1176 // Search button click event 1177 $(document).on('click', '#Avada-SearchButton', function () { 1178 const searchTerm = $('#Avada-TagSearch').val().trim(); 1179 loadTags(currentTag, searchTerm); 1180 }); 1181 1182 // Enter key support for search input 1183 $('#Avada-TagSearch').on('keypress', function (e) { 1184 if (e.which === 13) { 1185 const searchTerm = $(this).val().trim(); 1186 loadTags(currentTag, searchTerm); 1187 } 1188 }); 1189 1190 $(document).on('click', '#Avada-Btn-Prev, #Avada-Btn-Next', handleChangePage); 1191 1192 $(document).on('click', '.Avada-ListArticles__Item', function () { 1193 const category = $(this).data('category'); 1194 const slug = $(this).data('slug'); 1195 window.location.href = `${window.location.origin}/blogs/${category.slug}/${slug}`; 1196 }); 1197 }); 1198 </script>
1198<!-- END app snippet --> 1199<!-- END app block -->
1199<script src="https://cdn.shopify.com/extensions/01a0cd11-b913-7e7d-8b62-2b63ab1be515/air-reviews-1-110/assets/air-reviews.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1199
1199
1200<script src="https://cdn.shopify.com/extensions/01a0e632-6aba-77a1-97d3-b2f934e02c93/tipo-appointment-booking-211/assets/tipo.booking.index.min.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1200
1200
1201<script src="https://cdn.shopify.com/extensions/01a0ec4b-fc8c-7857-9dee-9d19df15397a/appointo-103/assets/appointo_bundle.js" type="text/javascript" defer="defer"></script>
1201 1202<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1203<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 6978829,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 1203
1203
1204<script> 1205 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1206</script>
vendor: 1 bytes, line 1206
1206
1207<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
1207).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 6978829,storefrontBaseUrl: "https://midsummer-milano.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://midsummer-milano.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2725511504","configuration":"{\"mailchimp_store_id\":\"store_4chu1ndmchv9so2oohm6\", \"mailchimp_user_id\":\"64533013\",\"mailchimp_list_id\":\"41eff2e1a3\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"e357a49eadeb6216a959d63fa3fb8f55","type":"APP","apiClientId":2585307,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"2067366224","configuration":"{\"accountID\":\"frugone-1885\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"4f82d0323b06a4642fbff9b42c9979eb","type":"APP","apiClientId":12388204545,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"}
1207,{"id":"1850769744","configuration":"{\"shopId\":\"6jJfsMEojHrOBNInfC0a\",\"description\":\"Chatty conversion tracking pixel\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c90a95b3a8ca540fdf72271e8d5f8857","type":"APP","apiClientId":6641085,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1155334480","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-639NJDLQ5L\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"G-639NJDLQ5L\\\"},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"G-639NJDLQ5L\\\"},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-639NJDLQ5L\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":\\\"G-639NJDLQ5L\\\"},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-639NJDLQ5L\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":\\\"G-639NJDLQ5L\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":\\\"G-639NJDLQ5L\\\"},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-639NJDLQ5L\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"G-639NJDLQ5L\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"G-639NJDLQ5L\\\"},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-639NJDLQ5L\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"319914320","configuration":"{\"pixel_id\":\"437793481248720\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"146833744","configuration":"{\"tagID\":\"2613597062181\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7ae565e198624b39e0856d352b9a6b4c","type":"APP","apiClientId":3009811,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"167215440","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS"],"name":"Google Analytics tag (migrated)","dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Midsummer-Milano","paymentSettings":{"currencyCode":"EUR"},"myshopifyDomain":"frugone-1885.myshopify.com","countryCode":"IT","storefrontUrl":"https:\/\/midsummer-milano.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://midsummer-milano.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"186271138
1207128","themeStoreId":"887","themePublished":"true","eventMetadataId":"4990d681-b10a-41b3-beed-87fa74354382","pageType":"page","resourceId":"20871745","shopId":"6978829","storefrontBaseUrl":"https:\/\/midsummer-milano.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
1207<script> 1208 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1209 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1210 window.ShopifyAnalytics.meta.currency = 'EUR'; 1211 var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":20871745,"requestId":"6597a8e4-8e7b-4b54-943d-4413684ddc56-1790833392"}}; 1212 for (var attr in meta) { 1213 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1214 } 1215</script>
vendor: 1 bytes, line 1215
1215
1216<script class="analytics"> 1217 (function () { 1218 var customDocumentWrite = function(content) { 1219 var jquery = null; 1220 1221 if (window.jQuery) { 1222 jquery = window.jQuery; 1223 } else if (window.Checkout && window.Checkout.$) { 1224 jquery = window.Checkout.$; 1225 } 1226 1227 if (jquery) { 1228 jquery('body').append(content); 1229 } 1230 }; 1231 1232 var hasLoggedConversion = function(token) { 1233 if (token) { 1234 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 1235 } 1236 return false; 1237 } 1238 1239 var setCookieIfConversion = function(token) { 1240 if (token) { 1241 var twoMonthsFromNow = new Date(Date.now()); 1242 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 1243 1244 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 1245 } 1246 } 1247 1248 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 1249 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 1250 if (trekkie.integrations) { 1251 return; 1252 } 1253 trekkie.methods = [ 1254 'identify', 1255 'page', 1256 'ready', 1257 'track', 1258 'trackForm', 1259 'trackLink' 1260 ]; 1261 trekkie.factory = function(method) { 1262 return function() { 1263 var args = Array.prototype.slice.call(arguments); 1264 args.unshift(method); 1265 trekkie.push(args); 1266 if (method == 'track' || method == 'page') { 1267 var pageUrl; 1268 try { 1269 pageUrl = window.location.href; 1270 } catch (e) {} 1271 var pageReferrer; 1272 try { 1273 pageReferrer = document.referrer; 1274 } catch (e) {} 1275 try { 1276 if (window.__TREKKIE_SHIM_QUEUE == null) { 1277 window.__TREKKIE_SHIM_QUEUE = []; 1278 } 1279 window.__TREKKIE_SHIM_QUEUE.push({ 1280 from: 'trekkie-stub', 1281 method: method, 1282 args: args.slice(1), 1283 pageContext: { 1284 url: pageUrl, 1285 referrer: pageReferrer 1286 } 1287 }); 1288 } catch (e) { 1289 // no-op 1290 } 1291 } 1292 return trekkie; 1293 }; 1294 }; 1295 for (var i = 0; i < trekkie.methods.length; i++) { 1296 var key = trekkie.methods[i]; 1297 trekkie[key] = trekkie.factory(key); 1298 } 1299 trekkie.load = function(config) { 1300 trekkie.config = config || {}; 1301 trekkie.config.initialDocumentCookie = document.cookie; 1302 var first = document.getElementsByTagName('script')[0]; 1303var script = document.createElement('script'); 1304script.type = 'text/javascript'; 1305script.onerror = function(e) { 1306 var scriptFallback = document.createElement('script'); 1307 scriptFallback.type = 'text/javascript'; 1308 scriptFallback.onerror = function(error) { 1309 var Monorail = { 1310 produce: function produce(monorailDomain, schemaId, payload) { 1311 var currentMs = new Date().getTime(); 1312 var event = { 1313 schema_id: schemaId, 1314 payload: payload, 1315 metadata: { 1316 event_created_at_ms: currentMs, 1317 event_sent_at_ms: currentMs 1318 } 1319 }; 1320 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1321 }, 1322 sendRequest: function sendRequest(endpointUrl, payload) { 1323 // Try the sendBeacon API 1324 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1325 var blobData = new window.Blob([payload], { 1326 type: 'text/plain' 1327 }); 1328 1329 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1330 return true; 1331 } // sendBeacon was not successful 1332 1333 } // XHR beacon 1334 1335 var xhr = new XMLHttpRequest(); 1336 1337 try { 1338 xhr.open('POST', endpointUrl); 1339 xhr.setRequestHeader('Content-Type', 'text/plain'); 1340 xhr.send(payload); 1341 } catch (e) { 1342 console.log(e); 1343 } 1344 1345 return false; 1346 }, 1347 isIos12: function isIos12() { 1348 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1349 } 1350 }; 1351 Monorail.produce('monorail-edge.shopifysvc.com', 1352 'trekkie_storefront_load_errors/1.1', 1353 {shop_id: 6978829,
1354 theme_id: 186271138128, 1355 app_name: "storefront", 1356 context_url: window.location.href, 1357 source_url: "//midsummer-milano.com/cdn/s/trekkie.storefront.8fbb7598bfc52f7298fce09b15942db7f0f927c3.min.js"}); 1358 1359 }; 1360 scriptFallback.async = true; 1361 scriptFallback.src = '//midsummer-milano.com/cdn/s/trekkie.storefront.8fbb7598bfc52f7298fce09b15942db7f0f927c3.min.js'; 1362 first.parentNode.insertBefore(scriptFallback, first); 1363}; 1364script.async = true; 1365script.src = '//midsummer-milano.com/cdn/s/trekkie.storefront.8fbb7598bfc52f7298fce09b15942db7f0f927c3.min.js'; 1366first.parentNode.insertBefore(script, first); 1367 1368 }; 1369 trekkie.load( 1370 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":6978829,"isMerchantRequest":null,"themeId":186271138128,"themeCityHash":"4085298460334268911","contentLanguage":"en","currency":"EUR","eventMetadataId":"4990d681-b10a-41b3-beed-87fa74354382"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1371 ); 1372 1373 var loaded = false; 1374 trekkie.ready(function() { 1375 if (loaded) return; 1376 loaded = true; 1377 1378 window.ShopifyAnalytics.lib = window.trekkie; 1379 1380 var originalDocumentWrite = document.write; 1381 document.write = customDocumentWrite; 1382 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1383 document.write = originalDocumentWrite; 1384 1385 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1386 var token = match? match[1]: undefined; 1387 if (!hasLoggedConversion(token)) { 1388 setCookieIfConversion(token); 1389 1390 } 1391 }); 1392 1393 window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":20871745,"requestId":"6597a8e4-8e7b-4b54-943d-4413684ddc56-1790833392","shopifyEmitted":true}); 1394 1395 var eventsListenerScript = document.createElement('script'); 1396 eventsListenerScript.async = true; 1397 eventsListenerScript.src = "//midsummer-milano.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1398 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1399})();</script>
1399 1400
1400<script> 1401 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 1402 window.ga = function ga() { 1403 (window.ga.q = window.ga.q || []).push(arguments); 1404 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 1405 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 1406 } 1407 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 1408 }; 1409 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 1410 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 1411 } 1412 } 1413</script>
vendor: 1 bytes, line 1413
1413
1414<script 1415 defer 1416 src="https://midsummer-milano.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 1417 data-application="storefront-renderer" 1418 data-shop-id="6978829" 1419 data-render-region="gcp-europe-west1" 1420 data-page-type="page" 1421 data-theme-instance-id="186271138128" 1422 data-theme-name="Dawn" 1423 data-theme-version="15.2.0" 1424 data-monorail-region="shop_domain" 1425 data-resource-timing-sampling-rate="10" 1426 data-shs="true" 1427 data-shs-beacon="true" 1428 data-shs-export-with-fetch="true" 1429 data-shs-logs-sample-rate="1" 1430 data-shs-beacon-endpoint="https://midsummer-milano.com/api/collect" 1431></script>
1431 1432<meta name="shopify-y" content="c86ebead-3751-4530-aed1-0439f096493e" data-expiration="1822390992000"><meta name="shopify-s" content="1e12a7fd-c22f-463e-af24-7e86358b41f9" data-expiration="1790835192000"><meta name="new-cookie-storage-activated" content="t"> 1433</head> 1434 1435 <body class="gradient animate--hover-default"> 1436 <a class="skip-to-content-link button visually-hidden" href="#MainContent"> 1437 Skip to content 1438 </a> 1439<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 1439-1440
1439 1440<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1440GTM-T2NKS496
vendor: 83 bytes, lines 1440-1441
1440" 1441height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1442<!-- End Google Tag Manager (noscript) --><!-- BEGIN sections: header-group --> 1443<div id="shopify-section-sections--26829675430224__announcement-bar" class="shopify-section shopify-section-group-header-group announcement-bar-section"><link href="//midsummer-milano.com/cdn/shop/t/39/assets/component-slideshow.aio.min.css?v=112786357002038433701785838238" rel="stylesheet" type="text/css" media="all" /> 1444<link href="//midsummer-milano.com/cdn/shop/t/39/assets/component-slider.aio.min.css?v=132518589020187904731785838235" rel="stylesheet" type="text/css" media="all" /> 1445 1446 <link href="//midsummer-milano.com/cdn/shop/t/39/assets/component-list-social.aio.min.css?v=119763011076747161041785838188" rel="stylesheet" type="text/css" media="all" /> 1447 1448 1449<div 1450 class="utility-bar color-scheme-1 gradient utility-bar--bottom-border-social-only header-localization" 1451 1452> 1453 <div class="page-width utility-bar__grid utility-bar__grid--2-col"> 1454 1455<ul class="list-unstyled list-social" role="list"><li class="list-social__item"> 1456 <a href="https://www.instagram.com/midsummermilano/" class="link list-social__link"> 1457 <span class="svg-wrapper"><svg class="icon icon-instagram" viewBox="0 0 20 20"><path fill="currentColor" fill-rule="evenodd" d="M13.23 3.492c-.84-.037-1.096-.046-3.23-.046-2.144 0-2.39.01-3.238.055-.776.027-1.195.164-1.487.273a2.4 2.4 0 0 0-.912.593 2.5 2.5 0 0 0-.602.922c-.11.282-.238.702-.274 1.486-.046.84-.046 1.095-.046 3.23s.01 2.39.046 3.229c.004.51.097 1.016.274 1.495.145.365.319.639.602.913.282.282.538.456.92.602.474.176.974.268 1.479.273.848.046 1.103.046 3.238.046s2.39-.01 3.23-.046c.784-.036 1.203-.164 1.486-.273.374-.146.648-.329.921-.602.283-.283.447-.548.602-.922.177-.476.27-.979.274-1.486.037-.84.046-1.095.046-3.23s-.01-2.39-.055-3.229c-.027-.784-.164-1.204-.274-1.495a2.4 2.4 0 0 0-.593-.913 2.6 2.6 0 0 0-.92-.602c-.284-.11-.703-.237-1.488-.273ZM6.697 2.05c.857-.036 1.131-.045 3.302-.045a63 63 0 0 1 3.302.045c.664.014 1.321.14 1.943.374a4 4 0 0 1 1.414.922c.41.397.728.88.93 1.414.23.622.354 1.279.365 1.942C18 7.56 18 7.824 18 10.005c0 2.17-.01 2.444-.046 3.292-.036.858-.173 1.442-.374 1.943-.2.53-.474.976-.92 1.423a3.9 3.9 0 0 1-1.415.922c-.51.191-1.095.337-1.943.374-.857.036-1.122.045-3.302.045-2.171 0-2.445-.009-3.302-.055-.849-.027-1.432-.164-1.943-.364a4.15 4.15 0 0 1-1.414-.922 4.1 4.1 0 0 1-.93-1.423c-.183-.51-.329-1.085-.365-1.943C2.009 12.45 2 12.167 2 10.004c0-2.161 0-2.435.055-3.302.027-.848.164-1.432.365-1.942a4.4 4.4 0 0 1 .92-1.414 4.2 4.2 0 0 1 1.415-.93c.51-.183 1.094-.33 1.943-.366Zm.427 4.806a4.105 4.105 0 1 1 5.805 5.805 4.105 4.105 0 0 1-5.805-5.805m1.882 5.371a2.668 2.668 0 1 0 2.042-4.93 2.668 2.668 0 0 0-2.042 4.93m5.922-5.942a.958.958 0 1 1-1.355-1.355.958.958 0 0 1 1.355 1.355" clip-rule="evenodd"/></svg> 1458</span> 1459 <span class="visually-hidden">Instagram</span> 1460 </a> 1461 </li><li class="list-social__item"> 1462 <a class="list-social__link list-social__link--linkedin" 1463 href="https://www.linkedin.com/company/midsummer-milano/" target="_blank" rel="noopener noreferrer" 1464 aria-label="LinkedIn"> 1465 <svg class="icon icon-linkedin" width="26" height="26" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" style="fill: currentColor; stroke: none;"> 1466 <path d="M20.452 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.356V9h3.414v1.561h.047c.476-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 1 1 0-4.124 2.062 2.062 0 0 1 0 4.124zM3.56 9h3.555v11.452H3.56V9z"/> 1467 </svg> 1468 </a> 1469 </li><li class="list-social__item"> 1470 <a href="https://it.pinterest.com/midsummermilanosocial/" class="link list-social__link"> 1471 <span class="svg-wrapper"><svg class="icon icon-pinterest" viewBox="0 0 20 20"><path fill="currentColor" d="M10 2.01a8.1 8.1 0 0 1 5.666 2.353 8.09 8.09 0 0 1 1.277 9.68A7.95 7.95 0 0 1 10 18.04a8.2 8.2 0 0 1-2.276-.307c.403-.653.672-1.24.816-1.729l.567-2.2c.134.27.393.5.768.702.384.192.768.297 1.19.297q1.254 0 2.248-.72a4.7 4.7 0 0 0 1.537-1.969c.37-.89.554-1.848.537-2.8
147113 0-1.249-.48-2.315-1.43-3.227a5.06 5.06 0 0 0-3.65-1.374c-.893 0-1.729.154-2.478.461a5.02 5.02 0 0 0-3.236 4.552c0 .72.134 1.355.413 1.902.269.538.672.922 1.22 1.152.096.039.182.039.25 0 .066-.028.114-.096.143-.192l.173-.653c.048-.144.02-.288-.105-.432a2.26 2.26 0 0 1-.548-1.565 3.803 3.803 0 0 1 3.976-3.861c1.047 0 1.863.288 2.44.855.585.576.883 1.315.883 2.228a6.8 6.8 0 0 1-.317 2.122 3.8 3.8 0 0 1-.893 1.556c-.384.384-.836.576-1.345.576-.413 0-.749-.144-1.018-.451-.259-.307-.345-.672-.25-1.085q.22-.77.452-1.537l.173-.701c.057-.25.086-.451.086-.624 0-.346-.096-.634-.269-.855-.192-.22-.451-.336-.797-.336-.432 0-.797.192-1.085.595-.288.394-.442.893-.442 1.499.005.374.063.746.173 1.104l.058.144c-.576 2.478-.913 3.938-1.037 4.36-.116.528-.154 1.153-.125 1.863A8.07 8.07 0 0 1 2 10.03c0-2.208.778-4.11 2.343-5.666A7.72 7.72 0 0 1 10 2.001z"/></svg> 1472</span> 1473 <span class="visually-hidden">Pinterest</span> 1474 </a> 1475 </li><li class="list-social__item"> 1476 <a class="list-social__link list-social__link--whatsapp" 1477 href="https://wa.me/message/CAC4ZAEYHOTHN1" target="_blank" rel="noopener" 1478 aria-label="WhatsApp"> 1479 <svg class="icon icon-whatsapp" viewBox="-1 -1 20 20" aria-hidden="true" focusable="false"> 1480 <path d="M13.601 2.326A7.85 7.85 0 0 0 7.994 0C3.627 0 .068 3.558.064 7.926c0 1.399.366 2.76 1.057 3.965L0 16l4.204-1.102a7.9 7.9 0 0 0 3.79.965h.004c4.368 0 7.926-3.558 7.93-7.93A7.9 7.9 0 0 0 13.6 2.326zM7.994 14.521a6.6 6.6 0 0 1-3.356-.92l-.24-.144-2.494.654.666-2.433-.156-.251a6.56 6.56 0 0 1-1.007-3.505c0-3.626 2.957-6.584 6.591-6.584a6.56 6.56 0 0 1 4.66 1.931 6.56 6.56 0 0 1 1.928 4.66c-.004 3.639-2.961 6.592-6.592 6.592m3.615-4.934c-.197-.099-1.17-.578-1.353-.646-.182-.065-.315-.099-.445.099-.133.197-.513.646-.627.775-.114.133-.232.148-.43.05-.197-.1-.836-.308-1.592-.985-.59-.525-.985-1.175-1.103-1.372-.114-.198-.011-.304.088-.403.087-.088.197-.232.296-.346.1-.114.133-.198.198-.33.065-.134.034-.248-.015-.347-.05-.099-.445-1.076-.612-1.47-.16-.389-.323-.335-.445-.34-.114-.007-.247-.007-.38-.007a.73.73 0 0 0-.529.247c-.182.198-.691.677-.691 1.654s.71 1.916.81 2.049c.098.133 1.394 2.132 3.383 2.992.47.205.84.326 1.129.418.475.152.904.129 1.246.08.38-.058 1.171-.48 1.338-.943.164-.464.164-.86.114-.943-.049-.084-.182-.133-.38-.232"/> 1481</svg> 1482 </a> 1483 </li></ul> 1484<div class="localization-wrapper"> 1485<localization-form class="small-hide medium-hide"><form method="post" action="/localization" id="AnnouncementLanguageForm" accept-charset="UTF-8" class="localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/pages/about-midsummer-milano" /><div> 1486 <h2 class="visually-hidden" id="AnnouncementLanguageLabel">Language</h2><div class="disclosure"> 1487 <button 1488 type="button" 1489 class="disclosure__button localization-form__select localization-selector link link--text caption-large" 1490 aria-expanded="false" 1491 aria-controls="AnnouncementLanguageList" 1492 aria-describedby="AnnouncementLanguageLabel" 1493 > 1494 <span>English</span> 1495 <svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg> 1496 1497 </button> 1498 <div class="disclosure__list-wrapper language-selector" hidden> 1499 <ul id="AnnouncementLanguageList" role="list" class="disclosure__list list-unstyled"><li class="disclosure__item" tabindex="-1"> 1500 <a 1501 class="link link--text disclosure__link caption-large focus-inset" 1502 href="#" 1503 hreflang="en" 1504 lang="en" 1505 1506 aria-current="true" 1507 1508 data-value="en" 1509 > 1510 <span 1511 1512 ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg> 1513</span>
1514 <span> 1515 English 1516 </span> 1517 </a> 1518 </li><li class="disclosure__item" tabindex="-1"> 1519 <a 1520 class="link link--text disclosure__link caption-large focus-inset" 1521 href="#" 1522 hreflang="it" 1523 lang="it" 1524 1525 data-value="it" 1526 > 1527 <span 1528 1529 class="visibility-hidden" 1530 1531 ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg> 1532</span> 1533 <span> 1534 Italiano 1535 </span> 1536 </a> 1537 </li><li class="disclosure__item" tabindex="-1"> 1538 <a 1539 class="link link--text disclosure__link caption-large focus-inset" 1540 href="#" 1541 hreflang="ru" 1542 lang="ru" 1543 1544 data-value="ru" 1545 > 1546 <span 1547 1548 class="visibility-hidden" 1549 1550 ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg> 1551</span> 1552 <span> 1553 Ð ÑÑÑкий 1554 </span> 1555 </a> 1556 </li></ul> 1557 </div> 1558</div> 1559<input type="hidden" name="locale_code" value="en"> 1560</div></form></localization-form></div> 1561 </div> 1562</div> 1563 1564 1565</div><div id="shopify-section-sections--26829675430224__header" class="shopify-section shopify-section-group-header-group section-header"><link rel="stylesheet" href="//midsummer-milano.com/cdn/shop/t/39/assets/component-list-menu.aio.min.css?v=122630261541881302921785838184" media="print" onload="this.media='all'"> 1566<link rel="stylesheet" href="//midsummer-milano.com/cdn/shop/t/39/assets/component-search.aio.min.css?v=60593414149410526811785838229" media="print" onload="this.media='all'"> 1567<link rel="stylesheet" href="//midsummer-milano.com/cdn/shop/t/39/assets/component-menu-drawer.aio.min.css?v=183225651722519400791785838193" media="print" onload="this.media='all'"> 1568<link rel="stylesheet" href="//midsummer-milano.com/cdn/shop/t/39/assets/component-cart-notification.aio.min.css?v=177365525978190420061785838169" media="print" onload="this.media='all'"><link rel="stylesheet" href="//midsummer-milano.com/cdn/shop/t/39/assets/component-price.aio.min.css?v=28780779885344188701785838214" media="print" onload="this.media='all'"><link rel="stylesheet" href="//midsummer-milano.com/cdn/shop/t/39/assets/component-mega-menu.aio.min.css?v=42760611333937663211785838191" media="print" onload="this.media='all'"><style> 1569 header-drawer { 1570 justify-self: start; 1571 margin-left: -1.2rem; 1572 }.scrolled-past-header .header__heading-logo-wrapper { 1573 width: 75%; 1574 }@media screen and (min-width: 990px) { 1575 header-drawer { display: none; } 1576 }.menu-drawer-container { display: flex; } 1577 1578 .list-menu { list-style: none; padding: 0; margin: 0; } 1579 .list-menu--inline { display: inline-flex; flex-wrap: wrap; } 1580 1581 summary.list-menu__item { padding-right: 2.7rem; } 1582 1583 .list-menu__item { display: flex; align-items: center; line-height: calc(1 + 0.3 / var(--font-body-scale)); } 1584 1585 .list-menu__item--link { 1586 text-decoration: none; 1587 padding-bottom: 1rem; 1588 padding-top: 1rem; 1589 line-height: calc(1 + 0.8 / var(--font-body-scale)); 1590 } 1591 1592 @media screen and (min-width: 750px) { 1593 .list-menu__item--link { padding-bottom: 0.5rem; padding-top: 0.5rem; } 1594 } 1595 1596 /* spacing for the Enquire icon/button in the header */ 1597 .header__icon--enquire { margin-right: .75rem; } 1598</style><style data-shopify>.header { 1599 padding: 6px 3rem 6px 3rem; 1600 } 1601 1602 .section-header { 1603 position: sticky; /* fixes Safari z-index issue */ 1604 margin-bottom: 0px; 1605 } 1606 1607 @media screen and (min-width: 750px) { 1608 .section-header { margin-bottom: 0px; } 1609 } 1610 1611 @media screen and (min-width: 990px) { 1612 .header { 1613 padding-top: 12px; 1614 padding-bottom: 12px; 1615 } 1616 }</style>
1616<script src="//midsummer-milano.com/cdn/shop/t/39/assets/cart-notification.aio.min.js?v=80329816829372775681785838152" defer="defer"></script>
1616<sticky-header data-sticky-type="reduce-logo-size" class="header-wrapper color-scheme-1 gradient header-wrapper--border-bottom"><header class="header header--top-center header--mobile-center page-width header--has-menu header--has-social"> 1617 1618<header-drawer data-breakpoint="tablet"> 1619 <details id="Details-menu-drawer-container" class="menu-drawer-container"> 1620 <summary 1621 class="header__icon header__icon--menu header__icon--summary link focus-inset" 1622 aria-label="Menu" 1623 > 1624 <span><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-hamburger" viewBox="0 0 18 16"><path fill="currentColor" d="M1 .5a.5.5 0 1 0 0 1h15.71a.5.5 0 0 0 0-1zM.5 8a.5.5 0 0 1 .5-.5h15.71a.5.5 0 0 1 0 1H1A.5.5 0 0 1 .5 8m0 7a.5.5 0 0 1 .5-.5h15.71a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5"/></svg> 1625<svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg> 1626</span> 1627 </summary> 1628 <div id="menu-drawer" class="gradient menu-drawer motion-reduce color-scheme-1"> 1629 <div class="menu-drawer__inner-container"> 1630 <div class="menu-drawer__navigation-container"> 1631 <nav class="menu-drawer__navigation"> 1632 <ul class="menu-drawer__menu has-submenu list-menu" role="list"><li><a 1633 id="HeaderDrawer-home" 1634 href="/" 1635 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 1636 1637 > 1638 HOME 1639 </a></li><li><a 1640 id="HeaderDrawer-sleep-collections" 1641 href="/pages/sleep-collections" 1642 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 1643 1644 > 1645 SLEEP COLLECTIONS 1646 </a></li><li><a 1647 id="HeaderDrawer-loro-piana-fabrics-upholstery" 1648 href="/pages/loro-piana-interiors-beds-mattresses" 1649 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 1650 1651 > 1652 LORO PIANA FABRICS UPHOLSTERY 1653 </a></li><li><a 1654 id="HeaderDrawer-sleep-blog" 1655 href="/blogs/news" 1656 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 1657 1658 > 1659 SLEEP BLOG 1660 </a></li><li><a 1661 id="HeaderDrawer-sleep-wise-q-a" 1662 href="/pages/sleep-wise-faq" 1663 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 1664 1665 > 1666 SLEEP WISE Q&A 1667 </a></li><li><details id="Details-menu-drawer-menu-item-6"> 1668 <summary 1669 id="HeaderDrawer-about-us" 1670 class="menu-drawer__menu-item list-menu__item link link--text focus-inset menu-drawer__menu-item--active" 1671 > 1672 ABOUT US 1673 <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1673ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg> 1674</span> 1675 <span class="svg-wrapper"><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg> 1676</span> 1677 </summary> 1678 <div 1679 id="link-about-us" 1680 class="menu-drawer__submenu has-submenu gradient motion-reduce" 1681 tabindex="-1" 1682 > 1683 <div class="menu-drawer__inner-submenu"> 1684 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 1685 <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-arrow" viewB
1685ox="0 0 14 10"><path fill="currentColor" fill-rule="evenodd" d="M8.537.808a.5.5 0 0 1 .817-.162l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 1 1-.708-.708L11.793 5.5H1a.5.5 0 0 1 0-1h10.793L8.646 1.354a.5.5 0 0 1-.109-.546" clip-rule="evenodd"/></svg> 1686</span> 1687 ABOUT US 1688 </button> 1689 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a 1690 id="HeaderDrawer-about-us-our-story" 1691 href="/pages/about-midsummer-milano" 1692 class="menu-drawer__menu-item link link--text list-menu__item focus-inset menu-drawer__menu-item--active" 1693 1694 aria-current="page" 1695 1696 > 1697 Our Story 1698 </a></li><li><a 1699 id="HeaderDrawer-about-us-sustainability" 1700 href="/pages/our-eco-friendly-approach" 1701 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1702 1703 > 1704 Sustainability 1705 </a></li><li><a 1706 id="HeaderDrawer-about-us-ergonomics" 1707 href="/pages/ergonomic-mattresses-benefits" 1708 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1709 1710 > 1711 Ergonomics 1712 </a></li><li><a 1713 id="HeaderDrawer-about-us-portfolio" 1714 href="/blogs/projects" 1715 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1716 1717 > 1718 Portfolio 1719 </a></li><li><a 1720 id="HeaderDrawer-about-us-collaborations" 1721 href="/blogs/collaborations" 1722 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1723 1724 > 1725 Collaborations 1726 </a></li></ul> 1727 </div> 1728 </div> 1729 </details></li><li><a 1730 id="HeaderDrawer-contact-us" 1731 href="/pages/contact" 1732 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 1733 1734 > 1735 CONTACT US 1736 </a></li></ul> 1737 </nav> 1738 <div class="menu-drawer__utility-links"> 1739 <ul class="list list-social list-unstyled" role="list"><li class="list-social__item"> 1740 <a href="https://it.pinterest.com/midsummermilanosocial/" class="list-social__link link"> 1741 <span class="svg-wrapper"><svg class="icon icon-pinterest" viewBox="0 0 20 20"><path fill="currentColor" d="M10 2.01a8.1 8.1 0 0 1 5.666 2.353 8.09 8.09 0 0 1 1.277 9.68A7.95 7.95 0 0 1 10 18.04a8.2 8.2 0 0 1-2.276-.307c.403-.653.672-1.24.816-1.729l.567-2.2c.134.27.393.5.768.702.384.192.768.297 1.19.297q1.254 0 2.248-.72a4.7 4.7 0 0 0 1.537-1.969c.37-.89.554-1.848.537-2.813 0-1.249-.48-2.315-1.43-3.227a5.06 5.06 0 0 0-3.65-1.374c-.893 0-1.729.154-2.478.461a5.02 5.02 0 0 0-3.236 4.552c0 .72.134 1.355.413 1.902.269.538.672.922 1.22 1.152.096.039.182.039.25 0 .066-.028.114-.096.143-.192l.173-.653c.048-.144.02-.288-.105-.432a2.26 2.26 0 0 1-.548-1.565 3.803 3.803 0 0 1 3.976-3.861c1.047 0 1.863.288 2.44.855.585.576.883 1.315.883 2.228a6.8 6.8 0 0 1-.317 2.122 3.8 3.8 0 0 1-.893 1.556c-.384.384-.836.576-1.345.576-.413 0-.749-.144-1.018-.451-.259-.307-.345-.672-.25-1.085q.22-.77.452-1.537l.173-.701c.057-.25.086-.451.086-.624 0-.346-.096-.634-.269-.855-.192-.22-.451-.336-.797-.336-.432
17410-.797.192-1.085.595-.288.394-.442.893-.442 1.499.005.374.063.746.173 1.104l.058.144c-.576 2.478-.913 3.938-1.037 4.36-.116.528-.154 1.153-.125 1.863A8.07 8.07 0 0 1 2 10.03c0-2.208.778-4.11 2.343-5.666A7.72 7.72 0 0 1 10 2.001z"/></svg> 1742</span> 1743 <span class="visually-hidden">Pinterest</span> 1744 </a> 1745 </li><li class="list-social__item"> 1746 <a href="https://www.instagram.com/midsummermilano/" class="list-social__link link"> 1747 <span class="svg-wrapper"><svg class="icon icon-instagram" viewBox="0 0 20 20"><path fill="currentColor" fill-rule="evenodd" d="M13.23 3.492c-.84-.037-1.096-.046-3.23-.046-2.144 0-2.39.01-3.238.055-.776.027-1.195.164-1.487.273a2.4 2.4 0 0 0-.912.593 2.5 2.5 0 0 0-.602.922c-.11.282-.238.702-.274 1.486-.046.84-.046 1.095-.046 3.23s.01 2.39.046 3.229c.004.51.097 1.016.274 1.495.145.365.319.639.602.913.282.282.538.456.92.602.474.176.974.268 1.479.273.848.046 1.103.046 3.238.046s2.39-.01 3.23-.046c.784-.036 1.203-.164 1.486-.273.374-.146.648-.329.921-.602.283-.283.447-.548.602-.922.177-.476.27-.979.274-1.486.037-.84.046-1.095.046-3.23s-.01-2.39-.055-3.229c-.027-.784-.164-1.204-.274-1.495a2.4 2.4 0 0 0-.593-.913 2.6 2.6 0 0 0-.92-.602c-.284-.11-.703-.237-1.488-.273ZM6.697 2.05c.857-.036 1.131-.045 3.302-.045a63 63 0 0 1 3.302.045c.664.014 1.321.14 1.943.374a4 4 0 0 1 1.414.922c.41.397.728.88.93 1.414.23.622.354 1.279.365 1.942C18 7.56 18 7.824 18 10.005c0 2.17-.01 2.444-.046 3.292-.036.858-.173 1.442-.374 1.943-.2.53-.474.976-.92 1.423a3.9 3.9 0 0 1-1.415.922c-.51.191-1.095.337-1.943.374-.857.036-1.122.045-3.302.045-2.171 0-2.445-.009-3.302-.055-.849-.027-1.432-.164-1.943-.364a4.15 4.15 0 0 1-1.414-.922 4.1 4.1 0 0 1-.93-1.423c-.183-.51-.329-1.085-.365-1.943C2.009 12.45 2 12.167 2 10.004c0-2.161 0-2.435.055-3.302.027-.848.164-1.432.365-1.942a4.4 4.4 0 0 1 .92-1.414 4.2 4.2 0 0 1 1.415-.93c.51-.183 1.094-.33 1.943-.366Zm.427 4.806a4.105 4.105 0 1 1 5.805 5.805 4.105 4.105 0 0 1-5.805-5.805m1.882 5.371a2.668 2.668 0 1 0 2.042-4.93 2.668 2.668 0 0 0-2.042 4.93m5.922-5.942a.958.958 0 1 1-1.355-1.355.958.958 0 0 1 1.355 1.355" clip-rule="evenodd"/></svg> 1748</span> 1749 <span class="visually-hidden">Instagram</span> 1750 </a> 1751 </li><li class="list-social__item"> 1752 <a class="list-social__link link list-social__link--linkedin" 1753 href="https://www.linkedin.com/company/midsummer-milano/" target="_blank" rel="noopener noreferrer" 1754 aria-label="LinkedIn"> 1755 <svg class="icon icon-linkedin" width="26" height="26" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" style="fill: currentColor; stroke: none;"> 1756 <path d="M20.452 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.356V9h3.414v1.561h.047c.476-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 1 1 0-4.124 2.062 2.062 0 0 1 0 4.124zM3.56 9h3.555v11.452H3.56V9z"/> 1757 </svg> 1758 </a> 1759 </li></ul> 1760 </div> 1761 </div> 1762 </div> 1763 </div> 1764 </details> 1765</header-drawer> 1766 1767 1768<details-modal class="header__search"> 1769 <details> 1770 <summary 1771 class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle" 1772 aria-haspopup="dialog" 1773 aria-label="Search" 1774 > 1775 <span> 1776 <span class="svg-wrapper"><svg fill="none" class="icon icon-search" viewBox="0 0 18 19"><path fill="currentColor" fill-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 1 1 2.85 3.5a5.784 5.784 0 0 1 8.18 8.18m.26 1.12a6.78 6.78 0 1 1 .72-.7l5.4 5.4a.5.5 0 1 1-.71.7z" clip-rule="evenodd"/></svg> 1777</span> 1778 <span class="svg-wrapper header__icon-close"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/>
1778</svg> 1779</span> 1780 </span> 1781 </summary> 1782 <div 1783 class="search-modal modal__content gradient" 1784 role="dialog" 1785 aria-modal="true" 1786 aria-label="Search" 1787 > 1788 <div class="modal-overlay"></div> 1789 <div 1790 class="search-modal__content search-modal__content-bottom" 1791 tabindex="-1" 1792 ><predictive-search class="search-modal__form" data-loading-text="Loading..."><form action="/search" method="get" role="search" class="search search-modal__form"> 1793 <div class="field"> 1794 <input 1795 class="search__input field__input" 1796 id="Search-In-Modal-1" 1797 type="search" 1798 name="q" 1799 value="" 1800 placeholder="Search"role="combobox" 1801 aria-expanded="false" 1802 aria-owns="predictive-search-results" 1803 aria-controls="predictive-search-results" 1804 aria-haspopup="listbox" 1805 aria-autocomplete="list" 1806 autocorrect="off" 1807 autocomplete="off" 1808 autocapitalize="off" 1809 spellcheck="false"> 1810 <label class="field__label" for="Search-In-Modal-1">Search</label> 1811 <input type="hidden" name="options[prefix]" value="last"> 1812 <button 1813 type="reset" 1814 class="reset__button field__button hidden" 1815 aria-label="Clear search term" 1816 > 1817 <span class="svg-wrapper"><svg fill="none" stroke="currentColor" class="icon icon-close" viewBox="0 0 18 18"><circle cx="9" cy="9" r="8.5" stroke-opacity=".2"/><path stroke-linecap="round" stroke-linejoin="round" d="M11.83 11.83 6.172 6.17M6.229 11.885l5.544-5.77"/></svg> 1818</span> 1819 </button> 1820 <button class="search__button field__button" aria-label="Search"> 1821 <span class="svg-wrapper"><svg fill="none" class="icon icon-search" viewBox="0 0 18 19"><path fill="currentColor" fill-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 1 1 2.85 3.5a5.784 5.784 0 0 1 8.18 8.18m.26 1.12a6.78 6.78 0 1 1 .72-.7l5.4 5.4a.5.5 0 1 1-.71.7z" clip-rule="evenodd"/></svg> 1822</span> 1823 </button> 1824 </div><div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search> 1825 1826<div class="predictive-search__loading-state"> 1827 <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg> 1828 1829</div> 1830</div> 1831 1832 <span class="predictive-search-status visually-hidden" role="status" aria-hidden="true"></span></form></predictive-search><button 1833 type="button" 1834 class="search-modal__close-button modal__close-button link link--text focus-inset" 1835 aria-label="Close" 1836 > 1837 <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg> 1838</span> 1839 </button> 1840 </div> 1841 </div> 1842 </details> 1843</details-modal> 1844<a href="/" class="header__heading-link link link--text focus-inset"><div class="header__heading-logo-wrapper"> 1845 1846 <img src="//midsummer-milano.com/cdn/shop/files/logo-midsummer-milano-450x200.png?v=1759917848&width=600" alt="Midsummer-Milano" srcset="//midsummer-milano.com/cdn/shop/files/logo-midsummer-milano-450x200.png?v=1759917848&width=230 230w, //midsummer-milano.com/cdn/shop/files/logo-midsummer-milano-450x200.png?v=1759917848&width=345 345w, //midsummer-milano.com/cdn/shop/files/logo-midsummer-milano-450x200.png?v=1759917848&width=460 460w" width="230" height="102.22222222222223" loading="eager" class="header__heading-logo motion-reduce" sizes="(max-width: 460px) 50vw, 230px"> 1847 </div></a> 1848 1849<nav class="header__inline-menu"> 1850 <ul class="list-menu list-menu--inline" role="list"><li><a 1851 id="HeaderMenu-home" 1852 href="/" 1853 class="header__menu-item list-menu__item link link--text focus-inset" 1854 1855 >
1856 <span 1857 >HOME</span> 1858 </a></li><li><a 1859 id="HeaderMenu-sleep-collections" 1860 href="/pages/sleep-collections" 1861 class="header__menu-item list-menu__item link link--text focus-inset" 1862 1863 > 1864 <span 1865 >SLEEP COLLECTIONS</span> 1866 </a></li><li><a 1867 id="HeaderMenu-loro-piana-fabrics-upholstery" 1868 href="/pages/loro-piana-interiors-beds-mattresses" 1869 class="header__menu-item list-menu__item link link--text focus-inset" 1870 1871 > 1872 <span 1873 >LORO PIANA FABRICS UPHOLSTERY</span> 1874 </a></li><li><a 1875 id="HeaderMenu-sleep-blog" 1876 href="/blogs/news" 1877 class="header__menu-item list-menu__item link link--text focus-inset" 1878 1879 > 1880 <span 1881 >SLEEP BLOG</span> 1882 </a></li><li><a 1883 id="HeaderMenu-sleep-wise-q-a" 1884 href="/pages/sleep-wise-faq" 1885 class="header__menu-item list-menu__item link link--text focus-inset" 1886 1887 > 1888 <span 1889 >SLEEP WISE Q&A</span> 1890 </a></li><li><header-menu> 1891 <details id="Details-HeaderMenu-6" class="mega-menu"> 1892 <summary 1893 id="HeaderMenu-about-us" 1894 class="header__menu-item list-menu__item link focus-inset" 1895 > 1896 <span 1897 class="header__active-menu-item" 1898 1899 >ABOUT US</span><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg> 1900</summary> 1901 <div 1902 id="MegaMenu-Content-6" 1903 class="mega-menu__content color-scheme-1 gradient motion-reduce global-settings-popup" 1904 tabindex="-1" 1905 > 1906 <ul 1907 class="mega-menu__list page-width mega-menu__list--condensed" 1908 role="list" 1909 ><li> 1910 <a 1911 id="HeaderMenu-about-us-our-story" 1912 href="/pages/about-midsummer-milano" 1913 class="mega-menu__link mega-menu__link--level-2 link mega-menu__link--active" 1914 1915 aria-current="page" 1916 1917 > 1918 Our Story 1919 </a></li><li> 1920 <a 1921 id="HeaderMenu-about-us-sustainability" 1922 href="/pages/our-eco-friendly-approach" 1923 class="mega-menu__link mega-menu__link--level-2 link" 1924 1925 > 1926 Sustainability 1927 </a></li><li> 1928 <a 1929 id="HeaderMenu-about-us-ergonomics" 1930 href="/pages/ergonomic-mattresses-benefits" 1931 class="mega-menu__link mega-menu__link--level-2 link" 1932 1933 > 1934 Ergonomics 1935 </a></li><li> 1936 <a 1937 id="HeaderMenu-about-us-portfolio" 1938 href="/blogs/projects" 1939 class="mega-menu__link mega-menu__link--level-2 link" 1940 1941 > 1942 Portfolio 1943 </a></li><li> 1944 <a 1945 id="HeaderMenu-about-us-collaborations" 1946 href="/blogs/collaborations" 1947 class="mega-menu__link mega-menu__link--level-2 link" 1948 1949 > 1950 Collaborations 1951 </a></li></ul> 1952 </div> 1953 </details> 1954 </header-menu></li><li><a 1955 id="HeaderMenu-contact-us" 1956 href="/pages/contact" 1957 class="header__menu-item list-menu__item link link--text focus-inset" 1958 1959 >
1960 <span 1961 >CONTACT US</span> 1962 </a></li></ul> 1963</nav> 1964 1965<div class="header__icons"> 1966 <div class="desktop-localization-wrapper"> 1967</div> 1968 1969 1970 1971<details-modal class="header__search"> 1972 <details> 1973 <summary 1974 class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle" 1975 aria-haspopup="dialog" 1976 aria-label="Search" 1977 > 1978 <span> 1979 <span class="svg-wrapper"><svg fill="none" class="icon icon-search" viewBox="0 0 18 19"><path fill="currentColor" fill-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 1 1 2.85 3.5a5.784 5.784 0 0 1 8.18 8.18m.26 1.12a6.78 6.78 0 1 1 .72-.7l5.4 5.4a.5.5 0 1 1-.71.7z" clip-rule="evenodd"/></svg> 1980</span> 1981 <span class="svg-wrapper header__icon-close"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg> 1982</span> 1983 </span> 1984 </summary> 1985 <div 1986 class="search-modal modal__content gradient" 1987 role="dialog" 1988 aria-modal="true" 1989 aria-label="Search" 1990 > 1991 <div class="modal-overlay"></div> 1992 <div 1993 class="search-modal__content search-modal__content-bottom" 1994 tabindex="-1" 1995 ><predictive-search class="search-modal__form" data-loading-text="Loading..."><form action="/search" method="get" role="search" class="search search-modal__form"> 1996 <div class="field"> 1997 <input 1998 class="search__input field__input" 1999 id="Search-In-Modal" 2000 type="search" 2001 name="q" 2002 value="" 2003 placeholder="Search"role="combobox" 2004 aria-expanded="false" 2005 aria-owns="predictive-search-results" 2006 aria-controls="predictive-search-results" 2007 aria-haspopup="listbox" 2008 aria-autocomplete="list" 2009 autocorrect="off" 2010 autocomplete="off" 2011 autocapitalize="off" 2012 spellcheck="false"> 2013 <label class="field__label" for="Search-In-Modal">Search</label> 2014 <input type="hidden" name="options[prefix]" value="last"> 2015 <button 2016 type="reset" 2017 class="reset__button field__button hidden" 2018 aria-label="Clear search term" 2019 > 2020 <span class="svg-wrapper"><svg fill="none" stroke="currentColor" class="icon icon-close" viewBox="0 0 18 18"><circle cx="9" cy="9" r="8.5" stroke-opacity=".2"/><path stroke-linecap="round" stroke-linejoin="round" d="M11.83 11.83 6.172 6.17M6.229 11.885l5.544-5.77"/></svg> 2021</span> 2022 </button> 2023 <button class="search__button field__button" aria-label="Search"> 2024 <span class="svg-wrapper"><svg fill="none" class="icon icon-search" viewBox="0 0 18 19"><path fill="currentColor" fill-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 1 1 2.85 3.5a5.784 5.784 0 0 1 8.18 8.18m.26 1.12a6.78 6.78 0 1 1 .72-.7l5.4 5.4a.5.5 0 1 1-.71.7z" clip-rule="evenodd"/></svg> 2025</span> 2026 </button> 2027 </div><div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search> 2028 2029<div class="predictive-search__loading-state"> 2030 <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg> 2031 2032</div> 2033</div> 2034 2035 <span class="predictive-search-status visually-hidden" role="status" aria-hidden="true"></span></form></predictive-search><button 2036 type="button" 2037 class="search-modal__close-button modal__close-button link link--text focus-inset" 2038 aria-label="Close" 2039 > 2040 <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/>
2040</svg> 2041</span> 2042 </button> 2043 </div> 2044 </div> 2045 </details> 2046</details-modal> 2047 2048<button class="msm-enquire-trigger" 2049 type="button" 2050 data-enquire-open 2051 aria-haspopup="dialog" 2052 aria-controls="msm-enquire-panel"> 2053 <span class="msm-enquire-trigger__icon" aria-hidden="true"> 2054 <!-- icon follows currentColor so it matches your header ink --> 2055 <svg viewBox="0 0 24 24" width="20" height="20" fill="none" 2056 stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"> 2057 <path d="M20 14c0 1.1-.9 2-2 2H9l-4 3V6c0-1.1.9-2 2-2h11c1.1 0 2 .9 2 2v8Z"/> 2058 </svg> 2059 </span> 2060 <span class="msm-enquire-trigger__label">Enquire</span> 2061</button> 2062 2063<style> 2064 /* Inherit the headerâs foreground colour across desktop & mobile */ 2065 .msm-enquire-trigger{ 2066 --ink: rgba(var(--color-foreground,0,0,0), .92); 2067 --ink-hover: rgba(var(--color-foreground,0,0,0), 1); 2068 --ring: rgba(var(--color-foreground,0,0,0), .25); 2069 2070 display:inline-flex; 2071 align-items:center; 2072 gap:.55rem; 2073 2074 color:var(--ink); 2075 background:transparent; 2076 border:1px solid rgba(var(--color-foreground,0,0,0), .15); 2077 border-radius:999px; 2078 padding:.5rem .9rem; 2079 line-height:1; 2080 cursor:pointer; 2081 -webkit-tap-highlight-color:transparent; 2082 } 2083 .msm-enquire-trigger:hover{ 2084 color:var(--ink-hover); 2085 border-color:rgba(var(--color-foreground,0,0,0), .28); 2086 background:rgba(var(--color-foreground,0,0,0), .04); 2087 } 2088 .msm-enquire-trigger:focus-visible{ 2089 outline:2px solid var(--ring); 2090 outline-offset:2px; 2091 } 2092 2093 .msm-enquire-trigger__label{ 2094 font-size:12px; 2095 letter-spacing:.06em; 2096 text-transform:uppercase; 2097 } 2098 .msm-enquire-trigger__icon svg{ 2099 display:block; 2100 stroke:currentColor; /* important: match header colour */ 2101 } 2102 2103 /* Mobile: icon-only, tighter padding */ 2104 @media (max-width:749px){ 2105 .msm-enquire-trigger{ padding:.45rem .6rem; } 2106 .msm-enquire-trigger__label{ display:none; } 2107 } 2108</style> 2109 2110 <a href="/cart" class="header__icon header__icon--cart link focus-inset" id="cart-icon-bubble"> 2111 2112 <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-cart-empty" viewBox="0 0 40 40"><path fill="currentColor" fill-rule="evenodd" d="M15.75 11.8h-3.16l-.77 11.6a5 5 0 0 0 4.99 5.34h7.38a5 5 0 0 0 4.99-5.33L28.4 11.8zm0 1h-2.22l-.71 10.67a4 4 0 0 0 3.99 4.27h7.38a4 4 0 0 0 4-4.27l-.72-10.67h-2.22v.63a4.75 4.75 0 1 1-9.5 0zm8.5 0h-7.5v.63a3.75 3.75 0 1 0 7.5 0z"/></svg> 2113</span> 2114 2115 <span class="visually-hidden">Cart</span></a> 2116 </div> 2117 </header> 2118</sticky-header> 2119 2120<cart-notification> 2121 <div class="cart-notification-wrapper page-width"> 2122 <div 2123 id="cart-notification" 2124 class="cart-notification focus-inset color-scheme-1 gradient" 2125 aria-modal="true" 2126 aria-label="Item added to your cart" 2127 role="dialog" 2128 tabindex="-1" 2129 > 2130 <div class="cart-notification__header"> 2131 <h2 class="cart-notification__heading caption-large text-body"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg> 2132Item added to your cart 2133 </h2> 2134 <button 2135 type="button" 2136 class="cart-notification__close modal__close-button link link--text focus-inset" 2137 aria-label="Close" 2138 > 2139 <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg> 2140</span> 2141 </button> 2142 </div> 2143 <div id="cart-notification-product" class="cart-notification-product"></div> 2144 <div class="cart-notification__links"> 2145 <a 2146 href="/cart" 2147 id="cart-notification-button" 2148 class="button button--secondary button--full-width" 2149 >
2149View cart</a> 2150 <form action="/cart" method="post" id="cart-notification-form"> 2151 <button class="button button--primary button--full-width" name="checkout"> 2152 Check out 2153 </button> 2154 </form> 2155 <button type="button" class="link button-label">Continue shopping</button> 2156 </div> 2157 </div> 2158 </div> 2159</cart-notification> 2160<style data-shopify> 2161 .cart-notification { 2162 display: none; 2163 } 2164</style> 2165 2166</div> 2167<!-- END sections: header-group --> 2168 2169 <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1"><section id="shopify-section-template--26829674348880__main" class="shopify-section section"><link href="//midsummer-milano.com/cdn/shop/t/39/assets/section-main-page.aio.min.css?v=167815900699876092071785838404" rel="stylesheet" type="text/css" media="all" /> 2170<style data-shopify>.section-template--26829674348880__main-padding { 2171 padding-top: 0px; 2172 padding-bottom: 0px; 2173 } 2174 2175 @media screen and (min-width: 750px) { 2176 .section-template--26829674348880__main-padding { 2177 padding-top: 0px; 2178 padding-bottom: 0px; 2179 } 2180 }</style><div class="page-width page-width--narrow section-template--26829674348880__main-padding"> 2181 <h1 class="main-page-title page-title h0 scroll-trigger animate--fade-in"> 2182 About Us 2183 </h1>
2184 <div class="rte scroll-trigger animate--slide-in"> 2185 <style> 2186 /* Kill spacing from any empty theme media wrappers on this section */ 2187 #about-founder .global-media-settings.media--landscape, 2188 #about-founder .video-wrapper { 2189 padding: 0 !important; 2190 min-height: 0 !important; 2191 height: auto !important; 2192 margin: 0 !important; 2193 border: 0 !important; 2194 } 2195 #about-founder .global-media-settings.media--landscape:empty, 2196 #about-founder .global-media-settings.media--landscape > br, 2197 #about-founder .video-wrapper:empty { display: none !important; } 2198 </style> 2199<section id="about-founder" class="rte rte-width content-container" aria-labelledby="about-founder-title"> 2200<h2 class="h2 center" id="about-founder-title">Chiara Mennini â Founder & Creative Director</h2> 2201<!-- Use a plain figure so the theme doesn't inject a ratio box --> 2202<figure style="max-width: 1026px; margin: 1rem auto; text-align: center;"><img alt="" src="https://cdn.shopify.com/s/files/1/0697/8829/files/chiara-mennini-midsummer-milano-1.jpg?v=1613524538"><br></figure> 2203<h3 class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><strong>Why Midsummer Milano exists, in the words of the founder</strong></h3> 2204<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">I am an architect. I have spent my career thinking about space,  how light enters a room, how materials age, how proportions make you feel at home before you even understand why.</p> 2205<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">At some point I started asking a question that seemed almost too obvious: why does the bed,  the place where we spend a third of our lives,  get treated as a technical product from a catalogue?</p> 2206<p class="font-claude-response-body break-words whitespace-pre-wrap leading-[1.7]">A sofa gets specified. A kitchen gets designed. A floor gets chosen with care. The bed gets ordered.</p> 2207<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">That disconnect between the way we design spaces and the way we treat sleep is what gave rise to Midsummer Milano. Not to make a better mattress, but to design sleep as a system  with the same rigour, the same material intelligence, the same attention to proportion I would bring to any architectural project.</p> 2208<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Every piece is built by hand, from start to finish, by the same two Italian artisans. Two or three full days of work per mattress. This is not a marketing promise, it is a method.</p> 2209<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">The materials we use: wool, silk, cashmere, horsehair, linen, Ingeo are chosen  because they perform better, age better, breathe better. When we upholster our systems in Loro Piana Interiors fabrics, we do so because we share the same idea of quality: not as an effect, but as the consequence of every choice made along the way.</p> 2210<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Midsummer Milano exists for those who treat rest with the same care they give to the rest of their lives.</p> 2211<hr class="border-border-200 border-t-0.5 my-3 mx-1.5"></section> 2212 </div> 2213</div> 2214 2215 2216<style> #shopify-section-template--26829674348880__main .page-width {max-width: 1440px; padding-left: 48px; padding-right: 48px;} #shopify-section-template--26829674348880__main .rte {max-width: 100%;} #shopify-section-template--26829674348880__main .lp-interiors-page .lp-container {max-width: 1320px; margin: 0 auto; padding-left: 0; padding-right: 0;} #shopify-section-template--26829674348880__main .lp-interiors-page .lp-hero, #shopify-section-template--26829674348880__main .lp-interiors-page .lp-intro, #shopify-section-template--26829674348880__main .lp-interiors-page .lp-closing {max-width: 980px;} #shopify-section-template--26829674348880__main h1.main-page-title.page-title {display: none;} </style></section> 2217 </main> 2218 2219 <!-- BEGIN sections: footer-group --> 2220<div id="shopify-section-sections--26829675397456__footer" class="shopify-section shopify-section-group-footer-group"> 2221<link href="//midsummer-milano.com/cdn/shop/t/39/assets/section-footer.aio.min.css?v=131002400714763922701785838399" rel="stylesheet" type="text/css" media="all" /> 2222<link href="//midsummer-milano.com/cdn/shop/t/39/assets/component-newsletter.aio.min.css?v=26258768606119961581785838201" rel="stylesheet" type="text/css" media="all" /> 2223<link href="//midsummer-milano.com/cdn/shop/t/39/assets/component-list-menu.aio.min.css?v=122630261541881302921785838184" rel="stylesheet" type="text/css" media="all" /> 2224<link href="//midsummer-milano.com/cdn/shop/t/39/assets/component-list-payment.aio.min.css?v=134199657275538914761785838186" rel="stylesheet" type="text/css" media="all" /> 2225<link href="//midsummer-milano.com/cdn/shop/t/39/assets/component-list-social.aio.min.css?v=119763011076747161041785838188" rel="stylesheet" type="text/css" media="all" /> 2226<style data-shopify>.footer { 2227 margin-top: 0px; 2228 } 2229 2230 .section-sections--26829675397456__footer-padding { 2231 padding-top: 27px; 2232 padding-bottom: 27px; 2233 } 2234 2235 @media screen and (min-width: 750px) { 2236 .footer { 2237 margin-top: 0px; 2238 } 2239 2240 .section-sections--26829675397456__footer-padding { 2241 padding-top: 36px; 2242 padding-bottom: 36px; 2243 } 2244 }</style><footer class="footer color-scheme-1 gradient section-sections--26829675397456__footer-padding">
2244<div class="footer__content-top page-width"><div 2245 class="footer__blocks-wrapper grid grid--1-col grid--2-col grid--4-col-tablet scroll-trigger animate--slide-in" 2246 2247 data-cascade 2248 2249 ><div 2250 class="footer-block grid__item footer-block--menu scroll-trigger animate--slide-in" 2251 2252 2253 data-cascade 2254 style="--animation-order: 1;" 2255 2256 ><ul class="footer-block__details-content list-unstyled"><li> 2257 <a 2258 href="/pages/agents-and-resellers" 2259 class="link link--text list-menu__item list-menu__item--link" 2260 > 2261 Agents & Resellers 2262 </a> 2263 </li><li> 2264 <a 2265 href="/pages/product-maintenance-and-care" 2266 class="link link--text list-menu__item list-menu__item--link" 2267 > 2268 Care and Maintenance 2269 </a> 2270 </li><li> 2271 <a 2272 href="/pages/customer-assistance" 2273 class="link link--text list-menu__item list-menu__item--link" 2274 > 2275 Customer Care 2276 </a> 2277 </li><li> 2278 <a 2279 href="/pages/terms-and-conditions" 2280 class="link link--text list-menu__item list-menu__item--link" 2281 > 2282 Terms and Conditions 2283 </a> 2284 </li><li> 2285 <a 2286 href="/pages/privacy-and-legal" 2287 class="link link--text list-menu__item list-menu__item--link" 2288 > 2289 Privacy and Legal 2290 </a> 2291 </li><li> 2292 <a 2293 href="/pages/cookie-policy" 2294 class="link link--text list-menu__item list-menu__item--link" 2295 > 2296 Cookie Policy 2297 </a> 2298 </li></ul></div><div 2299 class="footer-block grid__item scroll-trigger animate--slide-in" 2300 2301 2302 data-cascade 2303 style="--animation-order: 2;" 2304 2305 ><div class="footer-block__brand-info"><h2 class="footer-block__heading rte">Midsummer-Milano</h2><div class="rte"><h5><a href="mailto:[email protected]" target="_blank" title="[email protected]">[email protected]</a><br/>Via Andegari, 4<br/>20121 Milano, Italy<br/>VAT Number 02282810999</h5><h6></h6></div> 2306 2307<ul class="list-unstyled list-social footer__list-social" role="list"><li class="list-social__item"> 2308 <a href="https://www.instagram.com/midsummermilano/" class="link list-social__link"> 2309 <span class="svg-wrapper"><svg class="icon icon-instagram" viewBox="0 0 20 20"><path fill="currentColor" fill-rule="evenodd" d="M13.23 3.492c-.84-.037-1.096-.046-3.23-.046-2.144 0-2.39.01-3.238.055-.776.027-1.195.164-1.487.273a2.4 2.4 0 0 0-.912.593 2.5 2.5 0 0 0-.602.922c-.11.282-.238.702-.274 1.486-.046.84-.046 1.095-.046 3.23s.01 2.39.046 3.229c.004.51.097 1.016.274 1.495.145.365.319.639.602.913.282.282.538.456.92.602.474.176.974.268 1.479.273.848.046 1.103.046 3.238.046s2.39-.01 3.23-.046c.784-.036 1.203-.164 1.486-.273.374-.146.648-.329.921-.602.283-.283.447-.548.602-.922.177-.476.27-.979.274-1.486.037-.84.046-1.095.046-3.23s-.01-2.39-.055-3.229c-.027-.784-.164-1.204-.274-1.495a2.4 2.4 0 0 0-.593-.913 2.6 2.6 0 0 0-.92-.602c-.284-.11-.703-.237-1.488-.273ZM6.697 2.05c.857-.036 1.131-.045 3.302-.045a63 63 0 0 1 3.302.045c.664.014 1.321.14 1.943.374a4 4 0 0 1 1.414.922c.41.397.728.88.93 1.414.23.622.354 1.279.365 1.942C18 7.56 18 7.824 18 10.005c0 2.17-.01 2.444-.046 3.292-.036.858-.173 1.442-.374 1.943-.2.53-.474.976-.92 1.423a3.9 3.9 0 0 1-1.415.922c-.51.191-1.095.337-1.943.374-.857.036-1.122.045-3.302.045-2.171 0-2.445-.009-3.302-.055-.849-.027-1.432-.164-1.943-.364a4.15 4.15 0 0 1-1.414-.922 4.1 4.1 0 0 1-.93-1.423c-.183-.51-.329-1.085-.365-1.943C2.009 12.45 2 12.167 2 10.004c0-2.161 0-2.435.055-3.302.027-.848.164-1.432.365-1.942a4.4 4.4 0 0 1 .92-1.414 4.2 4.2 0 0 1 1.415-.93c.51-.183 1.094-.33 1.943-.366Zm.427 4.806a4.105 4.105 0 1 1 5.805 5.805 4.105 4.105 0 0 1-5.805-5.805m1.882 5.371a2.668 2.668 0 1 0 2.042-4.93 2.668 2.668 0 0 0-2.042 4.93m5.922-5.942a.958.958 0 1 1-1.355-1.355.958.958 0 0 1 1.355 1.355" clip-rule="evenodd"/></svg> 2310</span>
2311 <span class="visually-hidden">Instagram</span> 2312 </a> 2313 </li><li class="list-social__item"> 2314 <a class="list-social__link list-social__link--linkedin" 2315 href="https://www.linkedin.com/company/midsummer-milano/" target="_blank" rel="noopener noreferrer" 2316 aria-label="LinkedIn"> 2317 <svg class="icon icon-linkedin" width="26" height="26" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" style="fill: currentColor; stroke: none;"> 2318 <path d="M20.452 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.356V9h3.414v1.561h.047c.476-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 1 1 0-4.124 2.062 2.062 0 0 1 0 4.124zM3.56 9h3.555v11.452H3.56V9z"/> 2319 </svg> 2320 </a> 2321 </li><li class="list-social__item"> 2322 <a href="https://it.pinterest.com/midsummermilanosocial/" class="link list-social__link"> 2323 <span class="svg-wrapper"><svg class="icon icon-pinterest" viewBox="0 0 20 20"><path fill="currentColor" d="M10 2.01a8.1 8.1 0 0 1 5.666 2.353 8.09 8.09 0 0 1 1.277 9.68A7.95 7.95 0 0 1 10 18.04a8.2 8.2 0 0 1-2.276-.307c.403-.653.672-1.24.816-1.729l.567-2.2c.134.27.393.5.768.702.384.192.768.297 1.19.297q1.254 0 2.248-.72a4.7 4.7 0 0 0 1.537-1.969c.37-.89.554-1.848.537-2.813 0-1.249-.48-2.315-1.43-3.227a5.06 5.06 0 0 0-3.65-1.374c-.893 0-1.729.154-2.478.461a5.02 5.02 0 0 0-3.236 4.552c0 .72.134 1.355.413 1.902.269.538.672.922 1.22 1.152.096.039.182.039.25 0 .066-.028.114-.096.143-.192l.173-.653c.048-.144.02-.288-.105-.432a2.26 2.26 0 0 1-.548-1.565 3.803 3.803 0 0 1 3.976-3.861c1.047 0 1.863.288 2.44.855.585.576.883 1.315.883 2.228a6.8 6.8 0 0 1-.317 2.122 3.8 3.8 0 0 1-.893 1.556c-.384.384-.836.576-1.345.576-.413 0-.749-.144-1.018-.451-.259-.307-.345-.672-.25-1.085q.22-.77.452-1.537l.173-.701c.057-.25.086-.451.086-.624 0-.346-.096-.634-.269-.855-.192-.22-.451-.336-.797-.336-.432 0-.797.192-1.085.595-.288.394-.442.893-.442 1.499.005.374.063.746.173 1.104l.058.144c-.576 2.478-.913 3.938-1.037 4.36-.116.528-.154 1.153-.125 1.863A8.07 8.07 0 0 1 2 10.03c0-2.208.778-4.11 2.343-5.666A7.72 7.72 0 0 1 10 2.001z"/></svg> 2324</span> 2325 <span class="visually-hidden">Pinterest</span> 2326 </a> 2327 </li><li class="list-social__item"> 2328 <a class="list-social__link list-social__link--whatsapp" 2329 href="https://wa.me/message/CAC4ZAEYHOTHN1" target="_blank" rel="noopener" 2330 aria-label="WhatsApp"> 2331 <svg class="icon icon-whatsapp" viewBox="-1 -1 20 20" aria-hidden="true" focusable="false"> 2332 <path d="M13.601 2.326A7.85 7.85 0 0 0 7.994 0C3.627 0 .068 3.558.064 7.926c0 1.399.366 2.76 1.057 3.965L0 16l4.204-1.102a7.9 7.9 0 0 0 3.79.965h.004c4.368 0 7.926-3.558 7.93-7.93A7.9 7.9 0 0 0 13.6 2.326zM7.994 14.521a6.6 6.6 0 0 1-3.356-.92l-.24-.144-2.494.654.666-2.433-.156-.251a6.56 6.56 0 0 1-1.007-3.505c0-3.626 2.957-6.584 6.591-6.584a6.56 6.56 0 0 1 4.66 1.931 6.56 6.56 0 0 1 1.928 4.66c-.004 3.639-2.961 6.592-6.592 6.592m3.615-4.934c-.197-.099-1.17-.578-1.353-.646-.182-.065-.315-.099-.445.099-.133.197-.513.646-.627.775-.114.133-.232.148-.43.05-.197-.1-.836-.308-1.592-.985-.59-.525-.985-1.175-1.103-1.372-.114-.198-.011-.304.088-.403.087-.088.197-.232.296-.346.1-.114.133-.198.198-.33.065-.134.034-.248-.015-.347-.05-.099-.445-1.076-.612-1.47-.16-.389-.323-.335-.445-.34-.114-.007-.247-.007-.38-.007a.73.73 0 0 0-.529.247c-.182.198-.691.677-.691 1.654s.71 1.916.81 2.049c.098.133 1.394 2.132 3.383 2.992.47.205.84.326 1.129.418.475.152.904.129 1.246.08.38-.058 1.171-.48 1.338-.943.164-.464.164-.86.114-.943-.049-.084-.182-.133-.38-.232"/> 2333</svg> 2334 </a> 2335 </li></ul> 2336</div></div></div><div 2337 class="footer-block--newsletter scroll-trigger animate--slide-in" 2338 2339 data-cascade 2340 2341 ></div> 2342 </div><div 2343 class="footer__content-bottom scroll-trigger animate--slide-in" 2344 2345 data-cascade 2346 2347 > 2348 <div class="footer__content-bottom-wrapper page-width"> 2349 <div class="footer__column footer__localization isolate"><localization-form><form method="post" action="/localization" id="FooterLanguageForm" accept-charset="UTF-8" class="localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/pages/about-midsummer-milano" /><div> 2350 <h2 class="caption-large text-body" id="FooterLanguageLabel"> 2351 Language 2352 </h2><div class="disclosure"> 2353 <button 2354 type="button" 2355 class="disclosure__button localization-form__select localization-selector link link--text caption-large" 2356 aria-expanded="false" 2357 aria-controls="FooterLanguageList" 2358 aria-describedby="FooterLanguageLabel" 2359 > 2360 <span>English</span> 2361 <svg class="icon icon-caret" viewBox="0 0 10 6">
2361<path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg> 2362 2363 </button> 2364 <div class="disclosure__list-wrapper language-selector" hidden> 2365 <ul id="FooterLanguageList" role="list" class="disclosure__list list-unstyled"><li class="disclosure__item" tabindex="-1"> 2366 <a 2367 class="link link--text disclosure__link caption-large focus-inset" 2368 href="#" 2369 hreflang="en" 2370 lang="en" 2371 2372 aria-current="true" 2373 2374 data-value="en" 2375 > 2376 <span 2377 2378 ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg> 2379</span> 2380 <span> 2381 English 2382 </span> 2383 </a> 2384 </li><li class="disclosure__item" tabindex="-1"> 2385 <a 2386 class="link link--text disclosure__link caption-large focus-inset" 2387 href="#" 2388 hreflang="it" 2389 lang="it" 2390 2391 data-value="it" 2392 > 2393 <span 2394 2395 class="visibility-hidden" 2396 2397 ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg> 2398</span> 2399 <span> 2400 Italiano 2401 </span> 2402 </a> 2403 </li><li class="disclosure__item" tabindex="-1"> 2404 <a 2405 class="link link--text disclosure__link caption-large focus-inset" 2406 href="#" 2407 hreflang="ru" 2408 lang="ru" 2409 2410 data-value="ru" 2411 > 2412 <span 2413 2414 class="visibility-hidden" 2415 2416 ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg> 2417</span> 2418 <span> 2419 Ð ÑÑÑкий 2420 </span> 2421 </a> 2422 </li></ul> 2423 </div> 2424</div> 2425<input type="hidden" name="locale_code" value="en"> 2426</div></form></localization-form></div> 2427 <div class="footer__column footer__column--info"></div> 2428 </div> 2429 <div class="footer__content-bottom-wrapper page-width"> 2430 <div class="footer__copyright caption"> 2431 <small class="copyright__content" 2432 >© 2026, <a href="/" title="">Midsummer-Milano</a></small> 2433 <small class="copyright__content"><a target="_blank" rel="nofollow" href="https://www.shopify.com?utm_campaign=poweredby&utm_medium=shopify&utm_source=onlinestore">Powered by Shopify</a></small></div> 2434 </div> 2435 </div> 2436</footer> 2437 2438 2439</div> 2440<!-- END sections: footer-group --> 2441 2442 <ul hidden> 2443 <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li> 2444 <li id="a11y-new-window-message">Opens in a new window.</li> 2445 </ul> 2446 2447
2447<script> 2448 window.shopUrl = 'https://midsummer-milano.com'; 2449 window.routes = { 2450 cart_add_url: '/cart/add', 2451 cart_change_url: '/cart/change', 2452 cart_update_url: '/cart/update', 2453 cart_url: '/cart', 2454 predictive_search_url: '/search/suggest', 2455 }; 2456 2457 window.cartStrings = { 2458 error: `There was an error while updating your cart. Please try again.`, 2459 quantityError: `You can only add [quantity] of this item to your cart.`, 2460 }; 2461 2462 window.variantStrings = { 2463 addToCart: `Add to cart`, 2464 soldOut: `Sold out`, 2465 unavailable: `Unavailable`, 2466 unavailable_with_option: `[value] - Unavailable`, 2467 }; 2468 2469 window.quickOrderListStrings = { 2470 itemsAdded: `[quantity] items added`, 2471 itemAdded: `[quantity] item added`, 2472 itemsRemoved: `[quantity] items removed`, 2473 itemRemoved: `[quantity] item removed`, 2474 viewCart: `View cart`, 2475 each: `[money]/ea`, 2476 min_error: `This item has a minimum of [min]`, 2477 max_error: `This item has a maximum of [max]`, 2478 step_error: `You can only add this item in increments of [step]`, 2479 }; 2480 2481 window.accessibilityStrings = { 2482 imageAvailable: `Image [index] is now available in gallery view`, 2483 shareSuccess: `Link copied to clipboard`, 2484 pauseSlideshow: `Pause slideshow`, 2485 playSlideshow: `Play slideshow`, 2486 recipientFormExpanded: `Gift card recipient form expanded`, 2487 recipientFormCollapsed: `Gift card recipient form collapsed`, 2488 countrySelectorSearchCount: `[count] countries/regions found`, 2489 }; 2490 </script>
2490<script src="//midsummer-milano.com/cdn/shop/t/39/assets/predictive-search.aio.min.js?v=10202197942234924671785838358" defer="defer"></script>
2490<div id="shopify-section-enquire-panel" class="shopify-section"> 2491 2492<div id="msm-enquire-overlay" class="msm-enquire__overlay" data-enquire-close aria-hidden="true"></div> 2493 2494<aside id="msm-enquire-panel" 2495 class="msm-enquire__panel" 2496 role="dialog" 2497 aria-modal="true" 2498 aria-labelledby="msm-enquire-title" 2499 aria-hidden="true"> 2500 <header class="msm-enquire__header"> 2501 <h2 id="msm-enquire-title">Please proceed with your enquiry.</h2> 2502 <button class="msm-enquire__close" type="button" aria-label="Close" data-enquire-close> 2503 <svg width="18" height="18" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 2504 <path d="M6 6l12 12M18 6L6 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/> 2505 </svg> 2506 </button> 2507 </header> 2508 2509 <div class="msm-enquire__tabs" role="tablist" aria-label="Enquire"> 2510 <button class="msm-tab is-active" role="tab" aria-selected="true" aria-controls="pane-brochure-enquire-panel" id="tab-brochure-enquire-panel">Request brochure</button> 2511 <button class="msm-tab" role="tab" aria-selected="false" aria-controls="pane-appointment-enquire-panel" id="tab-appointment-enquire-panel">Book appointment</button> 2512 <button class="msm-tab" role="tab" aria-selected="false" aria-controls="pane-callback-enquire-panel" id="tab-callback-enquire-panel">Request callback</button> 2513 <button class="msm-tab" role="tab" aria-selected="false" aria-controls="pane-message-enquire-panel" id="tab-message-enquire-panel">Leave a message</button> 2514 </div> 2515 2516 <div class="msm-enquire__body"> 2517 2518 2519 2520 2521 2522 <!-- Brochure --> 2523 <div class="msm-pane is-active" id="pane-brochure-enquire-panel" role="tabpanel" aria-labelledby="tab-brochure-enquire-panel"> 2524 <form method="post" action="" class="msm-form" novalidate id="msm-brochure-form-enquire-panel" data-brochure="https://cdn.shopify.com/s/files/1/0697/8829/files/Midsummer-Milano_Brochure.pdf?v=1733221759"> 2525 <input type="hidden" name="form_type" value="contact"> 2526 <input type="hidden" name="utf8" value="â"> 2527 <input type="hidden" name="contact[tags]" value="Enquiry, Brochure"> 2528 <input type="hidden" name="contact[subject]" value="Brochure request"> 2529 2530 <div class="msm-grid"> 2531 <div class="msm-field"> 2532 <label for="bro-title-enquire-panel">Title*</label> 2533 <select id="bro-title-enquire-panel" name="contact[Title]" required> 2534 <option value="" disabled selected>Select</option> 2535 <option>Mr.</option><option>Mrs.</option><option>Ms.</option><option>Dr.</option><option>Prof.</option><option>Other</option> 2536 </select> 2537 </div> 2538 <div class="msm-field"> 2539 <label for="bro-first-enquire-panel">First name*</label> 2540 <input id="bro-first-enquire-panel" name="contact[First name]" required> 2541 </div> 2542 <div class="msm-field"> 2543 <label for="bro-last-enquire-panel">Last name*</label> 2544 <input id="bro-last-enquire-panel" name="contact[Last name]" required> 2545 </div> 2546 <div class="msm-field"> 2547 <label for="bro-email-enquire-panel">Email*</label> 2548 <input id="bro-email-enquire-panel" type="email" name="contact[email]" required> 2549 </div> 2550 <div class="msm-field"> 2551 <label for="bro-city-enquire-panel">City</label> 2552 <input id="bro-city-enquire-panel" name="contact[City]"> 2553 </div> 2554 <div class="msm-field"> 2555 <label for="bro-type-enquire-panel">Enquiry type*</label> 2556 <select id="bro-type-enquire-panel" name="contact[Enquiry type]" required> 2557 <option value="" selected disabled>Choose your enquiry type</option> 2558 <option>General</option><option>Trade</option><option>Press</option> 2559 </select> 2560 </div> 2561 <div class="msm-field msm-field--full"> 2562 <label for="bro-hear-enquire-panel">How did you hear about us?</label> 2563 <input id="bro-hear-enquire-panel" name="contact[How did you hear about us]"> 2564 </div> 2565 </div> 2566 2567 <label class="msm-consent"> 2568 <input type="checkbox" required>
2569 <span>By clicking âsubmitâ you agree to our 2570 2571 <a href="/pages/terms-and-conditions" target="_blank" rel="noopener">terms and conditions</a> 2572 and 2573 2574 <a href="/pages/privacy-and-legal" target="_blank" rel="noopener">privacy policy</a> 2575 . 2576 </span> 2577 </label> 2578 2579 <button type="submit" class="msm-btn">Submit</button> 2580 <p class="msm-success msm-hide" id="brochure-success-enquire-panel" aria-live="polite">Thank you for your interest in Midsummer-Milano. Your brochure will open shortly.</p> 2581 <p class="msm-error msm-hide" id="brochure-error-enquire-panel" aria-live="assertive">Sorry, something went wrong. Please try again.</p> 2582 </form> 2583 </div> 2584 2585 <!-- Appointment --> 2586 <div class="msm-pane" id="pane-appointment-enquire-panel" role="tabpanel" aria-labelledby="tab-appointment-enquire-panel"> 2587 <form method="post" action="" class="msm-form" novalidate id="msm-appointment-form-enquire-panel"> 2588 <input type="hidden" name="form_type" value="contact"> 2589 <input type="hidden" name="utf8" value="â"> 2590 <input type="hidden" name="contact[tags]" value="Enquiry, Appointment"> 2591 <input type="hidden" name="contact[subject]" value="Appointment request"> 2592 2593 <div class="msm-grid"> 2594 <div class="msm-field"> 2595 <label for="app-title-enquire-panel">Title*</label> 2596 <select id="app-title-enquire-panel" name="contact[Title]" required> 2597 <option value="" disabled selected>Select</option> 2598 <option>Mr.</option><option>Mrs.</option><option>Ms.</option><option>Dr.</option><option>Prof.</option><option>Other</option> 2599 </select> 2600 </div> 2601 <div class="msm-field"> 2602 <label for="app-first-enquire-panel">First name*</label> 2603 <input id="app-first-enquire-panel" name="contact[First name]" required> 2604 </div> 2605 <div class="msm-field"> 2606 <label for="app-last-enquire-panel">Last name*</label> 2607 <input id="app-last-enquire-panel" name="contact[Last name]" required> 2608 </div> 2609 <div class="msm-field"> 2610 <label for="app-email-enquire-panel">Email*</label> 2611 <input id="app-email-enquire-panel" type="email" name="contact[email]" required> 2612 </div> 2613 2614 <div class="msm-field"> 2615 <label for="app-phone-enquire-panel">Phone*</label> 2616 <div class="msm-phone-wrap"> 2617 <select class="msm-phone-code" id="app-code-enquire-panel" aria-label="Country code"></select> 2618 <input id="app-phone-enquire-panel" inputmode="tel" autocomplete="tel" name="contact[Phone]" required placeholder="Phone number"> 2619 </div> 2620 </div> 2621 2622 <div class="msm-field"> 2623 <label for="app-company-enquire-panel">Company</label> 2624 <input id="app-company-enquire-panel" name="contact[Company]"> 2625 </div> 2626 2627 <div class="msm-field msm-field--full"> 2628 <label>Showroom</label> 2629 <input id="app-showroom-enquire-panel" value="Via Andegari, 4, 20121 Milano, Italy" data-map-link="Via Andegari, 4, 20121 Milano, Italy" readonly class="msm-showroom-link"> 2630 </div> 2631 2632 <div class="msm-field"> 2633 <label for="app-date-enquire-panel">Preferred date*</label> 2634 <input id="app-date-enquire-panel" type="date" name="contact[Preferred date]" required> 2635 </div> 2636 2637 <div class="msm-field"> 2638 <label for="app-time-enquire-panel">Preferred time*</label> 2639 <select id="app-time-enquire-panel" name="contact[Preferred time]" required> 2640 <option value="" selected disabled>Select a time</option> 2641 </select> 2642 </div> 2643 2644 <div class="msm-field msm-field--full"> 2645 <label for="app-notes-enquire-panel">Notes</label> 2646 <input id="app-notes-enquire-panel" name="contact[Notes]" placeholder="Optional"> 2647 </div> 2648 2649 <div class="msm-field msm-field--full"> 2650 <label>Find us</label> 2651 <div class="msm-map"> 2652 <div id="msm-map-enquire-panel" class="msm-leaflet" data-lat="45.468492" data-lng="9.189679"></div> 2653 <a class="msm-map-open" data-open-map 2654 href="https://www.google.com/maps/dir/?api=1&destination=Via+Andegari%2C+4%2C+20121+Milano%2C+Italy" 2655 target="_blank" rel="noopener">Directions (Google Maps)</a> 2656 </div> 2657 </div> 2658 </div> 2659 2660 <p class="msm-help">Hours: MonâFri 09:00â12:00 and 13:00â18:00 (Milan time). Weâll confirm your appointment by email.</p> 2661 2662 <label class="msm-consent"> 2663 <input type="checkbox" required>
2664 <span>By clicking âsubmitâ you agree to our 2665 <a href="/pages/terms-and-conditions" target="_blank" rel="noopener">terms and conditions</a> and 2666 <a href="/pages/privacy-and-legal" target="_blank" rel="noopener">privacy policy</a>. 2667 </span> 2668 </label> 2669 2670 <button type="submit" class="msm-btn">Submit</button> 2671 <p class="msm-success msm-hide" aria-live="polite">Thank you. We have received your appointment request and will confirm by email.</p> 2672 </form> 2673 </div> 2674 2675 <!-- Callback --> 2676 <div class="msm-pane" id="pane-callback-enquire-panel" role="tabpanel" aria-labelledby="tab-callback-enquire-panel"> 2677 <form method="post" action="" class="msm-form" novalidate id="msm-callback-form-enquire-panel"> 2678 <input type="hidden" name="form_type" value="contact"> 2679 <input type="hidden" name="utf8" value="â"> 2680 <input type="hidden" name="contact[tags]" value="Enquiry, Callback"> 2681 <input type="hidden" name="contact[subject]" value="Callback request"> 2682 2683 <div class="msm-grid"> 2684 <div class="msm-field"> 2685 <label for="cb-title-enquire-panel">Title*</label> 2686 <select id="cb-title-enquire-panel" name="contact[Title]" required> 2687 <option value="" disabled selected>Select</option> 2688 <option>Mr.</option><option>Mrs.</option><option>Ms.</option><option>Dr.</option><option>Prof.</option><option>Other</option> 2689 </select> 2690 </div> 2691 <div class="msm-field"> 2692 <label for="cb-first-enquire-panel">First name*</label> 2693 <input id="cb-first-enquire-panel" name="contact[First name]" required> 2694 </div> 2695 <div class="msm-field"> 2696 <label for="cb-last-enquire-panel">Last name*</label> 2697 <input id="cb-last-enquire-panel" name="contact[Last name]" required> 2698 </div> 2699 <div class="msm-field"> 2700 <label for="cb-email-enquire-panel">Email*</label> 2701 <input id="cb-email-enquire-panel" type="email" name="contact[email]" required> 2702 </div> 2703 2704 <div class="msm-field"> 2705 <label for="cb-phone-enquire-panel">Phone*</label> 2706 <div class="msm-phone-wrap"> 2707 <select class="msm-phone-code" id="cb-code-enquire-panel" aria-label="Country code"></select> 2708 <input id="cb-phone-enquire-panel" inputmode="tel" autocomplete="tel" name="contact[Phone]" required placeholder="Phone number"> 2709 </div> 2710 </div> 2711 2712 <div class="msm-field msm-field--full"> 2713 <label for="cb-message-enquire-panel">Please tell us about your enquiry*</label> 2714 <textarea id="cb-message-enquire-panel" name="contact[Message]" required rows="3"></textarea> 2715 </div> 2716 <div class="msm-field msm-field--full"> 2717 <label for="cb-hear-enquire-panel">How did you hear about us?</label> 2718 <input id="cb-hear-enquire-panel" name="contact[How did you hear about us]"> 2719 </div> 2720 </div> 2721 2722 <label class="msm-consent"> 2723 <input type="checkbox" required> 2724 <span>By clicking âsubmitâ you agree to our 2725 <a href="/pages/terms-and-conditions" target="_blank" rel="noopener">terms and conditions</a> and 2726 <a href="/pages/privacy-and-legal" target="_blank" rel="noopener">privacy policy</a>. 2727 </span> 2728 </label> 2729 2730 <button type="submit" class="msm-btn">Submit</button> 2731 <p class="msm-success msm-hide" aria-live="polite">Thank you. We will call you back as requested.</p> 2732 </form> 2733 </div> 2734 2735 <!-- Leave a message --> 2736 <div class="msm-pane" id="pane-message-enquire-panel" role="tabpanel" aria-labelledby="tab-message-enquire-panel"> 2737 <form method="post" action="" class="msm-form" novalidate id="msm-message-form-enquire-panel"> 2738 <input type="hidden" name="form_type" value="contact"> 2739 <input type="hidden" name="utf8" value="â"> 2740 <input type="hidden" name="contact[tags]" value="Enquiry, Message"> 2741 <input type="hidden" name="contact[subject]" value="Message via site"> 2742 2743 <div class="msm-grid"> 2744 <div class="msm-field"> 2745 <label for="msg-name-enquire-panel">Name</label> 2746 <input id="msg-name-enquire-panel" name="contact[Name]" placeholder="Your name"> 2747 </div> 2748 <div class="msm-field"> 2749 <label for="msg-email-enquire-panel">Email*</label> 2750 <input id="msg-email-enquire-panel" type="email" name="contact[email]" required placeholder="[email protected]"> 2751 </div> 2752 <div class="msm-field msm-field--full"> 2753 <label for="msg-phone-enquire-panel">Phone</label> 2754 <div class="msm-phone-wrap"> 2755 <select class="msm-phone-code" id="msg-code-enquire-panel" aria-label="Country code"></select> 2756 <input id="msg-phone-enquire-panel" inputmode="tel" autocomplete="tel" name="contact[Phone]" placeholder="Phone number (optional)"> 2757 </div> 2758 </div> 2759 <div class="msm-field msm-field--full"> 2760 <label for="msg-message-enquire-panel">Message*</label> 2761 <textarea id="msg-message-enquire-panel" name="contact[Message]" required rows="4" placeholder=""></textarea> 2762 </div> 2763 </div> 2764 2765 <label class="msm-consent"> 2766 <input type="checkbox" required>
2767 <span>By clicking âsubmitâ you agree to our 2768 <a href="/pages/terms-and-conditions" target="_blank" rel="noopener">terms and conditions</a> and 2769 <a href="/pages/privacy-and-legal" target="_blank" rel="noopener">privacy policy</a>. 2770 </span> 2771 </label> 2772 2773 <button type="submit" class="msm-btn">Submit</button> 2774 <p class="msm-success msm-hide" aria-live="polite">Thank you for your message. Weâll get back to you shortly.</p> 2775 </form> 2776 </div> 2777 </div><div aria-hidden="true" style="display:none"> 2778 <form method="post" action="/contact#msm-native-contact" id="msm-native-contact" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="contact" /><input type="hidden" name="utf8" value="â" /> 2779 <input type="hidden" name="contact[tags]" value=""> 2780 <input type="hidden" name="contact[subject]" value=""> 2781 <input type="hidden" name="contact[Title]"> 2782 <input type="hidden" name="contact[First name]"> 2783 <input type="hidden" name="contact[Last name]"> 2784 <input type="hidden" name="contact[Name]"> 2785 <input type="hidden" name="contact[email]"> 2786 <input type="hidden" name="contact[City]"> 2787 <input type="hidden" name="contact[Enquiry type]"> 2788 <input type="hidden" name="contact[How did you hear about us]"> 2789 <input type="hidden" name="contact[Phone]"> 2790 <input type="hidden" name="contact[Company]"> 2791 <input type="hidden" name="contact[Preferred date]"> 2792 <input type="hidden" name="contact[Preferred time]"> 2793 <input type="hidden" name="contact[Notes]"> 2794 <input type="hidden" name="contact[Message]"> 2795 </form> 2796 </div> 2797</aside> 2798 2799<style> 2800 :root { --msm-panel-w: 760px; } 2801 #msm-enquire-panel{ 2802 --msm-ink: #1A1A1A; 2803 --msm-accent: #7A5A53; 2804 --msm-accent-strong: #5B423D; 2805 } 2806 2807 .msm-enquire__overlay{position:fixed; inset:0; background:rgba(0,0,0,.35); opacity:0; pointer-events:none; transition:opacity .25s ease; z-index:1000} 2808 .msm-enquire__panel{position:fixed; top:0; right:0; height:100vh; width:min(var(--msm-panel-w),100vw); 2809 background: #faf3ec; color:var(--msm-ink); transform:translateX(100%); transition:transform .28s ease; 2810 z-index:1001; display:flex; flex-direction:column; box-shadow:-8px 0 24px rgba(0,0,0,.12)} 2811 .msm-enquire__header{display:flex; align-items:center; justify-content:space-between; padding:1.2rem 1.6rem; border-bottom:1px solid rgba(0,0,0,.1)} 2812 .msm-enquire__close{appearance:none;background:transparent;border:0;padding:.4rem; line-height:0; cursor:pointer} 2813 2814 .msm-enquire__tabs{display:flex; gap:2rem; padding:1.2rem 1.6rem; border-bottom:1px solid rgba(0,0,0,.1); flex-wrap:wrap} 2815 .msm-tab{appearance:none;background:transparent;border:0;padding:.6rem 0;font:inherit;letter-spacing:.08em;text-transform:uppercase;opacity:.6;position:relative;cursor:pointer;color:var(--msm-ink)} 2816 .msm-tab.is-active{opacity:1} 2817 .msm-tab.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--msm-accent)} 2818 2819 .msm-enquire__body{padding:1.6rem; overflow:auto} 2820 .msm-pane{display:none} 2821 .msm-pane.is-active{display:block}
2822 .msm-grid{display:grid;grid-template-columns:1fr;gap:1.2rem} 2823 @media(min-width:900px){.msm-grid{grid-template-columns:repeat(2,1fr)} .msm-field--full{grid-column:1/-1}} 2824 .msm-field label{display:block;font-size:1.3rem;letter-spacing:.06em;margin-bottom:.4rem;opacity:.8} 2825 .msm-field input,.msm-field select,.msm-field textarea{ 2826 width:100%;min-width:0;padding:1.1rem 1.2rem;border:1px solid rgba(0,0,0,.2);background:#fff;border-radius:2px;color:var(--msm-ink); 2827 accent-color: var(--msm-accent); 2828 } 2829 .msm-field select{ 2830 -webkit-appearance:none;appearance:none; 2831 background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%237A5A53' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>"); 2832 background-repeat:no-repeat;background-position:right .9rem center;background-size:14px 14px;padding-right:2.2rem; 2833 } 2834 input[type="date"]{width:100%} 2835 input[type="date"]::-webkit-calendar-picker-indicator{ filter: invert(36%) sepia(8%) saturate(900%) hue-rotate(330deg) brightness(90%) contrast(90%); } 2836 2837 .msm-phone-wrap{display:flex;gap:.6rem} 2838 .msm-phone-code{min-width:150px} 2839 2840 .msm-consent{display:flex;gap:.8rem;align-items:flex-start;margin:1.2rem 0} 2841 .msm-consent input{margin-top:.25rem} 2842 .msm-btn{display:inline-block;padding:1.2rem 2.2rem;border:0;border-radius:2px;background:rgba(0,0,0,.9);color:#fff;letter-spacing:.08em;text-transform:uppercase} 2843 .msm-help,.msm-success,.msm-error{font-size:1.3rem;margin:.8rem 0} 2844 .msm-success{color:#2f7d32}.msm-error{color:#c0342b} 2845 .msm-hide{display:none} 2846 2847 /* map */ 2848 .msm-map{position:relative;height:260px;border:1px solid rgba(0,0,0,.12);border-radius:4px;overflow:hidden;background:#efeeec} 2849 .msm-leaflet{height:100%; width:100%} 2850 .msm-leaflet .leaflet-tile{filter:grayscale(1) contrast(1.05) brightness(.98)} 2851 .msm-map-open{position:absolute;inset:auto 0 0 0;margin:auto;bottom:16px;left:50%;transform:translateX(-50%); 2852 background:#fff;border:1px solid rgba(0,0,0,.2);border-radius:999px;padding:.5rem 1rem;cursor:pointer;text-decoration:none} 2853 .msm-showroom-link{cursor:pointer} 2854 2855 /* error visuals */ 2856 .msm-field--error input, 2857 .msm-field--error select, 2858 .msm-field--error textarea{border-color:#c0342b; box-shadow:0 0 0 2px rgba(192,52,43,.1)} 2859 .msm-consent.msm-field--error{outline:2px solid rgba(192,52,43,.35); outline-offset:4px; border-radius:3px} 2860 2861 /* open state */ 2862 .msm-enquire__overlay.is-visible{opacity:1; pointer-events:auto} 2863 .msm-enquire__panel.is-open{transform:translateX(0)} 2864 2865 /* links inside drawer */ 2866 .msm-enquire__panel a{color:var(--msm-accent);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px} 2867 .msm-enquire__panel a:hover{color:var(--msm-accent-strong);text-decoration-thickness:1.5px} 2868 2869 /* mobile tweaks */ 2870 @media (max-width: 749px){ 2871 .msm-enquire__panel{width:100vw} 2872 .msm-enquire__header{padding:12px} 2873 .msm-enquire__tabs{padding:0 12px 8px; gap:1rem} 2874 .msm-enquire__body{padding:12px} 2875 .msm-grid{grid-template-columns:1fr; gap:12px} 2876 .msm-field--full{grid-column:1/-1} 2877 .msm-btn{padding:12px 16px; font-size:14px} 2878 .msm-phone-code{min-width:120px} 2879 .msm-map{height:220px} 2880 } 2881</style> 2882
2883<script> 2884(() => { 2885 const panel = document.getElementById('msm-enquire-panel'); 2886 const overlay = document.getElementById('msm-enquire-overlay'); 2887 if (!panel || !overlay) return; 2888 2889 /* ---------- Open / Close ---------- */ 2890 const openDrawer = () => { panel.classList.add('is-open'); overlay.classList.add('is-visible'); panel.setAttribute('aria-hidden','false'); document.documentElement.style.overflow='hidden'; }; 2891 const closeDrawer = () => { panel.classList.remove('is-open'); overlay.classList.remove('is-visible'); panel.setAttribute('aria-hidden','true'); document.documentElement.style.overflow=''; }; 2892 document.addEventListener('click', (e) => { 2893 const openBtn = e.target.closest('[data-enquire-open]'); 2894 const closeBtn = e.target.closest('[data-enquire-close]'); 2895 if (openBtn){ e.preventDefault(); openDrawer(); ensureMap(); } 2896 if (closeBtn || e.target === overlay){ e.preventDefault(); closeDrawer(); } 2897 }); 2898 document.addEventListener('keydown', (e)=>{ if(e.key==='Escape') closeDrawer(); }); 2899 2900 /* ---------- Tabs ---------- */ 2901 const tabs = panel.querySelectorAll('.msm-tab'); 2902 const panes = panel.querySelectorAll('.msm-pane'); 2903 function activatePane(btn){
2904 tabs.forEach(b => { b.classList.remove('is-active'); b.setAttribute('aria-selected','false'); }); 2905 panes.forEach(p => p.classList.remove('is-active')); 2906 btn.classList.add('is-active'); btn.setAttribute('aria-selected','true'); 2907 const pane = panel.querySelector('#' + btn.getAttribute('aria-controls')); 2908 pane.classList.add('is-active'); 2909 if (pane.id.startsWith('pane-appointment')) ensureMap(); 2910 } 2911 tabs.forEach(btn => btn.addEventListener('click', () => activatePane(btn))); 2912 2913 /* ---------- Appointment times (MonâFri) ---------- */ 2914 const dateInput = panel.querySelector('#app-date-enquire-panel'); 2915 const timeSelect = panel.querySelector('#app-time-enquire-panel'); 2916 const todayISOinZone = (tz)=>{ 2917 const p = new Intl.DateTimeFormat('en-CA',{timeZone:tz,year:'numeric',month:'2-digit',day:'2-digit'}).formatToParts(new Date()); 2918 return `${p.find(x=>x.type==='year').value}-${p.find(x=>x.type==='month').value}-${p.find(x=>x.type==='day').value}`; 2919 }; 2920 if (dateInput && timeSelect){ 2921 const tz = 'Europe/Rome', isoToday = todayISOinZone(tz); 2922 dateInput.min = isoToday; if (!dateInput.value) dateInput.value = isoToday; 2923 const makeSlots = (d) => { 2924 const out=[], blocks=[['09:00','12:00'],['13:00','18:00']], step=30; 2925 blocks.forEach(([s,e])=>{ 2926 let [sh,sm]=s.split(':').map(Number), [eh,em]=e.split(':').map(Number); 2927 let cur=new Date(d); cur.setHours(sh,sm,0,0); 2928 let end=new Date(d); end.setHours(eh,em,0,0); 2929 while(cur<end){ out.push(cur.toLocaleTimeString([],{hour:'2-digit',minute:'2-digit'})); cur=new Date(cur.getTime()+step*60000); } 2930 }); 2931 return out; 2932 }; 2933 const refreshTimes = ()=>{ 2934 timeSelect.innerHTML = '<option value="" disabled selected>Select a time</option>'; 2935 const sel = dateInput.value ? new Date(dateInput.value + 'T00:00:00') : null; if(!sel) return; 2936 if (sel.getDay()===0 || sel.getDay()===6){ const o=document.createElement('option'); o.textContent='Closed (MonâFri only)'; o.disabled=true; timeSelect.appendChild(o); return; } 2937 const slots = makeSlots(sel), now=new Date(), isToday = sel.toDateString()===now.toDateString(); 2938 slots.forEach(t=>{ const [h,m]=t.split(':'), cand=new Date(sel); cand.setHours(+h, +m, 0, 0); 2939 const o=document.createElement('option'); o.value=t; o.textContent=t; if(isToday && cand<now) o.disabled=true; timeSelect.appendChild(o); 2940 }); 2941 }; 2942 refreshTimes(); dateInput.addEventListener('change', refreshTimes); 2943 } 2944 2945 /* ---------- Country codes (default Italy) ---------- */ 2946 const CODES_RAW = 2947"Afghanistan,+93|Albania,+355|Algeria,+213|Andorra,+376|Angola,+244|Antigua & Barbuda,+1-268|Argentina,+54|Armenia,+374|Australia,+61|Austria,+43|Azerbaijan,+994|Bahamas,+1-242|Bahrain,+973|Bangladesh,+880|Barbados,+1-246|Belarus,+375|Belgium,+32|Belize,+501|Benin,+229|Bhutan,+975|Bolivia,+591|Bosnia & Herzegovina,+387|Botswana,+267|Brazil,+55|Brunei,+673|Bulgaria,+359|Burkina Faso,+226|Burundi,+257|Cambodia,+855|Cameroon,+237|Canada,+1|Cape Verde,+238|Central African Republic,+236|Chad,+235|Chile,+56|China,+86|Colombia,+57|Comoros,+269|Congo (DRC),+243|Congo (Republic),+242|Costa Rica,+506|Côte dâIvoire,+225|Croatia,+385|Cuba,+53|Cyprus,+357|Czechia,+420|Denmark,+45|Djibouti,+253|Dominica,+1-767|Dominican Republic,+1-809|Dominican Republic 2,+1-829|Dominican Republic 3,+1-849|Ecuador,+593|Egypt,+20|El Salvador,+503|Equatorial Guinea,+240|Eritrea,+291|Estonia,+372|Eswatini,+268|Ethiopia,+251|Fiji,+679|Finland,+358|France,+33|Gabon,+241|Gambia,+220|Georgia,+995|Germany,+49|Ghana,+233|Greece,+30|Grenada,+1-473|Guatemala,+502|Guinea,+224|Guinea-Bissau,+245|Guyana,+592|Haiti,+509|Honduras,+504|Hong Kong,+852|Hungary,+36|Iceland,+354|India,+91|Indonesia,+62|Iran,+98|Iraq,+964|Ireland,+353|Israel,+972|Italy,+39|Jamaica,+1-876|Japan,+81|Jordan,+962|Kazakhstan,+7|Kenya,+254|Kiribati,+686|Kuwait,+965|Kyrgyzstan,+996|Laos,+856|Latvia,+371|Lebanon,+961|Lesotho,+266|Liberia,+231|Libya,+218|Liechtenstein,+423|Lithuania,+370|Luxembourg,+352|Macao,+853|North Macedonia,+389|Madagascar,+261|Malawi,+265|Malaysia,+60|Maldives,+960|Mali,+223|Malta,+356|Marshall Islands,+692|Mauritania,+222|Mauritius,+230|Mexico,+52|Micronesia,+691|Moldova,+373|Monaco,+377|Mongolia,+976|Montenegro,+382|Morocco,+212|Mozambique,+258|Myanmar,+95|Namibia,+264|Nauru,+674|Nepal,+977|Netherlands,+31|New Zealand,+64|Nicaragua,+505|Niger,+227|Nigeria,+234|North Korea,+850|Norway,+47|Oman,+968|Pakistan,+92|Palau,+680|Panama,+507|Papua New Guinea,+675|Paraguay,+595|Peru,+51|Philippines,+63|Poland,+48|Portugal,+351|Qatar,+974|Romania,+40|Russia,+7|Rwanda,+250|Saint Kitts & Nevis,+1-869|Saint Lucia,+1-758|Saint Vincent & the Grenadines,+1-784|Samoa,+685|San Marino,+378|São Tomé & PrÃncipe,+239|Saudi Arabia,+966|Senegal,+221|Serbia,+381|Seychelles,+248|Sierra Leone,+232|Singapore,+65|Slovakia,+421|Slovenia,+386|Solomon Islands,+677|Somalia,+252|South Africa,+27|South Korea,+82|South Sudan,+211|Spain,+34|Sri Lanka,+94|Sudan,+249|Suriname,+597|Sweden,+46|Switzerland,+41|Syria,+963|Taiwan,+886|Tajikistan,+992|Tanzania,+255|Thailand,+66|Timor-Leste,+670|Togo,+228|Tonga,+676|Trinidad & Tobago,+1-868|Tunisia,+216|Turkey,+90|Turkmenistan,+993|Tuvalu,+688|Uganda,+256|Ukraine,+380|United Arab Emirates,+971|United Kingdom,+44|United States,+1|Uruguay,+598|Uzbekistan,+998|Vanuatu,+678|Vatican City,+39|Venezuela,+58|Vietnam,+84|Yemen,+967|Zambia,+260|Zimbabwe,+263|à land Islands,+358|Guernsey,+44|Jersey,+44|Isle of Man,+44|Bermuda,+1-441|Cayman Islands,+1-345|Gibraltar,+350|Greenland,+299|Faroe Islands,+298|Aruba,+297|Bonaire,+599|Curaçao,+599|Guadeloupe,+590|Martinique,+596|Réunion,+262|French Guiana,+594|Mayotte,+262|New Caledonia,+687|French Polynesia,+689|Montserrat,+1-664|Anguilla,+1-264|Saint Barthélemy,+590|Saint Martin,+590|Saint Pierre & Miquelon,+508|Sint Maarten,+1-721|Turks & Caicos,+1-649|Falkland Islands,+500|Palestine,+970|Western Sahara,+212|Pitcairn Islands,+64|Tokelau,+690|Niue,+683|Cook Islands,+682|British Virgin Islands,+1-284|US Virgin Islands,+1-340|Puerto Rico,+1-787|Puerto Rico 2,+1-939|Guam,+1-671|Northern Mariana Islands,+1-670|American Samoa,+1-684"; 2948 function populateCodes(selectEl){ 2949 if(!selectEl) return; 2950 const pairs = CODES_RAW.split('|').map(s => { const i=s.lastIndexOf(','); return { name:s.slice(0,i), code:s.slice(i+1) }; }).sort((a,b)=> a.name.localeCompare(b.name)); 2951 selectEl.innerHTML = ''; 2952 const opt0 = document.createElement('option'); opt0.value=''; opt0.disabled=true; opt0.textContent='Country code'; selectEl.appendChild(opt0);
2953 pairs.forEach(({name,code})=>{ 2954 const o=document.createElement('option'); o.value=code; o.textContent=`${name} (${code})`; 2955 if(name==='Italy') o.selected=true; 2956 selectEl.appendChild(o); 2957 }); 2958 } 2959 populateCodes(panel.querySelector('#app-code-enquire-panel')); 2960 populateCodes(panel.querySelector('#cb-code-enquire-panel')); 2961 populateCodes(panel.querySelector('#msg-code-enquire-panel')); 2962 2963 /* ---------- Validation ---------- */ 2964 const emailRe = /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/i; 2965 const digitsOnly = v => (v||'').replace(/[^\d]/g,''); 2966 function setError(field, msg){ 2967 const wrap = field.closest('.msm-field, .msm-consent') || field.parentElement; 2968 if (!wrap) return; 2969 wrap.classList.add('msm-field--error'); 2970 let p = wrap.querySelector('.msm-error-text'); 2971 if(!p){ 2972 p = document.createElement('p'); p.className='msm-error-text'; p.style.color='#c0342b'; p.style.margin='.35rem 0 0'; 2973 wrap.appendChild(p); 2974 } 2975 p.textContent = msg; 2976 field.setAttribute('aria-invalid','true'); 2977 const id = field.id || Math.random().toString(36).slice(2); 2978 field.id = id; p.id = id + '-error'; field.setAttribute('aria-describedby', p.id); 2979 } 2980 function clearErrors(form){ 2981 form.querySelectorAll('[aria-invalid="true"]').forEach(el=>{ el.removeAttribute('aria-invalid'); el.removeAttribute('aria-describedby'); }); 2982 form.querySelectorAll('.msm-field--error').forEach(el=>el.classList.remove('msm-field--error')); 2983 form.querySelectorAll('.msm-error-text').forEach(p=>p.remove()); 2984 } 2985 function validate(form){ 2986 clearErrors(form); let ok=true; 2987 form.querySelectorAll('[required]').forEach(el=>{ 2988 if ((el.type === 'checkbox' && !el.checked) || !el.value || (el.tagName==='SELECT' && !el.value)){ 2989 setError(el,'This field is required'); ok=false; 2990 } 2991 }); 2992 const em=form.querySelector('input[type="email"]'); if (em && em.value && !emailRe.test(em.value.trim())){ setError(em,'Please enter a valid email'); ok=false; } 2993 2994 // Phone: validate for required fields, or when optional but filled. 2995 const phone=form.querySelector('input[name="contact[Phone]"]'); 2996 const code=form.querySelector('.msm-phone-code'); 2997 if (phone){ 2998 const hasValue = !!phone.value.trim(); 2999 const isRequired = phone.hasAttribute('required'); 3000 if (isRequired || hasValue){ 3001 const num=digitsOnly(phone.value); 3002 if (num.length < 6){ setError(phone,'Please enter a valid phone number'); ok=false; } 3003 if (ok && code && code.value && hasValue){ phone.value = `${code.value} ${phone.value.trim()}`; } 3004 } 3005 } 3006 3007 form.querySelectorAll('input,select,textarea').forEach(el=>{ el.addEventListener('input', ()=>{ clearErrors(form); }, { once:true }); }); 3008 return ok; 3009 } 3010 3011 /* ---------- AJAX submit ---------- */ 3012 async function postContact(form){ 3013 const action = form.getAttribute('action') || '/contact'; 3014 const fd = new FormData(form); 3015 const body = new URLSearchParams(Array.from(fd.entries())).toString(); 3016 try{ 3017 const res = await fetch(action, { 3018 method:'POST', 3019 headers:{ 'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8', 'Accept':'text/html' }, 3020 body, 3021 credentials:'same-origin', 3022 redirect:'follow' 3023 }); 3024 return { ok: (res.ok || res.redirected || (res.status >= 200 && res.status < 400)), status: res.status, url: res.url || '' }; 3025 }catch(e){ 3026 return { ok:false, status:0, url:'' }; 3027 } 3028 } 3029 3030 /* ---------- Native fallback (CAPTCHA-friendly) ---------- */ 3031 function submitViaNative(sourceForm, openInNewTab){ 3032 const native = panel.querySelector('#msm-native-contact'); 3033 if (!native) return false; 3034 3035 const set = (name, value) => { 3036 let el = native.querySelector(`[name="${name.replace(/"/g,'\\"')}"]`); 3037 if (!el){ el = document.createElement('input'); el.type='hidden'; el.name = name; native.appendChild(el); } 3038 el.value = value; 3039 }; 3040 3041 (new FormData(sourceForm)).forEach((v,k)=> set(k, v)); 3042 3043 if (openInNewTab) native.setAttribute('target','_blank'); else native.removeAttribute('target'); 3044 native.submit(); 3045 return true; 3046 } 3047 3048 function wireAjaxForm(selector, successText){ 3049 const form = panel.querySelector(selector); if(!form) return; 3050 const msg = form.querySelector('.msm-success') || (()=>{ const p=document.createElement('p'); p.className='msm-success msm-hide'; p.setAttribute('aria-live','polite'); form.appendChild(p); return p; })(); 3051 const btn = form.querySelector('button[type="submit"]'); 3052 form.addEventListener('submit', async (e)=>{ 3053 e.preventDefault(); 3054 if(!validate(form)) return; 3055 msg.classList.add('msm-hide'); btn.disabled=true; 3056 3057 const res = await postContact(form); 3058 3059 if(res.ok){ 3060 msg.textContent = successText; 3061 msg.classList.remove('msm-hide'); 3062 form.reset(); 3063 } else { 3064 submitViaNative(form, true); 3065 alert('We opened a new tab to finish your request (Shopify may ask you to verify youâre human).'); 3066 } 3067 btn.disabled=false; 3068 }); 3069 } 3070 3071 /* brochure (opens PDF on AJAX success; fallback opens native tab) */ 3072 const broForm = panel.querySelector('#msm-brochure-form-enquire-panel'); 3073 if (broForm){ 3074 const successEl = panel.querySelector('#brochure-success-enquire-panel'); 3075 const errorEl = panel.querySelector('#brochure-error-enquire-panel'); 3076 const btn = broForm.querySelector('button[type="submit"]'); 3077 const pdfUrl = (broForm.dataset.brochure || '').trim(); 3078 broForm.addEventListener('submit', async (e)=>{ 3079 e.preventDefault(); 3080 if(!validate(broForm)) return; 3081 successEl?.classList.add('msm-hide'); errorEl?.classList.add('msm-hide'); 3082 let dlWin = window.open('', '_blank'); // popup-safety 3083 btn.disabled=true; 3084
3085 const res = await postContact(broForm); 3086 3087 if(res.ok && pdfUrl){ 3088 if (dlWin) dlWin.location.href = pdfUrl; 3089 successEl?.classList.remove('msm-hide'); broForm.reset(); 3090 }else if(res.ok && !pdfUrl){ 3091 if (dlWin) dlWin.close(); 3092 errorEl?.classList.remove('msm-hide'); if (errorEl) errorEl.textContent = 'Brochure file is not configured.'; 3093 }else{ 3094 if (dlWin) dlWin.close(); 3095 submitViaNative(broForm, true); 3096 errorEl?.classList.remove('msm-hide'); 3097 } 3098 btn.disabled=false; 3099 }); 3100 } 3101 3102 wireAjaxForm('#msm-appointment-form-enquire-panel','Thank you. We have received your appointment request and will confirm by email.'); 3103 wireAjaxForm('#msm-callback-form-enquire-panel','Thank you. We will call you back as requested.'); 3104 wireAjaxForm('#msm-message-form-enquire-panel','Thank you for your message. Weâll get back to you shortly.'); 3105 3106 /* ---------- Map (Leaflet, Carto Positron â interactive) ---------- */ 3107 let msmMap; 3108 function loadLeaflet(cb){ 3109 if (window.L) return cb(); 3110 if (!document.getElementById('leaflet-css')){ 3111 const l = document.createElement('link'); 3112 l.id='leaflet-css'; l.rel='stylesheet'; 3113 l.href='https://cdn.jsdelivr.net/npm/[email protected]/dist/leaflet.css'; 3114 document.head.appendChild(l); 3115 } 3116 let s = document.getElementById('leaflet-js'); 3117 if (!s){ 3118 s = document.createElement('script'); 3119 s.id='leaflet-js'; 3120 s.src='https://cdn.jsdelivr.net/npm/[email protected]/dist/leaflet.js'; 3121 s.onload = ()=> cb(); 3122 document.head.appendChild(s); 3123 } else { 3124 s.addEventListener('load', cb, { once:true }); 3125 } 3126 } 3127 3128 function ensureMap(){ 3129 const container = document.getElementById('msm-map-enquire-panel'); 3130 if (!container) return; 3131 loadLeaflet(()=>{ 3132 const lat = parseFloat(container.dataset.lat); 3133 const lng = parseFloat(container.dataset.lng); 3134 if (!msmMap){ 3135 msmMap = L.map(container, { 3136 zoomControl:true, 3137 scrollWheelZoom:true, 3138 dragging:true, 3139 doubleClickZoom:true, 3140 boxZoom:true, 3141 keyboard:true 3142 }); 3143 L.tileLayer('https://{s}.basemaps.cartocdn.com/light_nolabels/{z}/{x}/{y}{r}.png', { 3144 attribution: '© OpenStreetMap © CARTO', 3145 subdomains: 'abcd', 3146 maxZoom: 19 3147 }).addTo(msmMap); 3148 L.tileLayer('https://{s}.basemaps.cartocdn.com/light_only_labels/{z}/{x}/{y}{r}.png', { 3149 subdomains: 'abcd', 3150 maxZoom: 19, 3151 opacity: 0.85 3152 }).addTo(msmMap); 3153 L.circleMarker([lat,lng], { 3154 radius: 7, weight: 1.5, color: '#5B423D', fillColor: '#7A5A53', fillOpacity: 0.9 3155 }).addTo(msmMap).bindPopup('Via Andegari, 4, 20121 Milano, Italy'); 3156 msmMap.setView([lat,lng], 17); 3157 setTimeout(()=> msmMap.invalidateSize(), 250); 3158 } else { 3159 msmMap.invalidateSize(); 3160 } 3161 }); 3162 } 3163 3164 function openMapNewTab(){ 3165 const url = 'https://www.google.com/maps/dir/?api=1&destination=' + encodeURIComponent(`Via Andegari, 4, 20121 Milano, Italy`); 3166 window.open(url, '_blank', 'noopener'); 3167 } 3168 panel.querySelectorAll('[data-open-map]').forEach(btn => btn.addEventListener('click', openMapNewTab)); 3169 const showroomInput = panel.querySelector('#app-showroom-enquire-panel'); 3170 if (showroomInput){ showroomInput.addEventListener('click', openMapNewTab); } 3171 3172 // If appointment tab is default, bring up the map 3173 if (panel.querySelector('#pane-appointment-enquire-panel').classList.contains('is-active')) ensureMap(); 3174})(); 3175</script>
3175 3176 3177</div> 3178 3179 <!-- Start of HubSpot Embed Code --> 3180
3180<script type="text/javascript" id="hs-script-loader" async defer src="//js-eu1.hs-scripts.com/148718130.js"></script>
3180 3181 <!-- End of HubSpot Embed Code --> 3182 <style> /* Hide cart icon everywhere */.header__icon--cart {display: none !important;} </style> 3183<div id="shopify-block-AcVpGSUx0VE4xT1ZVZ__14710238943034738919" class="shopify-block shopify-app-block"> <link href="//cdn.shopify.com/extensions/01a0cd11-b913-7e7d-8b62-2b63ab1be515/air-reviews-1-110/assets/air-reviews.min.css" rel="stylesheet" type="text/css" media="all" />
3184<script> 3185 try { 3186 if (!window.AIR_REVIEWS) { 3187 const shopData = {}; 3188 const settings = {"reviewBlock":{"enabledVariant":false,"preset":0,"layout":"list","inlinePosition":"below-product","customPosition":".shopify-payment-button","customPositionDirection":"after","requiredName":true,"requiredEmail":false,"isPrioritizeImageReviews":false,"sortingDefault":"recent","hasPolicy":false,"policy":"By submitting, I acknowledge the Privacy and that my reviews will be publicly posted and shared online","submitButtonColor":"#166CE1","submitTextColor":"#ffffff","advancedSetting":true,"starColorType":"single-color","fiveStarColor":"#969FA8","fourStarColor":"#969FA8","threeStarColor":"#969FA8","twoStarColor":"#969FA8","oneStarColor":"#969FA8","emptyStarColor":"#BFBFBF","singleStarColor":"#969FA8","dateFormat":"mm_dd_yyyy","summaryButton":"Write a review","primaryColor":"#2C3E50","secondaryColor":"#969FA8","headingColor":"#000000","backgroundColor":"#EDEDED","designPreset":"modern","boxBackgroundColor":"#fff","customerNameColor":"#2C3E50","contentColor":"#2C3E50","cardBackgroundColor":"#fff","isHideSummaryWhenNoReview":false,"buttonBorderRadius":4,"font":"Inter","customCss":"","starIconType":"trustpilot","isEnableBadge":false,"badgeColor":"#2C6ECB","badgeIconType":"badge-circle","displayBadge":"after-customer-name","shopLogoNotify":"","storeLogo":"","isShowBadgeText":false,"defaultSort":"10","formatCustomerName":"full_name","styleAvatar":"pastel","cardSizeCarousel":"310","mediaPositionCarousel":"top","showNavigationCarousel":false,"themeId":"navy","replaceAliexpressShopperText":false,"mobileGridColumnsCount":1,"enableCustomHoverColor":false,"summaryTextColor":"#2C3E50","showSummaryAsPercentage":false,"isShowHelpful":false,"displayHelpful":"everyone","appearanceHelpful":"only-helpful","likedColor":"#2C6ECB","dislikedColor":"#CB2C2C","likeDefaultColor":"#BEBEBE","dislikeDefaultColor":"#BEBEBE","isHelpfulInBox":true,"isHelpfulInCarousel":false,"isHelpfulInSidebar":false,"starDefaultColor":"#969FA8"},"shopDomain":"frugone-1885.myshopify.com","allReviewBlock":{"heading":"All reviews page","useSimpleSummary":"false","maxReview":"20","onlyMedia":"false","onlyPositive":"false","selectedProduct":"","hideProductThumbnails":"false","summaryBgColor":"#F8F8F8","bgColor":"#FFFFFF"},"reviewCarouselWidget":{"carouselMinimumRating":"all-reviews","carouselHeadingColor":"#000000","hideCarouselImages":false,"customPositionProduct":"","customPositionProductDirection":"after","customPositionHome":"","customPositionHomeDirection":"after","customPositionCatalog":"","customPositionCatalogDirection":"after","showPreview":true,"enableCarousel":false,"hideCarouselProductName":false,"showMobileNavigation":false,"isEnableBadge":true,"badgeIconType":"badge-circle","displayBadge":"after-customer-name","customCss":"","autoPlay":false,"autoPlayInterval":5,"showFeaturedReviewsOnly":false},"reviewPop":{"enabled":false,"minimumRating":"all-reviews","emptyImage":"https://cdnapps.avada.io/airReviews/imgCarrouselExm.png","emptyImageCustom":"","pageShow":[],"includedPages":"","excludedPages":"","customCss":"","showOnMobile":true,"showReviewImage":true,"popMobileStyle":"pop-horizontal-image-2","popDesktopStyle":"pop-vertical-image-1","mobilePosition":"mobile-horizontal-bottom","showOnDesktop":true,"desktopPosition":"desktop-bottom-left","delayDuration":0,"showDuration":5000,"hideDuration":10000},"submitForm":{"designPreset":"submit-popup","backgroundColor":"#FFFFFF","textColor":"#202223","buttonColor":"#202223","buttonTextColor":"#FFFFFF","validationsColor":"#D72C0D","cancelButtonColor":"#FFFFFF","cancelTextColor":"#202223","customCss":"","suggestKeywords5Star":[],"suggestKeywords4Star":[],"suggestKeywords3Star":[],"suggestKeywords2Star":[],"suggestKeywords1Star":[],"ignoreContentValidation":false,"oneStarLabel":"ð We're really sorry to hear that! Could you share what went wrong?","twoStarLabel":"ð¤ Weâd love to improve! What part of the product didnât meet your expectations?","threeStarLabel":"ð Thanks for your review! How can we improve?","fourStarLabel":"ð Glad you liked it! Is there anything we could improve to make it perfect?","fiveStarLabel":"ð Amazing! What did you love the most about this product?","isUseDynamicQuestion":true},"testimonialSettings":{"layout":"modern","autoNavigate":true,"autoNavigateInterval":10,"showOnDesktop":true,"showOnMobile":false,"testimonialsSource":"recentReviews","font":"Noto Sans","quoteIcon":"first","customerNameColor":"#303030","contentColor":"#303030","quoteIconColor":"#303030","backgroundColor":"#FFFFFF","borderColor":"#303030","selectedProducts":[],"selectedReviews":[],"maxRecentReviews":3,"enableTestimonial":false,"customCss":"","showReviewD
3188ate":false},"generalSetting":{"maxReviewImport":"20","autoTranslate":"english","autoSubmitPublish":"disabled","isTrashFeatureEnabled":false,"hideReviewDate":"","ratingOption":"All positive","sortOption":"sortlarest@feedback","photoOption":"all","amzRatingOption":"positive","amzSortOption":"recent","amzReviewerOption":"all_reviews","amzPhotoOption":"all_contents","cjdRatingOption":"5 star","cjdSortOption":"sortlarest@feedback","cjdPhotoOption":"all","shopeeRatingOption":"all_stars","shopeeSortOption":"default","shopeePhotoOption":"all_contents","enableAggregateRating":false,"eligibility":"everyone","enableTrashReview":false,"deleteAfterDays":15,"enableCountryFlag":false,"enableUGCContent":false,"isUsingPresetV2":true,"isInfiniteScrollingBlockAll":false,"enableGGTopQuality":false,"positionGGTopQuality":"","hideProductDetailOnSeeMore":false,"isRtlStore":false},"shopId":"iEffOcNm0EHEzhKwCvQg","createdAt":"2025-10-14T14:22:03.022Z","reviewWidget":{"enableSidebar":false,"enableStarRating":false,"hideNoStarRating":false,"showCatalogPage":false,"showProductPageBlock":true,"showOnProductList":true,"customPositionCatalog":"","customPositionCatalogDirection":"after","showProductPage":false,"customPositionProduct":"","customPositionProductDirection":"after","minimumRating":"all-reviews","showOnMobile":false,"mobilePosition":"mobile-left","showOnDesktop":false,"desktopPosition":"desktop-right","floatBtnTextColor":"#FFFFFF","floatBtnBgColor":"#000000","floatBtnIcon":"https://cdnapps.avada.io/airReviews/icon/star-rating-2.png","floatBtnIconCustom":"","enablePopupReview":false,"showOnHomePage":false,"previewType":"star-rating-settings","showPreview":false,"customProductContainer":"","presetStarRating":"simple","starRatingStyle":"show_reviews_within_separately","starRatingStyleOptions":"show_reviews_within_total_rating","showByProduct":false,"excludedPages":"","customCss":""},"allReviewsPage":[],"popReviews":[],"carouselReviews":[],"hasNextAllReviewsPage":false,"currency":"EUR"}; 3189 const translations = {"review":"review","reviews":"reviews","Review":"Review","Reviews":"Reviews","Rating":"Rating","See more":"See more","See less":"See less","Recent":"Recent","Highest":"Highest","Lowest":"Lowest","Load more":"Load more","No review yet, lead the way and share your thoughts":"No review yet, lead the way and share your thoughts","How do you like this item?":"How do you like this item?","Excellent":"Excellent","Good":"Good","Medium":"Medium","Poor":"Poor","Very Bad":"Very Bad","Share your thoughts":"Share your thoughts","Write your feedback":"Write your feedback","Your Information":"Your Information","Your Name":"Your Name","Email":"Email","This is a required field":"This is a required field","Send":"Send","You have reached the file upload limit":"You have reached the file upload limit","Email field is invalid":"Email field is invalid","Review with media":"Review with media","Our reviews":"Our reviews","Accepts .gif, .jpg, .png and 5MB limit":"Accepts .gif, .jpg, .png and 5MB limit","Be the first to write a review":"Be the first to write a review","Submit":"Submit","Submitted":"Submitted","Click to review":"Click to review","Tap to review":"Tap to review","Name":"Name","Thank you for your feedback":"Thank you for your feedback","Invalid file type":"Invalid file type","accepted file types: .gif, .jpg, .png.":"accepted file types: .gif, .jpg, .png.","Invalid file size":"Invalid file size","image size should not be more than 5MB.":"image size should not be more than 5MB.","Your Email":"Your Email","Next":"Next","Verified":"Verified","Page":"Page","Store replied":"Store replied","No reviews yet, lead the way and share your thoughts":"No reviews yet, lead the way and share your thoughts","No reviews with photo yet, Be the first to write a review with a photo":"No reviews with photo yet, Be the first to write a review with a photo","Before":"Before","After":"After","Updated on":"Updated on","Reason to edit":"Reason to edit","Reviewed by verified customer":"Reviewed by verified customer","Add files":"Add files","No review with photo yet, Be the first to write a review with a photo":"No review with photo yet, Be the first to write a review with a photo","Submit your information":"Submit your information","Thank you for your information!":"Thank y
3189ou for your information!","By submitting, I acknowledge the Privacy and that my reviews will be publicly posted and shared online":"By submitting, I acknowledge the Privacy and that my reviews will be publicly posted and shared online","Choose variant":"Choose variant","Cancel":"Cancel","Thank you":"Thank you","Apply discount":"Apply discount","Your review was submitted":"Your review was submitted","We have sent you a discount code email for {{discount_value}} OFF your next purchase!":"We have sent you a discount code email for {{discount_value}} OFF your next purchase!","Use the following discount code for {{discount_value}} OFF your next purchase!":"Use the following discount code for {{discount_value}} OFF your next purchase!","We'll also send it by email":"We'll also send it by email","Congratulations! Submit your review and get {{discount_value}} OFF discount!":"Congratulations! Submit your review and get {{discount_value}} OFF discount!","Tell us about your reviews":"Tell us about your reviews","Feedback":"Feedback","Enter your name":"Enter your name","Enter your email":"Enter your email","rating":"rating","ratings":"ratings","Product Rating":"Product Rating","What did you think...?":"What did you think...?","Other products:":"Other products:","Shop now":"Shop now","Unsubscribe here":"Unsubscribe here","See all":"See all","See what our customers said":"See what our customers said","Reviews heading":"Reviews","Our Reviews":"Our Reviews","Powered By":"Powered By","This email was sent by Avada on behalf of":"This email was sent by Avada on behalf of","Only verified buyers can review this product":"Only verified buyers can review this product","Show more reviews":"Show more reviews","No reviews yet":"No reviews yet"}; 3190 const productReview = false; 3191 const statusFields = {"isRemoveBranding":false,"supportAppBlock":true}; 3192 const hasStorefrontToken = true; 3193 const hasUGCContent = false; 3194 const testimonials = {}; 3195 const translationSettings = {}; 3196 const customerAccountUrl = "https://midsummer-milano.com/customer_authentication/redirect?locale=en®ion_country=AM"; 3197 window.AIR_REVIEWS = { 3198 branding: statusFields.isRemoveBranding, 3199 appBlock: statusFields.supportAppBlock, 3200 shopData, 3201 settings, 3202 translations, 3203 productReview, 3204 hasStorefrontToken, 3205 hasUGCContent, 3206 testimonials, 3207 collections: [], 3208 collectionsName: [], 3209 product: null, 3210 template: "page", 3211 customer: { 3212 id: null, 3213 email: null, 3214 first_name: null, 3215 last_name: null, 3216 orders: null 3217 }, 3218 shopLogo: "\/\/midsummer-milano.com\/cdn\/shop\/files\/logo-midsummer-milano-450x200.png?v=1759917848", 3219 translationSettings, 3220 customerAccountUrl 3221 }; 3222 AIR_REVIEWS.product?.collections?.forEach(collection => { 3223 AIR_REVIEWS.collections.push(collection.id.replace('$', '\\$')); 3224 AIR_REVIEWS.collectionsName.push(collection.title.replace('$', '\\$')); 3225 }); 3226 3227 window.AIR_REVIEWS.shopData = window.AIR_REVIEWS.shopData || {}; 3228 console.log("Air product reviews check , false"); 3229 } 3230 } catch (e) { 3231 console.error('Error assigning avada air reivews variable' + e); 3232 } 3233</script>
3233 3234 3235 3236 3237 3238</div><div id="shopify-block-AdlMwdW41eW0wNHQ2b__18131037017812181619" class="shopify-block shopify-app-block"> 3239
3239<script defer src="https://chimpstatic.com/mcjs-connected/js/users/ed0b627d2f6b467c92461bb3a/0be74282f8ecceadb21d50327.js"></script>
3239 3240
3240<script>window.mc_embedded = true;</script>
3240 3241 3242 3243 3244</div><div id="shopify-block-AL25sdkQzN0NhU243Q__3787308784794087151" class="shopify-block shopify-app-block"> 3245 3246
3247<script type="text/javascript"> 3248 Tipo = window.Tipo ?? {} 3249 Tipo.Booking = Tipo.Booking ?? {} 3250 Tipo.Booking = { 3251 ...Tipo.Booking, 3252 ...{"appUrl":"https:\/\/booking.tipo.io","shop":{"url":"frugone-1885.myshopify.com","domain":"midsummer-milano.com","locale":"en","country_code":"IT","plan":{"feature":{"employee":1,"product":1,"location":1,"extraFieldSet":false,"hideBrand":false,"trialDay":"0","googleCalendar":false,"googleSheet":false,"activeCampaign":false,"mailchimp":false,"klaviyo":false,"getResponse":false,"hubspot":false,"omnisend":false,"sendInBlue":false},"price":"0.00","plan":"FREE"}},"settings":{"booking":{"timeBlock":"fixed","stepping":"60","font":"Arial","sortProduct":{"type":1,"sortProductAuto":"asc","sortProductManually":[]},"statusDefault":"3","color":{"text":{"red":0,"green":0,"blue":0,"alpha":1},"button":{"red":0,"green":0,"blue":0,"alpha":1},"button_label":{"red":255,"green":255,"blue":255},"outline_button":{"red":0,"green":0,"blue":0,"alpha":1},"background":{"red":255,"green":255,"blue":255,"alpha":1}},"customize_css":null},"free_form":{"first_name":{"enable":true,"label":"First name","required":true},"last_name":{"enable":true,"label":"Last name","required":true},"phone_number":{"enable":true,"label":"Phone number","required":true,"free_form[phone_number][default_country]":"IT"},"email":{"label":"Email","required":true,"enable":true}},"general":{"hide_add_to_cart":"0","hide_buy_now":"2","redirect_url":null,"allow_bring_more":true,"confirm_to":"link","time_format":"24h","multipleEmployees":"1","hide_employee_on_front_store":true,"multipleLocations":"0","show_location_on_front_store":true,"formatDate":"MMM DD YYYY","formatDateServe":"Y-m-d","formatDateTime":"YYYY-MM-DD HH:mm","formatTime":"HH:mm","weekStart":"1","hide_product_form":"0","quickview_enable":true,"show_time_slot":true,"linkRedirect":"https:\/\/midsummer-milano.com\/","show_terms":true,"lock_time_zone":false,"show_available_time":true},"translation":{"languageDatepicker":"en-US","customDatePickerDays":"Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday","customDatePickerDaysShort":"Sun, Mon, Tue, Wed, Thu, Fri, Sat","customDatePickerDaysMin":"Su, Mo, Tu, We, Th, Fr, Sa","customDatePickerMonths":"January, February, March, April, May, June, July, August, September, October, November, December","customDatePickerMonthsShort":"Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec","widget":{"default":{"please_select":"Please select service","training":"Training","trainer":"Trainer","bringing_anyone":"Bringing anyone with you?","num_of_additional":"Number of Additional People","date_and_time":"Pick date \u0026 time","continue":"Continue","total_price":"Total Price","confirm":"Confirm","cancel":"Cancel","thank_you":"Thank you! Your booking is completed","date":"Date","time":"Time","datetime":"Date Time","duration":"Duration","location":"Location","first_name":"First name","last_name":"Last name","phone":"Phone","email":"Email","address":"Address","address_2":"Address 2","status":"Status","country":"Country","full_name":"Fullname","product":"Service","product_placeholder":"Select your service","variant":"Variant","variant_placeholder":"Select your variant","location_placeholder":"Select a location","employee":"Employee","employee_placeholder":"Select an employee","quantity":"Quantity","back":"Back","payment":"Payment","you_can_only_bring":"You can only bring {number} people","online_booking_text":"Online booking","online_booking_title":"Online booking","online_booking_description":"Select \u0026 booking your favorite service. We will arrange an appointment with you as soon as possible.","quickBooking_text":"Book now","not_available":"Selected service is currently not available.","no_employee":"No employee","no_location":"No location","is_required":"This field is required.","valid_phone_number":"Please enter a valid phone number.","valid_email":"Please enter a valid email.","time_slot_no_available":"This slot is no longer available","price":"Price","export_file_isc":"Export to file isc","confirm_free_booking_successfully":"Thank y
3252ou for booking with us. Your appointment for {{ service.title }} has been successfully reserved.","confirm_free_booking_unsuccessfully":"Whoops, looks like something went wrong.","duration_unit":"minutes","add_guest":"Add guest","book_now":"Book Now","close":"Close","number_of_guest":"Number of guest","apply":"Apply","got_it":"Got it","continue_shopping":"Continue shopping","your_booking_is_reserved":"Your booking is reserved","total":"Total","preference":"Preference","attendance":"Attendance","time_slot":"Time slot","session_date":"Session date","session_schedule":"Session schedule","remove":"Remove","no_time_slot_available_on_this_day":"No time slot available on this day","confirm_your_sessions":"Confirm your sessions","schedule_your_sessions":"Schedule your sessions","services":"Services","description":"Description","choose_your_preferred_time":"Choose your preferred time","remaining_time_message":"Please complete your service booking within {minutes} minutes. After this time, all information will be reset.","order_information":"OTHER INFORMATION","duration_min":"{{ service.duration }} min","duration_unit_hours":"hours","loading":"Loading","search_your_time_zone"
3252:"Search your time zone","time_zone":"Time zone","terms_label":"I accept the","terms_label_of_url":"Terms of Service","terms_url":"","service_options":"Service options","confirm_free_booking_error":"Weâre sorry, your appointment for {{ service.title }} could not be reserved. Please try again or contact us for assistance.","term_error_message":"Please read and accept our terms of service","slot_range":"{{ slot.start }} - {{ slot.end }}","slot_remaining":"{{ slot.remaining }} LEFT","payment_method":"Payment method","pay_now":"Pay now","pay_later":"Pay later","regular_datetime_format":"{{ booking.start_date }} | {{ booking.start_time }} â {{ booking.end_time }}","full_day_datetime_format":"{{ booking.start_date }} | All day","multi_days_datetime_format":"{{ booking.start_date }} at {{ booking.start_time }} â {{ booking.end_date }} at {{ booking.end_time }}","no_available_date":"No available dates this month","next_month":"Next month","phone_error_message":"Phone is invalid","booking_expired_message":"Your booking has expired for payment. We will delete the current booking, and you need to rebook.","free":"Free","view_full_detail":"View full detail","min":"min","hours":"hours","days":"days","minutes":"minutes","Qty":"Qty","unavailable_days":"The selected date range includes unavailable days","over_date_error_message":"Please select at least {{ min }} and at most {{ max }} days","number_of_days":"Number of days","end_date":"End date","start_date":"Start date","customer_sign_in_heading":"Sign in to book your appointment","customer_sign_in_content":"You need to log in before booking. Please sign in to continue.","sign_in":"Sign in","Customer":"Customer","Name":"Name","Email":"Email","Phone":"Phone","someone_booked_error_message":"Someone already booked that time."}}},"languageDatepicker":{"days":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"daysShort":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"daysMin":["Su","Mo","Tu","We","Th","Fr","Sa"],"months":["January","February","March","April","May","June","July","August","September","October","November","December"],"monthsShort":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}},"timezone":{"shop":"Europe\/Rome","server":"UTC"},"version":"2.5"}, 3253 money_format: '<span class=hidden>â¬{{ amount }}</span>', 3254 money_with_currency_format: "<span class=hidden>â¬{{ amount }} EUR</span>", 3255 locale: 'en', 3256 page: { 3257 type: 'page' 3258 }, 3259 configs: { 3260 products: [], 3261 locations: [], 3262 employees: [], 3263 }, 3264 collections: [], 3265 account_login_url: "https://midsummer-milano.com/customer_authentication/redirect?locale=en®ion_country=AM", 3266 currency: "EUR" 3267 } 3268 3269 3270 3271 Tipo.Booking.configs.employees = [ 3272 ...Tipo.Booking.configs.employees, 3273 ...[{"id":64778,"first_name":"Chiara","last_name":"Mennini","avatar":"689b29a7b67a7_1754999207.png","location":"Milano, IT","location_ids":[]}] 3274 ] 3275 3276 3277 3278 3279 Tipo.Booking.use_customer_login = false 3280 Tipo.Booking.trans = Tipo.Booking.settings.translation.widget[Tipo.Booking.locale] || Tipo.Booking.settings.translation.widget.default 3281 3282</script>
3282 3283 3284<style> 3285 :root #tpb-widget-popup, 3286 :root .tpb-book-on-grid-button, 3287 :root [data-layout-type="form"], 3288 :root [tpb-modal]{ 3289 --tpb-color-text: 0, 0, 0; 3290 --tpb-color-textColor: rgba(var(--tpb-color-text),0.91); 3291 --tpb-color-button: 0, 0, 0; 3292 --tpb-color-buttonColor: rgba(var(--tpb-color-button),1); 3293 --tpb-color-button-label: 255, 255, 255; 3294 --tpb-color-button-labelColor: rgba(var(--tpb-color-button-label),0.92); 3295 --tpb-color-button-outline: 0, 0, 0; 3296 --tpb-color-button-outlineColor: rgba(var(--tpb-color-button-outline),1); 3297 3298 --tpb-color-focus: var(--tpb-color-button); 3299 --tpb-color-focusColor: rgba(var(--tpb-color-focus),1); 3300 --tpb-color-error: 239, 83, 80; 3301 --tpb-color-errorColor: rgba(var(--tpb-color-error),1); 3302 3303 --tpb-font-size-small: 11px; 3304 --tpb-font-size-smedium: 12px; 3305 --tpb-font-size-medium: 13px; 3306 --tpb-font-size-large: 16px; 3307 --tpb-font-size-xlarge: 20px; 3308 3309 --tpb-border-radius: 4px; 3310 --tpb-widget-max-width: 864px; 3311 } 3312 .tpb-popup-open{ 3313 overflow: hidden; 3314 } 3315 #tpb-widget-popup{ 3316 width: 100vw; 3317 height: 100vh; 3318 position: fixed; 3319 top: 0; 3320 left: 0; 3321 z-index: 9999; 3322 background: rgba(0, 0, 0, 0.5); 3323 display: flex; 3324 justify-content: center; 3325 align-items: center; 3326 transition: all .4s; 3327 visibility: hidden; 3328 opacity: 0; 3329 } 3330 .tpb-popup-open #tpb-widget-popup{ 3331 visibility: visible; 3332 opacity: 1; 3333 } 3334 .tpb-hidden{ 3335 display: none !important; 3336 } 3337 div.tpb-widget-content-wrapper, 3338 .tpb__modal-module__container, 3339 .tpb__widget-module__calendar{ 3340 background: rgba(255, 255, 255, 1) !important; 3341 } 3342 div.tpb-widget-content-wrapper{ 3343 max-width: 864px; 3344 width: 100%; 3345 padding: 0; 3346 border-radius: 12px; 3347 position: relative; 3348 } 3349 div.tpb-widget-content-wrapper:has(.tpb__completed-module__completed){ 3350 max-width: max-content !important; 3351 } 3352 div.tpb-spinner { 3353 display:none; 3354 width: 56px; 3355 height: 56px; 3356 border-radius: 50%; 3357 background: radial-gradient(farthest-side,#4d01e1 94%,#0000) top/5px 5px no-repeat, 3358 conic-gradient(#0000 30%,#4d01e1); 3359 -webkit-mask: radial-gradient(farthest-side,#0000 calc(100% - 5px),#000 0); 3360 animation: tpb-spinner-c7wet2 0.8s infinite linear; 3361 margin: 20vh auto; 3362 } 3363 .tpb-spinner[data-loading="true"]{ 3364 display: block; 3365 } 3366 @keyframes tpb-spinner-c7wet2 { 3367 100% { 3368 transform: rotate(1turn); 3369 } 3370 } 3371 .tpb-widget-popup-close{ 3372 position: absolute; 3373 top: 0; 3374 right: 0; 3375 width: 56px; 3376 height: 56px; 3377 cursor: pointer; 3378 display: flex; 3379 justify-content: center; 3380 align-items: center; 3381 } 3382 .tpb-widget-content{ 3383 width: 100%; 3384 height: 100%; 3385 display: flex; 3386 flex-direction: column; 3387 gap: 32px; 3388 max-width: var(--tpb-widget-max-width); 3389 padding: 32px; 3390 } 3391 .tpb-book-on-grid-button{ 3392 width: 100%; 3393 padding: 10px 24px; 3394 height: 40px; 3395 cursor: pointer; 3396 font-size: var(--tpb-font-size-medium); 3397 } 3398 @media only screen and (max-width: 599px) { 3399 #tpb-widget-popup{ 3400 align-items: flex-end; 3401 } 3402 div.tpb-widget-content-wrapper{ 3403 width: 100%; 3404 height: auto; 3405 max-height: 90%; 3406 border-bottom-right-radius: 0; 3407 border-bottom-left-radius: 0; 3408 overflow-y: auto; 3409 } 3410 div.tpb-widget-content{ 3411 padding: 16px; 3412 gap: 16px; 3413 } 3414 .tpb-widget-popup-close{ 3415 width: 40px; 3416 height: 40px; 3417 } 3418 } 3419 3420 3421</style> 3422<div id="tpb-widget-popup"> 3423 <div class="tpb-widget-content-wrapper"> 3424 <div class="tpb-spinner"></div> 3425 <div class="tpb-widget-popup-close"> 3426 <!-- BEGIN app snippet: close_icon --><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 3427 <g> 3428 <path id="Vector" d="M13.0306 12.7194C13.1715 12.8603 13.2506 13.0514 13.2506 13.2506C13.2506 13.4499 13.1715 13.641 13.0306 13.7819C12.8897 13.9228 12.6986 14.0019 12.4993 14.0019C12.3001 14.0019 12.109 13.9228 11.9681 13.7819L7.99997 9.81249L4.0306 13.7806C3.8897 13.9215 3.69861 14.0007 3.49935 14.0007C3.30009 14.0007 3.10899 13.9215 2.9681 13.7806C2.8272 13.6397 2.74805 13.4486 2.74805 13.2494C2.74805 13.0501 2.8272 12.859 2.9681 12.7181L6.93747 8.74999L2.96935 4.78061C2.82845 4.63972 2.7493 4.44862 2.7493 4.24936C2.7493 4.05011 2.82845 3.85901 2.96935 3.71811C3.11024 3.57722 3.30134 3.49806 3.5006 3.49806C3.69986 3.49806 3.89095 3.57722 4.03185 3.71811L7.99997 7.68749L11.9693 3.71749C12.1102 3.57659 12.3013 3.49744 12.5006 3.49744C12.6999 3.49744 12.891 3.57659 13.0318 3.71749C13.1727 3.85838 13.2519 4.04948 13.2519 4.24874C13.2519 4.44799 13.1727 4.63909 13.0318 4.77999L9.06247 8.74999L13.0306 12.7194Z" fill="black" /> 3429 </g> 3430</svg> 3431<!-- END app snippet --> 3432 </div> 3433 <div class="tpb-widget-content"></div> 3434 </div> 3435</div> 3436 3437 3438 3439</div><div id="shopify-block-AaUY3TDlOK3J2UVAyQ__4015264832934714879" class="shopify-block shopify-app-block"><!-- BEGIN app snippet: ecomsend-app -->
3439<script type="text/javascript"> 3440 //SendWILL APPS COMMON JS CODE 3441 window.EcomSendApps = window.EcomSendApps || {} 3442 3443 window.EcomSendApps.design_mode = false 3444 3445 3446 window.EcomSendApps.common = window.EcomSendApps.common || {} 3447 window.EcomSendApps.common.shop = { 3448 permanent_domain: 'frugone-1885.myshopify.com', 3449 currency: "EUR", 3450 money_format: "\u003cspan class=hidden\u003eâ¬{{ amount }}\u003c\/span\u003e", 3451 id: 6978829, 3452 } 3453 3454 3455 3456 window.EcomSendApps.common.customer = { 3457 id: null, 3458 tags: null, 3459 email: null, 3460 accepts_marketing: null, 3461 first_name: null, 3462 } 3463 3464 3465 3466 window.EcomSendApps.common.template = 'page' 3467</script>
3467 3468<!-- END app snippet --> 3469
3470<script> 3471 window.EcomSendApps = window.EcomSendApps || {} 3472 /** @description shared localStorage key used by web-pixel sandbox to read storefront GDPR mode */ 3473 const ECOMSEND_GDPR_ENABLED_STORAGE_KEY = "ECOMSEND:GDPR_ENABLED" 3474 /** @description storefront main bundle asset url */ 3475 const ECOMSEND_MAIN_SCRIPT_URL = 'https://cdn.shopify.com/extensions/01a0f197-ce1f-7a19-8adb-6b78fec4702f/ecomsend-209/assets/ecomsend.js' 3476 /** @description storefront style asset url */ 3477 const ECOMSEND_MAIN_STYLE_URL = 'https://cdn.shopify.com/extensions/01a0f197-ce1f-7a19-8adb-6b78fec4702f/ecomsend-209/assets/style.css' 3478 /** @description storefront wasm asset url for runtime signature module */ 3479 const ECOMSEND_WASM_ASSET_URL = 'https://cdn.shopify.com/extensions/01a0f197-ce1f-7a19-8adb-6b78fec4702f/ecomsend-209/assets/client_safe.wasm' 3480 /** @description fallback delay when requestIdleCallback is unavailable */ 3481 const ECOMSEND_IDLE_TIMEOUT_MS = 800 3482 /** @description user interaction events used to trigger lazy init earlier */ 3483 const ECOMSEND_INTERACTION_EVENTS = ["pointerdown", "keydown", "touchstart"] 3484 /** @description global flag key for emergency immediate loading */ 3485 const ECOMSEND_FORCE_IMMEDIATE_FLAG = window.EcomSendApps?.forceImmediateLoad === true 3486 /** @description default GDPR mode comes from block setting and can be overridden on window.EcomSendApps.GDPR */ 3487 const ECOMSEND_DEFAULT_GDPR_FLAG = false 3488 /** @description default CWTracks mode comes from block setting and can be overridden on window.EcomSendApps.CWTracksEnabled */ 3489 const ECOMSEND_DEFAULT_CWTRACKS_ENABLED = false 3490 3491 /** @description normalize merchant-provided GDPR switch into a strict boolean value */ 3492 function normalizeEcomsendBooleanFlag(rawValue) { 3493 if (typeof rawValue === "boolean") { 3494 return rawValue 3495 } 3496 if (typeof rawValue === "number") { 3497 return rawValue === 1 3498 } 3499 if (typeof rawValue === "string") { 3500 const normalizedValue = rawValue.trim().toLowerCase() 3501 return normalizedValue === "true" || normalizedValue === "1" || normalizedValue === "yes" 3502 } 3503 return false 3504 } 3505 3506 /** @description lock runtime switch value on EcomSendApps to reduce accidental console overwrite. */ 3507 function lockEcomsendReadonlyFlag(flagName, flagValue) { 3508 try { 3509 Object.defineProperty(window.EcomSendApps, flagName, { 3510 value: flagValue, 3511 writable: false, 3512 configurable: false, 3513 enumerable: true, 3514 }) 3515 return 3516 } catch (error) {} 3517 window.EcomSendApps[flagName] = flagValue 3518 } 3519 3520 /** @description resolve storefront GDPR mode from merchant theme override */ 3521 function resolveEcomsendGdprMode() { 3522 if (typeof window.EcomSendApps.GDPR === "undefined") { 3523 window.EcomSendApps.GDPR = ECOMSEND_DEFAULT_GDPR_FLAG 3524 } 3525 const gdprEnabled = normalizeEcomsendBooleanFlag(window.EcomSendApps.GDPR) 3526 window.EcomSendApps.GDPR = gdprEnabled 3527 return gdprEnabled 3528 } 3529 3530 /** @description resolve storefront CWTracks mode from merchant theme block setting and runtime override */ 3531 function resolveEcomsendCwTracksMode() { 3532 if (typeof window.EcomSendApps.CWTracksEnabled === "undefined") { 3533 window.EcomSendApps.CWTracksEnabled = ECOMSEND_DEFAULT_CWTRACKS_ENABLED 3534 } 3535 const cwTracksEnabled = normalizeEcomsendBooleanFlag(window.EcomSendApps.CWTracksEnabled) 3536 window.EcomSendApps.CWTracksEnabled = cwTracksEnabled 3537 return cwTracksEnabled 3538 } 3539 3540 /** @description persist storefront GDPR mode so web-pixel sandbox can consume the same switch */ 3541 function syncEcomsendGdprModeToStorage(gdprEnabled) { 3542 if (!window.localStorage) { 3543 return 3544 } 3545 if (gdprEnabled) { 3546 window.localStorage.setItem(ECOMSEND_GDPR_ENABLED_STORAGE_KEY, "true") 3547 return 3548 } 3549 window.localStorage.removeItem(ECOMSEND_GDPR_ENABLED_STORAGE_KEY) 3550 } 3551 3552 /** @description enable GDPR gating only when merchant explicitly turns on storefront GDPR mode */ 3553 const ECOMSEND_GDPR_ENABLED = resolveEcomsendGdprMode() 3554 /** @description enable CWTracks callback/event emit only when merchant turns on CWTracks mode. */ 3555 const ECOMSEND_CWTRACKS_ENABLED = resolveEcomsendCwTracksMode() 3556 lockEcomsendReadonlyFlag("GDPR", ECOMSEND_GDPR_ENABLED) 3557 lockEcomsendReadonlyFlag("CWTracksEnabled", ECOMSEND_CWTRACKS_ENABLED) 3558 3559 try { 3560 syncEcomsendGdprModeToStorage(ECOMSEND_GDPR_ENABLED) 3561 } catch (error) {} 3562 3563 /** @description create main stylesheet node for storefront runtime */ 3564 function createEcomSendMainStyleEle() { 3565 const ecomsendMainStyleEle = document.createElement("link") 3566 ecomsendMainStyleEle.rel = "stylesheet" 3567 ecomsendMainStyleEle.href = ECOMSEND_MAIN_STYLE_URL 3568 ecomsendMainStyleEle.dataset.ecomsendTag = "main-style" 3569 return ecomsendMainStyleEle 3570 } 3571 3572 /** @description append runtime stylesheet exactly once */ 3573 function ensureEcomSendMainStyleLoaded() { 3574 if (document.querySelector('link[data-ecomsend-tag="main-style"]')) { 3575 return 3576 } 3577 const ecomsendMainStyleEle = createEcomSendMainStyleEle() 3578 document.head.appendChild(ecomsendMainStyleEle) 3579 } 3580 3581 /** @description remove interaction listeners after first lazy-init trigger */ 3582 function clearInteractionListeners() {
3583 ECOMSEND_INTERACTION_EVENTS.forEach((eventName) => { 3584 window.removeEventListener(eventName, scheduleMainBundleLoad) 3585 }) 3586 } 3587 3588 /** @description run low-priority task via idle callback with timeout fallback */ 3589 function scheduleLowPriorityTask(taskRunner, timeoutMs) { 3590 if (window.requestIdleCallback) { 3591 window.requestIdleCallback(() => { 3592 taskRunner() 3593 }, { timeout: timeoutMs }) 3594 return 3595 } 3596 window.setTimeout(() => { 3597 taskRunner() 3598 }, timeoutMs) 3599 } 3600 3601 /** @description load main storefront bundle once and keep rollback override */ 3602 function loadEcomsendMainBundle() { 3603 if (window.__ecomsendMainBundleLoaded) { 3604 return 3605 } 3606 window.__ecomsendMainBundleLoaded = true 3607 clearInteractionListeners() 3608 /** @description ensure storefront runtime css is loaded together with main bundle */ 3609 ensureEcomSendMainStyleLoaded() 3610 const ecomsendMainScriptEle = document.createElement("script") 3611 ecomsendMainScriptEle.src = ECOMSEND_MAIN_SCRIPT_URL 3612 ecomsendMainScriptEle.async = true 3613 ecomsendMainScriptEle.dataset.ecomsendTag = "main-script" 3614 document.body.appendChild(ecomsendMainScriptEle) 3615 } 3616 3617 /** @description schedule heavy bundle with idle-first strategy to reduce main-thread contention */ 3618 function scheduleMainBundleLoad() { 3619 if (window.__ecomsendMainBundleLoadScheduled) { 3620 return 3621 } 3622 /** @description dedupe idle scheduling from DOMContentLoaded and first interactions */ 3623 window.__ecomsendMainBundleLoadScheduled = true 3624 if (ECOMSEND_FORCE_IMMEDIATE_FLAG) { 3625 loadEcomsendMainBundle() 3626 return 3627 } 3628 scheduleLowPriorityTask(loadEcomsendMainBundle, ECOMSEND_IDLE_TIMEOUT_MS) 3629 } 3630 3631 /** @description cache marketing params for pixel/report flows before heavy bundle starts */ 3632 function cacheMarketingParams() { 3633 const urlParams = new URLSearchParams(window.location.search) 3634 const marketingId = urlParams.get("ec_marketing_id") 3635 const ecEmailId = urlParams.get("ec_email_id") 3636 const ecMarketingSign = urlParams.get("ec_marketing_sign") 3637 3638 if (marketingId && window.localStorage) { 3639 window.localStorage.setItem("ec_marketing_id", marketingId) 3640 } 3641 if (ecEmailId && window.localStorage) { 3642 window.localStorage.setItem("ec_email_id", ecEmailId) 3643 } 3644 if (ecMarketingSign && window.localStorage) { 3645 window.localStorage.setItem("ec_marketing_sign", ecMarketingSign) 3646 } 3647 } 3648 3649 /** @description check whether marketing storage is allowed under Shopify customer privacy state */ 3650 function isMarketingStorageAllowedByCustomerPrivacy() { 3651 const customerPrivacy = window?.Shopify?.customerPrivacy 3652 if (!customerPrivacy) { 3653 return false 3654 } 3655 const marketingAllowed = typeof customerPrivacy.marketingAllowed === "function" && customerPrivacy.marketingAllowed() 3656 if (marketingAllowed) { 3657 return true 3658 } 3659 if (typeof customerPrivacy.currentVisitorConsent === "function") { 3660 const consent = customerPrivacy.currentVisitorConsent() 3661 return consent?.marketing === "yes" 3662 } 3663 return false 3664 } 3665 3666 /** @description check whether analytics storage is allowed under Shopify customer privacy state */ 3667 function isAnalyticsStorageAllowedByCustomerPrivacy() { 3668 const customerPrivacy = window?.Shopify?.customerPrivacy 3669 if (!customerPrivacy) { 3670 return false 3671 } 3672 const analyticsAllowed = typeof customerPrivacy.analyticsProcessingAllowed === "function" && customerPrivacy.analyticsProcessingAllowed() 3673 if (analyticsAllowed) { 3674 return true 3675 } 3676 if (typeof customerPrivacy.currentVisitorConsent === "function") { 3677 const consent = customerPrivacy.currentVisitorConsent() 3678 return consent?.analytics === "yes" 3679 } 3680 return false 3681 } 3682 3683 /** @description execute marketing param caching with GDPR guard: functional off when GDPR disabled */ 3684 function cacheMarketingParamsWithGdprGuard() { 3685 if (!ECOMSEND_GDPR_ENABLED) { 3686 cacheMarketingParams() 3687 return 3688 } 3689 if (isMarketingStorageAllowedByCustomerPrivacy()) { 3690 cacheMarketingParams() 3691 } 3692 } 3693 3694 /** @description cache shop id used by pixel report branches */ 3695 function cacheShopIdForPixel() { 3696 if (!window.EcomSendApps?.common?.shop?.id || !window.localStorage) { 3697 return 3698 } 3699 window.localStorage.setItem("ECOMSEND:ES_SHOP_ID", window.EcomSendApps.common.shop.id) 3700 } 3701 3702 /** 3703 * Flow client config (e.g. browserStaySeconds) is fetched by the main ecomsend.js bundle: 3704 * bootstrapFlowClientConfig â POST /api/automation/v2/clientFlowConfig (API Sign) 3705 * â localStorage ECOMSEND:FLOW_CLIENT_CONFIG.byEventId â read by web-pixel. 3706 * Keep new C-end Flow config on this path; do not scatter fetches in liquid. 3707 */ 3708 3709 /** @description execute shop id caching with GDPR guard and shared consent policy */ 3710 function cacheShopIdWithGdprGuard() { 3711 if (!ECOMSEND_GDPR_ENABLED) { 3712 cacheShopIdForPixel() 3713 return 3714 } 3715 if (isAnalyticsStorageAllowedByCustomerPrivacy()) { 3716 cacheShopIdForPixel() 3717 } 3718 } 3719 3720 /** @description load Shopify consent-tracking API before GDPR-gated cache writes */ 3721 function withCustomerPrivacyApiReady(onReady) { 3722 if (!ECOMSEND_GDPR_ENABLED) { 3723 onReady() 3724 return 3725 } 3726 if (window?.Shopify?.customerPrivacy) { 3727 onReady() 3728 return 3729 } 3730 if (typeof window?.Shopify?.loadFeatures !== "function") { 3731 return 3732 } 3733 window.Shopify.loadFeatures( 3734 [{ name: "consent-tracking-api", version: "0.1" }], 3735 (error) => { 3736 if (error) { 3737 return 3738 } 3739 onReady() 3740 } 3741 ) 3742 } 3743 3744 try { 3745 withCustomerPrivacyApiReady(() => { 3746 cacheMarketingParamsWithGdprGuard() 3747 cacheShopIdWithGdprGuard() 3748 }) 3749 if (ECOMSEND_GDPR_ENABLED) { 3750 document.addEventListener("visitorConsentCollected", () => { 3751 cacheMarketingParamsWithGdprGuard() 3752 cacheShopIdWithGdprGuard() 3753 }) 3754 } 3755 } catch (e) {} 3756 3757 /** @description inject wasm asset url into shared namespace before main bundle executes */ 3758 window.EcomSendApps.wasmURL = ECOMSEND_WASM_ASSET_URL 3759
3760 ECOMSEND_INTERACTION_EVENTS.forEach((eventName) => { 3761 window.addEventListener(eventName, scheduleMainBundleLoad, { once: true, passive: true }) 3762 }) 3763 3764 if (document.readyState === "loading") { 3765 document.addEventListener("DOMContentLoaded", scheduleMainBundleLoad, { once: true }) 3766 } else { 3767 scheduleMainBundleLoad() 3768 } 3769</script>
3769 3770 3771<style id="ecomsend-custom-style"></style> 3772
3773<script>window.shopLocale = 'en'</script>
3773 3774
3775<script> 3776 /** @description timeout used for deferred discount request scheduling */ 3777 const ECOMSEND_DISCOUNT_IDLE_TIMEOUT_MS = 1500 3778 3779 /** @description apply discount code from url query only when parameter exists */ 3780 function applyWillDiscountCode() { 3781 const urlParams = new URLSearchParams(window.location.search) 3782 const willDiscountCode = urlParams.get("willDiscountCode") 3783 if (!willDiscountCode || /[\u0000-\u001F\u007F]/.test(willDiscountCode)) { 3784 return 3785 } 3786 fetch("/cart/update.js", { 3787 method: "POST", 3788 headers: { 3789 "Content-Type": "application/json", 3790 }, 3791 body: JSON.stringify({ 3792 discount: willDiscountCode, 3793 }), 3794 }) 3795 } 3796 3797 try { 3798 if (!window.__ecomsendDeferredTasksScheduled) { 3799 /** @description global guard to avoid duplicate deferred task scheduling */ 3800 window.__ecomsendDeferredTasksScheduled = true 3801 if (window.requestIdleCallback) { 3802 window.requestIdleCallback(() => { 3803 applyWillDiscountCode() 3804 }, { timeout: ECOMSEND_DISCOUNT_IDLE_TIMEOUT_MS }) 3805 } else { 3806 window.setTimeout(() => { 3807 applyWillDiscountCode() 3808 }, ECOMSEND_DISCOUNT_IDLE_TIMEOUT_MS) 3809 } 3810 } 3811 } catch (error) {} 3812</script>
3812 3813 3814 3815 3816</div><div id="shopify-block-AeXVNeFFXTDJQeW0xa__9278379683843197553" class="shopify-block shopify-app-block">
3816<script> 3817 window.AppointoProductObject = {"shop_id":83162,"product_details":[{"handle":"book-a-showroom-visit","id":"gid:\/\/shopify\/Product\/10196624671056","activate":true,"show_widget":true}],"locale_values":{"de":{"addToCart":"In den Warenkorb","loadingCalendar":"Kalender wird geladen"},"it":{"addToCart":"Aggiungi al carrello","loadingCalendar":"Caricamento calendario"},"tr":{"addToCart":"Sepete Ekle","loadingCalendar":"Takvim Yükleniyor"},"pl":{"addToCart":"Dodaj do koszyka","loadingCalendar":"Åadowanie kalendarza"},"sk":{"addToCart":"PridaÅ¥ do koÅ¡Ãka","loadingCalendar":"NaÄÃtava sa kalendár"},"et":{"addToCart":"Lisa ostukorvi","loadingCalendar":"Laeb kalendrit"},"vi":{"addToCart":"Thêm và o giá» hà ng","loadingCalendar":"Äang tải lá»ch"},"cs":{"addToCart":"PÅidat do koÅ¡Ãku","loadingCalendar":"NaÄÃtánà kalendáÅe"},"et-EE":{"addToCart":"Lisa ostukorvi","loadingCalendar":"Laeb kalendrit"},"lv":{"addToCart":"Pievienot groziÅam","loadingCalendar":"LÄdÄ kalendÄru"},"fi":{"addToCart":"Lisää ostoskoriin","loadingCalendar":"Ladataan kalenteria"},"is":{"addToCart":"Bæta við körfu","loadingCalendar":"Hleður dagatal"},"ar":{"addToCart":"اض٠اÙ٠عربة Ø§ÙØªØ³ÙÙ","loadingCalendar":"تØÙ ÙÙ Ø§ÙØªÙÙÙÙ "},"bg":{"addToCart":"ÐобавÑне кÑм ÐолиÑкаÑа","loadingCalendar":"ÐалендаÑÑÑ Ñе заÑежда"},"pt":{"addToCart":"Adicionar ao carrinho","loadingCalendar":"Carregando calendário"},"nl":{"addToCart":"BOEK DEZE SESSIE","loadingCalendar":"Kalender laden"},"sl":{"addToCart":"Dodaj v voziÄek","loadingCalendar":"Nalaganje koledarja"},"zh-tw":{"addToCart":"å å ¥è³¼ç©è»","loadingCalendar":"å è½½æ¥å"},"en":{"addToCart":"Add to Cart","loadingCalendar":"Loading Calendar"},"da":{"addToCart":"Tilføj til kurv","loadingCalendar":"Indlæser kalender"},"ms":{"addToCart":"Tambah ke Troli","loadingCalendar":"Memuatkan Kalendar"},"no":{"addToCart":"Legg i handlekurv","loadingCalendar":"Laster kalender"},"hu":{"addToCart":"Kosárba helyezés","loadingCalendar":"Naptár betöltése"},"ca":{"addToCart":"Afegeix a la cistella","loadingCalendar":"S'està carregant el calendari"},"id":{"addToCart":"Masukkan ke keranjang","loadingCalendar":"Memuat Kalender"},"ja":{"addToCart":"ã«ã¼ãã«å ¥ãã","loadingCalendar":"ã«ã¬ã³ãã¼ãèªã¿è¾¼ãã§ãã¾ã"},"ru":{"addToCart":"ÐобавиÑÑ Ð² коÑзинÑ","loadingCalendar":"ÐагÑÑзка календаÑÑ"},"th":{"addToCart":"หยิà¸à¹à¸ªà¹à¸£à¸à¹à¸à¹à¸","loadingCalendar":"à¸à¸³à¸¥à¸±à¸à¹à¸«à¸¥à¸à¸à¸à¸´à¸à¸´à¸"},"fr":{"addToCart":"Ajouter au panier","loadingCalendar":"Chargement du calendrier"},"es":{"addToCart":"Añadir al carrito","loadingCalendar":"Cargando Calendario"},"ro":{"addToCart":"AdaugÄ Ã®n coÈ","loadingCalendar":"Se încarcÄ calendarul"},"sv":{"addToCart":"Lägg till i kundvagn","loadingCalendar":"Laddar kalender"}}}; 3818</script>
3818 3819 3820</div>
3820<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
3820 3821</body> 3822</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.