{"status":200,"features":{},"experiments":[{"key":"Tactical_test_all_watches_vs_collection_editorial_page","changeId":"274ef6078d274421de6c59b435e761ce92c8a68fc8b5481d3b24c161d5cabd21","status":"draft","variations":[{"urlRedirect":""},{"urlRedirect":"https://www.breitling.com/us-en/collections/men/"}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"pattern":"https://www.breitling.com/us-en/watches/men/","type":"simple"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"033eb895-d563-4a1c-ac9b-14172b766bc2","name":"Tactical Test All watches Vs Collection editorial page","phase":"0","coverage":1,"persistQueryString":true},{"key":"Tactical_test_all_watches_vs_collection_editorial_page","changeId":"0ea663d2a8b19940b19e323b6defd2488b69aa42387db4306930b5701f5a477a","status":"draft","variations":[{"urlRedirect":""},{"urlRedirect":"https://www.breitling.com/ch-en/collections/men/"}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"pattern":"https://www.breitling.com/ch-en/watches/men/","type":"simple"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"033eb895-d563-4a1c-ac9b-14172b766bc2","name":"Tactical Test All watches Vs Collection editorial page","phase":"0","coverage":1,"persistQueryString":true},{"key":"Tactical_test_all_watches_vs_collection_editorial_page","changeId":"8edcc8075c12e2517c73bee61aa4bc7c87c5198ecf9351556ef25569ad8a2b08","status":"draft","variations":[{"urlRedirect":""},{"urlRedirect":"https://www.breitling.com/ch-fr/collections/men/"}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"pattern":"https://www.breitling.com/ch-fr/watches/men/","type":"simple"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"033eb895-d563-4a1c-ac9b-14172b766bc2","name":"Tactical Test All watches Vs Collection editorial page","phase":"0","coverage":1,"persistQueryString":true},{"key":"Tactical_test_all_watches_vs_collection_editorial_page","changeId":"dcdc5c66dff77f3eba9b83378e7160149ec6f9ebc72ceb6a36a11f013d36afcb","status":"draft","variations":[{"urlRedirect":""},{"urlRedirect":"https://www.breitling.com/ch-it/collections/men/"}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"pattern":"https://www.breitling.com/ch-it/watches/men/","type":"simple"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"033eb895-d563-4a1c-ac9b-14172b766bc2","name":"Tactical Test All watches Vs Collection editorial page","phase":"0","coverage":1,"persistQueryString":true},{"key":"Tactical_test_all_watches_vs_collection_editorial_page","changeId":"c8dff563d63b849f5e39ecf25cc97ef5b2f1fea99ece853e6dac996b6c4df88d","status":"draft","variations":[{"urlRedirect":""},{"urlRedirect":"https://www.breitling.com/ch-zh/collections/men/"}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"pattern":"https://www.breitling.com/ch-zh/watches/men/","type":"simple"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"033eb895-d563-4a1c-ac9b-14172b766bc2","name":"Tactical Test All watches Vs Collection editorial page","phase":"0","coverage":1,"persistQueryString":true},{"key":"Tactical_test_all_watches_vs_collection_editorial_page","changeId":"bf01e18632075ae1c5ac81d082a17a400cb01a4b918a4061b5631be2a0174846","status":"draft","variations":[{"urlRedirect":""},{"urlRedirect":"https://www.breitling.com/ch-de/collections/men/"}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"pattern":"https://www.breitling.com/ch-de/watches/men/","type":"simple"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"033eb895-d563-4a1c-ac9b-14172b766bc2","name":"Tactical Test All watches Vs Collection editorial page","phase":"0","coverage":1,"persistQueryString":true},{"key":"Tactical_test_all_watches_vs_collection_editorial_page","changeId":"01de2bda8739a8e85abb2a9399ade80d25865ef7d62372411e3f883d925b1d6d","status":"draft","variations":[{"urlRedirect":""},{"urlRedirect":"https://www.breitling.com/us-zh/collections/men"}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"pattern":"https://www.breitling.com/us-zh/watches/men","type":"simple"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"033eb895-d563-4a1c-ac9b-14172b766bc2","name":"Tactical Test All watches Vs Collection editorial page","phase":"0","coverage":1,"persistQueryString":true},{"key":"Tactical_test_all_watches_vs_collection_editorial_page","changeId":"b7bf2a097854a7de4137eaadfa742251f22fecc49cee27809c74605148943886","status":"draft","variations":[{"urlRedirect":""},{"urlRedirect":"https://www.breitling.com/us-es/collections/men"}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"pattern":"https://www.breitling.com/us-es/watches/men","type":"simple"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"033eb895-d563-4a1c-ac9b-14172b766bc2","name":"Tactical Test All watches Vs Collection editorial page","phase":"0","coverage":1,"persistQueryString":true},{"key":"Tactical_test_all_watches_vs_collection_editorial_page","changeId":"2f0a961b6dd5483344402402a0cec88788f4aff84f894271c12f0d406d3faec3","status":"draft","variations":[{"urlRedirect":""},{"urlRedirect":"https://www.breitling.com/gb-en/collections/men"}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"pattern":"https://www.breitling.com/gb-en/watches/men","type":"simple"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"033eb895-d563-4a1c-ac9b-14172b766bc2","name":"Tactical Test All watches Vs Collection editorial page","phase":"0","coverage":1,"persistQueryString":true},{"key":"Tactical_test_all_watches_vs_collection_editorial_page","changeId":"a19679d0e1f9293279b57b1babf300b65d37f8c8861cb5f6f505765f71298363","status":"draft","variations":[{"urlRedirect":""},{"urlRedirect":"https://www.breitling.com/gb-zh/collections/men"}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"pattern":"https://www.breitling.com/gb-zh/watches/men","type":"simple"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"033eb895-d563-4a1c-ac9b-14172b766bc2","name":"Tactical Test All watches Vs Collection editorial page","phase":"0","coverage":1,"persistQueryString":true},{"key":"Tactical_test_all_watches_vs_collection_editorial_page","changeId":"178c9105be1e9666c69640b41c6067998cc28a6dff14c9507250891936632d52","status":"draft","variations":[{"urlRedirect":""},{"urlRedirect":"https://www.breitling.com/de-en/collections/men"}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"pattern":"https://www.breitling.com/de-en/watches/men","type":"simple"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"033eb895-d563-4a1c-ac9b-14172b766bc2","name":"Tactical Test All watches Vs Collection editorial page","phase":"0","coverage":1,"persistQueryString":true},{"key":"Tactical_test_all_watches_vs_collection_editorial_page","changeId":"afa49d22566e5196850557ee785500ee3fa52654a75fbe052039a7691112cc15","status":"draft","variations":[{"urlRedirect":""},{"urlRedirect":"https://www.breitling.com/de-zh/collections/men"}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"pattern":"https://www.breitling.com/de-zh/watches/men","type":"simple"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"033eb895-d563-4a1c-ac9b-14172b766bc2","name":"Tactical Test All watches Vs Collection editorial page","phase":"0","coverage":1,"persistQueryString":true},{"key":"Tactical_test_all_watches_vs_collection_editorial_page","changeId":"87caa56960df1dd928db84af9f4c16fbf131d3c2b012edc251a7ccb7fbcc9db9","status":"draft","variations":[{"urlRedirect":""},{"urlRedirect":"https://www.breitling.com/de-de/collections/men"}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"pattern":"https://www.breitling.com/de-de/watches/men","type":"simple"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"033eb895-d563-4a1c-ac9b-14172b766bc2","name":"Tactical Test All watches Vs Collection editorial page","phase":"0","coverage":1,"persistQueryString":true},{"key":"Tactical_test_all_watches_vs_collection_editorial_page","changeId":"5a2704fb9d6793193e71242fa2469ae39c50747f2ff47cfe9874d812cc7a819c","status":"draft","variations":[{"urlRedirect":""},{"urlRedirect":"https://www.breitling.com/fr-en/collections/men"}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"pattern":"https://www.breitling.com/fr-en/watches/men","type":"simple"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"033eb895-d563-4a1c-ac9b-14172b766bc2","name":"Tactical Test All watches Vs Collection editorial page","phase":"0","coverage":1,"persistQueryString":true},{"key":"Tactical_test_all_watches_vs_collection_editorial_page","changeId":"9d2391df40c33afe1d9769010e61355dab0a987b3de55c25c65f02481710e948","status":"draft","variations":[{"urlRedirect":""},{"urlRedirect":"https://www.breitling.com/fr-zh/collections/men"}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"pattern":"https://www.breitling.com/fr-zh/watches/men","type":"simple"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"033eb895-d563-4a1c-ac9b-14172b766bc2","name":"Tactical Test All watches Vs Collection editorial page","phase":"0","coverage":1,"persistQueryString":true},{"key":"Tactical_test_all_watches_vs_collection_editorial_page","changeId":"cad5d0db8e6e6b3cc42350dec6b0df30f9abf453871a6d2ebd0533f4bbc8877f","status":"draft","variations":[{"urlRedirect":""},{"urlRedirect":"https://www.breitling.com/fr-fr/collections/men"}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"pattern":"https://www.breitling.com/fr-fr/watches/men","type":"simple"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"033eb895-d563-4a1c-ac9b-14172b766bc2","name":"Tactical Test All watches Vs Collection editorial page","phase":"0","coverage":1,"persistQueryString":true},{"key":"change-color-cta-add-bag","changeId":"3541d5b61579d6bb98d5f3c9fad611515c97b5b4f65792b33c7f46a2b3e38502","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"button[data-test-id=\"ProductDetailCTA\"] {\n\tbackground-color: #062c53;\n\tborder-color: #062c53;\n\tcolor: #fff;\n}","js":"","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"type":"regex","pattern":".*(it-|gb-|de-|ch-|fr-)[a-z]{2}\\/watches\\/.+\\/[A-Z0-9]{10,20}\\/?.*"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"01fbb910-0773-411d-8ebf-418f56b1b28c","name":"Change Color CTA Add to Bag","phase":"0","condition":{"url":{"$regex":".*(it-|gb-|de-|ch-|fr-)[a-z]{2}\\/watches\\/.+\\/[A-Z0-9]{10,20}\\/?.*"}},"coverage":1},{"key":"27-pdp-sticky-conversion-ctas","changeId":"ff7b32c9e3970b9b162eeb42e693a03bc925a06e15db809ec86049f3daf71d3b","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"#sticky-pdp-btn,\n#sticky-pdp-price,\n#sticky-pdp-title {\n\tfont-size: 0.875rem;\n\tfont-weight: 600;\n}\n#sticky-pdp-bar {\n\tposition: fixed;\n\tbottom: 0;\n\tleft: 0;\n\twidth: 100%;\n\tbackground: #fff;\n\tborder-top: 1px solid #e0e0e0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tz-index: 14;\n\ttransition: transform 0.25s;\n\ttransform: translateY(100%);\n\tgap: 18px;\n}\n#sticky-pdp-content {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n\twidth: calc(100% - 200px);\n}\n#sticky-pdp-content .text-price {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\twidth: 100%;\n}\n#sticky-pdp-img {\n\twidth: 60px;\n\theight: 60px;\n\tobject-fit: cover;\n}\n#sticky-pdp-btn {\n\tmargin: 10px 10px 10px 0;\n\t-webkit-box-pack: center;\n\t-webkit-box-align: center;\n\talign-items: center;\n\twhite-space: nowrap;\n\ttransition:\n\t\tbackground-color 0.3s ease-in-out,\n\t\tcolor 0.3s ease-in-out,\n\t\tborder-color 0.3s ease-in-out;\n\tdisplay: flex;\n\tfont-family: __openSans_025993, __openSans_Fallback_025993;\n\tfont-size: 0.875rem;\n\tbackground-color: #ffc72c;\n\tcolor: #000;\n\tuser-select: none;\n\ttext-transform: uppercase;\n\twidth: 200px;\n\theight: 60px;\n\tjustify-content: center;\n}\n#sticky-pdp-btn:hover {\n\tcolor: #000;\n\tbackground-color: #fff;\n\tborder: 2px solid;\n}\n@media screen and (max-width: 868px) {\n\t#sticky-pdp-content {\n\t\tdisplay: none;\n\t}\n\t#sticky-pdp-btn {\n\t\twidth: 100%;\n\t\tmargin: 0;\n\t}\n}\nbody:has([data-test-id=\"ShoppingBagDrawerWrapper\"]) #sticky-pdp-bar{\n\ttransform: translateY(100%)!important;\n}","js":"!(function () {\n\tconst STATE_KEY = '__JAK_STICKY_PDP_BAR_STATE__';\n\tconst DATA_LAYER_FLAG = '__JAK_STICKY_PDP_DATALAYER_WRAPPED__';\n\n\tif (window[STATE_KEY] && typeof window[STATE_KEY].destroy === 'function') {\n\t\twindow[STATE_KEY].destroy();\n\t}\n\n\tlet currentUrl = location.href;\n\tlet a2cClicked = false;\n\tlet waitingForDrawer = false;\n\tlet ctaObserver = null;\n\tlet drawerObserver = null;\n\tlet scrollHandler = null;\n\tlet originalButton = null;\n\tlet originalButtonClickHandler = null;\n\tlet stickyButton = null;\n\tlet stickyButtonClickHandler = null;\n\tlet initTimeout = null;\n\tlet initInterval = null;\n\t\n\tconst lang = document.documentElement.lang\n        ? document.documentElement.lang.toLowerCase().slice(0, 2)\n        : 'en';\n\n\tconst translations = {\n\t\tit: 'Aggiungi al carrello',\n\t\ten: 'Add to bag',\n\t\tfr: 'Ajouter au panier',\n\t\tes: 'Añadir al carrito',\n\t\tde: 'In den Warenkorb',\n\t\tzh: '加入购物袋',\n\t};\n\n\tfunction clearInitTimers() {\n\t\tif (initTimeout) {\n\t\t\tclearTimeout(initTimeout);\n\t\t\tinitTimeout = null;\n\t\t}\n\n\t\tif (initInterval) {\n\t\t\tclearInterval(initInterval);\n\t\t\tinitInterval = null;\n\t\t}\n\t}\n\n\tfunction cleanup() {\n\t\tclearInitTimers();\n\n\t\tif (drawerObserver) {\n\t\t\tdrawerObserver.disconnect();\n\t\t\tdrawerObserver = null;\n\t\t}\n\t\t\n\t\tif (ctaObserver) {\n\tctaObserver.disconnect();\n\tctaObserver = null;\n}\n\n\t\tif (scrollHandler) {\n\t\t\twindow.removeEventListener('scroll', scrollHandler);\n\t\t\tscrollHandler = null;\n\t\t}\n\n\t\tif (originalButton && originalButtonClickHandler) {\n\t\t\toriginalButton.removeEventListener('click', originalButtonClickHandler);\n\t\t}\n\n\t\tif (stickyButton && stickyButtonClickHandler) {\n\t\t\tstickyButton.removeEventListener('click', stickyButtonClickHandler);\n\t\t}\n\n\t\toriginalButton = null;\n\t\toriginalButtonClickHandler = null;\n\t\tstickyButton = null;\n\t\tstickyButtonClickHandler = null;\n\n\t\tdocument.querySelectorAll('#sticky-pdp-bar').forEach(function (bar) {\n\t\t\tbar.remove();\n\t\t});\n\t}\n\t\n\nconst isAddToBagCTA = (button) => {\n\tconst buttonText = button.textContent\n\t\t.trim()\n\t\t.replace(/\\s+/g, ' ')\n\t\t.toLowerCase();\n\n\tconst expectedText = (translations[lang] ?? translations.en)\n\t\t.toLowerCase();\n\n\treturn buttonText === expectedText;\n};\n\nconst observeOriginalCTA = (button) => {\n\tif (ctaObserver) {\n\t\tctaObserver.disconnect();\n\t}\n\n\tctaObserver = new MutationObserver(() => {\n\t\tconst isPurchasable = isAddToBagCTA(button);\n\t\tconst existingStickyBar = document.getElementById('sticky-pdp-bar');\n\n\t\tif (!isPurchasable && existingStickyBar) {\n\t\t\texistingStickyBar.remove();\n\n\t\t\tif (scrollHandler) {\n\t\t\t\twindow.removeEventListener('scroll', scrollHandler);\n\t\t\t\tscrollHandler = null;\n\t\t\t}\n\n\t\t\tif (stickyButton && stickyButtonClickHandler) {\n\t\t\t\tstickyButton.removeEventListener(\n\t\t\t\t\t'click',\n\t\t\t\t\tstickyButtonClickHandler\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tstickyButton = null;\n\t\t\tstickyButtonClickHandler = null;\n\t\t}\n\n\t\tif (isPurchasable && !existingStickyBar) {\n\t\t\ta2cClicked = false;\n\t\t\twaitingForDrawer = false;\n\t\t\tscheduleInit(100);\n\t\t}\n\t});\n\n\tctaObserver.observe(button, {\n\t\tchildList: true,\n\t\tsubtree: true,\n\t\tcharacterData: true,\n\t});\n};\n\n\tfunction init() {\n\n\t\tif (document.getElementById('sticky-pdp-bar')) {\n\t\t\treturn true;\n\t\t}\n\noriginalButton = document.querySelector(\n\t'[data-test-id=\"ProductDetailAddToBagCTA\"]'\n);\n\nif (!originalButton) {\n\treturn false;\n}\n\nobserveOriginalCTA(originalButton);\n\nif (!originalButton.textContent.trim()) {\n\treturn false;\n}\n\nif (!isAddToBagCTA(originalButton)) {\n\tdocument.getElementById('sticky-pdp-bar')?.remove();\n\treturn false;\n}\n\t\tconst productName = document.querySelector(\n\t\t\t'[data-test-id=\"ProductDetailName\"]'\n\t\t);\n\n\t\tconst productPrice = document.querySelector('[data-test-id=\"PriceText\"]');\n\n\t\tconst productImage = document.querySelector(\n\t\t\t'[data-test-id=\"CarouselSwiperSlide-0\"] img'\n\t\t);\n\t\t\n\n\t\tif (!productName || !productPrice || !productImage) {\n\t\t\treturn false;\n\t\t}\n\n\t\tclearInitTimers();\n\n\t\tconst stickyBar = document.createElement('div');\n\t\tstickyBar.id = 'sticky-pdp-bar';\n\n\t\tconst stickyContent = document.createElement('div');\n\t\tstickyContent.id = 'sticky-pdp-content';\n\n\t\tconst stickyImage = document.createElement('img');\n\t\tstickyImage.id = 'sticky-pdp-img';\n\t\tstickyImage.src = productImage.src;\n\nconst textPrice = document.createElement('div');\ntextPrice.classList.add('text-price');\n\nconst stickyTitle = document.createElement('div');\nstickyTitle.id = 'sticky-pdp-title';\nstickyTitle.textContent = productName.textContent.trim();\n\nconst stickyPrice = document.createElement('div');\nstickyPrice.id = 'sticky-pdp-price';\nstickyPrice.textContent = productPrice.textContent.trim();\n\ntextPrice.appendChild(stickyTitle);\ntextPrice.appendChild(stickyPrice);\n\n\t\tstickyButton = document.createElement('button');\n\t\tstickyButton.id = 'sticky-pdp-btn';\n\n\t\t// const language = document.documentElement.lang\n\t\t// \t? document.documentElement.lang.toLowerCase().slice(0, 2)\n\t\t// \t: 'en';\n\n\t\tstickyButton.innerText =  translations[lang] ?? translations.en;\n\n\t\tfunction hideStickyBar() {\n\t\t\ta2cClicked = true;\n\t\t\twaitingForDrawer = false;\n\n\t\t\tstickyBar.style.transform = 'translateY(100%)';\n\n\t\t\tif (drawerObserver) {\n\t\t\t\tdrawerObserver.disconnect();\n\t\t\t\tdrawerObserver = null;\n\t\t\t}\n\t\t}\n\n\t\tfunction waitForShoppingBagDrawer() {\n\t\t\tif (a2cClicked || waitingForDrawer) return;\n\n\t\t\twaitingForDrawer = true;\n\n\t\t\tconst existingDrawer = document.querySelector(\n\t\t\t\t'[data-test-id=\"ShoppingBagDrawerWrapper\"]'\n\t\t\t);\n\n\t\t\tif (existingDrawer) {\n\t\t\t\thideStickyBar();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdrawerObserver = new MutationObserver(function () {\n\t\t\t\tconst shoppingBagDrawer = document.querySelector(\n\t\t\t\t\t'[data-test-id=\"ShoppingBagDrawerWrapper\"]'\n\t\t\t\t);\n\n\t\t\t\tif (!shoppingBagDrawer) return;\n\n\t\t\t\thideStickyBar();\n\t\t\t});\n\n\t\t\tdrawerObserver.observe(document.body, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t});\n\t\t}\n\n\t\toriginalButtonClickHandler = waitForShoppingBagDrawer;\n\n\t\toriginalButton.addEventListener('click', originalButtonClickHandler);\n\n\t\tstickyButtonClickHandler = function () {\n\t\t\twaitForShoppingBagDrawer();\n\t\t\toriginalButton.click();\n\t\t};\n\n\t\tstickyButton.addEventListener('click', stickyButtonClickHandler);\n\n\t\tstickyContent.appendChild(stickyImage);\n\t\tstickyContent.appendChild(textPrice);\n\n\t\tstickyBar.appendChild(stickyContent);\n\t\tstickyBar.appendChild(stickyButton);\n\n\t\tdocument.body.appendChild(stickyBar);\n\n\t\tscrollHandler = function () {\n\t\t\tif (\n\t\t\t\t!document.body.contains(stickyBar) ||\n\t\t\t\t!document.body.contains(originalButton)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (a2cClicked) {\n\t\t\t\tstickyBar.style.transform = 'translateY(100%)';\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst originalButtonAboveViewport =\n\t\t\t\toriginalButton.getBoundingClientRect().bottom < 0;\n\n\t\t\tconst footer = document.querySelector('footer');\n\t\t\tlet footerVisible = false;\n\n\t\t\tif (footer) {\n\t\t\t\tfooterVisible = footer.getBoundingClientRect().top < window.innerHeight;\n\t\t\t}\n\n\t\t\tif (footerVisible) {\n\t\t\t\tstickyBar.style.transform = 'translateY(100%)';\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tstickyBar.style.transform = originalButtonAboveViewport\n\t\t\t\t? 'translateY(0)'\n\t\t\t\t: 'translateY(100%)';\n\t\t};\n\n\t\twindow.addEventListener('scroll', scrollHandler);\n\n\t\tscrollHandler();\n\n\t\treturn true;\n\t}\n\n\tfunction scheduleInit(delay) {\n\t\tclearInitTimers();\n\n\t\tinitTimeout = setTimeout(function () {\n\t\t\tinitTimeout = null;\n\n\t\t\tif (init()) return;\n\n\t\t\tlet attempts = 0;\n\n\t\t\tinitInterval = setInterval(function () {\n\t\t\t\tattempts++;\n\n\t\t\t\tif (init() || attempts >= 30) {\n\t\t\t\t\tclearInterval(initInterval);\n\t\t\t\t\tinitInterval = null;\n\t\t\t\t}\n\t\t\t}, 200);\n\t\t}, delay);\n\t}\n\n\tfunction handleDataLayerEvent(eventData) {\n\t\tif (\n\t\t\t!eventData ||\n\t\t\teventData.event !== 'page_view' ||\n\t\t\tlocation.href === currentUrl\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tcurrentUrl = location.href;\n\t\ta2cClicked = false;\n\t\twaitingForDrawer = false;\n\n\t\tcleanup();\n\t\tscheduleInit(200);\n\t}\n\n\twindow[STATE_KEY] = {\n\t\tdestroy: cleanup,\n\t\thandleDataLayerEvent: handleDataLayerEvent,\n\t};\n\n\twindow.dataLayer = window.dataLayer || [];\n\n\tif (!window.dataLayer[DATA_LAYER_FLAG]) {\n\t\tconst originalDataLayerPush = window.dataLayer.push;\n\n\t\twindow.dataLayer.push = function () {\n\t\t\tconst result = originalDataLayerPush.apply(this, arguments);\n\n\t\t\tconst state = window[STATE_KEY];\n\n\t\t\tif (state && typeof state.handleDataLayerEvent === 'function') {\n\t\t\t\tstate.handleDataLayerEvent(arguments[0]);\n\t\t\t}\n\n\t\t\treturn result;\n\t\t};\n\n\t\twindow.dataLayer[DATA_LAYER_FLAG] = true;\n\t}\n\n\tcleanup();\n\tscheduleInit(300);\n})();\n","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"type":"regex","pattern":".*\\/watches\\/.+\\/[A-Z0-9]{10,20}\\/?.*"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"dacd9426-e125-4796-accc-1c5fb84a271b","name":"#27 | PDP | Sticky Conversion CTAs","phase":"0","condition":{"url":{"$regex":"^https:\\/\\/www\\.breitling\\.com\\/(?:us-(?:en|zh|es)|gb-(?:en|zh)|ch-(?:en|zh|de|fr|it)|de-(?:en|zh|de)|fr-(?:en|zh|fr))\\/watches\\/.+\\/[A-Z0-9]{10,20}\\/?$"}},"coverage":1},{"key":"9-plp-expandend-filters-size","changeId":"4e44bc1deca601913be65e0ff0412db381c526253fe540044fa86698389491fe","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"","js":"(function () {\n  \"use strict\";\n\n  const S = {\n    filtersBtn: 'button[data-testid=\"FiltersButton\"]',\n    details: 'details[data-test-id=\"FiltersModalFilterAccordion\"]',\n    closeBtn: 'button[data-testid=\"FiltersModalCloseButton\"]',\n    listingCol: '[data-test-id=\"ListingFiltersColumn2\"]',\n    overlay: '[data-test-id=\"OverlayWrapper\"]'\n  };\n\n  const DIAMETRO_INDEX = 4;\n  const PREP_CLASS = \"gb-prep-filters\";\n  const TIMEOUT_MS = 5000;\n  const POLL_MS = 120;\n  const DONE_KEY = \"gb_filters_warmup_done_base_v2\";\n\n  let busy = false;\n  let pollTimer = null;\n  let lastBase = getBaseUrl(location.href);\n  let runTimer = null;\n\n  function getBaseUrl(href) {\n    try {\n      const u = new URL(href);\n      return u.origin + u.pathname;\n    } catch (_) {\n      return href.split(\"?\")[0].split(\"#\")[0];\n    }\n  }\n\n  function getDoneBase() {\n    try {\n      return sessionStorage.getItem(DONE_KEY) || \"\";\n    } catch (_) {\n      return \"\";\n    }\n  }\n\n  function markDoneForBase(base) {\n    try {\n      sessionStorage.setItem(DONE_KEY, base);\n    } catch (_) {}\n  }\n\n  function isDoneForBase(base) {\n    return getDoneBase() === base;\n  }\n\n  function stopPoll() {\n    if (pollTimer) {\n      clearTimeout(pollTimer);\n      pollTimer = null;\n    }\n  }\n\n  function injectCSSOnce() {\n    if (document.getElementById(\"gb-filters-prep-style\")) return;\n    const style = document.createElement(\"style\");\n    style.id = \"gb-filters-prep-style\";\n    style.textContent = `\n      html.${PREP_CLASS} ${S.listingCol}{ visibility: hidden !important; }\n      html.${PREP_CLASS} ${S.overlay}{ display: none !important; }\n      html.${PREP_CLASS}{ cursor: progress !important; }\n    `;\n    document.head.appendChild(style);\n  }\n\n  function waitFor(selector, timeoutMs = TIMEOUT_MS) {\n    const start = Date.now();\n    return new Promise((resolve) => {\n      const tick = () => {\n        const el = document.querySelector(selector);\n        if (el) return resolve(el);\n        if (Date.now() - start >= timeoutMs) return resolve(null);\n        pollTimer = setTimeout(tick, POLL_MS);\n      };\n      tick();\n    });\n  }\n\n  function waitForAll(selector, timeoutMs = TIMEOUT_MS) {\n    const start = Date.now();\n    return new Promise((resolve) => {\n      const tick = () => {\n        const els = document.querySelectorAll(selector);\n        if (els && els.length) return resolve(els);\n        if (Date.now() - start >= timeoutMs) return resolve(null);\n        pollTimer = setTimeout(tick, POLL_MS);\n      };\n      tick();\n    });\n  }\n\n  function unprep() {\n    document.documentElement.classList.remove(PREP_CLASS);\n  }\n\n  function isElementVisible(el) {\n    if (!el) return false;\n    const cs = getComputedStyle(el);\n    if (cs.display === \"none\" || cs.visibility === \"hidden\" || Number(cs.opacity) === 0) return false;\n    const r = el.getBoundingClientRect();\n    return r.width > 0 && r.height > 0;\n  }\n\n  function overlayIsOpen() {\n    const overlay = document.querySelector(S.overlay);\n    return isElementVisible(overlay);\n  }\n\n  async function warmupForBase(base) {\n    if (busy) return;\n    if (!base) base = getBaseUrl(location.href);\n    if (isDoneForBase(base)) return;\n    if (overlayIsOpen()) return;\n\n    busy = true;\n    injectCSSOnce();\n    stopPoll();\n    document.documentElement.classList.add(PREP_CLASS);\n\n    const failsafe = setTimeout(() => {\n      unprep();\n      busy = false;\n    }, TIMEOUT_MS + 1000);\n\n    try {\n      const btn = await waitFor(S.filtersBtn);\n      if (!btn) return;\n\n      btn.click();\n\n      const details = await waitForAll(S.details);\n      if (details && details.length > DIAMETRO_INDEX) {\n        const diametro = details[DIAMETRO_INDEX];\n        if (diametro && !diametro.hasAttribute(\"open\")) diametro.setAttribute(\"open\", \"\");\n      }\n\n      const closeBtn = await waitFor(S.closeBtn, 2500);\n      if (closeBtn) closeBtn.click();\n\n      markDoneForBase(base);\n    } finally {\n      clearTimeout(failsafe);\n      setTimeout(() => {\n        unprep();\n        busy = false;\n      }, 80);\n    }\n  }\n\n  function scheduleWarmupFromHref(href) {\n    const baseNow = getBaseUrl(href || location.href);\n    if (baseNow === lastBase) return;\n    lastBase = baseNow;\n\n    if (runTimer) clearTimeout(runTimer);\n    runTimer = setTimeout(() => warmupForBase(baseNow), 0);\n  }\n\n  function extractHrefFromDL(obj) {\n    if (!obj || typeof obj !== \"object\") return null;\n    return obj.page_location || obj.pageLocation || obj.location || obj.url || obj.href || null;\n  }\n\n  function isPageViewEvent(obj) {\n    if (!obj || typeof obj !== \"object\") return false;\n    const ev = obj.event;\n    return ev === \"page_view\" || ev === \"pageview\" || ev === \"virtual_pageview\";\n  }\n\n  function hookDataLayerOnce() {\n    if (window.__gbFiltersDLHookedV1) return;\n    window.__gbFiltersDLHookedV1 = true;\n\n    const dl = (window.dataLayer = window.dataLayer || []);\n\n    for (let i = dl.length - 1; i >= 0; i--) {\n      if (isPageViewEvent(dl[i])) {\n        const href = extractHrefFromDL(dl[i]) || location.href;\n        lastBase = getBaseUrl(href);\n        break;\n      }\n    }\n\n    const origPush = dl.push.bind(dl);\n    dl.push = function () {\n      const args = Array.prototype.slice.call(arguments);\n      const ret = origPush.apply(null, args);\n\n      for (let i = 0; i < args.length; i++) {\n        const obj = args[i];\n        if (isPageViewEvent(obj)) {\n          const href = extractHrefFromDL(obj) || location.href;\n          scheduleWarmupFromHref(href);\n          break;\n        }\n      }\n      return ret;\n    };\n  }\n\n  hookDataLayerOnce();\n\n  warmupForBase(getBaseUrl(location.href));\n})();\n","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"type":"regex","pattern":"^https:\\/\\/www\\.breitling\\.com\\/[^\\/]+\\/(watches|collections).*$"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"580e8f4c-a467-4218-89bd-34fd0333d154","name":"#9 PLP | Expandend Filters Size","phase":"0","condition":{"url":{"$regex":"^https:\\/\\/www\\.breitling\\.com\\/(?:us-(?:en|zh|es)|gb-(?:en|zh)|ch-(?:en|zh|de|fr|it)|de-(?:en|zh|de)|fr-(?:en|zh|fr)|jp-(ja|en|zh))\\/(watches|collections).*$"},"getDomSelectors":{"$in":["[data-test-id=\"ListingFilters\"]"]}},"coverage":1},{"key":"9-plp-expandend-filters-size","changeId":"dc7067d49a3dc981ece532f43541e02efb75d8882ac33a11c35f89f524e9952d","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"#filters-modal-body details[data-test-id=\"FiltersModalFilterAccordion\"]:nth-of-type(3) {\n    display: none;\n}","js":"","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"type":"regex","pattern":"^https:\\/\\/www\\.breitling\\.com\\/[^\\/]+\\/collections.*$"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"580e8f4c-a467-4218-89bd-34fd0333d154","name":"#9 PLP | Expandend Filters Size","phase":"0","condition":{"url":{"$regex":"^https:\\/\\/www\\.breitling\\.com\\/(?:us-(?:en|zh|es)|gb-(?:en|zh)|ch-(?:en|zh|de|fr|it)|de-(?:en|zh|de)|fr-(?:en|zh|fr)|jp-(ja|en|zh))\\/(watches|collections).*$"},"getDomSelectors":{"$in":["[data-test-id=\"ListingFilters\"]"]}},"coverage":1},{"key":"24-recently-viewed","changeId":"86cb34a9fd332f0205f9e0c9084d1c5e44ff6521e174c732ac274d4f98605438","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"#recentlyViewed{position:fixed;bottom:-100%;left:0;width:100%;min-height:200px;display:flex!important;background:white;z-index:999;flex-direction:column;align-items:center;padding:24px;transition:bottom .25s ease-in-out}#recentlyViewed>*{user-select:none}#recentlyViewed.show{bottom:0}#recentlyViewedOverlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:998;display:none}#recentlyViewedOverlay.show{display:block!important}#recentlyViewed .full-cont{display:flex;align-items:center}#recentlyViewed .recentlyViewedContainer{max-width:1000px;width:calc(100vw - 48px);overflow:hidden}#recentlyViewed .recentlyViewedWrapper{display:flex;width:100%}#recentlyViewed .recentlyViewedContainer .prodCard{display:flex;flex-shrink:0;flex-direction:column;cursor:pointer}#recentlyViewed h3{font-size:1.5rem;font-family:__italianPlate_843ea1,__italianPlate_Fallback_843ea1;font-weight:600;text-transform:uppercase;margin-bottom:1.1rem}#recentlyViewed .recentlyViewedContainer .prodCard img{width:100%;height:100%;object-fit:cover;display:flex}#recentlyViewed .recentlyViewedContainer .prodCard .prod-img{margin-bottom:1rem}#recentlyViewed .recentlyViewedContainer .prodCard .prod-info{display:flex;flex-direction:column;justify-content:space-between;gap:.5rem}#recentlyViewed .recentlyViewedContainer .prodCard .prod-title{font-family:__italianPlate_843ea1,__italianPlate_Fallback_843ea1;font-weight:bold;font-size:1rem;text-transform:uppercase;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}#recentlyViewed .recentlyViewedContainer .prodCard .prod-price p{font-family:__italianPlate_843ea1,__italianPlate_Fallback_843ea1;font-size:.875rem!important;font-weight:400!important;line-height:1.3rem}.skeleton-img,.skeleton-line{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:skeleton-loading 2s infinite;border-radius:4px;overflow:hidden}.skeleton-img{width:100%;aspect-ratio:1;display:flex;flex-shrink:0}.skeleton-name{height:14px;width:100%}.skeleton-price{height:14px;width:40%}#recentlyViewed .closeIco{position:absolute;top:19px;right:24px;cursor:pointer}@keyframes skeleton-loading{0%{background-position:200% 0}100%{background-position:-200% 0}}@media(max-width:767px){#recentlyViewed h3{font-size:1.2rem;margin-bottom:1rem}#recentlyViewed .recentlyViewedContainer .prodCard .prod-title{font-size:1rem}#recentlyViewed .closeIco{top:10px;right:10px}#recentlyViewed .closeIco svg{width:24px;height:24px}#recentlyViewed .full-cont{display:flex;align-items:center;width:100%}#recentlyViewed{padding:16px 4px}#recentlyViewed .recentlyViewedContainer .prodCard .prod-title{font-size:.85rem;line-height:.85rem}#recentlyViewed .recentlyViewedContainer .prodCard .prod-price p{font-size:.875rem!important;line-height:100%}#recentlyViewed .recentlyViewedContainer .prodCard .prod-img{margin-bottom:.5rem}}","js":"!function(){const t=JSON.parse(localStorage.getItem(\"hideRecentlyViewed\")||\"{}\");if(Date.now()-t.timestamp<=72e5)return;const e=document.documentElement.lang?document.documentElement.lang.toLowerCase().slice(0,2):\"en\",n={it:\"VISTI DI RECENTE\",en:\"RECENTLY VIEWED\",fr:\"VUS RÉCEMMENT\",es:\"VISTOS RECIENTEMENTE\",de:\"KÜRZLICH ANGESEHEN\",zh:\"最近浏览\",ja:\"最近閲覧した商品\"};let r;if(r=JSON.parse(localStorage.getItem(\"JKL_recentlyViewed\")||{}),Array.isArray(r)){var i={};r=r.filter((function(t){if(\"string\"!=typeof t)return!1;var e=t.split(\"?\")[0].replace(/\\/$/,\"\").split(\"/\"),n=e[e.length-1];return!!n&&(!i[n]&&(i[n]=!0,!0))}))}function o(t,e,n){const r=t.querySelector('h1[data-test-id=\"ProductDetailName\"]')?.innerText.toLowerCase().trim(),i=t.querySelector('meta[property=\"og:image\"]')?.getAttribute(\"content\"),o=t.querySelector('div[data-test-id=\"ProductDetailPricing\"] [data-test-id=\"PriceFlex\"]')?.innerHTML;return prodInfo={url:n,title:r,image:i,price:o},prodInfo}function l(){document.querySelector(\"#recentlyViewed\")?.classList.remove(\"show\"),document.querySelector(\"#recentlyViewedOverlay\")?.classList.remove(\"show\"),localStorage.setItem(\"hideRecentlyViewed\",JSON.stringify({value:\"true\",timestamp:Date.now()})),s(\"recently_viewed_closed\")}function s(t){window.dataLayer=window.dataLayer||[],dataLayer.push({event:\"experiment\",exp_element:\"recently_viewed\",exp_content:t})}r&&async function(){const t=function(){if(document.querySelector(\"#recentlyViewed\"))return;const t=document.createElement(\"div\");t.id=\"recentlyViewed\",t.style.display=\"none\",t.innerHTML=`\\n\\t\\t\\t<div class=\"closeIco\">\\n\\t\\t\\t\\t<svg width=\"32\" height=\"32\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n\\t\\t\\t\\t\\t<path d=\"M27.5001 12.5L12.5001 27.5M27.5 27.5001L12.5 12.5001\" stroke=\"#1E1E1E\" stroke-width=\"2\" stroke-linecap=\"round\"/>\\n\\t\\t\\t\\t</svg>\\n\\t\\t\\t</div>\\n\\t\\t\\t<h3>${n[e]||\"RECENTLY VIEWED\"}</h3>\\n\\t\\t\\t<div class=\"full-cont\">\\n\\t\\t\\t\\t\\t<div class=\"prevArrow\">\\n\\t\\t\\t\\t\\t\\t<svg width=\"30\" height=\"30\" viewBox=\"0 0 30 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n\\t\\t\\t\\t\\t\\t\\t<path d=\"M17 10L12 15L17 20\" stroke=\"black\" stroke-width=\"1.5\"/>\\n\\t\\t\\t\\t\\t\\t</svg>\\n\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t<div class=\"recentlyViewedContainer\">\\n\\t\\t\\t\\t\\t\\t<div class=\"recentlyViewedWrapper\"></div>\\n\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t<div class=\"nextArrow\">\\n\\t\\t\\t\\t\\t\\t<svg width=\"30\" height=\"30\" viewBox=\"0 0 30 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n\\t\\t\\t\\t\\t\\t\\t<path d=\"M13 20L18 15L13 10\" stroke=\"black\" stroke-width=\"1.5\"/>\\n\\t\\t\\t\\t\\t\\t</svg>\\n\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t</div>\\n\\t\\t`;const r=document.createElement(\"div\");return r.style.display=\"none\",r.id=\"recentlyViewedOverlay\",document.body.append(r),document.body.append(t),r.addEventListener(\"click\",(()=>{l()})),t.querySelector(\".closeIco\").addEventListener(\"click\",(()=>{l()})),t}();t&&(!function(t,e){for(let n=0;n<e;n++){const e=document.createElement(\"div\");e.className=\"prodCard skel\",e.innerHTML='\\n\\t\\t\\t\\t<div class=\"prod-img skeleton-img\"></div>\\n\\t\\t\\t\\t<div class=\"prod-info\">\\n\\t\\t\\t\\t\\t<div class=\"skeleton-line skeleton-name prod-title\"></div>\\n\\t\\t\\t\\t\\t<div class=\"skeleton-line skeleton-price prod-price\"></div>\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t',t.append(e)}}(t.querySelector(\".recentlyViewedWrapper\"),r.length),function(){const t=document.createElement(\"script\");t.src=\"https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js\",t.onload=()=>{new Swiper(\"#recentlyViewed .recentlyViewedContainer\",{wrapperClass:\"recentlyViewedWrapper\",slideClass:\"prodCard\",allowTouchMove:!0,spaceBetween:16,slidesPerView:3,centerInsufficientSlides:!0,navigation:{nextEl:\"#recentlyViewed .nextArrow svg\",prevEl:\"#recentlyViewed .prevArrow svg\"},breakpoints:{420:{slidesPerView:3},600:{slidesPerView:3},820:{slidesPerView:4},1200:{slidesPerView:5}}});document.querySelector(\"#recentlyViewed\")?.classList.add(\"show\"),document.querySelector(\"#recentlyViewedOverlay\")?.classList.add(\"show\"),s(\"recently_viewed_opened\")},document.body.appendChild(t)}(),await async function(t){const e=r.map((async function(e,n){const r=window.location.href.split(\"/\")[3];oldUrlParts=e.split(\"/\"),oldUrlParts[3]=r,e=oldUrlParts.join(\"/\");const i=await fetch(e);if(!i.ok)throw new Error(\"HTTP error: \"+i.status);const d=await i.text(),c=o((new DOMParser).parseFromString(d,\"text/html\"),n,e);c&&function(t,e,n){const r=n.querySelectorAll(\".prodCard\")[e];r.innerHTML=`\\n\\t\\t\\t<div class=\"prod-img\">\\n\\t\\t\\t\\t<img src=\"${t.image}\" alt=\"${t.title}\">\\n\\t\\t\\t</div>\\n\\t\\t\\t<div class=\"prod-info\">\\n\\t\\t\\t\\t<div class=\"prod-title\">${t.title}</div>\\n\\t\\t\\t\\t<div class=\"prod-price\">${t.price}</div>\\n\\t\\t\\t</div>\\n\\t\\t`,r.addEventListener(\"click\",(()=>{s(\"recently_viewed_product_click\"),location.href=t.url,l()}))}(c,n,t)}));await Promise.all(e)}(t))}()}();","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"type":"regex","pattern":"^https:\\/\\/www\\.breitling\\.com\\/(?:us-(?:en|zh|es)|gb-(?:en|zh)|ch-(?:en|zh|de|fr|it)|de-(?:en|zh|de)|fr-(?:en|zh|fr)|jp-(?:ja|en|zh))(?:\\/.*)?$"}],"weights":[0.5,0.5],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"f74aa410-dfe1-4384-af01-25dd8a730514","name":"#24 Recently Viewed","phase":"0","condition":{"$or":[{"isReturningUser":true,"getDomSelectors":{"$not":{"$elemMatch":{"$eq":"[data-testid=\"productDetailWrapper\"]"}}},"enableRecentlyViewed":true},{"isReturningUser":true,"getDomSelectors":{"$not":{"$elemMatch":{"$eq":"[data-test-id=\"CheckoutLayoutStickyLayout\"]"}}},"enableRecentlyViewed":true},{"isReturningUser":true,"getDomSelectors":{"$not":{"$elemMatch":{"$eq":"[data-test-id=\"SignInLayoutStickyLayout\"]"}}},"enableRecentlyViewed":true}]},"coverage":1},{"key":"19-funnel-returnsdelivery-info","changeId":"4c451bd52ca71b1c5c12de4f01849f2ceff202d890fbbbf1c0fd29126aaafc9a","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"#JAK_deliveryInfo{display:flex;width:100%;justify-content:space-around;padding:12px 0;border-top:1px solid rgb(235,235,235)}#JAK_deliveryInfo .col{display:flex;flex-direction:column;align-items:center;gap:4px}#JAK_deliveryInfo .col .icon{width:2rem}#JAK_deliveryInfo .col .icon img{width:100%}#JAK_deliveryInfo .col .text{font-size:.7rem;font-family:__italianPlate_843ea1,__italianPlate_Fallback_843ea1;color:rgb(17,24,32);text-transform:uppercase}","js":"!function(){const t=document.documentElement.lang?document.documentElement.lang.toLowerCase().slice(0,2):\"en\",e={it:\"Spedizione Gratuita\",en:\"Free shipping\",fr:\"Livraison gratuite\",es:\"Envío gratuito\",de:\"Kostenloser Versand\",zh:\"免费邮寄\",ja:\"送料無料\"},n={it:\"Reso Gratuito\",en:\"Free Return\",fr:\"Retour Gratuit\",es:\"Devoluciones gratuitas\",de:\"Kostenlose Retoure\",zh:\"免费退货\",ja:\"返品無料\"},i={it:\"Servizio Regali\",en:\"Gifting Service\",fr:\"Services de cadeaux\",es:\"Servicio de regalos\",de:\"Geschenkservice\",zh:\"礼品服务\",ja:\"ギフトサービス\"};function r(){document.querySelector(\"#JAK_deliveryInfo\")||(function(){const r=document.createElement(\"div\");r.id=\"JAK_deliveryInfo\",r.innerHTML=`\\n\\t\\t\\t<div class=\"col\">\\n\\t\\t\\t\\t<div class=\"icon\">\\n\\t\\t\\t\\t\\t<img alt=\"free shipping\" src=\"https://www.breitling.com/_next/static/images/shipping.svg\" style=\"color: transparent;\">\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t<div class=\"text\">${e[t]}</div>\\n\\t\\t\\t</div>\\n\\t\\t\\t<div class=\"col\">\\n\\t\\t\\t\\t<div class=\"icon\">\\n\\t\\t\\t\\t\\t<img alt=\"free return\" src=\"https://www.breitling.com/_next/static/images/return.svg\" style=\"color: transparent;\">\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t<div class=\"text\">${n[t]}</div>\\n\\t\\t\\t</div>\\n\\t\\t\\t<div class=\"col\">\\n\\t\\t\\t\\t<div class=\"icon\">\\n\\t\\t\\t\\t\\t<img alt=\"gift service\" src=\"https://www.breitling.com/_next/static/images/give-gift.svg\" style=\"color: transparent;\">\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t<div class=\"text\">${i[t]}</div>\\n\\t\\t\\t</div>\\n\\t\\t`;const o=document.querySelector('[data-test-id=\"ShoppingBagDrawerFooter\"]')?.querySelector('[data-test-id=\"ShoppingBagSummaryWrapper\"]');o&&!document.querySelector(\"#JAK_deliveryInfo\")&&o.prepend(r)}(),function(){let t=\"\";setTimeout((function(){var e;dataLayer.forEach((function(e){if(\"intention_view_cart\"==e.event){const n=e&&e.ecommerce&&e.ecommerce.items;n&&n.length&&n.forEach((function(e){const n=e.item_id;t=t+n+\", \"}))}})),\"\"!==t&&(e=t,window.dataLayer=window.dataLayer||[],dataLayer.push({event:\"experiment\",exp_element:\"minicart_items\",exp_content:e}))}),500)}())}const o=new MutationObserver((()=>{document.querySelector('[data-test-id=\"ShoppingBagDrawerFooter\"]')&&(o.disconnect(),r(),o.observe(document.querySelector('div[data-test-id=\"HeaderBox\"]'),{childList:!0,subtree:!0}))}));o.observe(document.querySelector('div[data-test-id=\"HeaderBox\"]'),{childList:!0,subtree:!0})}();","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"type":"simple","pattern":"https://www.breitling.com/us-*"},{"include":true,"type":"simple","pattern":"https://www.breitling.com/gb-*"},{"include":true,"type":"simple","pattern":"https://www.breitling.com/de-*"},{"include":true,"type":"simple","pattern":"https://www.breitling.com/jp-*"},{"include":true,"type":"simple","pattern":"https://www.breitling.com/ch-*"},{"include":true,"type":"simple","pattern":"https://www.breitling.com/fr-*"}],"weights":[0.5,0.5],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"b40d883a-2384-4d1d-b015-a5daf96849d7","name":"#19 - Funnel | Returns&Delivery Info","phase":"0","condition":{"deviceType":"desktop","dataLayerEvents":{"$elemMatch":{"$eq":"intention_view_cart"}}},"coverage":1},{"key":"25-pdp-similar-product-cta-viewport","changeId":"aec79f2cfed86096e1654d3c5914fb2cfce97bed54e9a20d25107e8be492b1b3","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"#JAK_suggestionCta{position:absolute;bottom:1rem;left:1rem;font-size:.875rem;font-weight:700;text-transform:uppercase;color:rgb(7,44,84);display:flex!important;gap:.25rem;z-index:10;cursor:pointer;align-items:center}#JAK_suggestionCta .icon svg{width:16px;height:16px;fill:rgb(7,44,84)}#JAK_suggestionCta span{position:relative;line-height:20.96px}#JAK_suggestionCta span::before{content:'';width:100%;height:1px;position:absolute;bottom:0;left:0;background:rgb(255,199,44)}#JAK_suggestionCta span::after{content:'';width:0;height:1.5px;position:absolute;bottom:0;left:0;background:rgb(7,44,84);transition:width .3s}#JAK_suggestionCta:hover span::after{width:100%}@media(max-width:600px){#JAK_suggestionCta span{font-size:12px;line-height:15px}}","js":"!function(){const e=document.documentElement.lang?document.documentElement.lang.toLowerCase().slice(0,2):\"en\",t={en:\"You may also like\",es:\"Otras versiones\",it:\"Altre versioni\",fr:\"Autres versions\",de:\"Andere Versionen\",zh:\"其他版本\",ja:\"関連商品\"};function n(){if(document.querySelector(\"#JAK_suggestionCta\"))return;const n=setInterval((()=>{const a=document.querySelectorAll('[data-test-id=\"KeyFeaturesSection\"] ~ [data-testid=\"carouselAutomaticSection\"]')[0],i=document.querySelector('[data-test-id=\"CarouselContainer\"]');if(a&&i&&(clearInterval(n),!document.getElementById(\"JAK_suggestionCta\"))){const n=function(){const n=document.createElement(\"div\");return n.id=\"JAK_suggestionCta\",n.innerHTML=`\\n\\t\\t\\t<span>${t[e]}</span>\\n\\t\\t`,n}();n.style.display=\"none\",i.append(n),n.addEventListener(\"click\",(()=>{o(\"scroll_to_suggestions\"),a.scrollIntoView({behavior:\"smooth\",block:\"center\"})}))}}),500);setTimeout((function(){clearInterval(n)}),5e3);const a=setInterval((()=>{const e=document.querySelectorAll('[data-test-id=\"TechnicalDataSection\"] + [data-testid=\"carouselAutomaticSection\"] .swiper-slide');e.length>0&&(clearInterval(a),e.forEach((e=>{e.addEventListener(\"click\",(()=>{o(e.getAttribute(\"data-test-id\"))}))})))}),500);setTimeout((function(){clearInterval(a)}),8e3)}window.dataLayer=window.dataLayer||[];const a=window.dataLayer.push;function o(e){window.dataLayer=window.dataLayer||[],dataLayer.push({event:\"experiment\",exp_element:\"may_also_like\",exp_content:e})}window.dataLayer.push=function(){const e=Array.prototype.slice.call(arguments),t=a.apply(window.dataLayer,e);return e.forEach((e=>{e&&\"view_item\"===e.event&&setTimeout((()=>{n()}),300)})),t},n()}();","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"type":"regex","pattern":"^https:\\/\\/www\\.breitling\\.com\\/(?:us-(?:en|zh|es)|gb-(?:en|zh)|ch-(?:en|zh|de|fr|it)|de-(?:en|zh|de)|fr-(?:en|zh|fr)|jp-(?:ja|en|zh))\\/watches\\/.+\\/[A-Z0-9]{10,20}\\/?$"}],"weights":[0.5,0.5],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"3aad97c6-c2cb-4674-b8b2-53e1d0cbad87","name":"#25 - PDP | Similar Product CTA Viewport","phase":"0","condition":{"url":{"$regex":"^https:\\/\\/www\\.breitling\\.com\\/(?:us-(?:en|zh|es)|gb-(?:en|zh)|ch-(?:en|zh|de|fr|it)|de-(?:en|zh|de)|fr-(?:en|zh|fr)|jp-(?:ja|en|zh))\\/watches\\/.+\\/[A-Z0-9]{10,20}\\/?$"},"getDomSelectors":{"$elemMatch":{"$eq":"[data-test-id=\"ProductDetailSection\"]"}}},"coverage":1},{"key":"tactical-mini-cart-apertura-per-returning-users","changeId":"8b96b76d04a839ad9c013289c90cff23bb7e55d22f45f59ea211545ab8fa3884","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"","js":"!function(){if(\"true\"==sessionStorage.getItem(\"cartClicked\"))return;const t=setInterval((()=>{const e=document.querySelector('[data-test-id=\"NavigationMenuCartLinkContainer\"]');e&&(clearInterval(t),function(t){const e=new MutationObserver((()=>{!function(t,e){const n=t.querySelector('[data-test-id=\"NavigationMenuCartIconTypography\"]');if(!n)return;parseInt(n.innerText)>0&&(e.disconnect(),t.querySelector('div[role=\"button\"]')?.click(),sessionStorage.setItem(\"cartClicked\",\"true\"))}(t,e)}));e.observe(t,{childList:!0,subtree:!0,characterData:!0}),setTimeout((function(){e.disconnect()}),15e3)}(e))}),500);setTimeout((function(){clearInterval(t)}),5e3)}();","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"urlPatterns":[{"include":true,"type":"regex","pattern":"^https:\\/\\/www\\.breitling\\.com\\/(?:us-(?:en|zh|es)|gb-(?:en|zh)|ch-(?:en|zh|de|fr|it)|de-(?:en|zh|de)|fr-(?:en|zh|fr)|jp-(?:ja|en|zh))(?:\\/.*)?$"}],"weights":[0.5,0.5],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"28cfed96-0e83-476b-aa80-d23884c84181","name":"Tactical - Mini Cart Apertura per Returning Users","phase":"0","coverage":1},{"key":"3-hp-carousel-hero-banner","changeId":"62b6af3d7b83ce5717082a6adbf57cb5f22e8bd0fac925e14846998ef031c91e","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"main:has([JAK_discoverCollection]){display:flex!important;flex-direction:column}[JAK_heroSection]{order:-2}[JAK_discoverCollection]{order:-1}","js":"!function(){function e(){document.querySelector('[data-testid=\"HeroSliderSection\"]')?.setAttribute(\"JAK_heroSection\",\"\");const e=document.querySelectorAll('[data-testid=\"carouselManualSection\"]')[0];e?.setAttribute(\"JAK_discoverCollection\",\"\"),function(e){e.querySelectorAll('a[data-testid=\"ProductCard\"]').forEach((e=>{e.addEventListener(\"click\",(()=>{const t=e.getAttribute(\"aria-label\");var a;a=t,window.dataLayer=window.dataLayer||[],dataLayer.push({event:\"experiment\",exp_element:\"discover_collection\",exp_content:a})}))}))}(e)}const t=setInterval((()=>{document.querySelectorAll('[data-testid=\"carouselManualSection\"]')[0]&&(clearInterval(t),e())}),200);setTimeout((function(){clearInterval(t)}),5e3)}();","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"type":"regex","pattern":"^https:\\/\\/www\\.breitling\\.com\\/(?:us-(?:en|zh|es)|gb-(?:en|zh)|ch-(?:en|zh|de|fr|it)|de-(?:en|zh|de)|fr-(?:en|zh|fr)|jp-(?:ja|en|zh))\\/(?:\\?.*)?$"}],"weights":[0.5,0.5],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"52b2f84b-07b3-469b-a6b2-0d35d4f534d9","name":"#3 HP | Carousel below Hero Banner","phase":"0","condition":{"url":{"$regex":"^https:\\/\\/www\\.breitling\\.com\\/(?:us-(?:en|zh|es)|gb-(?:en|zh)|ch-(?:en|zh|de|fr|it)|de-(?:en|zh|de)|fr-(?:en|zh|fr)|jp-(?:ja|en|zh))\\/(?:\\?.*)?$"}},"coverage":1},{"key":"35-pdp-swap-gift-cta","changeId":"fb099a88dca204246ab9ba741a31fb11289d5a41bdd8055b614ef30ac8cc942f","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"[JAK_ctaType=\"giftCta\"],[JAK_ctaType=\"phoneCta\"]{display:none}[JAK_ctaType=\"giftCta_duplicate\"]{position:relative}[JAK_ctaType=\"giftCta_duplicate\"]::before{content:\"\";position:absolute;left:0;bottom:0;height:1px;width:100%;background-color:rgb(255,199,44)}[JAK_ctaType=\"giftCta_duplicate\"]::after{content:\"\";position:absolute;left:0;bottom:0;width:0;transition:width .3s}[JAK_ctaType=\"giftCta_duplicate\"]:hover::after{width:100%;height:1.5px;background:rgb(7,44,84)}@media(max-width:767px){[JAK_ctaType=\"giftCta_duplicate\"]{position:relative;display:flex;width:fit-content;padding:0;margin-inline:10px}}","js":"(function () {\n\tlet targetObserver = null;\n\tlet ctaTextObserver = null;\n\tlet targetInterval = null;\n\tlet targetTimeout = null;\n\tlet rerunTimeout = null;\n\n\tconst translations = {\n\t\tit: 'Aggiungi al carrello',\n\t\ten: 'Add to bag',\n\t\tfr: 'Ajouter au panier',\n\t\tes: 'Añadir al carrito',\n\t\tde: 'In den Warenkorb',\n\t\tzh: '加入购物袋',\n\t};\n\n\tfunction getExpectedCtaText() {\n\t\tconst lang = document.documentElement.lang\n\t\t\t? document.documentElement.lang\n\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t.slice(0, 2)\n\t\t\t: 'en';\n\n\t\treturn translations[lang] || translations.en;\n\t}\n\n\tfunction normalizeText(text) {\n\t\treturn String(text || '')\n\t\t\t.replace(/\\s+/g, ' ')\n\t\t\t.trim()\n\t\t\t.toLowerCase();\n\t}\n\n\tfunction isAddToBagCtaValid(cta) {\n\t\tif (!cta) return false;\n\n\t\tconst currentText = normalizeText(cta.innerText);\n\t\tconst expectedText = normalizeText(\n\t\t\tgetExpectedCtaText()\n\t\t);\n\n\t\treturn currentText === expectedText;\n\t}\n\n\tfunction init(target) {\n\t\tconst allFounds = findTargetCta(target);\n\n\t\tif (!allFounds) return;\n\n\t\tduplicatePhoneBtn();\n\t\tduplicateGiftBtn();\n\t}\n\n\tfunction startObserver(target) {\n\t\tif (targetObserver) {\n\t\t\ttargetObserver.disconnect();\n\t\t}\n\n\t\ttargetObserver = new MutationObserver(() => {\n\t\t\tconst allFounds = findTargetCta(target);\n\n\t\t\tif (!allFounds) return;\n\n\t\t\ttargetObserver.disconnect();\n\t\t\ttargetObserver = null;\n\n\t\t\tduplicatePhoneBtn();\n\t\t\tduplicateGiftBtn();\n\t\t});\n\n\t\ttargetObserver.observe(target, {\n\t\t\tchildList: true,\n\t\t\tsubtree: true,\n\t\t});\n\t}\n\n\tfunction waitForValidAddToBagCta(\n\t\ttarget,\n\t\taddToBagCta\n\t) {\n\t\tfunction executeIfValid() {\n\t\t\tif (\n\t\t\t\t!addToBagCta.isConnected ||\n\t\t\t\t!target.isConnected\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (!isAddToBagCtaValid(addToBagCta)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (ctaTextObserver) {\n\t\t\t\tctaTextObserver.disconnect();\n\t\t\t\tctaTextObserver = null;\n\t\t\t}\n\n\t\t\tinit(target);\n\t\t\tstartObserver(target);\n\n\t\t\treturn true;\n\t\t}\n\n\t\tif (executeIfValid()) return;\n\n\t\tif (ctaTextObserver) {\n\t\t\tctaTextObserver.disconnect();\n\t\t}\n\n\t\tctaTextObserver = new MutationObserver(() => {\n\t\t\texecuteIfValid();\n\t\t});\n\n\t\tctaTextObserver.observe(addToBagCta, {\n\t\t\tchildList: true,\n\t\t\tsubtree: true,\n\t\t\tcharacterData: true,\n\t\t});\n\t}\n\n\tfunction duplicateGiftBtn() {\n\t\tconst giftCta = document.querySelector(\n\t\t\t'[JAK_ctaType=\"giftCta\"]'\n\t\t);\n\t\tconst phoneCta = document.querySelector(\n\t\t\t'[JAK_ctaType=\"phoneCta\"]'\n\t\t);\n\n\t\tif (!giftCta || !phoneCta) return;\n\n\t\tif (\n\t\t\tdocument.querySelector(\n\t\t\t\t'[JAK_ctaType=\"giftCta_duplicate\"]'\n\t\t\t)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst secondaryCtaContainer = phoneCta.closest(\n\t\t\t'[data-testid=\"SecondaryCTA\"]'\n\t\t);\n\n\t\tif (!secondaryCtaContainer) return;\n\n\t\tconst giftInnerDiv =\n\t\t\tgiftCta.querySelector('div');\n\n\t\tif (!giftInnerDiv) return;\n\n\t\tconst copyGiftCta =\n\t\t\tdocument.createElement('div');\n\n\t\tcopyGiftCta.setAttribute(\n\t\t\t'JAK_ctaType',\n\t\t\t'giftCta_duplicate'\n\t\t);\n\t\tcopyGiftCta.className = phoneCta.className;\n\t\tcopyGiftCta.innerHTML = giftInnerDiv.innerHTML;\n\n\t\tsecondaryCtaContainer.prepend(copyGiftCta);\n\n\t\tcopyGiftCta.addEventListener('click', () => {\n\t\t\tpushCta('give_as_a_gift');\n\t\t\tgiftCta.click();\n\t\t});\n\t}\n\n\tfunction duplicatePhoneBtn() {\n\t\tconst giftCta = document.querySelector(\n\t\t\t'[JAK_ctaType=\"giftCta\"]'\n\t\t);\n\t\tconst phoneCta = document.querySelector(\n\t\t\t'[JAK_ctaType=\"phoneCta\"]'\n\t\t);\n\n\t\tif (!giftCta || !phoneCta) return;\n\n\t\tif (\n\t\t\tdocument.querySelector(\n\t\t\t\t'[JAK_ctaType=\"phoneCta_duplicate\"]'\n\t\t\t)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst copyPhoneCta =\n\t\t\tdocument.createElement('div');\n\n\t\tcopyPhoneCta.setAttribute(\n\t\t\t'JAK_ctaType',\n\t\t\t'phoneCta_duplicate'\n\t\t);\n\t\tcopyPhoneCta.className = giftCta.className;\n\t\tcopyPhoneCta.innerHTML = giftCta.innerHTML;\n\n\t\tconst copyPhoneInnerDiv =\n\t\t\tcopyPhoneCta.querySelector('div');\n\n\t\tif (!copyPhoneInnerDiv) return;\n\n\t\tcopyPhoneInnerDiv.innerHTML =\n\t\t\tphoneCta.innerHTML;\n\n\t\tgiftCta.insertAdjacentElement(\n\t\t\t'afterend',\n\t\t\tcopyPhoneCta\n\t\t);\n\n\t\tcopyPhoneCta.addEventListener('click', () => {\n\t\t\tpushCta('call_to_buy');\n\t\t\tphoneCta.click();\n\t\t});\n\t}\n\n\tfunction findTargetCta(target) {\n\t\tif (!target || !target.isConnected) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst phoneCta = target.querySelector(\n\t\t\t'button:has([data-icon-name=\"telephoneCall\"])'\n\t\t);\n\n\t\tconst addToCartVisibility = target.querySelector(\n\t\t\t'[data-test-id=\"CTAVisibility\"]:has(> [data-test-id=\"ProductDetailAddToBagCTA\"])'\n\t\t);\n\n\t\tconst addToCartCta =\n\t\t\taddToCartVisibility?.parentElement?.parentElement;\n\n\t\tconst giftCta =\n\t\t\taddToCartCta?.nextElementSibling\n\t\t\t\t?.nextElementSibling;\n\n\t\tconst giftIconPath =\n\t\t\t'm7.51 4.534-6.285 7.265V7.493h-.74V4.534zM13.612 4.534v2.959h-.714v4.372H8.93V4.534z';\n\n\t\tconst isGiftCtaValid =\n\t\t\tgiftCta &&\n\t\t\tgiftCta.innerHTML.includes(giftIconPath);\n\n\t\tif (\n\t\t\t!phoneCta ||\n\t\t\t!addToCartCta ||\n\t\t\t!isGiftCtaValid\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tphoneCta.setAttribute(\n\t\t\t'JAK_ctaType',\n\t\t\t'phoneCta'\n\t\t);\n\n\t\taddToCartCta.setAttribute(\n\t\t\t'JAK_ctaType',\n\t\t\t'addToCart'\n\t\t);\n\n\t\tgiftCta.setAttribute(\n\t\t\t'JAK_ctaType',\n\t\t\t'giftCta'\n\t\t);\n\n\t\treturn true;\n\t}\n\n\tfunction removeCreatedElements() {\n\t\tconst duplicateCtas = document.querySelectorAll(\n\t\t\t'[JAK_ctaType=\"phoneCta_duplicate\"], [JAK_ctaType=\"giftCta_duplicate\"]'\n\t\t);\n\n\t\tconst editedCtas = document.querySelectorAll(\n\t\t\t'[JAK_ctaType=\"phoneCta\"], [JAK_ctaType=\"giftCta\"], [JAK_ctaType=\"addToCart\"]'\n\t\t);\n\n\t\tduplicateCtas.forEach((element) => {\n\t\t\telement.remove();\n\t\t});\n\n\t\teditedCtas.forEach((element) => {\n\t\t\telement.removeAttribute('JAK_ctaType');\n\t\t});\n\t}\n\n\tfunction clearCurrentExecution() {\n\t\tif (rerunTimeout) {\n\t\t\tclearTimeout(rerunTimeout);\n\t\t\trerunTimeout = null;\n\t\t}\n\n\t\tif (targetInterval) {\n\t\t\tclearInterval(targetInterval);\n\t\t\ttargetInterval = null;\n\t\t}\n\n\t\tif (targetTimeout) {\n\t\t\tclearTimeout(targetTimeout);\n\t\t\ttargetTimeout = null;\n\t\t}\n\n\t\tif (targetObserver) {\n\t\t\ttargetObserver.disconnect();\n\t\t\ttargetObserver = null;\n\t\t}\n\n\t\tif (ctaTextObserver) {\n\t\t\tctaTextObserver.disconnect();\n\t\t\tctaTextObserver = null;\n\t\t}\n\t}\n\n\tfunction reset() {\n\t\tclearCurrentExecution();\n\t\tremoveCreatedElements();\n\t}\n\n\tfunction run() {\n\t\treset();\n\n\t\ttargetInterval = setInterval(() => {\n\t\t\tconst target = document.querySelector(\n\t\t\t\t'div:has(> [data-test-id=\"ProductDetailName\"])'\n\t\t\t);\n\n\t\t\tconst addToBagCta = document.querySelector(\n\t\t\t\t'[data-test-id=\"ProductDetailAddToBagCTA\"]'\n\t\t\t);\n\n\t\t\tif (!target || !addToBagCta) return;\n\n\t\t\tclearInterval(targetInterval);\n\t\t\ttargetInterval = null;\n\n\t\t\tif (targetTimeout) {\n\t\t\t\tclearTimeout(targetTimeout);\n\t\t\t\ttargetTimeout = null;\n\t\t\t}\n\n\t\t\twaitForValidAddToBagCta(\n\t\t\t\ttarget,\n\t\t\t\taddToBagCta\n\t\t\t);\n\t\t}, 300);\n\n\t\ttargetTimeout = setTimeout(() => {\n\t\t\tif (targetInterval) {\n\t\t\t\tclearInterval(targetInterval);\n\t\t\t\ttargetInterval = null;\n\t\t\t}\n\n\t\t\ttargetTimeout = null;\n\t\t}, 5000);\n\t}\n\n\tfunction handlePageChange() {\n\t\treset();\n\n\t\trerunTimeout = setTimeout(() => {\n\t\t\trerunTimeout = null;\n\t\t\trun();\n\t\t}, 300);\n\t}\n\n\tfunction observeDataLayer() {\n\t\twindow.dataLayer = window.dataLayer || [];\n\n\t\tif (\n\t\t\twindow.dataLayer.__JAK_swapCtaObserved\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\twindow.dataLayer.__JAK_swapCtaObserved = true;\n\n\t\tconst originalPush = window.dataLayer.push;\n\n\t\twindow.dataLayer.push = function () {\n\t\t\tconst items =\n\t\t\t\tArray.prototype.slice.call(arguments);\n\n\t\t\tconst result = originalPush.apply(\n\t\t\t\twindow.dataLayer,\n\t\t\t\titems\n\t\t\t);\n\n\t\t\tconst hasPageView = items.some((item) => {\n\t\t\t\treturn (\n\t\t\t\t\titem &&\n\t\t\t\t\ttypeof item === 'object' &&\n\t\t\t\t\titem.event === 'page_view'\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tif (hasPageView) {\n\t\t\t\thandlePageChange();\n\t\t\t}\n\n\t\t\treturn result;\n\t\t};\n\t}\n\n\tfunction pushCta(name) {\n\t\twindow.dataLayer = window.dataLayer || [];\n\n\t\twindow.dataLayer.push({\n\t\t\tevent: 'experiment',\n\t\t\texp_element: 'swap_cta',\n\t\t\texp_content: name,\n\t\t});\n\t}\n\n\tobserveDataLayer();\n\trun();\n})();","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"type":"regex","pattern":"^https:\\/\\/www\\.breitling\\.com\\/(us|gb|ch|de|fr|jp)-[a-z]{2}\\/watches\\/.*\\/[A-Z0-9]{10,20}\\/(.?.*|$)"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"95e13d3c-a584-4668-9ade-fb15933c2b37","name":"#35 PDP | Swap Gift CTA","phase":"0","condition":{"url":{"$regex":"^https:\\/\\/www\\.breitling\\.com\\/(us|gb|ch|de|fr|jp)-[a-z]{2}\\/watches\\/.*\\/[A-Z0-9]{10,20}\\/(.?.*|$)"}},"coverage":1},{"key":"test-tattico-eliminazione-finanziamento-dalla-pdp-it","changeId":"da98c58dfdec1e6527f07037acccef05c210c39be1e95f0899095d3894d98647","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"div:has(>[data-testid=\"agosCalculateFinancing\"]){display:none}","js":"","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"type":"regex","pattern":"^https:\\/\\/www\\.breitling\\.com\\/it-(it|en|zh)\\/watches\\/.*$"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"b0caa88b-dfe3-4f73-9e66-7357e9a6b7d5","name":"Test Tattico - Eliminazione finanziamento dalla PDP IT","phase":"0","condition":{"url":{"$regex":"^https:\\/\\/www\\.breitling\\.com\\/it-(it|en|zh)\\/watches\\/.*$"},"agosCheck":true,"deviceType":"mobile"},"coverage":1},{"key":"8_interlinking_plp","changeId":"80bf7e0e7790d9b1cee7dc847f682c460b700864e588cdc79a391d70b70b5054","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"\n.linksListContainer{\n\tdisplay: flex !important;\n\talign-items: center;\n\tpadding-bottom: 20px;\n\tgap: 15px;\n\toverflow: auto;\n\tscrollbar-color: rgb(255, 199, 44) rgb(250, 250, 250);\n  scrollbar-width: thin;\n}\n@media(min-width: 992px){ .linksListContainer{padding-top: 20px;}}\n\n.linkAnchor{\n\twhite-space: nowrap;\n\ttext-decoration: none;\n\tpadding: 9px 25px;\n\tborder: 2px solid black;\n\tborder-radius: 10px;\n\tfont-weight: bold;\n\ttransition: color 0.2s, background-color 0.2s, border-color 0.2s ;\n}\n.linkAnchor:hover{\n\tcolor: white;\n\tbackground-color: rgba(0, 32, 96);\n\tborder-color: rgba(0, 32, 96);\n}","js":"(function(){\n\t\n\tconsole.log(\"\\n\\nBreitling #5285 links PLP-to-PLP\\n\\n\", extractCountryLanguage(), '\\n\\n');\n\t\n\tconst countryLanguageTargetSites = [\n\t  'us-en',\n\t  'us-zh',\n\t  'us-es',\n\t  'gb-en',\n\t  'gb-zh',\n\t  'ch-en',\n\t  'ch-zh',\n\t  'ch-de',\n\t  'ch-fr',\n\t  'ch-it',\n\t  'de-en',\n\t  'de-zh',\n\t  'de-de',\n\t  'fr-en',\n\t  'fr-zh',\n\t  'fr-fr',\n\t  'jp-ja',\n\t  'jp-en',\n\t  'jp-zh',\n\t];\n\tconst countryLanguage = extractCountryLanguage();\n\tif(!countryLanguageTargetSites.includes(countryLanguage)) return\n\t\n\t\n\tconst linksArray = [\n\t\t{label: 'Navitimer', urlSegment: 'collections/navitimer/'},\n\t\t{label: 'Chronomat', urlSegment: 'collections/chronomat/'},\n\t\t{label: 'Superocean Heritage', urlSegment: 'collections/superocean-heritage/'},\n\t\t{label: 'Avenger', urlSegment: 'collections/avenger/'},\n\t\t{label: 'Classic Avi', urlSegment: 'collections/classic-avi/'},\n\t\t{label: 'Premier', urlSegment: 'collections/premier/'},\n\t\t{label: 'Lady Premier', urlSegment: 'collections/lady-premier/'},\n\t\t{label: 'Top Time', urlSegment: 'collections/top-time/'},\n\t\t{label: 'Superocean', urlSegment: 'collections/superocean/'},\n\t\t{label: 'Professional', urlSegment: 'collections/professional/'},\n\t\t];\n\tconst documentObserver = new MutationObserver((mutations, obs)=>{\n\t\tconst filtersContainer = document.querySelector(\"[data-test-id='ListingFiltersWrapper']\");\n\t\tconst linksListContainerOld = document.querySelector('.linksListContainer');\n\t\tif(filtersContainer && !linksListContainerOld){\n\t\t\taddLinksList();\n\t\t}\n\t});\n\tdocumentObserver.observe(document, {childList: true, subtree: true});\n\t\n\tfunction addLinksList(){\n\t\t\n\t\t// con questo if il codice gira solo per le liste dei prodotti \"collections\" o \"watches\", ovvero quelli di cui mettiamo i link\n\t\tif (![\"collections\", \"watches\"].some(v => window.location.href.includes(v))) return\n\t\t\n\t\tconst filtersContainerWrapper = document.querySelector(\"[data-test-id='ListingFiltersWrapper'] [data-test-id='ContainerWrapper']\");\n\t\t\n\t\t\n\t\tconst linksListContainer = document.createElement('div');\n\t\tlinksListContainer.style.display = 'none'; // nel caso si perdesse css, non mostrare nulla\n\t\tlinksListContainer.classList.add('linksListContainer');\n\t\t\n\t\tfiltersContainerWrapper.insertAdjacentElement(\"afterbegin\", linksListContainer);\n\t\t\n\t\tfor (const linkElement of linksArray){\n\t\t\tconst linkAnchor = document.createElement('a');\n\t\t\tlinkAnchor.classList.add('linkAnchor');\n\t\t\tlinkAnchor.innerHTML = linkElement.label;\n\t\t\t\n\t\t\tlinkAnchor.setAttribute('href', `https://www.breitling.com/${countryLanguage}/${linkElement.urlSegment}`);\n\t\t\t// linkAnchor.setAttribute('target', '_blank');\n\t\t\tlinkAnchor.setAttribute('rel', 'noopener noreferrer');\n\t\t\t\n\t\t\tlinkAnchor.addEventListener('click', pushTrackingEvent);\n\t\t\t\n\t\t\tlinksListContainer.append(linkAnchor);\n\t\t}\n\t}\n  function extractCountryLanguage() {\n    //prendiamo la lingua\n    const path = window.location.pathname;\n    const segments = path.split(\"/\").filter(Boolean);\n    const lang = segments[0];\n    const [country, language] = lang.split(\"-\");\n\n    return lang;\n  }\n  \n  \n  function pushTrackingEvent(){\n    window.dataLayer = window.dataLayer || [];\n    window.dataLayer.push({\n\t\t\tevent: 'experiment',\n\t\t\texp_element: 'plp_interlinking',\n\t\t\texp_content: 'label_click',\n    });\n  }\n})()","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"urlPatterns":[{"include":true,"type":"simple","pattern":"https://www.breitling.com/us-en/collections/*"}],"weights":[0.5,0.5],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"47cb3757-219b-4051-9030-561adc22d874","name":"#8_interlinking_plp","phase":"0","coverage":1},{"key":"21-visible-guest-checkout","changeId":"b0894bb24e5e90d0e908af8994b72d9459807f675cb763253e24f01a9102487d","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"#JAK_accountSelector{\r\n\tdisplay: grid;\r\n\tgrid-template-columns: 1.6fr 1fr;\r\n\twidth: 100%;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n}\r\n#JAK_accountSelector .selector{\r\n\tdisplay: flex;\r\n\twidth: 100%;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\tpadding: 1rem 1rem;\r\n\tfont-family: __italianPlate_843ea1, __italianPlate_Fallback_843ea1;\r\n\tfont-size: 1.2rem;\r\n\tfont-weight: 400;\r\n\tletter-spacing: 1%;\r\n\tcolor: gray;\r\n}\r\n#JAK_accountSelector .selector.active{\r\n\tfont-weight: 600;\r\n}\r\n#JAK_accountSelector + [data-test-id=\"ContainerWrapper\"]{\r\n\tpadding-inline: 0;\r\n}\r\n#JAK_accountSelector .selector.login.active{\r\n\tbackground: rgb(255, 199, 44);\r\n\tcolor: black;\r\n}\r\n#JAK_accountSelector .selector.active.guest{\r\n\tbackground: rgb(14, 34, 64);\r\n\tcolor: rgb(255,255,255);\r\n}\r\n[data-test-id=\"ContainerWrapper\"]:has(#JAK_accountSelector .selector.active.guest) [data-test-id=\"AccountBoxSignInBox\"]{\r\n\tdisplay: none;\r\n}\r\n[data-test-id=\"ContainerWrapper\"]:has(#JAK_accountSelector .selector.active.login) [data-test-id=\"AccountBoxGuestCheckoutBox\"]{\r\n\tdisplay: none;\r\n}\r\n#JAK_accountSelector + [data-test-id=\"ContainerWrapper\"] > div{\r\n\tgap: 0;\r\n}","js":"(function () {\n\tconst CONTROLLER_KEY = '__JAK_accountSelectorSpaController__';\n\n\tconst URL_REGEX =\n\t\t/^https:\\/\\/www\\.breitling\\.com\\/(?:us-(?:en|zh|es)|gb-(?:en|zh)|ch-(?:en|zh|de|fr|it)|de-(?:en|zh|de)|fr-(?:en|zh|fr)|jp-(?:ja|en|zh))(?=.*\\/login\\/)(?=.*(?:[?&]variant=checkout(?:[&#]|$))).*$/;\n\n\tif (\n\t\twindow[CONTROLLER_KEY] &&\n\t\ttypeof window[CONTROLLER_KEY].destroy === 'function'\n\t) {\n\t\twindow[CONTROLLER_KEY].destroy();\n\t}\n\n\tlet destroyed = false;\n\tlet mountToken = 0;\n\tlet mountTimer = null;\n\tlet scheduleTimer = null;\n\tlet dataLayerCheckTimer = null;\n\n\tlet hookedDataLayer = null;\n\tlet originalDataLayerPush = null;\n\tlet wrappedDataLayerPush = null;\n\n\tconsole.log('eseguito');\n\n\tfunction isValidUrl() {\n\t\treturn URL_REGEX.test(window.location.href);\n\t}\n\n\tfunction init() {\n\t\tconsole.log('INIT');\n\t\treturn addAccountSelector();\n\t}\n\n\tfunction addAccountSelector() {\n\t\tif (document.querySelector('#JAK_accountSelector')) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst signInButton = document.querySelector(\n\t\t\t'[data-test-id=\"AccountBoxSignInBox\"] button'\n\t\t);\n\n\t\tconst guestCheckoutLink = document.querySelector(\n\t\t\t'[data-test-id=\"AccountBoxGuestCheckoutBox\"] a'\n\t\t);\n\n\t\tconst target = document.querySelector(\n\t\t\t'[data-test-id=\"ContainerWrapper\"]:has([data-test-id=\"AccountBoxGuestCheckoutSectionHeader\"])'\n\t\t);\n\n\t\tif (!signInButton || !guestCheckoutLink || !target) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst title1 = signInButton.innerText;\n\t\tconst title2 = guestCheckoutLink.innerText;\n\n\t\tconst accountSelector = document.createElement('div');\n\n\t\taccountSelector.id = 'JAK_accountSelector';\n\t\taccountSelector.innerHTML = `\n\t\t\t<button class=\"selector guest active\">${title2}</button>\n\t\t\t<button class=\"selector login\">${title1}</button>\n\t\t`;\n\n\t\ttarget.prepend(accountSelector);\n\t\thandleClicks(accountSelector);\n\n\t\treturn true;\n\t}\n\n\tfunction handleClicks(accountSelector) {\n\t\tconst guestCta = accountSelector.querySelector('.guest');\n\t\tconst loginCta = accountSelector.querySelector('.login');\n\n\t\tif (!guestCta || !loginCta) {\n\t\t\treturn;\n\t\t}\n\n\t\tguestCta.addEventListener('click', function () {\n\t\t\tpushCta('guest_selector_click');\n\n\t\t\tguestCta.classList.add('active');\n\t\t\tloginCta.classList.remove('active');\n\t\t});\n\n\t\tloginCta.addEventListener('click', function () {\n\t\t\tpushCta('login_selector_click');\n\n\t\t\tloginCta.classList.add('active');\n\t\t\tguestCta.classList.remove('active');\n\t\t});\n\t}\n\n\tfunction removeAccountSelector() {\n\t\tconst accountSelector = document.querySelector(\n\t\t\t'#JAK_accountSelector'\n\t\t);\n\n\t\tif (accountSelector) {\n\t\t\taccountSelector.remove();\n\t\t}\n\t}\n\n\tfunction mountAfterPageChange() {\n\t\tmountToken += 1;\n\n\t\tconst currentToken = mountToken;\n\t\tlet attempts = 0;\n\n\t\tclearTimeout(mountTimer);\n\t\tremoveAccountSelector();\n\n\t\tif (!isValidUrl()) {\n\t\t\treturn;\n\t\t}\n\n\t\tfunction tryMount() {\n\t\t\tif (\n\t\t\t\tdestroyed ||\n\t\t\t\tcurrentToken !== mountToken\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!isValidUrl()) {\n\t\t\t\tremoveAccountSelector();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (init()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattempts += 1;\n\n\t\t\tif (attempts < 34) {\n\t\t\t\tmountTimer = setTimeout(tryMount, 300);\n\t\t\t}\n\t\t}\n\n\t\ttryMount();\n\t}\n\n\tfunction scheduleMount() {\n\t\tif (destroyed) {\n\t\t\treturn;\n\t\t}\n\n\t\tclearTimeout(scheduleTimer);\n\n\t\tscheduleTimer = setTimeout(function () {\n\t\t\tmountAfterPageChange();\n\t\t}, 50);\n\t}\n\n\tfunction containsPageView(args) {\n\t\treturn args.some(function (item) {\n\t\t\treturn (\n\t\t\t\titem &&\n\t\t\t\ttypeof item === 'object' &&\n\t\t\t\titem.event === 'page_view'\n\t\t\t);\n\t\t});\n\t}\n\n\tfunction installDataLayerHook() {\n\t\tif (destroyed) {\n\t\t\treturn;\n\t\t}\n\n\t\twindow.dataLayer = window.dataLayer || [];\n\n\t\tconst currentDataLayer = window.dataLayer;\n\n\t\tif (\n\t\t\thookedDataLayer === currentDataLayer &&\n\t\t\tcurrentDataLayer.push === wrappedDataLayerPush\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\thookedDataLayer = currentDataLayer;\n\n\t\tconst currentOriginalPush = currentDataLayer.push;\n\n\t\tconst currentWrappedPush = function () {\n\t\t\tconst args = Array.prototype.slice.call(arguments);\n\n\t\t\tconst result = currentOriginalPush.apply(\n\t\t\t\tthis,\n\t\t\t\targs\n\t\t\t);\n\n\t\t\tif (containsPageView(args)) {\n\t\t\t\tscheduleMount();\n\t\t\t}\n\n\t\t\treturn result;\n\t\t};\n\n\t\toriginalDataLayerPush = currentOriginalPush;\n\t\twrappedDataLayerPush = currentWrappedPush;\n\n\t\tcurrentDataLayer.push = currentWrappedPush;\n\t}\n\n\tfunction pushCta(name) {\n\t\twindow.dataLayer = window.dataLayer || [];\n\n\t\twindow.dataLayer.push({\n\t\t\tevent: 'experiment',\n\t\t\texp_element: 'visible_guest_checkout',\n\t\t\texp_content: name,\n\t\t});\n\t}\n\n\tfunction destroy() {\n\t\tdestroyed = true;\n\t\tmountToken += 1;\n\n\t\tclearTimeout(mountTimer);\n\t\tclearTimeout(scheduleTimer);\n\t\tclearInterval(dataLayerCheckTimer);\n\n\t\tremoveAccountSelector();\n\n\t\tif (\n\t\t\thookedDataLayer &&\n\t\t\thookedDataLayer.push === wrappedDataLayerPush\n\t\t) {\n\t\t\thookedDataLayer.push = originalDataLayerPush;\n\t\t}\n\t}\n\n\twindow[CONTROLLER_KEY] = {\n\t\tdestroy: destroy,\n\t\trefresh: scheduleMount,\n\t};\n\n\tinstallDataLayerHook();\n\n\tdataLayerCheckTimer = setInterval(\n\t\tinstallDataLayerHook,\n\t\t1000\n\t);\n\n\tscheduleMount();\n})();","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"type":"regex","pattern":"^https:\\/\\/www\\.breitling\\.com\\/(?:us-(?:en|zh|es)|gb-(?:en|zh)|ch-(?:en|zh|de|fr|it)|de-(?:en|zh|de)|fr-(?:en|zh|fr)|jp-(?:ja|en|zh))(?=.*\\/login\\/)(?=.*(?:[?&]variant=checkout(?:[&#]|$))).*$"}],"weights":[0.5,0.5],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"81c6a7c6-d188-42f5-bcc0-cbbd0acce4a1","name":"#21 - Visible Guest Checkout","phase":"0","condition":{"deviceType":"mobile","url":{"$regex":"^(?:https:\\/\\/www\\.breitling\\.com\\/(?:us-(?:en|zh|es)|gb-(?:en|zh)|ch-(?:en|zh|de|fr|it)|de-(?:en|zh|de)|fr-(?:en|zh|fr)|jp-(?:ja|en|zh)).*|.*variant=checkout.*|.*\\/login\\/.*)$"}},"coverage":1},{"key":"8-2-plp-interlinking","changeId":"ea6c7649f34646beba33498f7d13e8fc9cfd50285ddd06f4570cf8dafbe379eb","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"#JAK_interlinking {\r\n display: flex !important;\r\n padding-bottom: 24px;\r\n position: relative;\r\n padding-inline: 2.5rem;\r\n justify-content: center;\r\n overflow: hidden;\r\n}\r\nbody:has([data-test-id=\"MediaWrapperBox\"]) #JAK_interlinking{\r\n margin-top: -48px;\r\n}\r\n#JAK_interlinking .interlinkingContainer {\r\n width: 896px;\r\n margin: 0 auto;\r\n}\r\n#JAK_interlinking .interlinkingWrapper {\r\n display: flex;\r\n}\r\n.JAK_interlinkingCard {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n width: 80px;\r\n gap: 16px;\r\n flex-shrink: 0;\r\n cursor: pointer;\r\n}\r\n.JAK_interlinkingCard .cardImg {\r\n display: flex;\r\n aspect-ratio: 1;\r\n position: relative;\r\n width: 100%;\r\n background: rgb(245, 245, 245);\r\n border-radius: 50%;\r\n}\r\n\r\n.JAK_interlinkingCard.active .cardImg{\r\n \r\n background: rgb(210, 210, 210);\r\n \r\n}\r\n\r\n.JAK_interlinkingCard .cardName {\r\n padding-bottom: 8px;\r\n font-family: __italianPlate_843ea1, __italianPlate_Fallback_843ea1;\r\n font-weight: 600;\r\n font-size: 16px;\r\n text-align: center;\r\n text-transform: uppercase;\r\n}\r\n.JAK_interlinkingCard .cardImg img {\r\n display: flex;\r\n width: 90%;\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n object-fit: contain;\r\n transform: translate(-50%, -52%);\r\n}\r\n\r\n.JAK_interlinkingCard.active .cardName{\r\nposition: relative;\r\ntext-decoration: underline;\r\ntext-decoration-color: #ffc72c;\r\ntext-underline-offset: 4px;\r\n\r\n}\r\n\r\n.interlinkingPagination {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 0;\r\n margin-top: 16px;\r\n}\r\n#JAK_interlinking .interlinkingPagination .swiper-pagination-bullet {\r\n padding: 0;\r\n margin: 0;\r\n width: 48px;\r\n height: 3px;\r\n border-radius: 0;\r\n background: rgb(211, 211, 211);\r\n}\r\n#JAK_interlinking .interlinkingPagination .swiper-pagination-bullet.swiper-pagination-bullet-active {\r\n background: rgb(7, 44, 84);\r\n}\r\n#JAK_interlinking .interlinkingPagination .swiper-pagination-bullet:first-of-type {\r\n border-top-left-radius: 5px;\r\n border-bottom-left-radius: 5px;\r\n}\r\n#JAK_interlinking .interlinkingPagination .swiper-pagination-bullet:last-of-type {\r\n border-top-right-radius: 5px;\r\n border-bottom-right-radius: 5px;\r\n}\r\n\r\n\r\n@media(max-width: 1200px){\r\n .JAK_interlinkingCard {\r\n  width: 130px;\r\n }\r\n}\r\n@media(max-width: 1024px){\r\n .JAK_interlinkingCard {\r\n  width: 100px;\r\n }\r\n \r\n .JAK_interlinkingCard .cardName{\r\n  font-size: 14px;\r\n }\r\n \r\n #JAK_interlinking .interlinkingContainer {\r\n  width: 90vw;\r\n  margin: 0 auto;\r\n }\r\n #JAK_interlinking .interlinkingPagination .swiper-pagination-bullet {\r\n  width: 32px;\r\n }\r\n body:has([data-test-id=\"MediaWrapperBox\"]) #JAK_interlinking{\r\n  margin-top: -20px;\r\n }\r\n}","js":"(function () {\n\tconst EXP_FLAG = '__JAK_interlinking_initialized__';\n\tconst VISIBILITY_STYLE_ID = 'JAK_interlinkingVisibilityStyle';\n\n\tif (window[EXP_FLAG]) return;\n\twindow[EXP_FLAG] = true;\n\n\tconst allowedCollections = [\n\t\t'navitimer',\n\t\t'chronomat',\n\t\t'superocean-heritage',\n\t\t'avenger',\n\t\t'classic-avi',\n\t\t'premier',\n\t\t'top-time',\n\t\t'superocean',\n\t\t'professional',\n\t];\n\n\tlet swiperInstance = null;\n\tlet targetInterval = null;\n\tlet targetTimeout = null;\n\tlet swiperScriptPromise = null;\n\n\tfunction isAllowedCollectionPage() {\n\t\tconst pathname = window.location.pathname.toLowerCase();\n\n\t\treturn allowedCollections.some((collection) => {\n\t\t\treturn (\n\t\t\t\tpathname.includes('/collections/' + collection + '/') ||\n\t\t\t\tpathname.endsWith('/collections/' + collection)\n\t\t\t);\n\t\t});\n\t}\n\n\tfunction updateVisibility() {\n\t\tlet visibilityStyle = document.querySelector(\n\t\t\t'#' + VISIBILITY_STYLE_ID\n\t\t);\n\n\t\tif (!visibilityStyle) {\n\t\t\tvisibilityStyle = document.createElement('style');\n\t\t\tvisibilityStyle.id = VISIBILITY_STYLE_ID;\n\t\t\tdocument.head.appendChild(visibilityStyle);\n\t\t}\n\n\t\tif (isAllowedCollectionPage()) {\n\t\t\tvisibilityStyle.textContent = `\n\t\t\t\t#JAK_interlinking {\n\t\t\t\t\tdisplay: block !important;\n\t\t\t\t}\n\t\t\t`;\n\t\t} else {\n\t\t\tvisibilityStyle.textContent = `\n\t\t\t\t#JAK_interlinking {\n\t\t\t\t\tdisplay: none !important;\n\t\t\t\t}\n\t\t\t`;\n\t\t}\n\t}\n\n\tfunction handlePageView() {\n\t\tupdateVisibility();\n\n\t\tif (!isAllowedCollectionPage()) return;\n\n\t\tconst interlinking = document.querySelector('#JAK_interlinking');\n\n\t\tif (interlinking) {\n\t\t\tupdateActiveCollection();\n\t\t\treturn;\n\t\t}\n\n\t\twaitForTarget();\n\t}\n\n\tfunction waitForTarget() {\n\t\tclearInterval(targetInterval);\n\t\tclearTimeout(targetTimeout);\n\n\t\ttargetInterval = setInterval(() => {\n\t\t\tif (!isAllowedCollectionPage()) {\n\t\t\t\tclearInterval(targetInterval);\n\t\t\t\ttargetInterval = null;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst target = document.querySelector(\n\t\t\t\t'[data-test-id=\"ListingFiltersWrapper\"]'\n\t\t\t);\n\n\t\t\tif (!target) return;\n\n\t\t\tclearInterval(targetInterval);\n\t\t\tclearTimeout(targetTimeout);\n\n\t\t\ttargetInterval = null;\n\t\t\ttargetTimeout = null;\n\n\t\t\tinit(target);\n\t\t}, 300);\n\n\t\ttargetTimeout = setTimeout(() => {\n\t\t\tclearInterval(targetInterval);\n\t\t\ttargetInterval = null;\n\t\t\ttargetTimeout = null;\n\t\t}, 6000);\n\t}\n\n\tasync function init(target) {\n\t\tif (!isAllowedCollectionPage()) return;\n\n\t\tif (document.querySelector('#JAK_interlinking')) {\n\t\t\tupdateActiveCollection();\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst collectionsData = getAllCollections();\n\n\t\t\tif (!collectionsData.length) return;\n\n\t\t\taddInterlinking(target, collectionsData);\n\t\t\tupdateVisibility();\n\n\t\t\tawait initSwiper();\n\t\t} catch (error) {\n\t\t\tconsole.error('JAK Interlinking error:', error);\n\t\t}\n\t}\n\n\tfunction loadSwiper() {\n\t\tif (window.Swiper) {\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\tif (swiperScriptPromise) {\n\t\t\treturn swiperScriptPromise;\n\t\t}\n\n\t\tswiperScriptPromise = new Promise((resolve, reject) => {\n\t\t\tconst existingScript = document.querySelector(\n\t\t\t\t'script[data-jak-swiper-script=\"true\"]'\n\t\t\t);\n\n\t\t\tif (existingScript) {\n\t\t\t\tif (window.Swiper) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\texistingScript.addEventListener('load', resolve, {\n\t\t\t\t\tonce: true,\n\t\t\t\t});\n\n\t\t\t\texistingScript.addEventListener('error', reject, {\n\t\t\t\t\tonce: true,\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst swiperScript = document.createElement('script');\n\n\t\t\tswiperScript.src =\n\t\t\t\t'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js';\n\n\t\t\tswiperScript.dataset.jakSwiperScript = 'true';\n\n\t\t\tswiperScript.onload = resolve;\n\t\t\tswiperScript.onerror = reject;\n\n\t\t\tdocument.body.appendChild(swiperScript);\n\t\t});\n\n\t\treturn swiperScriptPromise;\n\t}\n\n\tasync function initSwiper() {\n\t\tconst interlinkingContainer = document.querySelector(\n\t\t\t'#JAK_interlinking .interlinkingContainer'\n\t\t);\n\n\t\tif (!interlinkingContainer) return;\n\n\t\tawait loadSwiper();\n\n\t\tif (swiperInstance) {\n\t\t\tswiperInstance.destroy(true, true);\n\t\t\tswiperInstance = null;\n\t\t}\n\n\t\tconst cards = Array.from(\n\t\t\tinterlinkingContainer.querySelectorAll('.JAK_interlinkingCard')\n\t\t);\n\n\t\tconst activeIndex = cards.findIndex((card) => {\n\t\t\treturn card.classList.contains('active');\n\t\t});\n\n\t\tswiperInstance = new Swiper(interlinkingContainer, {\n\t\t\twrapperClass: 'interlinkingWrapper',\n\t\t\tslideClass: 'JAK_interlinkingCard',\n\t\t\tslidesPerView: 'auto',\n\t\t\tspaceBetween: 32,\n\t\t\tinitialSlide: Math.max(activeIndex, 0),\n\t\t\tpagination: {\n\t\t\t\tel: '#JAK_interlinking .interlinkingPagination',\n\t\t\t\tclickable: true,\n\t\t\t},\n\t\t});\n\t}\n\n\tfunction addInterlinking(target, collectionsData) {\n\t\tif (document.querySelector('#JAK_interlinking')) return;\n\n\t\tconst interlinkingSec = document.createElement('div');\n\n\t\tinterlinkingSec.id = 'JAK_interlinking';\n\n\t\tinterlinkingSec.innerHTML = `\n\t\t\t<div class=\"interlinkingContainer\">\n\t\t\t\t<div class=\"interlinkingWrapper\"></div>\n\t\t\t\t<div class=\"interlinkingPagination\"></div>\n\t\t\t</div>\n\t\t`;\n\n\t\ttarget.insertAdjacentElement('beforebegin', interlinkingSec);\n\n\t\taddCollections(interlinkingSec, collectionsData);\n\t}\n\n\tfunction addCollections(interlinkingSec, collectionsData) {\n\t\tconst wrapper = interlinkingSec.querySelector(\n\t\t\t'.interlinkingWrapper'\n\t\t);\n\n\t\tcollectionsData.forEach((data) => {\n\t\t\tconst interlinkingCard = document.createElement('div');\n\n\t\t\tinterlinkingCard.className = 'JAK_interlinkingCard';\n\t\t\tinterlinkingCard.setAttribute('data-collection-href', data.href);\n\n\t\t\tinterlinkingCard.innerHTML = `\n\t\t\t\t<div class=\"cardImg\">\n\t\t\t\t\t<img src=\"${data.imgUrl}\" alt=\"${data.name}\">\n\t\t\t\t</div>\n\t\t\t\t<div class=\"cardName\">${data.name}</div>\n\t\t\t`;\n\n\t\t\twrapper.appendChild(interlinkingCard);\n\n\t\t\tinterlinkingCard.addEventListener('click', () => {\n\t\t\t\tpushCta('collection_click');\n\t\t\t\tdata.original.click();\n\t\t\t});\n\t\t});\n\n\t\tupdateActiveCollection();\n\t}\n\n\tfunction updateActiveCollection() {\n\t\tconst currentPathname = window.location.pathname\n\t\t\t.toLowerCase()\n\t\t\t.replace(/\\/$/, '');\n\n\t\tconst cards = Array.from(\n\t\t\tdocument.querySelectorAll(\n\t\t\t\t'#JAK_interlinking .JAK_interlinkingCard'\n\t\t\t)\n\t\t);\n\n\t\tlet activeIndex = -1;\n\n\t\tcards.forEach((card, index) => {\n\t\t\tconst href = card.getAttribute('data-collection-href');\n\n\t\t\tif (!href) {\n\t\t\t\tcard.classList.remove('active');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet collectionPathname;\n\n\t\t\ttry {\n\t\t\t\tcollectionPathname = new URL(\n\t\t\t\t\thref,\n\t\t\t\t\twindow.location.origin\n\t\t\t\t).pathname\n\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t.replace(/\\/$/, '');\n\t\t\t} catch (error) {\n\t\t\t\tcollectionPathname = href\n\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t.split('?')[0]\n\t\t\t\t\t.split('#')[0]\n\t\t\t\t\t.replace(/\\/$/, '');\n\t\t\t}\n\n\t\t\tconst isActive =\n\t\t\t\tcurrentPathname === collectionPathname ||\n\t\t\t\tcurrentPathname.indexOf(collectionPathname + '/') === 0;\n\n\t\t\tcard.classList.toggle('active', isActive);\n\n\t\t\tif (isActive) {\n\t\t\t\tactiveIndex = index;\n\t\t\t}\n\t\t});\n\n\t\tif (\n\t\t\tswiperInstance &&\n\t\t\tactiveIndex >= 0 &&\n\t\t\ttypeof swiperInstance.slideTo === 'function'\n\t\t) {\n\t\t\tswiperInstance.slideTo(activeIndex);\n\t\t}\n\t}\n\n\tfunction getAllCollections() {\n\t\tconst collectionsInfo = [];\n\n\t\tconst allCollections = document.querySelectorAll(\n\t\t\t'[data-test-id=\"CollectionsDesktopMegamenu\"] [data-test-id^=\"CollectionsCollection-\"]'\n\t\t);\n\n\t\tallCollections.forEach((collection) => {\n\t\t\tconst title = collection.querySelector(\n\t\t\t\t'[data-test-id^=\"CollectionsCollectionTitle\"]'\n\t\t\t);\n\n\t\t\tconst image = collection.querySelector('img');\n\t\t\tconst name = title?.innerText?.trim();\n\t\t\tconst href = collection.href;\n\t\t\tlet imgUrl = image?.src;\n\n\t\t\tif (name?.includes('Chronomat')) {\n\t\t\t\timgUrl =\n\t\t\t\t\t'https://www.breitling.com/cdn-cgi/image/format=auto,quality=90,width=350,fit=cover,gravity=0.5x0.5/api/image-proxy/www-breitling.eu.saleor.cloud/media/products/ab0158101a1a1-soldier_3e24ab98.png';\n\t\t\t}\n\n\t\t\tif (!name || !href || !imgUrl) return;\n\n\t\t\tcollectionsInfo.push({\n\t\t\t\tname: name,\n\t\t\t\thref: href,\n\t\t\t\timgUrl: imgUrl,\n\t\t\t\toriginal: collection,\n\t\t\t});\n\t\t});\n\n\t\treturn collectionsInfo;\n\t}\n\n\tfunction observeDataLayer() {\n\t\twindow.dataLayer = window.dataLayer || [];\n\n\t\tconst originalPush = window.dataLayer.push.bind(window.dataLayer);\n\n\t\twindow.dataLayer.push = function () {\n\t\t\tconst pushedItems = Array.from(arguments);\n\t\t\tconst result = originalPush.apply(window.dataLayer, pushedItems);\n\n\t\t\tpushedItems.forEach((item) => {\n\t\t\t\tif (item?.event === 'page_view') {\n\t\t\t\t\thandlePageView();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result;\n\t\t};\n\t}\n\n\tfunction pushCta(name) {\n\t\twindow.dataLayer = window.dataLayer || [];\n\n\t\twindow.dataLayer.push({\n\t\t\tevent: 'experiment',\n\t\t\texp_element: 'plp_interlinking',\n\t\t\texp_content: name,\n\t\t});\n\t}\n\n\tobserveDataLayer();\n\thandlePageView();\n})();","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"type":"simple","pattern":"*/collections/navitimer/*"},{"include":true,"type":"simple","pattern":"*/collections/chronomat/*"},{"include":true,"type":"simple","pattern":"*/collections/superocean-heritage/*"},{"include":true,"type":"simple","pattern":"*/collections/avenger/*"},{"include":true,"type":"simple","pattern":"*/collections/classic-avi/*"},{"include":true,"type":"simple","pattern":"*/collections/premier/*"},{"include":true,"type":"simple","pattern":"*/collections/top-time/*"},{"include":true,"type":"simple","pattern":"*/collections/superocean/*"},{"include":true,"type":"simple","pattern":"*/collections/professional/*"}],"weights":[0.5,0.5],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"6444078f-eeca-4fe5-bbff-3abfa97aa54d","name":"#8.2_PLP_Interlinking","phase":"0","condition":{"url":{"$regex":"^https:\\/\\/www\\.breitling\\.com\\/(?:us-(?:en|zh|es)|gb-(?:en|zh)|ch-(?:en|zh|de|fr|it)|de-(?:en|zh|de)|fr-(?:en|zh|fr)|jp-(?:ja|en|zh))(?:\\/.*)?$"}},"coverage":1},{"key":"30-pdp-accordions-tab-product-informations","changeId":"9fb5b596f3ba4fe68e7b2b3074afcf0f2e1575a1672ea2e5a7555ad013d8f736","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"/* Versione Desktop */\n\n.mobileWatchInfos {\n    display: none;\n}\n\nmain>section[data-test-id=\"KeyFeaturesSection\"],\nmain>section[data-test-id=\"TechnicalDataSection\"],\nmain>section[data-test-id=\"WarrantySection warranty\"] {\n    display: none;\n}\n.watchInfos{\ndisplay: block!important;\n}\n.desktopWatchInfos .infosTabs {\n    display: flex;\n    gap: 10px;\n    margin-bottom: -2px;\n    max-width: 1440px;\n    margin: 0 auto;\n}\n\n.desktopWatchInfos .infosTabs .infoTab {\n    width: calc((100% - 70px) / 8);\n    text-align: center;\n    padding: 12px;\n    background: rgb(245, 245, 245);\n    border-bottom: 2px solid white;\n    color: rgb(7, 44, 84);\n    font-size: 18px;\n    line-height: 22px;\n    font-weight: 700;\n    cursor: pointer;\n    margin-bottom: 2px;\n    position: relative;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    text-transform: uppercase;\n}\n\n.desktopWatchInfos .infosTabs .infoTab.clicked {\n    border: 2px solid rgb(245, 245, 245);\n    border-bottom: 2px solid rgb(255, 255, 255);\n    background: rgb(255, 255, 255);\n    margin-bottom: -2px;\n    z-index: 3;\n\n}\n\n.desktopWatchInfos .infosTabs .infoTab:hover {\n    border: 2px solid rgb(245, 245, 245);\n    border-bottom: 2px solid rgb(255, 255, 255);\n    background: rgb(255, 255, 255);\n    margin-bottom: -2px;\n    z-index: 3;\n}\n\n@media screen and (min-width: 1440px) {\n    .desktopWatchInfos .infosContent {\n        padding-inline: 2.5rem;\n    }\n}\n\n.desktopWatchInfos .infosContent {\n    border-top: 2px solid rgb(245, 245, 245);\n    padding-top: 50px;\n    padding-inline: 1rem;\n}\n\n.desktopWatchInfos .infosContent>div.watchTech>div[data-test-id=\"Section\"]>div {\n    width: calc((100% / 6) - 40px);\n}\n\n.desktopWatchInfos .infosContent .watchTech {\n    max-width: 1440px;\n    margin: 0 auto;\n}\n\n.desktopWatchInfos .infosContent .watchTech [data-test-id=\"Section\"] {\n    display: flex;\n    gap: 40px;\n    flex-wrap: wrap;\n}\n\n.desktopWatchInfos .infosContent .watchTech:not([content-id=\"key-features\"]) [data-test-id=\"Section\"], .desktopWatchInfos .infosContent .infoContent[content-id=\"warranty\"] section[data-test-id=\"WarrantySection warranty\"] > div{\n    padding-bottom: 40px;\n    border-bottom: solid 1px rgb(235, 235, 235);\n}\n\n.desktopWatchInfos .infosContent .watchTech [data-test-id=\"Section\"]>div>p {\n    font-size: 18px;\n    margin-bottom: 10px;\n}\n\n.desktopWatchInfos .infosContent .watchTech [data-test-id=\"Section\"]>p {\n    /* width: 100%;\n    font-family: __italianPlate_843ea1;\n    font-size: 40px;\n    line-height: 40px;\n    font-weight: 700; */\n    display: none !important;\n}\n\n.desktopWatchInfos .infoContent[content-id=\"key-features\"] div[data-test-id=\"Header\"] {\n    justify-content: end !important;\n}\n\n.desktopWatchInfos .infoContent[content-id=\"key-features\"] div[data-test-id=\"HeaderTitleDesktop\"],\n.desktopWatchInfos .infoContent[content-id=\"warranty\"] h3[data-testid=\"WarrantyHeader\"] {\n    /* padding: 16px 0; */\n    display: none !important;\n\n}\n\n.desktopWatchInfos .infoContent[content-id=\"key-features\"] div[data-testid=\"KeyFeaturesWrapper\"],\n.desktopWatchInfos .infoContent[content-id=\"warranty\"] div[data-test-id=\"ContainerWrapper\"] {\n    padding-inline: 0;\n}\n\n.desktopWatchInfos .infoContent.hidden,\n.mobileWatchInfos .infoAccContent.hidden {\n    display: none;\n}\n\n/* Versione Mobile */\n\n@media screen and (max-width: 991px) {\n    .desktopWatchInfos {\n        display: none;\n    }\n\n    .mobileWatchInfos {\n        display: block;\n        padding: 0 1rem;\n    }\n\n    .infoAccContent[content-id=\"key-features\"]>section[data-test-id=\"KeyFeaturesSection\"]>div[data-testid=\"KeyFeaturesWrapper\"] {\n        padding-top: 16px;\n    }\n\n    .mobileWatchInfos section[data-test-id=\"WarrantySection warranty\"]>div {\n        padding: 0;\n    }\n\n\n    .mobileWatchInfos .infoAccordion {\n        display: flex;\n        justify-content: space-between;\n        align-items: center;\n        padding: 16px 0;\n        border-bottom: 1px solid rgb(245, 245, 245);\n        font-size: 18px;\n        line-height: 22px;\n        font-weight: 700;\n        color: rgb(7, 44, 84);\n        cursor: pointer;\n        text-transform: uppercase;\n    }\n\n    .mobileWatchInfos .infoAccordion svg {\n        transition: transform 0.3s ease-in-out;\n    }\n\n    .mobileWatchInfos .infoAccordion.clicked svg {\n        transform: rotate(180deg);\n    }\n\n    .infoAccContent[content-id=\"key-features\"] p[data-test-id=\"HeaderTitleMobile\"],\n    .infoAccContent:not([content-id=\"warranty\"]) p[data-test-id=\"SectionTitle\"],\n    .infoAccContent[content-id=\"warranty\"] header {\n        display: none !important;\n    }\n\n    .infoAccContent:not([content-id=\"warranty\"]):not([content-id=\"key-features\"]) div[data-test-id^=\"NameValueWrapper-\"]>p {\n        font-size: 16px;\n    }\n\n    .infoAccContent:not([content-id=\"warranty\"]):not([content-id=\"key-features\"]) div[data-test-id^=\"NameValueWrapper-\"] {\n        margin-bottom: 10px !important;\n    }\n\n    .infoAccContent:not([content-id=\"warranty\"]):not([content-id=\"key-features\"]) div[data-test-id=\"Section\"] {\n        padding-top: 16px;\n    }\n\n    .infoAccContent[content-id=\"warranty\"] div[data-testid=\"AccordionWrapper\"]>div {\n        height: 100% !important;\n    }\n}","js":"(function () {\n    'use strict';\n\n    var CONTROLLER_KEY = '__watchInfosSpaControllerV2';\n\n    /*\n     * Se il codice viene reiniettato dall'A/B testing tool,\n     * distrugge prima la precedente istanza.\n     */\n    if (\n        window[CONTROLLER_KEY] &&\n        typeof window[CONTROLLER_KEY].destroy === 'function'\n    ) {\n        window[CONTROLLER_KEY].destroy();\n    }\n\n    var destroyed = false;\n\n    var mountTimer = null;\n    var retryTimer = null;\n    var dataLayerCheckTimer = null;\n\n    var mountToken = 0;\n    var lastSourceState = null;\n\n    var hookedDataLayer = null;\n    var originalDataLayerPush = null;\n    var wrappedDataLayerPush = null;\n\n    /*\n     * Normalizza il testo per confrontare i contenuti\n     * delle diverse pagine prodotto.\n     */\n    function normalizeText(value) {\n        return String(value || '')\n            .replace(/\\s+/g, ' ')\n            .trim();\n    }\n\n    /*\n     * Recupera tutti gli elementi nativi necessari.\n     * Restituisce null finché la SPA non ha completato\n     * il rendering della pagina prodotto.\n     */\n    function getSourceState() {\n        var technicalSection = document.querySelector(\n            'section[data-test-id=\"TechnicalDataSection\"]'\n        );\n\n        var keyFeaturesSection = document.querySelector(\n            'section[data-test-id=\"KeyFeaturesSection\"]'\n        );\n\n        var warrantySection = document.querySelector(\n            'section[data-test-id=\"WarrantySection warranty\"]'\n        );\n\n        var productDetailSection = document.querySelector(\n            'section[data-test-id=\"ProductDetailSection\"]'\n        );\n\n        if (\n            !technicalSection ||\n            !keyFeaturesSection ||\n            !warrantySection ||\n            !productDetailSection\n        ) {\n            return null;\n        }\n\n        var techSections = Array.from(\n            technicalSection.querySelectorAll(\n                'div[data-test-id=\"Section\"]'\n            )\n        );\n\n        var technicalTitles = Array.from(\n            technicalSection.querySelectorAll(\n                'div[data-test-id=\"Section\"] > p[data-test-id=\"SectionTitle\"]'\n            )\n        ).slice(4, 8);\n\n        var keyFeaturesTitleElement =\n            keyFeaturesSection.querySelector(\n                'p[data-test-id=\"HeaderTitleMobile\"]'\n            );\n\n        var warrantyTitleElement =\n            warrantySection.querySelector(\n                'h3[data-testid=\"WarrantyHeader\"]'\n            );\n\n        /*\n         * Lo script originale richiede:\n         * - almeno 8 sezioni tecniche;\n         * - 4 titoli tecnici desktop;\n         * - titolo Key Features;\n         * - titolo Warranty.\n         */\n        if (\n            techSections.length < 8 ||\n            technicalTitles.length < 4 ||\n            !keyFeaturesTitleElement ||\n            !warrantyTitleElement\n        ) {\n            return null;\n        }\n\n        return {\n            technicalSection: technicalSection,\n            keyFeaturesSection: keyFeaturesSection,\n            warrantySection: warrantySection,\n            productDetailSection: productDetailSection,\n\n            techSections: techSections,\n            technicalTitles: technicalTitles,\n\n            keyFeaturesTitle:\n                normalizeText(keyFeaturesTitleElement.textContent),\n\n            warrantyTitle:\n                normalizeText(warrantyTitleElement.textContent),\n\n            /*\n             * La firma serve a capire quando i dati nativi\n             * della PDP sono realmente cambiati.\n             */\n            signature: [\n                normalizeText(technicalSection.textContent),\n                normalizeText(keyFeaturesSection.textContent),\n                normalizeText(warrantySection.textContent)\n            ].join('||')\n        };\n    }\n\n    function removeWatchInfos() {\n        document\n            .querySelectorAll('.watchInfos')\n            .forEach(function (element) {\n                element.remove();\n            });\n    }\n\n    function sourceHasChanged(source) {\n        if (!lastSourceState) {\n            return true;\n        }\n\n        return (\n            source.signature !== lastSourceState.signature ||\n            source.technicalSection !==\n                lastSourceState.technicalSection ||\n            source.keyFeaturesSection !==\n                lastSourceState.keyFeaturesSection ||\n            source.warrantySection !==\n                lastSourceState.warrantySection ||\n            source.productDetailSection !==\n                lastSourceState.productDetailSection\n        );\n    }\n\n    function sameSourceState(sourceA, sourceB) {\n        if (!sourceA || !sourceB) {\n            return false;\n        }\n\n        return (\n            sourceA.signature === sourceB.signature &&\n            sourceA.technicalSection === sourceB.technicalSection &&\n            sourceA.keyFeaturesSection ===\n                sourceB.keyFeaturesSection &&\n            sourceA.warrantySection === sourceB.warrantySection &&\n            sourceA.productDetailSection ===\n                sourceB.productDetailSection\n        );\n    }\n\n    function pushExperimentEvent(payload) {\n        window.dataLayer = window.dataLayer || [];\n\n        window.dataLayer.push(\n            Object.assign(\n                {\n                    event: 'experiment'\n                },\n                payload\n            )\n        );\n    }\n\n    /*\n     * Applica le modifiche alla warranty desktop.\n     * I controlli evitano che un piccolo cambio del DOM\n     * blocchi tutto il test.\n     */\n    function modifyDesktopWarranty(watchInfos) {\n        var warrantyDesktop = watchInfos.querySelector(\n            '.desktopWatchInfos ' +\n            '.infoContent[content-id=\"warranty\"]'\n        );\n\n        if (!warrantyDesktop) {\n            return;\n        }\n\n        var firstColumn = warrantyDesktop.querySelector(\n            'section > ' +\n            'div[data-test-id=\"ContainerWrapper\"] > ' +\n            'div:last-child > div > div:first-child'\n        );\n\n        if (firstColumn) {\n            var firstBlock = firstColumn.firstElementChild;\n\n            if (firstBlock) {\n                var paragraphs = firstBlock.querySelectorAll('p');\n\n                if (paragraphs.length >= 3) {\n                    paragraphs[0].innerHTML =\n                        paragraphs[1].innerHTML;\n\n                    paragraphs[1].remove();\n                    paragraphs[2].remove();\n                }\n            }\n\n            if (firstColumn.children[1]) {\n                firstColumn.children[1].remove();\n            }\n\n            var lastBlock = firstColumn.lastElementChild;\n\n            if (lastBlock) {\n                var lastParagraphs =\n                    lastBlock.querySelectorAll('p');\n\n                if (lastParagraphs.length >= 5) {\n                    lastParagraphs[2].innerHTML =\n                        lastParagraphs[3].innerHTML;\n\n                    lastParagraphs[3].remove();\n                    lastParagraphs[4].remove();\n                }\n            }\n        }\n\n        var secondColumn = warrantyDesktop.querySelector(\n            'section > ' +\n            'div[data-test-id=\"ContainerWrapper\"] > ' +\n            'div:last-child > div > div:last-child'\n        );\n\n        if (secondColumn) {\n            var secondColumnParagraphs =\n                secondColumn.querySelectorAll(\n                    'div[data-test-id=\"Grid\"] > p'\n                );\n\n            if (secondColumnParagraphs.length >= 3) {\n                secondColumnParagraphs[1].innerHTML =\n                    secondColumnParagraphs[2].innerHTML;\n\n                secondColumnParagraphs[2].remove();\n            }\n        }\n    }\n\n    /*\n     * Applica le modifiche alla warranty mobile.\n     */\n    function modifyMobileWarranty(watchInfos) {\n        var warrantyMobile = watchInfos.querySelector(\n            '.mobileWatchInfos ' +\n            '.infoAccContent[content-id=\"warranty\"] ' +\n            'div[data-testid=\"AccordionContent\"] > ' +\n            'div.AccordionBox'\n        );\n\n        if (!warrantyMobile) {\n            return;\n        }\n\n        var firstElement = warrantyMobile.firstElementChild;\n\n        if (firstElement) {\n            var firstParagraphs =\n                firstElement.querySelectorAll('p');\n\n            if (firstParagraphs.length >= 3) {\n                firstParagraphs[0].innerHTML =\n                    firstParagraphs[1].innerHTML;\n\n                firstParagraphs[1].remove();\n                firstParagraphs[2].remove();\n            }\n        }\n\n        var lastElementContainer =\n            warrantyMobile.lastElementChild;\n\n        if (!lastElementContainer) {\n            return;\n        }\n\n        var firstChild =\n            lastElementContainer.firstElementChild;\n\n        var lastElement =\n            firstChild && firstChild.lastElementChild;\n\n        if (lastElement) {\n            var lastParagraphs =\n                lastElement.querySelectorAll('p');\n\n            if (lastParagraphs.length >= 5) {\n                lastParagraphs[2].innerHTML =\n                    lastParagraphs[3].innerHTML;\n\n                lastParagraphs[3].remove();\n                lastParagraphs[4].remove();\n            }\n        }\n\n        var secondChild =\n            lastElementContainer.lastElementChild;\n\n        var secondChildContent =\n            secondChild && secondChild.firstElementChild;\n\n        if (secondChildContent) {\n            var otherParagraphs =\n                secondChildContent.querySelectorAll('p');\n\n            if (otherParagraphs.length >= 3) {\n                otherParagraphs[1].innerHTML =\n                    otherParagraphs[2].innerHTML;\n\n                otherParagraphs[2].remove();\n            }\n        }\n    }\n\n    function addInfoBoxEvents(watchInfos) {\n        var infosBoxes = watchInfos.querySelectorAll(\n            'svg[data-test-id]'\n        );\n\n        infosBoxes.forEach(function (box) {\n            var boxId = box.getAttribute('data-test-id');\n\n            box.classList.add('infoBox');\n\n            box.addEventListener('click', function () {\n                var nativeBoxes = document.querySelectorAll(\n                    'svg[data-test-id]:not(.infoBox)'\n                );\n\n                var targetSection = Array.from(\n                    nativeBoxes\n                ).find(function (nativeBox) {\n                    return (\n                        nativeBox.getAttribute('data-test-id') ===\n                        boxId\n                    );\n                });\n\n                if (!targetSection) {\n                    return;\n                }\n\n                targetSection.dispatchEvent(\n                    new MouseEvent('click', {\n                        bubbles: true,\n                        cancelable: true\n                    })\n                );\n            });\n        });\n    }\n\n    function addDesktopTabEvents(desktopWatchInfos) {\n        var desktopTabs =\n            desktopWatchInfos.querySelectorAll('.infoTab');\n\n        var desktopClickedTab =\n            desktopWatchInfos.querySelector(\n                '.infoTab.clicked'\n            );\n\n        var desktopClickedContent =\n            desktopWatchInfos.querySelector(\n                '.infoContent:not(.hidden)'\n            );\n\n        desktopTabs.forEach(function (tab) {\n            tab.addEventListener('click', function () {\n                var tabId = tab.getAttribute('tab-id');\n\n                var targetContent =\n                    desktopWatchInfos.querySelector(\n                        '.infoContent[content-id=\"' +\n                        tabId +\n                        '\"]'\n                    );\n\n                if (!targetContent) {\n                    return;\n                }\n\n                if (\n                    desktopClickedTab &&\n                    desktopClickedTab !== tab\n                ) {\n                    desktopClickedTab.classList.remove(\n                        'clicked'\n                    );\n                }\n\n                if (\n                    desktopClickedContent &&\n                    desktopClickedContent !== targetContent\n                ) {\n                    desktopClickedContent.classList.add(\n                        'hidden'\n                    );\n                }\n\n                tab.classList.add('clicked');\n                targetContent.classList.remove('hidden');\n\n                desktopClickedTab = tab;\n                desktopClickedContent = targetContent;\n\n                pushExperimentEvent({\n                    exp_element: 'desktopTabClick',\n                    exp_content: 'tab clicked - ' + tabId\n                });\n            });\n        });\n    }\n\n    function addMobileAccordionEvents(mobileWatchInfos) {\n        var mobileAccordions =\n            mobileWatchInfos.querySelectorAll(\n                '.infoAccordion'\n            );\n\n        mobileAccordions.forEach(function (accordion) {\n            accordion.addEventListener(\n                'click',\n                function () {\n                    var tabId =\n                        accordion.getAttribute('tab-id');\n\n                    var targetContent =\n                        mobileWatchInfos.querySelector(\n                            '.infoAccContent[content-id=\"' +\n                            tabId +\n                            '\"]'\n                        );\n\n                    if (!targetContent) {\n                        return;\n                    }\n\n                    if (\n                        accordion.classList.contains(\n                            'clicked'\n                        )\n                    ) {\n                        accordion.classList.remove('clicked');\n                        targetContent.classList.add('hidden');\n\n                        pushExperimentEvent({\n                            exp_element:\n                                'mobileAccordionClick',\n\n                            exp_content:\n                                'accordion closed - ' +\n                                tabId\n                        });\n\n                        return;\n                    }\n\n                    var oldAccordion =\n                        mobileWatchInfos.querySelector(\n                            '.infoAccordion.clicked'\n                        );\n\n                    if (\n                        oldAccordion &&\n                        oldAccordion !== accordion\n                    ) {\n                        var oldTabId =\n                            oldAccordion.getAttribute(\n                                'tab-id'\n                            );\n\n                        var oldContent =\n                            mobileWatchInfos.querySelector(\n                                '.infoAccContent[content-id=\"' +\n                                oldTabId +\n                                '\"]'\n                            );\n\n                        oldAccordion.classList.remove(\n                            'clicked'\n                        );\n\n                        if (oldContent) {\n                            oldContent.classList.add(\n                                'hidden'\n                            );\n                        }\n                    }\n\n                    accordion.classList.add('clicked');\n                    targetContent.classList.remove('hidden');\n\n                    pushExperimentEvent({\n                        exp_element:\n                            'mobileAccordionClick',\n\n                        exp_content:\n                            'accordion opened - ' + tabId\n                    });\n                }\n            );\n        });\n    }\n\n    /*\n     * Costruisce il nuovo componente usando i valori\n     * presenti nella PDP corrente.\n     */\n    function redesignSpecs(source) {\n        if (!source) {\n            return false;\n        }\n\n        removeWatchInfos();\n\n        var desktopTechSections =\n            source.techSections.slice(4, 8);\n\n        var mobileTechSections =\n            source.techSections.slice(0, 4);\n\n        var techIds = [\n            'movements',\n            'case',\n            'dimensions',\n            'strap'\n        ];\n\n        var accordionIcon =\n            '<svg ' +\n                'aria-label=\"chevronDown-icon\" ' +\n                'height=\"20px\" ' +\n                'viewBox=\"0 0 20 20\" ' +\n                'width=\"20px\" ' +\n                'xmlns=\"http://www.w3.org/2000/svg\" ' +\n                'class=\"' +\n                    'sc-59f902fd-0 hKDiVT ' +\n                    'sc-13bb9618-0 kvfXtV ' +\n                    'accordion-header-icon' +\n                '\">' +\n                '<path ' +\n                    'clip-rule=\"evenodd\" ' +\n                    'd=\"' +\n                        'M10 13.7071L16.7071 7' +\n                        'L15.2929 5.58578' +\n                        'L10 10.8787' +\n                        'L4.70711 5.58578' +\n                        'L3.29289 7' +\n                        'L10 13.7071Z' +\n                    '\" ' +\n                    'fill=\"currentColor\" ' +\n                    'fill-rule=\"evenodd\">' +\n                '</path>' +\n            '</svg>';\n\n        var watchInfos = document.createElement('div');\n\n        watchInfos.className = 'watchInfos';\n        watchInfos.setAttribute(\n            'data-test-id',\n            'watchInfos'\n        );\n        watchInfos.style.display = 'none';\n        var desktopWatchInfos =\n            document.createElement('div');\n\n        desktopWatchInfos.className =\n            'desktopWatchInfos';\n\n        desktopWatchInfos.setAttribute(\n            'data-test-id',\n            'desktopWatchInfos'\n        );\n\n        var mobileWatchInfos =\n            document.createElement('div');\n\n        mobileWatchInfos.className =\n            'mobileWatchInfos';\n\n        mobileWatchInfos.setAttribute(\n            'data-test-id',\n            'mobileWatchInfos'\n        );\n\n        var desktopWatchTech = '';\n\n        desktopTechSections.forEach(\n            function (section, index) {\n                desktopWatchTech +=\n                    '<div ' +\n                        'class=\"' +\n                            'infoContent watchTech hidden' +\n                        '\" ' +\n                        'content-id=\"' +\n                            techIds[index] +\n                        '\">' +\n                        section.outerHTML +\n                    '</div>';\n            }\n        );\n\n        var mobileWatchTech = '';\n\n        mobileTechSections.forEach(\n            function (section, index) {\n                mobileWatchTech +=\n                    '<div ' +\n                        'class=\"infoAccordion\" ' +\n                        'tab-id=\"' +\n                            techIds[index] +\n                        '\">' +\n                        source.technicalTitles[index]\n                            .textContent +\n                        accordionIcon +\n                    '</div>' +\n\n                    '<div ' +\n                        'class=\"infoAccContent hidden\" ' +\n                        'content-id=\"' +\n                            techIds[index] +\n                        '\">' +\n                        section.outerHTML +\n                    '</div>';\n            }\n        );\n\n        desktopWatchInfos.innerHTML =\n            '<div class=\"infosTabs\">' +\n\n                '<div ' +\n                    'class=\"infoTab clicked\" ' +\n                    'tab-id=\"key-features\">' +\n                    source.keyFeaturesTitle +\n                '</div>' +\n\n                '<div ' +\n                    'class=\"infoTab\" ' +\n                    'tab-id=\"movements\">' +\n                    source.technicalTitles[0].textContent +\n                '</div>' +\n\n                '<div ' +\n                    'class=\"infoTab\" ' +\n                    'tab-id=\"case\">' +\n                    source.technicalTitles[1].textContent +\n                '</div>' +\n\n                '<div ' +\n                    'class=\"infoTab\" ' +\n                    'tab-id=\"dimensions\">' +\n                    source.technicalTitles[2].textContent +\n                '</div>' +\n\n                '<div ' +\n                    'class=\"infoTab\" ' +\n                    'tab-id=\"strap\">' +\n                    source.technicalTitles[3].textContent +\n                '</div>' +\n\n                '<div ' +\n                    'class=\"infoTab\" ' +\n                    'tab-id=\"warranty\">' +\n                    source.warrantyTitle +\n                '</div>' +\n\n            '</div>' +\n\n            '<div class=\"infosContent\">' +\n\n                '<div ' +\n                    'class=\"infoContent\" ' +\n                    'content-id=\"key-features\">' +\n                    source.keyFeaturesSection.outerHTML +\n                '</div>' +\n\n                desktopWatchTech +\n\n                '<div ' +\n                    'class=\"infoContent hidden\" ' +\n                    'content-id=\"warranty\">' +\n                    source.warrantySection.outerHTML +\n                '</div>' +\n\n            '</div>';\n\n        mobileWatchInfos.innerHTML =\n            '<div ' +\n                'class=\"infoAccordion\" ' +\n                'tab-id=\"key-features\">' +\n                '<span>' +\n                    source.keyFeaturesTitle +\n                '</span>' +\n                accordionIcon +\n            '</div>' +\n\n            '<div ' +\n                'class=\"infoAccContent hidden\" ' +\n                'content-id=\"key-features\">' +\n                source.keyFeaturesSection.outerHTML +\n            '</div>' +\n\n            mobileWatchTech +\n\n            '<div ' +\n                'class=\"infoAccordion\" ' +\n                'tab-id=\"warranty\">' +\n                '<span>' +\n                    source.warrantyTitle +\n                '</span>' +\n                accordionIcon +\n            '</div>' +\n\n            '<div ' +\n                'class=\"infoAccContent hidden\" ' +\n                'content-id=\"warranty\">' +\n                source.warrantySection.outerHTML +\n            '</div>';\n\n        watchInfos.appendChild(desktopWatchInfos);\n        watchInfos.appendChild(mobileWatchInfos);\n\n        source.productDetailSection.insertAdjacentElement(\n            'afterend',\n            watchInfos\n        );\n\n        modifyDesktopWarranty(watchInfos);\n        modifyMobileWarranty(watchInfos);\n\n        addInfoBoxEvents(watchInfos);\n        addDesktopTabEvents(desktopWatchInfos);\n        addMobileAccordionEvents(mobileWatchInfos);\n\n        return true;\n    }\n\n    /*\n     * Avvia il tentativo di montaggio.\n     *\n     * Dopo page_view:\n     * 1. rimuove subito i dati della vecchia PDP;\n     * 2. aspetta che la SPA aggiorni il DOM;\n     * 3. verifica che il nuovo DOM sia stabile;\n     * 4. ricostruisce il componente.\n     */\n    function mountAfterPageChange(reason) {\n        mountToken += 1;\n\n        var currentToken = mountToken;\n        var attempts = 0;\n\n        var candidateSource = null;\n        var stableChecks = 0;\n\n        clearTimeout(retryTimer);\n        removeWatchInfos();\n\n        function tryMount() {\n            if (\n                destroyed ||\n                currentToken !== mountToken\n            ) {\n                return;\n            }\n\n            attempts += 1;\n\n            var source = getSourceState();\n\n            if (source) {\n                if (\n                    sameSourceState(\n                        candidateSource,\n                        source\n                    )\n                ) {\n                    stableChecks += 1;\n                } else {\n                    candidateSource = source;\n                    stableChecks = 1;\n                }\n\n                var changed =\n                    sourceHasChanged(source);\n\n                /*\n                 * Il fallback permette il rimontaggio anche\n                 * quando due prodotti hanno specifiche identiche.\n                 */\n                var fallbackReady = attempts >= 30;\n\n                /*\n                 * Aspetta che gli stessi dati rimangano stabili\n                 * per almeno tre controlli consecutivi.\n                 */\n                var sourceIsStable =\n                    stableChecks >= 3;\n\n                if (\n                    sourceIsStable &&\n                    (changed || fallbackReady)\n                ) {\n                    try {\n                        var mounted =\n                            redesignSpecs(source);\n\n                        if (mounted) {\n                            lastSourceState = {\n                                signature:\n                                    source.signature,\n\n                                technicalSection:\n                                    source.technicalSection,\n\n                                keyFeaturesSection:\n                                    source.keyFeaturesSection,\n\n                                warrantySection:\n                                    source.warrantySection,\n\n                                productDetailSection:\n                                    source.productDetailSection\n                            };\n\n                            return;\n                        }\n                    } catch (error) {\n                        console.error(\n                            '[watchInfos] Errore durante il mount:',\n                            reason,\n                            error\n                        );\n                    }\n                }\n            } else {\n                candidateSource = null;\n                stableChecks = 0;\n            }\n\n            /*\n             * Massimo 12 secondi di tentativi.\n             */\n            if (attempts < 120) {\n                retryTimer = window.setTimeout(\n                    tryMount,\n                    100\n                );\n            } else {\n                console.warn(\n                    '[watchInfos] Impossibile completare il mount:',\n                    reason\n                );\n            }\n        }\n\n        retryTimer = window.setTimeout(\n            tryMount,\n            100\n        );\n    }\n\n    /*\n     * Debounce dei page_view.\n     * Alcune SPA possono inviarne più di uno\n     * durante la stessa navigazione.\n     */\n    function scheduleMount(reason) {\n        if (destroyed) {\n            return;\n        }\n\n        clearTimeout(mountTimer);\n\n        mountTimer = window.setTimeout(\n            function () {\n                mountAfterPageChange(reason);\n            },\n            50\n        );\n    }\n\n    function containsPageView(args) {\n        return args.some(function (item) {\n            return (\n                item &&\n                typeof item === 'object' &&\n                item.event === 'page_view'\n            );\n        });\n    }\n\n    /*\n     * Intercetta i nuovi push nel dataLayer\n     * senza bloccare il comportamento originale di GTM.\n     */\n    function installDataLayerHook() {\n        if (destroyed) {\n            return;\n        }\n\n        window.dataLayer = window.dataLayer || [];\n\n        var currentDataLayer = window.dataLayer;\n\n        /*\n         * Il listener è già installato e attivo.\n         */\n        if (\n            hookedDataLayer === currentDataLayer &&\n            currentDataLayer.push === wrappedDataLayerPush\n        ) {\n            return;\n        }\n\n        hookedDataLayer = currentDataLayer;\n\n        var currentOriginalPush =\n            currentDataLayer.push;\n\n        var currentWrappedPush = function () {\n            var args =\n                Array.prototype.slice.call(arguments);\n\n            /*\n             * Esegue prima il push originale,\n             * così non interferisce con GTM.\n             */\n            var result =\n                currentOriginalPush.apply(\n                    this,\n                    args\n                );\n\n            if (containsPageView(args)) {\n                scheduleMount('dataLayer page_view');\n            }\n\n            return result;\n        };\n\n        originalDataLayerPush =\n            currentOriginalPush;\n\n        wrappedDataLayerPush =\n            currentWrappedPush;\n\n        currentDataLayer.push =\n            currentWrappedPush;\n    }\n\n    function destroy() {\n        destroyed = true;\n        mountToken += 1;\n\n        clearTimeout(mountTimer);\n        clearTimeout(retryTimer);\n        clearInterval(dataLayerCheckTimer);\n\n        /*\n         * Ripristina il push precedente solo se\n         * il nostro wrapper è ancora quello attivo.\n         */\n        if (\n            hookedDataLayer &&\n            hookedDataLayer.push ===\n                wrappedDataLayerPush\n        ) {\n            hookedDataLayer.push =\n                originalDataLayerPush;\n        }\n    }\n\n    window[CONTROLLER_KEY] = {\n        destroy: destroy,\n\n        /*\n         * È possibile forzare manualmente il refresh\n         * dalla console con:\n         *\n         * window.__watchInfosSpaControllerV2.refresh()\n         */\n        refresh: function () {\n            scheduleMount('manual refresh');\n        }\n    };\n\n    installDataLayerHook();\n\n    /*\n     * Controlla periodicamente che la SPA o GTM\n     * non abbiano sostituito dataLayer o dataLayer.push.\n     */\n    dataLayerCheckTimer = window.setInterval(\n        installDataLayerHook,\n        1000\n    );\n\n    /*\n     * Primo caricamento della pagina.\n     * Non usa DOMContentLoaded.\n     */\n    scheduleMount('initial load');\n})();","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"type":"regex","pattern":"^https:\\/\\/www\\.breitling\\.com\\/(us|gb|ch|de|fr|jp)-[a-z]{2}\\/watches\\/.*\\/[A-Z0-9]{10,20}\\/(.?.*|$)"}],"weights":[0.5,0.5],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"67488009-84ab-4e9e-84c1-93d77acbd3e4","name":"#30 PDP | Accordions and tab for product informations","phase":"0","condition":{"url":{"$regex":"^https:\\/\\/www\\.breitling\\.com\\/(us|gb|ch|de|fr|jp)-[a-z]{2}\\/watches\\/.*\\/[A-Z0-9]{10,20}\\/(.?.*|$)"}},"coverage":1},{"key":"tactical-top-announcement-bar-for-ecommerce-exclusives","changeId":"9c2a563d93273cd270dd0e7267acd36d71653dc52756657e1fd6fbde9f8fe7b0","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"#JAK_exclusiveCarousel + [data-test-id='AlertBanner'] {\r\n\tdisplay: none;\r\n}\r\n\r\n#JAK_exclusiveCarousel {\r\n\tbackground: rgb(7, 44, 84);\r\n\tcolor: white;\r\n\tpadding: 0.75rem 2.5rem;\r\n\tvisibility: visible !important;\r\n}\r\n#JAK_exclusiveCarousel .exclusiveContainer {\r\n\tposition: relative;\r\n}\r\n#JAK_exclusiveCarousel .exclusiveWrapper {\r\n\tdisplay: flex;\r\n\twidth: fit-content;\r\n}\r\n#JAK_exclusiveCarousel .exclusiveSlide {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\tfont-size: 14px;\r\n\twidth: 100vw;\r\n}\r\n#JAK_exclusiveCarousel .exclusiveSlide div {\r\n\tdisplay: block;\r\n\ttext-align: center;\r\n\tmax-width: calc(100vw - 5rem);\r\n\tline-height: 1.15;\r\n}\r\n#JAK_exclusiveCarousel .exclusiveSlide > div:has(svg) {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tgap: 8px;\r\n}\r\n#JAK_exclusiveCarousel .exclusiveSlide a {\r\n\ttext-decoration: underline;\r\n}\r\n#JAK_exclusiveCarousel .leftArrow {\r\n\tdisplay: flex;\r\n\twidth: fit-content;\r\n\tposition: absolute;\r\n\ttop: 50%;\r\n\tleft: 0;\r\n\ttransform: translateY(-50%);\r\n\tcursor: pointer;\r\n}\r\n#JAK_exclusiveCarousel .rightArrow {\r\n\tdisplay: flex;\r\n\twidth: fit-content;\r\n\tposition: absolute;\r\n\ttop: 50%;\r\n\tright: 0;\r\n\ttransform: translateY(-50%) rotate(180deg);\r\n\tcursor: pointer;\r\n}\r\n#JAK_exclusiveCarousel .icon{\r\n\tdisplay: flex;\r\n\twidth: 22px;\r\n\theight: 22px;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n}\r\n@media (max-width: 767px) {\r\n\t#JAK_exclusiveCarousel {\r\n\t\tpadding: 0.75rem 0.5rem;\r\n\t}\r\n}\r\n","js":"(function () {\r\n\tlet slides;\r\n\tslides = [\r\n\t\t`\r\n\t\t<div class=\"icon\">\r\n<svg viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" class=\"iconify iconify--gis\" preserveAspectRatio=\"xMidYMid meet\"><path d=\"M49.945-.172c-.742-.004-1.149.502-1.263 1.094L45.617 11.26a38.804 38.804 0 0 0-19.94 8.277c-3.183-1.728-6.365-3.464-9.55-5.183c-.59-.318-1.106-.293-1.584.187s-.342 1.187-.072 1.697l5.103 9.4a38.797 38.797 0 0 0-8.32 19.985c-3.48 1.032-6.965 2.055-10.44 3.094c-.64.192-.988.574-.986 1.252c.002.677.597 1.082 1.149 1.252l10.271 3.043a38.804 38.804 0 0 0 8.277 20.043c-1.737 3.202-3.484 6.402-5.213 9.605c-.317.59-.292 1.104.188 1.582s1.187.344 1.697.074l9.453-5.13a38.8 38.8 0 0 0 19.971 8.306c1.032 3.48 2.057 6.966 3.096 10.442c.192.64.574.988 1.252.986c.677-.002 1.082-.597 1.252-1.149l3.043-10.271a38.745 38.745 0 0 0 20.076-8.318l9.492 5.154c.689.35 1.154.412 1.682-.11c.527-.521.458-1.168.12-1.667l-5.167-9.524a38.835 38.835 0 0 0 8.267-20.016l10.327-3.06c.734-.239 1.107-.524 1.11-1.266c.005-.742-.501-1.149-1.093-1.263l-10.373-3.075a38.841 38.841 0 0 0-8.287-19.955l5.129-9.447c.35-.688.412-1.154-.11-1.682c-.604-.525-1.111-.367-1.667-.119l-9.465 5.139a38.737 38.737 0 0 0-20.041-8.303L51.21.94c-.239-.735-.524-1.108-1.266-1.112zm-.002 5.238V44a6 6 0 0 0-2.892.775l-6.244-7.912zm5.25 9.311a35.798 35.798 0 0 1 16.256 6.717l-12.289 6.67zm-10.508.031l-3.943 13.305c-4.066-2.211-8.133-4.412-12.2-6.621a35.815 35.815 0 0 1 16.143-6.684zm-26.48 3.795l19.568 19.531l-.01.03l-7.476 2.216zm44 19.55l-.094-.026l-2.199-7.42l21.82-12.08zm16.67-9.257a35.815 35.815 0 0 1 6.717 16.19l-13.356-3.96zm-57.746.01l6.635 12.223l-13.368 3.962a35.796 35.796 0 0 1 6.733-16.185zm41.883 12.266l31.922 9.171H56a6 6 0 0 0-.791-2.92zm-19.01 9.171L44 50a6 6 0 0 0 .729 2.865l-7.899 6.217l-7.828-2.242l-23.996-6.871zm41.623 5.248a35.795 35.795 0 0 1-6.709 16.243l-6.664-12.28zm-71.232.004l13.355 3.957c-2.227 4.096-4.443 8.193-6.668 12.29a35.809 35.809 0 0 1-6.687-16.247zm38.503.059l6.221 7.79l-2.262 7.897l-6.886 24.053l-.026-38.996c1.057.002 2.153-.274 2.953-.744zm16.811 4.654l12.104 21.865L62.176 62.14zm-31.953 2.297l2.23 7.522l-21.822 12.107zm21.416 9.992l12.318 6.69a35.812 35.812 0 0 1-16.293 6.72zm-18.438.053c1.317 4.454 2.642 8.901 3.96 13.354A35.797 35.797 0 0 1 28.52 78.88z\" fill=\"#FFFFFF\"></path></svg>\r\n\t\t</div>\r\n\t\t<span>\r\n\t\t<a class=\"underline\">Discover Ecommerce Exclusives</a>: <span class=\"with-icon\">timepieces you\\'ll find nowhere else.</span></span>`,\r\n\t\t`Complimentary express delivery and returns on all new orders (excluding servicing).`,\r\n\t\t`Enjoy a complimentary gift with your online watch order, <a aria-disabled=\"false\" aria-label=\"Terms and conditions\" data-redirecting=\"false\" target=\"_self\" href=\"/us-en/terms-and-conditions/\">T&amp;C apply</a>`,\r\n\t];\r\n\r\n\tfunction init(target) {\r\n\t\tif (document.querySelector('#JAK_exclusiveCarousel')) return;\r\n\t\tconst customCarousel = addCustomCarousel(target);\r\n\t\taddSlides(customCarousel);\r\n\t\tinitSwiper();\r\n\t}\r\n\r\n\tfunction initSwiper() {\r\n\t\tconst swiperScript = document.createElement('script');\r\n\t\tswiperScript.src =\r\n\t\t\t'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js';\r\n\t\tdocument.body.appendChild(swiperScript);\r\n\t\tswiperScript.onload = () => {\r\n\t\t\tconst exclusiveCarousel = new Swiper(\r\n\t\t\t\t'#JAK_exclusiveCarousel .exclusiveContainer',\r\n\t\t\t\t{\r\n\t\t\t\t\twrapperClass: 'exclusiveWrapper',\r\n\t\t\t\t\tslideClass: 'exclusiveSlide',\r\n\t\t\t\t\tallowTouchMove: true,\r\n\t\t\t\t\tslidesPerView: 1,\r\n\t\t\t\t\tloop: true,\r\n\t\t\t\t\tautoplay: {\r\n\t\t\t\t\t\tdelay: 6000,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tnavigation: {\r\n\t\t\t\t\t\tnextEl: '.navigation .rightArrow',\r\n\t\t\t\t\t\tprevEl: '.navigation .leftArrow',\r\n\t\t\t\t\t},\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t};\r\n\t}\r\n\r\n\tfunction addSlides(customCarousel) {\r\n\t\tfor (let i = 0; i < slides.length; i++) {\r\n\t\t\tconst slide = document.createElement('div');\r\n\t\t\tslide.className = 'exclusiveSlide';\r\n\t\t\tslide.innerHTML = `<div>${slides[i]}</div>`;\r\n\t\t\tcustomCarousel.querySelector('.exclusiveWrapper').append(slide);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction addCustomCarousel(target) {\r\n\t\tconst customCarousel = document.createElement('div');\r\n\t\tcustomCarousel.style.visibility = 'hidden';\r\n\t\tcustomCarousel.id = 'JAK_exclusiveCarousel';\r\n\t\tcustomCarousel.innerHTML = `\r\n\t\t\t<div class=\"exclusiveContainer\">\r\n\t\t\t\t<div class=\"exclusiveWrapper\"></div>\r\n\t\t\t\t\r\n\t\t\t\t<div class=\"navigation\">\r\n\t\t\t\t\t<div class=\"leftArrow\">\r\n\t\t\t\t\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" fill=\"none\" viewBox=\"0 0 20 20\" class=\"sc-f3bc79f2-8 laqcXP\"><path stroke=\"#FFF\" stroke-linecap=\"round\" stroke-width=\"2\" d=\"m12 5-5 5 5 5\"></path></svg>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"rightArrow\">\r\n\t\t\t\t\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" fill=\"none\" viewBox=\"0 0 20 20\" class=\"sc-f3bc79f2-8 laqcXP\"><path stroke=\"#FFF\" stroke-linecap=\"round\" stroke-width=\"2\" d=\"m12 5-5 5 5 5\"></path></svg>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t`;\r\n\t\ttarget.prepend(customCarousel);\r\n\t\treturn customCarousel;\r\n\t}\r\n\r\n\tconst targetInterval = setInterval(() => {\r\n\t\tconst target = document.querySelector('[data-test-id=\"HeaderWrapper\"]');\r\n\t\tif (target) {\r\n\t\t\tclearInterval(targetInterval);\r\n\t\t\tinit(target);\r\n\t\t}\r\n\t}, 200);\r\n\r\n\tsetTimeout(function () {\r\n\t\tclearInterval(targetInterval);\r\n\t}, 5000);\r\n})();\r\n","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"urlPatterns":[{"include":true,"type":"simple","pattern":"https://www.breitling.com/*"}],"weights":[0.5,0.5],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"b503bd55-2c2f-4784-a482-8c800f38dbfa","name":"Tactical - Top Announcement Bar for Ecommerce Exclusives","phase":"0","coverage":1},{"key":"11-plp-banner","changeId":"5135d6b720f836f6cb3b3a263c7b6efe973dff11fc831987670d248b520853d7","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"#JAK_editorialPLP{\r\n\twidth: 100%;\r\n\theight: 100%;\r\n\tdisplay: grid!important;\r\n\tgrid-template-rows: 460px 1fr;\r\n\trow-gap: 24px;\r\n}\r\n#JAK_editorialPLP .editorialImg img{\r\n\tdisplay: flex;\r\n\twidth: 100%;\r\n\theight: 100%;\r\n\tobject-fit: cover;\r\n}\r\n\r\n[plp_page=\"1\"] #JAK_editorialPLP{\r\n\tgrid-column: 1/4;\r\n\tgrid-row: 3/3;\r\n}\r\n[plp_page=\"2\"] #JAK_editorialPLP{\r\n\tgrid-column: 3/6;\r\n\tgrid-row: 3/3;\r\n}\r\n\r\n\r\n#JAK_editorialPLP .editorialCta{\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tgap: 4px;\r\n\tfont-size: 14px;\r\n\tfont-weight: 400;\r\n\tcolor: rgba(0,0,0,1);\r\n\tposition: relative;\r\n\tmargin-bottom: auto;\r\n}\r\n#JAK_editorialPLP .editorialCta span{\r\n\tposition: relative;\r\n}\r\n#JAK_editorialPLP .editorialCta span::after{\r\n\tcontent: '';\r\n\tposition: absolute;\r\n\tdisplay: flex;\r\n\twidth: 100%;\r\n\theight: 1px;\r\n\tbackground: rgb(255, 199, 44);\r\n\tbottom: 0;\r\n\tleft: 0;\r\n\twidth: fit-content;\r\n}","js":"(function(){\r\n\t\r\n\tlet copy\r\n\tcopy = {\r\n\t\tcta: 'Learn more'\r\n\t}\r\n\t\r\n\tfunction init(target){\r\n\t\ttarget.setAttribute('plp_page', getPageNum())\r\n\t\tif(document.querySelector('#JAK_editorialPLP')) return\r\n\t\taddEditorialBanner(target)\r\n\t}\r\n\t\r\n\tfunction addEditorialBanner(target){\r\n\t\tconst editorialBanner = document.createElement('div')\r\n\t\teditorialBanner.id = 'JAK_editorialPLP'\r\n\t\teditorialBanner.style.display = 'none'\r\n\t\teditorialBanner.innerHTML = `\r\n\t\t\t<div class=\"editorialImg\">\r\n\t\t\t\t<img src=\"https://www.breitling.com/cdn-cgi/image/format=auto,quality=90,width=1600,height=1200,fit=cover,gravity=0.5x0.5/api/image-proxy/images.ctfassets.net/11yu5j5b14kx/6Ju1QtYwAEqsUoIFbC9mv9/554871f9eb277e70d490bd786b2d54dd/PR8_TopTIME_Trio_V2_RVB.tif.jpg\" alt=\"editorial_img\">\r\n\t\t\t</div>\r\n\t\t\t<div class=\"editorialCta\">\r\n\t\t\t\t<span>${copy.cta}</span>\r\n\t\t\t\t<div class=\"icon\">\r\n\t\t\t\t\t<svg aria-hidden=\"true\" data-icon-name=\"chevronRight\" focusable=\"false\" height=\"20px\" viewBox=\"0 0 20 20\" width=\"20px\" xmlns=\"http://www.w3.org/2000/svg\" class=\"sc-59f902fd-0 hKDiVT sc-13bb9618-0 kvfXtV\"><path clip-rule=\"evenodd\" d=\"M14.0607 10L7.35355 3.29291L5.93934 4.70712L11.2322 10L5.93934 15.2929L7.35355 16.7071L14.0607 10Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path></svg>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t`\r\n\t\tif(!document.querySelector('#JAK_editorialPLP')){\r\n\t\t\ttarget.querySelector('[data-test-id=\"ListingHitsWatchesGrid\"]').append(editorialBanner)\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction getPageNum() {\r\n\t\tconst pageUrl = window.location.href\r\n\t\tconst page = new URL(pageUrl).searchParams.get('page');\r\n\t\r\n\t\treturn page ? Number(page) : 1;\r\n\t}\r\n\t\r\n\tfunction startObserver(target){\r\n\t\tinit(target)\r\n\t\tconst targetObserver = new MutationObserver(() => {\r\n\t\t\tinit(target)\r\n\t\t})\r\n\t\ttargetObserver.observe(target, {childList: true, subtree: true})\r\n\t}\r\n\t\r\n\tconst targetInterval = setInterval(() => {\r\n\t\tconst target = document.querySelector('[data-testid=\"sectionProductListing\"]')\r\n\t\tif(target){\r\n\t\t\tclearInterval(targetInterval)\r\n\t\t\tstartObserver(target)\r\n\t\t}\r\n\t}, 200)\r\n\t\r\n\tsetTimeout(function() {\r\n\t\tclearInterval(targetInterval)\r\n\t}, 5000);\r\n\t\r\n})()","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"urlPatterns":[{"include":true,"type":"simple","pattern":"/"}],"weights":[0.5,0.5],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"c11e9a65-ce8f-4a17-9eea-59c57058fde6","name":"#11_PLP_banner","phase":"0","coverage":1},{"key":"17-product-variants","changeId":"0b126beff562b873360847a7e447a782d34392d30e20c241627cc9177eaa935c","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"div:has(> [data-test-id='ChangeStrapButtonImageContainer']){\n\tdisplay: none;\n}\ndiv:has(> #JAK_variantSection){\n\tvisibility: visible!important;\n\tdisplay: block!important;\n}\n#JAK_variantSection {\n\tdisplay: flex !important;\n\tflex-direction: column;\n\tgap: 12px;\n\tmargin-top: 22px;\n  margin-bottom: 32px;\n\talign-items: flex-start;\n}\n#JAK_variantSection .secTitle {\n\tfont-family: __italianPlate_843ea1;\n\tcolor: rgb(17, 24, 32);\n\ttext-transform: uppercase;\n\tfont-weight: 700;\n\tfont-size: 22px;\n\ttext-align: left;\n}\n#JAK_variantSection .cardContainer {\n\tdisplay: flex;\n\tgap: 8px;\n}\n#JAK_variantCard.skelCard {\n\tbackground: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);\n\tbackground-size: 200% 100%;\n\tanimation: skeleton-loading 2s infinite;\n}\n#JAK_variantCard {\n\tdisplay: flex;\n\twidth: 60px;\n\theight: 60px;\n\tcursor: pointer;\n\toverflow: hidden;\n\tborder-radius: 100px;\n}\n#JAK_variantCard:not(.activeCard) {\n\tborder: 4px solid rgb(235, 235, 235);\n\ttransition: border .25s ease-in;\n}\n#JAK_variantCard:not(.activeCard):hover {\n\tborder: 4px solid rgb(205, 205, 205);\n}\n#JAK_variantCard img {\n\twidth: 100%;\n\theight: 100%;\n\tobject-fit: cover;\n\ttransition: transform .25s ease-in;\n}\n#JAK_variantCard:not(.activeCard):hover img{\n\ttransform: scale(1.15);\n}\n#JAK_variantCard.activeCard {\n\tborder: 4px solid rgb(255, 199, 44);\n}\n\ndiv:has(> div > #JAK_variantSection){\n\tmargin: 0!important;\n}\n\n@keyframes skeleton-loading {\n\t0% {\n\t\tbackground-position: 200% 0;\n\t}\n\t100% {\n\t\tbackground-position: -200% 0;\n\t}\n}\n","js":"(function () {\n\tconst CONTROLLER_KEY = '__JAK_variantSectionController';\n\tconst DATA_LAYER_OBSERVER_KEY = '__JAK_variantDataLayerObserverInstalled';\n\nconst TARGET_SELECTOR =\n\t'[data-test-id=\"ChangeStrapButtonImageContainer\"]';\n\n\tconst MODAL_SELECTOR =\n\t\t'#modal-root [data-test-id=\"ChangeStrapModalOptionsContainer\"]';\n\n\tconst SLUG_SELECTOR =\n\t\t'[data-test-id^=\"ChangeStrapModalOption\"][data-test-id$=\"-Slug\"]';\n\n\tif (window[CONTROLLER_KEY]?.destroy) {\n\t\twindow[CONTROLLER_KEY].destroy();\n\t}\n\n\tlet secTitle = 'available variants';\n\tlet isChangingVariant = false;\n\tlet activeRunId = 0;\n\tlet lastProcessedUrl = '';\n\tlet lastObservedUrl = window.location.href;\n\n\tlet rerunTimeout = null;\n\tlet pageReadyInterval = null;\n\tlet pageReadyTimeout = null;\n\tlet buildRetryTimeout = null;\n\tlet urlObserverInterval = null;\n\n\twindow[CONTROLLER_KEY] = {\n\t\tdestroy,\n\t\thandleDataLayerItem,\n\t\trebuild: function () {\n\t\t\tschedulePageChange(false);\n\t\t},\n\t};\n\n\tobserveDataLayer();\n\tobserveUrl();\n\tschedulePageChange(false);\n\n\tfunction destroy() {\n\t\tactiveRunId++;\n\n\t\tclearTimeout(rerunTimeout);\n\t\tclearInterval(pageReadyInterval);\n\t\tclearTimeout(pageReadyTimeout);\n\t\tclearTimeout(buildRetryTimeout);\n\t\tclearInterval(urlObserverInterval);\n\n\t\trerunTimeout = null;\n\t\tpageReadyInterval = null;\n\t\tpageReadyTimeout = null;\n\t\tbuildRetryTimeout = null;\n\t\turlObserverInterval = null;\n\n\t\tisChangingVariant = false;\n\n\t\tremoveModalHideStyle();\n\t}\n\n\tfunction observeDataLayer() {\n\t\twindow.dataLayer = window.dataLayer || [];\n\n\t\tif (window[DATA_LAYER_OBSERVER_KEY]) return;\n\n\t\tconst originalPush = window.dataLayer.push;\n\n\t\twindow.dataLayer.push = function () {\n\t\t\tconst items = Array.from(arguments);\n\t\t\tconst result = originalPush.apply(this, items);\n\t\t\tconst controller = window[CONTROLLER_KEY];\n\n\t\t\tif (controller) {\n\t\t\t\titems.forEach(function (item) {\n\t\t\t\t\tcontroller.handleDataLayerItem(item);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn result;\n\t\t};\n\n\t\twindow[DATA_LAYER_OBSERVER_KEY] = true;\n\t}\n\n\tfunction observeUrl() {\n\t\turlObserverInterval = setInterval(function () {\n\t\t\tif (window.location.href === lastObservedUrl) return;\n\n\t\t\tlastObservedUrl = window.location.href;\n\t\t\tschedulePageChange(false);\n\t\t}, 100);\n\t}\n\n\tfunction handleDataLayerItem(item) {\n\t\tif (!item || typeof item !== 'object') return;\n\t\tif (item.event !== 'view_item') return;\n\n\t\tschedulePageChange(true);\n\t}\n\n\tfunction schedulePageChange(waitForNavigation) {\n\t\tclearTimeout(rerunTimeout);\n\n\t\tdocument.querySelector('#JAK_variantSection')?.remove();\n\n\t\trerunTimeout = setTimeout(function () {\n\t\t\thandlePageChange(waitForNavigation);\n\t\t}, 100);\n\t}\n\n\tfunction handlePageChange(waitForNavigation) {\n\t\tactiveRunId++;\n\n\t\tconst runId = activeRunId;\n\t\tconst previousUrl = lastProcessedUrl;\n\n\t\tclearInterval(pageReadyInterval);\n\t\tclearTimeout(pageReadyTimeout);\n\t\tclearTimeout(buildRetryTimeout);\n\n\t\tdocument.querySelector('#JAK_variantSection')?.remove();\n\t\tdocument.querySelector('#modal-root [data-testid=\"modalClose\"]')?.click();\n\n\t\tremoveModalHideStyle();\n\n\t\tisChangingVariant = false;\n\n\t\twaitForPageReady(runId, previousUrl, waitForNavigation).then(\n\t\t\tfunction (target) {\n\t\t\t\tif (!target) return;\n\t\t\t\tif (runId !== activeRunId) return;\n\n\t\t\t\tbuildComponent(target, runId, Date.now() + 5000);\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction waitForPageReady(runId, previousUrl, waitForNavigation) {\n\t\treturn new Promise(function (resolve) {\n\t\t\tconst startedAt = Date.now();\n\t\t\tlet currentTrackedUrl = window.location.href;\n\t\t\tlet urlStableSince = Date.now();\n\t\t\tlet isResolved = false;\n\n\t\t\tfunction complete(target) {\n\t\t\t\tif (isResolved) return;\n\n\t\t\t\tisResolved = true;\n\n\t\t\t\tclearInterval(pageReadyInterval);\n\t\t\t\tclearTimeout(pageReadyTimeout);\n\n\t\t\t\tpageReadyInterval = null;\n\t\t\t\tpageReadyTimeout = null;\n\n\t\t\t\tresolve(target);\n\t\t\t}\n\n\t\t\tfunction checkPage() {\n\t\t\t\tif (runId !== activeRunId) {\n\t\t\t\t\tcomplete(null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst currentUrl = window.location.href;\n\n\t\t\t\tif (currentUrl !== currentTrackedUrl) {\n\t\t\t\t\tcurrentTrackedUrl = currentUrl;\n\t\t\t\t\turlStableSince = Date.now();\n\t\t\t\t}\n\n\t\t\t\tconst isWaitingForUrlChange =\n\t\t\t\t\twaitForNavigation &&\n\t\t\t\t\tpreviousUrl &&\n\t\t\t\t\tcurrentUrl === previousUrl &&\n\t\t\t\t\tDate.now() - startedAt < 2000;\n\n\t\t\t\tif (isWaitingForUrlChange) return;\n\n\t\t\t\tif (Date.now() - urlStableSince < 300) return;\n\n\t\t\t\tconst target = document.querySelector(TARGET_SELECTOR);\n\n\t\t\t\tif (!target) return;\n\t\t\t\tif (!document.documentElement.contains(target)) return;\n\n\t\t\t\tcomplete(target);\n\t\t\t}\n\n\t\t\tpageReadyInterval = setInterval(checkPage, 100);\n\n\t\t\tpageReadyTimeout = setTimeout(function () {\n\t\t\t\tif (runId !== activeRunId) {\n\t\t\t\t\tcomplete(null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst target = document.querySelector(TARGET_SELECTOR);\n\n\t\t\t\tcomplete(target || null);\n\t\t\t}, 5000);\n\n\t\t\tcheckPage();\n\t\t});\n\t}\n\n\tasync function buildComponent(target, runId, retryDeadline) {\n\t\tif (runId !== activeRunId) return;\n\n\t\tconst currentTarget = document.querySelector(TARGET_SELECTOR);\n\n\t\tif (!currentTarget) {\n\t\t\tretryBuild(runId, retryDeadline);\n\t\t\treturn;\n\t\t}\n\n\t\tconst success = await init(currentTarget, runId);\n\n\t\tif (runId !== activeRunId) return;\n\n\t\tif (!success) {\n\t\t\tretryBuild(runId, retryDeadline);\n\t\t}\n\t}\n\n\tfunction retryBuild(runId, retryDeadline) {\n\t\tif (runId !== activeRunId) return;\n\t\tif (Date.now() >= retryDeadline) return;\n\n\t\tclearTimeout(buildRetryTimeout);\n\n\t\tbuildRetryTimeout = setTimeout(function () {\n\t\t\tif (runId !== activeRunId) return;\n\n\t\t\tconst target = document.querySelector(TARGET_SELECTOR);\n\n\t\t\tbuildComponent(target, runId, retryDeadline);\n\t\t}, 250);\n\t}\n\n\tasync function init(target, runId) {\n\t\tconst variantsList = await handleVariantsClick(target, runId);\n\n\t\tif (runId !== activeRunId) return false;\n\n\t\tdocument.querySelector('#modal-root [data-testid=\"modalClose\"]')?.click();\n\n\t\tremoveModalHideStyle(runId);\n\n\t\tif (variantsList.length <= 1) return false;\n\n\t\tconst variantSection = addSection(target, variantsList.length, runId);\n\n\t\tif (!variantSection) return false;\n\t\tif (runId !== activeRunId) return false;\n\n\t\tlastProcessedUrl = window.location.href;\n\t\tlastObservedUrl = window.location.href;\n\n\t\tvariantsList.forEach(function (variant, index) {\n\t\t\thandleModalVariant(variant, index, variantSection, runId);\n\t\t});\n\n\t\treturn true;\n\t}\n\n\tfunction handleModalVariant(variant, index, variantSection, runId) {\n\t\tif (runId !== activeRunId) return;\n\t\tif (!variant.imageUrl) return;\n\t\tif (!document.documentElement.contains(variantSection)) return;\n\n\t\tconst targetCard =\n\t\t\tvariantSection.querySelectorAll('#JAK_variantCard')[index];\n\n\t\tif (!targetCard) return;\n\n\t\tconst targetImage = targetCard.querySelector('.cardImg img');\n\n\t\tif (!targetImage) return;\n\n\t\ttargetImage.src = variant.imageUrl;\n\t\ttargetCard.classList.remove('skelCard');\n\n\t\tif (index === 0) {\n\t\t\ttargetCard.className = 'activeCard';\n\t\t}\n\n\t\ttargetCard.addEventListener('click', function () {\n\t\t\tif (runId !== activeRunId || isChangingVariant) return;\n\n\t\t\tpushCta('variant_card_click');\n\t\t\thandleVariantClick(variant.slug, runId);\n\t\t});\n\t}\n\n\tasync function handleVariantClick(variant, runId) {\n\t\tif (runId !== activeRunId) return;\n\t\tif (isChangingVariant) return;\n\n\t\tisChangingVariant = true;\n\t\taddModalHideStyle(runId);\n\n\t\tconst target = document.querySelector(TARGET_SELECTOR);\n\n\t\tif (!target) {\n\t\t\tremoveModalHideStyle(runId);\n\t\t\tisChangingVariant = false;\n\t\t\treturn;\n\t\t}\n\n\t\tdocument.querySelector('#modal-root [data-testid=\"modalClose\"]')?.click();\n\n\t\ttarget.click();\n\n\t\tconst modal = await waitForElement(MODAL_SELECTOR, 1500, runId);\n\n\t\tif (runId !== activeRunId) return;\n\n\t\tif (!modal) {\n\t\t\tremoveModalHideStyle(runId);\n\t\t\tisChangingVariant = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst variantElement = await waitForVariant(modal, variant, 2500, runId);\n\n\t\tif (runId !== activeRunId) return;\n\n\t\tif (!variantElement) {\n\t\t\tdocument.querySelector('#modal-root [data-testid=\"modalClose\"]')?.click();\n\n\t\t\tremoveModalHideStyle(runId);\n\t\t\tisChangingVariant = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst oldUrl = window.location.href;\n\n\t\tconst clickableElement =\n\t\t\tvariantElement.closest('button, a, [role=\"button\"]') ||\n\t\t\tvariantElement.parentElement;\n\n\t\tclickableElement?.click();\n\n\t\tawait waitForVariantChange(oldUrl, modal, 2500, runId);\n\n\t\tif (runId !== activeRunId) return;\n\n\t\tremoveModalHideStyle(runId);\n\t\tisChangingVariant = false;\n\t}\n\n\tfunction waitForElement(selector, timeout, runId) {\n\t\treturn new Promise(function (resolve) {\n\t\t\tif (runId !== activeRunId) {\n\t\t\t\tresolve(null);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst existingElement = document.querySelector(selector);\n\n\t\t\tif (existingElement) {\n\t\t\t\tresolve(existingElement);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet timeoutId = null;\n\t\t\tlet isResolved = false;\n\n\t\t\tfunction complete(element) {\n\t\t\t\tif (isResolved) return;\n\n\t\t\t\tisResolved = true;\n\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\tobserver.disconnect();\n\n\t\t\t\tresolve(element);\n\t\t\t}\n\n\t\t\tconst observer = new MutationObserver(function () {\n\t\t\t\tif (runId !== activeRunId) {\n\t\t\t\t\tcomplete(null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst element = document.querySelector(selector);\n\n\t\t\t\tif (!element) return;\n\n\t\t\t\tcomplete(element);\n\t\t\t});\n\n\t\t\ttimeoutId = setTimeout(function () {\n\t\t\t\tcomplete(null);\n\t\t\t}, timeout);\n\n\t\t\tobserver.observe(document.body, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t});\n\t\t});\n\t}\n\n\tfunction waitForVariant(modal, variant, timeout, runId) {\n\t\treturn new Promise(function (resolve) {\n\t\t\tconst normalizedVariant = normalizeSku(variant);\n\t\t\tlet timeoutId = null;\n\t\t\tlet intervalId = null;\n\t\t\tlet isResolved = false;\n\n\t\t\tfunction complete(element) {\n\t\t\t\tif (isResolved) return;\n\n\t\t\t\tisResolved = true;\n\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\tclearInterval(intervalId);\n\t\t\t\tobserver.disconnect();\n\n\t\t\t\tresolve(element);\n\t\t\t}\n\n\t\t\tfunction getVariantElement() {\n\t\t\t\tconst currentModal = document.querySelector(MODAL_SELECTOR);\n\n\t\t\t\tif (!currentModal) return null;\n\n\t\t\t\treturn Array.from(currentModal.querySelectorAll(SLUG_SELECTOR)).find(\n\t\t\t\t\tfunction (element) {\n\t\t\t\t\t\treturn normalizeSku(element.innerText) === normalizedVariant;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tfunction checkVariant() {\n\t\t\t\tif (runId !== activeRunId) {\n\t\t\t\t\tcomplete(null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst element = getVariantElement();\n\n\t\t\t\tif (!element) return;\n\n\t\t\t\tcomplete(element);\n\t\t\t}\n\n\t\t\tconst observer = new MutationObserver(checkVariant);\n\n\t\t\tobserver.observe(document.body, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tcharacterData: true,\n\t\t\t});\n\n\t\t\tintervalId = setInterval(checkVariant, 100);\n\n\t\t\ttimeoutId = setTimeout(function () {\n\t\t\t\tcomplete(null);\n\t\t\t}, timeout);\n\n\t\t\tcheckVariant();\n\t\t});\n\t}\n\n\tfunction waitForVariantChange(oldUrl, modal, timeout, runId) {\n\t\treturn new Promise(function (resolve) {\n\t\t\tlet timeoutId = null;\n\t\t\tlet isResolved = false;\n\n\t\t\tfunction complete() {\n\t\t\t\tif (isResolved) return;\n\n\t\t\t\tisResolved = true;\n\n\t\t\t\tclearInterval(intervalId);\n\t\t\t\tclearTimeout(timeoutId);\n\n\t\t\t\tresolve();\n\t\t\t}\n\n\t\t\tconst intervalId = setInterval(function () {\n\t\t\t\tif (\n\t\t\t\t\trunId !== activeRunId ||\n\t\t\t\t\twindow.location.href !== oldUrl ||\n\t\t\t\t\t!document.documentElement.contains(modal)\n\t\t\t\t) {\n\t\t\t\t\tcomplete();\n\t\t\t\t}\n\t\t\t}, 50);\n\n\t\t\ttimeoutId = setTimeout(complete, timeout);\n\t\t});\n\t}\n\n\tfunction handleVariantsClick(target, runId) {\n\t\treturn new Promise(function (resolve) {\n\t\t\tif (runId !== activeRunId) {\n\t\t\t\tresolve([]);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdocument.querySelector('#modal-root [data-testid=\"modalClose\"]')?.click();\n\n\t\t\taddModalHideStyle(runId);\n\n\t\t\ttarget.click();\n\n\t\t\twaitForValidVariants(runId, 3000).then(resolve);\n\t\t});\n\t}\n\n\tfunction waitForValidVariants(runId, timeout) {\n\t\treturn new Promise(function (resolve) {\n\t\t\tlet timeoutId = null;\n\t\t\tlet intervalId = null;\n\t\t\tlet isResolved = false;\n\n\t\t\tfunction complete(variants) {\n\t\t\t\tif (isResolved) return;\n\n\t\t\t\tisResolved = true;\n\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\tclearInterval(intervalId);\n\t\t\t\tobserver.disconnect();\n\n\t\t\t\tresolve(variants);\n\t\t\t}\n\n\t\t\tfunction getValidVariants() {\n\t\t\t\tif (runId !== activeRunId) return null;\n\n\t\t\t\tconst modal = document.querySelector(MODAL_SELECTOR);\n\n\t\t\t\tif (!modal) return null;\n\n\t\t\t\tconst variants = Array.from(\n\t\t\t\t\tmodal.querySelectorAll(\n\t\t\t\t\t\t'[data-test-id^=\"ChangeStrapModalOption-\"]'\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t\t.map(function (option) {\n\t\t\t\t\t\tconst slug = option.querySelector(SLUG_SELECTOR)?.innerText.trim();\n\t\t\t\t\t\tconst image = option.querySelector(\n\t\t\t\t\t\t\t'img[data-test-id=\"CropImageStyledImage\"]'\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\timageUrl: image?.getAttribute('src') || image?.currentSrc || '',\n\t\t\t\t\t\t};\n\t\t\t\t\t})\n\t\t\t\t\t.filter(function (variant) {\n\t\t\t\t\t\treturn variant.slug && variant.imageUrl;\n\t\t\t\t\t});\n\n\t\t\t\tif (variants.length <= 1) return null;\n\n\t\t\t\tconst actualSku = getUrlSku();\n\t\t\t\tconst firstSku = normalizeSku(variants[0].slug);\n\t\t\t\tconst secondSku = normalizeSku(variants[1].slug);\n\n\t\t\t\tif (!actualSku) return null;\n\t\t\t\tif (firstSku !== actualSku) return null;\n\t\t\t\tif (secondSku === actualSku) return null;\n\t\t\t\tif (secondSku === firstSku) return null;\n\n\t\t\t\treturn variants;\n\t\t\t}\n\n\t\t\tfunction checkVariants() {\n\t\t\t\tif (runId !== activeRunId) {\n\t\t\t\t\tcomplete([]);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst variants = getValidVariants();\n\n\t\t\t\tif (!variants) return;\n\n\t\t\t\tcomplete(variants);\n\t\t\t}\n\n\t\t\tconst observer = new MutationObserver(checkVariants);\n\n\t\t\tobserver.observe(document.body, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tcharacterData: true,\n\t\t\t});\n\n\t\t\tintervalId = setInterval(checkVariants, 100);\n\n\t\t\ttimeoutId = setTimeout(function () {\n\t\t\t\tcomplete([]);\n\t\t\t}, timeout);\n\n\t\t\tcheckVariants();\n\t\t});\n\t}\n\n\tfunction addModalHideStyle(runId) {\n\t\tdocument.querySelector('#JAK_hideModalRoot')?.remove();\n\n\t\tconst style = document.createElement('style');\n\n\t\tstyle.id = 'JAK_hideModalRoot';\n\t\tstyle.dataset.runId = String(runId);\n\t\tstyle.textContent = '#modal-root{display:none!important;}';\n\n\t\tdocument.head.appendChild(style);\n\t}\n\n\tfunction removeModalHideStyle(runId) {\n\t\tconst style = document.querySelector('#JAK_hideModalRoot');\n\n\t\tif (!style) return;\n\n\t\tif (typeof runId !== 'undefined' && style.dataset.runId !== String(runId)) {\n\t\t\treturn;\n\t\t}\n\n\t\tstyle.remove();\n\t}\n\n\tfunction getUrlSku() {\n\t\tconst pathParts = new URL(window.location.href).pathname\n\t\t\t.split('/')\n\t\t\t.filter(Boolean);\n\n\t\treturn normalizeSku(\n\t\t\tdecodeURIComponent(pathParts[pathParts.length - 1] || '')\n\t\t);\n\t}\n\n\tfunction normalizeSku(value) {\n\t\treturn String(value || '')\n\t\t\t.trim()\n\t\t\t.toLowerCase();\n\t}\n\n\tfunction addSection(target, num, runId) {\n\t\tif (runId !== activeRunId) return null;\n\nconst position = document.querySelector(\n\t'[data-test-id=\"ProductDetailPricing\"]'\n);\n\n\t\tdocument.querySelector('#JAK_variantSection')?.remove();\n\n\t\tif (!position) return null;\n\n\t\tconst variantSection = document.createElement('div');\n\n\t\tvariantSection.id = 'JAK_variantSection';\n\t\tvariantSection.dataset.runId = String(runId);\n\t\tvariantSection.style.display = 'none';\n\n\t\tvariantSection.innerHTML = `\n\t\t\t<div class=\"secTitle\">Available Straps</div>\n\t\t\t<div class=\"cardContainer\"></div>\n\t\t`;\n\n\t\tconst cardContainer = variantSection.querySelector('.cardContainer');\n\n\t\tfor (let i = 0; i < num; i++) {\n\t\t\tconst variantCard = document.createElement('div');\n\n\t\t\tvariantCard.id = 'JAK_variantCard';\n\t\t\tvariantCard.className = 'skelCard';\n\n\t\t\tvariantCard.innerHTML = `\n\t\t\t\t<div class=\"cardImg\">\n\t\t\t\t\t<img>\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\tcardContainer.append(variantCard);\n\t\t}\n\n\t\tif (runId !== activeRunId) return null;\n\n\t\tposition.insertAdjacentElement('beforebegin', variantSection);\n\n\t\treturn variantSection;\n\t}\n\t\n\t\n\t\n\tfunction pushCta(name) {\n\t\twindow.dataLayer = window.dataLayer || [];\n\n\t\twindow.dataLayer.push({\n\t\t\tevent: 'experiment',\n\t\t\texp_element: '17_products_variant',\n\t\t\texp_content: name,\n\t\t});\n\t}\n\n})();","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"urlPatterns":[{"include":true,"type":"regex","pattern":"^https:\\/\\/www\\.breitling\\.com\\/(us|gb|ch|de|fr|jp)-[a-z]{2}\\/watches\\/.*\\/[A-Z0-9]{10,20}\\/(.?.*|$)"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"9eeefa9d-d6b8-43ea-902f-fce94ea38dea","name":"#17_Product-Variants","phase":"0","condition":{"url":{"$regex":"^https:\\/\\/www\\.breitling\\.com\\/(us|gb|ch|de|fr|jp)-[a-z]{2}\\/watches\\/.*\\/[A-Z0-9]{10,20}\\/(.?.*|$)"}},"coverage":1},{"key":"tactical-3-doppia-cta-contact-us","changeId":"a8234c217c848cbed0475a404239c60a57770b8699a10d79707bbbde22c0ab02","status":"draft","variations":[{"css":"","js":"(function () {\n\tconst lang = (document.documentElement.getAttribute('lang') || 'en')\n\t\t.split('-')[0]\n\t\t.toLowerCase();\n\n\tlet contactUs;\n\tlet notifyMe;\n\n\tswitch (lang) {\n\t\tcase 'es':\n\t\t\tcontactUs = 'contáctanos';\n\t\t\tnotifyMe = 'notifícame';\n\t\t\tbreak;\n\n\t\tcase 'zh':\n\t\t\tcontactUs = '联系我们';\n\t\t\tnotifyMe = '通知我';\n\t\t\tbreak;\n\n\t\tcase 'en':\n\t\tdefault:\n\t\t\tcontactUs = 'contact us';\n\t\t\tnotifyMe = 'notify me';\n\t\t\tbreak;\n\t}\n\n\tconst CONTROLLER_KEY = '__JAK_orController';\n\tconst TRACKED_URLS_KEY = '__JAK_orTrackedUrls';\n\tconst TARGET_SELECTOR = '[data-test-id=\"ProductDetailAddToBagCTA\"]';\n\n\tif (window[CONTROLLER_KEY]?.destroy) {\n\t\twindow[CONTROLLER_KEY].destroy();\n\t}\n\n\twindow[TRACKED_URLS_KEY] = window[TRACKED_URLS_KEY] || new Set();\n\n\tlet currentRun = null;\n\tlet lastUrl = window.location.href;\n\tlet urlInterval = null;\n\tlet rerunTimeout = null;\n\n\tfunction pushCta(name) {\n\t\tconst currentUrl = window.location.href;\n\t\tconst trackedUrls = window[TRACKED_URLS_KEY];\n\n\t\tif (trackedUrls.has(currentUrl)) return;\n\n\t\ttrackedUrls.add(currentUrl);\n\n\t\twindow.dataLayer = window.dataLayer || [];\n\t\twindow.dataLayer.push({\n\t\t\tevent: 'experiment',\n\t\t\texp_element: 'tactical_3',\n\t\t\texp_content: name,\n\t\t});\n\t}\n\n\tfunction run() {\n\t\tlet targetInterval = null;\n\t\tlet targetTimeout = null;\n\t\tlet targetObserver = null;\n\t\tlet currentTarget = null;\n\t\tlet isDestroyed = false;\n\n\t\tfunction checkTarget(target) {\n\t\t\tif (isDestroyed || !target) return;\n\n\t\t\tconst targetText = target.innerText.trim().toLowerCase();\n\n\t\t\tif (targetText === notifyMe) {\n\t\t\t\tpushCta('notify_me_cta');\n\t\t\t} else if (targetText === contactUs) {\n\t\t\t\tpushCta('contact_us_cta');\n\t\t\t}\n\t\t}\n\n\t\tfunction observeTarget(target) {\n\t\t\tif (isDestroyed || target === currentTarget) return;\n\n\t\t\ttargetObserver?.disconnect();\n\t\t\tcurrentTarget = target;\n\n\t\t\tcheckTarget(currentTarget);\n\n\t\t\ttargetObserver = new MutationObserver(function () {\n\t\t\t\tcheckTarget(currentTarget);\n\t\t\t});\n\n\t\t\ttargetObserver.observe(currentTarget, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tcharacterData: true,\n\t\t\t});\n\t\t}\n\n\t\tfunction searchTarget() {\n\t\t\tif (isDestroyed) return;\n\n\t\t\tconst target = document.querySelector(TARGET_SELECTOR);\n\n\t\t\tif (target) {\n\t\t\t\tobserveTarget(target);\n\t\t\t\tcheckTarget(target);\n\t\t\t}\n\t\t}\n\n\t\ttargetInterval = setInterval(searchTarget, 100);\n\n\t\ttargetTimeout = setTimeout(function () {\n\t\t\tclearInterval(targetInterval);\n\t\t\ttargetInterval = null;\n\t\t}, 5000);\n\n\t\tsearchTarget();\n\n\t\treturn {\n\t\t\tdestroy: function () {\n\t\t\t\tisDestroyed = true;\n\n\t\t\t\tclearInterval(targetInterval);\n\t\t\t\tclearTimeout(targetTimeout);\n\t\t\t\ttargetObserver?.disconnect();\n\n\t\t\t\ttargetObserver = null;\n\t\t\t\tcurrentTarget = null;\n\t\t\t},\n\t\t};\n\t}\n\n\tfunction rerun() {\n\t\tclearTimeout(rerunTimeout);\n\n\t\tcurrentRun?.destroy();\n\t\tcurrentRun = null;\n\n\t\trerunTimeout = setTimeout(function () {\n\t\t\tcurrentRun = run();\n\t\t}, 100);\n\t}\n\n\turlInterval = setInterval(function () {\n\t\tif (window.location.href === lastUrl) return;\n\n\t\tlastUrl = window.location.href;\n\t\trerun();\n\t}, 100);\n\n\twindow[CONTROLLER_KEY] = {\n\t\tdestroy: function () {\n\t\t\tclearInterval(urlInterval);\n\t\t\tclearTimeout(rerunTimeout);\n\n\t\t\tcurrentRun?.destroy();\n\t\t\tcurrentRun = null;\n\t\t},\n\t};\n\n\tcurrentRun = run();\n})();","domMutations":[]},{"css":"#JAK_or {\n\twidth: 100%;\n\tdisplay: flex!important;\n\talign-items: center;\n\tjustify-content: center;\n}\n#JAK_or .line {\n  width: 48px;\n  height: 1px;\n  background: rgb(219, 219, 219);\n}\n#JAK_or .or {\n\tmargin: 12px 8px;\n  text-transform: uppercase;\n  white-space: nowrap;\n  font-size: 14px;\n}\n\nbody:has(#JAK_or) button[data-testid^=\"SecondaryCTA\"]:has([data-icon-name=\"calendar\"]){\n\tmargin: 0!important;\n\tpadding: 16px 32px;\n\tdisplay: flex;\n\twidth: 100%;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-size: 0.875rem;\n\tfont-weight: 700;\n\tbackground-color: rgb(235, 235, 235);\n\tcolor: black!important;\n}\nbody:has(#JAK_or) button[data-testid^=\"SecondaryCTA\"]:has([data-icon-name=\"calendar\"]):hover{\n\tbackground-color: rgb(255, 199, 44);\n}\nbody:has(#JAK_or) button[data-testid^=\"SecondaryCTA\"]:has([data-icon-name=\"calendar\"]) span{\n\tcolor: black!important;\n}\nbody:has(#JAK_or) button[data-testid^=\"SecondaryCTA\"]:has([data-icon-name=\"calendar\"]) span::after,\nbody:has(#JAK_or) button[data-testid^=\"SecondaryCTA\"]:has([data-icon-name=\"calendar\"]) span::before{\n\tdisplay: none;\n}\n\n[data-testid=\"modalBody\"] > div:has([data-icon-name=\"telephoneCall\"]) div:has(> span[color=\"error\"]){\ndisplay: none !important;\n}\n\nbody:has(#JAK_or) [data-testid=\"SecondaryCTA\"]:has([data-icon-name=\"calendar\"]){\n\tdisplay: flex;\n\tflex-direction: column-reverse;\n}","js":"(function () {\n const CONTROLLER_KEY = '__JAK_orController';\n const TRACKING_KEY = '__JAK_tactical3Tracking';\n\n /*\n  * Se GTM rilancia questo stesso tag, non ricreiamo\n  * controller, interval e observer.\n  */\n if (window[CONTROLLER_KEY]) {\n  if (typeof window[CONTROLLER_KEY].rerun === 'function') {\n   window[CONTROLLER_KEY].rerun();\n  }\n\n  return;\n }\n\n /*\n  * Tracking persistente a livello window.\n  * NON viene resettato se GTM riesegue il tag.\n  */\n window[TRACKING_KEY] = window[TRACKING_KEY] || {};\n\n const lang = (document.documentElement.getAttribute('lang') || 'en')\n  .split('-')[0]\n  .toLowerCase();\n\n let orCopy;\n let contactUs;\n let notifyMe;\n\n switch (lang) {\n  case 'es':\n   orCopy = 'O';\n   contactUs = 'contáctanos';\n   notifyMe = 'notifícame';\n   break;\n\n  case 'zh':\n   orCopy = '或';\n   contactUs = '联系我们';\n   notifyMe = '通知我';\n   break;\n\n  case 'en':\n  default:\n   orCopy = 'OR';\n   contactUs = 'contact us';\n   notifyMe = 'notify me';\n   break;\n }\n\n const TARGET_SELECTOR =\n  '[data-test-id=\"ProductDetailAddToBagCTA\"]';\n\n const POSITION_SELECTOR =\n  '[data-testid=\"SecondaryCTA\"]';\n\n const EXCLUDED_URL_REGEX =\n  /.*(AB01772A1G1X1|RB0930361L1P1|RB0145171C1P1|LB19211A1C1P1|EB01381A1B1X1|RB0139211Q1P1).*/;\n\n let currentRun = null;\n let lastUrl = window.location.href;\n let urlInterval = null;\n let rerunTimeout = null;\n\n function pushCta(name) {\n  /*\n   * Chiave univoca:\n   * URL + CTA.\n   *\n   * Quindi lo stesso CTA viene tracciato una sola volta\n   * sulla stessa pagina.\n   */\n  const trackingId =\n   window.location.href + '|' + name;\n\n  if (window[TRACKING_KEY][trackingId]) {\n   return;\n  }\n\n  /*\n   * IMPORTANTISSIMO:\n   * impostiamo il flag PRIMA del dataLayer.push.\n   *\n   * Se GTM rilancia immediatamente il tag,\n   * il tracking risulta già eseguito.\n   */\n  window[TRACKING_KEY][trackingId] = true;\n\n  window.dataLayer = window.dataLayer || [];\n\n  window.dataLayer.push({\n   event: 'experiment',\n   exp_element: 'tactical_3',\n   exp_content: name,\n  });\n }\n\n function run() {\n  document.querySelector('#JAK_or')?.remove();\n\n  if (EXCLUDED_URL_REGEX.test(window.location.href)) {\n   return {\n    destroy: function () {\n     document.querySelector('#JAK_or')?.remove();\n    },\n   };\n  }\n\n  let targetInterval = null;\n  let targetTimeout = null;\n  let targetObserver = null;\n  let currentTarget = null;\n  let isDestroyed = false;\n\n  function init(target) {\n   if (isDestroyed) return;\n\n   const position =\n    document.querySelector(POSITION_SELECTOR);\n\n   if (!position) return;\n\n   addOr(position, target);\n  }\n\n  function addOr(position, target) {\n   if (isDestroyed) return;\n\n   let orComponent =\n    document.querySelector('#JAK_or');\n\n   if (!orComponent) {\n    orComponent =\n     document.createElement('div');\n\n    orComponent.id = 'JAK_or';\n    orComponent.style.display = 'none';\n\n    orComponent.innerHTML = `\n     <div class=\"line\"></div>\n     <div class=\"or\">${orCopy}</div>\n     <div class=\"line\"></div>\n    `;\n   }\n\n   if (orComponent.nextElementSibling !== position) {\n    position.insertAdjacentElement(\n     'beforebegin',\n     orComponent\n    );\n   }\n\n   const targetText =\n    target.innerText\n     .trim()\n     .toLowerCase();\n\n   if (targetText === notifyMe) {\n    pushCta('notify_me_cta');\n   } else if (targetText === contactUs) {\n    pushCta('contact_us_cta');\n   }\n  }\n\n  function removeOr() {\n   document.querySelector('#JAK_or')?.remove();\n  }\n\n  function checkTarget(target) {\n   if (isDestroyed || !target) return;\n\n   const targetText =\n    target.innerText\n     .trim()\n     .toLowerCase();\n\n   if (\n    targetText === contactUs ||\n    targetText === notifyMe\n   ) {\n    init(target);\n   } else {\n    removeOr();\n   }\n  }\n\n  function observeTarget(target) {\n   if (\n    isDestroyed ||\n    target === currentTarget\n   ) {\n    return;\n   }\n\n   targetObserver?.disconnect();\n   currentTarget?.removeAttribute('j-cta');\n\n   currentTarget = target;\n\n   currentTarget.setAttribute(\n    'j-cta',\n    ''\n   );\n\n   checkTarget(currentTarget);\n\n   targetObserver =\n    new MutationObserver(function () {\n     checkTarget(currentTarget);\n    });\n\n   targetObserver.observe(\n    currentTarget,\n    {\n     childList: true,\n     subtree: true,\n     characterData: true,\n    }\n   );\n  }\n\n  function searchTarget() {\n   if (isDestroyed) return;\n\n   const target =\n    document.querySelector(\n     TARGET_SELECTOR\n    );\n\n   if (!target) {\n    removeOr();\n    return;\n   }\n\n   observeTarget(target);\n   checkTarget(target);\n  }\n\n  targetInterval =\n   setInterval(searchTarget, 100);\n\n  targetTimeout =\n   setTimeout(function () {\n    clearInterval(targetInterval);\n    targetInterval = null;\n   }, 5000);\n\n  searchTarget();\n\n  return {\n   destroy: function () {\n    isDestroyed = true;\n\n    clearInterval(targetInterval);\n    clearTimeout(targetTimeout);\n\n    targetObserver?.disconnect();\n\n    currentTarget?.removeAttribute(\n     'j-cta'\n    );\n\n    targetObserver = null;\n    currentTarget = null;\n\n    removeOr();\n   },\n  };\n }\n\n function rerun() {\n  clearTimeout(rerunTimeout);\n\n  currentRun?.destroy();\n  currentRun = null;\n\n  rerunTimeout =\n   setTimeout(function () {\n    currentRun = run();\n   }, 100);\n }\n\n urlInterval =\n  setInterval(function () {\n   if (\n    window.location.href === lastUrl\n   ) {\n    return;\n   }\n\n   lastUrl = window.location.href;\n\n   rerun();\n  }, 100);\n\n window[CONTROLLER_KEY] = {\n  rerun: rerun,\n\n  destroy: function () {\n   clearInterval(urlInterval);\n   clearTimeout(rerunTimeout);\n\n   currentRun?.destroy();\n   currentRun = null;\n\n   document\n    .querySelector('#JAK_or')\n    ?.remove();\n\n   delete window[CONTROLLER_KEY];\n  },\n };\n\n currentRun = run();\n})();","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"type":"regex","pattern":"^https:\\/\\/www\\.breitling\\.com\\/(us)-[a-z]{2}\\/watches\\/.*\\/[A-Z0-9]{10,20}\\/(.?.*|$)"}],"weights":[0.5,0.5],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"02119ba5-f0a9-4aab-a8a7-a7aad5d15b0f","name":"Tactical-#3-doppia-CTA-contact-us","phase":"0","coverage":1},{"key":"tactical-4-rimozione-collections-dal-menu","changeId":"646ee4aa9bfa6b9028c7d7d950149768e53a75fc829765a02c2bb161955c8d98","status":"draft","variations":[{"css":"","js":"(function () {\n\tconst CONTROLLER_KEY = '__JAK_menuTrackingController';\n\n\tif (window[CONTROLLER_KEY]?.destroy) {\n\t\twindow[CONTROLLER_KEY].destroy();\n\t}\n\n\tconst trackedElements = new Map();\n\tlet pageObserver = null;\n\tlet rerunTimeout = null;\n\tlet isDestroyed = false;\n\n\tfunction addTracking(element, trackingName) {\n\t\tif (!element) return;\n\n\t\tconst currentTracking = trackedElements.get(element);\n\n\t\tif (currentTracking === trackingName) return;\n\n\t\tif (currentTracking) {\n\t\t\telement.removeEventListener('click', currentTracking.listener);\n\t\t}\n\n\t\tconst listener = function () {\n\t\t\tpushCta(trackingName);\n\t\t};\n\n\t\telement.addEventListener('click', listener);\n\n\t\ttrackedElements.set(element, {\n\t\t\ttrackingName,\n\t\t\tlistener,\n\t\t});\n\t}\n\n\tfunction trackCollectionsMenu(collectionsMenu) {\n\t\tconst allLinks = collectionsMenu.querySelectorAll(\n\t\t\t'a[role=\"menuitem\"]'\n\t\t);\n\n\t\tallLinks.forEach(function (link) {\n\t\t\taddTracking(link, 'collections_menu_click');\n\t\t});\n\t}\n\n\tfunction mobileTrackCollectionsMenu(mobileCollectionsMenu) {\n\t\tconst allLinks = mobileCollectionsMenu.querySelectorAll(\n\t\t\t'a[data-test-id^=\"MobileNavCollectionItem-\"]'\n\t\t);\n\n\t\tallLinks.forEach(function (link) {\n\t\t\taddTracking(link, 'collections_menu_click');\n\t\t});\n\t}\n\n\tfunction trackWatchesMenu(watchesMenu) {\n\t\tconst allLinks = watchesMenu.querySelectorAll(\n\t\t\t'a[role=\"menuitem\"]'\n\t\t);\n\n\t\tconst featuredCollections = watchesMenu.querySelectorAll(\n\t\t\t'[data-test-id^=\"ScrollerItem-Scroller\"]'\n\t\t);\n\n\t\tallLinks.forEach(function (link) {\n\t\t\taddTracking(link, 'watches_menu_click');\n\t\t});\n\n\t\tfeaturedCollections.forEach(function (collection) {\n\t\t\taddTracking(collection, 'watches_menu_click');\n\t\t});\n\t}\n\n\tfunction mobileTrackWatchesMenu(mobileWatchesMenu) {\n\t\tconst allLinks = mobileWatchesMenu.querySelectorAll(\n\t\t\t'li[data-test-id^=\"MobileNavInnerListItem\"] a'\n\t\t);\n\n\t\tconst featuredCollections = mobileWatchesMenu.querySelectorAll(\n\t\t\t'[data-test-id^=\"ScrollerItem-Scroller\"]'\n\t\t);\n\n\t\tallLinks.forEach(function (link) {\n\t\t\taddTracking(link, 'watches_menu_click');\n\t\t});\n\n\t\tfeaturedCollections.forEach(function (collection) {\n\t\t\taddTracking(collection, 'watches_menu_click');\n\t\t});\n\t}\n\n\tfunction trackDesktopMainMenu() {\n\t\tconst collectionsLink = document.querySelector(\n\t\t\t'#MegamenuItem-0 a'\n\t\t);\n\n\t\tconst watchesLink = document.querySelector(\n\t\t\t'#MegamenuItem-1 a'\n\t\t);\n\n\t\taddTracking(collectionsLink, 'collections_menu_click');\n\t\taddTracking(watchesLink, 'watches_menu_click');\n\t}\n\n\tfunction trackMobileMainMenu() {\n\t\tconst collectionsItem = document.querySelector(\n\t\t\t'[data-test-id=\"MobileNavParentItem-0\"]'\n\t\t);\n\n\t\taddTracking(collectionsItem, 'collections_menu_click');\n\t}\n\n\tfunction trackHamburgerMenu() {\n\t\tconst hamburgerMenu = document.querySelector(\n\t\t\t'[data-test-id=\"HeaderInnerWrapper\"] [data-test-id=\"HeaderInfoMobileNav-1\"]'\n\t\t);\n\n\t\taddTracking(hamburgerMenu, 'hamburger_menu_click');\n\t}\n\n\tfunction init() {\n\t\tif (isDestroyed) return;\n\n\t\tconst target = document.querySelector(\n\t\t\t'[data-testid=\"MegamenuComponent\"]'\n\t\t);\n\n\t\tconst mobileTarget = document.querySelector(\n\t\t\t'[data-test-id=\"MobileMenuPanel\"]'\n\t\t);\n\n\t\tif (target) {\n\t\t\tconst collectionsMenu = target.querySelector(\n\t\t\t\t'[data-testid=\"MegamenuSubmenu-0\"]'\n\t\t\t);\n\n\t\t\tconst watchesMenu = target.querySelector(\n\t\t\t\t'[data-testid=\"MegamenuSubmenu-1\"]'\n\t\t\t);\n\n\t\t\tif (collectionsMenu) {\n\t\t\t\ttrackCollectionsMenu(collectionsMenu);\n\t\t\t}\n\n\t\t\tif (watchesMenu) {\n\t\t\t\ttrackWatchesMenu(watchesMenu);\n\t\t\t}\n\t\t}\n\n\t\tif (mobileTarget) {\n\t\t\tconst mobileCollectionsMenu = mobileTarget.querySelector(\n\t\t\t\t'[data-test-id=\"MobileNavCollectionBox\"]'\n\t\t\t);\n\n\t\t\tconst mobileWatchesMenu = mobileTarget.querySelector(\n\t\t\t\t'[data-test-id=\"MobileNavSubmenuItems\"]:has([data-test-id=\"MobileNavInnerListItem-Collections\"])'\n\t\t\t);\n\n\t\t\tif (mobileCollectionsMenu) {\n\t\t\t\tmobileTrackCollectionsMenu(mobileCollectionsMenu);\n\t\t\t}\n\n\t\t\tif (mobileWatchesMenu) {\n\t\t\t\tmobileTrackWatchesMenu(mobileWatchesMenu);\n\t\t\t}\n\t\t}\n\n\t\ttrackDesktopMainMenu();\n\t\ttrackMobileMainMenu();\n\t\ttrackHamburgerMenu();\n\t\tcleanDisconnectedElements();\n\t}\n\n\tfunction cleanDisconnectedElements() {\n\t\ttrackedElements.forEach(function (trackingData, element) {\n\t\t\tif (element.isConnected) return;\n\n\t\t\telement.removeEventListener(\n\t\t\t\t'click',\n\t\t\t\ttrackingData.listener\n\t\t\t);\n\n\t\t\ttrackedElements.delete(element);\n\t\t});\n\t}\n\n\tfunction rerun() {\n\t\tif (isDestroyed) return;\n\n\t\tclearTimeout(rerunTimeout);\n\n\t\trerunTimeout = setTimeout(function () {\n\t\t\tinit();\n\t\t}, 100);\n\t}\n\n\tfunction observePageChanges() {\n\t\tpageObserver = new MutationObserver(function () {\n\t\t\trerun();\n\t\t});\n\n\t\tpageObserver.observe(document.documentElement, {\n\t\t\tchildList: true,\n\t\t\tsubtree: true,\n\t\t});\n\t}\n\n\tfunction destroy() {\n\t\tisDestroyed = true;\n\n\t\tclearTimeout(rerunTimeout);\n\n\t\tif (pageObserver) {\n\t\t\tpageObserver.disconnect();\n\t\t\tpageObserver = null;\n\t\t}\n\n\t\ttrackedElements.forEach(function (trackingData, element) {\n\t\t\telement.removeEventListener(\n\t\t\t\t'click',\n\t\t\t\ttrackingData.listener\n\t\t\t);\n\t\t});\n\n\t\ttrackedElements.clear();\n\t}\n\n\tfunction pushCta(name) {\n\t\twindow.dataLayer = window.dataLayer || [];\n\n\t\twindow.dataLayer.push({\n\t\t\tevent: 'experiment',\n\t\t\texp_element: 'hide_collections_menu',\n\t\t\texp_content: name,\n\t\t});\n\t}\n\n\twindow[CONTROLLER_KEY] = {\n\t\trerun,\n\t\tdestroy,\n\t};\n\n\tinit();\n\tobservePageChanges();\n})();","domMutations":[]},{"css":"[data-testid=\"MegamenuItem-0\"]{\n\tdisplay: none !important;\n}\n \n[data-test-id=\"MobileNavParentItem-0\"]{\n\tdisplay: none !important;\n}","js":"(function () {\n\tconst CONTROLLER_KEY = '__JAK_menuTrackingController';\n\n\tif (window[CONTROLLER_KEY]?.destroy) {\n\t\twindow[CONTROLLER_KEY].destroy();\n\t}\n\n\tconst trackedElements = new Map();\n\tlet pageObserver = null;\n\tlet rerunTimeout = null;\n\tlet isDestroyed = false;\n\n\tfunction addTracking(element, trackingName) {\n\t\tif (!element) return;\n\n\t\tconst currentTracking = trackedElements.get(element);\n\n\t\tif (currentTracking === trackingName) return;\n\n\t\tif (currentTracking) {\n\t\t\telement.removeEventListener('click', currentTracking.listener);\n\t\t}\n\n\t\tconst listener = function () {\n\t\t\tpushCta(trackingName);\n\t\t};\n\n\t\telement.addEventListener('click', listener);\n\n\t\ttrackedElements.set(element, {\n\t\t\ttrackingName,\n\t\t\tlistener,\n\t\t});\n\t}\n\n\tfunction trackCollectionsMenu(collectionsMenu) {\n\t\tconst allLinks = collectionsMenu.querySelectorAll(\n\t\t\t'a[role=\"menuitem\"]'\n\t\t);\n\n\t\tallLinks.forEach(function (link) {\n\t\t\taddTracking(link, 'collections_menu_click');\n\t\t});\n\t}\n\n\tfunction mobileTrackCollectionsMenu(mobileCollectionsMenu) {\n\t\tconst allLinks = mobileCollectionsMenu.querySelectorAll(\n\t\t\t'a[data-test-id^=\"MobileNavCollectionItem-\"]'\n\t\t);\n\n\t\tallLinks.forEach(function (link) {\n\t\t\taddTracking(link, 'collections_menu_click');\n\t\t});\n\t}\n\n\tfunction trackWatchesMenu(watchesMenu) {\n\t\tconst allLinks = watchesMenu.querySelectorAll(\n\t\t\t'a[role=\"menuitem\"]'\n\t\t);\n\n\t\tconst featuredCollections = watchesMenu.querySelectorAll(\n\t\t\t'[data-test-id^=\"ScrollerItem-Scroller\"]'\n\t\t);\n\n\t\tallLinks.forEach(function (link) {\n\t\t\taddTracking(link, 'watches_menu_click');\n\t\t});\n\n\t\tfeaturedCollections.forEach(function (collection) {\n\t\t\taddTracking(collection, 'watches_menu_click');\n\t\t});\n\t}\n\n\tfunction mobileTrackWatchesMenu(mobileWatchesMenu) {\n\t\tconst allLinks = mobileWatchesMenu.querySelectorAll(\n\t\t\t'li[data-test-id^=\"MobileNavInnerListItem\"] a'\n\t\t);\n\n\t\tconst featuredCollections = mobileWatchesMenu.querySelectorAll(\n\t\t\t'[data-test-id^=\"ScrollerItem-Scroller\"]'\n\t\t);\n\n\t\tallLinks.forEach(function (link) {\n\t\t\taddTracking(link, 'watches_menu_click');\n\t\t});\n\n\t\tfeaturedCollections.forEach(function (collection) {\n\t\t\taddTracking(collection, 'watches_menu_click');\n\t\t});\n\t}\n\n\tfunction trackHamburgerMenu() {\n\t\tconst hamburgerMenu = document.querySelector(\n\t\t\t'[data-test-id=\"HeaderInnerWrapper\"] [data-test-id=\"HeaderInfoMobileNav-1\"]'\n\t\t);\n\n\t\taddTracking(hamburgerMenu, 'hamburger_menu_click');\n\t}\n\n\tfunction init() {\n\t\tif (isDestroyed) return;\n\n\t\tconst target = document.querySelector(\n\t\t\t'[data-testid=\"MegamenuComponent\"]'\n\t\t);\n\n\t\tconst mobileTarget = document.querySelector(\n\t\t\t'[data-test-id=\"MobileMenuPanel\"]'\n\t\t);\n\n\t\tif (target) {\n\t\t\tconst collectionsMenu = target.querySelector(\n\t\t\t\t'[data-testid=\"MegamenuSubmenu-0\"]'\n\t\t\t);\n\n\t\t\tconst watchesMenu = target.querySelector(\n\t\t\t\t'[data-testid=\"MegamenuSubmenu-1\"]'\n\t\t\t);\n\n\t\t\tif (collectionsMenu) {\n\t\t\t\ttrackCollectionsMenu(collectionsMenu);\n\t\t\t}\n\n\t\t\tif (watchesMenu) {\n\t\t\t\ttrackWatchesMenu(watchesMenu);\n\t\t\t}\n\t\t}\n\n\t\tif (mobileTarget) {\n\t\t\tconst mobileCollectionsMenu = mobileTarget.querySelector(\n\t\t\t\t'[data-test-id=\"MobileNavCollectionBox\"]'\n\t\t\t);\n\n\t\t\tconst mobileWatchesMenu = mobileTarget.querySelector(\n\t\t\t\t'[data-test-id=\"MobileNavSubmenuItems\"]:has([data-test-id=\"MobileNavInnerListItem-Collections\"])'\n\t\t\t);\n\n\t\t\tif (mobileCollectionsMenu) {\n\t\t\t\tmobileTrackCollectionsMenu(mobileCollectionsMenu);\n\t\t\t}\n\n\t\t\tif (mobileWatchesMenu) {\n\t\t\t\tmobileTrackWatchesMenu(mobileWatchesMenu);\n\t\t\t}\n\t\t}\n\n\t\ttrackHamburgerMenu();\n\t\tcleanDisconnectedElements();\n\t}\n\n\tfunction cleanDisconnectedElements() {\n\t\ttrackedElements.forEach(function (trackingData, element) {\n\t\t\tif (element.isConnected) return;\n\n\t\t\telement.removeEventListener(\n\t\t\t\t'click',\n\t\t\t\ttrackingData.listener\n\t\t\t);\n\n\t\t\ttrackedElements.delete(element);\n\t\t});\n\t}\n\n\tfunction rerun() {\n\t\tif (isDestroyed) return;\n\n\t\tclearTimeout(rerunTimeout);\n\n\t\trerunTimeout = setTimeout(function () {\n\t\t\tinit();\n\t\t}, 100);\n\t}\n\n\tfunction observePageChanges() {\n\t\tpageObserver = new MutationObserver(function () {\n\t\t\trerun();\n\t\t});\n\n\t\tpageObserver.observe(document.documentElement, {\n\t\t\tchildList: true,\n\t\t\tsubtree: true,\n\t\t});\n\t}\n\n\tfunction destroy() {\n\t\tisDestroyed = true;\n\n\t\tclearTimeout(rerunTimeout);\n\n\t\tif (pageObserver) {\n\t\t\tpageObserver.disconnect();\n\t\t\tpageObserver = null;\n\t\t}\n\n\t\ttrackedElements.forEach(function (trackingData, element) {\n\t\t\telement.removeEventListener(\n\t\t\t\t'click',\n\t\t\t\ttrackingData.listener\n\t\t\t);\n\t\t});\n\n\t\ttrackedElements.clear();\n\t}\n\n\tfunction pushCta(name) {\n\t\twindow.dataLayer = window.dataLayer || [];\n\n\t\twindow.dataLayer.push({\n\t\t\tevent: 'experiment',\n\t\t\texp_element: 'hide_collections_menu',\n\t\t\texp_content: name,\n\t\t});\n\t}\n\n\twindow[CONTROLLER_KEY] = {\n\t\trerun,\n\t\tdestroy,\n\t};\n\n\tinit();\n\tobservePageChanges();\n})();","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"type":"simple","pattern":"https://www.breitling.com/*"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"8921aa67-6bc7-4fda-9858-61a49cde4b27","name":"Tactical-#4-rimozione-collections-dal-menu","phase":"0","condition":{"getDomSelectors":{"$elemMatch":{"$eq":"[data-test-id=\"HeaderInnerWrapper\"]"}},"previewMode":true},"coverage":1},{"key":"30abc-pdp","changeId":"ab8d00d627de022158be320138a12dcc45307f9b1f09b7e0b04b5f011c8b4532","status":"running","variations":[{"css":"","js":"","domMutations":[]},{"css":".mobileWatchInfos {\n\tdisplay: none;\n}\n\nmain > section[data-test-id='KeyFeaturesSection'],\nmain > section[data-test-id='TechnicalDataSection'],\nmain > section[data-test-id='WarrantySection warranty'] {\n\tdisplay: none;\n}\n\n.watchInfos {\n\tdisplay: block !important;\n\tposition: relative;\n\twidth: 100%;\n\tmax-width: 100%;\n\tmargin: 55px auto;\n}\n\n.desktopWatchInfos .infosTabs {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(6, auto) 1fr;\n\tgap: 7px;\n\tpadding-inline: 2.5rem;\n\tborder-bottom: 1px solid #d3d3d3;\n\tmargin-bottom: 34px;\n}\n\n.desktopWatchInfos .infosTabs .infoTab {\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 1rem;\n\tbackground-color: #d3d3d3;\n\tcolor: #072c54;\n\tfont-family: __italianPlate_843ea1;\n\tfont-size: 18px;\n\tfont-weight: 600;\n\tline-height: 16px;\n\ttext-align: center;\n\ttext-transform: uppercase;\n\tcursor: pointer;\n}\n\n.desktopWatchInfos .infosTabs .infoTab.clicked {\n\ttop: 1px;\n\tbackground-color: #fff;\n\tborder-top: 1px solid #d3d3d3;\n\tborder-right: 1px solid #d3d3d3;\n\tborder-bottom: 1px solid #fff;\n\tborder-left: 1px solid #d3d3d3;\n}\n\n.desktopWatchInfos .infosContent {\n\tpadding-inline: 2.5rem;\n}\n\n.desktopWatchInfos .infosContent .watchTech {\n\tmax-width: 1440px;\n\tmargin: 0 auto;\n}\n\n.desktopWatchInfos\n\t.infosContent\n\t.watchTech\n\tdiv:has(> [data-test-id='Section']) {\n\theight: auto;\n}\n\n.desktopWatchInfos\n\t.infosContent\n\t.watchTech\n\tdiv:has(> [data-test-id='Section'])\n\tdiv:has(button) {\n\tdisplay: none;\n}\n\n.desktopWatchInfos .infosContent .watchTech [data-test-id='Section'] {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 40px;\n\tpadding-bottom: 40px;\n\tborder-bottom: 1px solid rgb(235, 235, 235);\n}\n\n.desktopWatchInfos\n\t.infosContent\n\t.watchTech\n\t[data-test-id='Section']\n\t> div {\n\twidth: calc((100% / 6) - 40px);\n}\n\n.desktopWatchInfos\n\t.infosContent\n\t.watchTech\n\t[data-test-id='Section']\n\t> div\n\t> p {\n\tmargin-bottom: 10px;\n\tfont-size: 18px;\n}\n\n.desktopWatchInfos\n\t.infosContent\n\t.watchTech\n\t[data-test-id='Section']\n\t> p {\n\tdisplay: none !important;\n}\n\n.desktopWatchInfos\n\t.infoContent[content-id='key-features']\n\t[data-test-id='Header'] {\n\tjustify-content: flex-end !important;\n}\n\n.desktopWatchInfos\n\t.infoContent[content-id='key-features']\n\t[data-test-id='HeaderTitleDesktop'],\n.desktopWatchInfos\n\t.infoContent[content-id='warranty']\n\th3[data-testid='WarrantyHeader'] {\n\tdisplay: none !important;\n}\n\n.desktopWatchInfos\n\t.infoContent[content-id='key-features']\n\tdiv[data-testid='KeyFeaturesWrapper'],\n.desktopWatchInfos\n\t.infoContent[content-id='warranty']\n\tdiv[data-test-id='ContainerWrapper'] {\n\tpadding-inline: 0;\n}\n\n.desktopWatchInfos\n\t.infoContent[content-id='warranty']\n\tsection[data-test-id='WarrantySection warranty']\n\t> div {\n\tpadding-bottom: 40px;\n\tborder-bottom: 1px solid rgb(235, 235, 235);\n}\n\n.watchInfos [data-test-id='IconTypeContainer'],\n.watchInfos [data-test-id='BaseCardTypeBackground'] {\n\tbackground-color: transparent;\n}\n\n.desktopWatchInfos .infoContent.hidden,\n.mobileWatchInfos .infoAccContent.hidden {\n\tdisplay: none;\n}\n\n@media screen and (min-width: 1440px) {\n\t.watchInfos {\n\t\tmax-width: 1440px;\n\t\tpadding-inline: 2.5rem;\n\t}\n}\n\n@media screen and (max-width: 768px) {\n\t.watchInfos {\n\t\tdisplay: block !important;\n\t\twidth: 100%;\n\t\tmax-width: 100%;\n\t\tmargin: 55px auto;\n\t\tpadding-inline: 1rem;\n\t}\n\n\t.desktopWatchInfos {\n\t\tdisplay: none;\n\t}\n\n\t.mobileWatchInfos {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: 100%;\n\t}\n\n\t.mobileWatchInfos .infoAccordion {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: space-between;\n\t\twidth: 100%;\n\t\tpadding: 16px 0;\n\t\tbackground-color: #fff;\n\t\tborder: 0;\n\t\tborder-top: 1px solid #d3d3d3;\n\t\tcolor: #072c54;\n\t\tfont-family: __italianPlate_843ea1;\n\t\tfont-size: 18px;\n\t\tfont-weight: 500;\n\t\tline-height: 16px;\n\t\ttext-transform: uppercase;\n\t\tcursor: pointer;\n\t\tscroll-margin-top: 150px;\n\t}\n\n\t.mobileWatchInfos .infoAccordion[tab-id='warranty'] {\n\t\tborder-bottom: 1px solid #d3d3d3;\n\t}\n\n\t.mobileWatchInfos\n\t\t.infoAccordion[tab-id='warranty'].clicked {\n\t\tborder-bottom: 0;\n\t}\n\n\t.mobileWatchInfos .infoAccordion svg {\n\t\tdisplay: block;\n\t\tflex-shrink: 0;\n\t\ttransition: transform 0.3s ease-in-out;\n\t}\n\n\t.mobileWatchInfos .infoAccordion span {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\ttransform: translateY(1px);\n\t}\n\n\t.mobileWatchInfos .infoAccordion.clicked svg {\n\t\ttransform: rotate(180deg);\n\t}\n\n\t.mobileWatchInfos\n\t\t.infoAccContent[content-id='key-features']\n\t\t> section[data-test-id='KeyFeaturesSection']\n\t\t> div[data-testid='KeyFeaturesWrapper'] {\n\t\tpadding-top: 16px;\n\t}\n\n\t.mobileWatchInfos\n\t\t.infoAccContent[content-id='key-features']\n\t\tp[data-test-id='HeaderTitleMobile'],\n\t.mobileWatchInfos\n\t\t.infoAccContent:not([content-id='warranty'])\n\t\tp[data-test-id='SectionTitle'],\n\t.mobileWatchInfos\n\t\t.infoAccContent[content-id='warranty']\n\t\theader {\n\t\tdisplay: none !important;\n\t}\n\n\t.mobileWatchInfos\n\t\t.infoAccContent[content-id='key-features']\n\t\t[data-test-id='Header'] {\n\t\tjustify-content: center;\n\t}\n\n\t.mobileWatchInfos\n\t\t.infoAccContent:not([content-id='warranty']):not(\n\t\t\t[content-id='key-features']\n\t\t)\n\t\tdiv[data-test-id^='NameValueWrapper-']\n\t\t> p {\n\t\tfont-size: 16px;\n\t}\n\n\t.mobileWatchInfos\n\t\t.infoAccContent:not([content-id='warranty']):not(\n\t\t\t[content-id='key-features']\n\t\t)\n\t\tdiv[data-test-id^='NameValueWrapper-'] {\n\t\tmargin-bottom: 10px !important;\n\t}\n\n\t.mobileWatchInfos\n\t\t.infoAccContent:not([content-id='warranty']):not(\n\t\t\t[content-id='key-features']\n\t\t)\n\t\tdiv[data-test-id='Section'] {\n\t\tpadding-top: 16px;\n\t}\n\n\t.mobileWatchInfos\n\t\t.infoAccContent[content-id='warranty']\n\t\tsection[data-test-id='WarrantySection warranty']\n\t\t> div {\n\t\tpadding: 0;\n\t}\n\n\t.mobileWatchInfos\n\t\t.infoAccContent[content-id='warranty']\n\t\tdiv:has([data-testid='warrantyDetailsExtLink']) {\n\t\tbackground-color: transparent;\n\t}\n\n\t.mobileWatchInfos\n\t\t.infoAccContent[content-id='warranty']\n\t\tdiv[data-testid='AccordionWrapper'] {\n\t\tmargin-top: 0;\n\t}\n\n\t.mobileWatchInfos\n\t\t.infoAccContent[content-id='warranty']\n\t\tdiv[data-testid='AccordionWrapper']\n\t\t> div,\n\t.mobileWatchInfos [data-testid='AccordionContent'] {\n\t\theight: 100% !important;\n\t}\n\n\t.mobileWatchInfos [data-testid='AccordionContent'] > div {\n\t\tpadding: 0;\n\t}\n\n\t.mobileWatchInfos [data-testid='AccordionHeader'] {\n\t\tdisplay: none;\n\t}\n\n\t.mobileWatchInfos .AccordionBox,\n\t.mobileWatchInfos [data-test-id='IconTypeContainer'] {\n\t\tbackground-color: transparent;\n\t}\n\n\t.mobileWatchInfos .infoAccContent:not(.hidden) {\n\t\tmargin-bottom: 16px;\n\t}\n}","js":"(function () {\n\t'use strict';\n\n\tvar CONTROLLER_KEY = '__watchInfosSpaControllerV2';\n\n\t/*\n\t * Se il codice viene reiniettato dall'A/B testing tool,\n\t * distrugge prima la precedente istanza.\n\t */\n\tif (\n\t\twindow[CONTROLLER_KEY] &&\n\t\ttypeof window[CONTROLLER_KEY].destroy === 'function'\n\t) {\n\t\twindow[CONTROLLER_KEY].destroy();\n\t}\n\n\tvar destroyed = false;\n\n\tvar mountTimer = null;\n\tvar retryTimer = null;\n\tvar dataLayerCheckTimer = null;\n\n\tvar mountToken = 0;\n\tvar lastSourceState = null;\n\n\tvar hookedDataLayer = null;\n\tvar originalDataLayerPush = null;\n\tvar wrappedDataLayerPush = null;\n\n\t/*\n\t * Normalizza il testo per confrontare i contenuti\n\t * delle diverse pagine prodotto.\n\t */\n\tfunction normalizeText(value) {\n\t\treturn String(value || '')\n\t\t\t.replace(/\\s+/g, ' ')\n\t\t\t.trim();\n\t}\n\n\t/*\n\t * Recupera tutti gli elementi nativi necessari.\n\t * Restituisce null finché la SPA non ha completato\n\t * il rendering della pagina prodotto.\n\t */\n\tfunction getSourceState() {\n\t\tvar technicalSection = document.querySelector(\n\t\t\t'section[data-test-id=\"TechnicalDataSection\"]'\n\t\t);\n\n\t\tvar keyFeaturesSection = document.querySelector(\n\t\t\t'section[data-test-id=\"KeyFeaturesSection\"]'\n\t\t);\n\n\t\tvar warrantySection = document.querySelector(\n\t\t\t'section[data-test-id=\"WarrantySection warranty\"]'\n\t\t);\n\n\t\tvar productDetailSection = document.querySelector(\n\t\t\t'section[data-test-id=\"ProductDetailSection\"]'\n\t\t);\n\n\t\tif (\n\t\t\t!technicalSection ||\n\t\t\t!keyFeaturesSection ||\n\t\t\t!warrantySection ||\n\t\t\t!productDetailSection\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\n\t\tvar techSections = Array.from(\n\t\t\ttechnicalSection.querySelectorAll('div[data-test-id=\"Section\"]')\n\t\t);\n\n\t\tvar technicalTitles = Array.from(\n\t\t\ttechnicalSection.querySelectorAll(\n\t\t\t\t'div[data-test-id=\"Section\"] > p[data-test-id=\"SectionTitle\"]'\n\t\t\t)\n\t\t).slice(4, 8);\n\n\t\tvar keyFeaturesTitleElement = keyFeaturesSection.querySelector(\n\t\t\t'p[data-test-id=\"HeaderTitleMobile\"]'\n\t\t);\n\n\t\tvar warrantyTitleElement = warrantySection.querySelector(\n\t\t\t'h3[data-testid=\"WarrantyHeader\"]'\n\t\t);\n\n\t\t/*\n\t\t * Lo script originale richiede:\n\t\t * - almeno 8 sezioni tecniche;\n\t\t * - 4 titoli tecnici desktop;\n\t\t * - titolo Key Features;\n\t\t * - titolo Warranty.\n\t\t */\n\t\tif (\n\t\t\ttechSections.length < 8 ||\n\t\t\ttechnicalTitles.length < 4 ||\n\t\t\t!keyFeaturesTitleElement ||\n\t\t\t!warrantyTitleElement\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn {\n\t\t\ttechnicalSection: technicalSection,\n\t\t\tkeyFeaturesSection: keyFeaturesSection,\n\t\t\twarrantySection: warrantySection,\n\t\t\tproductDetailSection: productDetailSection,\n\n\t\t\ttechSections: techSections,\n\t\t\ttechnicalTitles: technicalTitles,\n\n\t\t\tkeyFeaturesTitle: normalizeText(keyFeaturesTitleElement.textContent),\n\n\t\t\twarrantyTitle: normalizeText(warrantyTitleElement.textContent),\n\n\t\t\t/*\n\t\t\t * La firma serve a capire quando i dati nativi\n\t\t\t * della PDP sono realmente cambiati.\n\t\t\t */\n\t\t\tsignature: [\n\t\t\t\tnormalizeText(technicalSection.textContent),\n\t\t\t\tnormalizeText(keyFeaturesSection.textContent),\n\t\t\t\tnormalizeText(warrantySection.textContent),\n\t\t\t].join('||'),\n\t\t};\n\t}\n\n\tfunction removeWatchInfos() {\n\t\tdocument.querySelectorAll('.watchInfos').forEach(function (element) {\n\t\t\telement.remove();\n\t\t});\n\t}\n\n\tfunction sourceHasChanged(source) {\n\t\tif (!lastSourceState) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn (\n\t\t\tsource.signature !== lastSourceState.signature ||\n\t\t\tsource.technicalSection !== lastSourceState.technicalSection ||\n\t\t\tsource.keyFeaturesSection !== lastSourceState.keyFeaturesSection ||\n\t\t\tsource.warrantySection !== lastSourceState.warrantySection ||\n\t\t\tsource.productDetailSection !== lastSourceState.productDetailSection\n\t\t);\n\t}\n\n\tfunction sameSourceState(sourceA, sourceB) {\n\t\tif (!sourceA || !sourceB) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn (\n\t\t\tsourceA.signature === sourceB.signature &&\n\t\t\tsourceA.technicalSection === sourceB.technicalSection &&\n\t\t\tsourceA.keyFeaturesSection === sourceB.keyFeaturesSection &&\n\t\t\tsourceA.warrantySection === sourceB.warrantySection &&\n\t\t\tsourceA.productDetailSection === sourceB.productDetailSection\n\t\t);\n\t}\n\n\tfunction pushExperimentEvent(payload) {\n\t\twindow.dataLayer = window.dataLayer || [];\n\n\t\twindow.dataLayer.push(\n\t\t\tObject.assign(\n\t\t\t\t{\n\t\t\t\t\tevent: 'experiment',\n\t\t\t\t},\n\t\t\t\tpayload\n\t\t\t)\n\t\t);\n\t}\n\n\t/*\n\t * Applica le modifiche alla warranty desktop.\n\t * I controlli evitano che un piccolo cambio del DOM\n\t * blocchi tutto il test.\n\t */\n\tfunction modifyDesktopWarranty(watchInfos) {\n\t\tvar warrantyDesktop = watchInfos.querySelector(\n\t\t\t'.desktopWatchInfos ' + '.infoContent[content-id=\"warranty\"]'\n\t\t);\n\n\t\tif (!warrantyDesktop) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar firstColumn = warrantyDesktop.querySelector(\n\t\t\t'section > ' +\n\t\t\t\t'div[data-test-id=\"ContainerWrapper\"] > ' +\n\t\t\t\t'div:last-child > div > div:first-child'\n\t\t);\n\n\t\tif (firstColumn) {\n\t\t\tvar firstBlock = firstColumn.firstElementChild;\n\n\t\t\tif (firstBlock) {\n\t\t\t\tvar paragraphs = firstBlock.querySelectorAll('p');\n\n\t\t\t\tif (paragraphs.length >= 3) {\n\t\t\t\t\tparagraphs[0].innerHTML = paragraphs[1].innerHTML;\n\n\t\t\t\t\tparagraphs[1].remove();\n\t\t\t\t\tparagraphs[2].remove();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (firstColumn.children[1]) {\n\t\t\t\tfirstColumn.children[1].remove();\n\t\t\t}\n\n\t\t\tvar lastBlock = firstColumn.lastElementChild;\n\n\t\t\tif (lastBlock) {\n\t\t\t\tvar lastParagraphs = lastBlock.querySelectorAll('p');\n\n\t\t\t\tif (lastParagraphs.length >= 5) {\n\t\t\t\t\tlastParagraphs[2].innerHTML = lastParagraphs[3].innerHTML;\n\n\t\t\t\t\tlastParagraphs[3].remove();\n\t\t\t\t\tlastParagraphs[4].remove();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar secondColumn = warrantyDesktop.querySelector(\n\t\t\t'section > ' +\n\t\t\t\t'div[data-test-id=\"ContainerWrapper\"] > ' +\n\t\t\t\t'div:last-child > div > div:last-child'\n\t\t);\n\n\t\tif (secondColumn) {\n\t\t\tvar secondColumnParagraphs = secondColumn.querySelectorAll(\n\t\t\t\t'div[data-test-id=\"Grid\"] > p'\n\t\t\t);\n\n\t\t\tif (secondColumnParagraphs.length >= 3) {\n\t\t\t\tsecondColumnParagraphs[1].innerHTML =\n\t\t\t\t\tsecondColumnParagraphs[2].innerHTML;\n\n\t\t\t\tsecondColumnParagraphs[2].remove();\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Applica le modifiche alla warranty mobile.\n\t */\n\tfunction modifyMobileWarranty(watchInfos) {\n\t\tvar warrantyMobile = watchInfos.querySelector(\n\t\t\t'.mobileWatchInfos ' +\n\t\t\t\t'.infoAccContent[content-id=\"warranty\"] ' +\n\t\t\t\t'div[data-testid=\"AccordionContent\"] > ' +\n\t\t\t\t'div.AccordionBox'\n\t\t);\n\n\t\tif (!warrantyMobile) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar firstElement = warrantyMobile.firstElementChild;\n\n\t\tif (firstElement) {\n\t\t\tvar firstParagraphs = firstElement.querySelectorAll('p');\n\n\t\t\tif (firstParagraphs.length >= 3) {\n\t\t\t\tfirstParagraphs[0].innerHTML = firstParagraphs[1].innerHTML;\n\n\t\t\t\tfirstParagraphs[1].remove();\n\t\t\t\tfirstParagraphs[2].remove();\n\t\t\t}\n\t\t}\n\n\t\tvar lastElementContainer = warrantyMobile.lastElementChild;\n\n\t\tif (!lastElementContainer) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar firstChild = lastElementContainer.firstElementChild;\n\n\t\tvar lastElement = firstChild && firstChild.lastElementChild;\n\n\t\tif (lastElement) {\n\t\t\tvar lastParagraphs = lastElement.querySelectorAll('p');\n\n\t\t\tif (lastParagraphs.length >= 5) {\n\t\t\t\tlastParagraphs[2].innerHTML = lastParagraphs[3].innerHTML;\n\n\t\t\t\tlastParagraphs[3].remove();\n\t\t\t\tlastParagraphs[4].remove();\n\t\t\t}\n\t\t}\n\n\t\tvar secondChild = lastElementContainer.lastElementChild;\n\n\t\tvar secondChildContent = secondChild && secondChild.firstElementChild;\n\n\t\tif (secondChildContent) {\n\t\t\tvar otherParagraphs = secondChildContent.querySelectorAll('p');\n\n\t\t\tif (otherParagraphs.length >= 3) {\n\t\t\t\totherParagraphs[1].innerHTML = otherParagraphs[2].innerHTML;\n\n\t\t\t\totherParagraphs[2].remove();\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction addInfoBoxEvents(watchInfos) {\n\t\tvar infosBoxes = watchInfos.querySelectorAll('svg[data-test-id]');\n\n\t\tinfosBoxes.forEach(function (box) {\n\t\t\tvar boxId = box.getAttribute('data-test-id');\n\n\t\t\tbox.classList.add('infoBox');\n\n\t\t\tbox.addEventListener('click', function () {\n\t\t\t\tvar nativeBoxes = document.querySelectorAll(\n\t\t\t\t\t'svg[data-test-id]:not(.infoBox)'\n\t\t\t\t);\n\n\t\t\t\tvar targetSection = Array.from(nativeBoxes).find(function (nativeBox) {\n\t\t\t\t\treturn nativeBox.getAttribute('data-test-id') === boxId;\n\t\t\t\t});\n\n\t\t\t\tif (!targetSection) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\ttargetSection.dispatchEvent(\n\t\t\t\t\tnew MouseEvent('click', {\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcancelable: true,\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\t}\n\n\tfunction addDesktopTabEvents(desktopWatchInfos) {\n\t\tvar desktopTabs = desktopWatchInfos.querySelectorAll('.infoTab');\n\n\t\tvar desktopClickedTab = desktopWatchInfos.querySelector('.infoTab.clicked');\n\n\t\tvar desktopClickedContent = desktopWatchInfos.querySelector(\n\t\t\t'.infoContent:not(.hidden)'\n\t\t);\n\n\t\tdesktopTabs.forEach(function (tab) {\n\t\t\ttab.addEventListener('click', function () {\n\t\t\t\tvar tabId = tab.getAttribute('tab-id');\n\n\t\t\t\tvar targetContent = desktopWatchInfos.querySelector(\n\t\t\t\t\t'.infoContent[content-id=\"' + tabId + '\"]'\n\t\t\t\t);\n\n\t\t\t\tif (!targetContent) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (desktopClickedTab && desktopClickedTab !== tab) {\n\t\t\t\t\tdesktopClickedTab.classList.remove('clicked');\n\t\t\t\t}\n\n\t\t\t\tif (desktopClickedContent && desktopClickedContent !== targetContent) {\n\t\t\t\t\tdesktopClickedContent.classList.add('hidden');\n\t\t\t\t}\n\n\t\t\t\ttab.classList.add('clicked');\n\t\t\t\ttargetContent.classList.remove('hidden');\n\n\t\t\t\tdesktopClickedTab = tab;\n\t\t\t\tdesktopClickedContent = targetContent;\n\n\t\t\t\tpushExperimentEvent({\n\t\t\t\t\texp_element: 'desktopTabClick',\n\t\t\t\t\texp_content: 'tab clicked - ' + tabId,\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tfunction addMobileAccordionEvents(mobileWatchInfos) {\n\t\tvar mobileAccordions = mobileWatchInfos.querySelectorAll('.infoAccordion');\n\n\t\tmobileAccordions.forEach(function (accordion) {\n\t\t\taccordion.addEventListener('click', function () {\n\t\t\t\tvar tabId = accordion.getAttribute('tab-id');\n\n\t\t\t\tvar targetContent = mobileWatchInfos.querySelector(\n\t\t\t\t\t'.infoAccContent[content-id=\"' + tabId + '\"]'\n\t\t\t\t);\n\n\t\t\t\tif (!targetContent) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accordion.classList.contains('clicked')) {\n\t\t\t\t\taccordion.classList.remove('clicked');\n\t\t\t\t\ttargetContent.classList.add('hidden');\n\n\t\t\t\t\tpushExperimentEvent({\n\t\t\t\t\t\texp_element: 'mobileAccordionClick',\n\n\t\t\t\t\t\texp_content: 'accordion closed - ' + tabId,\n\t\t\t\t\t});\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar oldAccordion = mobileWatchInfos.querySelector(\n\t\t\t\t\t'.infoAccordion.clicked'\n\t\t\t\t);\n\n\t\t\t\tif (oldAccordion && oldAccordion !== accordion) {\n\t\t\t\t\tvar oldTabId = oldAccordion.getAttribute('tab-id');\n\n\t\t\t\t\tvar oldContent = mobileWatchInfos.querySelector(\n\t\t\t\t\t\t'.infoAccContent[content-id=\"' + oldTabId + '\"]'\n\t\t\t\t\t);\n\n\t\t\t\t\toldAccordion.classList.remove('clicked');\n\n\t\t\t\t\tif (oldContent) {\n\t\t\t\t\t\toldContent.classList.add('hidden');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\taccordion.classList.add('clicked');\n\t\t\t\ttargetContent.classList.remove('hidden');\n\n\t\t\t\tpushExperimentEvent({\n\t\t\t\t\texp_element: 'mobileAccordionClick',\n\n\t\t\t\t\texp_content: 'accordion opened - ' + tabId,\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/*\n\t * Costruisce il nuovo componente usando i valori\n\t * presenti nella PDP corrente.\n\t */\n\tfunction redesignSpecs(source) {\n\t\tif (!source) {\n\t\t\treturn false;\n\t\t}\n\n\t\tremoveWatchInfos();\n\n\t\tvar desktopTechSections = source.techSections.slice(4, 8);\n\n\t\tvar mobileTechSections = source.techSections.slice(0, 4);\n\n\t\tvar techIds = ['movements', 'case', 'dimensions', 'strap'];\n\n\t\tvar accordionIcon =\n\t\t\t'<svg ' +\n\t\t\t'aria-label=\"chevronDown-icon\" ' +\n\t\t\t'height=\"20px\" ' +\n\t\t\t'viewBox=\"0 0 20 20\" ' +\n\t\t\t'width=\"20px\" ' +\n\t\t\t'xmlns=\"http://www.w3.org/2000/svg\" ' +\n\t\t\t'class=\"' +\n\t\t\t'sc-59f902fd-0 hKDiVT ' +\n\t\t\t'sc-13bb9618-0 kvfXtV ' +\n\t\t\t'accordion-header-icon' +\n\t\t\t'\">' +\n\t\t\t'<path ' +\n\t\t\t'clip-rule=\"evenodd\" ' +\n\t\t\t'd=\"' +\n\t\t\t'M10 13.7071L16.7071 7' +\n\t\t\t'L15.2929 5.58578' +\n\t\t\t'L10 10.8787' +\n\t\t\t'L4.70711 5.58578' +\n\t\t\t'L3.29289 7' +\n\t\t\t'L10 13.7071Z' +\n\t\t\t'\" ' +\n\t\t\t'fill=\"currentColor\" ' +\n\t\t\t'fill-rule=\"evenodd\">' +\n\t\t\t'</path>' +\n\t\t\t'</svg>';\n\n\t\tvar watchInfos = document.createElement('div');\n\n\t\twatchInfos.className = 'watchInfos';\n\t\twatchInfos.setAttribute('data-test-id', 'watchInfos');\n\t\twatchInfos.style.display = 'none';\n\t\tvar desktopWatchInfos = document.createElement('div');\n\n\t\tdesktopWatchInfos.className = 'desktopWatchInfos';\n\n\t\tdesktopWatchInfos.setAttribute('data-test-id', 'desktopWatchInfos');\n\n\t\tvar mobileWatchInfos = document.createElement('div');\n\n\t\tmobileWatchInfos.className = 'mobileWatchInfos';\n\n\t\tmobileWatchInfos.setAttribute('data-test-id', 'mobileWatchInfos');\n\n\t\tvar desktopWatchTech = '';\n\n\t\tdesktopTechSections.forEach(function (section, index) {\n\t\t\tdesktopWatchTech +=\n\t\t\t\t'<div ' +\n\t\t\t\t'class=\"' +\n\t\t\t\t'infoContent watchTech hidden' +\n\t\t\t\t'\" ' +\n\t\t\t\t'content-id=\"' +\n\t\t\t\ttechIds[index] +\n\t\t\t\t'\">' +\n\t\t\t\tsection.outerHTML +\n\t\t\t\t'</div>';\n\t\t});\n\n\t\tvar mobileWatchTech = '';\n\n\t\tmobileTechSections.forEach(function (section, index) {\n\t\t\tmobileWatchTech +=\n\t\t\t\t'<div ' +\n\t\t\t\t'class=\"infoAccordion\" ' +\n\t\t\t\t'tab-id=\"' +\n\t\t\t\ttechIds[index] +\n\t\t\t\t'\">' +\n\t\t\t\tsource.technicalTitles[index].textContent +\n\t\t\t\taccordionIcon +\n\t\t\t\t'</div>' +\n\t\t\t\t'<div ' +\n\t\t\t\t'class=\"infoAccContent hidden\" ' +\n\t\t\t\t'content-id=\"' +\n\t\t\t\ttechIds[index] +\n\t\t\t\t'\">' +\n\t\t\t\tsection.outerHTML +\n\t\t\t\t'</div>';\n\t\t});\n\n\t\tdesktopWatchInfos.innerHTML =\n\t\t\t'<div class=\"infosTabs\">' +\n\t\t\t'<div ' +\n\t\t\t'class=\"infoTab clicked\" ' +\n\t\t\t'tab-id=\"key-features\">' +\n\t\t\tsource.keyFeaturesTitle +\n\t\t\t'</div>' +\n\t\t\t'<div ' +\n\t\t\t'class=\"infoTab\" ' +\n\t\t\t'tab-id=\"movements\">' +\n\t\t\tsource.technicalTitles[0].textContent +\n\t\t\t'</div>' +\n\t\t\t'<div ' +\n\t\t\t'class=\"infoTab\" ' +\n\t\t\t'tab-id=\"case\">' +\n\t\t\tsource.technicalTitles[1].textContent +\n\t\t\t'</div>' +\n\t\t\t'<div ' +\n\t\t\t'class=\"infoTab\" ' +\n\t\t\t'tab-id=\"dimensions\">' +\n\t\t\tsource.technicalTitles[2].textContent +\n\t\t\t'</div>' +\n\t\t\t'<div ' +\n\t\t\t'class=\"infoTab\" ' +\n\t\t\t'tab-id=\"strap\">' +\n\t\t\tsource.technicalTitles[3].textContent +\n\t\t\t'</div>' +\n\t\t\t'<div ' +\n\t\t\t'class=\"infoTab\" ' +\n\t\t\t'tab-id=\"warranty\">' +\n\t\t\tsource.warrantyTitle +\n\t\t\t'</div>' +\n\t\t\t'</div>' +\n\t\t\t'<div class=\"infosContent\">' +\n\t\t\t'<div ' +\n\t\t\t'class=\"infoContent\" ' +\n\t\t\t'content-id=\"key-features\">' +\n\t\t\tsource.keyFeaturesSection.outerHTML +\n\t\t\t'</div>' +\n\t\t\tdesktopWatchTech +\n\t\t\t'<div ' +\n\t\t\t'class=\"infoContent hidden\" ' +\n\t\t\t'content-id=\"warranty\">' +\n\t\t\tsource.warrantySection.outerHTML +\n\t\t\t'</div>' +\n\t\t\t'</div>';\n\n\t\tmobileWatchInfos.innerHTML =\n\t\t\t'<div ' +\n\t\t\t'class=\"infoAccordion\" ' +\n\t\t\t'tab-id=\"key-features\">' +\n\t\t\t'<span>' +\n\t\t\tsource.keyFeaturesTitle +\n\t\t\t'</span>' +\n\t\t\taccordionIcon +\n\t\t\t'</div>' +\n\t\t\t'<div ' +\n\t\t\t'class=\"infoAccContent hidden\" ' +\n\t\t\t'content-id=\"key-features\">' +\n\t\t\tsource.keyFeaturesSection.outerHTML +\n\t\t\t'</div>' +\n\t\t\tmobileWatchTech +\n\t\t\t'<div ' +\n\t\t\t'class=\"infoAccordion\" ' +\n\t\t\t'tab-id=\"warranty\">' +\n\t\t\t'<span>' +\n\t\t\tsource.warrantyTitle +\n\t\t\t'</span>' +\n\t\t\taccordionIcon +\n\t\t\t'</div>' +\n\t\t\t'<div ' +\n\t\t\t'class=\"infoAccContent hidden\" ' +\n\t\t\t'content-id=\"warranty\">' +\n\t\t\tsource.warrantySection.outerHTML +\n\t\t\t'</div>';\n\n\t\twatchInfos.appendChild(desktopWatchInfos);\n\t\twatchInfos.appendChild(mobileWatchInfos);\n\n\t\tsource.keyFeaturesSection.parentNode.insertBefore(\n\t\t\twatchInfos,\n\t\t\tsource.keyFeaturesSection\n\t\t);\n\n\t\tmodifyDesktopWarranty(watchInfos);\n\t\tmodifyMobileWarranty(watchInfos);\n\n\t\taddInfoBoxEvents(watchInfos);\n\t\taddDesktopTabEvents(desktopWatchInfos);\n\t\taddMobileAccordionEvents(mobileWatchInfos);\n\n\t\treturn true;\n\t}\n\n\t/*\n\t * Avvia il tentativo di montaggio.\n\t *\n\t * Dopo page_view:\n\t * 1. rimuove subito i dati della vecchia PDP;\n\t * 2. aspetta che la SPA aggiorni il DOM;\n\t * 3. verifica che il nuovo DOM sia stabile;\n\t * 4. ricostruisce il componente.\n\t */\n\tfunction mountAfterPageChange(reason) {\n\t\tmountToken += 1;\n\n\t\tvar currentToken = mountToken;\n\t\tvar attempts = 0;\n\n\t\tvar candidateSource = null;\n\t\tvar stableChecks = 0;\n\n\t\tclearTimeout(retryTimer);\n\t\tremoveWatchInfos();\n\n\t\tfunction tryMount() {\n\t\t\tif (destroyed || currentToken !== mountToken) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattempts += 1;\n\n\t\t\tvar source = getSourceState();\n\n\t\t\tif (source) {\n\t\t\t\tif (sameSourceState(candidateSource, source)) {\n\t\t\t\t\tstableChecks += 1;\n\t\t\t\t} else {\n\t\t\t\t\tcandidateSource = source;\n\t\t\t\t\tstableChecks = 1;\n\t\t\t\t}\n\n\t\t\t\tvar changed = sourceHasChanged(source);\n\n\t\t\t\t/*\n\t\t\t\t * Il fallback permette il rimontaggio anche\n\t\t\t\t * quando due prodotti hanno specifiche identiche.\n\t\t\t\t */\n\t\t\t\tvar fallbackReady = attempts >= 30;\n\n\t\t\t\t/*\n\t\t\t\t * Aspetta che gli stessi dati rimangano stabili\n\t\t\t\t * per almeno tre controlli consecutivi.\n\t\t\t\t */\n\t\t\t\tvar sourceIsStable = stableChecks >= 3;\n\n\t\t\t\tif (sourceIsStable && (changed || fallbackReady)) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar mounted = redesignSpecs(source);\n\n\t\t\t\t\t\tif (mounted) {\n\t\t\t\t\t\t\tlastSourceState = {\n\t\t\t\t\t\t\t\tsignature: source.signature,\n\n\t\t\t\t\t\t\t\ttechnicalSection: source.technicalSection,\n\n\t\t\t\t\t\t\t\tkeyFeaturesSection: source.keyFeaturesSection,\n\n\t\t\t\t\t\t\t\twarrantySection: source.warrantySection,\n\n\t\t\t\t\t\t\t\tproductDetailSection: source.productDetailSection,\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t\t'[watchInfos] Errore durante il mount:',\n\t\t\t\t\t\t\treason,\n\t\t\t\t\t\t\terror\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcandidateSource = null;\n\t\t\t\tstableChecks = 0;\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * Massimo 12 secondi di tentativi.\n\t\t\t */\n\t\t\tif (attempts < 120) {\n\t\t\t\tretryTimer = window.setTimeout(tryMount, 100);\n\t\t\t} else {\n\t\t\t\tconsole.warn('[watchInfos] Impossibile completare il mount:', reason);\n\t\t\t}\n\t\t}\n\n\t\tretryTimer = window.setTimeout(tryMount, 100);\n\t}\n\n\t/*\n\t * Debounce dei page_view.\n\t * Alcune SPA possono inviarne più di uno\n\t * durante la stessa navigazione.\n\t */\n\tfunction scheduleMount(reason) {\n\t\tif (destroyed) {\n\t\t\treturn;\n\t\t}\n\n\t\tclearTimeout(mountTimer);\n\n\t\tmountTimer = window.setTimeout(function () {\n\t\t\tmountAfterPageChange(reason);\n\t\t}, 50);\n\t}\n\n\tfunction containsPageView(args) {\n\t\treturn args.some(function (item) {\n\t\t\treturn item && typeof item === 'object' && item.event === 'page_view';\n\t\t});\n\t}\n\n\t/*\n\t * Intercetta i nuovi push nel dataLayer\n\t * senza bloccare il comportamento originale di GTM.\n\t */\n\tfunction installDataLayerHook() {\n\t\tif (destroyed) {\n\t\t\treturn;\n\t\t}\n\n\t\twindow.dataLayer = window.dataLayer || [];\n\n\t\tvar currentDataLayer = window.dataLayer;\n\n\t\t/*\n\t\t * Il listener è già installato e attivo.\n\t\t */\n\t\tif (\n\t\t\thookedDataLayer === currentDataLayer &&\n\t\t\tcurrentDataLayer.push === wrappedDataLayerPush\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\thookedDataLayer = currentDataLayer;\n\n\t\tvar currentOriginalPush = currentDataLayer.push;\n\n\t\tvar currentWrappedPush = function () {\n\t\t\tvar args = Array.prototype.slice.call(arguments);\n\n\t\t\t/*\n\t\t\t * Esegue prima il push originale,\n\t\t\t * così non interferisce con GTM.\n\t\t\t */\n\t\t\tvar result = currentOriginalPush.apply(this, args);\n\n\t\t\tif (containsPageView(args)) {\n\t\t\t\tscheduleMount('dataLayer page_view');\n\t\t\t}\n\n\t\t\treturn result;\n\t\t};\n\n\t\toriginalDataLayerPush = currentOriginalPush;\n\n\t\twrappedDataLayerPush = currentWrappedPush;\n\n\t\tcurrentDataLayer.push = currentWrappedPush;\n\t}\n\n\tfunction destroy() {\n\t\tdestroyed = true;\n\t\tmountToken += 1;\n\n\t\tclearTimeout(mountTimer);\n\t\tclearTimeout(retryTimer);\n\t\tclearInterval(dataLayerCheckTimer);\n\n\t\t/*\n\t\t * Ripristina il push precedente solo se\n\t\t * il nostro wrapper è ancora quello attivo.\n\t\t */\n\t\tif (hookedDataLayer && hookedDataLayer.push === wrappedDataLayerPush) {\n\t\t\thookedDataLayer.push = originalDataLayerPush;\n\t\t}\n\t}\n\n\twindow[CONTROLLER_KEY] = {\n\t\tdestroy: destroy,\n\n\t\t/*\n\t\t * È possibile forzare manualmente il refresh\n\t\t * dalla console con:\n\t\t *\n\t\t * window.__watchInfosSpaControllerV2.refresh()\n\t\t */\n\t\trefresh: function () {\n\t\t\tscheduleMount('manual refresh');\n\t\t},\n\t};\n\n\tinstallDataLayerHook();\n\n\t/*\n\t * Controlla periodicamente che la SPA o GTM\n\t * non abbiano sostituito dataLayer o dataLayer.push.\n\t */\n\tdataLayerCheckTimer = window.setInterval(installDataLayerHook, 1000);\n\n\t/*\n\t * Primo caricamento della pagina.\n\t * Non usa DOMContentLoaded.\n\t */\n\tscheduleMount('initial load');\n})();\n","domMutations":[]},{"css":"#JAK-new-section {\n\tmargin: 55px 0;\n\tposition: relative;\n\tmargin-inline: auto;\n\tmax-width: 100%;\n\twidth: 100%;\n\tdisplay: block!important;\n}\n\n.JAK-sections {\n\tdisplay: none !important;\n\tflex-wrap: wrap;\n\tpadding: 0 20px;\n}\n\n.JAK_newTab {\n\tdisplay: none;\n}\n\n.JAK_newTab.JAK_active {\n\tdisplay: block;\n}\n\n.JAK_tab {\n\tcursor: pointer;\n\tcolor: #072c54;\n\tbackground-color: #d3d3d3;\n\tfont-family: __italianPlate_843ea1;\n\tfont-weight: 600;\n\tfont-size: 18px;\n\tline-height: 16px;\n\tletter-spacing: 0%;\n\ttext-transform: uppercase;\n\tscroll-margin-top: 150px;\n}\n\n.JAK_tab svg {\n\tdisplay: none;\n}\n\n.JAK_tabSection {\n\tdisplay: grid;\n\tgap: 7px;\n\tpadding-inline: 2.5rem;\n\tgrid-template-columns: repeat(4, auto) 1fr;\n\tborder-bottom: 1px solid #d3d3d3;\n\tmargin-bottom: 34px;\n}\n\n.JAK_tab.JAK_active {\n\tposition: relative;\n\ttop: 1px;\n\tbackground: #fff;\n\tborder-top: 1px solid #d3d3d3;\n\tborder-right: 1px solid #d3d3d3;\n\tborder-bottom: 1px solid #fff;\n\tborder-left: 1px solid #d3d3d3;\n}\n\nsection[data-test-id=\"KeyFeaturesSection\"]{\n\tmargin-bottom: 40px;\n}\n\n#JAK-new-section\n\t.JAK_newTab[data-tab='technical']\n\tdiv:has(> [data-test-id='Section']) {\n\theight: auto;\n}\n\n#JAK-new-section\n\t.JAK_newTab[data-tab='technical']\n\tdiv:has(> [data-test-id='Section'])\n\tdiv:has(button) {\n\tdisplay: none;\n}\n\n#JAK-new-section [data-test-id='IconTypeContainer'],\n#JAK-new-section [data-test-id='BaseCardTypeBackground'] {\n\tbackground-color: transparent;\n}\n\n@media (min-width: 1440px) {\n\t#JAK-new-section {\n\t\tmax-width: 1440px;\n\t\tpadding-inline: 2.5rem;\n\t}\n}\n\n@media (max-width: 768px) {\n\t#JAK-new-section {\n\t\tdisplay: flex!important;\n\t\tflex-direction: column;\n\t\tmax-width: 100%;\n\t\twidth: 100%;\n\t\tmargin-inline: auto;\n\t\tpadding-inline: 1rem;\n\t}\n\n\t.JAK_tabSection {\n\t\tdisplay: contents;\n\t\twidth: 100%;\n\t}\n\n\t.JAK_tab.JAK_active {\n\t\tborder-left: 0;\n\t\tborder-right: 0;\n\t}\n\n\t.JAK_tab {\n\t\twidth: 100%;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: space-between;\n\t\tbackground: #fff;\n\t\tborder: 0;\n\t\tborder-top: 1px solid #d3d3d3;\n\t\tfont-weight: 500;\n\t}\n\n\t.JAK_tab[data-tab='passport'] {\n\t\tborder-bottom: 1px solid #d3d3d3;\n\t}\n\n\t.JAK_tab.JAK_active {\n\t\ttop: 0;\n\t\tborder-left: 0;\n\t\tborder-right: 0;\n\t\tborder-bottom: 0;\n\t}\n\n\t.JAK_newTab {\n\t\tborder: 0;\n\t}\n\n\t.JAK_tab[data-tab='features'] {\n\t\torder: 1;\n\t}\n\t.JAK_newTab[data-tab='features'] {\n\t\torder: 2;\n\t}\n\t.JAK_tab[data-tab='technical'] {\n\t\torder: 3;\n\t}\n\t.JAK_newTab[data-tab='technical'] {\n\t\torder: 4;\n\t}\n\t.JAK_tab[data-tab='story'] {\n\t\torder: 5;\n\t}\n\t.JAK_newTab[data-tab='story'] {\n\t\torder: 6;\n\t}\n\t.JAK_tab[data-tab='warranty'] {\n\t\torder: 7;\n\t}\n\t.JAK_newTab[data-tab='warranty'] {\n\t\torder: 8;\n\t}\n\t.JAK_tab[data-tab='passport'] {\n\t\torder: 9;\n\t}\n\t.JAK_newTab[data-tab='passport'] {\n\t\torder: 10;\n\t}\n\n\t.JAK_tab.JAK_active {\n\t\ttop: 0;\n\t}\n\n\t#JAK-new-section section.JAK_active[data-tab='features'] {\n\t\tmargin-bottom: 16px;\n\t}\n\n\t#JAK-new-section section:not([data-tab='features']) {\n\t\tmargin-bottom: 0;\n\t}\n\n\t#JAK-new-section section[data-tab='warranty'] {\n\t\tmargin-bottom: 16px;\n\t}\n\n\t#JAK-new-section\n\t\tsection[data-tab='warranty']\n\t\tdiv:has([data-testid='warrantyDetailsExtLink']) {\n\t\tbackground: transparent;\n\t}\n\n\t#JAK-new-section\n\t\tsection[data-tab='passport']\n\t\t[data-test-id='BaseCardTypeWrapper'] {\n\t\tpadding: 24px 16px 0;\n\t}\n\n\t#JAK-new-section [data-testid='AccordionContent'] {\n\t\theight: 100%;\n\t}\n\t#JAK-new-section [data-testid='AccordionContent'] > div {\n\t\tpadding: 0;\n\t}\n\n\t#JAK-new-section [data-tab='warranty'] [data-testid='AccordionWrapper'] {\n\t\tmargin-top: 0;\n\t}\n\n\t#JAK-new-section [data-test-id='ModelStoryWrapper'] {\n\t\tpadding: 16px 0;\n\t}\n\n\t#JAK-new-section [data-test-id='ModelStoryContent'] > div {\n\t\tmargin-bottom: 0;\n\t}\n\n\t#JAK-new-section .AccordionBox {\n\t\tbackground-color: transparent;\n\t}\n\n\t.JAK_newTab[data-tab='features'] [data-test-id='HeaderTitleMobile'] {\n\t\tdisplay: none;\n\t}\n\t.JAK_newTab[data-tab='features'] [data-test-id='Header'] {\n\t\tjustify-content: center;\n\t}\n\n\t.JAK_newTab[data-tab='story'] h2 {\n\t\tdisplay: none;\n\t}\n\n\t#JAK-new-section [data-test-id='IconTypeContainer'] {\n\t\tbackground-color: transparent;\n\t}\n\n\t#JAK-new-section [data-testid='AccordionHeader'] {\n\t\tdisplay: none;\n\t}\n\n\t.JAK_tab svg {\n\t\tdisplay: block;\n\t}\n\n\t.JAK_tab span {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\ttransform: translateY(1px);\n\t}\n\n\t.JAK_tab.JAK_active svg {\n\t\tdisplay: block;\n\t\ttransform: rotate(180deg);\n\t}\n}\n\n\n\n#JAK-new-section [data-tab=\"features\"] [data-test-id=\"HeaderTitleDesktop\"]{\n\tvisibility: hidden!important;\n}\n#JAK-new-section [data-tab=\"technical\"] div:has(>[data-testid=\"TechnicalDataHeader\"]){\n\tdisplay: none!important;\n}\n#JAK-new-section [data-tab=\"warranty\"] [data-testid=\"WarrantyHeader\"]{\n\tdisplay: none!important;\n}\n","js":"(() => {\n\tconst translations = {\n\t\tit: {\n\t\t\tkeyFeatures: 'Caratteristiche principali',\n\t\t\ttechnical: 'Dati tecnici',\n\t\t\tstory: 'La Storia',\n\t\t\twarranty: 'Garanzia',\n\t\t\tpassport: 'Passaporto Digitale',\n\t\t},\n\t\ten: {\n\t\t\tkeyFeatures: 'KEY FEATURES',\n\t\t\ttechnical: 'TECHNICAL DATA',\n\t\t\tstory: 'THE STORY',\n\t\t\twarranty: 'WARRANTY',\n\t\t\tpassport: 'DIGITAL PASSPORT',\n\t\t},\n\t\tfr: {\n\t\t\tkeyFeatures: 'Caractéristiques principales',\n\t\t\ttechnical: 'Données techniques',\n\t\t\tstory: \"L'histoire\",\n\t\t\twarranty: 'Garantie',\n\t\t\tpassport: 'Passeport numérique',\n\t\t},\n\t\tes: {\n\t\t\tkeyFeatures: 'Características principales',\n\t\t\ttechnical: 'Datos técnicos',\n\t\t\tstory: 'La historia',\n\t\t\twarranty: 'Garantía',\n\t\t\tpassport: 'pasaporte digital',\n\t\t},\n\t\tde: {\n\t\t\tkeyFeatures: 'Hauptmerkmale',\n\t\t\ttechnical: 'Technische Daten',\n\t\t\tstory: 'Die Geschichte',\n\t\t\twarranty: 'Garantie',\n\t\t\tpassport: 'Digitaler Produktpass',\n\t\t},\n\t\tzh: {\n\t\t\tkeyFeatures: '主要特点',\n\t\t\ttechnical: '技术数据',\n\t\t\tstory: '型号',\n\t\t\twarranty: '保修',\n\t\t\tpassport: '数字产品护照',\n\t\t},\n\t};\n\n\tfunction getTranslations() {\n\t\tconst lang = document.documentElement.lang\n\t\t\t? document.documentElement.lang.toLowerCase().slice(0, 2)\n\t\t\t: 'en';\n\n\t\treturn translations[lang] || translations.en;\n\t}\n\n\tfunction pushExperimentEvent(payload) {\n\t\twindow.dataLayer = window.dataLayer || [];\n\n\t\twindow.dataLayer.push(\n\t\t\tObject.assign(\n\t\t\t\t{\n\t\t\t\t\tevent: 'experiment',\n\t\t\t\t},\n\t\t\t\tpayload\n\t\t\t)\n\t\t);\n\t}\n\n\tfunction init() {\n\t\tconst keyFeaturesWrapper = document.querySelector(\n\t\t\t'[data-test-id=\"KeyFeaturesSection\"]'\n\t\t);\n\n\t\tconst technicalDataWrapper = document.querySelector(\n\t\t\t'[data-test-id=\"TechnicalDataSection\"]'\n\t\t);\n\n\t\tconst storyWrapper = document.querySelector(\n\t\t\t'[data-test-id=\"ModelStorySection\"]'\n\t\t);\n\n\t\tconst warrantyWrapper = document.querySelector(\n\t\t\t'[data-test-id=\"WarrantySection warranty\"]'\n\t\t);\n\n\t\tconst digitalPassportWrapper = document.querySelector(\n\t\t\t'[data-test-id=\"CMSSection\"][data-testid=\"cardSection\"]'\n\t\t);\n\n\t\tconst productDetailSection = document.querySelector(\n\t\t\t'section[data-test-id=\"ProductDetailSection\"]'\n\t\t);\n\n\t\tif (\n\t\t\t!productDetailSection ||\n\t\t\t!keyFeaturesWrapper ||\n\t\t\t!technicalDataWrapper ||\n\t\t\t!storyWrapper ||\n\t\t\t!warrantyWrapper ||\n\t\t\t!digitalPassportWrapper\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (document.querySelector('#JAK-new-section')) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst copy = getTranslations();\n\n\t\tdocument\n\t\t\t.querySelectorAll('#JAK-tab-section')\n\t\t\t.forEach((element) => element.remove());\n\n\t\tconst tabContainer = document.createElement('div');\n\t\ttabContainer.style.display = 'none';\n\t\ttabContainer.id = 'JAK-new-section';\n\n\t\ttechnicalDataWrapper.classList.add('JAK_newTab');\n\t\ttechnicalDataWrapper.dataset.tab = 'technical';\n\n\t\tstoryWrapper.classList.add('JAK_newTab');\n\t\tstoryWrapper.dataset.tab = 'story';\n\n\t\twarrantyWrapper.classList.add('JAK_newTab');\n\t\twarrantyWrapper.dataset.tab = 'warranty';\n\n\t\tdigitalPassportWrapper.classList.add('JAK_newTab');\n\t\tdigitalPassportWrapper.dataset.tab = 'passport';\n\n\t\tconst tabSection = document.createElement('div');\n\n\t\ttabSection.id = 'JAK-tab-section';\n\t\ttabSection.classList.add('JAK_tabSection');\n\n\t\ttabSection.innerHTML = `\n\t\t\t<button class=\"JAK_tab\" data-tab=\"technical\">\n\t\t\t\t<span>${copy.technical}</span>\n\t\t\t\t<svg\n\t\t\t\t\tclass=\"accordion-header-icon\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tdata-icon-name=\"chevronDown\"\n\t\t\t\t\tfocusable=\"false\"\n\t\t\t\t\theight=\"20px\"\n\t\t\t\t\tviewBox=\"0 0 20 20\"\n\t\t\t\t\twidth=\"20px\"\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\tclip-rule=\"evenodd\"\n\t\t\t\t\t\td=\"M10 13.7071L16.7071 7L15.2929 5.58578L10 10.8787L4.70711 5.58578L3.29289 7L10 13.7071Z\"\n\t\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\t\tfill-rule=\"evenodd\"\n\t\t\t\t\t></path>\n\t\t\t\t</svg>\n\t\t\t</button>\n\n\t\t\t<button class=\"JAK_tab\" data-tab=\"story\">\n\t\t\t\t<span>${copy.story}</span>\n\t\t\t\t<svg\n\t\t\t\t\tclass=\"accordion-header-icon\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tdata-icon-name=\"chevronDown\"\n\t\t\t\t\tfocusable=\"false\"\n\t\t\t\t\theight=\"20px\"\n\t\t\t\t\tviewBox=\"0 0 20 20\"\n\t\t\t\t\twidth=\"20px\"\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\tclip-rule=\"evenodd\"\n\t\t\t\t\t\td=\"M10 13.7071L16.7071 7L15.2929 5.58578L10 10.8787L4.70711 5.58578L3.29289 7L10 13.7071Z\"\n\t\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\t\tfill-rule=\"evenodd\"\n\t\t\t\t\t></path>\n\t\t\t\t</svg>\n\t\t\t</button>\n\n\t\t\t<button class=\"JAK_tab\" data-tab=\"warranty\">\n\t\t\t\t<span>${copy.warranty}</span>\n\t\t\t\t<svg\n\t\t\t\t\tclass=\"accordion-header-icon\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tdata-icon-name=\"chevronDown\"\n\t\t\t\t\tfocusable=\"false\"\n\t\t\t\t\theight=\"20px\"\n\t\t\t\t\tviewBox=\"0 0 20 20\"\n\t\t\t\t\twidth=\"20px\"\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\tclip-rule=\"evenodd\"\n\t\t\t\t\t\td=\"M10 13.7071L16.7071 7L15.2929 5.58578L10 10.8787L4.70711 5.58578L3.29289 7L10 13.7071Z\"\n\t\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\t\tfill-rule=\"evenodd\"\n\t\t\t\t\t></path>\n\t\t\t\t</svg>\n\t\t\t</button>\n\n\t\t\t<button class=\"JAK_tab\" data-tab=\"passport\">\n\t\t\t\t<span>${copy.passport}</span>\n\t\t\t\t<svg\n\t\t\t\t\tclass=\"accordion-header-icon\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tdata-icon-name=\"chevronDown\"\n\t\t\t\t\tfocusable=\"false\"\n\t\t\t\t\theight=\"20px\"\n\t\t\t\t\tviewBox=\"0 0 20 20\"\n\t\t\t\t\twidth=\"20px\"\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\tclip-rule=\"evenodd\"\n\t\t\t\t\t\td=\"M10 13.7071L16.7071 7L15.2929 5.58578L10 10.8787L4.70711 5.58578L3.29289 7L10 13.7071Z\"\n\t\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\t\tfill-rule=\"evenodd\"\n\t\t\t\t\t></path>\n\t\t\t\t</svg>\n\t\t\t</button>\n\t\t`;\n\n\t\tproductDetailSection.insertAdjacentElement(\n\t\t\t'afterend',\n\t\t\tkeyFeaturesWrapper\n\t\t);\n\n\t\t// keyFeaturesWrapper.insertAdjacentElement(\n\t\t// \t'afterend',\n\t\t// \ttabContainer\n\t\t// );\n\n\t\ttechnicalDataWrapper.before(tabContainer);\n\n\t\ttabContainer.appendChild(tabSection);\n\t\ttabContainer.appendChild(technicalDataWrapper);\n\t\ttabContainer.appendChild(storyWrapper);\n\t\ttabContainer.appendChild(warrantyWrapper);\n\t\ttabContainer.appendChild(digitalPassportWrapper);\n\n\t\tconst tabs = tabSection.querySelectorAll(\n\t\t\t'.JAK_tab:not([data-jak-listener])'\n\t\t);\n\n\t\tkeyFeaturesWrapper.classList.remove('JAK_newTab', 'JAK_active');\n\t\tkeyFeaturesWrapper.removeAttribute('data-tab');\n\n\t\tresetActiveTab();\n\n\t\ttabs.forEach((tab) => {\n\t\t\ttab.setAttribute('data-jak-listener', 'true');\n\n\t\t\ttab.addEventListener('click', () => {\n\t\t\t\tconst selectedTab = tab.dataset.tab;\n\t\t\t\tconst isMobile = window.innerWidth <= 768;\n\t\t\t\tconst isAlreadyActive = tab.classList.contains('JAK_active');\n\n\t\t\t\tconst allTabs = tabSection.querySelectorAll('.JAK_tab');\n\n\t\t\t\tconst currentSections =\n\t\t\t\t\ttabContainer.querySelectorAll('.JAK_newTab');\n\n\t\t\t\tallTabs.forEach((currentTab) => {\n\t\t\t\t\tcurrentTab.classList.remove('JAK_active');\n\t\t\t\t});\n\n\t\t\t\tcurrentSections.forEach((section) => {\n\t\t\t\t\tsection.classList.remove('JAK_active');\n\t\t\t\t});\n\n\t\t\t\tif (isMobile && isAlreadyActive) {\n\t\t\t\t\tpushExperimentEvent({\n\t\t\t\t\t\texp_element: 'mobileTabClick',\n\t\t\t\t\t\texp_content: 'tab closed - ' + selectedTab,\n\t\t\t\t\t});\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (isMobile) {\n\t\t\t\t\ttab.scrollIntoView({\n\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\tblock: 'start',\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\ttab.classList.add('JAK_active');\n\n\t\t\t\tconst selectedSection = tabContainer.querySelector(\n\t\t\t\t\t`.JAK_newTab[data-tab=\"${selectedTab}\"]`\n\t\t\t\t);\n\n\t\t\t\tselectedSection?.classList.add('JAK_active');\n\n\t\t\t\tif (isMobile) {\n\t\t\t\t\tpushExperimentEvent({\n\t\t\t\t\t\texp_element: 'mobileTabClick',\n\t\t\t\t\t\texp_content: 'tab clicked - ' + selectedTab,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tpushExperimentEvent({\n\t\t\t\t\t\texp_element: 'desktopTabClick',\n\t\t\t\t\t\texp_content: 'tab clicked - ' + selectedTab,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tfunction resetActiveTab() {\n\t\tconst tabContainer = document.querySelector('#JAK-new-section');\n\n\t\tif (!tabContainer) return;\n\n\t\tconst isDesktop = window.innerWidth > 768;\n\n\t\ttabContainer\n\t\t\t.querySelectorAll('.JAK_tab, .JAK_newTab')\n\t\t\t.forEach((element) => {\n\t\t\t\telement.classList.toggle(\n\t\t\t\t\t'JAK_active',\n\t\t\t\t\tisDesktop && element.dataset.tab === 'technical'\n\t\t\t\t);\n\t\t\t});\n\t}\n\n\tlet lastSku = null;\n\n\tfunction checkProductChange() {\n\t\tconst skuElement = document.querySelector(\n\t\t\t'[data-test-id=\"ProductDetailSku\"]'\n\t\t);\n\n\t\tif (!skuElement) return;\n\n\t\tconst currentSku = skuElement.textContent.trim();\n\n\t\tif (!lastSku) {\n\t\t\tlastSku = currentSku;\n\t\t\treturn;\n\t\t}\n\n\t\tif (currentSku === lastSku) return;\n\n\t\tlastSku = currentSku;\n\n\t\tresetActiveTab();\n\t}\n\n\tfunction fixDuplicates() {\n\t\tconst tabContainer = document.querySelector('#JAK-new-section');\n\n\t\tif (!tabContainer) return;\n\n\t\tconst selectors = [\n\t\t\t'[data-test-id=\"TechnicalDataSection\"]',\n\t\t\t'[data-test-id=\"ModelStorySection\"]',\n\t\t\t'[data-test-id=\"WarrantySection warranty\"]',\n\t\t\t'[data-test-id=\"CMSSection\"][data-testid=\"cardSection\"]',\n\t\t];\n\n\t\tselectors.forEach((selector) => {\n\t\t\tconst elements = [...document.querySelectorAll(selector)];\n\n\t\t\tif (elements.length < 2) return;\n\n\t\t\tconst inside = elements.find((element) =>\n\t\t\t\telement.closest('#JAK-new-section')\n\t\t\t);\n\n\t\t\tconst outside = elements.find(\n\t\t\t\t(element) => !element.closest('#JAK-new-section')\n\t\t\t);\n\n\t\t\tif (!inside || !outside) return;\n\n\t\t\tconst tab = inside.dataset.tab;\n\t\t\tconst isActive = inside.classList.contains('JAK_active');\n\n\t\t\toutside.classList.add('JAK_newTab');\n\t\t\toutside.dataset.tab = tab;\n\n\t\t\toutside.classList.toggle('JAK_active', isActive);\n\n\t\t\tinside.replaceWith(outside);\n\t\t});\n\t}\n\n\tfunction removeDuplicateTabs() {\n\t\tconst tabSections = [\n\t\t\t...document.querySelectorAll('#JAK-tab-section'),\n\t\t];\n\n\t\tif (tabSections.length <= 1) return;\n\n\t\tconst validTabSection = tabSections.find(\n\t\t\t(tabSection) =>\n\t\t\t\ttabSection.parentElement?.id === 'JAK-new-section'\n\t\t);\n\n\t\ttabSections.forEach((tabSection) => {\n\t\t\tif (tabSection !== validTabSection) {\n\t\t\t\ttabSection.remove();\n\t\t\t}\n\t\t});\n\t}\n\n\tinit();\n\n\tconst initialSku = document.querySelector(\n\t\t'[data-test-id=\"ProductDetailSku\"]'\n\t);\n\n\tlastSku = initialSku?.textContent.trim() || null;\n\n\tconst observer = new MutationObserver(() => {\n\t\tif (!document.querySelector('[data-test-id=\"ProductDetailSection\"]')) {\n\t\t\tdocument.querySelector('#JAK-new-section')?.remove();\n\t\t\tlastSku = null;\n\t\t\treturn;\n\t\t}\n\n\t\tcheckProductChange();\n\t\tremoveDuplicateTabs();\n\n\t\tconst jakSection = document.querySelector('#JAK-new-section');\n\n\t\tif (jakSection) {\n\t\t\tconst productDetails = document.querySelector(\n\t\t\t\t'section[data-test-id=\"ProductDetailSection\"]'\n\t\t\t);\n\t\t\tconst keyFeatures = document.querySelector(\n\t\t\t\t'[data-test-id=\"KeyFeaturesSection\"]'\n\t\t\t);\n\n\t\t\tif (productDetails && keyFeatures) {\n\t\t\t\tif (productDetails.nextElementSibling !== keyFeatures) {\n\t\t\t\t\tproductDetails.after(keyFeatures);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst duplicatedComponents = [\n\t\t\t\t'[data-test-id=\"TechnicalDataSection\"]',\n\t\t\t\t'[data-test-id=\"ModelStorySection\"]',\n\t\t\t\t'[data-test-id=\"WarrantySection warranty\"]',\n\t\t\t\t'[data-test-id=\"CMSSection\"][data-testid=\"cardSection\"]',\n\t\t\t].some(\n\t\t\t\t(selector) =>\n\t\t\t\t\tdocument.querySelectorAll(selector).length > 1\n\t\t\t);\n\n\t\t\tif (duplicatedComponents) {\n\t\t\t\tfixDuplicates();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tinit();\n\t});\n\n\tobserver.observe(document.body, {\n\t\tchildList: true,\n\t\tsubtree: true,\n\t});\n})();","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"type":"regex","pattern":"^https:\\/\\/www\\.breitling\\.com\\/(us|gb|ch|de|fr|jp)-[a-z]{2}\\/watches\\/.*\\/[A-Z0-9]{10,20}\\/(.?.*|$)"}],"weights":[0.5,0,0.5],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"},{"key":"2","name":"Variation 2"}],"seed":"8dff87f2-490d-451c-8fc4-a4b6c2fdd833","name":"#30ABC PDP","phase":"0","condition":{"url":{"$regex":"^https:\\/\\/www\\.breitling\\.com\\/(us|gb|ch|de|fr|jp)-[a-z]{2}\\/watches\\/.*\\/[A-Z0-9]{10,20}\\/(.?.*|$)"}},"coverage":1},{"key":"tactical-5-login-step-removal","changeId":"a6693a63c86d3c60e21ff5c111bd684f0ae9bc49f23e10c4e6452c4ffdc5ca75","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"[data-test-id=\"DeliveryLoginSectionCroTarget\"]{\n\tdisplay: block!important;\n}","js":"","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"type":"simple","pattern":"https://www.breitling.com/us-en/store/checkout/delivery/"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"b03b5b9d-5f00-4160-9532-77402dd06200","name":"Tactical #5 - \"login\" step removal","phase":"0","condition":{"$or":[{"getDomSelectors":{"$elemMatch":{"$eq":"[data-test-id=\"DeliveryLoginSectionCroTarget\"]"}},"url":"https://www.breitling.com/us-en/store/checkout/delivery/","previewMode":true},{"url":"https://www.breitling.com/us-en/","loggedIn":false,"previewMode":true}]},"coverage":1},{"key":"tactical-5-login-step-removal","changeId":"3e757fd3f21f38c983b3adc4b87f9029f57d1704cddb13ee04503fb241d3b62b","status":"draft","variations":[{"css":"","js":"","domMutations":[]},{"css":"","js":"(function () {\n\tconst bodyObserver = new MutationObserver(() => {\n\t\tif (\n\t\t\tdocument.querySelector(\n\t\t\t\t'[data-test-id=\"ShoppingBagCheckoutButton\"]:not([j-redirect])'\n\t\t\t)\n\t\t) {\n\t\t\tconst cta = document.querySelector(\n\t\t\t\t'[data-test-id=\"ShoppingBagCheckoutButton\"]:not([j-redirect])'\n\t\t\t);\n\t\t\tcta.setAttribute('j-redirect', '');\n\n\t\t\tcta.addEventListener('click', (e) => {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\twindow.location.href = `https://www.breitling.com/us-en/store/checkout/delivery/`;\n\t\t\t});\n\t\t}\n\t});\n\tbodyObserver.observe(document.body, { childList: true, subtree: true });\n})();\n","domMutations":[]}],"hashVersion":2,"hashAttribute":"id","fallbackAttribute":"","disableStickyBucketing":false,"bucketVersion":1,"minBucketVersion":0,"urlPatterns":[{"include":true,"type":"simple","pattern":"https://www.breitling.com/us-en/"}],"weights":[0,1],"meta":[{"key":"0","name":"Control"},{"key":"1","name":"Variation 1"}],"seed":"b03b5b9d-5f00-4160-9532-77402dd06200","name":"Tactical #5 - \"login\" step removal","phase":"0","condition":{"$or":[{"getDomSelectors":{"$elemMatch":{"$eq":"[data-test-id=\"DeliveryLoginSectionCroTarget\"]"}},"url":"https://www.breitling.com/us-en/store/checkout/delivery/","previewMode":true},{"url":"https://www.breitling.com/us-en/","loggedIn":false,"previewMode":true}]},"coverage":1}],"dateUpdated":"2026-10-22T14:56:49.290Z"}