CINXE.COM

Macron Sports Official Site | Worldwide Shipping

<!doctype html> <html lang="en"> <head > <meta charset="utf-8"/> <meta name="title" content="Macron Sports Official Site | Worldwide Shipping"/> <meta name="description" content="Macron is a leading European sportswear brand that offers sportswear online and through a large network of sporting goods stores around the world."/> <meta name="keywords" content="Magento, Varien, E-commerce"/> <meta name="robots" content="INDEX,FOLLOW"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>Macron Sports Official Site | Worldwide Shipping</title> <link rel="stylesheet" type="text/css" media="all" href="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/css/styles.css" /> <link rel="stylesheet" type="text/css" media="all" href="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Amasty_Base/vendor/slick/amslick.min.css" /> <link rel="stylesheet" type="text/css" media="all" href="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Amasty_Storelocator/vendor/chosen/chosen.min.css" /> <link rel="stylesheet" type="text/css" media="all" href="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Blackbird_MenuManager/css/menumanager_menu_front.css" /> <link rel="stylesheet" type="text/css" media="all" href="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Gallery/css/tsu-gallery.css" /> <link rel="canonical" href="https://www.macron.com/uk" /> <link rel="alternate" hreflang="en-GB" href="https://www.macron.com/uk" /> <link rel="alternate" hreflang="en-PL" href="https://www.macron.com/eu" /> <link rel="alternate" hreflang="it-IT" href="https://www.macron.com/it" /> <link rel="alternate" hreflang="es-ES" href="https://www.macron.com/es" /> <link rel="alternate" hreflang="de-DE" href="https://www.macron.com/de" /> <link rel="alternate" hreflang="en-NL" href="https://www.macron.com/en" /> <link rel="alternate" hreflang="fr-BE" href="https://www.macron.com/be" /> <link rel="alternate" hreflang="fr-FR" href="https://www.macron.com/fr" /> <link rel="alternate" hreflang="de-CH" href="https://www.macron.com/ch" /> <link rel="alternate" hreflang="x-default" href="https://www.macron.com/wo" /> <link rel="icon" type="image/x-icon" href="https://www.macron.com/media/favicon/websites/6/MacronHero_Favicon_32X32.png" /> <link rel="shortcut icon" type="image/x-icon" href="https://www.macron.com/media/favicon/websites/6/MacronHero_Favicon_32X32.png" /> <meta name="google-site-verification" content="UX5KTpNN3j5Z4lC4ns-_xgQjXTSNF01JtKEXVOGtleI" /> <script type="text&#x2F;javascript" src="https&#x3A;&#x2F;&#x2F;chimpstatic.com&#x2F;mcjs-connected&#x2F;js&#x2F;users&#x2F;cab5b70fe79fa90c1e017419d&#x2F;bce7c84cd2003796c6f8bd2a4.js" defer="defer"> </script><script> var BASE_URL = 'https://www.macron.com/uk/'; var THEME_PATH = 'https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB'; var COOKIE_CONFIG = { "expires": null, "path": "\u002F", "domain": ".www.macron.com", "secure": true, "lifetime": "86400", "cookie_restriction_enabled": true }; var CURRENT_STORE_CODE = 'uk'; var CURRENT_WEBSITE_ID = '6'; window.hyva = window.hyva || {} window.cookie_consent_groups = window.cookie_consent_groups || {} window.cookie_consent_groups['necessary'] = true; window.cookie_consent_config = window.cookie_consent_config || {}; window.cookie_consent_config['necessary'] = [].concat( window.cookie_consent_config['necessary'] || [], [ 'user_allowed_save_cookie', 'form_key', 'mage-messages', 'private_content_version', 'mage-cache-sessid', 'last_visited_store', 'section_data_ids' ] ); </script> <script> 'use strict'; (function( hyva, undefined ) { function lifetimeToExpires(options, defaults) { const lifetime = options.lifetime || defaults.lifetime; if (lifetime) { const date = new Date; date.setTime(date.getTime() + lifetime * 1000); return date; } return null; } function generateRandomString() { const allowedCharacters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', length = 16; let formKey = '', charactersLength = allowedCharacters.length; for (let i = 0; i < length; i++) { formKey += allowedCharacters[Math.round(Math.random() * (charactersLength - 1))] } return formKey; } const sessionCookieMarker = {noLifetime: true} const cookieTempStorage = {}; const internalCookie = { get(name) { const v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)'); return v ? v[2] : null; }, set(name, value, days, skipSetDomain) { let expires, path, domain, secure, samesite; const defaultCookieConfig = { expires: null, path: '/', domain: null, secure: false, lifetime: null, samesite: 'lax' }; const cookieConfig = window.COOKIE_CONFIG || {}; expires = days && days !== sessionCookieMarker ? lifetimeToExpires({lifetime: 24 * 60 * 60 * days, expires: null}, defaultCookieConfig) : lifetimeToExpires(window.COOKIE_CONFIG, defaultCookieConfig) || defaultCookieConfig.expires; path = cookieConfig.path || defaultCookieConfig.path; domain = !skipSetDomain && (cookieConfig.domain || defaultCookieConfig.domain); secure = cookieConfig.secure || defaultCookieConfig.secure; samesite = cookieConfig.samesite || defaultCookieConfig.samesite; document.cookie = name + "=" + encodeURIComponent(value) + (expires && days !== sessionCookieMarker ? '; expires=' + expires.toGMTString() : '') + (path ? '; path=' + path : '') + (domain ? '; domain=' + domain : '') + (secure ? '; secure' : '') + (samesite ? '; samesite=' + samesite : 'lax'); }, isWebsiteAllowedToSaveCookie() { const allowedCookies = this.get('user_allowed_save_cookie'); if (allowedCookies) { const allowedWebsites = JSON.parse(unescape(allowedCookies)); return allowedWebsites[CURRENT_WEBSITE_ID] === 1; } return false; }, getGroupByCookieName(name) { const cookieConsentConfig = window.cookie_consent_config || {}; let group = null; for (let prop in cookieConsentConfig) { if (!cookieConsentConfig.hasOwnProperty(prop)) continue; if (cookieConsentConfig[prop].includes(name)) { group = prop; break; } } return group; }, isCookieAllowed(name) { const cookieGroup = this.getGroupByCookieName(name); return cookieGroup ? window.cookie_consent_groups[cookieGroup] : this.isWebsiteAllowedToSaveCookie(); }, saveTempStorageCookies() { for (const [name, data] of Object.entries(cookieTempStorage)) { if (this.isCookieAllowed(name)) { this.set(name, data['value'], data['days'], data['skipSetDomain']); delete cookieTempStorage[name]; } } } }; hyva.getCookie = (name) => { const cookieConfig = window.COOKIE_CONFIG || {}; if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { return cookieTempStorage[name] ? cookieTempStorage[name]['value'] : null; } return internalCookie.get(name); } hyva.setCookie = (name, value, days, skipSetDomain) => { const cookieConfig = window.COOKIE_CONFIG || {}; if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { cookieTempStorage[name] = {value, days, skipSetDomain}; return; } return internalCookie.set(name, value, days, skipSetDomain); } hyva.setSessionCookie = (name, value, skipSetDomain) => { return hyva.setCookie(name, value, sessionCookieMarker, skipSetDomain) } hyva.getBrowserStorage = () => { const browserStorage = window.localStorage || window.sessionStorage; if (!browserStorage) { console.warn('Browser Storage is unavailable'); return false; } try { browserStorage.setItem('storage_test', '1'); browserStorage.removeItem('storage_test'); } catch (error) { console.warn('Browser Storage is not accessible', error); return false; } return browserStorage; } hyva.postForm = (postParams) => { const form = document.createElement("form"); let data = postParams.data; if (! postParams.skipUenc && ! data.uenc) { data.uenc = btoa(window.location.href); } form.method = "POST"; form.action = postParams.action; Object.keys(postParams.data).map(key => { const field = document.createElement("input"); field.type = 'hidden' field.value = postParams.data[key]; field.name = key; form.appendChild(field); }); const form_key = document.createElement("input"); form_key.type = 'hidden'; form_key.value = hyva.getFormKey(); form_key.name="form_key"; form.appendChild(form_key); document.body.appendChild(form); form.submit(); } hyva.getFormKey = function () { let formKey = hyva.getCookie('form_key'); if (!formKey) { formKey = generateRandomString(); hyva.setCookie('form_key', formKey); } return formKey; } hyva.formatPrice = (value, showSign, options = {}) => { const formatter = new Intl.NumberFormat( 'en\u002DGB', Object.assign({ style: 'currency', currency: 'GBP', signDisplay: showSign ? 'always' : 'auto' }, options) ); return (typeof Intl.NumberFormat.prototype.formatToParts === 'function') ? formatter.formatToParts(value).map(({type, value}) => { switch (type) { case 'currency': return '\u00A3' || value; case 'minusSign': return '- '; case 'plusSign': return '+ '; default : return value; } }).reduce((string, part) => string + part) : formatter.format(value); } const formatStr = function (str, nStart) { const args = Array.from(arguments).slice(2); return str.replace(/(%+)([0-9]+)/g, (m, p, n) => { const idx = parseInt(n) - nStart; if (args[idx] === null || args[idx] === void 0) { return m; } return p.length % 2 ? p.slice(0, -1).replace('%%', '%') + args[idx] : p.replace('%%', '%') + n; }) } hyva.str = function (string) { const args = Array.from(arguments); args.splice(1, 0, 1); return formatStr.apply(undefined, args); } hyva.strf = function () { const args = Array.from(arguments); args.splice(1, 0, 0); return formatStr.apply(undefined, args); } /** * Take a html string as `content` parameter and * extract an element from the DOM to replace in * the current page under the same selector, * defined by `targetSelector` */ hyva.replaceDomElement = (targetSelector, content) => { // Parse the content and extract the DOM node using the `targetSelector` const parser = new DOMParser(); const doc = parser.parseFromString(content, 'text/html'); const contentNode = doc.querySelector(targetSelector); // Bail if content can't be found if (!contentNode) { return; } hyva.activateScripts(contentNode) // Replace the old DOM node with the new content document.querySelector(targetSelector).replaceWith(contentNode); // Reload customerSectionData and display cookie-messages if present window.dispatchEvent(new CustomEvent("reload-customer-section-data")); hyva.initMessages(); } hyva.activateScripts = (contentNode) => { // Extract all the script tags from the content. // Script tags won't execute when inserted into a dom-element directly, // therefore we need to inject them to the head of the document. const tmpScripts = contentNode.getElementsByTagName('script'); if (tmpScripts.length > 0) { // Push all script tags into an array // (to prevent dom manipulation while iterating over dom nodes) const scripts = []; for (let i = 0; i < tmpScripts.length; i++) { scripts.push(tmpScripts[i]); } // Iterate over all script tags and duplicate+inject each into the head for (let i = 0; i < scripts.length; i++) { let script = document.createElement('script'); script.innerHTML = scripts[i].innerHTML; document.head.appendChild(script); // Remove the original (non-executing) node from the content scripts[i].parentNode.removeChild(scripts[i]); } } return contentNode; } const replace = {['+']: '-', ['/']: '_', ['=']: ','}; hyva.getUenc = () => btoa(window.location.href).replace(/[+/=]/g, match => replace[match]); let currentTrap; const focusableElements = (rootElement) => { const selector = 'button, [href], input, select, textarea, details, [tabindex]:not([tabindex="-1"]'; return Array.from(rootElement.querySelectorAll(selector)) .filter(el => { return el.style.display !== 'none' && !el.disabled && el.tabIndex !== -1 && (el.offsetWidth || el.offsetHeight || el.getClientRects().length) }) } const focusTrap = (e) => { const isTabPressed = e.key === 'Tab' || e.keyCode === 9; if (!isTabPressed) return; const focusable = focusableElements(currentTrap) const firstFocusableElement = focusable[0] const lastFocusableElement = focusable[focusable.length - 1] e.shiftKey ? document.activeElement === firstFocusableElement && (lastFocusableElement.focus(), e.preventDefault()) : document.activeElement === lastFocusableElement && (firstFocusableElement.focus(), e.preventDefault()) }; hyva.releaseFocus = (rootElement) => { if (currentTrap && (!rootElement || rootElement === currentTrap)) { currentTrap.removeEventListener('keydown', focusTrap) currentTrap = null } } hyva.trapFocus = (rootElement) => { if (!rootElement) return; hyva.releaseFocus() currentTrap = rootElement rootElement.addEventListener('keydown', focusTrap) const firstElement = focusableElements(rootElement)[0] firstElement && firstElement.focus() } hyva.alpineInitialized = (fn) => window.addEventListener('alpine:initialized', fn, {once: true}) window.addEventListener('user-allowed-save-cookie', () => internalCookie.saveTempStorageCookies()) }( window.hyva = window.hyva || {} )); </script> <script> if (!window.IntersectionObserver) { window.IntersectionObserver = function (callback) { this.observe = el => el && callback(this.takeRecords()); this.takeRecords = () => [{isIntersecting: true, intersectionRatio: 1}]; this.disconnect = () => {}; this.unobserve = () => {}; } } </script> <meta property="og:type" content="website"/> <meta property="og:title" content="Macron&#x20;Sports&#x20;Official&#x20;Site&#x20;&#x7C;&#x20;Worldwide&#x20;Shipping"/> <meta property="og:description" content="Macron&#x20;is&#x20;a&#x20;leading&#x20;European&#x20;sportswear&#x20;brand&#x20;that&#x20;offers&#x20;sportswear&#x20;online&#x20;and&#x20;through&#x20;a&#x20;large&#x20;network&#x20;of&#x20;sporting&#x20;goods&#x20;stores&#x20;around&#x20;the&#x20;world."/> <meta property="og:url" content="https://www.macron.com/uk"/> <meta property="og:site_name" content="Macron"/> <meta property="og:image" content="https://www.macron.com/media/og_image/default/2024_11_14_1200x600_Thumbnail_Macron.jpg"/> <meta property="og:image:width" content="1200"/> <meta property="og:image:height" content="600"/> <script type="application/ld+json">{"@context":"http:\/\/schema.org","@type":"WebSite","url":"https:\/\/www.macron.com\/","name":"Macron","about":"Technical sportswear for men, women and children. Garments for Running, Football, Rugby, Basketball, Volleyball and plenty more. Discover the Macron World!"}</script><script type="application/ld+json">{"@context":"http:\/\/schema.org","@type":"Organization","@id":"https:\/\/www.macron.com\/","name":"Macron Technical Sportswear","description":"Technical sportswear for men, women and children. Garments for Running, Football, Rugby, Basketball, Volleyball and plenty more. Discover the Macron world!","telephone":"+39 051 672 00 77","email":"info@macron.com","faxNumber":"+39 051 672 02 46","address":{"@type":"PostalAddress","addressCountry":"","addressLocality":"Valsamoggia \u2013 Loc. Crespellano","addressRegion":"Emilia-Romagna","streetAddress":"Via Giulio Pastore, 57","postalCode":"40053"},"sameAs":[["https:\/\/www.instagram.com\/macron\/","https:\/\/www.facebook.com\/macronsports\/","https:\/\/twitter.com\/MacronSports\/","https:\/\/www.youtube.com\/channel\/UCBJ6V4bLKin-ryf20ZOa6dA"]],"image":"https:\/\/www.macron.com\/media\/seller_image\/default\/macron-hero.png","priceRange":"\u20ac\u20ac","url":"https:\/\/www.macron.com\/"}</script><script type="application/ld+json">{"@context":"http:\/\/schema.org\/","@type":"WebPage","speakable":{"@type":"SpeakableSpecification","cssSelector":[".cms-content"],"xpath":["\/html\/head\/title"]}}</script> <script> window.addEventListener('init-external-scripts', () => { if (window._amPurifyLoaded) { return; } // Load Purify script asynchronously const script = document.createElement('script'); script.src = 'https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Amasty_XsearchHyvaCompatibility/js/purify.min.js'; script.async = true; document.body.appendChild(script); window._amPurifyLoaded = true; script.onload = () => { // Dispatch custom event when Swiper is loaded window.dispatchEvent(new CustomEvent('amPurifyLoaded', {})); } }, { once: true, passive: true }); </script> </head> <body class="pl-thm-hyva pl-thm-hyva-macron store-uk website-uk lang-en lang-en-gb prgdpr-hyva prgdpr-hyva-macron cms-home-page page-layout-1column cms-index-index page-layout-cms-full-width" id="html-body" x-data="initBodyCustomScript()"> <script> var prCookieService = { defaultAttributes: {path: '/'}, converter: { write: function (value) { return encodeURIComponent(value); }, read: function (value) { return decodeURIComponent(value) } }, decode: function(string) { return string.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent); }, set: function (key, value, attributes) { if (typeof document === 'undefined') { return; } attributes = Object.assign(this.defaultAttributes, attributes); if (typeof attributes.expires === 'number') { attributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5); } attributes.expires = attributes.expires ? attributes.expires.toUTCString() : ''; try { var result = JSON.stringify(value); if (/^[\{\[]/.test(result)) { value = result; } } catch (e) {} value = this.converter.write(value); key = this.converter.write(String(key)) .replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent) .replace(/[\(\)]/g, escape); var stringifiedAttributes = ''; for (var attributeName in attributes) { if (!attributes[attributeName]) { continue; } stringifiedAttributes += '; ' + attributeName; if (attributes[attributeName] === true) { continue; } // Considers RFC 6265 section 5.2: // ... // 3. If the remaining unparsed-attributes contains a %x3B (";") // character: // Consume the characters of the unparsed-attributes up to, // not including, the first %x3B (";") character. // ... stringifiedAttributes += '=' + attributes[attributeName].split(';')[0]; } return (document.cookie = key + '=' + value + stringifiedAttributes); }, remove: function (key, attributes) { this.set(key, '', {...attributes, ...{ expires: -1 }}); }, get: function (key, json = false) { if (typeof document === 'undefined') { return; } var jar = {}; var cookies = document.cookie ? document.cookie.split('; ') : []; var i = 0; for (; i < cookies.length; i++) { var parts = cookies[i].split('='); var cookie = parts.slice(1).join('='); if (!json && cookie.charAt(0) === '"') { cookie = cookie.slice(1, -1); } try { var name = this.converter.write(parts[0]); cookie = this.converter.read(cookie); if (json) { try { cookie = JSON.parse(cookie); } catch (e) {} } jar[name] = cookie; if (key === name) { break; } } catch (e) {} } return key ? jar[key] : jar; } } if (typeof define === 'function') { define('prCookieService', function () {return prCookieService}); } </script> <script> var prCookieConsentApi = { CUSTOMER_CONSENT: 'pr-cookie-consent', SYSTEM_COOKIES: [ 'PHPSESSID', this.CUSTOMER_CONSENT, 'user_allowed_save_cookie', ], config: {}, whitelist: {}, isConfigured: false, /** * Contains callbacks that run after all configuration come * * @type {function[]} */ configuredCallbacks: [], initCookieBlocking: function () { var cookieDesc = Object.getOwnPropertyDescriptor(Document.prototype, 'cookie') || Object.getOwnPropertyDescriptor(HTMLDocument.prototype, 'cookie'); if (cookieDesc && cookieDesc.configurable) { var api = this; Object.defineProperty(document, 'cookie', { get: function () { return cookieDesc.get.call(document); }, set: function (cookie) { let cookieName = cookie.substring(0, cookie.indexOf('=')).trim(); if (! api.isAllowed(cookieName)) { api.logger.warn('CookieConsent: blocked cookie "' + cookieName + '"'); return; } cookieDesc.set.call(document, cookie); } }); } }, getCookieValue: function (name) { var values = document.cookie.match('(^|;)\\s*' + name + '\\s*=\\s*([^;]+)'); return values ? decodeURIComponent(values.pop()) : ''; }, configure: function (configJson) { this.logger.init(); this.userScript.init(); try { this.config = JSON.parse(configJson); if (this.config.canManageCookie === null) { console.error('CookieConsent: restriction config is invalid'); } this.isConfigured = true; this.configuredCallbacks.forEach(function (callback) { callback(); }.bind(this)); this.clearRejectedCookie(); } catch (e) { console.error('CookieConsent: error has happened during parse JSON'); return false; } }, /** * @param {function} callback * @returns {prCookieConsentApi} */ addConfiguredCallback: function (callback) { this.configuredCallbacks.push(callback); return this; }, isAllowedCategory: function (categoryKey) { if (! this.config.canManageCookie) { return true; } if (this.isEssentialCategory(categoryKey)) { return true; } if (this.isOptIn()) { if (this.isAllCategoriesAllowed()) { return true; } return this.consent.get().includes(categoryKey); } return this.config.canUseCookieBeforeOptIn; }, getDomain: function (cookieName) { return this.config.cookies[cookieName] ? this.config.cookies[cookieName].domain : null; }, isAllowed: function (cookieName) { if (this.isSystemCookie(cookieName)) { return true; } if (! this.config.canManageCookie) { return true; } if (this.whitelist[cookieName]) { return true; } cookieName = this.getTrueCookieName(cookieName); if (! this.isOptIn()) { if (this.config.canUseCookieBeforeOptIn) { return true; } if (this.isKnownCookie(cookieName)) { return this.isInEssentialCategory(cookieName); } return false; } if (! this.isKnownCookie(cookieName)) { return ! this.config.canBlockUnknownCookie; } return this.isInAllowedCategory(cookieName); }, isAllCategoriesAllowed: function () { if (null === this.cache.get('allowAllCategories')) { var customerConsent = this.consent.get(); if (customerConsent && customerConsent.includes('all') ) { this.cache.set('allowAllCategories', true); } else { var allowedWebsites = this.websiteRestriction.getAllowed(); this.cache.set('allowAllCategories', allowedWebsites[this.config.mage.website] === 1); } } return this.cache.get('allowAllCategories'); }, isEssentialCategory: function (categoryKey) { return this.config.essentialCategoryKeys.includes(categoryKey); }, isInEssentialCategory: function (cookieName) { return this.isEssentialCategory(this.getCookieCategory(cookieName)); }, isInAllowedCategory: function (cookieName) { return this.isAllowedCategory(this.getCookieCategory(cookieName)); }, getCookieCategory: function (cookieName) { return this.config.cookieToCategoryMapping[cookieName]; }, isOptIn: function () { var allowedWithDefaultCookie = this.websiteRestriction.getAllowed()[this.config.mage.website] === 1; return Boolean(this.consent.get()) || allowedWithDefaultCookie; }, isSystemCookie: function (cookieName) { return this.SYSTEM_COOKIES.includes(cookieName); }, isKnownCookie: function (cookieName) { return this.config.cookieToCategoryMapping.hasOwnProperty(cookieName); }, getTrueCookieName: function (cookieName) { var keys = Object.keys(this.config.dynamicNamesPatterns), key; for (var i = 0, length = keys.length; i < length; i++) { key = keys[i]; if (new RegExp(this.config.dynamicNamesPatterns[key]).test(cookieName)) { return key; } } return cookieName; }, clearRejectedCookie: function () { let cookies = prCookieService.get(); Object.keys(cookies).forEach(function(cookieName) { if (this.isAllowed(cookieName)) { return; } var encodedCookieName = cookieName = encodeURIComponent(String(cookieName)) .replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent) .replace(/[\(\)]/g, escape); this.whitelist[encodedCookieName] = true; if (this.getDomain(cookieName)) { prCookieService.remove(cookieName, {domain: this.getDomain(cookieName)}); } else { prCookieService.remove(cookieName); if (this.config.cookie.parentDomain) { prCookieService.remove(cookieName, {domain: this.config.cookie.parentDomain}); } } this.logger.warn('CookieConsent: remove cookie "' + cookieName + '"'); if (typeof prCookieService.get(cookieName) !== 'undefined') { this.logger.error('CookieConsent: fail to remove cookie "' + cookieName + '"'); } this.whitelist[encodedCookieName] = false; }.bind(this)); } }; prCookieConsentApi.userScript = { /** * List of callbacks and categories they depend on. */ pendingScripts: [], /** * Run script after model is configured or after user provided consent. */ init: function () { prCookieConsentApi.addConfiguredCallback(this.executePendingScripts.bind(this)); prCookieConsentApi.consent.addCallback(this.executePendingScripts.bind(this)); }, /** * Run or delay script. * * @param {function} callback * @param {string} categoryKey */ execute: function (callback, categoryKey) { if (prCookieConsentApi.isConfigured && prCookieConsentApi.isAllowedCategory(categoryKey)) { callback(); return; } this.pendingScripts.push({callback: callback, categoryKey: categoryKey, executed: false}); }, /** * Run pending scripts. */ executePendingScripts: function () { this.pendingScripts.forEach(function (script) { if (false === script.executed && prCookieConsentApi.isAllowedCategory(script.categoryKey)) { script.callback(); script.executed = true; } }.bind(this)); }, }; prCookieConsentApi.websiteRestriction = { getAllowed: function () { var allowedWebsites = prCookieConsentApi.getCookieValue(prCookieConsentApi.config.mage.cookieName); return allowedWebsites ? JSON.parse(allowedWebsites) : {}; }, allowCurrent: function () { return this.set(prCookieConsentApi.config.mage.website, true); }, disallowCurrent: function () { return this.set(prCookieConsentApi.config.mage.website, false); }, /** * @param {number} website * @param {boolean} flag * @return {CookieRestriction.websiteRestriction} */ set: function (website, flag) { var allowedWebsites = this.getAllowed(); if (flag) { allowedWebsites[website] = 1; } else { delete allowedWebsites[website]; } prCookieService.set(prCookieConsentApi.config.mage.cookieName, allowedWebsites, { path: prCookieConsentApi.config.cookie.path, expires: prCookieConsentApi.config.mage.lifetime ? Math.ceil(prCookieConsentApi.config.mage.lifetime / 86400) : 0 }); return this; } }; prCookieConsentApi.cache = { cacheData: {allowAllCategories: null}, get: function (key) { return this.cacheData[key]; }, set: function (key, value) { this.cacheData[key] = value; }, reset: function () { this.cacheData = {allowAllCategories: null}; } }; prCookieConsentApi.logger = { level: 0, /* disabled */ init: function () { if (window.location.hash === '#pr-enable-cookie-log') { this.level = 1; /* only warnings and errors */ } if (window.location.hash === '#pr-enable-cookie-log-all') { this.level = 2; /* all logs */ } }, log: function () { this.level > 1 && console.log.apply(console, arguments); }, warn: function () { this.level > 0 && console.warn.apply(console, arguments); }, error: function () { this.level > 0 && console.error.apply(console, arguments); } }; prCookieConsentApi.consent = { /** * Contains callbacks that run after user consent. * * @type {function[]} */ callbacks: [], allowAllCategories: function () { prCookieConsentApi.cache.reset(); prCookieConsentApi.consent.set(['all']); return this; }, declineAll: function () { prCookieConsentApi.cache.reset(); prCookieConsentApi.consent.set([]); return this; }, set: function (allowedCategories) { prCookieService.set(prCookieConsentApi.CUSTOMER_CONSENT, JSON.stringify(allowedCategories), { expires: prCookieConsentApi.config.consent.expiry, path: prCookieConsentApi.config.cookie.path, domain: prCookieConsentApi.config.cookie.domain }); if (allowedCategories.includes('all')) { prCookieConsentApi.websiteRestriction.allowCurrent(); } else { prCookieConsentApi.websiteRestriction.disallowCurrent(); } prCookieConsentApi.cache.reset(); var isAccepting = allowedCategories.length; this.callbacks.forEach(function (callback) { callback(allowedCategories) }); fetch(prCookieConsentApi.config.consent.logUrl, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest' }, body: JSON.stringify({acceptedKeys: allowedCategories}) }) .then(this.pageReloadAfterAction.bind(this, isAccepting)); }, /** * Reload page by configuration and action * * @param isAccepting */ pageReloadAfterAction: function (isAccepting) { if (isAccepting && prCookieConsentApi.config.consent.reloadAfterAccept) { window.location.reload(); } if (! isAccepting && prCookieConsentApi.config.consent.reloadAfterDecline) { window.location.reload(); } }, get: function () { var consent = prCookieConsentApi.getCookieValue(prCookieConsentApi.CUSTOMER_CONSENT); return consent ? JSON.parse(consent) : false; }, addCallback: function (callback) { this.callbacks.push(callback); return this; }, }; prCookieConsentApi.configure('\u007B\u0022canManageCookie\u0022\u003Atrue,\u0022canUseCookieBeforeOptIn\u0022\u003Afalse,\u0022canBlockUnknownCookie\u0022\u003Afalse,\u0022consent\u0022\u003A\u007B\u0022isLoggedIn\u0022\u003Afalse,\u0022logUrl\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwww.macron.com\u005C\u002Fuk\u005C\u002Fpr\u002Dcookie\u002Dconsent\u005C\u002Fconsent_guest\u005C\u002Fupdate\u005C\u002F\u0022,\u0022reloadAfterAccept\u0022\u003Atrue,\u0022reloadAfterDecline\u0022\u003Afalse,\u0022expiry\u0022\u003A365\u007D,\u0022cookie\u0022\u003A\u007B\u0022path\u0022\u003A\u0022\u005C\u002F\u0022,\u0022domain\u0022\u003A\u0022www.macron.com\u0022,\u0022parentDomain\u0022\u003A\u0022.macron.com\u0022\u007D,\u0022cookies\u0022\u003A\u007B\u0022pr\u002Dcookie\u002Dconsent\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022form_key\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022X\u002DMagento\u002DVary\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022private_content_version\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022recently_viewed_product\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022recently_viewed_product_previous\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dtranslation\u002Dstorage\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dtranslation\u002Dfile\u002Dversion\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022product_data_storage\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022recently_compared_product\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022recently_compared_product_previous\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dcache\u002Dstorage\u002Dsection\u002Dinvalidation\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022persistent_shopping_cart\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022add_to_cart\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dbanners\u002Dcache\u002Dstorage\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022remove_from_cart\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022pr\u002Dcookie\u002Dnotice\u002Dstatus\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022user_allowed_save_cookie\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022guest\u002Dview\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022login_redirect\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dmessages\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022section_data_ids\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022store\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022amz_auth_err\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022amz_auth_logout\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dcache\u002Dsessid\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dcache\u002Dstorage\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022stf\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022_delighted_web\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.clerk.io\u0022\u007D,\u0022_hjTLDTest\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.clerk.io\u0022\u007D,\u0022__hssrc\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.clerk.io\u0022\u007D,\u0022_ga\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.clerk.io\u0022\u007D,\u0022_hjid\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.clerk.io\u0022\u007D,\u0022clerk\u002Dauthentication\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.clerk.io\u0022\u007D,\u0022intercom\u002Dsession\u002Dqgotccxx\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.clerk.io\u0022\u007D,\u0022hubspotutk\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.clerk.io\u0022\u007D,\u0022__hstc\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.clerk.io\u0022\u007D,\u0022intercom\u002Did\u002Dqgotccxx\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.clerk.io\u0022\u007D,\u0022_fbp\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.clerk.io\u0022\u007D,\u0022OptanonAlertBoxClosed\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.criteo.com\u0022\u007D,\u0022ABTasty\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.criteo.com\u0022\u007D,\u0022ajs_user_id\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.criteo.com\u0022\u007D,\u0022intercom\u002Dsession\u002Dbx9cew01\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.criteo.com\u0022\u007D,\u0022uid\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.criteo.com\u0022\u007D,\u0022OptanonConsent\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.criteo.com\u0022\u007D,\u0022ajs_anonymous_id\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.criteo.com\u0022\u007D,\u0022amplitude_id_b37a423901694056906133c8c13c895dcriteo.com\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.criteo.com\u0022\u007D,\u0022openam\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.criteo.com\u0022\u007D,\u0022ajs_group_id\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.criteo.com\u0022\u007D,\u0022amplitude_idundefinedcriteo.com\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.criteo.com\u0022\u007D,\u0022RUL\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.doubleclick.net\u0022\u007D,\u0022IDE\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.doubleclick.net\u0022\u007D,\u0022DSID\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.doubleclick.net\u0022\u007D,\u0022fr\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.facebook.com\u0022\u007D,\u0022xs\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.facebook.com\u0022\u007D,\u0022presence\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.facebook.com\u0022\u007D,\u0022c_user\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.facebook.com\u0022\u007D,\u0022locale\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.facebook.com\u0022\u007D,\u0022m_pixel_ratio\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.facebook.com\u0022\u007D,\u0022sb\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.facebook.com\u0022\u007D,\u0022dpr\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.facebook.com\u0022\u007D,\u0022wd\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.facebook.com\u0022\u007D,\u0022datr\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.facebook.com\u0022\u007D,\u0022spin\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.facebook.com\u0022\u007D,\u0022ANID\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.google.com\u0022\u007D,\u0022__Secure\u002D3PSIDCC\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.google.com\u0022\u007D,\u0022__Secure\u002D3PSID\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.google.com\u0022\u007D,\u0022CONSENT\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.google.com\u0022\u007D,\u0022AID\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.google.com\u0022\u007D,\u0022__Secure\u002D3PAPISID\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.google.com\u0022\u007D,\u0022SID\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.google.com\u0022\u007D,\u0022SIDCC\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.google.com\u0022\u007D,\u0022APISID\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.google.com\u0022\u007D,\u0022NID\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.google.com\u0022\u007D,\u00221P_JAR\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.google.com\u0022\u007D,\u0022SAPISID\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.google.com\u0022\u007D,\u0022SSID\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.google.com\u0022\u007D,\u0022SEARCH_SAMESITE\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.google.com\u0022\u007D,\u0022HSID\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.google.com\u0022\u007D,\u0022OGPC\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.google.com\u0022\u007D,\u0022OGP\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022.google.com\u0022\u007D,\u0022OTZ\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022www.google.com\u0022\u007D,\u0022UULE\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022www.google.com\u0022\u007D,\u0022_gid\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022_gat\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022_dc_gtm_\u002A\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022original_referrer\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022pr\u002Dcookie\u002Dconsent\u002Did\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022last_visited_store\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D\u007D,\u0022mage\u0022\u003A\u007B\u0022website\u0022\u003A6,\u0022cookieName\u0022\u003A\u0022user_allowed_save_cookie\u0022,\u0022lifetime\u0022\u003A31536000,\u0022allWebsitesIds\u0022\u003A\u007B\u00226\u0022\u003A\u00226\u0022,\u00221\u0022\u003A\u00221\u0022,\u00222\u0022\u003A\u00222\u0022,\u00223\u0022\u003A\u00223\u0022,\u00224\u0022\u003A\u00224\u0022,\u00225\u0022\u003A\u00225\u0022,\u00227\u0022\u003A\u00227\u0022,\u00228\u0022\u003A\u00228\u0022\u007D\u007D,\u0022cookieToCategoryMapping\u0022\u003A\u007B\u0022pr\u002Dcookie\u002Dconsent\u0022\u003A\u0022necessary\u0022,\u0022form_key\u0022\u003A\u0022necessary\u0022,\u0022X\u002DMagento\u002DVary\u0022\u003A\u0022necessary\u0022,\u0022private_content_version\u0022\u003A\u0022necessary\u0022,\u0022recently_viewed_product\u0022\u003A\u0022marketing\u0022,\u0022recently_viewed_product_previous\u0022\u003A\u0022marketing\u0022,\u0022mage\u002Dtranslation\u002Dstorage\u0022\u003A\u0022necessary\u0022,\u0022mage\u002Dtranslation\u002Dfile\u002Dversion\u0022\u003A\u0022necessary\u0022,\u0022product_data_storage\u0022\u003A\u0022necessary\u0022,\u0022recently_compared_product\u0022\u003A\u0022marketing\u0022,\u0022recently_compared_product_previous\u0022\u003A\u0022marketing\u0022,\u0022mage\u002Dcache\u002Dstorage\u002Dsection\u002Dinvalidation\u0022\u003A\u0022necessary\u0022,\u0022persistent_shopping_cart\u0022\u003A\u0022necessary\u0022,\u0022add_to_cart\u0022\u003A\u0022statistics\u0022,\u0022mage\u002Dbanners\u002Dcache\u002Dstorage\u0022\u003A\u0022necessary\u0022,\u0022remove_from_cart\u0022\u003A\u0022statistics\u0022,\u0022pr\u002Dcookie\u002Dnotice\u002Dstatus\u0022\u003A\u0022necessary\u0022,\u0022user_allowed_save_cookie\u0022\u003A\u0022necessary\u0022,\u0022guest\u002Dview\u0022\u003A\u0022necessary\u0022,\u0022login_redirect\u0022\u003A\u0022necessary\u0022,\u0022mage\u002Dmessages\u0022\u003A\u0022necessary\u0022,\u0022section_data_ids\u0022\u003A\u0022necessary\u0022,\u0022store\u0022\u003A\u0022necessary\u0022,\u0022amz_auth_err\u0022\u003A\u0022necessary\u0022,\u0022amz_auth_logout\u0022\u003A\u0022necessary\u0022,\u0022mage\u002Dcache\u002Dsessid\u0022\u003A\u0022necessary\u0022,\u0022mage\u002Dcache\u002Dstorage\u0022\u003A\u0022necessary\u0022,\u0022stf\u0022\u003A\u0022necessary\u0022,\u0022_delighted_web\u0022\u003A\u0022marketing\u0022,\u0022_hjTLDTest\u0022\u003A\u0022marketing\u0022,\u0022__hssrc\u0022\u003A\u0022marketing\u0022,\u0022_ga\u0022\u003A\u0022marketing\u0022,\u0022_hjid\u0022\u003A\u0022marketing\u0022,\u0022clerk\u002Dauthentication\u0022\u003A\u0022marketing\u0022,\u0022intercom\u002Dsession\u002Dqgotccxx\u0022\u003A\u0022marketing\u0022,\u0022hubspotutk\u0022\u003A\u0022marketing\u0022,\u0022__hstc\u0022\u003A\u0022marketing\u0022,\u0022intercom\u002Did\u002Dqgotccxx\u0022\u003A\u0022marketing\u0022,\u0022_fbp\u0022\u003A\u0022marketing\u0022,\u0022OptanonAlertBoxClosed\u0022\u003A\u0022marketing\u0022,\u0022ABTasty\u0022\u003A\u0022marketing\u0022,\u0022ajs_user_id\u0022\u003A\u0022marketing\u0022,\u0022intercom\u002Dsession\u002Dbx9cew01\u0022\u003A\u0022marketing\u0022,\u0022uid\u0022\u003A\u0022marketing\u0022,\u0022OptanonConsent\u0022\u003A\u0022marketing\u0022,\u0022ajs_anonymous_id\u0022\u003A\u0022marketing\u0022,\u0022amplitude_id_b37a423901694056906133c8c13c895dcriteo.com\u0022\u003A\u0022marketing\u0022,\u0022openam\u0022\u003A\u0022marketing\u0022,\u0022ajs_group_id\u0022\u003A\u0022marketing\u0022,\u0022amplitude_idundefinedcriteo.com\u0022\u003A\u0022marketing\u0022,\u0022RUL\u0022\u003A\u0022marketing\u0022,\u0022IDE\u0022\u003A\u0022marketing\u0022,\u0022DSID\u0022\u003A\u0022marketing\u0022,\u0022fr\u0022\u003A\u0022marketing\u0022,\u0022xs\u0022\u003A\u0022marketing\u0022,\u0022presence\u0022\u003A\u0022marketing\u0022,\u0022c_user\u0022\u003A\u0022marketing\u0022,\u0022locale\u0022\u003A\u0022marketing\u0022,\u0022m_pixel_ratio\u0022\u003A\u0022marketing\u0022,\u0022sb\u0022\u003A\u0022marketing\u0022,\u0022dpr\u0022\u003A\u0022marketing\u0022,\u0022wd\u0022\u003A\u0022marketing\u0022,\u0022datr\u0022\u003A\u0022marketing\u0022,\u0022spin\u0022\u003A\u0022marketing\u0022,\u0022ANID\u0022\u003A\u0022marketing\u0022,\u0022__Secure\u002D3PSIDCC\u0022\u003A\u0022marketing\u0022,\u0022__Secure\u002D3PSID\u0022\u003A\u0022marketing\u0022,\u0022CONSENT\u0022\u003A\u0022marketing\u0022,\u0022AID\u0022\u003A\u0022marketing\u0022,\u0022__Secure\u002D3PAPISID\u0022\u003A\u0022marketing\u0022,\u0022SID\u0022\u003A\u0022marketing\u0022,\u0022SIDCC\u0022\u003A\u0022marketing\u0022,\u0022APISID\u0022\u003A\u0022marketing\u0022,\u0022NID\u0022\u003A\u0022marketing\u0022,\u00221P_JAR\u0022\u003A\u0022marketing\u0022,\u0022SAPISID\u0022\u003A\u0022marketing\u0022,\u0022SSID\u0022\u003A\u0022marketing\u0022,\u0022SEARCH_SAMESITE\u0022\u003A\u0022marketing\u0022,\u0022HSID\u0022\u003A\u0022marketing\u0022,\u0022OGPC\u0022\u003A\u0022marketing\u0022,\u0022OGP\u0022\u003A\u0022marketing\u0022,\u0022OTZ\u0022\u003A\u0022marketing\u0022,\u0022UULE\u0022\u003A\u0022marketing\u0022,\u0022_gid\u0022\u003A\u0022statistics\u0022,\u0022_gat\u0022\u003A\u0022statistics\u0022,\u0022_dc_gtm_\u002A\u0022\u003A\u0022statistics\u0022,\u0022original_referrer\u0022\u003A\u0022necessary\u0022,\u0022pr\u002Dcookie\u002Dconsent\u002Did\u0022\u003A\u0022necessary\u0022,\u0022last_visited_store\u0022\u003A\u0022necessary\u0022\u007D,\u0022essentialCategoryKeys\u0022\u003A\u005B\u0022necessary\u0022\u005D,\u0022dynamicNamesPatterns\u0022\u003A\u007B\u0022_dc_gtm_\u002A\u0022\u003A\u0022_dc_gtm_.\u002A\u0022\u007D\u007D'); prCookieConsentApi.initCookieBlocking(); if (typeof define === 'function') { define('prCookieConsentApi', function () { return prCookieConsentApi; }); } </script> <div class="pr-cookie-notice-wrap" x-cloak x-transition x-data="{'show': !prCookieConsentApi.isOptIn()}"> <div class="fixed inset-0 flex items-end md:items-center justify-center z-20 bg-primary bg-opacity-55" x-show="show" @foo.window="show = false"> <div class="pr-cookie-notice bg-secondary pt-[25px] md:pt-0 md:w-[600px] rounded-t-base md:rounded-none h-auto"> <div class="px-[15px] md:p-[45px] md:pb-[15px] md:text-center"> <p class="text-[16px] md:text-[26px] font-semibold uppercase">A tailored experience</p> </div> <div class="pr-cookie-notice-wrap flex flex-col items-center justify-center p-[15px] pb-7.5 md:p-[45px] md:pt-0"> <div class="pr-cookie-notice-text [&>p>a]:underline [&>p>a:hover]:no-underline text-[12px] lg:text-[14px] mb-[25px] lg:mb-[15px] md:text-center"> <p>This website requires cookies to provide all of its features. For more information on what data is contained in the cookies, please see our <a href="/uk/privacy-policy" target="_blank" rel="noopener">Cookie Policy</a> page. To accept cookies from this site, please click the Accept Cookies button below.</p> </div> <div class="w-full actions pr-cookie-notice-actions flex flex-col sm:flex-row md:flex-col items-center justify-center sm:pt-[15px] md:pt-7.5 md:px-16 gap-y-[15px] gap-x-2" > <button x-focus-first type="button" id="btn-cookie-allow" class="btn btn-primary w-full h-[46px] sm:h-[55px] md:h-[46px] lg:text-[18px] uppercase" x-on:click="window.prCookieConsentApi.consent.allowAllCategories; show=false;"> <span>Accept Cookies</span> </button> <button type="button" id="btn-cookie-decline" class="btn btn-secondary w-full h-[46px] sm:h-[55px] md:h-[46px] uppercase" x-on:click="window.prCookieConsentApi.consent.declineAll(); show=false;"> <span>Decline</span> </button> <button type="button" class="btn btn-tertiary w-full h-[46px] sm:h-[55px] md:h-[46px] underline-offset-4 lg:text-[16px] uppercase" x-on:click="window.prCookieSettingBar.show()"> <span>Customize Settings</span> </button> </div> </div> </div> </div> </div> <style> .pr-cookie-setting-bar-overlay, .pr-cookie-setting-bar-container { z-index: 999999999999999; } </style> <script> 'use strict'; var prCookieSettingBar = { getConfig: function () { return {"categories":[{"key":"necessary","is_essential":true,"is_pre_checked":false,"name":"Strictly necessary cookies","description":"These cookies are essential for you to browse our store and use its features, such as accessing secure areas of the website. Cookies that allow holding your cart items, cookies that keep you logged-in and cookies that save your customized preferences are an example of strictly necessary cookies. These cookies are essential to a website's functionality and cannot be disabled by users.","sort_order":0,"details":[{"name":"First party","is_third_party":false,"cookies":[{"name":"pr-cookie-consent","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":0,"durationLabel":"Session","description":"Keeps your cookie consent."},{"name":"form_key","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":3600,"durationLabel":"1 hour","description":"A security measure that appends a random string to all form submissions to protect the data from Cross-Site Request Forgery (CSRF)."},{"name":"X-Magento-Vary","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":3600,"durationLabel":"1 hour","description":"Configuration setting that improves performance when using Varnish static content caching."},{"name":"private_content_version","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":31536000,"durationLabel":"365 days","description":"Appends a random, unique number and time to pages with customer content to prevent them from being cached on the server."},{"name":"mage-translation-storage","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":86400,"durationLabel":"1 day","description":"Stores translated content when requested by the shopper. Used when Translation Strategy is configured as \"Dictionary (Translation on Storefront side)\"."},{"name":"mage-translation-file-version","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":86400,"durationLabel":"1 day","description":"Tracks the version of translations in local storage. Used when Translation Strategy is configured as Dictionary (Translation on Storefront side)."},{"name":"product_data_storage","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":86400,"durationLabel":"1 day","description":"Stores configuration for product data related to Recently Viewed \/ Compared Products."},{"name":"mage-cache-storage-section-invalidation","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":86400,"durationLabel":"1 day","description":"Forces local storage of specific content sections that should be invalidated."},{"name":"persistent_shopping_cart","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":31536000,"durationLabel":"365 days","description":"Stores the key (ID) of persistent cart to make it possible to restore the cart for an anonymous shopper."},{"name":"mage-banners-cache-storage","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":3600,"durationLabel":"1 hour","description":"Stores banner content locally to improve performance."},{"name":"pr-cookie-notice-status","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":0,"durationLabel":"Session","description":"Stores close status of cookie notice."},{"name":"user_allowed_save_cookie","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":31536000,"durationLabel":"365 days","description":"Stores built-in cookie consent per website."},{"name":"guest-view","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":0,"durationLabel":"Session","description":"Stores the Order ID that guest shoppers use to retrieve their order status. Guest orders view. Used in \u201cOrders and Returns\u201d widgets."},{"name":"login_redirect","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":0,"durationLabel":"Session","description":"Preserves the destination page the customer was loading before being directed to log in."},{"name":"mage-messages","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":31536000,"durationLabel":"365 days","description":"Tracks error messages and other notifications that are shown to the user, such as the cookie consent message, and various error messages. The message is deleted from the cookie after it is shown to the shopper."},{"name":"section_data_ids","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":0,"durationLabel":"Session","description":"Stores customer-specific information related to shopper-initiated actions such as display wish list, checkout information, etc."},{"name":"store","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":31536000,"durationLabel":"365 days","description":"Tracks the specific store view \/ locale selected by the shopper."},{"name":"amz_auth_err","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":31536000,"durationLabel":"365 days","description":"Used if Enable Login with Amazon is enabled. Value 1 indicates an authorization error."},{"name":"amz_auth_logout","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":86400,"durationLabel":"1 day","description":"Used if Enable Login with Amazon is enabled. Value 1 indicates that the user should be logged out."},{"name":"mage-cache-sessid","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":0,"durationLabel":"Session","description":"The value of this cookie triggers the cleanup of local cache storage. When the cookie is removed by the backend application, the Admin cleans up local storage, and sets the cookie value to true."},{"name":"mage-cache-storage","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":0,"durationLabel":"Session","description":"Local storage of visitor-specific content that enables ecommerce functions."},{"name":"stf","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":0,"durationLabel":"Session","description":"Records the time messages are sent by the SendFriend (Email a Friend) module."},{"name":"original_referrer","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":0,"durationLabel":"Session","description":""},{"name":"pr-cookie-consent-id","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":365,"durationLabel":"less than an hour","description":"Keeps your cookie consent id."},{"name":"last_visited_store","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":0,"durationLabel":"Session","description":"last_visited_store"}]}],"show_details":false},{"key":"preferences","is_essential":false,"is_pre_checked":false,"name":"Preferences cookies","description":"Preferences cookies are also known as \u201cfunctionality cookies\u201d. These cookies allow a website to remember choices you have made in the past, like what language you prefer, your favourite search filters, or what your user name and password are so you can automatically log in.","sort_order":0,"details":[],"show_details":false},{"key":"statistics","is_essential":false,"is_pre_checked":false,"name":"Statistics cookies","description":"Statistics cookies are also known as \u201cperformance cookies\u201d. These cookies collect information about how you use a website, like which pages you visited and which links you clicked on. None of this information can be used to identify you. It is all aggregated and, therefore, anonymized. Their sole purpose is to improve website functions. This includes cookies from third-party analytics services, such as visitor analytics, heatmaps and social media analytics.","sort_order":0,"details":[{"name":"First party","is_third_party":false,"cookies":[{"name":"add_to_cart","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":3600,"durationLabel":"1 hour","description":"Used by Google Tag Manager. Captures the product SKU, name, price and quantity removed from the cart, and makes the information available for future integration by third-party scripts."},{"name":"remove_from_cart","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":3600,"durationLabel":"1 hour","description":"Used by Google Tag Manager. Captures the product SKU, name, price and quantity added to the cart, and makes the information available for future integration by third-party scripts."},{"name":"_gid","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":86400,"durationLabel":"1 day","description":"Used to distinguish users."},{"name":"_gat","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":86400,"durationLabel":"1 day","description":"Used to throttle request rate."},{"name":"_dc_gtm_*","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":60,"durationLabel":"less than an hour","description":"Used to throttle request rate."}]}],"show_details":false},{"key":"marketing","is_essential":false,"is_pre_checked":false,"name":"Marketing cookies","description":"These cookies track your online activity to help advertisers deliver more relevant advertising or to limit how many times you see an ad. These cookies can share that information with other organizations or advertisers. These are persistent cookies and almost always of third-party provenance.","sort_order":0,"details":[{"name":"First party","is_third_party":false,"cookies":[{"name":"recently_viewed_product","category_key":"marketing","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":86400,"durationLabel":"1 day","description":"Stores product IDs of recently viewed products for easy navigation."},{"name":"recently_viewed_product_previous","category_key":"marketing","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":86400,"durationLabel":"1 day","description":"Stores product IDs of recently previously viewed products for easy navigation."},{"name":"recently_compared_product","category_key":"marketing","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":86400,"durationLabel":"1 day","description":"Stores product IDs of recently compared products."},{"name":"recently_compared_product_previous","category_key":"marketing","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.macron.com","duration":86400,"durationLabel":"1 day","description":"Stores product IDs of previously compared products for easy navigation."}]},{"name":".clerk.io","is_third_party":true,"cookies":[{"name":"_delighted_web","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".clerk.io","domainLabel":".clerk.io","duration":341280000,"durationLabel":"3950 days","description":""},{"name":"_hjTLDTest","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".clerk.io","domainLabel":".clerk.io","duration":86400,"durationLabel":"1 day","description":""},{"name":"__hssrc","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".clerk.io","domainLabel":".clerk.io","duration":86400,"durationLabel":"1 day","description":""},{"name":"_ga","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".clerk.io","domainLabel":".clerk.io","duration":94003200,"durationLabel":"1088 days","description":""},{"name":"_hjid","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".clerk.io","domainLabel":".clerk.io","duration":57456000,"durationLabel":"665 days","description":""},{"name":"clerk-authentication","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".clerk.io","domainLabel":".clerk.io","duration":94521600,"durationLabel":"1094 days","description":""},{"name":"intercom-session-qgotccxx","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".clerk.io","domainLabel":".clerk.io","duration":32054400,"durationLabel":"371 days","description":""},{"name":"hubspotutk","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".clerk.io","domainLabel":".clerk.io","duration":65145600,"durationLabel":"754 days","description":""},{"name":"__hstc","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".clerk.io","domainLabel":".clerk.io","duration":65145600,"durationLabel":"754 days","description":""},{"name":"intercom-id-qgotccxx","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".clerk.io","domainLabel":".clerk.io","duration":49248000,"durationLabel":"570 days","description":""},{"name":"_fbp","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".clerk.io","domainLabel":".clerk.io","duration":39225600,"durationLabel":"454 days","description":""}]},{"name":".criteo.com","is_third_party":true,"cookies":[{"name":"OptanonAlertBoxClosed","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".criteo.com","domainLabel":".criteo.com","duration":57456000,"durationLabel":"665 days","description":""},{"name":"ABTasty","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".criteo.com","domainLabel":".criteo.com","duration":740,"durationLabel":"less than an hour","description":""},{"name":"ajs_user_id","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".criteo.com","domainLabel":".criteo.com","duration":63072000,"durationLabel":"730 days","description":""},{"name":"intercom-session-bx9cew01","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".criteo.com","domainLabel":".criteo.com","duration":32140800,"durationLabel":"372 days","description":""},{"name":"uid","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".criteo.com","domainLabel":".criteo.com","duration":59616000,"durationLabel":"690 days","description":""},{"name":"OptanonConsent","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".criteo.com","domainLabel":".criteo.com","duration":61948800,"durationLabel":"717 days","description":""},{"name":"ajs_anonymous_id","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".criteo.com","domainLabel":".criteo.com","duration":63072000,"durationLabel":"730 days","description":""},{"name":"amplitude_id_b37a423901694056906133c8c13c895dcriteo.com","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".criteo.com","domainLabel":".criteo.com","duration":346896000,"durationLabel":"4015 days","description":""},{"name":"openam","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".criteo.com","domainLabel":".criteo.com","duration":86400,"durationLabel":"1 day","description":""},{"name":"ajs_group_id","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".criteo.com","domainLabel":".criteo.com","duration":63072000,"durationLabel":"730 days","description":""},{"name":"amplitude_idundefinedcriteo.com","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".criteo.com","domainLabel":".criteo.com","duration":86400,"durationLabel":"1 day","description":""}]},{"name":".doubleclick.net","is_third_party":true,"cookies":[{"name":"RUL","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".doubleclick.net","domainLabel":".doubleclick.net","duration":57456000,"durationLabel":"665 days","description":""},{"name":"IDE","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".doubleclick.net","domainLabel":".doubleclick.net","duration":59529600,"durationLabel":"689 days","description":""},{"name":"DSID","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".doubleclick.net","domainLabel":".doubleclick.net","duration":32572800,"durationLabel":"377 days","description":""}]},{"name":".facebook.com","is_third_party":true,"cookies":[{"name":"fr","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".facebook.com","domainLabel":".facebook.com","duration":39398400,"durationLabel":"456 days","description":""},{"name":"xs","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".facebook.com","domainLabel":".facebook.com","duration":63158400,"durationLabel":"731 days","description":""},{"name":"presence","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".facebook.com","domainLabel":".facebook.com","duration":86400,"durationLabel":"1 day","description":""},{"name":"c_user","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".facebook.com","domainLabel":".facebook.com","duration":63158400,"durationLabel":"731 days","description":""},{"name":"locale","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".facebook.com","domainLabel":".facebook.com","duration":31968000,"durationLabel":"370 days","description":""},{"name":"m_pixel_ratio","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".facebook.com","domainLabel":".facebook.com","duration":86400,"durationLabel":"1 day","description":""},{"name":"sb","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".facebook.com","domainLabel":".facebook.com","duration":94608000,"durationLabel":"1095 days","description":""},{"name":"dpr","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".facebook.com","domainLabel":".facebook.com","duration":32227200,"durationLabel":"373 days","description":""},{"name":"wd","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".facebook.com","domainLabel":".facebook.com","duration":32140800,"durationLabel":"372 days","description":""},{"name":"datr","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".facebook.com","domainLabel":".facebook.com","duration":88905600,"durationLabel":"1029 days","description":""},{"name":"spin","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".facebook.com","domainLabel":".facebook.com","duration":31622400,"durationLabel":"366 days","description":""}]},{"name":".google.com","is_third_party":true,"cookies":[{"name":"ANID","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".google.com","domainLabel":".google.com","duration":59529600,"durationLabel":"689 days","description":""},{"name":"__Secure-3PSIDCC","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".google.com","domainLabel":".google.com","duration":63158400,"durationLabel":"731 days","description":""},{"name":"__Secure-3PSID","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".google.com","domainLabel":".google.com","duration":94089600,"durationLabel":"1089 days","description":""},{"name":"CONSENT","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".google.com","domainLabel":".google.com","duration":566438400,"durationLabel":"6556 days","description":""},{"name":"AID","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".google.com","domainLabel":".google.com","duration":41040000,"durationLabel":"475 days","description":""},{"name":"__Secure-3PAPISID","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".google.com","domainLabel":".google.com","duration":94089600,"durationLabel":"1089 days","description":""},{"name":"SID","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".google.com","domainLabel":".google.com","duration":94089600,"durationLabel":"1089 days","description":""},{"name":"SIDCC","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".google.com","domainLabel":".google.com","duration":63158400,"durationLabel":"731 days","description":""},{"name":"APISID","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".google.com","domainLabel":".google.com","duration":94089600,"durationLabel":"1089 days","description":""},{"name":"NID","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".google.com","domainLabel":".google.com","duration":47433600,"durationLabel":"549 days","description":""},{"name":"1P_JAR","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".google.com","domainLabel":".google.com","duration":34214400,"durationLabel":"396 days","description":""},{"name":"SAPISID","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".google.com","domainLabel":".google.com","duration":1089,"durationLabel":"less than an hour","description":""},{"name":"SSID","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".google.com","domainLabel":".google.com","duration":94089600,"durationLabel":"1089 days","description":""},{"name":"SEARCH_SAMESITE","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".google.com","domainLabel":".google.com","duration":47088000,"durationLabel":"545 days","description":""},{"name":"HSID","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".google.com","domainLabel":".google.com","duration":94089600,"durationLabel":"1089 days","description":""},{"name":"OGPC","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".google.com","domainLabel":".google.com","duration":36028800,"durationLabel":"417 days","description":""},{"name":"OGP","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":".google.com","domainLabel":".google.com","duration":36028800,"durationLabel":"417 days","description":""}]},{"name":"www.google.com","is_third_party":true,"cookies":[{"name":"OTZ","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":"www.google.com","domainLabel":"www.google.com","duration":32054400,"durationLabel":"371 days","description":""},{"name":"UULE","category_key":"marketing","type":"third","typeLabel":"3rd Party","domain":"www.google.com","domainLabel":"www.google.com","duration":34300800,"durationLabel":"397 days","description":""}]}],"show_details":false}],"displayStyle":"left_bar","canShowCookieDetails":true,"overview":{"title":"Privacy and Cookies","text":"<p>A cookie is information stored on your computer by a website you visit. Cookies provide a way for the site to recognize you and keep track of your preferences. Ecommerce websites place cookies on visitors' browsers to retain login credentials, identify customers, and provide a customized shopping experience.<\/p>\r\n<p>We respect the privacy of individuals and recognize the importance of personal data entrusted to us by our customers. Any website visitor may choose not to allow some types of cookies. Click on cookie category headings and cookie details to find out more and change our default settings. However, blocking some types of cookies may impact your website experience and prevent you from using all the features on our store.<\/p>"},"consentPreferences":{"header":"Manage Consent Preferences","essential_category_status":"Always Active","cookie_details_link":"Cookie Details"},"design":{"textColor":"inherit","backgroundColor":"inherit"},"acceptButtonConfig":{"label":"Accept All","text_color":null,"text_color_on_hover":null,"background_color":null,"background_color_on_hover":null},"declineButtonConfig":{"enabled":true,"label":"Decline All","text_color":null,"text_color_on_hover":null,"background_color":null,"background_color_on_hover":null},"confirmButtonConfig":{"label":"Confirm My Choices","text_color":null,"text_color_on_hover":null,"background_color":null,"background_color_on_hover":null},"cookieDetailsIsOpen":false}; }, show: function () { }, hide: function () { }, confirm: function () { var selectedFields = document.querySelectorAll('.pr-cookie-setting-bar input[type="checkbox"]:checked'), allowedCategories = [...prCookieConsentApi.config.essentialCategoryKeys]; selectedFields.forEach((field) => { allowedCategories.push(field.name); }); prCookieConsentApi.consent.set(allowedCategories); this.hide(); } }; </script> <div x-data="{...hyva.modal(), init() { window.prCookieSettingBar.show = this.show.bind(this, 'pr-cookie-setting-bar', event); window.prCookieSettingBar.hide = this.hide.bind(this); }}" x-init="init()"> <div x-cloak x-bind="overlay('pr-cookie-setting-bar')" x-spread="overlay('pr-cookie-setting-bar')" x-ref="modalOverlay" class="md:absolute md:h-full md:w-screen md:overflow-y-scroll duration-0 md:overflow-y-scroll"> <div x-ref="modalContainer" class="justify-center items-center text-left z-40 pr-cookie-setting-bar-container absolute max-h-screen top-0 md:top-unset md:flex overflow-y-scroll md:overflow-y-auto inset-0"> <div x-ref="pr-cookie-setting-bar" role="dialog" aria-modal="true" class="pr-cookie-setting-bar grid items-end md:items-center px-0 pb-0 pt-[15px] md:pt-0 w-full md:w-3/4 max-w-[900px] bottom-0 md:bottom-auto"> <div x-data="Object.assign({}, prCookieSettingBar.getConfig(), { isMainPopupOpen: true, isSecondaryPopupOpen: false, selectedCategory: {} })" class="w-full h-full md:py-[80px] overflow-y-scroll md:overflow-y-hidden"> <div class="pr-cookie-setting-bar-wrap text-[12px] lg:text-[14px] relative px-[15px] lg:px-[45px] pb-[30px] pt-[35px] md:pt-[45px] bg-secondary rounded-t-base md:rounded-none" :class="{ 'h-screen overflow-hidden': cookieDetailsIsOpen, 'hidden': !isMainPopupOpen }" > <button @click="hide" class="absolute top-[15px] md:top-[25px] right-[15px] md:right-[30px]"> <span> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="md:w-7 md:h-7 w-6 h-6" width="24" height="24" role="img"> <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"/> <title>x</title></svg> </span> </button> <h3 class="font-extrabold text-[18px] lg:text-xl leading-normal mb-3 uppercase" x-text="overview.title"></h3> <div class="pr-cookie-description text-[12px] lg:text-[14px]" x-html="overview.text"></div> <div class="pr-actions-buttons flex flex-col md:flex-row items-center pt-4 mb-10 lg:mb-7.5"> <button type="button" class="btn btn-primary h-8 lg:h-[35px] uppercase text-[14px] lg:text-[16px]" x-text="acceptButtonConfig.label" @click="window.prCookieConsentApi.consent.allowAllCategories; hide();"></button> <button type="button" class="btn btn-secondary w-full md:w-auto h-8 lg:h-[35px] uppercase" x-text="declineButtonConfig.label" @click="window.prCookieConsentApi.consent.declineAll(); hide();"></button> </div> <h3 class="pr-cookie-manage-title font-extrabold text-[16px] lg:text-[18px] mb-0 uppercase" x-text="consentPreferences.header"></h3> <ul class="message-system-list mt-8 mb-[35px]"> <template x-for="category in categories"> <li class="mt-0 mb-4"> <div class="accordion-title"> <div class="pr-cookie-option flex justify-between pb-2.5 mt-7.5 text-sm"> <div class="flex items-center"> <span class="option-label mr-4 font-extrabold lg:text-[16px]" x-text="category.name"></span> </div> <template x-if="category.is_essential"> <span class="option-status whitespace-nowrap text-lightGreen font-extrabold lg:text-[16px]" x-text="consentPreferences.essential_category_status"></span> </template> <template x-if="!category.is_essential"> <div class="pr-cookie-switch h-10" x-data="{ isChecked: false }"> <label class="switch-label" aria-label="Switch"> <input type="checkbox" class="sr-only" x-model="isChecked" x-bind:name="category.key" > <span class="switch-area flex items-center w-11 h-6 rounded-3xl border border-container cursor-pointer transition-all" :class="isChecked ? 'bg-lightGreen border-lightGreen' : 'bg-lightSilver border-lightSilver'" > <span class="switch-nob block w-5 h-5 rounded-full transition-all" :class="isChecked ? 'bg-secondary ml-auto mr-[2px]' : 'bg-darkSilver mr-auto ml-[2px]'" .items-center ></span> </span> </label> </div> </template> </div> <div class="first-details" x-data="{ isOpen: false }"> <div class="pr-cookie-category-description text-grayLighter mb-8" x-text="category.description"></div> <template x-if="canShowCookieDetails"> <div> <button class="btn btn-tertiary uppercase italic text-[12px] lg:text-[14px]" x-on:click="isSecondaryPopupOpen = true; isMainPopupOpen = false; selectedCategory = category" x-text="consentPreferences.cookie_details_link" x-bind:data-category-key="category.key"></button> <div class="second-details absolute bg-white px-4 pt-[20px] md:pt-[30px] pb-4 inset-0 h-full" x-show="isSecondaryPopupOpen" > <div class="pr-cookie-view flex flex-col h-full"> <template x-if="isSecondaryPopupOpen"> <button @click="isSecondaryPopupOpen = false; isMainPopupOpen = true" class="absolute top-[15px] md:top-[25px] right-[15px] md:right-[30px]"> <span> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="md:w-7 md:h-7 w-6 h-6" width="24" height="24" role="img"> <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"/> <title>x</title></svg> </span> </button> </template> <div class="flex items-center text-sm mb-2 h-[40px]"> <button class="pr-cookie-details-hide w-[30px] flex items-center cursor-pointer hover:opacity-50" x-show="isSecondaryPopupOpen" x-on:click="isSecondaryPopupOpen = false; isMainPopupOpen = true;"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" width="16" height="16" role="img"> <path fill-rule="evenodd" d="M9.707 16.707a1 1 0 01-1.414 0l-6-6a1 1 0 010-1.414l6-6a1 1 0 011.414 1.414L5.414 9H17a1 1 0 110 2H5.414l4.293 4.293a1 1 0 010 1.414z" clip-rule="evenodd"/> <title>arrow-left</title></svg> </button> <p class="text-[16px] lg:text-[18px] font-extrabold italic" x-text="category.name"></p> </div> <div class="pr-cookies-list h-full px-4 -mx-4 mb-3 overflow-auto"> <h3 class="pr-cookie-view-title mb-2 font-bold text-[14px] uppercase"> Cookies List </h3> <template x-if="category.details.length > 0"> <template x-for="group in category.details"> <div class="pr-cookie-item text-xs py-2 border-container border-b"> <details class="pr-cookie-details-info"> <summary class="cursor-pointer pb-2"> <h4 class="pr-cookie-details-title font-semibold mb-1" x-text="group.name"></h4> <h5 class="inline-block font-semibold"> View Cookies </h5> </summary> <div class="pr-cookie-group-wrp"> <template x-for="cookie in group.cookies"> <div class="pr-cookie-group mt-1 mb-4 p-4 bg-gray-100 rounded"> <div class="pr-cookie-group-row mb-2 flex"> <span class="w-24 flex-shrink-0 mr-4">Name</span> <span class="truncate" x-text="cookie.name"></span> </div> <div class="pr-cookie-group-row mb-2 flex"> <span class="w-24 flex-shrink-0 mr-4">Domain</span> <span class="truncate" x-text="cookie.domainLabel"></span> </div> <div class="pr-cookie-group-row mb-2 flex"> <span class="w-24 flex-shrink-0 mr-4">Duration</span> <span x-text="cookie.durationLabel"></span> </div> <div class="pr-cookie-group-row mb-2 flex"> <span class="w-24 flex-shrink-0 mr-4">Type</span> <span x-text="cookie.typeLabel"></span> </div> <div class="pr-cookie-group-row mb-2 flex"> <span class="w-24 flex-shrink-0 mr-4">Category</span> <span x-text="cookie.category_key"></span> </div> <div class="pr-cookie-group-row flex"> <span class="w-24 flex-shrink-0 mr-4">Description</span> <span x-text="cookie.description"></span> </div> </div> </template> </div> </details> </div> </template> </template> <template x-if="category.details.length === 0"> <p>There are no cookies.</p> </template> </div> <template x-if="isSecondaryPopupOpen"> <div> <button class="btn btn-primary" :style="`color: ${confirmButtonConfig.text_color}; background-color: ${confirmButtonConfig.background_color}; border-color: ${confirmButtonConfig.background_color}`" x-text="confirmButtonConfig.label" @click="prCookieSettingBar.confirm()"> </button> </div> </template> </div> </div> </div> </template> </div> </div> </li> </template> </ul> <button class="btn btn-primary h-8 lg:h-[35px] uppercase text-[14px] lg:text-[16px]" :style="`color: ${confirmButtonConfig.text_color}; background-color: ${confirmButtonConfig.background_color}; border-color: ${confirmButtonConfig.background_color}`" x-text="confirmButtonConfig.label" @click="prCookieSettingBar.confirm()"> </button> </div> <div class="fixed inset-0 bg-primary bg-opacity-25" x-show="isSecondaryPopupOpen" x-cloak @click="isSecondaryPopupOpen = false; isMainPopupOpen = true"> <div class="absolute w-full h-full flex justify-center items-center overflow-y-scroll"> <div class="max-w-[900px] w-full h-full flex flex-col items-center justify-center md:w-3/4"> <div @click.stop class="grid items-end md:items-center h-full w-full"> <div class="pt-[15px] md:py-[80px] max-w-full"> <div class="bg-secondary px-[15px] md:px-[45px] pt-[20px] md:pt-[30px] pb-[30px] relative rounded-t-base md:rounded-t-none overflow-x-hidden" x-show="isSecondaryPopupOpen"> <div class="pr-cookie-view flex flex-col h-full"> <template x-if="isSecondaryPopupOpen"> <button @click="isSecondaryPopupOpen = false; isMainPopupOpen = true" class="absolute top-[16px] md:top-[25px] right-[15px] md:right-[40px]"> <span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="md:w-7 md:h-7 w-6 h-6" width="24" height="24" role="img"> <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"/> <title>x</title></svg> </span> </button> </template> <div class="flex items-center text-sm mb-[15px] h-[40px]"> <button class="pr-cookie-details-hide w-[30px] flex items-center cursor-pointer hover:opacity-50" x-show="isSecondaryPopupOpen" @click="isSecondaryPopupOpen = false; isMainPopupOpen = true;"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-4 h-4" width="24" height="24" role="img"> <path fill-rule="evenodd" d="M9.707 16.707a1 1 0 01-1.414 0l-6-6a1 1 0 010-1.414l6-6a1 1 0 011.414 1.414L5.414 9H17a1 1 0 110 2H5.414l4.293 4.293a1 1 0 010 1.414z" clip-rule="evenodd"/> <title>arrow-left</title></svg> </button> <p class="text-[16px] lg:text-[18px] font-extrabold italic uppercase mr-10" x-text="selectedCategory.name"></p> </div> <div class="pr-cookies-list h-full px-4 -mx-4 mb-7.5 overflow-auto overflow-x-hidden max-w-screen"> <h3 class="pr-cookie-view-title mb-4 font-bold text-[14px] uppercase"> Cookies List </h3> <template x-if="selectedCategory?.details?.length > 0"> <template x-for="group in selectedCategory.details"> <div class="pr-cookie-item text-xs py-2 border-separator border-b"> <details class="pr-cookie-details-info"> <summary class="cursor-pointer mb-3.5"> <h4 class="pr-cookie-details-title font-extrabold mb-2 uppercase text-[12px] lg:text-[14px]" x-text="group.name"></h4> <h5 class="flex font-semibold lg:text-[14px]"> View Cookies </h5> </summary> <div class="pr-cookie-group-wrp"> <template x-for="cookie in group.cookies"> <div class="pr-cookie-group mt-1 mb-4 p-4 bg-whiteSmoke rounded-base max-w-[calc(100vw-32px)]"> <div class="pr-cookie-group-row mb-2 flex"> <span class="w-24 flex-shrink-0 mr-4">Name</span> <span class="truncate" x-text="cookie.name"></span> </div> <div class="pr-cookie-group-row mb-2 flex"> <span class="w-24 flex-shrink-0 mr-4">Domain</span> <span class="truncate" x-text="cookie.domainLabel"></span> </div> <div class="pr-cookie-group-row mb-2 flex"> <span class="w-24 flex-shrink-0 mr-4">Duration</span> <span x-text="cookie.durationLabel"></span> </div> <div class="pr-cookie-group-row mb-2 flex"> <span class="w-24 flex-shrink-0 mr-4">Type</span> <span x-text="cookie.typeLabel"></span> </div> <div class="pr-cookie-group-row mb-2 flex"> <span class="w-24 flex-shrink-0 mr-4">Category</span> <span x-text="cookie.category_key"></span> </div> <div class="pr-cookie-group-row flex"> <span class="w-24 flex-shrink-0 mr-4">Description</span> <span x-text="cookie.description"></span> </div> </div> </template> </div> </details> </div> </template> </template> <template x-if="selectedCategory?.details?.length === 0"> <p>There are no cookies.</p> </template> </div> <template x-if="isSecondaryPopupOpen"> <div> <button class="btn btn-primary h-8 lg:h-[35px] uppercase text-[14px] lg:text-[16px]" :style="`color: ${confirmButtonConfig.text_color}; background-color: ${confirmButtonConfig.background_color}; border-color: ${confirmButtonConfig.background_color}`" x-text="confirmButtonConfig.label" @click="prCookieSettingBar.confirm()"> </button> </div> </template> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div id="prgdpr-consentpopups-container" x-data="prDataPrivacyConsentPopupsLoadInit()" @private-content-loaded.window="receiveCustomerData($event.detail.data)" ></div> <script> function prDataPrivacyConsentPopupsLoadInit() { return { receiveCustomerData: function (data) { if (! data.hasOwnProperty('data_privacy')) { return; } if (data.data_privacy.countNotifies !== 0 || data.data_privacy.countPopups !== 0) { this.loadPopups(); } }, loadPopups: function () { fetch('https://www.macron.com/uk/data-privacy/consentpopups/load/') .then((response) => { if (! response.ok) { throw new Error('Network response was not ok'); } return response.json(); }) .then(data => this.$el.innerHTML = data.html) .catch(error => console.warn(error)); } } } function prDataPrivacyConsentPopupsInit(popups, notifies) { return { popups: popups, notifies: notifies, data: null, isShowModal: true, init: function () { for (popup of this.popups) { popup.isShowModal = true; } for (notify of this.notifies) { notify.isShowModal = true; } }, closeModal(popup) { popup.isShowModal = false; }, sendRequest: function (url, consent) { if (consent.cms_page) { consent.checkboxLabel = 'I agree'; } fetch(url, { method: 'POST', headers: {'X-Requested-With': 'XMLHttpRequest'}, body: JSON.stringify({'consent': consent}) }); }, print: function (popup) { let printWindow = window.open('', 'Print', 'height=600,width=800'); let printWindowDocument = printWindow.document; let html = printWindowDocument.createElement('html'); let head = printWindowDocument.createElement('head'); let title = printWindowDocument.createElement('title'); let body = printWindowDocument.createElement('body'); title.textContent = popup.cms_page.title; body.innerHTML = popup.cms_page.content; head.appendChild(title); html.appendChild(head); html.appendChild(body); printWindowDocument.querySelector('html').innerHTML = html.innerHTML; printWindowDocument.close(); printWindow.focus(); printWindow.print(); printWindow.onafterprint = function () { printWindow.close(); }; return true; } } } </script> <script> function initGeolocationNewsletterPopup() { return { geolocationData: {}, origHide: () => {}, async geolocationRequest() { const requestUrl = BASE_URL + 'geolocation/info/strip'; const response = await fetch(requestUrl, { method: 'get', headers: { contentType: 'application/json' } }); if (!response.ok) { return; } this.geolocationData = await response.json(); const { country_code, url } = this.geolocationData; if (country_code != null && url != null) { this.showGeolocationPopup(); } else { this.showNewsletterPopup(); } }, showGeolocationPopup() { const self = this; prCookieConsentApi.userScript.execute(function () { self.initCustomGeolocationPopupHide(); self.show('geolocation'); }, 'preferences'); }, showNewsletterPopup() { }, initCustomGeolocationPopupHide() { // use this for geolocation popup only this.origHide = this.hide; this.hide = (value) => { this.origHide.call(this, value); this.afterGeolocationPopupHideActions(); }; }, async afterGeolocationPopupHideActions() { const requestUrl = BASE_URL + 'geolocation/info/close'; await fetch(requestUrl, { method: 'get', headers: { contentType: 'application/json' } }); this.showNewsletterPopup(); } } } </script> <div x-data="Object.assign({}, hyva.modal(), initGeolocationNewsletterPopup())" x-init="geolocationRequest()"> <div x-cloak x-bind="overlay('geolocation')" x-spread="overlay('geolocation')" x-ref="modalOverlay" class="fixed inset-0 bg-black bg-opacity-50 z-50"> <div x-ref="modalContainer" class="fixed flex justify-center z-40 items-end md:items-center text-center inset-0"> <div x-ref="geolocation" role="dialog" aria-modal="true" class="inline-block bg-white p-10 max-h-screen overflow-auto overscroll-y-contain relative rounded-t-base md:rounded-b-base w-full md:w-auto pt-[35px] pb-[15px] px-[15px] md:p-[30px]"> <div> <button @click="hide('geolocation')" class="absolute top-[15px] right-[15px]"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="hover:text-buttonSecondary" width="24" height="24" role="img"> <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"/> <title>Close</title></svg> </button> <svg id="svg-icon__plane" viewBox="0 0 60 60" fill="currentColor" class="md:mt-[15px] mb-[30px] mx-auto" width="64" height="64" aria-hidden="true"> <path d="M0.248153946,40.3428168 L13.5431231,46.0843005 C13.6830702,46.1543186 13.8230172,46.2943548 13.9629643,46.5044091 L19.6308196,59.7378289 C19.7707666,60.0179013 20.1206342,60.0879194 20.3305548,59.8778651 L23.5493368,56.6570328 C23.6892838,56.5169966 23.7592574,56.3069423 23.7592574,56.096888 L22.639681,45.3141015 L32.5759212,35.7216226 L43.0019759,57.1471594 C43.141923,57.4272318 43.4917906,57.4972499 43.7017112,57.2871956 L48.7398048,52.2458928 C48.8797518,52.1058566 48.9497253,51.8958024 48.9497253,51.6857481 L45.3810757,23.398438 L54.5476071,14.5761581 C57.346548,11.9154705 59.1658595,8.41456576 59.9355683,4.63358866 L59.9355683,4.63358866 C60.4253829,1.90288298 58.0462832,-0.477732224 55.3872894,0.0824125309 L55.3872894,0.0824125309 C51.6786927,0.852611569 48.2499901,2.67308202 45.5909963,5.4037877 L36.6343854,14.5761581 L8.36508251,11.0052353 C8.15516194,11.0052353 7.94524138,11.0752533 7.80529433,11.2152895 L2.76720074,16.2565923 C2.55728017,16.4666466 2.6272537,16.8167371 2.90714779,16.9567733 L24.3890191,27.4594874 L14.8026465,37.4020568 L3.95675062,36.2817673 C3.74683005,36.2817673 3.53690948,36.3517854 3.39696244,36.4918216 L0.178180424,39.7126539 C-0.101713664,39.8526901 -0.0317401423,40.2727987 0.248153946,40.3428168 Z"/> </svg> <div class="mb-[30px]"> <div class="text-[18px] font-extrabold uppercase italic mb-2.5">Distances do not scare us</div> <p class="font-semibold"><span x-text="hyva.str('You&#x20;are&#x20;on&#x20;Macron&#x20;&#x25;1.', geolocationData.actual_country_code)"></span><br>Do you want to continue browsing here?</p> </div> <button class="btn btn-primary w-full" @click="hide('geolocation')"> <span>Yes, go ahead</span> </button> <a :href="geolocationData.change_region_url" class="btn btn-tertiary mt-[15px] mx-auto"> No, I want to ship to another country </a> </div> </div> </div> </div> </div> <input name="form_key" type="hidden" value="ctPXQ4lrIClYEJ19" /> <noscript> <section class="message global noscript border-b-2 border-blue-500 bg-blue-50 shadow-none m-0 px-0 rounded-none font-normal"> <div class="container text-center"> <p> <strong>JavaScript seems to be disabled in your browser.</strong> <span> For the best experience on our site, be sure to turn on Javascript in your browser. </span> </p> </div> </section> </noscript> <script> document.body.addEventListener('touchstart', () => {}, {passive: true}) </script> <div class="page-wrapper"><header class="page-header amsearch-full-width"><a class="action skip sr-only focus:not-sr-only focus:absolute focus:z-40 focus:bg-white contentarea" href="#contentarea"> <span> Skip to Content </span> </a> <script> function initHeader() { return { searchOpen: false, cart: {}, isCartOpen: false, isLoading: false, getData(data) { if (data.cart) { this.cart = data.cart } }, isCartEmpty() { return !this.cart.summary_count }, toggleCart(event) { if (event.detail && event.detail.isOpen !== undefined) { this.isCartOpen = event.detail.isOpen if (!this.isCartOpen && this.$refs && this.$refs.cartButton) { this.$refs.cartButton.focus() } } else { this.isCartOpen = true } } } } function initCompareHeader() { return { compareProducts: null, itemCount: 0, receiveCompareData(data) { if (data['compare-products']) { this.compareProducts = data['compare-products']; this.itemCount = this.compareProducts.count; } } } } </script> <div x-data="initHeader()"> <div class="w-full"> <div id="header" class="relative w-full bg-secondary flex flex-col" @private-content-loaded.window="getData(event.detail.data)" > <div x-ref="menuContainer" class="container flex items-center justify-between w-full h-[51px] lg:h-auto mx-auto mt-0 py-3 z-10 lg:py-6 lg:px-8 lg:absolute lg:top-full" > <!--to reuse mobile menu we need to hide current logo (to hide teleported business lines menu)--> <div class="hidden"> <!--Logo--> <div id="header-logo" class="flex items-center order-1 sm:order-2 lg:order-1 w-full py-2 sm:w-auto min-w-[120px] lg:flex-none"> <a class="flex shrink-0 items-center justify-center text-xl font-medium tracking-wide text-gray-800 no-underline hover:no-underline font-title max-h-[24px] w-[107px] lg:w-[171px] relative" href="https://www.macron.com/uk/" aria-label="Go&#x20;to&#x20;Home&#x20;page" > <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 1047.3 363.1" fill="currentColor" class="w-[130px] h-[60px] lg:w-[200px] lg:h-[110px] absolute text-black" width="24" height="24" role="img"> <g> <path d="M925.5,128h-53v115.2h29.6v-74.1h0c1.2-10.9,11-18.7,21.9-17.5,9.2,1,16.4,8.3,17.5,17.5v74.1h29.8v-74.1c0-22.7-20.5-41.1-45.8-41.1"/> <path d="M729.9,128c-23.7-.7-43.5,17.8-44.3,41.5v73.7h29.6v-69.9c-.7-6,2.3-11.8,7.7-14.5,3.1-1.2,6.4-1.8,9.7-1.9,4,.2,7.9-1.3,10.8-4,.4-.4,21.5-24.9,21.5-24.9h-34.9Z"/> <path d="M395.3,128c-12.4-.2-24.6,3.9-34.5,11.4-9.9-7.6-22-11.6-34.5-11.4h-49.4v115.2h29.8v-73.2c1.2-10.8,10.9-18.6,21.7-17.5,9.2,1,16.5,8.3,17.5,17.5v73.2h29.8v-73.2c1.2-10.8,10.9-18.6,21.7-17.5,9.2,1,16.5,8.3,17.5,17.5v73.2h29.8v-75.1c0-22.1-22.1-40.1-49.4-40.1"/> <path d="M525,130.4c-6.2-1.7-12.6-2.5-19-2.4h-43.6c0,0,18.5,21.4,18.9,21.8,2.9,2.8,6.8,4.2,10.8,4,2.9.2,8.5.1,11.4.2,2.8,0,5.7.1,8.5.6,7.1,1.5,12.5,7.5,13.1,14.8h-30.7c-20.4-.8-37.5,15.2-38.2,35.5-.8,20.4,15.2,37.5,35.5,38.2.9,0,1.8,0,2.7,0h59.3v-73.9c-.3-17.7-11.8-33.3-28.6-38.8M481.1,206.2c0-7.5,6.1-13.6,13.5-13.6h30.4v27.2h-30.4c-7.5,0-13.5-6.1-13.5-13.6"/> <path d="M806.3,126.5c-32.7,0-56.2,26.5-56.2,59.2s23.6,59.2,56.2,59.2,56.2-26.5,56.2-59.2-23.6-59.2-56.2-59.2M806.3,219.6c-18.8,0-27.6-15.2-27.6-34s8.9-34,27.6-34,27.8,15.2,27.8,34-9,34-27.8,34"/> <path d="M646.5,201.5c-3.3,11.1-13.6,18.5-25.2,18.1-18.8,0-27.6-15.2-27.6-34s8.8-34,27.6-34c11.2-.4,21.3,6.6,24.9,17.2h29.2c-6-25-28.4-42.5-54.1-42.4-32.6,0-56.2,26.5-56.2,59.1s23.6,59.1,56.2,59.1c26,0,48.6-17.9,54.3-43.3h-29.1Z"/> </g> <g> <path d="M163.2,160.7c-4,0-7.8-1.5-10.7-4.2l-75.7-65,86.5,198,86.3-198-75.7,65.1c-2.9,2.7-6.7,4.1-10.7,4.1"/> <path d="M157,132.6c3.8,3.3,9.5,3.1,13-.6l25.8-22.2c2.3-2.1,2.4-5.7.3-8-.1-.2-.3-.3-.5-.4l-25.9-22.4c-3.5-3.3-8.9-3.5-12.6-.4l-26.5,22.9c-2.3,2.1-2.5,5.7-.5,8,.1.2.3.3.5.5l26.3,22.7Z"/> </g> <title>macron-logo</title></svg> </a> </div> </div> <div id="homepage-header amsearch-full-width-logo" class="flex py-0 lg:py-2 min-w-[120px]"> <a class="flex items-center justify-center tracking-wide no-underline hover:no-underline max-h-[24px] w-[107px] lg:w-[171px] relative" href="https://www.macron.com/uk/" aria-label="Go&#x20;to&#x20;Home&#x20;page" > <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 1047.3 363.1" fill="currentColor" class="w-[130px] h-[60px] text-primary lg:w-[200px] lg:h-[110px] lg:text-secondary absolute" width="200" height="110" aria-hidden="true"> <g> <path d="M925.5,128h-53v115.2h29.6v-74.1h0c1.2-10.9,11-18.7,21.9-17.5,9.2,1,16.4,8.3,17.5,17.5v74.1h29.8v-74.1c0-22.7-20.5-41.1-45.8-41.1"/> <path d="M729.9,128c-23.7-.7-43.5,17.8-44.3,41.5v73.7h29.6v-69.9c-.7-6,2.3-11.8,7.7-14.5,3.1-1.2,6.4-1.8,9.7-1.9,4,.2,7.9-1.3,10.8-4,.4-.4,21.5-24.9,21.5-24.9h-34.9Z"/> <path d="M395.3,128c-12.4-.2-24.6,3.9-34.5,11.4-9.9-7.6-22-11.6-34.5-11.4h-49.4v115.2h29.8v-73.2c1.2-10.8,10.9-18.6,21.7-17.5,9.2,1,16.5,8.3,17.5,17.5v73.2h29.8v-73.2c1.2-10.8,10.9-18.6,21.7-17.5,9.2,1,16.5,8.3,17.5,17.5v73.2h29.8v-75.1c0-22.1-22.1-40.1-49.4-40.1"/> <path d="M525,130.4c-6.2-1.7-12.6-2.5-19-2.4h-43.6c0,0,18.5,21.4,18.9,21.8,2.9,2.8,6.8,4.2,10.8,4,2.9.2,8.5.1,11.4.2,2.8,0,5.7.1,8.5.6,7.1,1.5,12.5,7.5,13.1,14.8h-30.7c-20.4-.8-37.5,15.2-38.2,35.5-.8,20.4,15.2,37.5,35.5,38.2.9,0,1.8,0,2.7,0h59.3v-73.9c-.3-17.7-11.8-33.3-28.6-38.8M481.1,206.2c0-7.5,6.1-13.6,13.5-13.6h30.4v27.2h-30.4c-7.5,0-13.5-6.1-13.5-13.6"/> <path d="M806.3,126.5c-32.7,0-56.2,26.5-56.2,59.2s23.6,59.2,56.2,59.2,56.2-26.5,56.2-59.2-23.6-59.2-56.2-59.2M806.3,219.6c-18.8,0-27.6-15.2-27.6-34s8.9-34,27.6-34,27.8,15.2,27.8,34-9,34-27.8,34"/> <path d="M646.5,201.5c-3.3,11.1-13.6,18.5-25.2,18.1-18.8,0-27.6-15.2-27.6-34s8.8-34,27.6-34c11.2-.4,21.3,6.6,24.9,17.2h29.2c-6-25-28.4-42.5-54.1-42.4-32.6,0-56.2,26.5-56.2,59.1s23.6,59.1,56.2,59.1c26,0,48.6-17.9,54.3-43.3h-29.1Z"/> </g> <g> <path d="M163.2,160.7c-4,0-7.8-1.5-10.7-4.2l-75.7-65,86.5,198,86.3-198-75.7,65.1c-2.9,2.7-6.7,4.1-10.7,4.1"/> <path d="M157,132.6c3.8,3.3,9.5,3.1,13-.6l25.8-22.2c2.3-2.1,2.4-5.7.3-8-.1-.2-.3-.3-.5-.4l-25.9-22.4c-3.5-3.3-8.9-3.5-12.6-.4l-26.5,22.9c-2.3,2.1-2.5,5.7-.5,8,.1.2.3.3.5.5l26.3,22.7Z"/> </g> </svg> </a> </div> <div id="side-menu" class="flex items-center gap-2 lg:gap-0 lg:min-w-[130px] lg:flex-none"> <button id="menu-search-icon" class="rounded p-1 hover:bg-primary/10 outline-offset-2 lgs:hidden" @click.prevent=" searchOpen = !searchOpen; $dispatch('search-open'); " aria-label="Toggle&#x20;search&#x20;form" aria-haspopup="true" :aria-expanded="searchOpen" x-ref="searchButton" > <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1-search" version="1.1" viewBox="0 0 20.79 21.94" width="20" height="22" aria-hidden="true"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .search-st10 { fill: none; stroke: currentColor; stroke-width: 1.5px; } </style> </defs> <g id="Raggruppa_4447"> <circle id="Ellisse_55-search" class="search-st10" cx="9.25" cy="9.25" r="8.5"/> <line id="Linea_1250-search" class="search-st10" x1="14.25" y1="15.25" x2="20.25" y2="21.41"/> </g> </svg> </button> <!--Search Icon--> <button id="menu-search-icon" class="rounded-xl p-1 hover:bg-primary/10 outline-offset-2 hidden lg:py-2.5 lg:px-4 lg:flex" @click.prevent=" searchOpen = !searchOpen; $dispatch('search-open'); " aria-label="Toggle&#x20;search&#x20;form" aria-haspopup="true" :aria-expanded="searchOpen" x-ref="searchButton" > <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1-search" version="1.1" viewBox="0 0 20.79 21.94" class="text-secondary" width="20" height="22" aria-hidden="true"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .search-st10 { fill: none; stroke: currentColor; stroke-width: 1.5px; } </style> </defs> <g id="Raggruppa_4447_2"> <circle id="Ellisse_55-search_2" class="search-st10" cx="9.25" cy="9.25" r="8.5"/> <line id="Linea_1250-search_2" class="search-st10" x1="14.25" y1="15.25" x2="20.25" y2="21.41"/> </g> </svg> </button> <!-- Additional Header Elements --> <!--Cart Icon--> <a id="menu-cart-icon" class="relative inline-block rounded p-1 outline-offset-2 hover:bg-primary/10 lg:py-2.5 lg:px-4 lg:rounded-xl" x-ref="cartButton" :aria-disabled="isCartEmpty()" :aria-label="` View&#x20;cart, ${isCartEmpty() ? 'Cart&#x20;is&#x20;empty' : cart.summary_count > 1 ? hyva.str('&#x25;1&#x20;items', cart.summary_count) : hyva.str('&#x25;1&#x20;item', cart.summary_count) }`" @click="isLoading = true" href="https://www.macron.com/uk/checkout/cart/index/" title="View&#x20;cart" > <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1-shopping-cart" version="1.1" viewBox="0 0 19.86 21.16" class="lg:text-secondary" width="18" height="20" aria-hidden="true"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .shopping-cart-st0 { fill: none; stroke: currentColor; stroke-miterlimit: 10; stroke-width: 1.5px; } </style> </defs> <g id="Raggruppa_4418-shopping-cart"> <g id="Raggruppa_4420-shopping-cart"> <rect id="Rettangolo_2999-shopping-cart" class="shopping-cart-st0" x=".75" y="6.94" width="18.36" height="13.48"/> <path id="Tracciato_598-shopping-cart" class="shopping-cart-st0" d="M16.3,6.94c-1.04-3.63-3.5-6.19-6.37-6.19S4.62,3.28,3.57,6.89"/> </g> </g> </svg> <span x-text="cart.summary_count" x-show="!isCartEmpty()" x-cloak class="absolute -top-1.5 -right-1.5 h-5 px-2 py-1 rounded-full bg-primary text-secondary text-xs font-semibold leading-none text-center uppercase tabular-nums" aria-hidden="true" ></span> </a> <!--Customer Icon & Dropdown--> <div class="hidden lg:flex"> <div class="relative inline-block" x-data="{ open: false }" @keyup.escape="open = false" @click.outside="open = false" > <button type="button" id="customer-menu" class="block rounded p-1 hover:bg-primary/10 outline-offset-2" :class="{'rounded-xl lg:py-2.5 lg:px-4': true}" @click="open = !open" :aria-expanded="open ? 'true' : 'false'" aria-label="My&#x20;Account" aria-haspopup="true" > <svg xmlns="http://www.w3.org/2000/svg" width="17" height="21" viewBox="0 0 19 23" fill="none" aria-hidden="true"> <path d="M9.5 10C11.9853 10 14 7.98528 14 5.5C14 3.01472 11.9853 1 9.5 1C7.01472 1 5 3.01472 5 5.5C5 7.98528 7.01472 10 9.5 10Z" stroke="white" stroke-width="1.5" stroke-miterlimit="10"/> <path d="M17.97 21.6191C17.97 16.4691 14.17 12.2891 9.49 12.2891C4.81 12.2891 1 16.4691 1 21.6191H17.97Z" stroke="white" stroke-width="1.5" stroke-miterlimit="10"/> </svg> </button> <nav class="absolute right-0 z-20 w-40 py-2 mt-2 -mr-4 px-1 overflow-auto origin-top-right rounded-sm shadow-lg sm:w-48 lg:mt-3 bg-container-lighter" :class="{'lg:flex lg:flex-col lg:gap-5 lg:mr-0 lg:mt-3 lg:rounded-xl lg:p-7 lg:w-56 lg:text-base lg:font-semibold': true}" x-cloak x-show="open" aria-labelledby="customer-menu" > <a id="customer.header.sign.in.link" class="block px-4 py-2 lg:px-5 lg:py-2 hover:bg-gray-100" :class="{'hover:bg-transparent hover:text-primary/40': true}" :style="true && {'padding-inline': 0, 'padding-block': 0}" onclick="hyva.setCookie && hyva.setCookie( 'login_redirect', window.location.href, 1 )" href="https://www.macron.com/uk/customer/account/index/" title="Sign&#x20;In" > Sign In</a> <a id="customer.header.register.link" class="block px-4 py-2 lg:px-5 lg:py-2 hover:bg-gray-100" :class="{'hover:bg-transparent hover:text-primary/40': true}" :style="true && {'padding-inline': 0, 'padding-block': 0}" href="https://www.macron.com/uk/customer/account/create/" title="Create&#x20;an&#x20;Account" > Create an Account </a> </nav> </div> </div> </div> </div> <!--Search--> <div class="absolute z-20 w-full border-t shadow-sm bg-container-lighter border-container-lighter" id="search-content" x-cloak x-show="searchOpen" @click.outside="searchOpen = false" @keydown.escape=" searchOpen = false; $refs.searchButton.focus(); " > <script> 'use strict'; function amXsearchProductsComponent() { const postFormRequest = (postUrl, id) => { const req = fetch(BASE_URL + postUrl, { "headers": { "content-type": "application/x-www-form-urlencoded; charset=UTF-8", }, "body": "form_key=" + hyva.getFormKey() + "&product=" + id + "&uenc=" + hyva.getUenc(), "method": "POST", "mode": "cors", "credentials": "include" }); req.finally(() => this.isLoading = false); return req; } return { mutationAddToCartQuery: "mutation addProductsToCart($cartId: String!, $cartItems: [CartItemInput!]!) {addProductsToCart(\n cartId: $cartId,\n cartItems: $cartItems\n ) {\n cart {\n items {\n product {\n name\n }\n }\n total_quantity\n }\n user_errors {\n code\n message\n }\n }}", mutationAddToWishlistQuery: "mutation addProductsToWishlist($wishlistId: ID!, $wishlistItems: [WishlistItemInput!]!) {addProductsToWishlist(\n wishlistId: $wishlistId,\n wishlistItems: $wishlistItems\n ) {\n wishlist {\n items {\n id\n product {\n name\n }\n }\n items_count\n }\n user_errors {\n code\n message\n }\n }}", mutationAddToCompareListQuery: "mutation addProductsToCompareList($uid: ID!, $products: [ID!]!) {addProductsToCompareList(input: {\n uid: $uid,\n products: $products\n }) {\n items {\n product {\n name\n }\n }\n item_count\n }}", sliderInitialization(event) { this[event.detail.key] = event.detail.value; }, getResultProductsCount() { const suggestions = this.sections.products; const totalCount = suggestions?.total_count ?? 0; const itemsCount = suggestions?.items?.length ?? 0; return totalCount > 0 ? totalCount - itemsCount : 0; }, processProductName(value) { if (value.items) { value.items = value.items.map(item => { item.name = this.addHighlight(item, 'name'); item.sku = this.addHighlight(item, 'sku'); item.name = this.truncateWithDots(item.name, this.productNameMaxLength, true); return item; }); } return value; }, addHighlight(product, key = 'name') { const name = product[key]; const { latestQuery } = this; const queries = latestQuery.toLowerCase().split(" "); let highlightedName = name; for (const query of queries) { const safeQuery = query.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); const regex = new RegExp(`(?!<[^>]*)(${safeQuery})(?![^<]*>)`, "gi"); highlightedName = highlightedName.replace(regex, match => `<span class="amsearch-highlight">${match}</span>`); } return highlightedName; }, truncateWithDots(str, maxLength, returnOriginal = false) { if (maxLength === '' || maxLength < 1) { return returnOriginal ? str : ""; } let output = []; let tagBuffer = []; let count = 0; let inTag = false; for (const char of str) { if (char === "<") { inTag = true; } if (inTag) { tagBuffer.push(char); } else { count++; } if (char === ">") { inTag = false; output.push(tagBuffer.join("")); tagBuffer = []; } else if (!inTag) { output.push(char); } if (count >= maxLength) { break; } } if (count >= maxLength) { output.push("..."); } // Close any unclosed tags while (tagBuffer.length > 0) { const closingTagPos = str.indexOf(">", str.indexOf(tagBuffer.join("")) + tagBuffer.length); if (closingTagPos !== -1) { output.push(str.slice(str.indexOf(tagBuffer.join("")) + tagBuffer.length, closingTagPos + 1)); tagBuffer = []; } else { break; } } return output.join(""); }, getProductUrl(product) { return window.BASE_URL + product.url_key + (product.url_suffix || ''); }, getProductImageUrl(product) { const imageUrl = product.small_image.url; let mediaURL = this.config.customMediaUrl || ''; if (mediaURL.includes('/media') && imageUrl.startsWith('media/')) { mediaURL = mediaURL.replace('/media', ''); } if (imageUrl.includes('://')) { return imageUrl; } const productImageUrl = mediaURL + imageUrl; if (productImageUrl.includes('/product/placeholder/')) { return productImageUrl.replace(/\/media(?=\/static)/, ''); } return productImageUrl; }, /** * @param Product {id: string} */ addToWishlist({id}) { postFormRequest('wishlist/index/add/', id).then(response => { if (response.redirected) { window.location.href = response.url; } else if (response.ok) { return response.json(); } else { typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( [{ type: "warning", text: "Could not add item to wishlist." }], 5000 ); } }).then(response => { if (!response) { return } typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( [{ type: response.success ? "success" : "error", text: response.success ? "Product has been added to your Wish List." : response.error_message }], 5000 ); window.dispatchEvent(new CustomEvent("reload-customer-section-data")); }).catch(function (error) { typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( [{ type: "error", text: error }], 5000 ); }); }, /** * @param Product {id: string} */ addToCompare({id}) { postFormRequest('catalog/product_compare/add', id) .then(response => { if (response.redirected) { window.location.href = response.url; } this.isLoading = false; }).catch(error => { this.isLoading = false; typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( [{ type: "error", text: error }], 5000 ); }); }, /** * * @param product */ getRating(product) { const { rating_summary } = product; product.ratingData = { ratingSteps: 5, starsFilled: Math.floor(+rating_summary / 100 * 5), starFragment: rating_summary / 100 * 5 % 1, starsEmpty: Math.floor(5 - (+rating_summary / 100 * 5)), yellowHex: '#f6e05e', greyHex: '#cbd5e0' }; return product; }, /** * Compatibility function for Amasty_AjaxCart module * * @param id * @param $event */ addToCart({id}, $event) { this.isLoading = true; const action = 'https://www.macron.com/uk/checkout/cart/add/'; const data = { product: id, qty: 1 }; hyva.postForm({ action, data }); } } } </script> <script> 'use strict'; (()=> { const browserCache = { set(key, value) { const now = new Date(); const item = { value: value, expiry: now.getTime() + 5 * 60 * 1000, // 5 minutes from now }; localStorage.setItem(key, JSON.stringify(item)); }, get(key) { const itemStr = localStorage.getItem(key); if (!itemStr) { return null; } const item = JSON.parse(itemStr); const now = new Date(); if (now.getTime() > item.expiry) { localStorage.removeItem(key); return null; } return item.value; } }; window._amXSearchConfigFetcher = null; window.amXsearchAutocompleteComponent = () => { const INITIAL_QUERY_CACHE_KEY = 'x.InitialQuery'; const CONFIG_QUERY_CACHE_KEY = 'x.ConfigQuery'; const PREV_QUERY_CACHE_KEY = 'x.PrevQuery'; // TODO: Possible it will needs to change after the configurations are added to Admin const HEADER_TYPE = 'b'; const cache = {}; const dataSections = { products: false, category: false, page: false, faq: false, landingPage: false, browsingHistory: false, popularSearches: false, bestsellers: false, recentSearches: false, recentlyViewed: false, brand: false, blog: false }; return { isLoading: false, searchInitialized: false, latestQuery: '', productNameMaxLength: 50, resultPageUrl: 'https://www.macron.com/uk/catalogsearch/result/?q=', minSearchLength: 3, maxSearchLength: 128, isDefaultSearchInput: false, isFullWidthSearch: true, searchPopupWidth: 900, showOverlay: false, config: {}, slider: { bestsellers: false, recentlyViewed: false }, isHorizontalView: true, noResultsFound: false, errorMessage: null, // sections sections: Object.create(dataSections), allBusinessLines: [], activeBusinessLines: [], latestBusinessLinesLength: 0, businessLineToggle(id, name) { this.latestBusinessLinesLength = this.activeBusinessLines.length; if (id === 0) { if (this.allBusinessLinesActive()) { this.activeBusinessLines = []; } else { this.activeBusinessLines = JSON.parse(JSON.stringify(this.allBusinessLines)); // simple deep copy } } else if (this.activeBusinessLines.some(businessLine => businessLine.id === id)) { if (this.allBusinessLinesActive()) { this.activeBusinessLines = [{ id, name }]; } else { this.activeBusinessLines = this.activeBusinessLines.filter(businessLine => businessLine.id !== id); } } else { this.activeBusinessLines.push({ id, name }); } this.doSearch(); }, businessLineActive(id) { if (this.allBusinessLinesActive()) { return false; } return this.activeBusinessLines.some(businessLine => businessLine.id === id); }, allBusinessLinesActive() { if (this.activeBusinessLines.length === 0) { return false; } return this.activeBusinessLines.length === this.allBusinessLines.length; }, isHyvaUiHeader() { return HEADER_TYPE.length && HEADER_TYPE !== 'default'; }, checkHyvaUiHeaderVariant(needle) { return this.isHyvaUiHeader() && needle === HEADER_TYPE; }, dynamicLayout($el) { const matchMedia = window.matchMedia('(max-width: 768px)'); const isHorizontalViewPopupWidth = this.searchPopupWidth < 700 && !this.isDefaultSearchInput && !this.isFullWidthSearch; this.isHorizontalView = !matchMedia.matches ? isHorizontalViewPopupWidth : true; matchMedia.addEventListener('change', event => { this.isHorizontalView = !matchMedia.matches ? isHorizontalViewPopupWidth : true; }) if (!window._amXSearchConfigFetcher) { window._amXSearchConfigFetcher = new Promise(async resolve => { const cachedData = browserCache.get(CONFIG_QUERY_CACHE_KEY); if (cachedData) { return resolve(cachedData); } const query = `query {config: storeConfig { isProductReviewsBlockEnabled: amasty_xsearch_product_reviews isProductAddToCartBlockEnabled: amasty_xsearch_product_add_to_cart isRedirectToSingleProductEnabled: amasty_xsearch_product_redirect_single_product isFullScreenMode: amasty_xsearch_general_full_screen isGridView: amasty_xsearch_product_popup_display isShowSku: amasty_xsearch_product_show_sku shortDescriptionLength: amasty_xsearch_product_desc_length customMediaUrl: secure_base_media_url amasty_xsearch_products_title: amasty_xsearch_product_title amasty_xsearch_popularSearches_title: amasty_xsearch_popular_searches_title amasty_xsearch_browsingHistory_title: amasty_xsearch_browsing_history_title amasty_xsearch_recentSearches_title: amasty_xsearch_recent_searches_title amasty_xsearch_recentlyViewed_title: amasty_xsearch_recently_viewed_title amasty_xsearch_landingPage_title: amasty_xsearch_landing_page_title amasty_xsearch_bestsellers_position amasty_xsearch_faq_title amasty_xsearch_brand_title amasty_xsearch_blog_title amasty_xsearch_category_title amasty_xsearch_bestsellers_title amasty_xsearch_page_title amasty_xsearch_popularSearches_first_click: amasty_xsearch_popular_searches_first_click amasty_xsearch_browsingHistory_first_click: amasty_xsearch_browsing_history_first_click amasty_xsearch_recentSearches_first_click: amasty_xsearch_recent_searches_first_click amasty_xsearch_layout_enabled amasty_xsearch_layout_border amasty_xsearch_layout_hover amasty_xsearch_layout_highlight amasty_xsearch_layout_background amasty_xsearch_layout_text amasty_xsearch_layout_hover_text amasty_xsearch_layout_search_button amasty_xsearch_layout_search_button_text }}`; const response = await this.fetch(query, {}, CONFIG_QUERY_CACHE_KEY, false); if (response.errors && response.errors.length > 0) { console.error(response.errors); } browserCache.set(CONFIG_QUERY_CACHE_KEY, response); resolve(response); }); } _amXSearchConfigFetcher.then(response => { if (!response?.data?.config) { return; } this.config = response.data.config; this.processCustomLayoutStyles($el); }); if (typeof this.searchOpen !== "undefined") { this.$watch('searchOpen', val => { if (!val) { return; } else { document.body.style.overflow = 'hidden'; } requestAnimationFrame(() => { const searchInput = document.querySelector('#search'); searchInput && searchInput.focus(); }); }); } if (typeof this.showOverlay !== "undefined") { this.$watch('showOverlay', val => { if (!val) { return; } this.applyHyvaUiHeaderConfig() }); } this.applyHeaderTypeToContainers(); }, isSidebarSectionsDisabled() { if (!this.isHorizontalView) { return !Object.entries(this.sections).some(([key, value]) => key !== 'products' && key !== 'bestsellers' && key !== 'recentlyViewed' && value.total_count > 0 ); } }, showSideBar() { const recentlyViewed = this.sections?.recentlyViewed; return this.latestQuery.length >= 3 || (recentlyViewed && recentlyViewed?.items?.length); }, showOnFirstClick(blockName) { const sectionsToCheck = [ 'popularSearches', 'browsingHistory', 'recentSearches' ]; if (!sectionsToCheck.includes(blockName)) { return false; } return this.latestQuery.length < this.minSearchLength && this.config[`amasty_xsearch_${blockName}_first_click`] && this.sections[blockName]?.items?.length; }, processCustomLayoutStyles() { const conf = key => this.config[`amasty_xsearch_layout_${key}`]; if (!conf("enabled")) { return ""; } const styles = [ "border", "hover", "highlight", "background", "text", "hover_text", 'search_button', 'search_button_text' ]; const cachedConf = styles.reduce((acc, key) => { acc[key] = conf(key); return acc; }, {}); const getDarken = (color, amount) => { const hex = parseInt(color.slice(1), 16); const r = Math.min(255, Math.max(0, ((hex >> 16) & 0xff) + amount)); const g = Math.min(255, Math.max(0, ((hex >> 8) & 0xff) + amount)); const b = Math.min(255, Math.max(0, (hex & 0xff) + amount)); return `#${((r << 16) | (g << 8) | b).toString(16).padStart(6, "0")}`; }; const prefix = "--amsearch-color-"; styles.forEach((key) => { const color = cachedConf[key]; document.body.style.setProperty(prefix + key, `#${color}`); document.body.style.setProperty(`${prefix + key}-focus`, getDarken(`#${color}`, -12)); document.body.style.setProperty(`${prefix + key}-hover`, getDarken(`#${color}`, -16)); }); }, canShowSection(sectionData) { return sectionData && sectionData.items && sectionData.items.length > 0; }, initialSectionLoad() { const req = this.fetch(`query xSearchQuery { recentlyViewed: xsearchRecentlyViewed { items { small_image { label url } id is_salable short_description { html } name options_container rating_summary reviews_count sku url_key url_suffix price_range { minimum_price { regular_price { value currency } final_price { value currency } } maximum_price { regular_price { value currency } final_price { value currency } } } } } }`, {}, INITIAL_QUERY_CACHE_KEY); req.then(response => { if (response.errors && response.errors.length > 0) { console.error(response.errors); } this.searchInitialized = true; this.processResponse(response); }); }, encodeHtml(html) { const txt = document.createElement('textarea'); txt.textContent = html; return txt.innerHTML; }, sanitize(value) { if (typeof DOMPurify === 'function') { return DOMPurify.sanitize(value) } else { return this.encodeHtml(value) } }, doSearch() { const { searchInput } = this.$refs; const { latestQuery, minSearchLength, latestBusinessLinesLength } = this; const inputText = this.sanitize(searchInput.value); const inputCategories = this.activeBusinessLines.map(businessLine => businessLine.id); if ( ((inputText !== latestQuery) || (inputCategories.length !== latestBusinessLinesLength)) && cache[PREV_QUERY_CACHE_KEY] ) { delete cache[PREV_QUERY_CACHE_KEY]; } this.latestQuery = this.sanitize(searchInput.value); this.latestBusinessLinesLength = inputCategories.length; if (inputText.length < minSearchLength) { this.initialSectionLoad(); return; } this.noResultsFound = null; this.errorMessage = null; const query = `query xSearchQuery($inputText: String!, $inputCategories: [Int!] = null) {products: xsearchProducts(search: $inputText, business_lines: $inputCategories) { code items { __typename mcr_subtitle small_image { label url } id is_salable short_description { html } name rating_summary reviews_count sku url_key url_suffix price_range { minimum_price { regular_price { value currency } final_price { value currency } } maximum_price { regular_price { value currency } final_price { value currency } } } } total_count } terms: xsearchRelatedTerms(search: $inputText) { items { count name } } }`; const req = this.fetch(query, { inputText, inputCategories }, PREV_QUERY_CACHE_KEY); req.then(response => { if (response.errors && response.errors.length > 0) { this.errorMessage = response.errors[0].message; console.error(this.errorMessage); } this.searchInitialized = true; this.processResponse(response); }); }, fetch(query, variables = {}, cacheKey = null, useLoading = true) { if (cacheKey && cache[cacheKey]) { return Promise.resolve(cache[cacheKey]); } if (useLoading) { this.isLoading = true; } const req = fetch(`${BASE_URL}graphql`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'Store': 'uk' }, credentials: 'include', body: JSON.stringify({query, variables}), }); return req.then(response => { if (!response.ok) { throw new Error(`HTTP error: ${response.status}`); } const body = response.json(); if (cacheKey) { cache[cacheKey] = body; } return body; }) .catch(reason => { console.error(reason); }) .finally(() => { this.isLoading = false; }); }, checkSearchInput() { if (this.$refs.searchInput.value === '') { this.clear(); } }, redirect() { this.isLoading = true; const { searchInput } = this.$refs; const inputText = this.sanitize(searchInput.value); const products = this.sections.products; if (products && products[0] && products[0].items.length === 1 && this.config.isRedirectToSingleProductEnabled) { location.href = this.getProductUrl(products[0].items[0]); return; } const url = 'https://www.macron.com/uk/catalogsearch/result/?q='; location.href = url + inputText; }, focusElement(element) { if (element && element.nodeName === "DIV") { element.focus(); return true; } return false; }, processResponse(response) { this.updateSections(response.data); }, clear() { const initialQueryCache = cache[INITIAL_QUERY_CACHE_KEY]; if (!initialQueryCache) { return; } initialQueryCache.then(result => { this.updateSections(result.data ?? {}); }); }, closeSearch() { if (this.searchOpen) { this.searchOpen = false; document.body.style.overflow = ''; } this.$nextTick(() => { this.showOverlay = false; this.searchInitialized = false; }) if (this.checkHyvaUiHeaderVariant('c')) { this.$refs.searchContainerDesktop.classList.remove(HEADER_TYPE + '-header-type'); } }, processItemsWithRating(value) { if (value.items) { value.items = value.items.map(this.getRating.bind(this)); } return value; }, processSection(key, value) { if (!value) { return value; } let processedValue; switch (key) { case 'recentlyViewed': case 'bestsellers': processedValue = this.processItemsWithRating(value); if (processedValue.items) { processedValue.items = (processedValue.items || []).map(item => { item.isSliderItem = true; return item; }); } break; case 'products': processedValue = this.processItemsWithRating(value); processedValue = this.processProductName(processedValue); break; default: processedValue = value; } processedValue.title = this.config[`amasty_xsearch_${key}_title`]; return processedValue; }, updateSections(rows) { if (!this.showOverlay) { this.showOverlay = true; } this.isLoading = false; this.noResultsFound = this.latestQuery.length >= this.minSearchLength && rows.products?.every( products => !products?.total_count ); if (!this.noResultsFound) { this.errorMessage = null; } for (const key in dataSections) { const data = rows[key]; if (key === 'products') { if (data) { const businessLineNames = this.activeBusinessLines.map(businessLine => businessLine.name); this.sections[key] = data.map((products, index) => { if (products?.items?.length > 0) { const section = this.processSection(key, products); if (businessLineNames[index]) { section.title = businessLineNames[index]; } return section; } return {items: [], total_count: 0}; }); } else { this.sections[key] = [{items: [], total_count: 0}]; } } else { this.sections[key] = data?.items?.length > 0 ? this.processSection(key, data) : {items: [], total_count: 0}; } } if (this.latestQuery.length >= this.minSearchLength) { return; } for (const key in this.slider) { const items = rows[key]?.items; if (rows.hasOwnProperty(key) && items?.length && !this.slider[key]) { this.slider[key] = this.amXsearchCarouselComponent(key, items.length); } } } } } })(); </script> <script> 'use strict'; /** * Carousel component for xsearch * * @param key * @param itemCount * @returns Object */ function amXsearchCarouselComponent(key, itemCount) { return { itemCount, pageSize: 4, active: 0, slider: null, pageFillers: 0, sliderEl: false, smallWindowItemWidth: false, init($refs) { const sliderEl = $refs[`${key}Container`]; if (!sliderEl || itemCount === 0) { return this; } if (sliderEl) { if (!this.isDefaultSearchInput && !this.isFullWidthSearch) { if (this.searchPopupWidth <= 900) { this.smallWindowItemWidth = sliderEl.clientWidth / 3; } if (this.searchPopupWidth <= 700) { this.smallWindowItemWidth = sliderEl.clientWidth / 2; } if (this.searchPopupWidth <= 500) { this.smallWindowItemWidth = sliderEl.clientWidth - 30; } } } this.sliderEl = sliderEl; this.recalculate(); }, getSlider() { return this.sliderEl.querySelector('.carousel-slides'); }, calcPageSize() { const slider = this.getSlider(); if (!slider) { return this; } const slides = slider.querySelectorAll('.carousel-slide'); if (this.smallWindowItemWidth) { slides.forEach(slide => { slide.style.width = `${this.smallWindowItemWidth}px`; }); } const firstSlide = slides[0]; this.itemCount = slides.length; this.pageSize = Math.round(slider.clientWidth / firstSlide.clientWidth); this.pageFillers = this.pageSize * Math.ceil(this.itemCount / this.pageSize) - this.itemCount; }, calcActive() { const slider = this.getSlider(); if (!slider) { return this; } const sliderItems = Math.round(this.itemCount) + Math.round(this.pageFillers); const calculatedActiveSlide = Math.round( Math.round(slider.scrollLeft) / (Math.round(slider.scrollWidth) / sliderItems) ); this.active = Math.round(calculatedActiveSlide / Math.round(this.pageSize)) * Math.round(this.pageSize); }, prev() { this.scrollTo(this.active - this.pageSize); }, next() { this.scrollTo(this.active + this.pageSize); }, scrollTo(index) { const slider = this.getSlider(); if (!slider) { return this; } const slideWidth = slider.scrollWidth / (this.itemCount + this.pageFillers); slider.scrollLeft = Math.floor(slideWidth) * index; this.calcActive(); }, isActive(index) { return index === this.active; }, recalculate() { this.calcPageSize(); setTimeout(() => this.calcActive(), 100); }, onResize() { this.calcPageSize(); setTimeout(() => this.calcActive(), 100); } }; } </script> <script> 'use strict'; function amXsearchAutocompleteHyvaUIHeaderCompat() { const HEADER_TYPE = 'b'; return { applyHyvaUiHeaderConfig() { const searchContent = document.getElementById('search-content'); if (this.isFullWidthSearch) { if (!this.isHorizontalView) { if (this.checkHyvaUiHeaderVariant('b')) { searchContent.style = 'max-width:none'; searchContent.parentNode.style = 'padding-right:0; padding-left:0;'; } if (this.checkHyvaUiHeaderVariant('c')) { this.$refs.searchContainerDesktop.classList.add(HEADER_TYPE + '-header-type'); this.$refs.searchForm.style = 'padding-right:0; padding-left:0;'; } } if (this.checkHyvaUiHeaderVariant('a')) { searchContent.style = 'max-width: none'; } } }, applyHeaderTypeToContainers() { const searchHeader = document.getElementById('header'); const columnMain = document.querySelector('.column.main'); const searchContent = document.getElementById('search-content'); const headerTypeClass = HEADER_TYPE + '-header-type'; if (searchHeader || columnMain) { searchHeader.classList.add(headerTypeClass); columnMain.classList.add(headerTypeClass); } if (this.checkHyvaUiHeaderVariant('a')) { searchContent.className = 'container'; } } } } </script> <div :class="{ 'container': !config.isFullScreenMode, 'relative mx-auto text-black z-20': true, 'max-w-none px-0': isHyvaUiHeader() && isFullWidthSearch, 'px-0': isHyvaUiHeader() && isHorizontalView }" x-data="Object.assign( {amXsearchCarouselComponent}, amXsearchProductsComponent(), amXsearchAutocompleteComponent(), amXsearchAutocompleteHyvaUIHeaderCompat(), )" x-init="dynamicLayout($el)" x-cloak> <div class="flex flex-row justify-center items-center w-full h-full fixed select-none z-50" style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgba(255,255,255,0.7);" x-show="isLoading" x-cloak x-transition:enter="ease-out duration-200" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0"> <!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL --> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" stroke="currentColor" class="text-primary" width="57" height="57" role="img"> <g fill="none" fill-rule="evenodd"> <g transform="translate(1 1)" stroke-width="2"> <circle cx="5" cy="50" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcMode="linear" repeatCount="indefinite"/> </circle> <circle cx="27" cy="5" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcMode="linear" repeatCount="indefinite"/> </circle> <circle cx="49" cy="50" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcMode="linear" repeatCount="indefinite"/> </circle> </g> </g> <title>loader</title></svg> <div class="ml-10 text-primary text-xl"> Loading... </div> </div> <div class="fixed inset-0 bg-secondary bg-opacity-100 z-20 w-full h-full top-0 left-0 right-0 bottom-0" @keydown.window.escape="closeSearch()"></div> <div class="form mini-search z-20 relative" :class="{ 'right-0': !isHyvaUiHeader(), 'md:flex md:justify-center': checkHyvaUiHeaderVariant('c') && !isDefaultSearchInput && !isFullWidthSearch }" > <div class="flex items-center justify-between lgs:justify-center p-3 md:px-14 md:h-[105px] lg:h-auto md:py-8 lgs:pt-[60px] lgs:pb-[50px]"> <div id="header-logo" class="flex items-center order-1 sm:order-2 lg:order-1 w-full py-2 sm:w-auto min-w-[120px] lg:flex-none"> <a class="flex shrink-0 items-center justify-center text-xl font-medium tracking-wide text-gray-800 no-underline hover:no-underline font-title max-h-[24px] w-[107px] lg:w-[171px] relative" href="https://www.macron.com/uk/" aria-label="Go&#x20;to&#x20;Home&#x20;page" > <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 1047.3 363.1" fill="currentColor" class="w-[130px] h-[60px] lg:w-[200px] lg:h-[110px] absolute text-black" width="24" height="24" role="img"> <g> <path d="M925.5,128h-53v115.2h29.6v-74.1h0c1.2-10.9,11-18.7,21.9-17.5,9.2,1,16.4,8.3,17.5,17.5v74.1h29.8v-74.1c0-22.7-20.5-41.1-45.8-41.1"/> <path d="M729.9,128c-23.7-.7-43.5,17.8-44.3,41.5v73.7h29.6v-69.9c-.7-6,2.3-11.8,7.7-14.5,3.1-1.2,6.4-1.8,9.7-1.9,4,.2,7.9-1.3,10.8-4,.4-.4,21.5-24.9,21.5-24.9h-34.9Z"/> <path d="M395.3,128c-12.4-.2-24.6,3.9-34.5,11.4-9.9-7.6-22-11.6-34.5-11.4h-49.4v115.2h29.8v-73.2c1.2-10.8,10.9-18.6,21.7-17.5,9.2,1,16.5,8.3,17.5,17.5v73.2h29.8v-73.2c1.2-10.8,10.9-18.6,21.7-17.5,9.2,1,16.5,8.3,17.5,17.5v73.2h29.8v-75.1c0-22.1-22.1-40.1-49.4-40.1"/> <path d="M525,130.4c-6.2-1.7-12.6-2.5-19-2.4h-43.6c0,0,18.5,21.4,18.9,21.8,2.9,2.8,6.8,4.2,10.8,4,2.9.2,8.5.1,11.4.2,2.8,0,5.7.1,8.5.6,7.1,1.5,12.5,7.5,13.1,14.8h-30.7c-20.4-.8-37.5,15.2-38.2,35.5-.8,20.4,15.2,37.5,35.5,38.2.9,0,1.8,0,2.7,0h59.3v-73.9c-.3-17.7-11.8-33.3-28.6-38.8M481.1,206.2c0-7.5,6.1-13.6,13.5-13.6h30.4v27.2h-30.4c-7.5,0-13.5-6.1-13.5-13.6"/> <path d="M806.3,126.5c-32.7,0-56.2,26.5-56.2,59.2s23.6,59.2,56.2,59.2,56.2-26.5,56.2-59.2-23.6-59.2-56.2-59.2M806.3,219.6c-18.8,0-27.6-15.2-27.6-34s8.9-34,27.6-34,27.8,15.2,27.8,34-9,34-27.8,34"/> <path d="M646.5,201.5c-3.3,11.1-13.6,18.5-25.2,18.1-18.8,0-27.6-15.2-27.6-34s8.8-34,27.6-34c11.2-.4,21.3,6.6,24.9,17.2h29.2c-6-25-28.4-42.5-54.1-42.4-32.6,0-56.2,26.5-56.2,59.1s23.6,59.1,56.2,59.1c26,0,48.6-17.9,54.3-43.3h-29.1Z"/> </g> <g> <path d="M163.2,160.7c-4,0-7.8-1.5-10.7-4.2l-75.7-65,86.5,198,86.3-198-75.7,65.1c-2.9,2.7-6.7,4.1-10.7,4.1"/> <path d="M157,132.6c3.8,3.3,9.5,3.1,13-.6l25.8-22.2c2.3-2.1,2.4-5.7.3-8-.1-.2-.3-.3-.5-.4l-25.9-22.4c-3.5-3.3-8.9-3.5-12.6-.4l-26.5,22.9c-2.3,2.1-2.5,5.7-.5,8,.1.2.3.3.5.5l26.3,22.7Z"/> </g> <title>macron-logo</title></svg> </a> </div> <button @click="closeSearch()" type="button" class="lgs:hidden order-2 p-3 lg:p-[21px] btn btn-tertiary" aria-label="Close&#x20;fullscreen" > <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1-x" version="1.1" viewBox="0 0 18.3 18.3" width="17" height="17" aria-hidden="true"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .x-st0 { fill: none; stroke: currentColor; stroke-miterlimit: 4; stroke-width: 1.5px; } </style> </defs> <g id="Raggruppa_4459"> <path id="Tracciato_156-x" class="x-st0" d="M.53.53l17.24,17.24"/> <path id="Tracciato_155-x" class="x-st0" d="M17.77.53L.53,17.77"/> </g> </svg> </button> </div> <div class="absolute top-0 right-0 hidden lgs:block"> <button @click="closeSearch()" type="button" class="p-3 lg:p-[21px] btn btn-tertiary" aria-label="Close&#x20;fullscreen" > <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1-x" version="1.1" viewBox="0 0 18.3 18.3" width="17" height="17" aria-hidden="true"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .x-st0 { fill: none; stroke: currentColor; stroke-miterlimit: 4; stroke-width: 1.5px; } </style> </defs> <g id="Raggruppa_4459_2"> <path id="Tracciato_156-x_2" class="x-st0" d="M.53.53l17.24,17.24"/> <path id="Tracciato_155-x_2" class="x-st0" d="M17.77.53L.53,17.77"/> </g> </svg> </button> </div> <form id="search_mini_form" @submit.prevent="redirect()" action="https://www.macron.com/uk/catalogsearch/result/?q=" :class="{ 'w-full absolute right-0': checkHyvaUiHeaderVariant('a') && !isDefaultSearchInput && !isFullWidthSearch, 'justify-end': !checkHyvaUiHeaderVariant('c') }" class="flex" method="GET"> <label class="hidden" for="search" data-role="mini-search-label"> <span>Search</span> </label> <div class="w-full flex align-center justify-center px-3" :style="`max-width: ${!isDefaultSearchInput && !isFullWidthSearch ? searchPopupWidth + 'px' : '100%'}`"> <div class="w-full flex max-w-[605px] relative"> <input id="search" x-ref="searchInput" maxlength="128" form="search_mini_form" name="q" value="" autocomplete="off" placeholder="Search&#x20;entire&#x20;store&#x20;here..." class="relative leading-normal lg:leading-loose transition appearance-none text-primary z-20 flex-am-search-sidebar font-semibold text-[12px] lg:text-sm rounded-base py-[9px] px-3.5 form-input min-h-9 focus:border-primary" :style="`width: ${checkHyvaUiHeaderVariant('c') && !isDefaultSearchInput && !isFullWidthSearch ? searchPopupWidth + 'px' : '100%'}`" @focus="doSearch()" @search="checkSearchInput()" @input.debounce.500="doSearch()" x-intersect:enter.once="applyHyvaUiHeaderConfig()" @keydown.arrow-down.prevent="focusElement($el.querySelector('[tabindex]'))"/> <button type="submit" title="Search" class="am-custom-search-button h-full action search w-auto justify-center text-sm z-30 absolute right-5" x-bind:disabled="isLoading || latestQuery.length < minSearchLength" :class="{ 'opacity-50': isLoading || latestQuery.length < minSearchLength, 'am-custom-search-button': false, 'rounded-tr': isHyvaUiHeader() }" aria-label="Search"> <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1-search" version="1.1" viewBox="0 0 20.79 21.94" class="w-5 h-5" width="20" height="20" aria-hidden="true"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .search-st10 { fill: none; stroke: currentColor; stroke-width: 1.5px; } </style> </defs> <g id="Raggruppa_4447_3"> <circle id="Ellisse_55-search_3" class="search-st10" cx="9.25" cy="9.25" r="8.5"/> <line id="Linea_1250-search_3" class="search-st10" x1="14.25" y1="15.25" x2="20.25" y2="21.41"/> </g> </svg> </button> </div> </div> </form> <div class="flex justify-start sm:justify-center gap-2 lg:gap-4 px-3 py-4 lg:py-[52px] overflow-x-auto"> <button @click="businessLineToggle(0)" :class="allBusinessLinesActive() ? 'font-semibold border-black' : 'font-light border-whiteSmoke'" class="leading-normal text-[12px] lg:text-base py-[9px] px-3.5 rounded-base bg-whiteSmoke border whitespace-nowrap" > All </button> <button x-init="allBusinessLines.push({ id: 6, name: 'Team\u0020Sports' })" @click="businessLineToggle(6, 'Team\u0020Sports')" :class="businessLineActive(6) ? 'font-semibold border-black' : 'font-light border-whiteSmoke'" class="leading-normal text-[12px] lg:text-base py-[9px] px-3.5 rounded-base bg-whiteSmoke border whitespace-nowrap" > Team Sports </button> <button x-init="allBusinessLines.push({ id: 714, name: 'Racket\u0020Sports\u0020\u0026\u0020Sportswear' })" @click="businessLineToggle(714, 'Racket\u0020Sports\u0020\u0026\u0020Sportswear')" :class="businessLineActive(714) ? 'font-semibold border-black' : 'font-light border-whiteSmoke'" class="leading-normal text-[12px] lg:text-base py-[9px] px-3.5 rounded-base bg-whiteSmoke border whitespace-nowrap" > Racket Sports &amp; Sportswear </button> <button x-init="allBusinessLines.push({ id: 755, name: 'Merchandising' })" @click="businessLineToggle(755, 'Merchandising')" :class="businessLineActive(755) ? 'font-semibold border-black' : 'font-light border-whiteSmoke'" class="leading-normal text-[12px] lg:text-base py-[9px] px-3.5 rounded-base bg-whiteSmoke border whitespace-nowrap" > Merchandising </button> <button x-init="allBusinessLines.push({ id: 788, name: 'Clubhouse' })" @click="businessLineToggle(788, 'Clubhouse')" :class="businessLineActive(788) ? 'font-semibold border-black' : 'font-light border-whiteSmoke'" class="leading-normal text-[12px] lg:text-base py-[9px] px-3.5 rounded-base bg-whiteSmoke border whitespace-nowrap" > Clubhouse </button> </div> <template x-if="searchInitialized"> <div class="w-full -right-position -bottom-position top-15 bg-secondary overflow-auto text-sm amsearch-container max-h-[calc(100vh_-_188px)] lg:max-h-[calc(100vh_-_326px)]" :class="{ 'absolute': !config.isFullScreenMode || isHyvaUiHeader() }" tabindex="-1" x-cloak :style="`${!isDefaultSearchInput && !isFullWidthSearch ? 'max-width:' + searchPopupWidth + 'px' : ''}; ${!isHorizontalView && checkHyvaUiHeaderVariant('a') ? 'top: 44px; margin-top: 1px;' : ''}`" x-show="!isLoading && showOverlay"> <div class="flex w-full content-start flex-wrap box-border relative" :class="{ 'flex-col': isHorizontalView, 'flex-col md:flex-row md:justify-center': !isHorizontalView, }"> <div class="w-full md:border-r pt-3.5 am-search-sidebar" :class="{ 'border-gray-600': showSideBar() && getResultProductsCount() > 0, 'hidden': latestQuery.length < minSearchLength && ( !showOnFirstClick('recentSearches') && !showOnFirstClick('popularSearches') && !showOnFirstClick('browsingHistory') ) || isSidebarSectionsDisabled(), 'am-search-horizontal-view': isHorizontalView, }"> <template x-if=" sections?.blog?.length"> <div x-show="(latestQuery.length >= minSearchLength || showOnFirstClick('blog'))" x-cloak> <div class="w-full mb-6 am-search-item-list"> <h3 class="text-lg font-bold mb-2 px-4" x-text="sections.blog.title"></h3> <div> <template x-for="(item, index) in sections.blog.items" :key="index"> <div> <a class="w-full block hover:bg-gray-100 py-2 px-4" :href="window.BASE_URL + item.url"> <span x-html="item.title" class="font-semibold"></span> </a> <span class="text-black block mt-1 px-4 block" x-html="item.description"></span> </div> </template> </div> </div> </div> </template> <template x-if=" sections?.faq?.length"> <div x-show="(latestQuery.length >= minSearchLength || showOnFirstClick('faq'))" x-cloak> <div class="w-full mb-6 am-search-item-list"> <h3 class="text-lg font-bold mb-2 px-4" x-text="sections.faq.title"></h3> <template x-for="(item, index) in sections.faq.items" :key="index"> <a class="w-full block hover:bg-gray-100 py-2 px-4" :href="window.BASE_URL + item.url" x-html="item.name"> </a> </template> </div> </div> </template> <template x-if=" sections?.brand?.length"> <div x-show="(latestQuery.length >= minSearchLength || showOnFirstClick('brand'))" x-cloak> <div class="w-full mb-6 am-search-item-list"> <h3 class="text-lg font-bold mb-2 px-4" x-text="sections.brand.title"></h3> <template x-for="(item, index) in sections.brand.items" :key="index"> <a class="w-full block hover:bg-gray-100 py-2 px-4" :href="`${BASE_URL + item.url}`" x-html="item.name"> </a> </template> </div> </div> </template> <template x-if=" sections?.landingPage?.length"> <div x-show="(latestQuery.length >= minSearchLength || showOnFirstClick('landingPage'))" x-cloak> <div class="w-full mb-6 am-search-item-list"> <h3 class="text-lg font-bold mb-2 px-4" x-text="sections.landingPage.title"></h3> <template x-for="(item, index) in sections.landingPage.items" :key="index"> <a class="w-full block hover:bg-gray-100 py-2 px-4" :href="window.BASE_URL + item.url" x-html="item.title"> </a> </template> </div> </div> </template> <template x-if="isHorizontalView &amp;&amp; !noResultsFound &amp;&amp; sections?.products?.length"> <div x-show="(latestQuery.length >= minSearchLength || showOnFirstClick('products'))" x-cloak> <template x-for="(products, outerIndex) in (sections.products || [])" :key="outerIndex"> <div class="w-full pb-16 px-3 lg:px-0" x-show="products.total_count > 0"> <div class="flex row justify-between w-full items-center mb-[18px] lg:mb-[42px]"> <h3 class="text-xl leading-[1.2] font-semibold"> <span x-text="products.title"></span> </h3> <div class="am-search-view-all" x-show="products.total_count >= 1"> <a :href="resultPageUrl + latestQuery" class="text-primary hover:text-primary text-[12px]"> <span class="underline">View All</span> <span>(<span x-text="products.total_count"></span>)</span> </a> </div> </div> <div class="relative grid grid-cols-2 lg:grid-cols-3 w-full gap-x-[7px] lg:gap-x-[23px] gap-y-[19px] lg:gap-y-[26px]"> <template x-for="(product, innerIndex) in (products.items || [])" :key="innerIndex"> <div class="basis-3/12 item product product-item card card-interactive flex round-none shadow-none border-none p-0 amsearch-product-container" :class="{ 'flex-1': !config.isGridView, 'flex-row list-view': config.isGridView && (isFullWidthSearch || isDefaultSearchInput || searchPopupWidth > 900), 'flex-col w-full': !config.isGridView && (!isFullWidthSearch || !isDefaultSearchInput || searchPopupWidth <= 900) }"> <a :href="getProductUrl(product)" class="photo product-item-photo mb-3 lg:mb-3.5 flex justify-center align-center" tabindex="-1" :class="{'md:w-1/6 md:mb-0': config.isGridView}" > <img class="hover:shadow-sm object-cover rounded-base flex-1 aspect-[172/189] lg:aspect-[323/310]" :src="getProductImageUrl(product)" :alt="product.small_image.label" /> </a> <div class="product-info flex flex-col grow"> <div class="mb-[7px] items-start justify-center text-primary text-[12px] lg:text-[18px] font-semibold text-left leading-[1.2]"> <a class="product-item-link action link" :href="getProductUrl(product)" > <span x-html="product.name" class="amsearch-product-name font-semibold leading-[1.2]"></span> </a> <template x-if="config.isShowSku"> <div class="text-sm font-normal"> <span>SKU:</span> <span x-html="product.sku"></span> </div> </template> </div> <template x-if="product.mcr_subtitle"> <div class="font-light text-[12px] lg:text-[18px] leading-[1.2] mb-[7px] lg:mb-[17px]"> <span x-html="product.mcr_subtitle"></span> </div> </template> <div class="items-start justify-center text-primary" :class="{'text-left': config.isGridView, 'text-center': !config.isGridView}" x-html="truncateWithDots(product.short_description.html, config.shortDescriptionLength)" ></div> <template x-if="config.isProductReviewsBlockEnabled"> <div class="py-1" :class="{'mx-0 w-full': config.isGridView, 'mx-auto': !config.isGridView}"> <div class="rating-summary cursor-pointer text-center inline-block" :class="{'flex items-center': config.isGridView && !product.isSliderItem}" :title="product.rating_summary === 0 ? 'Be&#x20;the&#x20;first&#x20;to&#x20;review&#x20;this&#x20;product' : ''"> <div class="flex"> <template x-for="starFilled in product.ratingData.starsFilled"> <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-6 h-6" viewBox="3 0 20 20" :style="`color: ${product.ratingData.yellowHex}`" fill="currentColor"> <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/> </svg> </template> <template x-if="product.ratingData.starFragment > 0"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="3 0 20 20" fill="currentColor" class="w-6 h-6"> <defs> <linearGradient :id="'partialFill' + product.id"> <stop offset="0%" :stop-color="product.ratingData.yellowHex"/> <stop :offset="product.ratingData.starFragment * 100 + '%'" :stop-color="product.ratingData.yellowHex"/> <stop :offset="product.ratingData.starFragment * 100 + '%'" :stop-color="product.ratingData.greyHex"/> <stop offset="100%" :stop-color="product.ratingData.greyHex"/> </linearGradient> </defs> <g :fill="'url(#partialFill' + product.id + ')'"> <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/> </g> </svg> </template> <template x-for="starEmpty in product.ratingData.starsEmpty"> <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-6 h-6" :style="`color: ${product.ratingData.greyHex}`" viewBox="3 0 20 20" fill="currentColor"> <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z" /> </svg> </template> </div> <template x-if="product.rating_summary > 0"> <a :href="`${getProductUrl(product)}`" class="inline-block reviews-link text-blue-500 hover:text-blue-800"> <span class="ml-2 text-sm" x-html="product.reviews_count"></span> Reviews </a> </template> </div> </div> </template> <div class="items-start justify-center text-primary" :class="{'text-left': config.isGridView, 'text-center': !config.isGridView}" x-html="truncateWithDots(product.short_description.html, config.shortDescriptionLength)" ></div> <div class="price-container flex flex-col justify-center items-start mt-auto"> <div class="final-price"> <template x-if="product.price_range.minimum_price.final_price.value < product.price_range.maximum_price.final_price.value"> <span class="price-label"> As low as </span> </template> <template x-if="product.price_range.minimum_price.regular_price.value !== product.price_range.minimum_price.final_price.value"> <div class="inline-block old-price text-primary/20"> <span class="price-container"> <span class="price-label ">Regular Price: </span> <span class="price-wrapper" x-html="hyva.formatPrice(product.price_range.minimum_price.regular_price.value)"></span> </span> </div> </template> <span class="price-wrapper title-font font-medium text-2xl text-gray-900"> <span class="price" x-html="hyva.formatPrice(product.price_range.minimum_price.final_price.value)"></span> </span> </div> </div> <div class="flex items-center" :class="{ 'justify-center': !config.isGridView , 'flex-wrap': config.isGridView && config.isProductAddToCartBlockEnabled && product.is_salable, 'justify-start': config.isGridView }"> <template x-if="config.isProductAddToCartBlockEnabled && product.is_salable"> <button type="button" x-on:click.prevent="addToCart(product, $event)" class="btn btn-primary justify-center text-sm" :class="{ 'mr-auto w-auto': !config.isGridView, 'w-full sm:w-auto mb-3 sm:mb-0': config.isGridView, }" > <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1-shopping-cart" version="1.1" viewBox="0 0 19.86 21.16" class="h-6 w-6 border-current inline" width="25" height="25" role="img"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .shopping-cart-st0 { fill: none; stroke: currentColor; stroke-miterlimit: 10; stroke-width: 1.5px; } </style> </defs> <g id="Raggruppa_4418-shopping-cart_2"> <g id="Raggruppa_4420-shopping-cart_2"> <rect id="Rettangolo_2999-shopping-cart_2" class="shopping-cart-st0" x=".75" y="6.94" width="18.36" height="13.48"/> <path id="Tracciato_598-shopping-cart_2" class="shopping-cart-st0" d="M16.3,6.94c-1.04-3.63-3.5-6.19-6.37-6.19S4.62,3.28,3.57,6.89"/> </g> </g> <title>shopping-cart</title></svg> <span class="ml-2 inline">Add to Cart</span> </button> </template> <template x-if="config.isProductAddToCartBlockEnabled && !product.is_salable"> <div class="w-auto justify-center text-sm text-left"> <span class="inline-block w-3 h-3 bg-red-500 rounded-full flex-shrink-0"></span> <span class="text-sm text-gray-700 text-left">Out of stock</span> </div> </template> </div> </div> </div> </template> </div> </div> </template> </div> </template> <template x-if=" sections?.popularSearches?.length"> <div x-show="(latestQuery.length >= minSearchLength || showOnFirstClick('popularSearches'))" x-cloak> <div class="w-full mb-6 am-search-item-list"> <h3 class="text-lg font-bold mb-2 px-4" x-text="sections.popularSearches.title"></h3> <template x-for="(searchItem, index) in sections.popularSearches.items" :key="index"> <a class="w-full block hover:bg-gray-100 py-2 px-4" :href="resultPageUrl + searchItem.name.toLowerCase().replace(/<[^>]*>?/gm, '')" x-html="searchItem.name"> </a> </template> </div> </div> </template> <template x-if=" sections?.page?.length"> <div x-show="(latestQuery.length >= minSearchLength || showOnFirstClick('page'))" x-cloak> <div class="w-full mb-6 am-search-item-list"> <h3 class="text-lg font-bold mb-2 px-4" x-text="sections.page.title"></h3> <template x-for="(item, index) in sections.page.items" :key="index"> <div> <a class="w-full block hover:bg-gray-100 py-2 px-4" :href="`${BASE_URL + item.url}`"> <span x-html="item.title" class="font-semibold"></span> </a> <span class="text-black block mt-1 px-4 block" x-html="item.description"></span> </div> </template> </div> </div> </template> <template x-if=" sections?.category?.length"> <div x-show="(latestQuery.length >= minSearchLength || showOnFirstClick('category'))" x-cloak> <div class="w-full mb-6 am-search-item-list"> <h3 class="text-lg font-bold mb-2 px-4" x-text="sections.category.title"></h3> <template x-for="(item, index) in sections.category.items" :key="index"> <div> <a class="w-full block hover:bg-gray-100 py-2 px-4" :href="window.BASE_URL + item.url"> <span x-html="item.name" class="font-semibold"></span> </a> <span class="text-black block mt-1 px-4 block" x-html="item.description" x-show="item.description"></span> </div> </template> </div> </div> </template> <template x-if=" sections?.recentSearches?.length"> <div x-show="(latestQuery.length >= minSearchLength || showOnFirstClick('recentSearches'))" x-cloak> <div class="w-full mb-6 am-search-item-list"> <h3 class="text-lg font-bold mb-2 px-4" x-text="sections.recentSearches.title"></h3> <div class="flex direction-row flex-wrap mx-4"> <template x-for="(searchItem, index) in sections.recentSearches.items" :key="index"> <a class="bg-gray-100 hover:bg-gray-200 py-1 px-4 rounded-lg mr-2 mb-2" :href="resultPageUrl + searchItem.name.toLowerCase().replace(/<[^>]*>?/gm, '')" x-html="searchItem.name"> </a> </template> </div> </div> </div> </template> <template x-if=" sections?.browsingHistory?.length"> <div x-show="(latestQuery.length >= minSearchLength || showOnFirstClick('browsingHistory'))" x-cloak> <div class="w-full mb-6 am-search-item-list"> <h3 class="text-lg font-bold mb-2 px-4" x-text="sections.browsingHistory.title"></h3> <template x-for="(searchItem, index) in sections.browsingHistory.items" :key="index"> <a class="w-full block hover:bg-gray-100 py-2 px-4" :href="resultPageUrl + searchItem.name.toLowerCase().replace(/<[^>]*>?/gm, '')" x-html="searchItem.name"> </a> </template> </div> </div> </template> </div> <div class="relative max-w-5xl pt-6 lg:pt-0" :class="{ 'am-search-content': latestQuery.length >= minSearchLength || ( showOnFirstClick('recentSearches') || showOnFirstClick('popularSearches') || showOnFirstClick('browsingHistory') ), 'w-full': latestQuery.length < minSearchLength && ( !showOnFirstClick('recentSearches') && !showOnFirstClick('popularSearches') && !showOnFirstClick('browsingHistory') ), 'am-search-horizontal-view': isHorizontalView, 'am-search-sidebar-disabled': isSidebarSectionsDisabled(), }"> <div class="flex flex-nowrap flex-col" x-show="latestQuery.length < minSearchLength" x-cloak> </div> <template x-if="!noResultsFound && !isHorizontalView && latestQuery.length >= minSearchLength"> <template x-for="(products, outerIndex) in (sections.products || [])" :key="outerIndex"> <div class="w-full pb-16 px-3 lg:px-0" x-show="products.total_count > 0"> <div class="flex row justify-between w-full items-center mb-[18px] lg:mb-[42px]"> <h3 class="text-xl leading-[1.2] font-semibold"> <span x-text="products.title"></span> </h3> <div class="am-search-view-all" x-show="products.total_count >= 1"> <a :href="resultPageUrl + latestQuery" class="text-primary hover:text-primary text-[12px]"> <span class="underline">View All</span> <span>(<span x-text="products.total_count"></span>)</span> </a> </div> </div> <div class="relative grid grid-cols-2 lg:grid-cols-3 w-full gap-x-[7px] lg:gap-x-[23px] gap-y-[19px] lg:gap-y-[26px]"> <template x-for="(product, innerIndex) in (products.items || [])" :key="innerIndex"> <div class="basis-3/12 item product product-item card card-interactive flex round-none shadow-none border-none p-0 amsearch-product-container" :class="{ 'flex-1': !config.isGridView, 'flex-row list-view': config.isGridView && (isFullWidthSearch || isDefaultSearchInput || searchPopupWidth > 900), 'flex-col w-full': !config.isGridView && (!isFullWidthSearch || !isDefaultSearchInput || searchPopupWidth <= 900) }"> <a :href="getProductUrl(product)" class="photo product-item-photo mb-3 lg:mb-3.5 flex justify-center align-center" tabindex="-1" :class="{'md:w-1/6 md:mb-0': config.isGridView}" > <img class="hover:shadow-sm object-cover rounded-base flex-1 aspect-[172/189] lg:aspect-[323/310]" :src="getProductImageUrl(product)" :alt="product.small_image.label" /> </a> <div class="product-info flex flex-col grow"> <div class="mb-[7px] items-start justify-center text-primary text-[12px] lg:text-[18px] font-semibold text-left leading-[1.2]"> <a class="product-item-link action link" :href="getProductUrl(product)" > <span x-html="product.name" class="amsearch-product-name font-semibold leading-[1.2]"></span> </a> <template x-if="config.isShowSku"> <div class="text-sm font-normal"> <span>SKU:</span> <span x-html="product.sku"></span> </div> </template> </div> <template x-if="product.mcr_subtitle"> <div class="font-light text-[12px] lg:text-[18px] leading-[1.2] mb-[7px] lg:mb-[17px]"> <span x-html="product.mcr_subtitle"></span> </div> </template> <div class="items-start justify-center text-primary" :class="{'text-left': config.isGridView, 'text-center': !config.isGridView}" x-html="truncateWithDots(product.short_description.html, config.shortDescriptionLength)" ></div> <template x-if="config.isProductReviewsBlockEnabled"> <div class="py-1" :class="{'mx-0 w-full': config.isGridView, 'mx-auto': !config.isGridView}"> <div class="rating-summary cursor-pointer text-center inline-block" :class="{'flex items-center': config.isGridView && !product.isSliderItem}" :title="product.rating_summary === 0 ? 'Be&#x20;the&#x20;first&#x20;to&#x20;review&#x20;this&#x20;product' : ''"> <div class="flex"> <template x-for="starFilled in product.ratingData.starsFilled"> <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-6 h-6" viewBox="3 0 20 20" :style="`color: ${product.ratingData.yellowHex}`" fill="currentColor"> <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/> </svg> </template> <template x-if="product.ratingData.starFragment > 0"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="3 0 20 20" fill="currentColor" class="w-6 h-6"> <defs> <linearGradient :id="'partialFill' + product.id"> <stop offset="0%" :stop-color="product.ratingData.yellowHex"/> <stop :offset="product.ratingData.starFragment * 100 + '%'" :stop-color="product.ratingData.yellowHex"/> <stop :offset="product.ratingData.starFragment * 100 + '%'" :stop-color="product.ratingData.greyHex"/> <stop offset="100%" :stop-color="product.ratingData.greyHex"/> </linearGradient> </defs> <g :fill="'url(#partialFill' + product.id + ')'"> <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/> </g> </svg> </template> <template x-for="starEmpty in product.ratingData.starsEmpty"> <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-6 h-6" :style="`color: ${product.ratingData.greyHex}`" viewBox="3 0 20 20" fill="currentColor"> <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z" /> </svg> </template> </div> <template x-if="product.rating_summary > 0"> <a :href="`${getProductUrl(product)}`" class="inline-block reviews-link text-blue-500 hover:text-blue-800"> <span class="ml-2 text-sm" x-html="product.reviews_count"></span> Reviews </a> </template> </div> </div> </template> <div class="items-start justify-center text-primary" :class="{'text-left': config.isGridView, 'text-center': !config.isGridView}" x-html="truncateWithDots(product.short_description.html, config.shortDescriptionLength)" ></div> <div class="price-container flex flex-col justify-center items-start mt-auto"> <div class="final-price"> <template x-if="product.price_range.minimum_price.final_price.value < product.price_range.maximum_price.final_price.value"> <span class="price-label"> As low as </span> </template> <template x-if="product.price_range.minimum_price.regular_price.value !== product.price_range.minimum_price.final_price.value"> <div class="inline-block old-price text-primary/20"> <span class="price-container"> <span class="price-label ">Regular Price: </span> <span class="price-wrapper" x-html="hyva.formatPrice(product.price_range.minimum_price.regular_price.value)"></span> </span> </div> </template> <span class="price-wrapper title-font font-medium text-2xl text-gray-900"> <span class="price" x-html="hyva.formatPrice(product.price_range.minimum_price.final_price.value)"></span> </span> </div> </div> <div class="flex items-center" :class="{ 'justify-center': !config.isGridView , 'flex-wrap': config.isGridView && config.isProductAddToCartBlockEnabled && product.is_salable, 'justify-start': config.isGridView }"> <template x-if="config.isProductAddToCartBlockEnabled && product.is_salable"> <button type="button" x-on:click.prevent="addToCart(product, $event)" class="btn btn-primary justify-center text-sm" :class="{ 'mr-auto w-auto': !config.isGridView, 'w-full sm:w-auto mb-3 sm:mb-0': config.isGridView, }" > <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1-shopping-cart" version="1.1" viewBox="0 0 19.86 21.16" class="h-6 w-6 border-current inline" width="25" height="25" role="img"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .shopping-cart-st0 { fill: none; stroke: currentColor; stroke-miterlimit: 10; stroke-width: 1.5px; } </style> </defs> <g id="Raggruppa_4418-shopping-cart_3"> <g id="Raggruppa_4420-shopping-cart_3"> <rect id="Rettangolo_2999-shopping-cart_3" class="shopping-cart-st0" x=".75" y="6.94" width="18.36" height="13.48"/> <path id="Tracciato_598-shopping-cart_3" class="shopping-cart-st0" d="M16.3,6.94c-1.04-3.63-3.5-6.19-6.37-6.19S4.62,3.28,3.57,6.89"/> </g> </g> <title>shopping-cart</title></svg> <span class="ml-2 inline">Add to Cart</span> </button> </template> <template x-if="config.isProductAddToCartBlockEnabled && !product.is_salable"> <div class="w-auto justify-center text-sm text-left"> <span class="inline-block w-3 h-3 bg-red-500 rounded-full flex-shrink-0"></span> <span class="text-sm text-gray-700 text-left">Out of stock</span> </div> </template> </div> </div> </div> </template> </div> </div> </template> </template> <div class="p-4 box-border w-full h-full flex" x-show="noResultsFound && !errorMessage" x-cloak> <div class="flex justify-center content-center flex-row items-center flex-wrap align-center w-full h-full max-h-[90vh] text-center text-xl word-break" x-html="'We could not find anything for&nbsp;<strong>&quot;%s&quot;</strong>'.replace('%s', latestQuery)"> </div> </div> <div class="p-4 box-border w-full h-full flex" x-show="noResultsFound && errorMessage" x-cloak> <div class="text-center flex align-center w-full text-xl justify-center content-center flex-row items-center flex-wrap h-full max-h-[90vh] word-break" x-html="errorMessage"> </div> </div> </div> </div> </div> </template> </div> </div> </div> <!--Cart Drawer--> <!--Main Navigation--> <script> document.addEventListener('alpine:init', () => { Alpine.store('businessLine', { businessLineList: JSON.parse('\u005B\u007B\u0022entity_id\u0022\u003A\u0022clubhouse\u002Dcomingsoon\u0022,\u0022name\u0022\u003A\u0022Clubhouse\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwww.macron.com\u005C\u002Fuk\u005C\u002Fclubhouse\u002Dcomingsoon\u0022\u007D,\u007B\u0022entity_id\u0022\u003A\u0022racket\u002Dsports\u002Dand\u002Dsportswear\u0022,\u0022name\u0022\u003A\u0022Racket\u0020sports\u0020\u0026amp\u003B\u0020Sportswear\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwww.macron.com\u005C\u002Fuk\u005C\u002Fracket\u002Dsports\u002Dand\u002Dsportswear\u0022\u007D,\u007B\u0022entity_id\u0022\u003A\u0022merchandising\u0022,\u0022name\u0022\u003A\u0022Merchandising\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwww.macron.com\u005C\u002Fuk\u005C\u002Fmerchandising\u0022\u007D,\u007B\u0022entity_id\u0022\u003A\u0022team\u002Dsports\u0022,\u0022name\u0022\u003A\u0022Team\u0020Sports\u0022,\u0022url\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwww.macron.com\u005C\u002Fuk\u005C\u002Fteam\u002Dsports\u0022\u007D\u005D') }) }); function initBusinessLine() { return { selectedBusinessLineId: '', selectedBusinessLineName: '', initSelectedBusinessLine() { if (window.businessLineItem) { this.selectBusinessLine({ entity_id: window.businessLineItem.entity_id }); } else { const item = JSON.parse(localStorage.getItem('business_line_item')); this.selectBusinessLine({ entity_id: item.entity_id, isUpdateLocalStorageRequired: false }); } }, selectBusinessLine({entity_id, isUpdateLocalStorageRequired = true}) { const businessLineList = Alpine.store('businessLine').businessLineList; let selectedBusinessLine = businessLineList.find((businessLine) => businessLine.entity_id == entity_id); if (!selectedBusinessLine) { selectedBusinessLine = businessLineList[0]; } this.selectedBusinessLineId = selectedBusinessLine.entity_id; this.selectedBusinessLineName = selectedBusinessLine.name; this.selectedBusinessLineUrl = selectedBusinessLine.url; if (isUpdateLocalStorageRequired) { localStorage.setItem('business_line_item', JSON.stringify({ entity_id })); } if (this.handleSelectBusinessLine) { this.handleSelectBusinessLine(arguments); } } } } </script> <nav x-data="Object.assign(initMenuMobile_67b8ce932606f(), initBusinessLine())" @private-content-loaded.window="receiveCustomerData($event.detail.data)" @keydown.window.escape="closeMenu()" class="flex z-20 order-2 navigation lgs:hidden" aria-label="Site&#x20;navigation" role="navigation" > <template x-teleport="#header-logo"> <div class="flex items-center h-6 border-l border-l-primary ml-3 px-3 flex-none justify-between cursor-pointer max-[360px]:hidden lgs:hidden" @click="isDropdownVisible = !isDropdownVisible" @click.away="isDropdownVisible = false" x-cloak > <span class="flex items-center font-semibold text-[8px] leading-[10px] line-clamp-2 uppercase mr-[3px] max-w-[72px]" x-html="selectedBusinessLineName"></span> <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" class="flex self-center right-0 h-2 w-2" version="1.1" viewBox="0 0 13.06 7.59" width="25" height="25" aria-hidden="true"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .chevron-down-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; } </style> </defs> <path id="Tracciato_553-chevron-down" class="chevron-down-st0" d="M12.53.53l-6,6L.53.53"/> </svg> <ul class="absolute left-0 top-full w-80 p-6 rounded-xl font-semibold text-xxs shadow-md ml-4 mt-3 bg-container-lighter" :class="{ 'hidden': !isDropdownVisible, 'block': isDropdownVisible }" > <li class="cursor-pointer uppercase hover:opacity-65 transition-opacity flex [&:not(:last-child)>a]:pb-4" :class="{'text-primary/40': selectedBusinessLineId === 'clubhouse\u002Dcomingsoon'}" @click="selectBusinessLine({ entity_id: 'clubhouse\u002Dcomingsoon' })"> <a class="h-full w-full" href="https://www.macron.com/uk/clubhouse-comingsoon"> Clubhouse </a> </li> <li class="cursor-pointer uppercase hover:opacity-65 transition-opacity flex [&:not(:last-child)>a]:pb-4" :class="{'text-primary/40': selectedBusinessLineId === 'racket\u002Dsports\u002Dand\u002Dsportswear'}" @click="selectBusinessLine({ entity_id: 'racket\u002Dsports\u002Dand\u002Dsportswear' })"> <a class="h-full w-full" href="https://www.macron.com/uk/racket-sports-and-sportswear"> Racket sports &amp; Sportswear </a> </li> <li class="cursor-pointer uppercase hover:opacity-65 transition-opacity flex [&:not(:last-child)>a]:pb-4" :class="{'text-primary/40': selectedBusinessLineId === 'merchandising'}" @click="selectBusinessLine({ entity_id: 'merchandising' })"> <a class="h-full w-full" href="https://www.macron.com/uk/merchandising"> Merchandising </a> </li> <li class="cursor-pointer uppercase hover:opacity-65 transition-opacity flex [&:not(:last-child)>a]:pb-4" :class="{'text-primary/40': selectedBusinessLineId === 'team\u002Dsports'}" @click="selectBusinessLine({ entity_id: 'team\u002Dsports' })"> <a class="h-full w-full" href="https://www.macron.com/uk/team-sports"> Team Sports </a> </li> </ul> </div> </template> <template x-teleport="#side-menu"> <button x-ref="mobileMenuTrigger" class="block p-1 rounded outline-offset-2 hover:bg-primary/10 lgs:hidden" @click="openMenu()" type="button" aria-label="Open&#x20;menu" aria-haspopup="menu" :aria-expanded="open" > <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" version="1.1" viewBox="0 0 19 19" width="26" height="20" aria-hidden="true"> <!-- Generator: Adobe Illustrator 29.2.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 116) --> <defs> <style> .st0 { fill: none; stroke: #000; stroke-miterlimit: 10; stroke-width: 1.5px; } </style> </defs> <line class="st0" x1=".7" y1="1.9" x2="18.3" y2="1.9"/> <line class="st0" x1=".7" y1="17.1" x2="18.3" y2="17.1"/> <line class="st0" x1=".7" y1="9.4" x2="18.3" y2="9.4"/> </svg> </button> </template> <div x-ref="mobileMenuNavLinks" class="fixed top-0 flex w-full h-dvh flex-col overflow-y-auto overflow-x-hidden bg-secondary transition-all duration-300 ease-ease-in-out left-full z-30 focus-visible:outline-none focus:outline-none" :class="{'left-0': open, 'left-full': !open }" :aria-hidden="open ? 'false' : 'true'" role="dialog" aria-modal="true" > <div class="h-full flex flex-col overflow-y-scroll"> <div x-show="isSearchOpen" x-transition.opacity x-cloak class="fixed inset-0 bg-primary bg-opacity-75 z-40 overflow-hidden h-screen pt-52" > <script> 'use strict'; function initMiniSearch_67b8ce932639a() { return { minSearchLength: 3, suggestions: [], query: '', suggest() { const search = this.$refs.searchInput; if (search.value.length >= this.minSearchLength) { search.setCustomValidity(''); search.reportValidity(); this.fetchSuggestions(search.value); } else { this.suggestions = []; } }, fetchSuggestions(term) { fetch( window.BASE_URL + 'search/ajax/suggest?' + new URLSearchParams({q: term}), { headers: { 'X-Requested-With': 'XMLHttpRequest' } } ) .then(response => response.json()) .then(result => this.suggestions = result); }, search(term) { const search = this.$refs.searchInput; term = term || search.value; if (term.length < this.minSearchLength) { search.setCustomValidity('Minimum\u0020Search\u0020query\u0020length\u0020is\u00203'); search.reportValidity(); } else { search.setCustomValidity(''); search.value = term; this.$refs.form.submit(); } }, focusElement(element) { if (element && element.nodeName === "DIV") { element.focus(); return true; } else { return false; } }, resetSearch() { const search = this.$refs.searchInput; search.value = ''; this.query = ''; } } } </script> <div class="container pt-2 mx-auto z-50 md:px-14 md:pt-8 md:border-t" x-data="initMiniSearch_67b8ce932639a()" @click.away="isSearchOpen = false" > <form class="form minisearch" id="search_mini_form" x-ref="form" @submit.prevent="search()" action="https://www.macron.com/uk/catalogsearch/result/" method="get" role="search"> <fieldset> <div class="field" :class="{'field--not-empty': query}"> <label class="label search focus-text-secondary z-30" for="search" data-role="minisearch-label"> <span class="sr-only">Search</span> <span>Search&#x20;for&#x20;city,&#x20;street,&#x20;postcode...</span> </label> <div class="control relative"> <span class="absolute inset-y-0 left-2.5 flex items-center"> <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1-search" version="1.1" viewBox="0 0 20.79 21.94" width="20" height="21" role="img"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .search-st10 { fill: none; stroke: currentColor; stroke-width: 1.5px; } </style> </defs> <g id="Raggruppa_4447"> <circle id="Ellisse_55-search" class="search-st10" cx="9.25" cy="9.25" r="8.5"/> <line id="Linea_1250-search" class="search-st10" x1="14.25" y1="15.25" x2="20.25" y2="21.41"/> </g> <title>search</title></svg> </span> <input id="search" x-ref="searchInput" x-model="query" autocomplete="off" name="q" value="" maxlength="128" class="form-input px-10 min-h-12 h-12" @focus.once="suggest" @input.debounce.300="suggest" @keydown.arrow-down.prevent="focusElement($root.querySelector('[tabindex]'))" /> <button type="button" @click="resetSearch()" class="absolute inset-y-0 right-2.5 flex items-center" aria-label="Reset search" x-show="query" x-cloak > <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1-x" version="1.1" viewBox="0 0 18.3 18.3" width="16" height="16" role="img"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .x-st0 { fill: none; stroke: currentColor; stroke-miterlimit: 4; stroke-width: 1.5px; } </style> </defs> <g id="Raggruppa_4459"> <path id="Tracciato_156-x" class="x-st0" d="M.53.53l17.24,17.24"/> <path id="Tracciato_155-x" class="x-st0" d="M17.77.53L.53,17.77"/> </g> <title>x</title></svg> </button> </div> <template x-if="suggestions.length > 0"> <div class="w-full leading-normal transition appearance-none text-secondary-darker flex flex-col mt-1"> <template x-for="suggestion in suggestions"> <div class="flex justify-between p-2 bg-container-lighter even:bg-container mb-1 cursor-pointer border border-container hover:bg-container-darker" tabindex="0" @click="search(suggestion.title)" @keydown.enter="search(suggestion.title)" @keydown.arrow-up.prevent=" focusElement($event.target.previousElementSibling) || $refs.searchInput.focus() " @keydown.arrow-down.prevent="focusElement($event.target.nextElementSibling)" > <span x-text="suggestion.title"></span> <span x-text="suggestion.num_results"></span> </div> </template> </div> </template> <button type="submit" title="Search" class="action search sr-only" aria-label="Search" > Search </button> </div> </fieldset> </form> </div> </div> <div class="flex items-center justify-between p-3 md:py-8 md:px-14"> <button @click="closeMenu()" type="button" class="btn btn-tertiary p-3 lg:p-[21px] order-2" aria-label="Close&#x20;fullscreen" > <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1-x" version="1.1" viewBox="0 0 18.3 18.3" width="17" height="17" aria-hidden="true"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .x-st0 { fill: none; stroke: currentColor; stroke-miterlimit: 4; stroke-width: 1.5px; } </style> </defs> <g id="Raggruppa_4459_2"> <path id="Tracciato_156-x_2" class="x-st0" d="M.53.53l17.24,17.24"/> <path id="Tracciato_155-x_2" class="x-st0" d="M17.77.53L.53,17.77"/> </g> </svg> </button> </div> <div x-ref="infinitySlider" x-init="initBusinessLineSlider()" @scroll="handleBusinessLineScroll()" class="flex gap-x-2 overflow-x-scroll min-h-[50px] h-[50px] mb-2 mt-3 hide-scrollbar px-3"> <div> <button class="text-xs px-5 py-2.5 rounded-xl bg-whiteSmoke whitespace-nowrap" data-child-id='menu_item_clubhouse-comingsoon' :class="{'font-semibold border border-primary': selectedBusinessLineId === 'clubhouse\u002Dcomingsoon'}" @click="selectBusinessLine({ entity_id: 'clubhouse\u002Dcomingsoon', event: $event })"> Clubhouse </button> </div> <div> <button class="text-xs px-5 py-2.5 rounded-xl bg-whiteSmoke whitespace-nowrap" data-child-id='menu_item_racket-sports-and-sportswear' :class="{'font-semibold border border-primary': selectedBusinessLineId === 'racket\u002Dsports\u002Dand\u002Dsportswear'}" @click="selectBusinessLine({ entity_id: 'racket\u002Dsports\u002Dand\u002Dsportswear', event: $event })"> Racket sports &amp; Sportswear </button> </div> <div> <button class="text-xs px-5 py-2.5 rounded-xl bg-whiteSmoke whitespace-nowrap" data-child-id='menu_item_merchandising' :class="{'font-semibold border border-primary': selectedBusinessLineId === 'merchandising'}" @click="selectBusinessLine({ entity_id: 'merchandising', event: $event })"> Merchandising </button> </div> <div> <button class="text-xs px-5 py-2.5 rounded-xl bg-whiteSmoke whitespace-nowrap" data-child-id='menu_item_team-sports' :class="{'font-semibold border border-primary': selectedBusinessLineId === 'team\u002Dsports'}" @click="selectBusinessLine({ entity_id: 'team\u002Dsports', event: $event })"> Team Sports </button> </div> </div> <div class="p-3 border-y border-primary/20"> <span> View&#x20;all <a class="font-semibold" :href="selectedBusinessLineUrl" x-html="selectedBusinessLineName"></a> </span> </div> <div class="flex flex-col grow justify-between"> <div id="swipe" class="relative flex flex-col justify-between px-3 overflow-hidden" :style="{height: menuHeight + 'px'}" @touchstart="handleTouchStart($event)" @touchmove="handleTouchMove($event)" @touchend="handleTouchEnd($event)" > <div class="flex flex-col gap-y-8 py-5 overflow-auto" aria-label="Site&#x20;navigation&#x20;links" > <div data-child-id="racket-sports-and-sportswear" class="absolute top-0 right-0 z-10 flex-col gap-1 w-full bg-container-lighter px-3" x-show="selectedBusinessLineId === 'racket\u002Dsports\u002Dand\u002Dsportswear'" > <ul class="flex flex-col gap-y-2 py-2.5 overflow-auto" x-transition.opacity x-show="selectedBusinessLineId === 'racket\u002Dsports\u002Dand\u002Dsportswear'" > <li data-child-id="menumanager-node-5328" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full h-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/racket-sports-sportswear/padel.html" title="Padel" @click="closeMenu()" > Padel </a> <button @click="openSubcategory('menumanager-node-5328')" class="absolute right-0 flex items-center justify-center cursor-pointer" aria-label="Open&#x20;Padel&#x20;subcategories" aria-haspopup="true" :aria-expanded="activeMenuLvl?.[0] === 'menumanager-node-5328'" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7.59 13.06" class="w-5 h-5 p-1" width="16" height="16" aria-hidden="true"> <g xmlns="http://www.w3.org/2000/svg" transform="matrix(0 1 -1 0 7.59 -0)"><!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style>.chevron-right-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; }</style> </defs> <path id="Tracciato_553-chevron-right" class="chevron-right-st0" d="M.53,7.06L6.53,1.06l6,6"/> </g> </svg> </button> </div> <div data-child-id="menumanager-node-5328" class="absolute top-0 right-0 z-10 flex-col gap-1 w-full bg-container-lighter h-full px-3" x-show="isMenuActive('menumanager-node-5328')" > <ul class="flex flex-col gap-y-2 py-2.5 overflow-auto" x-transition:enter="transform transition-transform duration-200 ease-out" x-transition:enter-start="translate-x-full h-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition-transform duration-200 ease-in" x-transition:leave-start="translate-x-0 h-full" x-transition:leave-end="-translate-x-full" @transitionend="calculateMenuHeight" x-show="isMenuActive('menumanager-node-5328')" > <li data-child-id="menumanager-node-5329" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/racket-sports-sportswear/padel/rackets.html" title="Rackets" @click="closeMenu()" > Rackets </a> </div> </li> <li data-child-id="menumanager-node-5330" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/racket-sports-sportswear/padel/men.html" title="Men" @click="closeMenu()" > Men </a> </div> </li> <li data-child-id="menumanager-node-5331" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/racket-sports-sportswear/padel/women.html" title="Women" @click="closeMenu()" > Women </a> </div> </li> <li data-child-id="menumanager-node-5332" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/racket-sports-sportswear/padel/accessories.html" title="Accessories" @click="closeMenu()" > Accessories </a> </div> </li> <li data-child-id="menumanager-node-5333" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/racket-sports-sportswear/padel/outlet.html" title="Outlet" @click="closeMenu()" > Outlet </a> </div> </li> </ul> </div> </li> <li data-child-id="menumanager-node-5334" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full h-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/racket-sports-sportswear/activewear.html" title="Activewear" @click="closeMenu()" > Activewear </a> <button @click="openSubcategory('menumanager-node-5334')" class="absolute right-0 flex items-center justify-center cursor-pointer" aria-label="Open&#x20;Activewear&#x20;subcategories" aria-haspopup="true" :aria-expanded="activeMenuLvl?.[0] === 'menumanager-node-5334'" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7.59 13.06" class="w-5 h-5 p-1" width="16" height="16" aria-hidden="true"> <g xmlns="http://www.w3.org/2000/svg" transform="matrix(0 1 -1 0 7.59 -0)"><!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style>.chevron-right-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; }</style> </defs> <path id="Tracciato_553-chevron-right_2" class="chevron-right-st0" d="M.53,7.06L6.53,1.06l6,6"/> </g> </svg> </button> </div> <div data-child-id="menumanager-node-5334" class="absolute top-0 right-0 z-10 flex-col gap-1 w-full bg-container-lighter h-full px-3" x-show="isMenuActive('menumanager-node-5334')" > <ul class="flex flex-col gap-y-2 py-2.5 overflow-auto" x-transition:enter="transform transition-transform duration-200 ease-out" x-transition:enter-start="translate-x-full h-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition-transform duration-200 ease-in" x-transition:leave-start="translate-x-0 h-full" x-transition:leave-end="-translate-x-full" @transitionend="calculateMenuHeight" x-show="isMenuActive('menumanager-node-5334')" > <li data-child-id="menumanager-node-5335" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/racket-sports-sportswear/activewear/men.html" title="Men" @click="closeMenu()" > Men </a> </div> </li> <li data-child-id="menumanager-node-5336" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/racket-sports-sportswear/activewear/women.html" title="Women" @click="closeMenu()" > Women </a> </div> </li> <li data-child-id="menumanager-node-5337" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/racket-sports-sportswear/activewear/accessories.html" title="Accessories" @click="closeMenu()" > Accessories </a> </div> </li> <li data-child-id="menumanager-node-5338" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/racket-sports-sportswear/activewear/outlet.html" title="Outlet" @click="closeMenu()" > Outlet </a> </div> </li> </ul> </div> </li> <li data-child-id="menumanager-node-5339" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full h-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/racket-sports-sportswear/freetime.html" title="Freetime" @click="closeMenu()" > Freetime </a> <button @click="openSubcategory('menumanager-node-5339')" class="absolute right-0 flex items-center justify-center cursor-pointer" aria-label="Open&#x20;Freetime&#x20;subcategories" aria-haspopup="true" :aria-expanded="activeMenuLvl?.[0] === 'menumanager-node-5339'" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7.59 13.06" class="w-5 h-5 p-1" width="16" height="16" aria-hidden="true"> <g xmlns="http://www.w3.org/2000/svg" transform="matrix(0 1 -1 0 7.59 -0)"><!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style>.chevron-right-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; }</style> </defs> <path id="Tracciato_553-chevron-right_3" class="chevron-right-st0" d="M.53,7.06L6.53,1.06l6,6"/> </g> </svg> </button> </div> <div data-child-id="menumanager-node-5339" class="absolute top-0 right-0 z-10 flex-col gap-1 w-full bg-container-lighter h-full px-3" x-show="isMenuActive('menumanager-node-5339')" > <ul class="flex flex-col gap-y-2 py-2.5 overflow-auto" x-transition:enter="transform transition-transform duration-200 ease-out" x-transition:enter-start="translate-x-full h-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition-transform duration-200 ease-in" x-transition:leave-start="translate-x-0 h-full" x-transition:leave-end="-translate-x-full" @transitionend="calculateMenuHeight" x-show="isMenuActive('menumanager-node-5339')" > <li data-child-id="menumanager-node-5340" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/racket-sports-sportswear/freetime/men.html" title="Men" @click="closeMenu()" > Men </a> </div> </li> <li data-child-id="menumanager-node-5341" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/racket-sports-sportswear/freetime/women.html" title="Women" @click="closeMenu()" > Women </a> </div> </li> <li data-child-id="menumanager-node-5342" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/racket-sports-sportswear/freetime/accessories.html" title="Accessories" @click="closeMenu()" > Accessories </a> </div> </li> <li data-child-id="menumanager-node-5343" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/racket-sports-sportswear/freetime/outlet.html" title="Outlet" @click="closeMenu()" > Outlet </a> </div> </li> </ul> </div> </li> </ul> </div> <div data-child-id="merchandising" class="absolute top-0 right-0 z-10 flex-col gap-1 w-full bg-container-lighter px-3" x-show="selectedBusinessLineId === 'merchandising'" > <ul class="flex flex-col gap-y-2 py-2.5 overflow-auto" x-transition.opacity x-show="selectedBusinessLineId === 'merchandising'" > <li data-child-id="menumanager-node-4946" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full h-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/football.html" title="Football" @click="closeMenu()" > Football </a> <button @click="openSubcategory('menumanager-node-4946')" class="absolute right-0 flex items-center justify-center cursor-pointer" aria-label="Open&#x20;Football&#x20;subcategories" aria-haspopup="true" :aria-expanded="activeMenuLvl?.[0] === 'menumanager-node-4946'" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7.59 13.06" class="w-5 h-5 p-1" width="16" height="16" aria-hidden="true"> <g xmlns="http://www.w3.org/2000/svg" transform="matrix(0 1 -1 0 7.59 -0)"><!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style>.chevron-right-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; }</style> </defs> <path id="Tracciato_553-chevron-right_4" class="chevron-right-st0" d="M.53,7.06L6.53,1.06l6,6"/> </g> </svg> </button> </div> <div data-child-id="menumanager-node-4946" class="absolute top-0 right-0 z-10 flex-col gap-1 w-full bg-container-lighter h-full px-3" x-show="isMenuActive('menumanager-node-4946')" > <ul class="flex flex-col gap-y-2 py-2.5 overflow-auto" x-transition:enter="transform transition-transform duration-200 ease-out" x-transition:enter-start="translate-x-full h-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition-transform duration-200 ease-in" x-transition:leave-start="translate-x-0 h-full" x-transition:leave-end="-translate-x-full" @transitionend="calculateMenuHeight" x-show="isMenuActive('menumanager-node-4946')" > <li data-child-id="menumanager-node-4988" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/football/clubs.html" title="Clubs" @click="closeMenu()" > Clubs </a> <button @click="openSubcategory('menumanager-node-4988')" class="absolute right-0 flex items-center justify-center cursor-pointer" aria-label="Open&#x20;Clubs&#x20;subcategories" aria-haspopup="true" :aria-expanded="activeMenuLvl?.[1] === 'menumanager-node-4988'" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7.59 13.06" class="w-5 h-5 p-1" width="16" height="16" aria-hidden="true"> <g xmlns="http://www.w3.org/2000/svg" transform="matrix(0 1 -1 0 7.59 -0)"><!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style>.chevron-right-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; }</style> </defs> <path id="Tracciato_553-chevron-right_5" class="chevron-right-st0" d="M.53,7.06L6.53,1.06l6,6"/> </g> </svg> </button> </div> <div data-child-id="menumanager-node-4988" class="absolute top-0 right-0 z-10 flex-col gap-1 w-full bg-container-lighter h-full px-3" x-show="isMenuActive('menumanager-node-4988')" > <ul class="flex flex-col gap-y-2 py-2.5 overflow-auto" x-transition:enter="transform transition-transform duration-200 ease-out" x-transition:enter-start="translate-x-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition-transform duration-200 ease-in" x-transition:leave-start="translate-x-0" x-transition:leave-end="-translate-x-full" @transitionstart="calculateMenuHeight" x-show="isMenuActive('menumanager-node-4988')" > <li class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray"> <div class="flex items-center justify-center"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/football/clubs/united-kingdom.html" title="United&#x20;Kingdom" @click="closeMenu()" > United Kingdom </a> </div> </li> <li class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray"> <div class="flex items-center justify-center"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/football/clubs/italy.html" title="Italy" @click="closeMenu()" > Italy </a> </div> </li> <li class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray"> <div class="flex items-center justify-center"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/football/clubs/germany.html" title="Germany" @click="closeMenu()" > Germany </a> </div> </li> <li class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray"> <div class="flex items-center justify-center"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/football/clubs/spain.html" title="Spain" @click="closeMenu()" > Spain </a> </div> </li> <li class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray"> <div class="flex items-center justify-center"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/football/clubs/other-countries.html" title="Other&#x20;Countries" @click="closeMenu()" > Other Countries </a> </div> </li> <li class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray"> <div class="flex items-center justify-center"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/football/clubs/outlet.html" title="Outlet" @click="closeMenu()" > Outlet </a> </div> </li> </ul> </div> </li> <li data-child-id="menumanager-node-4995" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/football/national-teams.html" title="National&#x20;Teams" @click="closeMenu()" > National Teams </a> </div> </li> <li data-child-id="menumanager-node-4996" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/football/referees.html" title="Referees" @click="closeMenu()" > Referees </a> </div> </li> </ul> </div> </li> <li data-child-id="menumanager-node-4947" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full h-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/rugby.html" title="Rugby" @click="closeMenu()" > Rugby </a> <button @click="openSubcategory('menumanager-node-4947')" class="absolute right-0 flex items-center justify-center cursor-pointer" aria-label="Open&#x20;Rugby&#x20;subcategories" aria-haspopup="true" :aria-expanded="activeMenuLvl?.[0] === 'menumanager-node-4947'" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7.59 13.06" class="w-5 h-5 p-1" width="16" height="16" aria-hidden="true"> <g xmlns="http://www.w3.org/2000/svg" transform="matrix(0 1 -1 0 7.59 -0)"><!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style>.chevron-right-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; }</style> </defs> <path id="Tracciato_553-chevron-right_6" class="chevron-right-st0" d="M.53,7.06L6.53,1.06l6,6"/> </g> </svg> </button> </div> <div data-child-id="menumanager-node-4947" class="absolute top-0 right-0 z-10 flex-col gap-1 w-full bg-container-lighter h-full px-3" x-show="isMenuActive('menumanager-node-4947')" > <ul class="flex flex-col gap-y-2 py-2.5 overflow-auto" x-transition:enter="transform transition-transform duration-200 ease-out" x-transition:enter-start="translate-x-full h-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition-transform duration-200 ease-in" x-transition:leave-start="translate-x-0 h-full" x-transition:leave-end="-translate-x-full" @transitionend="calculateMenuHeight" x-show="isMenuActive('menumanager-node-4947')" > <li data-child-id="menumanager-node-4997" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/rugby/clubs.html" title="Clubs" @click="closeMenu()" > Clubs </a> <button @click="openSubcategory('menumanager-node-4997')" class="absolute right-0 flex items-center justify-center cursor-pointer" aria-label="Open&#x20;Clubs&#x20;subcategories" aria-haspopup="true" :aria-expanded="activeMenuLvl?.[1] === 'menumanager-node-4997'" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7.59 13.06" class="w-5 h-5 p-1" width="16" height="16" aria-hidden="true"> <g xmlns="http://www.w3.org/2000/svg" transform="matrix(0 1 -1 0 7.59 -0)"><!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style>.chevron-right-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; }</style> </defs> <path id="Tracciato_553-chevron-right_7" class="chevron-right-st0" d="M.53,7.06L6.53,1.06l6,6"/> </g> </svg> </button> </div> <div data-child-id="menumanager-node-4997" class="absolute top-0 right-0 z-10 flex-col gap-1 w-full bg-container-lighter h-full px-3" x-show="isMenuActive('menumanager-node-4997')" > <ul class="flex flex-col gap-y-2 py-2.5 overflow-auto" x-transition:enter="transform transition-transform duration-200 ease-out" x-transition:enter-start="translate-x-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition-transform duration-200 ease-in" x-transition:leave-start="translate-x-0" x-transition:leave-end="-translate-x-full" @transitionstart="calculateMenuHeight" x-show="isMenuActive('menumanager-node-4997')" > <li class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray"> <div class="flex items-center justify-center"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/rugby/clubs/united-kingdom.html" title="United&#x20;Kingdom" @click="closeMenu()" > United Kingdom </a> </div> </li> <li class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray"> <div class="flex items-center justify-center"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/rugby/clubs/france.html" title="France" @click="closeMenu()" > France </a> </div> </li> <li class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray"> <div class="flex items-center justify-center"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/rugby/clubs/other-countries.html" title="Other&#x20;Countries" @click="closeMenu()" > Other Countries </a> </div> </li> <li class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray"> <div class="flex items-center justify-center"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/rugby/clubs/outlet.html" title="Outlet" @click="closeMenu()" > Outlet </a> </div> </li> </ul> </div> </li> <li data-child-id="menumanager-node-5003" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/rugby/national-teams.html" title="National&#x20;Teams" @click="closeMenu()" > National Teams </a> </div> </li> </ul> </div> </li> <li data-child-id="menumanager-node-4948" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full h-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/basketball.html" title="Basketball" @click="closeMenu()" > Basketball </a> <button @click="openSubcategory('menumanager-node-4948')" class="absolute right-0 flex items-center justify-center cursor-pointer" aria-label="Open&#x20;Basketball&#x20;subcategories" aria-haspopup="true" :aria-expanded="activeMenuLvl?.[0] === 'menumanager-node-4948'" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7.59 13.06" class="w-5 h-5 p-1" width="16" height="16" aria-hidden="true"> <g xmlns="http://www.w3.org/2000/svg" transform="matrix(0 1 -1 0 7.59 -0)"><!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style>.chevron-right-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; }</style> </defs> <path id="Tracciato_553-chevron-right_8" class="chevron-right-st0" d="M.53,7.06L6.53,1.06l6,6"/> </g> </svg> </button> </div> <div data-child-id="menumanager-node-4948" class="absolute top-0 right-0 z-10 flex-col gap-1 w-full bg-container-lighter h-full px-3" x-show="isMenuActive('menumanager-node-4948')" > <ul class="flex flex-col gap-y-2 py-2.5 overflow-auto" x-transition:enter="transform transition-transform duration-200 ease-out" x-transition:enter-start="translate-x-full h-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition-transform duration-200 ease-in" x-transition:leave-start="translate-x-0 h-full" x-transition:leave-end="-translate-x-full" @transitionend="calculateMenuHeight" x-show="isMenuActive('menumanager-node-4948')" > <li data-child-id="menumanager-node-5004" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/basketball/clubs.html" title="Clubs" @click="closeMenu()" > Clubs </a> <button @click="openSubcategory('menumanager-node-5004')" class="absolute right-0 flex items-center justify-center cursor-pointer" aria-label="Open&#x20;Clubs&#x20;subcategories" aria-haspopup="true" :aria-expanded="activeMenuLvl?.[1] === 'menumanager-node-5004'" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7.59 13.06" class="w-5 h-5 p-1" width="16" height="16" aria-hidden="true"> <g xmlns="http://www.w3.org/2000/svg" transform="matrix(0 1 -1 0 7.59 -0)"><!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style>.chevron-right-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; }</style> </defs> <path id="Tracciato_553-chevron-right_9" class="chevron-right-st0" d="M.53,7.06L6.53,1.06l6,6"/> </g> </svg> </button> </div> <div data-child-id="menumanager-node-5004" class="absolute top-0 right-0 z-10 flex-col gap-1 w-full bg-container-lighter h-full px-3" x-show="isMenuActive('menumanager-node-5004')" > <ul class="flex flex-col gap-y-2 py-2.5 overflow-auto" x-transition:enter="transform transition-transform duration-200 ease-out" x-transition:enter-start="translate-x-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition-transform duration-200 ease-in" x-transition:leave-start="translate-x-0" x-transition:leave-end="-translate-x-full" @transitionstart="calculateMenuHeight" x-show="isMenuActive('menumanager-node-5004')" > <li class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray"> <div class="flex items-center justify-center"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/basketball/clubs/italy.html" title="Italy" @click="closeMenu()" > Italy </a> </div> </li> <li class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray"> <div class="flex items-center justify-center"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/basketball/clubs/germany.html" title="Germany" @click="closeMenu()" > Germany </a> </div> </li> <li class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray"> <div class="flex items-center justify-center"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/basketball/clubs/other-countries.html" title="Other&#x20;Countries" @click="closeMenu()" > Other Countries </a> </div> </li> <li class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray"> <div class="flex items-center justify-center"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/basketball/clubs/outlet.html" title="Outlet" @click="closeMenu()" > Outlet </a> </div> </li> </ul> </div> </li> <li data-child-id="menumanager-node-5010" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/basketball/national-teams.html" title="National&#x20;Teams" @click="closeMenu()" > National Teams </a> </div> </li> </ul> </div> </li> <li data-child-id="menumanager-node-4949" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full h-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/other-sports.html" title="Other&#x20;Sports" @click="closeMenu()" > Other Sports </a> <button @click="openSubcategory('menumanager-node-4949')" class="absolute right-0 flex items-center justify-center cursor-pointer" aria-label="Open&#x20;Other&#x20;Sports&#x20;subcategories" aria-haspopup="true" :aria-expanded="activeMenuLvl?.[0] === 'menumanager-node-4949'" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7.59 13.06" class="w-5 h-5 p-1" width="16" height="16" aria-hidden="true"> <g xmlns="http://www.w3.org/2000/svg" transform="matrix(0 1 -1 0 7.59 -0)"><!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style>.chevron-right-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; }</style> </defs> <path id="Tracciato_553-chevron-right_10" class="chevron-right-st0" d="M.53,7.06L6.53,1.06l6,6"/> </g> </svg> </button> </div> <div data-child-id="menumanager-node-4949" class="absolute top-0 right-0 z-10 flex-col gap-1 w-full bg-container-lighter h-full px-3" x-show="isMenuActive('menumanager-node-4949')" > <ul class="flex flex-col gap-y-2 py-2.5 overflow-auto" x-transition:enter="transform transition-transform duration-200 ease-out" x-transition:enter-start="translate-x-full h-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition-transform duration-200 ease-in" x-transition:leave-start="translate-x-0 h-full" x-transition:leave-end="-translate-x-full" @transitionend="calculateMenuHeight" x-show="isMenuActive('menumanager-node-4949')" > <li data-child-id="menumanager-node-5011" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/other-sports/motorsport.html" title="Motorsport" @click="closeMenu()" > Motorsport </a> </div> </li> <li data-child-id="menumanager-node-5012" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/other-sports/cricket.html" title="Cricket" @click="closeMenu()" > Cricket </a> </div> </li> <li data-child-id="menumanager-node-5013" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/other-sports/volley.html" title="Volley" @click="closeMenu()" > Volley </a> </div> </li> <li data-child-id="menumanager-node-5014" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/other-sports/australian-football.html" title="Australian&#x20;football" @click="closeMenu()" > Australian football </a> </div> </li> <li data-child-id="menumanager-node-5015" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/merchandising/other-sports/outlet.html" title="Outlet" @click="closeMenu()" > Outlet </a> </div> </li> </ul> </div> </li> </ul> </div> <div data-child-id="team-sports" class="absolute top-0 right-0 z-10 flex-col gap-1 w-full bg-container-lighter px-3" x-show="selectedBusinessLineId === 'team\u002Dsports'" > <ul class="flex flex-col gap-y-2 py-2.5 overflow-auto" x-transition.opacity x-show="selectedBusinessLineId === 'team\u002Dsports'" > <li data-child-id="menumanager-node-4679" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full h-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/football.html" title="Football" @click="closeMenu()" > Football </a> <button @click="openSubcategory('menumanager-node-4679')" class="absolute right-0 flex items-center justify-center cursor-pointer" aria-label="Open&#x20;Football&#x20;subcategories" aria-haspopup="true" :aria-expanded="activeMenuLvl?.[0] === 'menumanager-node-4679'" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7.59 13.06" class="w-5 h-5 p-1" width="16" height="16" aria-hidden="true"> <g xmlns="http://www.w3.org/2000/svg" transform="matrix(0 1 -1 0 7.59 -0)"><!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style>.chevron-right-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; }</style> </defs> <path id="Tracciato_553-chevron-right_11" class="chevron-right-st0" d="M.53,7.06L6.53,1.06l6,6"/> </g> </svg> </button> </div> <div data-child-id="menumanager-node-4679" class="absolute top-0 right-0 z-10 flex-col gap-1 w-full bg-container-lighter h-full px-3" x-show="isMenuActive('menumanager-node-4679')" > <ul class="flex flex-col gap-y-2 py-2.5 overflow-auto" x-transition:enter="transform transition-transform duration-200 ease-out" x-transition:enter-start="translate-x-full h-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition-transform duration-200 ease-in" x-transition:leave-start="translate-x-0 h-full" x-transition:leave-end="-translate-x-full" @transitionend="calculateMenuHeight" x-show="isMenuActive('menumanager-node-4679')" > <li data-child-id="menumanager-node-4684" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/football/match-day.html" title="Match&#x20;day" @click="closeMenu()" > Match day </a> </div> </li> <li data-child-id="menumanager-node-4685" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/football/goalkeeper.html" title="Goalkeeper" @click="closeMenu()" > Goalkeeper </a> </div> </li> <li data-child-id="menumanager-node-4687" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/football/referee.html" title="Referee" @click="closeMenu()" > Referee </a> </div> </li> <li data-child-id="menumanager-node-4712" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/football/technical-underwear.html" title="Technical&#x20;underwear" @click="closeMenu()" > Technical underwear </a> </div> </li> <li data-child-id="menumanager-node-4686" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/football/active-training.html" title="Active&#x20;training" @click="closeMenu()" > Active training </a> </div> </li> <li data-child-id="menumanager-node-4689" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/football/training-tracksuits.html" title="Training&#x20;tracksuits" @click="closeMenu()" > Training tracksuits </a> </div> </li> <li data-child-id="menumanager-node-4688" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/football/travel-tracksuits.html" title="Travel&#x20;tracksuits" @click="closeMenu()" > Travel tracksuits </a> </div> </li> <li data-child-id="menumanager-node-4713" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/football/free-time.html" title="Free&#x20;time" @click="closeMenu()" > Free time </a> </div> </li> <li data-child-id="menumanager-node-4874" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/football/jackets.html" title="Jackets" @click="closeMenu()" > Jackets </a> </div> </li> <li data-child-id="menumanager-node-4690" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/football/accessories.html" title="Accessories" @click="closeMenu()" > Accessories </a> </div> </li> <li data-child-id="menumanager-node-4691" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/football.html" title="View&#x20;all" @click="closeMenu()" > View all </a> </div> </li> </ul> </div> </li> <li data-child-id="menumanager-node-4680" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full h-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/rugby.html" title="Rugby" @click="closeMenu()" > Rugby </a> <button @click="openSubcategory('menumanager-node-4680')" class="absolute right-0 flex items-center justify-center cursor-pointer" aria-label="Open&#x20;Rugby&#x20;subcategories" aria-haspopup="true" :aria-expanded="activeMenuLvl?.[0] === 'menumanager-node-4680'" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7.59 13.06" class="w-5 h-5 p-1" width="16" height="16" aria-hidden="true"> <g xmlns="http://www.w3.org/2000/svg" transform="matrix(0 1 -1 0 7.59 -0)"><!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style>.chevron-right-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; }</style> </defs> <path id="Tracciato_553-chevron-right_12" class="chevron-right-st0" d="M.53,7.06L6.53,1.06l6,6"/> </g> </svg> </button> </div> <div data-child-id="menumanager-node-4680" class="absolute top-0 right-0 z-10 flex-col gap-1 w-full bg-container-lighter h-full px-3" x-show="isMenuActive('menumanager-node-4680')" > <ul class="flex flex-col gap-y-2 py-2.5 overflow-auto" x-transition:enter="transform transition-transform duration-200 ease-out" x-transition:enter-start="translate-x-full h-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition-transform duration-200 ease-in" x-transition:leave-start="translate-x-0 h-full" x-transition:leave-end="-translate-x-full" @transitionend="calculateMenuHeight" x-show="isMenuActive('menumanager-node-4680')" > <li data-child-id="menumanager-node-4692" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/rugby/match-day.html" title="Match&#x20;day" @click="closeMenu()" > Match day </a> </div> </li> <li data-child-id="menumanager-node-4693" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/rugby/referee.html" title="Referee" @click="closeMenu()" > Referee </a> </div> </li> <li data-child-id="menumanager-node-4694" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/rugby/technical-underwear.html" title="Technical&#x20;underwear" @click="closeMenu()" > Technical underwear </a> </div> </li> <li data-child-id="menumanager-node-4696" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/rugby/active-training.html" title="Active&#x20;training" @click="closeMenu()" > Active training </a> </div> </li> <li data-child-id="menumanager-node-4875" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/rugby/training-tracksuits.html" title="Training&#x20;tracksuits" @click="closeMenu()" > Training tracksuits </a> </div> </li> <li data-child-id="menumanager-node-4876" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/rugby/travel-tracksuits.html" title="Travel&#x20;tracksuits" @click="closeMenu()" > Travel tracksuits </a> </div> </li> <li data-child-id="menumanager-node-4877" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/rugby/free-time.html" title="Free&#x20;time" @click="closeMenu()" > Free time </a> </div> </li> <li data-child-id="menumanager-node-4695" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/rugby/jackets.html" title="Jackets" @click="closeMenu()" > Jackets </a> </div> </li> <li data-child-id="menumanager-node-4697" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/rugby/accessories.html" title="Accessories" @click="closeMenu()" > Accessories </a> </div> </li> <li data-child-id="menumanager-node-4698" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/rugby.html" title="View&#x20;all" @click="closeMenu()" > View all </a> </div> </li> </ul> </div> </li> <li data-child-id="menumanager-node-4681" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full h-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/volley.html" title="Volleyball" @click="closeMenu()" > Volleyball </a> <button @click="openSubcategory('menumanager-node-4681')" class="absolute right-0 flex items-center justify-center cursor-pointer" aria-label="Open&#x20;Volleyball&#x20;subcategories" aria-haspopup="true" :aria-expanded="activeMenuLvl?.[0] === 'menumanager-node-4681'" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7.59 13.06" class="w-5 h-5 p-1" width="16" height="16" aria-hidden="true"> <g xmlns="http://www.w3.org/2000/svg" transform="matrix(0 1 -1 0 7.59 -0)"><!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style>.chevron-right-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; }</style> </defs> <path id="Tracciato_553-chevron-right_13" class="chevron-right-st0" d="M.53,7.06L6.53,1.06l6,6"/> </g> </svg> </button> </div> <div data-child-id="menumanager-node-4681" class="absolute top-0 right-0 z-10 flex-col gap-1 w-full bg-container-lighter h-full px-3" x-show="isMenuActive('menumanager-node-4681')" > <ul class="flex flex-col gap-y-2 py-2.5 overflow-auto" x-transition:enter="transform transition-transform duration-200 ease-out" x-transition:enter-start="translate-x-full h-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition-transform duration-200 ease-in" x-transition:leave-start="translate-x-0 h-full" x-transition:leave-end="-translate-x-full" @transitionend="calculateMenuHeight" x-show="isMenuActive('menumanager-node-4681')" > <li data-child-id="menumanager-node-4699" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/volley/match-day.html" title="Match&#x20;day" @click="closeMenu()" > Match day </a> </div> </li> <li data-child-id="menumanager-node-4700" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/volley/technical-underwear.html" title="Technical&#x20;underwear" @click="closeMenu()" > Technical underwear </a> </div> </li> <li data-child-id="menumanager-node-4701" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/volley/active-training.html" title="Active&#x20;training" @click="closeMenu()" > Active training </a> </div> </li> <li data-child-id="menumanager-node-4878" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/volley/training-tracksuits.html" title="Training&#x20;tracksuits" @click="closeMenu()" > Training tracksuits </a> </div> </li> <li data-child-id="menumanager-node-4879" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/volley/travel-tracksuits.html" title="Travel&#x20;tracksuits" @click="closeMenu()" > Travel tracksuits </a> </div> </li> <li data-child-id="menumanager-node-4880" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/volley/free-time.html" title="Free&#x20;time" @click="closeMenu()" > Free time </a> </div> </li> <li data-child-id="menumanager-node-4881" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/volley/jackets.html" title="Jackets" @click="closeMenu()" > Jackets </a> </div> </li> <li data-child-id="menumanager-node-4702" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/volley/accessories.html" title="Accessories" @click="closeMenu()" > Accessories </a> </div> </li> <li data-child-id="menumanager-node-4703" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/volley.html" title="View&#x20;all" @click="closeMenu()" > View all </a> </div> </li> </ul> </div> </li> <li data-child-id="menumanager-node-4682" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full h-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/basket.html" title="Basketball" @click="closeMenu()" > Basketball </a> <button @click="openSubcategory('menumanager-node-4682')" class="absolute right-0 flex items-center justify-center cursor-pointer" aria-label="Open&#x20;Basketball&#x20;subcategories" aria-haspopup="true" :aria-expanded="activeMenuLvl?.[0] === 'menumanager-node-4682'" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7.59 13.06" class="w-5 h-5 p-1" width="16" height="16" aria-hidden="true"> <g xmlns="http://www.w3.org/2000/svg" transform="matrix(0 1 -1 0 7.59 -0)"><!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style>.chevron-right-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; }</style> </defs> <path id="Tracciato_553-chevron-right_14" class="chevron-right-st0" d="M.53,7.06L6.53,1.06l6,6"/> </g> </svg> </button> </div> <div data-child-id="menumanager-node-4682" class="absolute top-0 right-0 z-10 flex-col gap-1 w-full bg-container-lighter h-full px-3" x-show="isMenuActive('menumanager-node-4682')" > <ul class="flex flex-col gap-y-2 py-2.5 overflow-auto" x-transition:enter="transform transition-transform duration-200 ease-out" x-transition:enter-start="translate-x-full h-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition-transform duration-200 ease-in" x-transition:leave-start="translate-x-0 h-full" x-transition:leave-end="-translate-x-full" @transitionend="calculateMenuHeight" x-show="isMenuActive('menumanager-node-4682')" > <li data-child-id="menumanager-node-4704" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/basket/match-day.html" title="Match&#x20;day" @click="closeMenu()" > Match day </a> </div> </li> <li data-child-id="menumanager-node-4705" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/basket/technical-underwear.html" title="Technical&#x20;underwear" @click="closeMenu()" > Technical underwear </a> </div> </li> <li data-child-id="menumanager-node-4706" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/basket/active-training.html" title="Active&#x20;training" @click="closeMenu()" > Active training </a> </div> </li> <li data-child-id="menumanager-node-4882" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/basket/training-tracksuits.html" title="Training&#x20;tracksuits" @click="closeMenu()" > Training tracksuits </a> </div> </li> <li data-child-id="menumanager-node-4883" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/basket/travel-tracksuits.html" title="Travel&#x20;tracksuits" @click="closeMenu()" > Travel tracksuits </a> </div> </li> <li data-child-id="menumanager-node-4884" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/basket/free-time.html" title="Free&#x20;time" @click="closeMenu()" > Free time </a> </div> </li> <li data-child-id="menumanager-node-4885" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/basket/jackets.html" title="Jackets" @click="closeMenu()" > Jackets </a> </div> </li> <li data-child-id="menumanager-node-4707" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/basket/accessories.html" title="Accessories" @click="closeMenu()" > Accessories </a> </div> </li> <li data-child-id="menumanager-node-4708" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/basket.html" title="View&#x20;all" @click="closeMenu()" > View all </a> </div> </li> </ul> </div> </li> <li data-child-id="menumanager-node-4683" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full h-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/other.html" title="Other" @click="closeMenu()" > Other </a> <button @click="openSubcategory('menumanager-node-4683')" class="absolute right-0 flex items-center justify-center cursor-pointer" aria-label="Open&#x20;Other&#x20;subcategories" aria-haspopup="true" :aria-expanded="activeMenuLvl?.[0] === 'menumanager-node-4683'" > <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7.59 13.06" class="w-5 h-5 p-1" width="16" height="16" aria-hidden="true"> <g xmlns="http://www.w3.org/2000/svg" transform="matrix(0 1 -1 0 7.59 -0)"><!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style>.chevron-right-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; }</style> </defs> <path id="Tracciato_553-chevron-right_15" class="chevron-right-st0" d="M.53,7.06L6.53,1.06l6,6"/> </g> </svg> </button> </div> <div data-child-id="menumanager-node-4683" class="absolute top-0 right-0 z-10 flex-col gap-1 w-full bg-container-lighter h-full px-3" x-show="isMenuActive('menumanager-node-4683')" > <ul class="flex flex-col gap-y-2 py-2.5 overflow-auto" x-transition:enter="transform transition-transform duration-200 ease-out" x-transition:enter-start="translate-x-full h-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition-transform duration-200 ease-in" x-transition:leave-start="translate-x-0 h-full" x-transition:leave-end="-translate-x-full" @transitionend="calculateMenuHeight" x-show="isMenuActive('menumanager-node-4683')" > <li data-child-id="menumanager-node-4709" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/other/baseball.html" title="Baseball" @click="closeMenu()" > Baseball </a> </div> </li> <li data-child-id="menumanager-node-4711" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/other/athletics.html" title="Athletics" @click="closeMenu()" > Athletics </a> </div> </li> <li data-child-id="menumanager-node-4710" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/other/handball.html" title="Handball" @click="closeMenu()" > Handball </a> </div> </li> <li data-child-id="menumanager-node-4927" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/other/cricket.html" title="Cricket" @click="closeMenu()" > Cricket </a> </div> </li> <li data-child-id="menumanager-node-4936" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/other/american-football.html" title="American&#x20;Football" @click="closeMenu()" > American Football </a> </div> </li> <li data-child-id="menumanager-node-4937" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/other/netball.html" title="Netball" @click="closeMenu()" > Netball </a> </div> </li> <li data-child-id="menumanager-node-4714" class="level-0 flex items-start font-semibold text-base p-3 focus:bg-whiteSmoke focus-visible:bg-whiteSmoke focus-visible:outline-none rounded-xl hover:bg-softGray" > <div class="relative flex items-center justify-start w-full"> <a class="flex items-center cursor-pointer level-0 font-semibold justify-center text-center line-clamp-1" href="https://www.macron.com/uk/team-sports/other.html" title="View&#x20;all" @click="closeMenu()" > View all </a> </div> </li> </ul> </div> </li> </ul> </div> </div> </div> <div class="middleBottom"> <div class="py-4 px-6 border-y border-primary/20 flex items-start"> <a class="font-light text-sm w-full relative" href="https://www.macron.com/uk/storelocator/"> Find&#x20;a&#x20;store <div class="absolute top-0 right-0 flex items-center justify-center cursor-pointer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7.59 13.06" class="w-5 h-5 p-1" width="16" height="16" aria-hidden="true"> <g xmlns="http://www.w3.org/2000/svg" transform="matrix(0 1 -1 0 7.59 -0)"><!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style>.chevron-right-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; }</style> </defs> <path id="Tracciato_553-chevron-right_16" class="chevron-right-st0" d="M.53,7.06L6.53,1.06l6,6"/> </g> </svg> </div> </a> </div> <div class="py-4 px-6 border-b border-primary/20 flex items-start"> <a class="flex font-normal text-sm w-full relative" href="https://www.macron.com/uk/newsletter/manage/"> <div class="flex items-center justify-center pr-2.5"> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 18 14" fill="none" class="w-5 h-5" aria-hidden="true"> <rect x="0.5" y="1.48047" width="17" height="11.24" stroke="black"/> <path d="M1.2002 1.69922L9.0002 7.69922L16.8002 1.69922" stroke="black"/> </svg> </div> Sign up for the Newsletter </a> </div> <div class="py-7 px-6 border-b border-primary/20" x-cloak x-show="!isLoggedIn"> <p class="text-base"> Don&#039;t have a Macron account yet? <span class="font-semibold">Register now</span> to receive our news and exclusive promotions. </p> <div class="flex gap-x-3 pt-4 justify-center"> <a href="https://www.macron.com/uk/customer/account/login/" class="btn btn-primary py-2.5 h-auto text-sm w-44 text-center grow md:grow-0"> Join us </a> <a href="https://www.macron.com/uk/customer/account/create/" class="btn btn-secondary py-2.5 h-auto text-sm border-whiteSmoke w-32 text-center grow md:grow-0"> Log in </a> </div> </div> </div> </div> </div> <div class="sticky bottom-0 container flex flex-col pt-6 pb-4 group-hover:pointer-events-auto bg-secondary z-40"> <div class="flex w-full max-w-xs self-center justify-between md:max-w-full md:gap-x-12 md:justify-center z-40"> <a class="relative rounded p-1 hover:bg-primary/10 outline-offset-2 inline-flex flex-col items-center z-40" href="https://www.macron.com/uk/customer/account/" @click="closeMenu()" > <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1-user" version="1.1" viewBox="0 0 18.47 22.12" height="21" aria-hidden="true"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .user-st0 { fill: none; stroke: #000; stroke-miterlimit: 10; stroke-width: 1.5px; } </style> </defs> <g id="Raggruppa_4421"> <g id="Raggruppa_4423"> <circle id="Ellisse_14" class="user-st0" cx="9.25" cy="5.25" r="4.5"/> <path id="Tracciato_599" class="user-st0" d="M17.72,21.37c0-5.15-3.8-9.33-8.48-9.33S.75,16.22.75,21.37h16.97Z"/> </g> </g> </svg> <p class="font-semibold text-xxs pt-2.5 w-16 text-center"> <template x-if="isLoggedIn"> <span class="block text-ellipsis whitespace-nowrap overflow-x-hidden" x-text="customerName"></span> </template> <template x-if="!isLoggedIn"> <span class="block text-ellipsis whitespace-nowrap overflow-x-hidden">Account</span> </template> </p> </a> <a id="menu-cart-icon" class="rounded p-1 hover:bg-primary/10 outline-offset-2 inline-flex flex-col items-center" x-ref="cartButton" :aria-disabled="isCartEmpty()" :aria-label="` View&#x20;cart ${isCartEmpty() ? 'Cart&#x20;is&#x20;empty' : cart.summary_count > 1 ? hyva.str('&#x25;1&#x20;items', cart.summary_count) : hyva.str('&#x25;1&#x20;item', cart.summary_count) }`" href="https://www.macron.com/uk/checkout/cart/index/" title="View&#x20;cart" @click="closeMenu()" > <div class="relative inline-flex items-center justify-center"> <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1-shopping-cart" version="1.1" viewBox="0 0 19.86 21.16" width="21" height="21" aria-hidden="true"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .shopping-cart-st0 { fill: none; stroke: currentColor; stroke-miterlimit: 10; stroke-width: 1.5px; } </style> </defs> <g id="Raggruppa_4418-shopping-cart"> <g id="Raggruppa_4420-shopping-cart"> <rect id="Rettangolo_2999-shopping-cart" class="shopping-cart-st0" x=".75" y="6.94" width="18.36" height="13.48"/> <path id="Tracciato_598-shopping-cart" class="shopping-cart-st0" d="M16.3,6.94c-1.04-3.63-3.5-6.19-6.37-6.19S4.62,3.28,3.57,6.89"/> </g> </g> </svg> <span x-text="cart.summary_count" x-show="!isCartEmpty()" x-cloak class="absolute -top-0.5 -right-2 h-5 px-2 py-1 rounded-full bg-primary text-secondary text-xs font-semibold leading-none text-center uppercase tabular-nums" aria-hidden="true" ></span> </div> <p class="font-semibold text-xxs pt-2.5 w-16 block text-ellipsis text-center whitespace-nowrap overflow-x-hidden"> Cart </p> </a> <button class="relative rounded p-1 hover:bg-primary/10 outline-offset-2 inline-flex flex-col items-center" title="Search" @click.prevent="searchOpen = !searchOpen" > <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1-search" version="1.1" viewBox="0 0 20.79 21.94" height="21" aria-hidden="true"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .search-st10 { fill: none; stroke: currentColor; stroke-width: 1.5px; } </style> </defs> <g id="Raggruppa_4447_2"> <circle id="Ellisse_55-search_2" class="search-st10" cx="9.25" cy="9.25" r="8.5"/> <line id="Linea_1250-search_2" class="search-st10" x1="14.25" y1="15.25" x2="20.25" y2="21.41"/> </g> </svg> <p class="font-semibold text-xxs pt-2.5 w-16 block text-ellipsis whitespace-nowrap overflow-x-hidden text-center"> Search </p> </button> </div> </div> </div> </nav> <script> 'use strict'; const initMenuMobile_67b8ce932606f = () => { const swipeThreshold = 50; return { open: false, selectedBusinessLineId: '', selectedBusinessLineName: '', selectedBusinessLineUrl: '', isDropdownVisible: false, activeMenuLvl: [], isSearchOpen: false, isLoggedIn: false, customerName: '', menuHeight: 0, swiper: null, menuIds: JSON.parse('["menumanager-node-4950","menumanager-node-4938","menumanager-node-4945","menumanager-node-4678"]'), originalBusinessLineSliderWidth: 0, init() { this.initSelectedBusinessLine(); this.calculateMenuHeight(); }, initBusinessLineSlider() { const slider = this.$refs.infinitySlider; const items = Array.from(slider.children); const originalItemsWidth = items.reduce((width, item) => width + item.offsetWidth, 0); this.originalBusinessLineSliderWidth = originalItemsWidth; const sliderWidth = slider.offsetWidth; if (originalItemsWidth <= sliderWidth) { return; } const cloneAndAppendItems = (items) => { items.forEach(item => { const clone = item.cloneNode(true); slider.appendChild(clone); }); }; cloneAndAppendItems(items); cloneAndAppendItems(items); this.$nextTick(() => { slider.scrollLeft = originalItemsWidth; if (this.selectedBusinessLineId) { const slider = this.$refs.infinitySlider; const clickedButton = this.$refs.infinitySlider.querySelector(`[data-child-id='menu_item_${this.selectedBusinessLineId}']`); const buttonPosition = clickedButton.offsetLeft; slider.scrollTo({ left: buttonPosition - 8, }); } }); }, handleBusinessLineScroll() { const slider = this.$refs.infinitySlider; const scrollPosition = slider.scrollLeft; if (scrollPosition >= this.originalBusinessLineSliderWidth) { slider.scrollLeft = 1; } if (scrollPosition <= 0) { slider.scrollLeft = this.originalBusinessLineSliderWidth - 1; } }, receiveCustomerData(data) { if (data?.customer && data?.customer?.signin_token) { this.isLoggedIn = true; this.customerName = data.customer.firstname; } else { this.isLoggedIn = false; } }, openMenu() { this.open = true; const containerWidth = this.swiper?.el?.offsetWidth; const totalSlidesWidth = this.swiper?.slides?.reduce((total, slide) => total + slide?.offsetWidth, 0); if (totalSlidesWidth > containerWidth) { const swiper = document.querySelector('.swiper-_67b8ce932606f').swiper; swiper.slideToLoop(this.menuIds.indexOf(this.selectedBusinessLineId)); } this.$nextTick(() => { const mobileMenuNavLinks = this.$refs['mobileMenuNavLinks']; if (mobileMenuNavLinks) { hyva.trapFocus(mobileMenuNavLinks); mobileMenuNavLinks.setAttribute('tabindex', '-1'); mobileMenuNavLinks.focus(); } }); // Prevent from body scrolling while mobile menu opened document.body.style.overflow = 'hidden'; //overwrite style set in Wyomind_ElasticsearchAutocomplete module document.body.classList.add('!overflow-hidden'); }, closeMenu() { document.body.style.overflow = ''; document.body.classList.remove('!overflow-hidden'); if (this.open) { this.$nextTick(() => hyva.releaseFocus()); } this.open = false this.activeMenuLvl = []; }, handleSelectBusinessLine({event}) { this.activeMenuLvl = []; if (event) { this.scrollToBusinessLine(event); } this.$nextTick(() => this.calculateMenuHeight()) }, scrollToBusinessLine(event) { const slider = this.$refs.infinitySlider; const clickedButton = event.target; const buttonPosition = clickedButton.offsetLeft; slider.scrollTo({ left: buttonPosition - 8, behavior: 'smooth', }); }, openSubcategory(index) { const menuNodeRef = document.querySelector('[data-child-id=' + index + ']'); this.activeMenuLvl.push(index); this.$nextTick(() => { hyva.trapFocus(menuNodeRef); this.calculateMenuHeight(); }); }, isMenuActive(index) { return this.activeMenuLvl.includes(index); }, handleTouchStart(evt) { const firstTouch = evt.touches[0]; this.xDown = firstTouch.clientX; this.yDown = firstTouch.clientY; this.xDiff = null; this.yDiff = null; }, handleTouchMove(evt) { if (!this.xDown || !this.yDown) { return; } const xUp = evt.touches[0].clientX; const yUp = evt.touches[0].clientY; this.xDiff = this.xDown - xUp; this.yDiff = this.yDown - yUp; }, handleTouchEnd() { if (this.xDiff !== null && Math.abs(this.xDiff) > Math.abs(this.yDiff)) { if (this.xDiff > swipeThreshold) { this.swipeLeft(); } } this.xDown = null; this.yDown = null; this.xDiff = null; this.yDiff = null; }, swipeLeft() { if (this.activeMenuLvl.length > 0) { this.activeMenuLvl.pop(); } else { this.closeMenu(); } this.$nextTick(() => { this.calculateMenuHeight(); }) }, getHiddenElementHeight(element) { // Save the current styles const originalDisplay = element.style.display; const originalVisibility = element.style.visibility; const originalPosition = element.style.position; // Make the element visible off-screen element.style.display = 'block'; element.style.visibility = 'hidden'; element.style.position = 'absolute'; // Get the height const height = element.scrollHeight; // Revert to the original styles element.style.display = originalDisplay; element.style.visibility = originalVisibility; element.style.position = originalPosition; return height; }, calculateMenuHeight() { if (this.activeMenuLvl.length > 0) { const index = this.activeMenuLvl[this.activeMenuLvl.length - 1]; const menuNodeRef = document.querySelector('div[data-child-id=' + index + '] ul:first-of-type'); if (!menuNodeRef) return; const style = window.getComputedStyle(menuNodeRef); if (style.display === 'none') { this.menuHeight = this.getHiddenElementHeight(menuNodeRef); } else { this.menuHeight = menuNodeRef?.scrollHeight || 0; } } else { const menuNodeRef = document.querySelector('div[data-child-id=' + this.selectedBusinessLineId + '] ul:first-of-type'); if (!menuNodeRef) return; const style = window.getComputedStyle(menuNodeRef); if (style.display === 'none') { this.menuHeight = this.getHiddenElementHeight(menuNodeRef); } else { this.menuHeight = menuNodeRef?.scrollHeight || 0; } } } } } </script> <!--Authentication Pop-Up--> <script> function initAuthentication() { return { open: false, forceAuthentication: false, checkoutUrl: 'https://www.macron.com/uk/checkout/index/', errors: 0, hasCaptchaToken: 0, displayErrorMessage: false, errorMessages: [], setErrorMessages: function setErrorMessages(messages) { this.errorMessages = [messages]; this.displayErrorMessage = this.errorMessages.length; }, submitForm: function () { // Do not rename $form, the variable is expected to be declared in the recaptcha output const $form = document.querySelector('#login-form'); if (!this.hasCaptchaToken) { this.errors = 1; const executeGreCaptcha = () => { grecaptcha.ready(() => { grecaptcha.execute( '6LdNkuIZAAAAAHAZeyPvAe7zvpkY44cgc_F3thZV', {action: 'submit'} ).then((token) => { if (token && token.length > 0) { $form['g\u002Drecaptcha\u002Dresponse'].value = token; this.errors = 0; this.hasCaptchaToken = 1; (this.submitForm || $form.submit).call(this); } else { this.errors = 1; const error = 'ReCaptcha\u0020validation\u0020failed,\u0020please\u0020try\u0020again'; if (this.setErrorMessages) { this.setErrorMessages([error]) this.displayErrorMessage = true; } else { window.dispatchMessages && window.dispatchMessages([{type: "error", text: error}], 5000); } } }).catch(exception => { console.error(exception || `An unknown error occurred during ReCaptcha validation. Are the tokens and the domain correctly set up in the Google console?`) }); }) } if (window.grecaptcha) { executeGreCaptcha(); } else { const recaptchaUrl = "https://www.google.com/recaptcha/api.js?render=6LdNkuIZAAAAAHAZeyPvAe7zvpkY44cgc_F3thZV"; const script = document.createElement('script'); script.setAttribute('type', 'text/javascript'); script.setAttribute('src', recaptchaUrl); document.head.appendChild(script); script.addEventListener("load", executeGreCaptcha, false); } } if (this.errors === 0) { this.dispatchLoginRequest($form); } }, onPrivateContentLoaded: function (data) { const isLoggedIn = data.customer && data.customer.firstname; if (data.cart && !isLoggedIn) { this.forceAuthentication = !data.cart.isGuestCheckoutAllowed; } }, redirectIfAuthenticated: function (event) { if (event.detail && event.detail.url) { this.checkoutUrl = event.detail.url; } if (!this.forceAuthentication) { window.location.href = this.checkoutUrl; } }, dispatchLoginRequest: function(form) { this.isLoading = true; const username = this.$refs['customer-email'].value; const password = this.$refs['customer-password'].value; const formKey = hyva.getFormKey(); const bodyFields = { 'username': username, 'password': password, 'formKey': formKey }; const fieldName = 'g\u002Drecaptcha\u002Dresponse'; const recaptchaField = fieldName && form[fieldName]; if (recaptchaField) { bodyFields[fieldName] = recaptchaField.value; } fetch('https://www.macron.com/uk/customer/ajax/login/', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest' }, body: JSON.stringify(bodyFields) } ).then(response => { return response.json() } ).then(data=> { this.isLoading = false; if (data.errors) { dispatchMessages([{ type: 'error', text: data.message }], 5000); this.errors = 1; this.hasCaptchaToken = 0; } else { window.location.href = this.checkoutUrl; } }); } } } </script> <section id="authentication-popup" x-data="initAuthentication()" @private-content-loaded.window="onPrivateContentLoaded($event.detail.data)" @toggle-authentication.window="open = forceAuthentication; redirectIfAuthenticated(event)" @keydown.window.escape="open = false" > <div class="backdrop" aria-hidden="true" x-cloak x-show="open" x-transition:enter="ease-in-out duration-500" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in-out duration-500" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" @click="open = false" ></div> <div role="dialog" aria-modal="true" @click.outside="open = false" class="inset-y-0 right-0 z-30 flex max-w-full fixed" x-cloak x-show="open" > <div class="relative w-screen max-w-md pt-16 bg-container-lighter" x-show="open" x-cloak="" x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700" x-transition:enter-start="translate-x-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700" x-transition:leave-start="translate-x-0" x-transition:leave-end="translate-x-full" > <div x-show="open" x-cloak="" x-transition:enter="ease-in-out duration-500" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in-out duration-500" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" class="absolute top-0 right-2 flex p-2 mt-2"> <button type="button" @click="open = false;" aria-label="Close&#x20;panel" class="p-2 text-gray-300 transition duration-150 ease-in-out hover:text-black" > <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1-x" version="1.1" viewBox="0 0 18.3 18.3" width="24" height="24" role="img"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .x-st0 { fill: none; stroke: currentColor; stroke-miterlimit: 4; stroke-width: 1.5px; } </style> </defs> <g id="Raggruppa_4459_5"> <path id="Tracciato_156-x_5" class="x-st0" d="M.53.53l17.24,17.24"/> <path id="Tracciato_155-x_5" class="x-st0" d="M17.77.53L.53,17.77"/> </g> <title>Close panel</title></svg> </button> </div> <template x-if="open"> <div class="flex flex-col h-full py-6 space-y-6 bg-white shadow-xl overflow-y-auto"> <div class="block-customer-login bg-container border border-container mx-4 p-4 shadow-sm"> <p id="authenticate-customer-login" class="text-lg leading-7 text-gray-900"> <strong class="font-medium">Checkout using your account</strong> </p> <form class="form form-login" method="post" @submit.prevent="submitForm();" id="login-form" > <div class="control"> <input type="hidden" value="" name="g-recaptcha-response" /> </div> <div class="fieldset login"> <div class="field email required"> <label class="label" for="form-login-username" form="login-form" > <span>Email Address</span> </label> <div class="control"> <input name="username" id="form-login-username" x-ref="customer-email" @change="errors = 0" type="email" required autocomplete="off" class="form-input input-text" > </div> </div> <div class="field password required"> <label for="form-login-password" class="label" form="login-form"> <span>Password</span> </label> <div class="control"> <input name="password" id="form-login-password" type="password" class="form-input input-text" required x-ref="customer-password" autocomplete="off" @change="errors = 0" > </div> </div> <input name="context" type="hidden" value="checkout" /> <div class="actions-toolbar flex justify-between pt-6 pb-2 items-center"> <button type="submit" disabled data-recaptcha-btn class="inline-flex btn btn-primary disabled:opacity-75" > Sign In </button> <a href="https://www.macron.com/uk/customer/account/forgotpassword/" > Forgot Your Password? </a> </div> </div> </form> </div> <div class="mx-4"> <p class="my-4 text-sm"> This form is protected by reCAPTCHA - the <a class="underline" href="https://policies.google.com/privacy" target="_blank" rel="noopener">Google Privacy Policy</a> and <a class="underline" href="https://policies.google.com/terms" target="_blank" rel="noopener">Terms of Service</a> apply.</p> </div> <div class="block-new-customer bg-container border border-container mx-4 p-4 shadow-sm"> <p id="authenticate-new-customer" class="text-lg mb-2 leading-7 text-gray-900"> <strong class="font-medium">Checkout as a new customer</strong> </p> <div class="block-content"> <p class="mb-1"> Creating an account has many benefits: </p> <ul class="list-disc pl-5"> <li> See order and shipping status</li> <li> Track order history</li> <li> Check out faster</li> </ul> <div class="actions-toolbar flex justify-between mt-6 mb-2 items-center"> <a href="https://www.macron.com/uk/customer/account/create/" class="inline-flex btn btn-primary"> Create an Account </a> </div> </div> </div> </div> </template> </div> </div> </section> <div class="flex flex-row justify-center items-center w-full h-full fixed select-none z-50" style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgba(255,255,255,0.7);" x-show="isLoading" x-cloak x-transition:enter="ease-out duration-200" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0"> <!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL --> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" stroke="currentColor" class="text-primary" width="57" height="57" role="img"> <g fill="none" fill-rule="evenodd"> <g transform="translate(1 1)" stroke-width="2"> <circle cx="5" cy="50" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcMode="linear" repeatCount="indefinite"/> </circle> <circle cx="27" cy="5" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcMode="linear" repeatCount="indefinite"/> </circle> <circle cx="49" cy="50" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcMode="linear" repeatCount="indefinite"/> </circle> </g> </g> <title>loader</title></svg> <div class="ml-10 text-primary text-xl"> Loading... </div> </div> </div> </div> </div> </header><main id="maincontent" class="page-main-full-width"><div id="contentarea" tabindex="-1"></div> <div class="page messages"><script> function initMessages() { "use strict"; return { messages: window.mageMessages || [], isEmpty() { return this.messages.reduce( function (isEmpty, message) { return isEmpty && message === undefined }, true ) }, removeMessage(messageIndex) { this.messages[messageIndex] = undefined; }, addMessages(messages, hideAfter) { messages.map((message) => { this.messages = this.messages.concat(message); if (hideAfter === undefined && message.type === 'success' && window.defaultSuccessMessageTimeout) { hideAfter = window.defaultSuccessMessageTimeout; } if (hideAfter) { this.setHideTimeOut(this.messages.length -1, hideAfter); } }); }, setHideTimeOut(messageIndex, hideAfter) { setTimeout((messageIndex) => { this.removeMessage(messageIndex); }, hideAfter, messageIndex); }, eventListeners: { ['@messages-loaded.window'](event) { this.addMessages(event.detail.messages, event.detail.hideAfter) }, ['@private-content-loaded.window'](event) { const data = event.detail.data; if ( data.messages && data.messages.messages && data.messages.messages.length ) { this.addMessages(data.messages.messages); } }, ['@clear-messages.window']() { this.messages = []; } } } } </script> <section id="messages" x-data="initMessages()" x-bind="eventListeners" aria-live="assertive" role="alert" > <template x-if="!isEmpty()"> <div class="w-full"> <div class="messages container mx-auto py-3"> <template x-for="(message, index) in messages" :key="index"> <div> <template x-if="message"> <div class="message" :class="message.type" :ui-id="'message-' + message.type" > <span x-html="message.text"></span> <button type="button" class="text-gray-600 hover:text-black" aria-label="Close message" @click.prevent="removeMessage(index)" > <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1-x" version="1.1" viewBox="0 0 18.3 18.3" class="stroke-current" width="18" height="18" aria-hidden="true"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .x-st0 { fill: none; stroke: currentColor; stroke-miterlimit: 4; stroke-width: 1.5px; } </style> </defs> <g id="Raggruppa_4459_6"> <path id="Tracciato_156-x_6" class="x-st0" d="M.53.53l17.24,17.24"/> <path id="Tracciato_155-x_6" class="x-st0" d="M17.77.53L.53,17.77"/> </g> </svg> </button> </div> </template> </div> </template> </div> </div> </template> </section> </div><div class="columns"><div class="column main"><div id="monkey_campaign" style="display:none;" data-mage-init='{"campaigncatcher":{"checkCampaignUrl": "https://www.macron.com/uk/mailchimp/campaign/check/"}}'> </div><span data-mage-init='{"emailCapture": {"url": "https://www.macron.com/uk/event/action/capture/"}}'></span> <style>#html-body [data-pb-style=DRYOHCT] { justify-content: flex-start; display: flex; flex-direction: column; background-position: left top; background-size: cover; background-repeat: no-repeat; background-attachment: scroll }</style> <div class="splash-banner-row" data-content-type="row" data-appearance="full-width" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="DRYOHCT"> <div class="row-full-width-inner" data-element="inner"> <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"> <style>#html-body [data-pb-style=Y72IQF0]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=KA8IGUE]{display:flex;width:100%}#html-body [data-pb-style=CV6N97C],#html-body [data-pb-style=JJCFLEM],#html-body [data-pb-style=RBTKQMC],#html-body [data-pb-style=YO1VJH3]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:25%;align-self:stretch}#html-body [data-pb-style=GTBV9OY]{border-style:none}#html-body [data-pb-style=OYTJMAI],#html-body [data-pb-style=W85V9OA]{max-width:100%;height:auto}#html-body [data-pb-style=PW7V8B2]{border-style:none}#html-body [data-pb-style=GLX1G48],#html-body [data-pb-style=K7PG3F7]{max-width:100%;height:auto}#html-body [data-pb-style=QDR1JB6]{border-style:none}#html-body [data-pb-style=L9YD1X6],#html-body [data-pb-style=OITE1M8]{max-width:100%;height:auto}#html-body [data-pb-style=GF64YA5]{border-style:none}#html-body [data-pb-style=JHJ0TIY],#html-body [data-pb-style=T6A8DX1]{max-width:100%;height:auto}@media only screen and (max-width: 768px) { #html-body [data-pb-style=GF64YA5],#html-body [data-pb-style=GTBV9OY],#html-body [data-pb-style=PW7V8B2],#html-body [data-pb-style=QDR1JB6]{border-style:none} }</style><div class="pagebuilder-column-group splash-banner" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="Y72IQF0"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="KA8IGUE"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="JJCFLEM"><div data-content-type="text" data-appearance="default" data-element="main"><p><a href="https://www.macron.com/uk/clubhouse-comingsoon">Clubhouse</a></p></div><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="GTBV9OY"><a href="https://www.macron.com/uk/clubhouse-comingsoon" target="" data-link-type="default" title="" data-element="link"><img class="pagebuilder-mobile-hidden" src="https://www.macron.com/media/cms-blocks/splash-banner/m7dr36fqjay62meoufpyp8fo1qx1vjlk.jpg" alt="" title="" data-element="desktop_image" data-pb-style="W85V9OA"><img class="pagebuilder-mobile-only" src="https://www.macron.com/media/cms-blocks/splash-banner/02ajoXwHuxbtiVXBKdmkRgF6HUmT3SfG.jpg" alt="" title="" data-element="mobile_image" data-pb-style="OYTJMAI"></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="CV6N97C"><div data-content-type="text" data-appearance="default" data-element="main"><p><a tabindex="0" href="https://www.macron.com/uk/racket-sports-and-sportswear">Racket Sports</a><br><a tabindex="0" href="https://www.macron.com/uk/racket-sports-and-sportswear">& Sportswear</a></p></div><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="PW7V8B2"><a href="https://www.macron.com/uk/racket-sports-and-sportswear" target="" data-link-type="default" title="" data-element="link"><img class="pagebuilder-mobile-hidden" src="https://www.macron.com/media/cms-blocks/splash-banner/zxmbdzsaovo6k2wr0ir9yhf4ff7q8qe7.jpg" alt="" title="" data-element="desktop_image" data-pb-style="K7PG3F7"><img class="pagebuilder-mobile-only" src="https://www.macron.com/media/cms-blocks/splash-banner/uvCvQ5S29qKT1OdOGRrzk559Jp0ER4ZM.jpg" alt="" title="" data-element="mobile_image" data-pb-style="GLX1G48"></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="YO1VJH3"><div data-content-type="text" data-appearance="default" data-element="main"><p><a href="https://www.macron.com/uk/merchandising">Merchandising</a></p></div><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="QDR1JB6"><a href="https://www.macron.com/uk/merchandising" target="" data-link-type="default" title="" data-element="link"><img class="pagebuilder-mobile-hidden" src="https://www.macron.com/media/cms-blocks/splash-banner/20ligf43x20xuxyksdeb0ld7z35t2j5q.jpg" alt="" title="" data-element="desktop_image" data-pb-style="L9YD1X6"><img class="pagebuilder-mobile-only" src="https://www.macron.com/media/cms-blocks/splash-banner/rXahfU5UQVbGK7HGGnAHf2kIsqsNE6bk.jpg" alt="" title="" data-element="mobile_image" data-pb-style="OITE1M8"></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="RBTKQMC"><div data-content-type="text" data-appearance="default" data-element="main"><p><a href="https://www.macron.com/uk/team-sports">Team Sports</a></p></div><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="GF64YA5"><a href="https://www.macron.com/uk/team-sports" target="" data-link-type="default" title="" data-element="link"><img class="pagebuilder-mobile-hidden" src="https://www.macron.com/media/cms-blocks/splash-banner/v1z5afq6dzyhdc35wiu87x7dhiipj0yl.jpg" alt="" title="" data-element="desktop_image" data-pb-style="T6A8DX1"><img class="pagebuilder-mobile-only" src="https://www.macron.com/media/cms-blocks/splash-banner/1XCPXK8qHtXtsUQsH5uEEAQ7kQrCNe3R.jpg" alt="" title="" data-element="mobile_image" data-pb-style="JHJ0TIY"></a></figure></div></div></div> </div> </div> </div> <div id="amasty-scroll-product-list" x-data="initAmScroll()" x-init="processInit" @scroll.window.debounce="_initPaginator()" > <div x-cloak x-show="isBackToTopVisible" @scroll.window.debounce="resolveBackToTopVisibility"> <button type="button" id="amscroll-back-to-top" class="fixed text-xl rounded-full -rotate-90 text-white z-[1]" :class="{ 'bottom-20 -right-8 pt-1 pb-[6px] pr-2 pl-3': options.backToTop?.style_mobile !== 'arrow', 'right-3 bottom-5 p-0 h-[44px] w-[44px]': options.backToTop?.style_mobile === 'arrow', 'md:h-auto md:w-auto md:bottom-20 md:-right-8 md:pt-1 md:pb-[6px] md:pr-2 md:pl-3': options.backToTop?.style_desktop !== 'arrow', 'md:right-3 md:bottom-5 md:h-[44px] md:w-[44px] md:p-0': options.backToTop?.style_desktop === 'arrow', 'md:right-[-3.5rem] md:pt-2 md:rounded-b-none md:rounded-t-2xl': options.backToTop?.style_desktop === 'edge' }" :style="`background-color: ${options.backToTop?.color ?? '#4776f0'};}`" @click="window.scrollTo({ top: 0, behavior: 'smooth'})"> <span :class="{ 'hidden': options.backToTop?.style_mobile === 'arrow', 'inline-block': options.backToTop?.style_mobile !== 'arrow', 'md:hidden': options.backToTop?.style_desktop === 'arrow', 'md:inline-block': options.backToTop?.style_desktop !== 'arrow' }"> Back to Top </span> <span class="inline-block align-middle rounded-full border h-6 w-6" :class="{ 'relative border': options.backToTop?.style_mobile !== 'arrow', 'border-0 absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2': options.backToTop?.style_mobile === 'arrow', 'md:relative md:border md:translate-x-0 md:translate-y-0 md:left-0 md:top-0': options.backToTop?.style_desktop !== 'arrow', 'md:border-0 md:absolute md:top-1/2 md:left-1/2 md:-translate-x-1/2 md:-translate-y-1/2': options.backToTop?.style_desktop === 'arrow' }"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="inline absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2" width="24" height="24" role="img"> <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"/> <title>chevron-right</title></svg> </span> </button> <template id="amscroll-loading-icon-source"> <div class="amscroll-loading-block hidden"> <div class="amscroll-loading-icon animate-spin" style="background-image: url('https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Amasty_Scroll/images/loader.svg')"></div> </div> </template> </div> </div> </div></div></main><footer class="page-footer"><div class="footer content"><div class="container px-0 lg:px-[--container-padding-inline] pt-[26px] lg:pt-[58px] pb-[19px] relative flex flex-col body-font bg-secondary"> <div class="lg:pb-[53px] lg:border-b lg:border-primary"> <section x-defer="intersect" class="flex flex-col lg:flex-row flex-wrap order-first lg:gap-y-16 justify-between lg:mr-[10%] lgm:mr-[150px]" > <nav x-data="{ open: false }" x-defer="intersect" x-id="['collapse-id']" class="lg:w-1/4 border-b border-whiteSmoke lg:border-b-0 lg:pr-6" role="menubar" aria-label="Discover&#x20;Macron" > <span class="hidden lg:inline-block mb-[26px] uppercase font-semibold">Discover Macron</span> <button class="lg:hidden group flex w-full items-center justify-between py-3 pl-[21px] pr-[15px] sm:pr-[21px] lg:px-0 font-semibold uppercase active:text-grayLighter lg:hover:text-grayLighter" @click="open = !open" :aria-expanded="open" :aria-controls="$id('collapse-id')" aria-haspopup="true" > <span class="flex items-center gap-2"> Discover Macron </span> <span x-cloak class="transition-transform group-aria-expanded:rotate-180"> <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" class="Livello_1-chevron-down" version="1.1" viewBox="0 0 13.06 7.59" width="12" height="12" aria-hidden="true"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .chevron-down-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; } </style> </defs> <path id="Tracciato_553-chevron-down_2" class="chevron-down-st0" d="M12.53.53l-6,6L.53.53"/> </svg> </span> </button> <ul class="flex lg:!flex flex-col gap-y-[18px] pt-[13px] pb-[18px] pl-[21px] pr-6 lg:p-0" x-cloak x-show="!isMobile || open" :id="$id('collapse-id')" :aria-labelledby="$id('collapse-id')" :aria-hidden="open ? 'false' : 'true'" > <li class="level0 first level-top" style=""> <a href=https://www.macron.com/uk/macron-world class="level0 first level-top" target=_blank role="menuitem"> <span>About Us</span> </a> </li> <li class="level0 level-top" style=""> <a href=https://www.macron.com/uk/news/ class="level0 level-top" target=_self role="menuitem"> <span>News</span> </a> </li> <li class="level0 level-top" style=""> <a href=https://www.macron.com/uk/macron-4-the-planet class="level0 level-top" target=_self role="menuitem"> <span>Macron 4 The Planet</span> </a> </li> <li class="level0 level-top" style=""> <a href=https://www.macron.com/uk/work-with-us class="level0 level-top" target=_self role="menuitem"> <span>Work with us</span> </a> </li> <li class="level0 level-top" style=""> <a href=https://www.macron.com/uk/contacts class="level0 level-top" target=_self role="menuitem"> <span>Contacts</span> </a> </li> <li class="level0 level-top" style=""> <a href=https://www.macron.com/uk/catalog-en class="level0 level-top" target=_self role="menuitem"> <span>Catalogues</span> </a> </li> <li class="level0 last level-top" style=""> <a href=https://www.macron.com/uk/my-kit class="level0 last level-top" target=_self role="menuitem"> <span>My Macron Kit</span> </a> </li> </ul> </nav> <nav x-data="{ open: false }" x-defer="intersect" x-id="['collapse-id']" class="lg:w-1/4 border-b border-whiteSmoke lg:border-b-0 lg:pr-6" role="menubar" aria-label="Need&#x20;Help&#x3F;&#x20;" > <span class="hidden lg:inline-block mb-[26px] uppercase font-semibold">Need Help? </span> <button class="lg:hidden group flex w-full items-center justify-between py-3 pl-[21px] pr-[15px] sm:pr-[21px] lg:px-0 font-semibold uppercase active:text-grayLighter lg:hover:text-grayLighter" @click="open = !open" :aria-expanded="open" :aria-controls="$id('collapse-id')" aria-haspopup="true" > <span class="flex items-center gap-2"> Need Help? </span> <span x-cloak class="transition-transform group-aria-expanded:rotate-180"> <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" class="Livello_1-chevron-down" version="1.1" viewBox="0 0 13.06 7.59" width="12" height="12" aria-hidden="true"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .chevron-down-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; } </style> </defs> <path id="Tracciato_553-chevron-down_3" class="chevron-down-st0" d="M12.53.53l-6,6L.53.53"/> </svg> </span> </button> <ul class="flex lg:!flex flex-col gap-y-[18px] pt-[13px] pb-[18px] pl-[21px] pr-6 lg:p-0" x-cloak x-show="!isMobile || open" :id="$id('collapse-id')" :aria-labelledby="$id('collapse-id')" :aria-hidden="open ? 'false' : 'true'" > <li class="level0 first level-top" style=""> <a href=https://www.macron.com/uk/faqs class="level0 first level-top" target=_self role="menuitem"> <span>FAQs</span> </a> </li> <li class="level0 level-top" style=""> <a href=https://www.macron.com/uk/size-guide class="level0 level-top" target=_self role="menuitem"> <span>Size Guide</span> </a> </li> <li class="level0 level-top" style=""> <a href=https://www.macron.com/uk/shipping-and-return class="level0 level-top" target=_self role="menuitem"> <span>Shipping &amp; Return</span> </a> </li> <li class="level0 level-top" style=""> <a href=https://www.macron.com/uk/returns/guest/new/ class="level0 level-top" target=_self role="menuitem"> <span>Return Request</span> </a> </li> <li class="level0 level-top" style=""> <a href=https://www.macron.com/uk/payment class="level0 level-top" target=_self role="menuitem"> <span>Payment Methods</span> </a> </li> <li class="level0 last level-top" style=""> <a href=https://www.macron.com/uk/care-label-and-materials class="level0 last level-top" target=_self role="menuitem"> <span>Care Instructions and Materials</span> </a> </li> </ul> </nav> <nav x-data="{ open: false }" x-defer="intersect" x-id="['collapse-id']" class="lg:w-1/4 border-b border-whiteSmoke lg:border-b-0 lg:pr-6" role="menubar" aria-label="Legal&#x20;Services" > <span class="hidden lg:inline-block mb-[26px] uppercase font-semibold">Legal Services</span> <button class="lg:hidden group flex w-full items-center justify-between py-3 pl-[21px] pr-[15px] sm:pr-[21px] lg:px-0 font-semibold uppercase active:text-grayLighter lg:hover:text-grayLighter" @click="open = !open" :aria-expanded="open" :aria-controls="$id('collapse-id')" aria-haspopup="true" > <span class="flex items-center gap-2"> Legal Services </span> <span x-cloak class="transition-transform group-aria-expanded:rotate-180"> <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" class="Livello_1-chevron-down" version="1.1" viewBox="0 0 13.06 7.59" width="12" height="12" aria-hidden="true"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .chevron-down-st0 { fill: none; stroke: currentColor; stroke-width: 1.5px; } </style> </defs> <path id="Tracciato_553-chevron-down_4" class="chevron-down-st0" d="M12.53.53l-6,6L.53.53"/> </svg> </span> </button> <ul class="flex lg:!flex flex-col gap-y-[18px] pt-[13px] pb-[18px] pl-[21px] pr-6 lg:p-0" x-cloak x-show="!isMobile || open" :id="$id('collapse-id')" :aria-labelledby="$id('collapse-id')" :aria-hidden="open ? 'false' : 'true'" > <li class="level0 first level-top" style=""> <a href=https://www.macron.com/uk/privacy-policy class="level0 first level-top" target=_self role="menuitem"> <span>Privacy Policy</span> </a> </li> <li class="level0 level-top" style=""> <a href=https://www.macron.com/uk/terms-and-conditions class="level0 level-top" target=_self role="menuitem"> <span>Terms and Conditions</span> </a> </li> <li class="level0 level-top" style=""> <a href=https://www.macron.com/uk/loyalty class="level0 level-top" target=_self role="menuitem"> <span>Loyalty</span> </a> </li> <li class="level0 level-top" style=""> <a href=https://www.macron.com/uk/affiliation class="level0 level-top" target=_self role="menuitem"> <span>Affiliation</span> </a> </li> <li class="level0 last level-top" style=""> <a href=https://whistleblowing-macronspa.hawk-aml.com/Whistleblowing/home class="level0 last level-top" target=_self role="menuitem"> <span>Whistleblowing</span> </a> </li> </ul> </nav> </section> <div class="lg:absolute lg:top-[61px] lg:right-[60px] lg:bottom-5 flex lg:flex-col justify-between items-center py-3 pl-[21px] pr-3 lg:p-0 flex-wrap gap-x-5 gap-y-4 border-b border-whiteSmoke lg:border-b-0"> <div> <div class="page-footer__social"> <div class="row align-items-center justify-content-end"> <div class="col col-lg-auto"> <a href="https://www.instagram.com/macron/" target="_blank"> <svg class="link__icon svg-icon svg-icon--instagram" viewBox="0 0 32 32" preserveAspectRatio="xMidYMid meet" aria-hidden="true"> <use xlink:href="#svg-icon__instagram"></use> </svg> <span class="sr-only">Instagram</span> </a> </div> <div class="col col-lg-auto"> <a href="https://www.facebook.com/macronsports/" target="_blank"> <svg class="link__icon svg-icon svg-icon--facebook" viewBox="0 0 16 32" preserveAspectRatio="xMidYMid meet" aria-hidden="true"> <use xlink:href="#svg-icon__facebook"></use> </svg> <span class="sr-only">Facebook</span> </a> </div> <div class="col col-lg-auto"> <a href="https://www.linkedin.com/company/officialmacron" target="_blank"> <svg class="link__icon svg-icon svg-icon__linkedin" viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" aria-hidden="true" width="36" height="20"> <use xlink:href="#svg-icon__linkedin"></use> </svg> <span class="sr-only">Linkedin</span> </a> </div> <div class="col col-lg-auto"> <a href="https://www.twitter.com/MacronSports/" target="_blank"> <svg class="link__icon svg-icon svg-icon--twitter" viewBox="0 0 32 26" preserveAspectRatio="xMidYMid meet" aria-hidden="true"> <use xlink:href="#svg-icon__twitter"></use> </svg> <span class="sr-only">Twitter</span> </a> </div> <div class="col col-lg-auto"> <a href="https://www.youtube.com/user/macronvideo/" target="_blank"> <svg class="link__icon svg-icon svg-icon--youtube" viewBox="0 0 32 23" preserveAspectRatio="xMidYMid meet" aria-hidden="true"> <use xlink:href="#svg-icon__youtube"></use> </svg> <span class="sr-only">YouTube</span> </a> </div> </div> </div> </div> <nav x-data="{ open: false }" class="relative" > <button @click.prevent="open = !open" @click.outside="open = false" @keydown.window.escape="open=false" type="button" class="inline-flex items-center justify-center gap-x-[9px] w-full py-2 bg-secondary focus:outline-none active:text-grayLighter lg:hover:text-grayLighter" aria-haspopup="true" aria-expanded="true" > <svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 23" fill="none" role="img"> <path d="M10.5 0.777344C10.495 0.777344 10.495 0.777344 10.4899 0.777344C10.4899 0.777344 10.4899 0.777344 10.4849 0.777344C10.4798 0.777344 10.4748 0.777344 10.4748 0.777344C4.68462 0.792818 0 5.58979 0 11.506C0 17.4223 4.68462 22.2193 10.4748 22.2348C10.4798 22.2348 10.4849 22.2348 10.4849 22.2348H10.4899C10.495 22.2348 10.495 22.2348 10.5 22.2348C16.3002 22.2348 21 17.4326 21 11.506C21 5.57947 16.3002 0.777344 10.5 0.777344ZM10.919 7.19909C12.0346 7.16814 13.1149 7.01856 14.1599 6.76066C14.4728 8.02438 14.6697 9.4841 14.7 11.0831H10.919V7.19909ZM10.919 6.3377V1.70579C12.0498 2.02559 13.2007 3.56784 13.9276 5.93537C12.9584 6.17264 11.9538 6.30675 10.919 6.3377ZM10.081 1.69547V6.34286C9.03606 6.31191 8.02139 6.17264 7.04712 5.93022C7.78413 3.54721 8.94014 1.99464 10.081 1.69547ZM10.081 7.19909V11.0779H6.27476C6.30505 9.47894 6.50192 8.01922 6.8149 6.7555C7.8649 7.0134 8.96034 7.16814 10.081 7.19909ZM5.42668 11.0779H0.853125C0.94399 8.87029 1.75168 6.84835 3.03894 5.24936C3.97284 5.77548 4.96731 6.20875 6.00721 6.52855C5.66394 7.89543 5.46202 9.43768 5.42668 11.0779ZM5.42668 11.9342C5.45697 13.5693 5.65889 15.1167 6.00216 16.4835C4.96226 16.8085 3.97284 17.2366 3.03389 17.7627C1.74663 16.1637 0.943991 14.1418 0.848077 11.9342H5.42668ZM6.27476 11.9342H10.081V15.8078C8.96034 15.8388 7.8649 15.9935 6.8149 16.2566C6.50192 14.9929 6.30505 13.5332 6.27476 11.9342ZM10.081 16.6692V21.3218C8.94014 21.0175 7.78413 19.47 7.04712 17.087C8.02139 16.8395 9.03606 16.7002 10.081 16.6692ZM10.919 21.3063V16.6641C11.9538 16.695 12.9584 16.8343 13.9327 17.0716C13.2007 19.4443 12.0548 20.9865 10.919 21.3063ZM10.919 15.8078V11.9342H14.7C14.6697 13.528 14.4728 14.9877 14.1599 16.2514C13.1149 15.9935 12.0346 15.8388 10.919 15.8078ZM15.543 11.9342H20.1469C20.056 14.1418 19.2483 16.1586 17.9611 17.7627C17.0171 17.2315 16.0175 16.7982 14.9675 16.4732C15.3108 15.1064 15.5127 13.5693 15.543 11.9342ZM15.543 11.0779C15.5127 9.44284 15.3108 7.90058 14.9726 6.53371C16.0226 6.20875 17.0221 5.77548 17.9611 5.24936C19.2483 6.84835 20.056 8.87029 20.1469 11.0831H15.543V11.0779ZM17.3856 4.58913C16.5476 5.04304 15.6692 5.41957 14.7454 5.70326C14.2558 4.0888 13.5642 2.7735 12.7514 1.90695C14.5385 2.34539 16.1337 3.29446 17.3856 4.58913ZM8.21827 1.91727C7.40553 2.77866 6.71899 4.09396 6.23438 5.6981C5.32067 5.41441 4.44736 5.04304 3.61947 4.58913C4.85625 3.29962 6.44135 2.3557 8.21827 1.91727ZM3.61442 18.4178C4.44231 17.9639 5.32067 17.5925 6.22933 17.3088C6.71899 18.9181 7.40553 20.2283 8.21827 21.0948C6.44135 20.6564 4.85625 19.7125 3.61442 18.4178ZM12.7514 21.1051C13.5692 20.2386 14.2558 18.9233 14.7505 17.3037C15.6743 17.5874 16.5526 17.9639 17.3906 18.4178C16.1387 19.7176 14.5385 20.6667 12.7514 21.1051Z" fill="currentColor"/> <title>globe</title></svg> <span>United Kingdom</span> </button> <ul x-cloak x-show="open" class="absolute right-0 bottom-full z-[1150] overflow-auto overscroll-contain grid lg:grid-cols-3 gap-y-[15px] gap-x-3 lg:gap-x-[30px] w-[75vw] max-h-[70dvh] max-w-[1000px] py-5 lg:pt-[30px] lg:pb-9 px-5 lg:px-[45px] lg:mb-[13px] rounded-base bg-secondary border border-primary" > <li> <a href="https://www.macron.com/eu/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/al.svg" width="32" alt="Albania flag"> <span>Albania</span> </a> </li> <li> <a href="https://www.macron.com/wo/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/au.svg" width="32" alt="Australia flag"> <span>Australia</span> </a> </li> <li> <a href="https://www.macron.com/de/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/at.svg" width="32" alt="Austria flag"> <span>Austria</span> </a> </li> <li> <a href="https://www.macron.com/be/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/be.svg" width="32" alt="Belgium flag"> <span>Belgium</span> </a> </li> <li> <a href="https://www.macron.com/eu/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/bg.svg" width="32" alt="Bulgaria flag"> <span>Bulgaria</span> </a> </li> <li> <a href="https://www.macron.com/eu/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/hr.svg" width="32" alt="Croatia flag"> <span>Croatia</span> </a> </li> <li> <a href="https://www.macron.com/eu/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/cy.svg" width="32" alt="Cyprus flag"> <span>Cyprus</span> </a> </li> <li> <a href="https://www.macron.com/eu/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/cz.svg" width="32" alt="Czechia flag"> <span>Czechia</span> </a> </li> <li> <a href="https://www.macron.com/en/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/dk.svg" width="32" alt="Denmark flag"> <span>Denmark</span> </a> </li> <li> <a href="https://www.macron.com/en/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/ee.svg" width="32" alt="Estonia flag"> <span>Estonia</span> </a> </li> <li> <a href="https://www.macron.com/en/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/fo.svg" width="32" alt="Faroe&#x20;Islands flag"> <span>Faroe Islands</span> </a> </li> <li> <a href="https://www.macron.com/en/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/fi.svg" width="32" alt="Finland flag"> <span>Finland</span> </a> </li> <li> <a href="https://www.macron.com/eu/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/gr.svg" width="32" alt="Greece flag"> <span>Greece</span> </a> </li> <li> <a href="https://www.macron.com/eu/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/hu.svg" width="32" alt="Hungary flag"> <span>Hungary</span> </a> </li> <li> <a href="https://www.macron.com/en/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/is.svg" width="32" alt="Iceland flag"> <span>Iceland</span> </a> </li> <li> <a href="https://www.macron.com/en/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/ie.svg" width="32" alt="Ireland flag"> <span>Ireland</span> </a> </li> <li> <a href="https://www.macron.com/it/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/it.svg" width="32" alt="Italy flag"> <span>Italy</span> </a> </li> <li> <a href="https://www.macron.com/wo/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/jp.svg" width="32" alt="Japan flag"> <span>Japan</span> </a> </li> <li> <a href="https://www.macron.com/en/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/lv.svg" width="32" alt="Latvia flag"> <span>Latvia</span> </a> </li> <li> <a href="https://www.macron.com/en/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/lt.svg" width="32" alt="Lithuania flag"> <span>Lithuania</span> </a> </li> <li> <a href="https://www.macron.com/en/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/lu.svg" width="32" alt="Luxembourg flag"> <span>Luxembourg</span> </a> </li> <li> <a href="https://www.macron.com/eu/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/mt.svg" width="32" alt="Malta flag"> <span>Malta</span> </a> </li> <li> <a href="https://www.macron.com/en/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/md.svg" width="32" alt="Moldova flag"> <span>Moldova</span> </a> </li> <li> <a href="https://www.macron.com/en/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/nl.svg" width="32" alt="Netherlands flag"> <span>Netherlands</span> </a> </li> <li> <a href="https://www.macron.com/en/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/no.svg" width="32" alt="Norway flag"> <span>Norway</span> </a> </li> <li> <a href="https://www.macron.com/eu/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/pl.svg" width="32" alt="Poland flag"> <span>Poland</span> </a> </li> <li> <a href="https://www.macron.com/eu/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/pt.svg" width="32" alt="Portugal flag"> <span>Portugal</span> </a> </li> <li> <a href="https://www.macron.com/eu/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/ro.svg" width="32" alt="Romania flag"> <span>Romania</span> </a> </li> <li> <a href="https://www.macron.com/eu/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/sk.svg" width="32" alt="Slovakia flag"> <span>Slovakia</span> </a> </li> <li> <a href="https://www.macron.com/eu/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/si.svg" width="32" alt="Slovenia flag"> <span>Slovenia</span> </a> </li> <li> <a href="https://www.macron.com/en/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/se.svg" width="32" alt="Sweden flag"> <span>Sweden</span> </a> </li> <li> <a href="https://www.macron.com/ch/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/ch.svg" width="32" alt="Switzerland flag"> <span>Switzerland</span> </a> </li> <li> <a href="https://www.macron.com/en/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/ua.svg" width="32" alt="Ukraine flag"> <span>Ukraine</span> </a> </li> <li> <a href="https://www.macron.com/uk/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/gb.svg" width="32" alt="United&#x20;Kingdom flag"> <span>United Kingdom</span> </a> </li> <li> <a href="https://www.macron.com/wo/" rel="nofollow" class="flex items-center gap-x-5 underline hover:no-underline font-semibold" > <img src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Tsu_Geolocation/images/flags/us.svg" width="32" alt="United&#x20;States flag"> <span>United States</span> </a> </li> </ul> </nav> </div> </div> <div class="flex items-center sm:flex-row flex-col pl-[19px] pr-4 lg:px-0 mt-[15px] lg:mt-[21px]"> <div class="text-[11px]"> <div class="flex mb-3 gap-x-3"> <a href="https://policies.google.com/terms" target="_blank" class="underline hover:no-underline">Terms of Service</a> <a href="https://policies.google.com/privacy" target="_blank" class="underline hover:no-underline">Privacy Policy</a> <button class="pr-cookie-settings-trigger underline hover:no-underline">Cookie preferences</button> </div> MACRON E-COMMERCE PIVA 03488031208 - REA BO-523149 - SHARE CAPITAL 10.000€ © 2025 Macron<br> <span class="recaptcha">This site is protected by reCAPTCHA and the Google <a href="https://policies.google.com/privacy" target="_blank">Privacy Policy</a> and <a href="https://policies.google.com/terms" target="_blank">Terms of Service</a> apply.</span><br> </div> </div> </div> <script> 'use strict'; function amBrandsPopup() { let cached = false; const displayError = (error) => { console.error(error); typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( [{ type: "error", text: "Something\u0020went\u0020wrong.\u0020Please\u0020try\u0020again." }], 10000 ); }; let letters = [ "A","B","C","D", "E","F","G","H","I","J","K","L","M", "N","O","P","Q","R","S","T","U","V","W","X","Y","Z","#" ]; return { hoverPanelActiveId: null, selectedLetter: null, items: [], letters: [], showCount: null, showFilter: null, showImages: true, showSearch: null, loading: false, label: 'Brands', isPopupEnabled: false, isTopMenuItemEnabled: false, cache: false, isMobile: false, initErrorMessages(errors) { const messages = []; for (let error in Object.keys(errors)) { messages.push({type: 'error', text: errors[error].message}); } typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(messages, 10000); }, chooseLetter(letter) { this.selectedLetter = this.selectedLetter === letter ? null : letter; }, getQuery() { return "query BrandsPopupQuery { ambrandlist(\n showCount: true\n displayZero: true\n ) {\n all_letters,\n items {\n alt\n brandId\n cnt\n image\n img\n label\n letter\n url\n }\n }\n storeConfig {\n amshopby_brand_general_brands_brands_popup,\n amshopby_brand_general_menu_item_label,\n amshopby_brand_general_brands_page,\n amshopby_brand_general_topmenu_enabled,\n amshopby_brand_general_brands_popup_config {\n show_images,\n display_zero,\n filter_display_all,\n image_width,\n image_height,\n show_filter,\n show_count\n }\n } }" }, /** * Retrieve media url for given path * * @param path * @returns {string} */ getMediaUrl(path) { let stringToRemove = 'index.php/'; let baseUrl = BASE_URL.replace(stringToRemove, ''); return path.includes(baseUrl) ? path : baseUrl + path; }, checkIsMobileResolution() { this.isMobile = window.matchMedia('(max-width: 1023px)').matches; }, getBrandUrl(url){ return BASE_URL + url; }, init() { this.checkIsMobileResolution(); this.$watch('hoverPanelActiveId', (value) => { if (value === 'am-brand') { this.sendRequest(); } }); }, /** * Get brands by letter * * @param result * @returns {{imageWidth: *, isTopMenuItemEnabled: *, showCount: *, displayAll: *, showFilter: *, showImages: *, isPopupEnabled: *, label: *, imageHeight: *, filterDisplayAll: *, brandsPage: *}} */ settingsMapper(result) { const config = result.data.storeConfig?.amshopby_brand_general_brands_popup_config; return { showImages: config.show_images, showCount: config.show_count, showFilter: config.show_filter, imageWidth: config.image_width, imageHeight: config.image_height, filterDisplayAll: config.filter_display_all, displayAll: config.display_zero, isPopupEnabled: result.data.storeConfig?.amshopby_brand_general_brands_brands_popup, label: result.data.storeConfig?.amshopby_brand_general_menu_item_label, isTopMenuItemEnabled: result.data.storeConfig?.amshopby_brand_general_topmenu_enabled, brandsPage: result.data.storeConfig?.amshopby_brand_general_brands_page, } }, /** * Send request to graphql * * @returns {Promise<any>} */ async sendRequest() { if (this.isMobile) { return false; } this.loading = true; try { if (cached) { this.loading = false; return false; } const response = await fetch('https://www.macron.com/uk/graphql', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Store': 'uk' }, credentials: 'include', body: JSON.stringify({query: this.getQuery(), variables: {}}) }); const result = await response.json(); if (result?.errors) { this.initErrorMessages(result.errors); return; } const data = result.data?.ambrandlist; const mapper = this.settingsMapper(result); // Update component settings Object.keys(mapper).forEach(config => { this[config] = mapper[config]; }); if (!this.filterDisplayAll) { letters = data.all_letters.split(','); } const items = data.items.map(brand => { brand.image = brand.img ? this.getMediaUrl(brand.img) : (brand.image ? this.getMediaUrl(brand.image) : null); return brand; }); this.letters = letters.map(letter => ({ letter, brands: this.getLetterItems(items, letter), })); this.items = this.letters.filter(row => row.brands?.length > 0); cached = true; } catch (error) { displayError(error); } finally { this.loading = false; } }, /** * Get brands by letter * * @param items * @param letter * @returns {*} */ getLetterItems(items, letter) { return items.filter(row => row.letter === letter); }, convertHtml(text) { let textField = document.createElement("textarea"); textField.innerHTML = text; return textField.value; } } } </script> </div></footer><script> function initSplashBanner() { return { init: function () { this.addBannerEventListener(); }, addBannerEventListener: function () { const splashBanner = document.querySelector('.splash-banner'); if (splashBanner) { const splashBannerColumnLine = splashBanner.querySelector('.pagebuilder-column-line'); const columns = splashBanner.querySelectorAll('.pagebuilder-column'); splashBannerColumnLine.addEventListener('focusout', (event) => { columns.forEach(function (column) { if (!column.contains(event.target)) { column.classList.remove('isActive'); } }); }); columns.forEach((column) => { let isTouch = false; column.addEventListener('mouseenter', (event) => { if (!isTouch) { column.classList.add('isActive'); } }); column.addEventListener('mouseleave', (event) => { isTouch = false; column.classList.remove('isActive'); }); column.addEventListener('touchstart', (event) => { isTouch = true; }); column.addEventListener('mouseover', (event) => { if (!isTouch && !column.classList.contains('isActive')) { column.classList.add('isActive'); } }); column.addEventListener('click', (event) => { if (isTouch) { const column = event.currentTarget; const link = column.querySelector('figure > a') || column.querySelector('a'); link.focus(); columns.forEach(function (column) { if (!column.contains(event.target)) { column.classList.remove('isActive'); } }); column.classList.add('isActive'); } }); }); } } } } </script> <div x-data="initSplashBanner()"></div> <script> const browserStorage = hyva.getBrowserStorage(); let localStorageBusinessLineItem = null; let businessLineItem = null; document.addEventListener('alpine:init', () => { localStorageBusinessLineItem = localStorage.getItem('business_line_item'); if (localStorageBusinessLineItem) { businessLineItem = JSON.parse(localStorageBusinessLineItem); } else { businessLineItem = Alpine.store('businessLine').businessLineList[0]; } window.businessLineItem = businessLineItem; browserStorage.setItem('business_line_item', JSON.stringify(businessLineItem)); }); </script> <script> function initBodyCustomScript() { return { isMobile: null, mobileMatchMedia: window.matchMedia("(max-width: 980px)"), tabletMatchMedia: window.matchMedia("(min-width: 768px) and (max-width: 980px)"), init() { this.initDeviceTypeVariable(); }, onChangeMobileMedia(mediaQuery) { if (this.isMobile !== mediaQuery.matches) { const isMobile = this.mobileMatchMedia.matches; this.isMobile = isMobile; } }, onChangeTabletMedia(mediaQuery) { if (this.isTablet !== this.mobileMatchMedia.matches) { const isTablet = this.tabletMatchMedia.matches; this.isTablet = isTablet; } }, initDeviceTypeVariable() { this.onChangeMobileMedia(this.mobileMatchMedia); this.onChangeTabletMedia(this.tabletMatchMedia); if (typeof this.mobileMatchMedia.onchange !== 'object') { // Prevent an old iOS Safari bug where addEventListener does not accept an event type parameter this.mobileMatchMedia.addListener((event) => this.onChangeMobileMedia(event)); } else { this.mobileMatchMedia.addEventListener( "change", (event) => this.onChangeMobileMedia(event) ); } if (typeof this.mobileMatchMedia.onchange !== 'object') { // Prevent an old iOS Safari bug where addEventListener does not accept an event type parameter this.tabletMatchMedia.addListener((event) => this.onChangeTabletMedia(event)); } else { this.tabletMatchMedia.addEventListener( "change", (event) => this.onChangeTabletMedia(event) ); } } } } </script> <script> (() => { function changeNoCookieDomain() { let iframes = document.querySelectorAll('iframe'), youtubeNoCookieIframes = Array.from(iframes) .filter((iframe) => iframe.src.indexOf('youtube-nocookie.com') !== -1); youtubeNoCookieIframes.forEach((iframe) => { iframe.src = iframe.src.replace('youtube-nocookie.com', 'youtube.com'); }); } prCookieConsentApi.userScript.execute( changeNoCookieDomain, "marketing" ); })(); </script> <script> ( () => { function src_default (Alpine) { Alpine.directive('collapse', collapse) // If we're using a "minimum height", we'll need to disable // x-show's default behavior of setting display: 'none'. collapse.inline = (el, { modifiers }) => { if (! modifiers.includes('min')) return el._x_doShow = () => {} el._x_doHide = () => {} } function collapse(el, { modifiers }) { let duration = modifierValue(modifiers, 'duration', 250) / 1000 let floor = modifierValue(modifiers, 'min', 0) let fullyHide = ! modifiers.includes('min') if (! el._x_isShown) el.style.height = `${floor}px` // We use the hidden attribute for the benefit of Tailwind // users as the .space utility will ignore [hidden] elements. // We also use display:none as the hidden attribute has very // low CSS specificity and could be accidentally overridden // by a user. if (! el._x_isShown && fullyHide) el.hidden = true if (! el._x_isShown) el.style.overflow = 'hidden' // Override the setStyles function with one that won't // revert updates to the height style. let setFunction = (el, styles) => { let revertFunction = Alpine.setStyles(el, styles); return styles.height ? () => {} : revertFunction } let transitionStyles = { transitionProperty: 'height', transitionDuration: `${duration}s`, transitionTimingFunction: 'cubic-bezier(0.4, 0.0, 0.2, 1)', } el._x_transition = { in(before = () => {}, after = () => {}) { if (fullyHide) el.hidden = false; if (fullyHide) el.style.display = null let current = el.getBoundingClientRect().height el.style.height = 'auto' let full = el.getBoundingClientRect().height if (current === full) { current = floor } Alpine.transition(el, Alpine.setStyles, { during: transitionStyles, start: { height: current+'px' }, end: { height: full+'px' }, }, () => el._x_isShown = true, () => { if (Math.abs(el.getBoundingClientRect().height - full) < 1) { el.style.overflow = null } }) }, out(before = () => {}, after = () => {}) { let full = el.getBoundingClientRect().height Alpine.transition(el, setFunction, { during: transitionStyles, start: { height: full+'px' }, end: { height: floor+'px' }, }, () => el.style.overflow = 'hidden', () => { el._x_isShown = false // check if element is fully collapsed if (el.style.height == `${floor}px` && fullyHide) { el.style.display = 'none' el.hidden = true } }) }, } } } function modifierValue(modifiers, key, fallback) { // If the modifier isn't present, use the default. if (modifiers.indexOf(key) === -1) return fallback // If it IS present, grab the value after it: x-show.transition.duration.500ms const rawValue = modifiers[modifiers.indexOf(key) + 1] if (! rawValue) return fallback if (key === 'duration') { // Support x-collapse.duration.500ms && duration.500 let match = rawValue.match(/([0-9]+)ms/) if (match) return match[1] } if (key === 'min') { // Support x-collapse.min.100px && min.100 let match = rawValue.match(/([0-9]+)px/) if (match) return match[1] } return rawValue } document.addEventListener("alpine:init", () => { window.Alpine.plugin(src_default); }); } )() </script> <script> const loaderList = [] function createAjaxLoader() { const loader = document.createElement('div'); loader.className = 'absolute inset-0 flex justify-center items-center loader'; loader.innerHTML = `<!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL --> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" stroke="currentColor" class="w-full h-full p-2" width="24" height="24" role="img"> <g fill="none" fill-rule="evenodd"> <g transform="translate(1 1)" stroke-width="2"> <circle cx="5" cy="50" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcMode="linear" repeatCount="indefinite"/> </circle> <circle cx="27" cy="5" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcMode="linear" repeatCount="indefinite"/> </circle> <circle cx="49" cy="50" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcMode="linear" repeatCount="indefinite"/> </circle> </g> </g> <title>Loading...</title></svg> `; return loader; } function addAjaxLoader(buttons) { for (let i = 0; i < buttons.length; i++) { const button = buttons[i]; if (!button) { continue; } const loader = createAjaxLoader(); button.setAttribute('data-label', button.getAttribute('aria-label')); button.removeAttribute('aria-label'); button.prepend(loader); button.classList.add('relative', '[&>:not(.loader)]:invisible'); button.disabled = true; loaderList.push(loader); } } function removeAjaxLoader(buttons) { for (let i = 0; i < buttons.length; i++) { const button = buttons[i]; if (!button) { continue; } const loader = loaderList.shift(); button.setAttribute('aria-label', button.getAttribute('data-label')); button.removeAttribute('data-label'); loader.remove(); button.classList.remove('[&>:not(.loader)]:invisible'); button.disabled = false; } } async function addAjaxCartForm(form, extraDelay = 500) { if (!form) return; event.preventDefault(); if (!form.reportValidity()) { return form.submit(); } const formData = new FormData(form); const buttons = [] buttons.push(form.querySelector('button:not([type=button], [type=reset])') ? form.querySelectorAll('button:not([type=button], [type=reset])') : document.getElementById('product-addtocart-button')); // Add custom mobile button to the buttons array to add loader buttons.push(document.querySelector('.customMobileAtcBtn')); const loader = createAjaxLoader(); const formUenc = hyva.getUenc(); const postUrl = event.target.action.replace('%25uenc%25', formUenc); let bodyUrl = new URLSearchParams(formData); bodyUrl.append("uenc", formUenc); addAjaxLoader(buttons); try { const response = await fetch(postUrl, { method: 'POST', body: bodyUrl.toString(), mode: "cors", credentials: "include", headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', 'X-Requested-With': 'XMLHttpRequest' } }); if (!response.ok) { return form.submit(); } if (response.redirected) { return window.location.href = response.url; } const responseData = await response.json(); if (responseData.backUrl) { const searchParams = { super_attribute: {} }; for (const [key, value] of formData.entries()) { if (key.startsWith('super_attribute[')) { const attributeId = key.match(/\d+/)[0]; searchParams.super_attribute[attributeId] = value; } } const superAttributeURLSearchParamsString = new URLSearchParams(searchParams.super_attribute).toString(); let newURL = responseData.backUrl; if (superAttributeURLSearchParamsString) { newURL = newURL + '#' + superAttributeURLSearchParamsString; } return window.location.href = newURL; } window.dispatchEvent(new CustomEvent("reload-customer-section-data")); const productFormData = { productId: formData.get("product"), options: {} } for (const formEntry of formData.entries()) { if (!formEntry[0].startsWith('super_attribute')) continue; const formEntryOption = { [formEntry[0].match(/\[(\d+)\]/)[1]]: formEntry[1] }; productFormData.options = { ...productFormData.options, ...formEntryOption }; } window.dispatchEvent(new CustomEvent('open-ajax-cart', { detail: productFormData })); } catch (err) { console.warn(err); window.dispatchEvent(new CustomEvent('product-addtocart-error')); if (typeof window.dispatchMessages === "undefined") return; window.dispatchMessages([{ text:'There\u0020was\u0020a\u0020problem\u0020adding\u0020your\u0020item\u0020to\u0020the\u0020cart.', type: 'error' }], 3000); } finally { setTimeout(() => removeAjaxLoader(buttons), extraDelay); } } function removeAjaxCartForm(form) { removeEventListener('submit', form); } document.addEventListener('submit', function(event) { if (!event.target.matches('#product_addtocart_form, .product_addtocart_form')) return; addAjaxCartForm(event.target, 500); }); </script> <dialog class="w-full max-w-atc-popup rounded-base bg-secondary p-atc-popup backdrop:bg-primary backdrop:bg-opacity-50 lg:p-atc-popup-desktop" x-data="initAjaxCartModal" x-show="open" x-transition.duration.500ms @keydown.window.escape="closeDialog()" @click="!onDialogBackdropClickHelper(event) && closeDialog()" @open-ajax-cart.window="setNewCartData(event)" > <template x-if="open && cartItem"> <div> <div class="flex gap-x-5 items-baseline"> <h2 class="w-full truncate lg:text-h2"> Item added </h2> <button title="Close fullscreen" aria-label="Close fullscreen" @click="closeDialog()" > <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1-x" version="1.1" viewBox="0 0 18.3 18.3" width="18" height="18" aria-hidden="true"> <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) --> <defs> <style> .x-st0 { fill: none; stroke: currentColor; stroke-miterlimit: 4; stroke-width: 1.5px; } </style> </defs> <g id="Raggruppa_4459_7"> <path id="Tracciato_156-x_7" class="x-st0" d="M.53.53l17.24,17.24"/> <path id="Tracciato_155-x_7" class="x-st0" d="M17.77.53L.53,17.77"/> </g> </svg> </button> </div> <div class="flex gap-x-5 py-[30px]"> <div class="w-cart-image shrink-0"> <img loading="lazy" :src="cartItem.product_image.src" :width="cartItem.product_image.width" :height="cartItem.product_image.height" :alt="hyva.str('Product\u0020\u0022\u00251\u0022', cartItem.product_name)" class="w-full rounded-base" > </div> <div class="grow gap-y-[17px] font-semibold flex flex-col"> <div> <p x-html="cartItem.product_name"></p> <template x-if="(cartItem.options && cartItem.options.length > 0) || showSku"> <dl class="mt-2.5 text-[12px]"> <template x-if="cartItem.product_sku && showSku"> <div class="table-row"> <dt class="table-cell pb-1.5 pr-2 min-w-[theme(spacing.12)] sm:min-w-[theme(spacing.24)] font-normal text-slate-500 uppercase"> Sku </dt> <dd class="table-cell pb-1.5 font-bold" x-html="cartItem.product_sku"></dd> </div> </template> <template x-for="option in cartItem.options"> <div class="mb-[5px] last-of-type:mb-0"> <dt class="uppercase font-light inline" x-text="option.label + ':'"></dt> <dd class="inline" x-html="option.value"></dd> </div> </template> </dl> </template> </div> <div class="mt-auto" x-html="cartItem.product_price"></div> </div> </div> <div> <button @click.prevent.stop="closeDialog(); $dispatch('toggle-authentication', { url: 'https://www.macron.com/uk/checkout/' });" class="btn btn-primary lg:w-full" >Checkout</button> <a href="https://www.macron.com/uk/checkout/cart/" class="btn btn-tertiary mx-auto mt-5" @click="isLoading = true" >Cart (<span x-text="totalCartAmount"></span>)</a> </div> <div class="flex flex-row justify-center items-center w-full h-full fixed select-none z-50" style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgba(255,255,255,0.7);" x-show="isLoading" x-cloak x-transition:enter="ease-out duration-200" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0"> <!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL --> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" stroke="currentColor" class="text-primary" width="57" height="57" role="img"> <g fill="none" fill-rule="evenodd"> <g transform="translate(1 1)" stroke-width="2"> <circle cx="5" cy="50" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcMode="linear" repeatCount="indefinite"/> </circle> <circle cx="27" cy="5" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcMode="linear" repeatCount="indefinite"/> </circle> <circle cx="49" cy="50" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcMode="linear" repeatCount="indefinite"/> </circle> </g> </g> <title>loader</title></svg> <div class="ml-10 text-primary text-xl"> Loading... </div> </div> </div> </template> </dialog> <script> function initAjaxCartModal() { return { open: false, cart: {}, initialTotalCartAmount: 0, totalCartAmount: 0, cartItem: null, isLoading: false, showSku: false, init() { window.addEventListener('private-content-loaded', (event) => { const cartData = event.detail.data && event.detail.data.cart; if (!cartData) return; this.cart = cartData; this.totalCartAmount = this.cart.summary_count; this.initialTotalCartAmount = this.cart.summary_count; }, { once: true }); this.$watch('totalCartAmount', (value, oldValue) => { if (this.initialTotalCartAmount === this.totalCartAmount) return; this.openDialog(); this.initialTotalCartAmount = this.totalCartAmount; }) }, sortObjectByNumberKey(obj) { let keys = Object.keys(obj).map(Number).sort((a, b) => a - b); let sortedObj = {}; keys.forEach(key => sortedObj[key] = obj[key]); return sortedObj; }, setNewCartData(event) { const productData = event.detail; window.addEventListener('private-content-loaded', (event) => { const cartData = event.detail.data && event.detail.data.cart; if (!cartData) return; this.cart = cartData; this.totalCartAmount = this.cart.summary_count; if (!productData) return; this.getCurrentProductFromCart(productData); }); }, getCurrentProductFromCart(productData) { if (!this.cart.items) return; this.cartItem = this.cart.items.filter((item) => { if (item.product_id !== productData.productId) return; if (item.product_type !== "configurable") { return item; } let cartItemOptions = {}; for (const option of item.options) { const filterOptions = { [option.option_id]: option.option_value }; cartItemOptions = { ...cartItemOptions, ...filterOptions } } const cartItemOptionsCompare = JSON.stringify(this.sortObjectByNumberKey(cartItemOptions)); const productDataOptionsCompare = JSON.stringify(this.sortObjectByNumberKey(productData.options)); if (cartItemOptionsCompare === productDataOptionsCompare) { return item; } }); if (this.cartItem > 1) { this.cartItem = this.cartItem.slice(0, 1); } this.cartItem = this.cartItem[0]; }, openDialog() { if (!this.cartItem) return; this.$root.showModal(); this.open = true; this.scrollLock(this.open); }, closeDialog() { this.$root.close(); this.open = false; this.scrollLock(this.open); }, scrollLock(use = true) { document.body.style.overflow = use ? "hidden" : ""; }, onDialogBackdropClickHelper(event, target = this.$root) { const rect = target.getBoundingClientRect(); const isInDialog = rect.top <= event.clientY && event.clientY <= rect.top + rect.height && rect.left <= event.clientX && event.clientX <= rect.left + rect.width; return isInDialog; } } } </script> <script> // x-teleport implementation (_ => { document.addEventListener('DOMContentLoaded', event => { // x-teleport available only for template if (!Alpine.version.startsWith('2')) { return; } const teleportDirective = (el, expression) => { let target = document.querySelector(expression) let clone = el.content.cloneNode(true).firstElementChild; target.appendChild(clone); setTimeout(() => { target.querySelectorAll('[x-data]') .forEach(el => Alpine.initializeComponent(el)); }, 0) }; document.querySelectorAll('template').forEach(el => { if (!el.hasAttribute('x-teleport')) { return; } teleportDirective(el, el.getAttribute('x-teleport')); }); document.querySelectorAll('[x-data]').forEach(el => { if (el.hasAttribute('x-init')) { return; } setTimeout(() => { Alpine.initializeComponent(el); }, 0); }); }); })() </script> <script type="module" src="https://www.macron.com/static/version1740056337/frontend/Hyva/Macron/en_GB/Hyva_Theme/js/alpine3.min.js" defer crossorigin ></script> <script> 'use strict'; function dispatchMessages(messages, hideAfter) { const messagesEvent = new CustomEvent("messages-loaded", { detail: { messages: messages, hideAfter: hideAfter } }); window.dispatchEvent(messagesEvent); } if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script"); } (function( hyva, undefined ) { hyva.initFormKey = () => { const inputSelector = 'input[name="form_key"]', formKey = hyva.getFormKey(); Array.from(document.querySelectorAll(inputSelector)).map(function (input) { input.value = formKey }); } hyva.initMessages = () => { try { const messages = hyva.getCookie('mage-messages'); window.mageMessages = messages ? JSON.parse(decodeURIComponent(messages).replace(/\+/g, ' ')) : []; dispatchMessages(window.mageMessages); // empty `mage-messages` cookie const skipSetDomain = true; hyva.setCookie('mage-messages','', -1, skipSetDomain); } catch (error) { console.warn('Error parsing Cookie Messages:', error); } } window.addEventListener('DOMContentLoaded', hyva.initFormKey); hyva.alpineInitialized(hyva.initMessages) }( window.hyva = window.hyva || {} )); </script> <script> 'use strict'; { const private_content_key = 'mage-cache-storage'; const private_content_expire_key = 'mage-cache-timeout'; const private_content_version_key = 'private_content_version'; const section_data_ids_key = 'section_data_ids'; const mage_cache_session_id_key = 'mage-cache-sessid'; const last_visited_store_key = 'last_visited_store'; const ttl = 3600; if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script"); } function loadSectionData () { const browserStorage = hyva.getBrowserStorage(); if (!browserStorage) { typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( [{ type: "warning", text: "Please enable LocalStorage in your browser." }] ); return; } try { let isInvalid = false; if (hyva.getCookie(last_visited_store_key) !== CURRENT_STORE_CODE) { isInvalid = true; } hyva.setCookie(last_visited_store_key, CURRENT_STORE_CODE, false, false); if (!hyva.getCookie(mage_cache_session_id_key)) { isInvalid = true; browserStorage.removeItem(private_content_key); const skipSetDomain = true; const days = false; hyva.setCookie(mage_cache_session_id_key, true, days, skipSetDomain) } const cookieVersion = hyva.getCookie(private_content_version_key); const storageVersion = browserStorage.getItem(private_content_version_key); if (cookieVersion && !storageVersion || cookieVersion !== storageVersion) { isInvalid = true; } const privateContentExpires = browserStorage.getItem(private_content_expire_key); if (privateContentExpires && new Date(privateContentExpires) < new Date()) { browserStorage.removeItem(private_content_key); } if (isInvalid && cookieVersion) { fetchPrivateContent([]); } else if (cookieVersion && storageVersion && cookieVersion === storageVersion) { const privateContent = JSON.parse(browserStorage.getItem(private_content_key)); if ( privateContent && privateContentExpires && privateContent.cart && privateContent.customer ) { dispatchPrivateContent(privateContent); } else { fetchPrivateContent([]); } } else { if (document.getElementById('default-section-data')) { const privateContent = JSON.parse(document.getElementById('default-section-data').innerText.trim()); dispatchPrivateContent(privateContent); } else { dispatchPrivateContent({}); } } } catch (error) { console.warn('Error retrieving Private Content:', error); } } hyva.alpineInitialized(loadSectionData) window.addEventListener('reload-customer-section-data', loadSectionData); function dispatchPrivateContent(data) { const privateContentEvent = new CustomEvent("private-content-loaded", { detail: { data: data } }); window.dispatchEvent(privateContentEvent); } function fetchPrivateContent(sections) { fetch(`${BASE_URL}customer/section/load/?sections=${encodeURIComponent(sections.join(','))}`, { method: 'GET', headers: { 'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest' } }) .then(response => response.json()) .then( data => { if (data) { try { const browserStorage = hyva.getBrowserStorage(); // merge new data preserving non-invalidated sections const oldSectionData = JSON.parse(browserStorage.getItem(private_content_key) || '{}') || {}; if ((! data.cart || ! data.cart.cartId) && oldSectionData['checkout-data']) { delete oldSectionData['checkout-data']; } const newSectionData = Object.assign(oldSectionData, data); dispatchPrivateContent(newSectionData); // don't persist messages, they've been dispatched already if (newSectionData.messages && newSectionData.messages.messages ) { newSectionData.messages.messages = []; } browserStorage.setItem(private_content_key, JSON.stringify(newSectionData)); const expiresAt = new Date(Date.now() + (ttl * 1000)).toISOString(); browserStorage.setItem(private_content_expire_key, expiresAt); const newCookieVersion = hyva.getCookie(private_content_version_key); browserStorage.setItem(private_content_version_key, newCookieVersion); // We don't need the section_data_ids in Hyvä, but we store them for compatibility // with Luma Fallback. Otherwise, not all sections are loaded in Luma Checkout hyva.setCookie( section_data_ids_key, JSON.stringify( Object.keys(data).reduce((sectionDataIds, sectionKey) => { sectionDataIds[sectionKey] = data[sectionKey]['data_id']; return sectionDataIds; }, {}) ), false, true ); } catch (error) { console.warn("Couldn't store privateContent", error); } } } ); } } </script> <script> (() => { document.addEventListener('submit', event => event.target.action = event.target.action.replace('%25uenc%25', hyva.getUenc())); })() </script> <script> (events => { const dispatchUserInteractionEvent = () => { events.forEach(type => window.removeEventListener(type, dispatchUserInteractionEvent)) window.dispatchEvent(new Event('init-external-scripts')) }; events.forEach(type => window.addEventListener(type, dispatchUserInteractionEvent, {once: true, passive: true})) })(['touchstart', 'mouseover', 'wheel', 'scroll', 'keydown']) </script> <script> 'use strict'; function initAmScroll() { return { options: { product_container: '.products.products-grid, .products.products-list, .products-grid.grid', product_link: '.product-item-link', footerSelector: '.page-footer' }, type: 'auto', is_loading: 0, next_data_url: "", prev_data_url: "", next_data_cache: "", flag_next_cache: 0, prev_data_cache: "", flag_prev_cache: 0, pageFirst: 1, pagesCount: 1, pagesLoaded: [], currentPage: 1, last_scroll: 0, disabled: 0, additionalHeight: null, classes: { loadButton: 'amscroll-load-button', loadingBlock: 'amscroll-loading-block', loadingIcon: 'amscroll-loading-icon', loadingIconSource: '#amscroll-loading-icon-source', svgPathToFill: 'amscroll-fill-path', backToTopButton: '#amscroll-back-to-top', active: '-amscroll-active', text: 'amscroll-text', animate: '-amscroll-animate', pageNumber: 'amscroll-page-num' }, pageSelector: '[amscroll-page="%1"]', lastPageSelector: '.amscroll-page, .amscroll-pages', totalAmountSelector: '.toolbar-amount', totalNumberSelector: '.toolbar-number', toolbarSelector: '.toolbar.toolbar-products', amPageCountSelector: '#am-page-count', canShowAfter: false, canShowBefore: false, pagesBeforeButton: 0, isReinitialized: false, afterButton: null, beforeButton: null, insertedPages: 0, afterStepBackData: null, isBackToTopVisible: false, backToTopTriggerHeight: 400, loadingBlock: { before: { node: undefined, visible: false }, after: { node: undefined, visible: false } }, /** * @returns {void} */ processInit() { this.options = {"product_container":".products.products-grid:not(.amasty-banners), .products.products-list:not(.amasty-banners), .products-grid.grid:not(.amasty-banners)","product_link":".product-item-link","loadingImage":"https:\/\/www.macron.com\/static\/version1740056337\/frontend\/Hyva\/Macron\/en_GB\/Amasty_Scroll\/images\/loader.svg","pageNumbers":"1","pageNumberContent":"Page #","pageNumberStyle":"button","buttonColor":"#4776F0","buttonColorPressed":"#1846BE","loadingafterTextButton":"Load More","loadingbeforeTextButton":"Load previous","backToTop":{"enabled":"1","style_desktop":"arrow","style_mobile":"arrow","color":"#4776F0"},"backToTopText":"Back to Top","current_page":1,"footerSelector":".page-footer","actionMode":"button"}; if (document.querySelectorAll(this.options.product_container).length) { this._initNodes(); this.initialize(); } }, /** * @private * @returns {void} */ _initNodes() { this.loadButtonElement = document.createElement('button'); this.loadButtonElement.setAttribute('class', 'btn btn-primary ' + this.classes.loadButton); this.loadButtonElement.setAttribute('style', this.options['loadNextStyle']); this.loadButtonTextElement = document.createElement('span'); this.loadButtonTextElement.setAttribute('class', this.classes.text); const loader = document.querySelector(this.classes.loadingIconSource); const productContainer = document.querySelector(this.options.product_container); if (!productContainer) { return; } const productContainerParent = productContainer.parentElement; this.loadingBlock.before.node = productContainerParent.insertBefore( loader.content.firstElementChild.cloneNode(true), productContainer ); this.loadingBlock.after.node = productContainerParent.insertBefore( loader.content.firstElementChild.cloneNode(true), productContainerParent.lastChild ); }, /** * @returns {void} */ initialize() { this.next_data_cache = ""; this.pagesLoaded = []; this._initPagesCount(); this.disabled = 1; if (!this._validate()) { return; } this.disabled = 0; this.type = this.options['actionMode']; this.pagesBeforeButton = this.options['pages_before_button']; this.currentPage = this._getCurrentPage(); this.pagesLoaded.push(this.currentPage); if (this.type === 'button') { this._generateButton('before'); this._generateButton('after'); } this._preloadPages(); this.initPageStepForwardListener(this.currentPage); this._pagePositionAfterStepBack(); }, /** * @private * @returns {boolean} */ _validate() { switch (true) { case !this.options['product_container'] || document.querySelectorAll(this.options['product_container']).length === 0 : console.warn('Please specify "Products Group" DOM selector in module settings.'); return false; case !this.options['product_link'] || document.querySelectorAll(this.options['product_link']).length === 0 : console.warn('Please specify "Product Link" DOM selector in module settings.'); return false; case !this.options['footerSelector'] || document.querySelectorAll(this.options['footerSelector']).length === 0 : console.warn('Please specify "Footer Selector" DOM selector in module settings.'); return false; case this.pagesCount <= 1 : return false; } return true; }, /** * @private * @returns {void} */ _externalAfterAjax() { this.insertedPages++; try { if (document.getElementsByTagName('head')[0].innerHTML.indexOf('Infortis') > -1) { document.dispatchEvent('last-swatch-found'); } if (this.insertedPages < this.pagesBeforeButton) { return; } if (this.type === 'auto' && this.options['origActionMode'] === 'combined') { this.changeType('button'); } if (this.type === 'button' && this.options['origActionMode'] === 'combined_button_auto') { this.changeType('auto'); } } catch (e) { console.warn(e); } }, /** * @param {Node} productBlock * @returns {void} */ beforeInsertProductBlock(productBlock) { const formKey = hyva.getFormKey(); productBlock.querySelectorAll('[name="form_key"]').forEach((item) => item.value = formKey); }, /** * @param {string} requestUrl * @param {callback} successCallback * @returns {void} */ doAjax(requestUrl, successCallback) { fetch(requestUrl, { method: "GET", headers: { "X-Requested-With": "XMLHttpRequest", }, }) .then(response => { if (response.ok) { return response.json(); } else { console.warn("GET request failed", response); this._stop(); } }) .then(data => { if (data) { this.preprocessRawAjaxResponse(successCallback, data); } }); }, /** * @param {callback} successCallback * @param {Object} response */ preprocessRawAjaxResponse(successCallback, response) { if (typeof response === 'string' || response instanceof String) { try { response = JSON.parse(response) } catch (e) { return this.handleUnexpectedResponse(response); } } if (response !== null && response.hasOwnProperty('categoryProducts') && response.hasOwnProperty('currentPage') && response.categoryProducts.trim().length !== 0 ) { successCallback.call(this, response); } else { this.handleUnexpectedResponse(response); } }, /** * @param {Object} response */ handleUnexpectedResponse(response) { console.warn('Amasty_Scroll: invalid response from server.', {response: response}); this._stop(); }, /** * @private * @returns {void} */ _initPagesCount() { const amPager = document.querySelector(this.amPageCountSelector); let parent; let childs; let limit; let allProducts; let result; this.pagesLoaded = []; if (amPager) { this.pagesCount = parseInt(amPager.innerHTML); return; } parent = document.querySelectorAll(this.totalAmountSelector)[0]; if (parent) { childs = parent.querySelectorAll(this.totalNumberSelector); if (parent && childs.length >= 3) { limit = document.querySelector('.limiter-options').value; if (childs[2].textContent > 0 && limit) { allProducts = childs[2].textContent; result = Math.ceil(parseInt(allProducts) / parseInt(limit)); if (result > 1) { this.pagesCount = result; return; } } } } this.pagesCount = 1; }, /** * @param {string} type */ changeType(type) { if (this.isReinitialized) { return; } switch (type) { case 'button': this.type = 'button'; this.$nextTick(() => { this._generateButton('before'); this._generateButton('after'); }); break; case 'auto': this.type = 'auto'; break; } this.isReinitialized = true; }, /** * @private * @returns {void} */ _preloadPages() { const productContainer = document.querySelector(this.options['product_container']); let pageNumEl; productContainer.setAttribute('amscroll-page', this.currentPage); productContainer.classList.add('amscroll-page'); if (this.options['pageNumbers'] === '1') { pageNumEl = this._generatePageTitle(this.currentPage); if (pageNumEl) { productContainer.before(pageNumEl); } } this._preloadPageAfter(this.currentPage); this._preloadPageBefore(this.currentPage); }, /** * @returns {number} * @private */ _getCurrentPage() { let currentPage = parseInt(this.options['current_page']); if (currentPage > this.pagesCount) { currentPage = this.pagesCount; } return currentPage; }, /** * @private * @param {number} page * @returns {void} */ _preloadPageAfter(page) { const nextPage = page + 1; if (nextPage && nextPage <= this.pagesCount) { this.next_data_url = this._generateUrl(nextPage, 1); this.pagesLoaded.push(nextPage); this.flag_next_cache = 1; this.type !== 'button' && this.loadingBlock.after.node?.classList.remove('hidden'); this.doAjax(this.next_data_url, (data) => { this.flag_next_cache = 0; this.next_data_cache = data; this.type !== 'button' && this.loadingBlock.after.node?.classList.add('hidden'); this.showButton(this.afterButton); }); this.next_data_url = ''; } }, /** * @private * @param {number} page * @returns {void} */ _preloadPageBefore(page) { const prevPage = page - 1; if (prevPage && prevPage >= 1) { this.prev_data_url = this._generateUrl(prevPage, 1); this.pagesLoaded.unshift(prevPage); this.flag_prev_cache = 1; this.type !== 'button' && this.loadingBlock.before.node?.classList.remove('hidden'); this.doAjax(this.prev_data_url, (data) => { this.flag_prev_cache = 0; this.prev_data_cache = data; this.type !== 'button' && this.loadingBlock.before.node?.classList.add('hidden'); this.showButton(this.beforeButton); }); this.prev_data_url = ''; } }, /** * @private * @returns {void} */ _stop() { this.disabled = 1; document.querySelector(`.${this.classes.loadingBlock}`).style.display = 'none'; }, /** * @private * @returns {void} */ _getAdditionalBlockHeight() { if (this.additionalHeight === null) { let height = 0; const pageBottom = document.querySelectorAll('.page-bottom'); const blockAfterProducts = document.querySelectorAll('.main .products ~ .block-static-block'); if (blockAfterProducts.length) { height += blockAfterProducts.offsetHeight; } if (document.querySelectorAll(this.options.footerSelector).length) { document.querySelectorAll(this.options.footerSelector).forEach((footer) => { height += footer.offsetHeight; }); } if (pageBottom.length > 0) { height += pageBottom[0].offsetHeight; } this.additionalHeight = height; } return this.additionalHeight; }, /** * @private * @returns {void} */ _initPaginator() { if (this.disabled) { return; } let scroll_pos = window.scrollY; let diff = document.querySelector('body').offsetHeight - window.innerHeight; diff -= this._getAdditionalBlockHeight(); diff = 0.8 * diff; if (scroll_pos < this.lastScrollPos) { this.isScrolledBack = true; } this.lastScrollPos = scroll_pos; if (scroll_pos >= diff && this.is_loading === 0) { this._loadFollowing(); } if (scroll_pos <= this._getTopContainersHeight() && (this.is_loading === 0 && this._isScrolledBack())) { this._loadPrevious(); } this._calculateCurrentScrollPage(scroll_pos); document.addEventListener("DOMContentLoaded", (event) => { if (window.innerHeight > document.querySelector(this.options['product_container']).offsetHeight && '' !== this.next_data_url) { this._loadFollowing(); } }); }, /** * @private * @returns {void} */ _isScrolledBack() { return this.isScrolledBack; }, /** * @param {number} scroll_pos * @private * @returns {void} */ _calculateCurrentScrollPage(scroll_pos) { if (Math.abs(scroll_pos - this.last_scroll) > window.innerHeight * 0.1) { this.last_scroll = scroll_pos; this._updateUrlAndCurrentPage(); } }, /** * @private * @returns {void} */ _updateUrlAndCurrentPage() { const productContainers = document.querySelectorAll(this.options['product_container']); productContainers.forEach((container, index) => { if (this._mostlyVisible(container, index)) { var page = parseInt(container.getAttribute('amscroll-page')); if (page && page !== this.currentPage) { var newUrl = this._generateUrl(page, 0); if (!window.history.state || newUrl !== window.history.state.url) { window.history.replaceState({url: newUrl}, '', newUrl); } this.currentPage = page; } return false; } }); }, /** * @private * @returns {void} */ _loadFollowing() { if (this.flag_next_cache && this.type !== 'button') { this.loadingBlock.after.node?.classList.remove('hidden'); } if (this.next_data_url !== "" || this.next_data_cache) { if (this.type !== 'button') { this.loadingBlock.after.node?.classList.remove('hidden'); } if (this.next_data_cache) { this.showFollowing(this.next_data_cache); } else { if (!this.flag_next_cache) { this.is_loading = 1; this.doAjax(this.next_data_url, (data) => { this.showFollowing(data); }); } } } }, /** * @param {Object} data * @returns {void} */ showFollowing(data) { if (data.categoryProducts) { if (this.type === 'button') { if (this.canShowAfter) { this.is_loading = 0; this.canShowAfter = false; } else { return; } } this.next_data_url = ''; this.next_data_cache = false; this.loadingBlock.after.node?.classList.add('hidden'); this._insertNewProductBlock(data, 'after'); this._afterShowFollowing(); } }, /** * @private * @returns {void} */ _afterShowFollowing() { const nextPage = this.pagesLoaded[this.pagesLoaded.length - 1] + 1; const afterShowFollowingEvent = new CustomEvent("amscroll-after-show-following"); if (nextPage && nextPage <= this.pagesCount && this.pagesLoaded.indexOf(nextPage) === -1) { this.next_data_url = this._generateUrl(nextPage, 1); this.pagesLoaded.push(nextPage); this.flag_next_cache = 1; this.doAjax(this.next_data_url, (preview_data) => { this.flag_next_cache = 0; this.next_data_cache = preview_data; window.dispatchEvent(new Event('scroll')); this.showButton(this.afterButton); }); } this.is_loading = 0; window.dispatchEvent(afterShowFollowingEvent); }, /** * @private * @returns {void} */ _loadPrevious() { if (this.flag_prev_cache && this.type !== 'button') { this.loadingBlock.before.node?.classList.remove('hidden'); } if (this.prev_data_url !== "" || this.prev_data_cache) { if (this.type !== 'button') { this.loadingBlock.before.node?.classList.remove('hidden'); } if (this.prev_data_cache) { this.showPrevious(this.prev_data_cache); } else { if (!this.flag_prev_cache) { this.is_loading = 1; this.doAjax(this.prev_data_url, (data) => { this.showPrevious(data); }); } } } }, /** * @param {Object} data * @returns {void} */ showPrevious(data) { if (data.categoryProducts) { if (this.type === 'button') { if (this.canShowBefore) { this.is_loading = 0; this.canShowBefore = false; } else { return; } } this.prev_data_cache = false; this.prev_data_url = ''; this.loadingBlock.before.node?.classList.add('hidden'); this._insertNewProductBlock(data, 'before'); this._afterShowPrevious(); } }, /** * @private * @returns {void} */ _afterShowPrevious() { const prevPage = this.pagesLoaded[0] - 1; const afterShowPreviousEvent = new CustomEvent("amscroll-after-show-previous"); if (prevPage && prevPage <= this.pagesCount && this.pagesLoaded.indexOf(prevPage) === -1) { this.prev_data_url = this._generateUrl(prevPage, 1); this.pagesLoaded.unshift(prevPage); this.flag_prev_cache = 1; this.doAjax(this.prev_data_url, (preview_data) => { this.flag_prev_cache = 0; this.prev_data_cache = preview_data; window.dispatchEvent(new Event('scroll')); this.showButton(this.beforeButton); }); } this.is_loading = 0; window.dispatchEvent(afterShowPreviousEvent); }, /** * @private * @param {string} position * @returns {void} */ _generateButton(position) { if (this.type !== 'button') { return; } if ((position === 'before' && this.pagesLoaded.indexOf(1) !== -1 && (document.querySelector(this.pageSelector.replace('%1', this.pageFirst)) || this.currentPage === this.pageFirst)) ) { return; } if (position === 'after' && this.pagesLoaded.indexOf(this.pagesCount) !== -1 && (document.querySelector(this.pageSelector.replace('%1', this.pagesCount)) || this.currentPage === this.pagesCount)) { return; } const buttonElement = this.loadButtonElement.cloneNode(true); const textElement = this.loadButtonTextElement.cloneNode(true); const buttonSelector = `.${this.classes.loadButton}.-${position}`; textElement.textContent = this.options[`loading${position}TextButton`]; buttonElement.append(textElement); buttonElement.setAttribute('amscroll_type', position); buttonElement.classList.add(`-${position}`); buttonElement.style.didplay = 'none'; if (position === 'after') { if (this.afterButton) { this.afterButton.remove(); } this._insertBlockInTheEnd(buttonElement.outerHTML); this.afterButton = document.querySelector(buttonSelector); } else { if (this.beforeButton) { this.beforeButton.remove(); } this._insertBlockInTheBegin(buttonElement.outerHTML); this.beforeButton = document.querySelector(buttonSelector); } this.$nextTick(() => { const buttons = document.querySelectorAll(`.${this.classes.loadButton}[amscroll_type="${position}"]`); buttons.forEach((button) => { if (!!button.dataset.amscrollHasEvent) { return; } button.addEventListener('click', (event) => { this.buttonClick(event); }); button.dataset.amscrollHasEvent = true; }); }); }, /** * @param {Node} buttonElement * @returns {void} */ showButton(buttonElement) { if (buttonElement) { buttonElement.style.display = 'block'; } }, /** * @param {Event} event * @returns {void} */ buttonClick(event) { const element = event.currentTarget; const type = element.getAttribute('amscroll_type'); if (type === 'after') { this.canShowAfter = true; this._loadFollowing(); } else { this.canShowBefore = true; this._loadPrevious(); } this.$nextTick(() => { this._updateUrlAndCurrentPage(); }); }, /** * @private * @param {Object} data * @param {string} position * @returns {void} */ _insertNewProductBlock(data, position) { let htmlData = data.categoryProducts; let tmp = document.createElement('div'); tmp.innerHTML = htmlData; let html = tmp.querySelector('section'); this._removeToolbars(html); const productContainer = html.querySelector(this.options['product_container']); productContainer.classList.add('amscroll-pages'); productContainer.setAttribute('amscroll-page', data.currentPage); this.beforeInsertProductBlock(productContainer); if (this.options['pageNumbers'] == '1') { var pageNumEl = this._generatePageTitle(data.currentPage); if (pageNumEl) { productContainer.before(pageNumEl); } } if ('after' === position) { this.afterButton?.remove(); this._moveScriptToTop(html); this._insertBlockInTheEnd(html.innerHTML); } else { this._moveScriptToTop(html); const element = this._insertBlockInTheBegin(html.innerHTML); const itemHeight = element !== undefined ? element.offsetHeight : 0; if (this.type != 'button') { window.scrollTo(0, window.scrollTop + itemHeight); } } this.$nextTick(() => { const currentProductContainer = document.querySelector(`.amscroll-pages[amscroll-page="${data.currentPage}"]`); this._addObserverToProductLink(currentProductContainer); if (this.type == 'button') { this._generateButton(position); } }); this.initPageStepForwardListener(data.currentPage); }, /** * @private * @param {Node} productContainer * @returns {void} */ _addObserverToProductLink(productContainer) { this._externalAfterAjax(); const links = productContainer.querySelectorAll('.item a'); links.forEach((link) => { link.addEventListener('click', (event) => { try { const parent = event.target.closest('.amscroll-pages'); const page = parent ? parent.getAttribute('amscroll-page') : null; if (page) { var newUrl = this._generateUrl(page, 0); if (!window.history.state || newUrl !== window.history.state.url) { window.history.replaceState( { url: newUrl }, '', newUrl ); } } } catch (e) { console.warn(e); } }); }); }, /** * @private * @param {number} page * @param {number} addScroll * @returns {string} */ _generateUrl(page, addScroll) { const parameters = addScroll > 0 ? `p=${page}&is_scroll=${addScroll}` : `p=${page}`; const currentUrl = window.location.origin + window.location.pathname; const urlHasArgument = currentUrl.includes('?'); const parameterType = urlHasArgument ? '&' : '?'; const currentParameters = new URLSearchParams(window.location.search); const newParameters = new URLSearchParams(parameters); const newUrlParams = new URLSearchParams({ ...Object.fromEntries(currentParameters), ...Object.fromEntries(newParameters) }); return `${currentUrl}${parameterType}${newUrlParams}`; }, /** * @private * @returns {void} */ _hideToolbars() { document.querySelector(this.totalAmountSelector).style.display = 'none'; document.querySelector('.products ~ ' + this.toolbarSelector).style.display = 'none'; }, /** * @private * @returns {void} */ _showToolbars() { document.querySelector(this.totalAmountSelector).style.display = 'block'; document.querySelector(`.products ~ ${this.toolbarSelector}`).style.display = 'block'; }, /** * @private * @param {number} page * @returns {HTMLDivElement|boolean} */ _generatePageTitle(page) { if (document.querySelector(`#amscroll-page-num${page}`)) { return false; } const pageNumEl = document.createElement('div'); pageNumEl.setAttribute('class', `amscroll-page-num -amscroll-${this.options['pageNumberStyle']} sr-only`); pageNumEl.setAttribute('id', `#amscroll-page-num${page}`); pageNumEl.textContent = `${this.options['pageNumberContent']}${page}`; return pageNumEl; }, /** * @private * @param {Node} element * @param {number} index * @returns {boolean} */ _mostlyVisible(element, index) { const visible = element.offsetParent !== null; const scroll_pos = window.scrollY; const window_height = window.innerHeight; const el_top = element.offsetTop; const el_height = element.offsetHeight; const el_bottom = el_top + el_height; const isVisible = ((el_bottom - el_height * 0.25 > scroll_pos) && (el_top < (scroll_pos + 0.5 * window_height)) && visible) || (index == 0 && scroll_pos < el_top); return ((el_bottom - el_height * 0.25 > scroll_pos) && (el_top < (scroll_pos + 0.5 * window_height)) && visible) || (index == 0 && scroll_pos < el_top); }, /** * @private * @returns {number} */ _getTopContainersHeight() { if (!this.topContainersHeight) { let result = document.querySelector('.page-header').offsetHeight; if (document.querySelectorAll(".main .block-static-block ~ .products, .main .block-static-block ~ #amasty-shopby-product-list").length) { result += document.querySelector(".main .block-static-block").offsetHeight; } this.topContainersHeight = 0.9 * result; } return this.topContainersHeight; }, /** * @returns {void} */ resolveBackToTopVisibility() { if (this.options?.backToTop?.enabled !== '1') { return; } this.isBackToTopVisible = document.body.scrollTop > this.backToTopTriggerHeight || document.documentElement.scrollTop > this.backToTopTriggerHeight; }, /** * @private * @returns {void} */ _scrollToTop() { const items = document.querySelectorAll(`[amscroll-page="${currentPage}"] .product-item a`); items.forEach((item) => { item.addEventListener('click', (event) => { var scrollPositionAfterStepBackData = { pageUrl: this.getCurrentUrl(), clickedProductLink: event.currentTarget.attributes.href.value }; hyva.getBrowserStorage().setItem('am-scroll-go-back-data', JSON.stringify(scrollPositionAfterStepBackData)); }); }); }, /** * @private * @param {Node} block * @returns {void} */ _insertBlockInTheEnd(block) { const productContainer = document.querySelectorAll(this.options['product_container']); productContainer[productContainer.length - 1].insertAdjacentHTML('afterend', block); }, /** * @private * @param {Node} block * @returns {Node} */ _insertBlockInTheBegin(block) { const element = document.querySelector(`.${this.classes.pageNumber}`) ?? document.querySelector(this.options['product_container']); this.beforeButton?.remove(); element.insertAdjacentHTML('beforebegin', block); return element; }, /** * @returns {string} */ getCurrentUrl() { return location.href.split('?')[0]; }, /** * @returns {void} */ getSavedAfterStepBackData() { let savedData = hyva.getBrowserStorage().getItem('am-scroll-go-back-data'); if (savedData) { savedData = JSON.parse(savedData); this.afterStepBackData = savedData; hyva.getBrowserStorage().removeItem('am-scroll-go-back-data'); } return this.afterStepBackData; }, /** * @param {number} currentPage */ initPageStepForwardListener(currentPage) { const items = document.querySelectorAll(`[amscroll-page="${currentPage}"] .product-item a`); items.forEach((item) => { item.addEventListener('click', (event) => { var scrollPositionAfterStepBackData = { pageUrl: this.getCurrentUrl(), clickedProductLink: event.currentTarget.attributes.href.value }; hyva.getBrowserStorage().setItem('am-scroll-go-back-data', JSON.stringify(scrollPositionAfterStepBackData)); }); }); }, /** * @private * @returns {void} */ _pagePositionAfterStepBack() { const savedScrollData = this.getSavedAfterStepBackData(); if (savedScrollData) { const productItem = document.querySelector(`a[href="${savedScrollData.clickedProductLink}"]`); history.scrollRestoration = 'auto'; if (productItem) { history.scrollRestoration = 'manual'; productItem.scrollIntoView(); } } }, /** * @private * @param {string} html */ _moveScriptToTop(html) { const htmlScripts = html.getElementsByTagName('script'); if (htmlScripts.length > 0) { const scripts = []; for (let i = 0; i < htmlScripts.length; i++) { scripts.push(htmlScripts[i]); } for (let i = 0; i < scripts.length; i++) { let script = document.createElement('script'); script.innerHTML = scripts[i].innerHTML; document.head.appendChild(script); scripts[i].parentNode.removeChild(scripts[i]); } } }, /** * @private * @param {string} html */ _removeToolbars(html) { const contentToolbars = html.querySelectorAll(this.toolbarSelector); contentToolbars.forEach((toolbar) => { toolbar.previousElementSibling.remove(); toolbar.remove(); }); }, /** * @param {Node} elem * @param {string} selector * @returns {Element|null} */ getNext(elem, selector) { let nextElem = elem.nextElementSibling; if (!selector) { return nextElem; } if (nextElem && nextElem.matches(selector)) { return nextElem; } return null; } }; } </script> <script> function initConfigurableOptions(productId, optionConfig) { function findPathParam(key) { const baseUrl = (BASE_URL.substring(0, 2) === '//' ? 'http:' : '') + BASE_URL; const baseUrlParts = (new URL(baseUrl)).pathname.replace(/\/$/, '').split('/'); const pathParts = window.location.pathname.split('/').slice(baseUrlParts.length + 3); for (let i = 0; i < pathParts.length; i += 2) { if (pathParts[i] === key && pathParts.length > i) { return pathParts[i + 1]; } } } return { optionConfig, productId, itemId: (new URLSearchParams(window.location.search)).get('id') || findPathParam('id'), allowedAttributeOptions: [], selectedValues: [], init() { this.findAllowedAttributeOptions(); this.$nextTick(() => { if (typeof this.optionConfig.defaultValues === 'object') { for (const [attributeId, value] of Object.entries(this.optionConfig.defaultValues)) { this.changeOption(attributeId, value + ''); } } this.preselectQuerystringItems(); this.preselectLocationHashItems(); history.replaceState(null, null, ' '); }); }, findSimpleIndex() { this.productIndex = this.calculateSimpleIndexForPartialSelection(this.selectedValues); }, calculateSimpleIndexForPartialSelection(selectedValues) { if (selectedValues.length === 0) return 0; let productIndexIds = Object.keys(this.optionConfig.index); Object.keys(this.optionConfig.attributes).forEach((attribute) => { const productsWithAttributeMatch = selectedValues[attribute] ? productIndexIds.filter((productIndex) => { return this.optionConfig.index[productIndex][attribute] === this.selectedValues[attribute] }) : []; productIndexIds = productsWithAttributeMatch.length ? productsWithAttributeMatch : productIndexIds }) return productIndexIds[0]; }, calculateSimpleIndexForFullSelection(selectedValues) { const productIndexes = this.optionConfig.index; return Object.keys(productIndexes).find(productIndex => { const productCandidateOptions = productIndexes[productIndex]; for (const productOption in productCandidateOptions) { if ( ! selectedValues[productOption] || selectedValues[productOption] !== productCandidateOptions[productOption] ) { return false; } } return productIndex; }); }, productIndex: 0, findAllowedAttributeOptions() { this.allowedAttributeOptions = this.calculateAllowedAttributeOptions(this.selectedValues); }, calculateAllowedAttributeOptions(selectedValues) { const allAttributes = this.optionConfig.attributes; const allAttributesSorted = Object.values(allAttributes).sort((a,b) => { return a.position - b.position }); const newAllowedAttributeOptions = []; allAttributesSorted.forEach(attribute => { const selectionWithoutAttr = Object.assign({}, this.removeAttrFromSelection(selectedValues, attribute.id)); const availableIndexes = this.calculateAvailableProductIndexes(selectionWithoutAttr); newAllowedAttributeOptions[attribute.id] = allAttributes[attribute.id].options.filter(option => { return !!option.products.find(product => { return availableIndexes.includes(product); }) }); }); return newAllowedAttributeOptions; }, calculateAvailableProductIndexes(selectedOptions) { if (Object.keys(selectedOptions).length === 0) { if (Object.values(this.optionConfig.salable || {}).length) { return [].concat.apply([], [].concat.apply([], Object.values(this.optionConfig.salable).map(Object.values))).filter((x, i, a) => a.indexOf(x) === i) } return Object.keys(this.optionConfig.index); } const selectedIds = Object.keys(selectedOptions); if (Object.values(this.optionConfig.salable || {}).length) { const selectedOptionIndexes = selectedIds.map(attrId => { const optionValue = selectedOptions[attrId]; return this.optionConfig.salable[attrId] && this.optionConfig.salable[attrId][optionValue] || [] }) return selectedOptionIndexes.reduce((acc, optionIndexes) => { return acc.filter(index => optionIndexes.includes(index)); }); } else { const productIndexes = this.optionConfig.index; return Object.keys(productIndexes).filter(index => { for (const attrId of selectedIds) { if (productIndexes[index][attrId] !== `${selectedOptions[attrId]}`) return false } return true }); } }, findAttributeByOptionId(optionId) { for (const attributeId in this.optionConfig.attributes) { const attributeOptions = this.optionConfig.attributes[attributeId].options || []; if (attributeOptions.find(option => option.id === optionId)) { return attributeId; } } }, getAllowedAttributeOptions(attributeId) { return this.allowedAttributeOptions[attributeId] || [] }, getProductIdsForOption(option) { const attributeId = this.findAttributeByOptionId(option.id); const allOptions = this.optionConfig.attributes[attributeId]; const opt = (allOptions && allOptions.options || []).find(o => o.id === option.id); return opt && opt.products ? opt.products : []; }, findProductIdsForPartialSelection(optionSelection) { const candidateProducts = Object.values(optionSelection).reduce((candidates, optionId) => { const newCandidates = this.getProductIdsForOption({id: optionId}); return candidates === null ? newCandidates : candidates.filter(productId => newCandidates.includes(productId)); }, null); return candidateProducts || []; }, findCheapestProductForPartialSelection(optionSelection) { const candidateProducts = this.findProductIdsForPartialSelection(optionSelection); return candidateProducts.reduce((cheapest, simpleIdx) => { // in the first iteration we start with simpleIdx as the currently cheapest product if (! this.optionConfig.optionPrices[cheapest]) return simpleIdx; const knownCheapestPrice = this.optionConfig.optionPrices[cheapest].finalPrice.amount; return knownCheapestPrice > this.optionConfig.optionPrices[simpleIdx].finalPrice.amount ? simpleIdx : cheapest; }, 0) }, findProductIdToUseForOptionPrice(option) { // try to find a product for a complete selection const attributeId = this.findAttributeByOptionId(option.id); const optionSelection = Object.assign({}, this.selectedValues, {[attributeId]: option.id}); const matchingSimpleIndex = this.calculateSimpleIndexForFullSelection(optionSelection); // if there is no complete selection, use the cheapest product for the option return matchingSimpleIndex || this.findCheapestProductForPartialSelection(optionSelection); }, getAttributeOptionLabel(option) { const optionProduct = this.findProductIdToUseForOptionPrice(option); if ((! optionProduct) || (optionProduct === this.productIndex)) { return option.label; } const currentPrice = this.getOptionPriceAdjustmentBasePrice(); if (this.optionConfig.optionPrices[optionProduct]) { const optionPrice = this.optionConfig.optionPrices[optionProduct].finalPrice.amount; if (optionPrice !== currentPrice){ return option.label + ' ' + hyva.formatPrice(optionPrice - currentPrice, true); } } return option.label; }, getOptionPriceAdjustmentBasePrice() { if (this.optionConfig.optionPrices[this.productIndex]) { return this.optionConfig.optionPrices[this.productIndex].finalPrice.amount } const cheapestForSelection = this.findCheapestProductForPartialSelection(this.selectedValues); return this.optionConfig.optionPrices[cheapestForSelection] ? this.optionConfig.optionPrices[cheapestForSelection].finalPrice.amount : this.optionConfig.prices.finalPrice.amount; // default price if no option selection }, clearOptionIfActive(optionId, value) { if (this.selectedValues[optionId] === value) { this.blurLabel() this.changeOption(optionId, '') } }, removeAttrFromSelection(selectedValues, attributeId) { attributeId = parseInt(attributeId); return selectedValues.reduce((newSelection, val, attr) => { if (attr !== attributeId) { newSelection[attr] = val; } return newSelection; }, []); }, changeOption(attributeId, value) { if (value === '') { this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId) } else if (value && this.getAllowedAttributeOptions(attributeId).find(option => option.id === value)) { this.selectedValues[attributeId] = value; } this.findSimpleIndex(); this.findAllowedAttributeOptions(); this.updatePrices(); this.updateGallery(); window.dispatchEvent( new CustomEvent( 'configurable-selection-changed', { detail: { productId: this.productId, optionId: attributeId, value: value, productIndex: this.productIndex, selectedValues: this.selectedValues, candidates: this.findProductIdsForPartialSelection(this.selectedValues), } } ) ); }, calculateIsMinimalPrice() { return ( this.selectedValues.filter(value => !!value).length < Object.keys(this.optionConfig.attributes).length ); }, updatePrices() { const value = this.productIndex ? this.optionConfig.optionPrices[this.productIndex] : this.optionConfig.prices; window.dispatchEvent( new CustomEvent( "update-prices-" + this.productId, { detail: Object.assign( value, { isMinimalPrice: this.calculateIsMinimalPrice() } ) } ) ); }, updateGallery () { if (this.productIndex >= 0) { const images = this.optionConfig.images[this.productIndex]; images && window.dispatchEvent(new CustomEvent( "update-gallery", { detail: this.sortImagesByPosition(images) } )); } else { window.dispatchEvent(new Event("reset-gallery")); } }, sortImagesByPosition(images) { return images.sort((x, y) => { return x.position === y.position ? 0 : (parseInt(x.position) > parseInt(y.position) ? 1 : -1) }); }, onGetCartData(data) { }, preselectCartItems(data) { // pre-select options based on cart data for current (quote) itemId const cart = data && data.cart; if (cart && cart.items) { const cartItem = cart.items.find((item) => { return ( item.item_id === this.itemId && item.product_id === this.productId ) }); if (cartItem && cartItem.options && cartItem.options.length) { cartItem.options.map(option => { this.changeOption(option.option_id, option.option_value); }) } } }, preselectQuerystringItems() { // pre-select option like ?size=167 const urlQueryParams = new URLSearchParams(window.location.search.replace('?','')); this.preselectItemsBasedOnLocation(attribute => urlQueryParams.get(attribute.code)); }, preselectLocationHashItems() { // pre-select option like #144=167 const urlHashParams = new URLSearchParams(window.location.hash.replace('#','')); this.preselectItemsBasedOnLocation(attribute => urlHashParams.get(attribute.id)); }, preselectItemsBasedOnLocation(getLocationValue) { Object.values(this.optionConfig.attributes).map(attribute => { this.changeOption(attribute.id, getLocationValue(attribute)) }); }, setFirstOption(attributeId) { if (this.getAllowedAttributeOptions(attributeId).length === 1) { this.changeOption(attributeId, this.getAllowedAttributeOptions(attributeId)[0].id); } }, getSwatchText(attributeId, optionId) { return this.getAllowedAttributeOptions(attributeId).find(({id}) => id === optionId).label }, } } </script> <script> function initSwatchOptions(swatchConfig) { return { swatchConfig, firstActive: true, getAttributeSwatchData(attributeId) { const swatchConfig = Object.assign({}, this.swatchConfig[attributeId]); swatchConfig['details'] = JSON.parse(swatchConfig['additional_data']); return swatchConfig; }, getAllAttributeOptions(attributeId) { return ( this.optionConfig.attributes[attributeId] && this.optionConfig.attributes[attributeId].options ) || [] }, optionIsActive(attributeId, optionId) { // return true if a product with this option is in stock return !!this.getAllowedAttributeOptions(attributeId).find( option => option.id === optionId ) }, optionIsEnabled(attributeId, optionId) { // return true if a product with this option is enabled for (const productId in this.optionConfig.index) { if (this.optionConfig.index[productId][attributeId] === optionId) { return true; } } return false; }, mapSwatchTypeNumberToTypeCode(typeNumber) { switch ("" + typeNumber) { case "1": return "color" case "2": return "image" case "3": return "empty" case "0": default: return "text" } }, getTypeOfFirstOption(attributeId) { for (const optionId in this.swatchConfig[attributeId]) { const option = this.swatchConfig[attributeId][optionId]; if (typeof option.type !== 'undefined') { return this.mapSwatchTypeNumberToTypeCode(option.type); } } }, getVisualSwatchType(attributeId, targetOptionId) { // If a type configuration is present for the given option id, use it const config = this.swatchConfig[attributeId]; if (config[targetOptionId] && typeof config[targetOptionId].type !== 'undefined') { return this.mapSwatchTypeNumberToTypeCode(config[targetOptionId].type); } // Otherwise - if no config is present for the target option - use the type of the first option // with a type property from the attribute, thus assuming its the same type as the target option. // (This edge case condition can occur on single swatch products if some options are not salable) return this.getTypeOfFirstOption(attributeId); }, getSwatchType(attributeId, optionId) { // Deserialize the attribute details the first time they are used if (this.swatchConfig[attributeId] && ! this.swatchConfig[attributeId].details) { this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); } const type = this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details && this.swatchConfig[attributeId].details.swatch_input_type || "empty"; return type === 'visual' ? this.getVisualSwatchType(attributeId, optionId) : type; }, isTextSwatch(attributeId, optionId) { return this.getSwatchType(attributeId, optionId) === 'text'; }, isVisualSwatch(attributeId, optionId) { const type = this.getSwatchType(attributeId, optionId); return ['image', 'color'].includes(type); }, getSwatchBackgroundStyle(attributeId, optionId) { const config = this.getSwatchConfig(attributeId, optionId); const type = this.getSwatchType(attributeId, optionId); if (type === 'color') { const attributeOptionsConfig = this.getOptionLabelFromOptionConfig(attributeId, optionId, true); const colors = this.getHexColor(attributeOptionsConfig); let backgroundStyle; if (colors.length === 2) { backgroundStyle = `linear-gradient(0deg, ${colors[0]} 50%, ${colors[1]} 50%)` + ` no-repeat center; background-size: initial;`; } else if (colors.length === 1) { backgroundStyle = `${colors[0]} no-repeat center; background-size: initial;`; } else { backgroundStyle = config.value; } return 'background:' + backgroundStyle; } else if (type === 'image') { return "background: #ffffff url('" + config.value + "') no-repeat center"; } else { return ''; } }, getSwatchText(attributeId, optionId) { const config = this.getSwatchConfig(attributeId, optionId); return config.label || config.value || this.getOptionLabelFromOptionConfig(attributeId, optionId); }, getOptionLabelFromOptionConfig(attributeId, optionId, englishLabel = false) { // Fallback if no value is present in swatchConfig data // Reference issue https://gitlab.hyva.io/hyva-themes/magento2-default-theme/-/issues/190 try { const option = this.getAllAttributeOptions(attributeId).filter(option => option.id === optionId); const optionData = option && option[0] ? option[0] : null; if (!optionData) { return ''; } if (englishLabel) { return optionData.englishLabel; } else { return optionData.label; } } catch (e) { return ''; } }, getSwatchConfig(attributeId, optionId) { return this.swatchConfig[attributeId] && this.swatchConfig[attributeId][optionId] ? this.swatchConfig[attributeId][optionId] : false; }, activeTooltipItem: false, tooltipPositionElement: false, isTooltipVisible() { return this.activeTooltipItem && this.getSwatchConfig( this.activeTooltipItem.attribute, this.activeTooltipItem.item ); }, isFirstItemCol() { return this.activeTooltipItem.index === 0; }, getTooltipImageStyle(attributeId, optionId) { const config = this.getSwatchConfig(attributeId, optionId); const type = this.getSwatchType(attributeId, optionId); if (type === "color") { return 'background-color:' + config.value + '; width: 110px; height: 90px;'; } else if (type === "image") { return "background: #ffffff url('" + config.thumb + "') center center no-repeat; width: 110px; height: 90px;"; } else { return 'display:none'; } }, getTooltipPosition() { return this.tooltipPositionElement ? `top: ${this.tooltipPositionElement.offsetTop}px;` + `left: ${ this.tooltipPositionElement.offsetLeft - ( this.tooltipPositionElement.closest('.snap') && this.tooltipPositionElement.closest('.snap').scrollLeft || 0 ) }px;` : '' }, getTooltipLabel() { return this.getSwatchConfig(this.activeTooltipItem.attribute, this.activeTooltipItem.item).label }, focusedLabel: false, focusLabel(optionId) { this.focusedLabel = optionId; }, blurLabel() { this.focusedLabel = false; }, showSwatches: false, initShowSwatchesIntersect() { if ('IntersectionObserver' in window && !window.scrollY) { let io = new IntersectionObserver( entries => { entries.map(entry => { if (entry.isIntersecting) { this.showSwatches = true; io.unobserve(this.$root); } }) } ); io.observe(this.$root); } else { this.showSwatches = true } }, getIsSwatchColorWhite(color) { return color.toLowerCase().split(' ').includes('#ffffff'); }, getHexColor(label = '') { const colorMap = { 'White': '#f4f3ec', 'Red': '#e02a48', 'Royal Blue': '#0059a7', 'Green': '#1d8649', 'Yellow': '#fdd656', 'Purple': '#491d70', 'Navy': '#011e41', 'Black': '#2d2a26', 'Columbia': '#6aa9e4', 'Orange': '#ff4613', 'Cardinal': '#79242f', 'Neon Yellow': '#ece93a', 'Neon Green': '#38d430', 'Bottle Green': '#004c44', 'Grey': '#98989a', 'Forest Green': '#007565', 'Neon Coral': '#ff7277', 'Gold': '#b78c1e', 'Silver': '#bdc3da', 'Pink': '#f97fb6', 'Anthracite': '#5b6770', 'Amber': '#ffb648', 'Pistachio': '#76bc21', 'Blue Denim': '#004c97', 'Italian Blue': '#0066b9', 'Neon Pink': '#ef60a3', 'Neon Sky': '#00a9e1', 'Turquoise': '#3bbfad', 'Off White': '#d9d8d6', 'Neon Red': '#f93822', 'Electric Blue': '#273480', 'Bright Red': '#e4032c' }; return label.split(' / ').map(color => colorMap[color] ?? ''); }, isNonSpecified(attributeId) { const options = this.optionConfig.attributes[attributeId].options return !!options.find(({englishLabel}) => englishLabel === 'Not Specified') }, markFirstActive(attributeId, itemId) { if (this.firstActive && this.optionIsActive(attributeId, itemId)) { this.firstActive = false; this.changeOption(attributeId, itemId) } } } } </script> <script> 'use strict'; (function () { const modals = []; const excludedFromFocusTrapping = new Set(); function trapFocusInNextModalWithOverlay() { for (let idx = modals.length -1; idx >= 0; idx--) { const nextOnStack = modals[idx]; const nextDialogElement = nextOnStack.instance.$refs[nextOnStack.name]; if (! isOverlayDisabled(nextDialogElement)) { hyva.trapFocus(nextDialogElement); break; } } } function focusables(dialogElement) { const selector = 'button, [href], input, textarea, select, details, [tabindex]:not([tabindex="-1"])'; return Array.from(dialogElement.querySelectorAll(selector)) .filter(el => !el.hasAttribute('disabled')); } function firstVisible(elements) { const a = Array.from(elements); for (let i = 0; i < a.length; i++) { if (a[i].offsetWidth || a[i].offsetHeight || a[i].getClientRects().length) return a[i]; } return null; } function isInViewport(element) { const rect = element && element.getBoundingClientRect(); return rect && rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth && rect.bottom <= window.innerHeight; } function setFocusAfterTransition(dialogElement, duration) { const nested = Array.from(dialogElement.querySelectorAll('[role="dialog"]')); const candidates = Array.from(dialogElement.querySelectorAll('[x-focus-first]')); next: for (let candidate of candidates) { for (let child of nested) { if (child.contains(candidate)) continue next; } setTimeout(() => candidate.focus(), 50); break; } window.setTimeout(() => { const focusElement = firstVisible(dialogElement.querySelectorAll('[x-focus-first]')) || focusables(dialogElement)[0] || null; focusElement && isInViewport(focusElement) && focusElement.focus(); }, Math.max(1, duration)); } function determineTrigger($refs, dialog, trigger) { if (typeof trigger === 'undefined' && typeof dialog === 'object' && dialog.target instanceof HTMLElement) { return dialog.target; } if (typeof dialog === 'string' && typeof trigger === 'object' && trigger.target instanceof HTMLElement) { return trigger.target; } if (typeof trigger === 'string') { try { return $refs[trigger] || document.querySelector(trigger) } catch (e) {} } if (trigger instanceof Element) { return trigger; } return null; } function isOverlayDisabled(dialog) { return dialog && dialog.hasAttribute('x-no-overlay') } function areRemainingModalsWithoutOverlay(modals) { const overflowDisabled = modals.map(modal => modal.instance.$refs[modal.name]).filter(isOverlayDisabled); return overflowDisabled.length === modals.length; } window.hyva.modal = function(options) { const config = Object.assign({ dialog: 'dialog', duration: 300, transitionEnter: 'transition ease-out duration-300', transitionEnterStart: 'opacity-0', transitionEnterEnd: 'opacity-100', transitionLeave: 'transition ease-in duration-300', transitionLeaveStart: 'opacity-100', transitionLeaveEnd: 'opacity-0', }, options); let lastHide = 0; return { opened: {}, show(dialog, trigger) { const focusTargetAfterHide = determineTrigger(this.$refs, dialog, trigger); const name = typeof dialog === 'string' ? dialog : config.dialog; const dialogElement = this.$refs[name]; if (! dialogElement) { return; } const useOverlay = ! dialogElement.hasAttribute('x-no-overlay'); dialogElement.scrollTop = 0; if (this.opened[name]) { return; } if (focusTargetAfterHide) { focusTargetAfterHide.setAttribute('aria-expanded', 'true'); } this.opened[name] = true; useOverlay && this.$nextTick(() => hyva.trapFocus(dialogElement)); setFocusAfterTransition(dialogElement, config.duration); const frame = {name, instance: this, focusTarget: focusTargetAfterHide, time: Date.now()}; modals.push(frame); if (useOverlay) { document.body.classList.add('overflow-hidden'); } return new Promise(resolve => frame.resolve = resolve); }, cancel() { this.hide(false); }, ok() { this.hide(true); }, hide(value) { if (Date.now() - lastHide < config.duration) { return; } lastHide = Date.now(); const modal = modals.pop() || {}; const name = modal.name; this.opened[name] = false; hyva.releaseFocus(modal.instance.$refs[modal.name]) trapFocusInNextModalWithOverlay(); const nextFocusAfterHide = modal.focusTarget; nextFocusAfterHide && setTimeout(() => { nextFocusAfterHide.setAttribute('aria-expanded', 'false'); nextFocusAfterHide.focus() }, config.duration); if (modals.length === 0 || areRemainingModalsWithoutOverlay(modals)) { document.body.classList.remove('overflow-hidden'); } modal.resolve(value); }, overlay(dialog) { const name = typeof dialog === 'string' ? dialog : config.dialog; return { ['x-show']() { return this.opened[name] }, ['x-transition:enter']: config.transitionEnter, ['x-transition:enter-start']: config.transitionEnterStart, ['x-transition:enter-end']: config.transitionEnterEnd, ['x-transition:leave']: config.transitionLeave, ['x-transition:leave-start']: config.transitionLeaveStart, ['x-transition:leave-end']: config.transitionLeaveEnd, ['@hyva-modal-show.window'](event) { event.detail && event.detail.dialog === name && this.show(name, event.detail.focusAfterHide) } }; } }; } window.hyva.modal.peek = () => modals.length > 0 && modals[modals.length -1] window.hyva.modal.pop = function () { if (modals.length > 0) { const modal = modals[modals.length -1]; modal.instance.hide(); } } window.hyva.modal.excludeSelectorsFromFocusTrap = function (selectors) { typeof selectors === 'string' || selectors instanceof String ? excludedFromFocusTrapping.add(selectors) : selectors.map(selector => excludedFromFocusTrapping.add(selector)); } window.hyva.modal.eventListeners = { keydown: event => { if (event.key === 'Escape') { window.hyva.modal.pop(); } }, click: event => { if (modals.length > 0) { const modal = modals[modals.length -1]; const dialog = modal.instance.$refs[modal.name]; if (modal.time + 50 < Date.now() && // if last click processing is more than 50ms ago ! isOverlayDisabled(dialog) && // if dialog has overlay ! dialog.contains(event.target)) { // if click is outside of dialog modal.instance.hide(); } } } }; document.addEventListener('keydown', window.hyva.modal.eventListeners.keydown); document.addEventListener('click', window.hyva.modal.eventListeners.click); })(); </script> <script> 'use strict'; const grecaptchaV2LoadCallbacks = []; function executeRecaptchaLoadCallbacks () { while (window.grecaptcha && grecaptchaV2LoadCallbacks.length > 0) { const callback = grecaptchaV2LoadCallbacks.pop(); typeof callback === 'string' ? window[callback]() : callback(); } } (function() { const loadRecaptchaScript = (event) => { if (window.grecaptcha || !event.target.form) { return; } const url = 'https://www.google.com/recaptcha/api.js?onload=executeRecaptchaLoadCallbacks'; const siteKey = '6LdNkuIZAAAAAHAZeyPvAe7zvpkY44cgc_F3thZV'; const script = document.createElement('script'); script.type = 'text/javascript'; script.src = siteKey ? `${url}&render=${siteKey}` : `${url}&render=explicit`; script.async = true; document.head.appendChild(script); script.addEventListener('load', () => { Array.from(document.querySelectorAll('button[data-recaptcha-btn]:disabled')).forEach(btn => btn.removeAttribute('disabled')); }); } window.forceLoadRecaptchaScript = (form) => { loadRecaptchaScript({target: {form: form || 'dummy'}}); executeRecaptchaLoadCallbacks(); }; document.body.addEventListener('input', loadRecaptchaScript, { once: true }); document.body.addEventListener('focus', loadRecaptchaScript, { once: true }); }()); </script> <!-- Account type: 'Google Tag Manager' is not supported --> <div x-data="prDataPrivacyCheckboxDetailModalComponent.create()" @set-is-show-modal.window="isShowModal = $event.detail" @keydown.escape="closeModal" > <div x-ref="pr-data-privacy-checkbox-detail" x-show="isShowModal" x-cloak> <div class="inset-0 fixed z-50"> <div class="relative z-10 max-w-3xl sm:my-10 ml-10 sm:mx-auto bg-white p-7 h-full max-h-full sm:h-auto sm:max-h-[90%] flex rounded shadow-md" x-show="isShowModal" x-transition > <span class="absolute top-3 right-3 cursor-pointer hover:text-gray-700 p-1" @click="closeModal"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" width="20" height="20" role="img"> <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"/> <title>x</title></svg> </span> <template x-if="data.checkbox"> <div id="prgdpr-consent-checkboxes-modal" class="flex flex-col"> <div class="modal-header flex flex-col flex-shrink-0 flex-grow-0 mb-5"> <h2 class="text-xl lg:text-2lx pb-3 mb-1 border-container border-b" x-html="data.checkbox.policy.title"></h2> <a data-contentid="prgdpr-print-content" class="ml-auto text-sm text-blue-600 hover:underline" href="#" @click.prevent="print()" > Print </a> </div> <div class="prgdpr-consent-checkboxes-item-content overflow-y-auto mb-5" id="prgdpr-print-content"> <div class="prose max-w-none" x-html="data.checkbox.policy.content"></div> </div> <div class="modal-footer flex-shrink-0 flex-grow-0 pt-5 mt-auto border-container border-t"> <button type="button" class="action iagree btn btn-primary" @click="data.checkbox.checked = data.checkbox.isAlreadyChecked = true; $dispatch('prgdpr-checkbox-agree', 'checkbox' + data.checkbox.consentId); closeModal();" > I agree </button> </div> </div> </template> </div> <div class="bg-gray-800 opacity-50 absolute inset-0" @click="closeModal"></div> </div> </div> </div> <script> const prDataPrivacyCheckboxDetailModalComponent = { data: null, isShowModal: false, create: function () { this.data = Alpine.reactive({checkbox: null}); return this; }, setCheckbox: function (checkbox) { this.data.checkbox = checkbox; }, showModal: function () { this.isShowModal = true; }, closeModal() { this.isShowModal = false; }, print: function () { let printWindow = window.open('', 'Print', 'height=600,width=800'); let printWindowDocument = printWindow.document; let html = printWindowDocument.createElement('html'); let head = printWindowDocument.createElement('head'); let title = printWindowDocument.createElement('title'); let body = printWindowDocument.createElement('body'); title.textContent = this.data.checkbox.policy.title; body.innerHTML = this.data.checkbox.policy.content; head.appendChild(title); html.appendChild(head); html.appendChild(body); printWindowDocument.querySelector('html').innerHTML = html.innerHTML; printWindowDocument.close(); printWindow.focus(); printWindow.print(); printWindow.onafterprint = function () { printWindow.close(); }; return true; } }; </script> <script type="application/json" id="default-section-data"> {"messages":[],"customer":[],"compare-products":[],"last-ordered-items":[],"cart":[],"directory-data":{"AD":{"name":"Andorra"},"AE":{"name":"United Arab Emirates"},"AF":{"name":"Afghanistan"},"AG":{"name":"Antigua & Barbuda"},"AI":{"name":"Anguilla"},"AL":{"name":"Albania"},"AM":{"name":"Armenia"},"AN":{"name":null},"AO":{"name":"Angola"},"AQ":{"name":"Antarctica"},"AR":{"name":"Argentina"},"AS":{"name":"American Samoa"},"AT":{"name":"Austria"},"AU":{"name":"Australia"},"AW":{"name":"Aruba"},"AX":{"name":"\u00c5land Islands"},"AZ":{"name":"Azerbaijan"},"BA":{"name":"Bosnia & Herzegovina"},"BB":{"name":"Barbados"},"BD":{"name":"Bangladesh"},"BE":{"name":"Belgium"},"BF":{"name":"Burkina Faso"},"BG":{"name":"Bulgaria"},"BH":{"name":"Bahrain"},"BI":{"name":"Burundi"},"BJ":{"name":"Benin"},"BL":{"name":"St. Barth\u00e9lemy"},"BM":{"name":"Bermuda"},"BN":{"name":"Brunei"},"BO":{"name":"Bolivia"},"BQ":{"name":"Caribbean Netherlands"},"BR":{"name":"Brazil"},"BS":{"name":"Bahamas"},"BT":{"name":"Bhutan"},"BV":{"name":"Bouvet Island"},"BW":{"name":"Botswana"},"BY":{"name":"Belarus"},"BZ":{"name":"Belize"},"CA":{"name":"Canada"},"CC":{"name":"Cocos (Keeling) Islands"},"CD":{"name":"Congo - Kinshasa"},"CF":{"name":"Central African Republic"},"CG":{"name":"Congo - Brazzaville"},"CH":{"name":"Switzerland"},"CI":{"name":"C\u00f4te d\u2019Ivoire"},"CK":{"name":"Cook Islands"},"CL":{"name":"Chile"},"CM":{"name":"Cameroon"},"CN":{"name":"China"},"CO":{"name":"Colombia"},"CR":{"name":"Costa Rica"},"CU":{"name":"Cuba"},"CV":{"name":"Cape Verde"},"CW":{"name":"Cura\u00e7ao"},"CX":{"name":"Christmas Island"},"CY":{"name":"Cyprus"},"CZ":{"name":"Czechia"},"DE":{"name":"Germany"},"DJ":{"name":"Djibouti"},"DK":{"name":"Denmark"},"DM":{"name":"Dominica"},"DO":{"name":"Dominican Republic"},"DZ":{"name":"Algeria"},"EC":{"name":"Ecuador"},"EE":{"name":"Estonia"},"EG":{"name":"Egypt"},"EH":{"name":"Western Sahara"},"ER":{"name":"Eritrea"},"ES":{"name":"Spain"},"ET":{"name":"Ethiopia"},"FI":{"name":"Finland"},"FJ":{"name":"Fiji"},"FK":{"name":"Falkland Islands"},"FM":{"name":"Micronesia"},"FO":{"name":"Faroe Islands"},"FR":{"name":"France"},"GA":{"name":"Gabon"},"GB":{"name":"United Kingdom"},"GD":{"name":"Grenada"},"GE":{"name":"Georgia"},"GF":{"name":"French Guiana"},"GG":{"name":"Guernsey"},"GH":{"name":"Ghana"},"GI":{"name":"Gibraltar"},"GL":{"name":"Greenland"},"GM":{"name":"Gambia"},"GN":{"name":"Guinea"},"GP":{"name":"Guadeloupe"},"GQ":{"name":"Equatorial Guinea"},"GR":{"name":"Greece"},"GS":{"name":"South Georgia & South Sandwich Islands"},"GT":{"name":"Guatemala"},"GU":{"name":"Guam"},"GW":{"name":"Guinea-Bissau"},"GY":{"name":"Guyana"},"HK":{"name":"Hong Kong SAR China"},"HM":{"name":"Heard & McDonald Islands"},"HN":{"name":"Honduras"},"HR":{"name":"Croatia"},"HT":{"name":"Haiti"},"HU":{"name":"Hungary"},"ID":{"name":"Indonesia"},"IE":{"name":"Ireland"},"IL":{"name":"Israel"},"IM":{"name":"Isle of Man"},"IN":{"name":"India"},"IO":{"name":"British Indian Ocean Territory"},"IQ":{"name":"Iraq"},"IR":{"name":"Iran"},"IS":{"name":"Iceland"},"IT":{"name":"Italy"},"JE":{"name":"Jersey"},"JM":{"name":"Jamaica"},"JO":{"name":"Jordan"},"JP":{"name":"Japan"},"KE":{"name":"Kenya"},"KG":{"name":"Kyrgyzstan"},"KH":{"name":"Cambodia"},"KI":{"name":"Kiribati"},"KM":{"name":"Comoros"},"KN":{"name":"St. Kitts & Nevis"},"KP":{"name":"North Korea"},"KR":{"name":"South Korea"},"KW":{"name":"Kuwait"},"KY":{"name":"Cayman Islands"},"KZ":{"name":"Kazakhstan"},"LA":{"name":"Laos"},"LB":{"name":"Lebanon"},"LC":{"name":"St. Lucia"},"LI":{"name":"Liechtenstein"},"LK":{"name":"Sri Lanka"},"LR":{"name":"Liberia"},"LS":{"name":"Lesotho"},"LT":{"name":"Lithuania"},"LU":{"name":"Luxembourg"},"LV":{"name":"Latvia"},"LY":{"name":"Libya"},"MA":{"name":"Morocco"},"MC":{"name":"Monaco"},"MD":{"name":"Moldova"},"ME":{"name":"Montenegro"},"MF":{"name":"St. Martin"},"MG":{"name":"Madagascar"},"MH":{"name":"Marshall Islands"},"MK":{"name":"North Macedonia"},"ML":{"name":"Mali"},"MM":{"name":"Myanmar (Burma)"},"MN":{"name":"Mongolia"},"MO":{"name":"Macao SAR China"},"MP":{"name":"Northern Mariana Islands"},"MQ":{"name":"Martinique"},"MR":{"name":"Mauritania"},"MS":{"name":"Montserrat"},"MT":{"name":"Malta"},"MU":{"name":"Mauritius"},"MV":{"name":"Maldives"},"MW":{"name":"Malawi"},"MX":{"name":"Mexico"},"MY":{"name":"Malaysia"},"MZ":{"name":"Mozambique"},"NA":{"name":"Namibia"},"NC":{"name":"New Caledonia"},"NE":{"name":"Niger"},"NF":{"name":"Norfolk Island"},"NG":{"name":"Nigeria"},"NI":{"name":"Nicaragua"},"NL":{"name":"Netherlands"},"NO":{"name":"Norway"},"NP":{"name":"Nepal"},"NR":{"name":"Nauru"},"NU":{"name":"Niue"},"NZ":{"name":"New Zealand"},"OM":{"name":"Oman"},"PA":{"name":"Panama"},"PE":{"name":"Peru"},"PF":{"name":"French Polynesia"},"PG":{"name":"Papua New Guinea"},"PH":{"name":"Philippines"},"PK":{"name":"Pakistan"},"PL":{"name":"Poland"},"PM":{"name":"St. Pierre & Miquelon"},"PN":{"name":"Pitcairn Islands"},"PS":{"name":"Palestinian Territories"},"PT":{"name":"Portugal"},"PW":{"name":"Palau"},"PY":{"name":"Paraguay"},"QA":{"name":"Qatar"},"RE":{"name":"R\u00e9union"},"RO":{"name":"Romania"},"RS":{"name":"Serbia"},"RU":{"name":"Russia"},"RW":{"name":"Rwanda"},"SA":{"name":"Saudi Arabia"},"SB":{"name":"Solomon Islands"},"SC":{"name":"Seychelles"},"SD":{"name":"Sudan"},"SE":{"name":"Sweden"},"SG":{"name":"Singapore"},"SH":{"name":"St. Helena"},"SI":{"name":"Slovenia"},"SJ":{"name":"Svalbard & Jan Mayen"},"SK":{"name":"Slovakia"},"SL":{"name":"Sierra Leone"},"SM":{"name":"San Marino"},"SN":{"name":"Senegal"},"SO":{"name":"Somalia"},"SR":{"name":"Suriname"},"ST":{"name":"S\u00e3o Tom\u00e9 & Pr\u00edncipe"},"SV":{"name":"El Salvador"},"SX":{"name":"Sint Maarten"},"SY":{"name":"Syria"},"SZ":{"name":"Eswatini"},"TC":{"name":"Turks & Caicos Islands"},"TD":{"name":"Chad"},"TF":{"name":"French Southern Territories"},"TG":{"name":"Togo"},"TH":{"name":"Thailand"},"TJ":{"name":"Tajikistan"},"TK":{"name":"Tokelau"},"TL":{"name":"Timor-Leste"},"TM":{"name":"Turkmenistan"},"TN":{"name":"Tunisia"},"TO":{"name":"Tonga"},"TR":{"name":"Turkey"},"TT":{"name":"Trinidad & Tobago"},"TV":{"name":"Tuvalu"},"TW":{"name":"Taiwan"},"TZ":{"name":"Tanzania"},"UA":{"name":"Ukraine"},"UG":{"name":"Uganda"},"UM":{"name":"U.S. Outlying Islands"},"US":{"name":"United States"},"UY":{"name":"Uruguay"},"UZ":{"name":"Uzbekistan"},"VA":{"name":"Vatican City"},"VC":{"name":"St. Vincent & Grenadines"},"VE":{"name":"Venezuela"},"VG":{"name":"British Virgin Islands"},"VI":{"name":"U.S. Virgin Islands"},"VN":{"name":"Vietnam"},"VU":{"name":"Vanuatu"},"WF":{"name":"Wallis & Futuna"},"WS":{"name":"Samoa"},"XK":{"name":"Kosovo"},"YE":{"name":"Yemen"},"YT":{"name":"Mayotte"},"ZA":{"name":"South Africa"},"ZM":{"name":"Zambia"},"ZW":{"name":"Zimbabwe"},"data_id":1740164705},"captcha":[],"wishlist":{"items":[]},"instant-purchase":[],"loggedAsCustomer":[],"persistent":[],"review":[],"data_privacy":[],"recently_viewed_product":[],"recently_compared_product":[],"product_data_storage":[],"paypal-billing-agreement":[]}</script> <div class="hidden"> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <defs> <!-- macron-logo --> <symbol id="svg-icon__macron-logo" viewBox="0 0 130 22.6"> <g xmlns="http://www.w3.org/2000/svg"> <g id="Livello_1"> <g> <path class="cls-1" d="M121,.6h-9.8v21.4h5.5s0-13.8,0-13.8h0c0-1.8,1.6-3.3,3.7-3.3s3.7,1.5,3.7,3.3v13.8h5.5v-13.8c0-4.2-3.8-7.6-8.5-7.6Z"/> <path class="cls-1" d="M84.6.6c-4.6,0-8.2,3.5-8.2,7.7v13.7h5.5v-13c0-1.5.6-2.3,1.4-2.7.5-.2,1.1-.3,1.8-.4.8,0,1.4,0,2-.7,0,0,4-4.6,4-4.6h-6.5Z"/> <path class="cls-1" d="M22.4.6c-2.5,0-4.8.8-6.4,2.1-1.7-1.3-3.9-2.1-6.4-2.1H.4v21.4h5.5v-13.6c0-1.8,1.6-3.3,3.6-3.3s3.6,1.5,3.6,3.3v13.6h5.5v-13.6c0-1.8,1.6-3.3,3.6-3.3s3.6,1.5,3.6,3.3v13.6h5.5v-14c0-4.1-4.1-7.4-9.2-7.4Z"/> <path class="cls-1" d="M46.5,1.1c-.9-.3-1.9-.4-3.5-.5h-8.1s3.4,4,3.5,4.1c.6.6,1.2.7,2,.7.5,0,1.6,0,2.1,0,.7,0,.9,0,1.6.1,1.3.2,2.4,1.5,2.4,2.7h-5.7c-3.8,0-7.1,3.1-7.1,6.9s3.3,6.9,7.1,6.9h9.1c1.1,0,1.9,0,1.9,0v-13.7c0-3.3-2.2-6.1-5.3-7.2ZM38.4,15.1c0-1.4,1.1-2.5,2.5-2.5h5.7v5h-5.7c-1.4,0-2.5-1.1-2.5-2.5Z"/> <path class="cls-1" d="M98.8.3c-6.1,0-10.5,4.9-10.5,11s4.4,11,10.5,11,10.5-4.9,10.5-11S104.9.3,98.8.3ZM98.8,17.6c-3.5,0-5.1-2.8-5.1-6.3s1.6-6.3,5.1-6.3,5.2,2.8,5.2,6.3-1.7,6.3-5.2,6.3Z"/> <path class="cls-1" d="M69.1,14.3c-.7,2-2.3,3.4-4.7,3.4-3.5,0-5.1-2.8-5.1-6.3s1.6-6.3,5.1-6.3,3.9,1.3,4.6,3.2h5.4c-1.2-4.6-5.1-7.9-10.1-7.9s-10.5,4.9-10.5,11,4.4,11,10.5,11,8.9-3.4,10.1-8h-5.4Z"/> </g> </g> </g> </symbol> <!-- macron-symbol --> <symbol id="svg-icon__macron-symbol" viewBox="0 0 189 233"> <path d="M188.8015,16.4756 L94.4705,232.7236 L0.0005,16.4626 L82.7055,87.5196 C85.7955,90.3496 89.9135,92.0746 94.4345,92.0746 C98.9205,92.0746 103.0095,90.3716 106.0905,87.5756 L188.8015,16.4756 Z" fill="currentColor"></path> <path d="M101.5916,2.8394 C99.7436,1.0794 97.2446,0.0004 94.4906,0.0004 C91.9676,0.0004 89.6556,0.9074 87.8656,2.4124 L58.9456,27.3834 C57.6696,28.5154 56.8636,30.1704 56.8636,32.0094 C56.8636,33.8364 57.6566,35.4804 58.9156,36.6104 L87.6796,61.4264 C89.4956,63.0274 91.8806,64.0004 94.4906,64.0004 C97.4086,64.0004 100.0456,62.7854 101.9186,60.8344 L130.1456,36.5384 C131.3586,35.4094 132.1166,33.7984 132.1166,32.0094 C132.1166,30.1224 131.2706,28.4304 129.9366,27.2974 L101.5916,2.8394 Z" fill="currentColor"></path> </symbol> <!-- amazon-pay --> <symbol id="svg-icon__amazon-pay" viewBox="0 0 32 21"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g transform="translate(0.000000, -0.000000)" fill="currentColor"> <path d="M29.7879027,0 L2.19152881,0 C0.984489697,0 0,0.960760029 0,2.15350576 L0,18.3124814 C0,19.5052912 0.984471793,20.4660691 2.19152881,20.4660691 L29.7879027,20.4660691 C30.9949799,20.4660691 31.9794725,19.5052705 31.9794725,18.3124814 L31.9794725,2.15350576 C31.9794725,0.960751312 30.994974,0 29.7879027,0 Z M2.19152881,1.22919334 L29.7879027,1.22919334 C30.3227358,1.22919334 30.7502791,1.64642392 30.7502791,2.15350576 L30.7502791,18.3124814 C30.7502791,18.8196135 30.3227269,19.2368758 29.7879027,19.2368758 L2.19152881,19.2368758 C1.65672471,19.2368758 1.22919334,18.8196341 1.22919334,18.3124814 L1.22919334,2.15350576 C1.22919334,1.64642757 1.65673277,1.22919334 2.19152881,1.22919334 Z" fill-rule="nonzero"></path> <g transform="translate(3.032010, 3.032010)"> <path d="M16.0328132,6.08247278 C14.5326178,7.19386986 12.3576448,7.78489117 10.4846429,7.78489117 C7.85981825,7.78489117 5.49602721,6.81086036 3.70719993,5.18947653 C3.56690877,5.06203756 3.69202089,4.88819418 3.86083025,4.98677469 C5.79063864,6.11410165 8.17742824,6.79308354 10.6421829,6.79308354 C12.3049781,6.79308354 14.132903,6.44655113 15.814787,5.73039954 C16.068461,5.62258432 16.2811976,5.89824035 16.0328132,6.08247278 Z"></path> <path d="M16.6356583,5.35099401 C16.4426963,5.10438663 15.3611843,5.23415568 14.8751972,5.29234394 C14.7279914,5.31012368 14.7051133,5.18150916 14.8377603,5.08845413 C15.7006589,4.48278826 17.1147127,4.65758394 17.2790193,4.86055012 C17.4444814,5.06490174 17.2353428,6.48150873 16.426982,7.15736995 C16.3024232,7.26127756 16.184104,7.20586017 16.239335,7.06870213 C16.4214358,6.61451046 16.8286204,5.5980632 16.6356583,5.35099401 Z"></path> <path d="M14.8999965,0.859539026 L14.8999965,0.27190378 C14.9004563,0.182420862 14.9675923,0.122919334 15.0485233,0.12314996 L17.6746423,0.122919334 C17.7585622,0.122919334 17.826158,0.184035245 17.826158,0.271211902 L17.826158,0.775129882 C17.8252383,0.859769652 17.7541938,0.970008918 17.6284289,1.14505411 L16.2680063,3.09338321 C16.7729054,3.08162128 17.307004,3.15749726 17.7659196,3.4160291 C17.8693825,3.4743775 17.8972026,3.56086227 17.9052497,3.64550204 L17.9052497,4.27257435 C17.9052497,4.35905913 17.8109835,4.45892022 17.711659,4.40702935 C16.9034986,3.98221612 15.8309329,3.93586028 14.9370132,4.41210313 C14.8457359,4.46099586 14.7503201,4.36228789 14.7503201,4.27580311 L14.7503201,3.6796347 C14.7503201,3.58438613 14.7521594,3.42110287 14.8480351,3.27580844 L16.4238905,1.00783159 L15.0517421,1.00760097 C14.9678222,1.00760097 14.9004563,0.947638188 14.8999965,0.859539026 Z"></path> <path d="M5.3645785,4.50704225 L4.56772676,4.50704225 C4.4918252,4.5022178 4.4312874,4.44524325 4.42509603,4.37218718 L4.42578396,0.274844428 C4.42578396,0.193058388 4.49457692,0.127583609 4.57965087,0.127583609 L5.32169756,0.127353873 C5.39920429,0.131259386 5.46157657,0.190071819 5.46639208,0.264965777 L5.46639208,0.799791341 L5.48152653,0.799791341 C5.67483474,0.282425718 6.0392081,0.0409731114 6.53016049,0.0409731114 C7.02845081,0.0409731114 7.34100014,0.282425718 7.56411863,0.799791341 C7.75742683,0.282425718 8.19632589,0.0409731114 8.66480593,0.0409731114 C8.99959831,0.0409731114 9.36397167,0.179044488 9.58709016,0.489417914 C9.84001893,0.834481487 9.7881949,1.33438717 9.7881949,1.774102 L9.78727766,4.35978143 C9.78727766,4.44133774 9.71871402,4.50704225 9.63364006,4.50704225 L8.83793487,4.50704225 C8.75767642,4.50198806 8.69484552,4.43858091 8.69484552,4.36001117 L8.69461621,2.18785666 C8.69461621,2.01555461 8.70952135,1.58456975 8.67214384,1.42076793 C8.61275259,1.14462518 8.43434952,1.06697439 8.20389312,1.06697439 C8.0103556,1.06697439 7.80948017,1.19631579 7.72761655,1.40307825 C7.64575293,1.61030018 7.65332016,1.95490429 7.65332016,2.18785666 L7.65332016,4.35978143 C7.65332016,4.44133774 7.5845272,4.50704225 7.49968256,4.50704225 L6.70374805,4.50704225 C6.62371891,4.50198806 6.5606587,4.43858091 6.5606587,4.36001117 L6.55974146,2.18785666 C6.55974146,1.73091162 6.63426717,1.05870389 6.06901838,1.05870389 C5.49620236,1.05870389 5.51867473,1.71368142 5.51867473,2.18785666 L5.51821611,4.35978143 C5.51821611,4.44133774 5.44942315,4.50704225 5.3645785,4.50704225 Z"></path> <path d="M20.1102497,0.876627327 C19.5242542,0.876627327 19.4871968,1.67739568 19.4871968,2.17704391 C19.4871968,2.67669215 19.4798814,3.74484231 20.1031592,3.74484231 C20.7188891,3.74484231 20.7486235,2.88348271 20.7486235,2.3581291 C20.7486235,2.01363117 20.7335276,1.60005004 20.6296861,1.27276552 C20.5407117,0.988399808 20.3625343,0.876627327 20.1102497,0.876627327 Z M20.1031592,0.0409731114 C21.2826983,0.0409731114 21.9206146,1.05771252 21.9206146,2.34963715 C21.9206146,3.59818396 21.2159103,4.58898848 20.1031592,4.58898848 C18.9455779,4.58898848 18.3149808,3.57247858 18.3149808,2.30648884 C18.3149808,1.03154812 18.9528971,0.0409731114 20.1031592,0.0409731114 Z" ></path> <path d="M23.4750205,4.50704225 L22.6796736,4.50704225 C22.5999782,4.50198806 22.5365893,4.43858091 22.5365893,4.36001117 L22.5352113,0.26129 C22.5421014,0.186166306 22.6082463,0.127583609 22.6886308,0.127583609 L23.4288569,0.127353873 C23.4986765,0.13102965 23.556094,0.178355279 23.5707929,0.24199217 L23.5707929,0.868712161 L23.5857214,0.868712161 C23.8094199,0.308156157 24.1220007,0.0409731114 24.6732084,0.0409731114 C25.0308045,0.0409731114 25.3810511,0.170314517 25.6045199,0.523878324 C25.8130602,0.851481956 25.8130602,1.40307825 25.8130602,1.79983244 L25.8130602,4.37816032 C25.8043327,4.45075692 25.7391065,4.50704225 25.6601,4.50704225 L24.8601597,4.50704225 C24.786206,4.50244753 24.7267215,4.44800008 24.7179941,4.37816032 L24.7179941,2.15362598 C24.7179941,1.70518118 24.7703588,1.04974418 24.2189214,1.04974418 C24.0253096,1.04974418 23.8463968,1.17908559 23.7570552,1.37734781 C23.6452059,1.62753039 23.6302774,1.87748323 23.6302774,2.15362598 L23.6302774,4.35978143 C23.6288994,4.44133774 23.5599984,4.50704225 23.4750205,4.50704225 Z"></path> <path d="M13.6413803,4.48136855 C13.5888502,4.52854808 13.5129225,4.53175446 13.4532813,4.49991972 C13.1885664,4.28028297 13.1410829,4.17882407 12.9963384,3.96949352 C12.5588936,4.41449271 12.248989,4.54801536 11.6821688,4.54801536 C11.0112059,4.54801536 10.4891165,4.13439286 10.4891165,3.3076059 C10.4891165,2.66152113 10.8398523,2.22224761 11.3392322,2.00696236 C11.7716305,1.81732813 12.3756118,1.7829741 12.83806,1.73121403 L12.83806,1.62792291 C12.83806,1.43805965 12.8529703,1.21452943 12.7410284,1.05077523 C12.6439969,0.904198039 12.457733,0.843963975 12.2937199,0.843963975 C11.98955,0.843963975 11.7195592,0.999473212 11.6530364,1.321714 C11.6390436,1.39339941 11.5867429,1.46462676 11.5147148,1.46829119 L10.7419032,1.38469639 C10.6767567,1.36980964 10.6042698,1.31759152 10.6228503,1.21819386 C10.7983329,0.295444648 11.6236746,0.0077869132 12.3737766,0 L12.432959,0 C12.8169562,0.00480956404 13.3073899,0.109932892 13.6060544,0.395987439 C13.9939512,0.757849876 13.9563314,1.24018044 13.9563314,1.76579708 L13.9563314,3.00551947 C13.9563314,3.37860422 14.1116278,3.5421294 14.2572898,3.74298596 C14.3084436,3.81558747 14.3196836,3.90147254 14.2547665,3.95460677 C14.0919003,4.09087775 13.8026408,4.34166217 13.6436742,4.48320076 L13.6413803,4.48136855 Z M12.83806,2.541053 C12.83806,2.85115537 12.8454004,3.10949766 12.6889571,3.385246 C12.562105,3.60900524 12.3607015,3.74687941 12.1370472,3.74687941 C11.831501,3.74687941 11.6525776,3.51441715 11.6525776,3.16973173 C11.6525776,2.49181223 12.261376,2.36859578 12.83806,2.36859578 L12.83806,2.541053 Z"></path> <path d="M3.15262987,4.48136855 C3.09986811,4.52854808 3.02370765,4.53175446 2.96429332,4.49991972 C2.69933753,4.28028297 2.65185194,4.17882407 2.5073306,3.96949352 C2.06963739,4.41449271 1.7599488,4.54801536 1.19310398,4.54801536 C0.522112026,4.54801536 0,4.13439286 0,3.3076059 C0,2.66152113 0.350292208,2.22224761 0.850152535,2.00696236 C1.28256957,1.81732813 1.88657702,1.7829741 2.34881592,1.73121403 L2.34881592,1.62792291 C2.34881592,1.43805965 2.36395625,1.21452943 2.25200956,1.05077523 C2.1549738,0.904198039 1.96847245,0.843963975 1.8046816,0.843963975 C1.50049858,0.843963975 1.23003721,0.999473212 1.16397031,1.321714 C1.15020637,1.39339941 1.09767401,1.46462676 1.02541334,1.46829119 L0.252797651,1.38469639 C0.187418948,1.36980964 0.114928878,1.31759152 0.133739592,1.21819386 C0.308770996,0.295444648 1.13437784,0.0077869132 1.88474183,0 L1.94392676,0 C2.32794062,0.00480956404 2.81839559,0.109932892 3.11707303,0.395987439 C3.50475727,0.757849876 3.46736524,1.24018044 3.46736524,1.76579708 L3.46736524,3.00551947 C3.46736524,3.37860422 3.62266833,3.5421294 3.76833667,3.74298596 C3.81903384,3.81558747 3.83073319,3.90147254 3.76581328,3.95460677 C3.60294002,4.09087775 3.31343854,4.34166217 3.15446506,4.48320076 L3.15262987,4.48136855 Z M2.34881592,2.541053 C2.34881592,2.85115537 2.35638609,3.10949766 2.1997066,3.385246 C2.07307838,3.60900524 1.87166609,3.74687941 1.64777271,3.74687941 C1.3422133,3.74687941 1.16328211,3.51441715 1.16328211,3.16973173 C1.16328211,2.49181223 1.77233634,2.36859578 2.34881592,2.36859578 L2.34881592,2.541053 Z"></path> <path d="M22.0749884,14.9430568 C22.0749884,14.8393178 22.0749884,14.7461363 22.0749884,14.6423972 C22.0749884,14.5567896 22.1171915,14.4978052 22.2069019,14.503084 C22.3743306,14.5267236 22.6111753,14.5503633 22.7792958,14.5159366 C22.9988442,14.4704934 23.1563563,14.3155733 23.249526,14.1032755 C23.3807476,13.804452 23.4676906,13.5634653 23.5225777,13.4053321 L21.8554401,9.29524641 C21.8273047,9.22547502 21.8190024,9.09603073 21.9589875,9.09603073 L22.5417593,9.09603073 C22.6529172,9.09603073 22.6981183,9.16626114 22.723025,9.23511449 L23.9316941,12.5735837 L25.085476,9.23511449 C25.108999,9.16672016 25.1562757,9.09603073 25.2665112,9.09603073 L25.8160739,9.09603073 C25.9551366,9.09603073 25.9472955,9.22524551 25.9196214,9.29524641 L24.2658596,13.5336288 C24.0518461,14.0977673 23.7668022,14.9963034 23.1247616,15.152371 C22.8028189,15.2361426 22.3967005,15.2058471 22.1582415,15.1064688 C22.0980502,15.0764028 22.0749884,14.9960739 22.0749884,14.9430568 Z"></path> <path d="M21.3060179,13.2198812 C21.3060179,13.2961171 21.2434075,13.3586167 21.1665777,13.3586167 L20.7578896,13.3586167 C20.6695928,13.3586167 20.6092757,13.2949724 20.5980379,13.2198812 L20.5569857,12.9421814 C20.3691542,13.1008343 20.1386651,13.2402566 19.8886819,13.3373256 C19.4079802,13.5236798 18.853889,13.5545862 18.3841958,13.2665843 C18.0445397,13.0584811 17.8642766,12.6516612 17.8642766,12.2320208 C17.8642766,11.907389 17.9644992,11.5855044 18.186732,11.3517604 C18.4832717,11.0323941 18.9130594,10.8755727 19.4320612,10.8755727 C19.7455723,10.8755727 20.194166,10.9124315 20.5205202,11.0188869 L20.5205202,10.4600532 C20.5205202,9.89183309 20.2808574,9.64595542 19.6490191,9.64595542 C19.166024,9.64595542 18.7965534,9.71875719 18.2823678,9.87832584 C18.2000338,9.88107308 18.1518719,9.81857345 18.1518719,9.74233763 L18.1518719,9.42365819 C18.1518719,9.34719344 18.2172345,9.27324699 18.2881013,9.25081122 C18.6552785,9.09101363 19.1754271,8.99142631 19.7283716,8.9731114 C20.4491947,8.9731114 21.3060179,9.13542729 21.3060179,10.2421058 L21.3060179,13.2198812 Z M20.5205202,12.403952 L20.5205202,11.5607793 C20.2462267,11.4859171 19.7923581,11.4547818 19.6166818,11.4547818 C19.3391775,11.4547818 19.0352988,11.5202576 18.8765939,11.6908152 C18.7580239,11.8158144 18.7043578,11.9953005 18.7043578,12.1688343 C18.7043578,12.393192 18.7821048,12.6182364 18.963744,12.7294995 C19.174739,12.8725848 19.5020106,12.8551856 19.8095588,12.7679608 C20.1051811,12.6841701 20.3826854,12.5360483 20.5205202,12.403952 Z"></path> <path d="M15.2738211,9.660606 C16.1808449,9.660606 16.4279022,10.3771399 16.4279022,11.1976162 C16.4329489,11.7507463 16.3317861,12.243954 16.0466494,12.5262808 C15.833313,12.7376226 15.5949727,12.7952403 15.2362005,12.7952403 C14.916884,12.7952403 14.4968636,12.6279185 14.1830527,12.3949124 L14.1830527,10.0489494 C14.5097097,9.79681429 14.9265186,9.660606 15.2738211,9.660606 Z M14.0440399,15.1190781 L13.4964765,15.1190781 C13.4198589,15.1190781 13.3572343,15.0561596 13.3572343,14.9794128 C13.3572343,13.0688092 13.3572343,11.1579753 13.3572343,9.24737173 C13.3572343,9.17062493 13.4198589,9.10770638 13.4964765,9.10770638 L13.9155793,9.10770638 C14.0036666,9.10770638 14.0639972,9.17177729 14.0752375,9.24737173 L14.1192811,9.54767528 C14.5117743,9.19759002 15.0171292,8.9731114 15.4986272,8.9731114 C16.8472344,8.9731114 17.290653,10.0895123 17.290653,11.2503941 C17.290653,12.4924016 16.612335,13.4903405 15.4651357,13.4903405 C14.9820319,13.4903405 14.5303552,13.3112646 14.1830527,13.0001289 L14.1830527,14.9794128 C14.1830527,15.0561596 14.1204281,15.1190781 14.0440399,15.1190781 Z"></path> </g> </g> </g> </symbol> <!-- diners --> <symbol id="svg-icon__diners" viewBox="0 0 34 22"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g transform="translate(1.000000, 1.000000)" fill-rule="nonzero" fill="currentColor"> <path d="M30.3386916,-0.640854473 L1.63990387,-0.640854473 C0.383049906,-0.640854473 -0.640854473,0.363205298 -0.640854473,1.60811749 L-0.640854473,18.4932657 C-0.640854473,19.7382141 0.383043755,20.7423231 1.63990387,20.7423231 L30.3386916,20.7423231 C31.5955243,20.7423231 32.6194927,19.7381995 32.6194927,18.4932657 L32.6194927,1.60811749 C32.6194927,0.363219848 31.5955182,-0.640854473 30.3386916,-0.640854473 Z M1.63990387,0.640854473 L30.3386916,0.640854473 C30.893219,0.640854473 31.3377837,1.07677945 31.3377837,1.60811749 L31.3377837,18.4932657 C31.3377837,19.0246561 30.8932097,19.4606142 30.3386916,19.4606142 L1.63990387,19.4606142 C1.08537356,19.4606142 0.640854473,19.0246864 0.640854473,18.4932657 L0.640854473,1.60811749 C0.640854473,1.07674908 1.08536426,0.640854473 1.63990387,0.640854473 Z"></path> <path d="M17.4667023,3.3507709 L14.2588838,3.3507709 C10.4869853,3.34948999 7.38208812,6.1128972 7.38208812,10.1087957 C7.38208812,13.764486 10.4867717,16.7681282 14.2588838,16.7506881 L17.4667023,16.7506881 C21.1940401,16.7681709 24.5959947,13.7637597 24.5959947,10.1087957 C24.5959947,6.11195728 21.1939119,3.34906275 17.4667023,3.3507709 Z M15.7049079,13.6638291 L15.7049079,6.40593858 C17.1892977,6.96553271 18.243247,8.37818959 18.2459386,10.0345421 C18.243247,11.6914927 17.1892977,13.102996 15.7049079,13.6636155 L15.7049079,13.6638291 Z M12.8735274,13.6620347 C11.3896502,13.1014579 10.3373244,11.6904246 10.3340774,10.0345421 C10.3373672,8.37895861 11.3896502,6.96728438 12.8735274,6.40619493 L12.8735274,13.6619493 L12.8735274,13.6620347 Z"></path> </g> </g> </symbol> <!-- discover --> <symbol id="svg-icon__discover" viewBox="0 0 32 21"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g transform="translate(0.000000, 0.000000)" fill="currentColor"> <path d="M2.25608205,1.23076923 L29.7439179,1.23076923 C30.3101949,1.23076923 30.7692308,1.68988718 30.7692308,2.25661538 L30.7692308,11.2789333 C30.7692308,11.2789333 27.6676103,13.374441 24.0741333,14.8226051 C18.3667282,17.4609231 10.099159,19.3230769 9.53312821,19.3230769 L2.25604103,19.3230769 C1.68984615,19.3230769 1.23076923,18.863959 1.23076923,18.2972308 L1.23076923,2.25661538 C1.23076923,1.69017436 1.69009231,1.23076923 2.25608205,1.23076923 Z M0,2.25661538 L0,18.2972308 C0,19.5435897 1.00996923,20.5538462 2.25608205,20.5538462 L29.7439179,20.5538462 C30.9897026,20.5538462 32,19.5433846 32,18.2972308 L32,2.25661538 C32,1.01025641 30.9900308,0 29.7439179,0 L2.25608205,0 C1.01029744,0 0,1.01046154 0,2.25661538 Z"></path> <path d="M2.76574359,6.74461538 L2.76574359,10.8119795 L3.99618462,10.8119795 C4.65042051,10.8119795 5.12295385,10.6666256 5.53764103,10.342441 C6.03052308,9.95844103 6.32192821,9.37969231 6.32192821,8.78112821 C6.32192821,7.58071795 5.36931282,6.74461538 4.00266667,6.74461538 L2.76574359,6.74461538 L2.76574359,6.74461538 Z M4.98711795,9.80020513 C4.72233846,10.0251897 4.37842051,10.1234051 3.83388718,10.1234051 L3.60779487,10.1234051 L3.60779487,7.43384615 L3.83388718,7.43384615 C4.37842051,7.43384615 4.7088,7.52557949 4.98711795,7.76270769 C5.2785641,8.00705641 5.45386667,8.3856 5.45386667,8.77530256 C5.45386667,9.16566154 5.2785641,9.55581538 4.98711795,9.8001641 L4.98711795,9.80020513 Z M6.70966154,10.8119795 L7.55232821,10.8119795 L7.55232821,6.74461538 L6.70966154,6.74461538 L6.70966154,10.8119795 Z M9.61288205,8.29558974 C9.10724103,8.11946667 8.95868718,8.00315897 8.95868718,7.78350769 C8.95868718,7.52734359 9.22330256,7.3326359 9.58650256,7.3326359 C9.83893333,7.3326359 10.0464821,7.4304 10.2660103,7.66203077 L10.7069538,7.11848205 C10.3445744,6.82006154 9.91113846,6.66748718 9.43745641,6.66748718 C8.67306667,6.66748718 8.09001026,7.16734359 8.09001026,7.83302564 C8.09001026,8.39335385 8.36147692,8.68012308 9.15294359,8.94834872 C9.48278974,9.05788718 9.65070769,9.13091282 9.73550769,9.17997949 C9.9038359,9.28352821 9.98814359,9.42998974 9.98814359,9.60077949 C9.98814359,9.93029744 9.70978462,10.1745231 9.33386667,10.1745231 C8.93189744,10.1745231 8.60820513,9.98531282 8.41407179,9.63208205 L7.86974359,10.1256205 C8.25801026,10.6621128 8.72422564,10.8998564 9.36545641,10.8998564 C10.2411487,10.8998564 10.8555077,10.3517538 10.8555077,9.56434872 C10.8555077,8.91819487 10.5714462,8.6256 9.61288205,8.29558974 M11.1213538,8.77013333 C11.1213538,9.96562051 12.1184,10.8926359 13.401559,10.8926359 C13.7644718,10.8926359 14.0750769,10.8255179 14.4582974,10.6556718 L14.4582974,9.7217641 C14.1213128,10.0391795 13.8228513,10.1673026 13.4408205,10.1673026 C12.5920821,10.1673026 11.9897436,9.58789744 11.9897436,8.76434872 C11.9897436,7.98334359 12.6112821,7.36738462 13.4016,7.36738462 C13.8036513,7.36738462 14.1077744,7.50235897 14.4582974,7.82498462 L14.4582974,6.89156923 C14.0882462,6.71495385 13.7841641,6.64172308 13.4216205,6.64172308 C12.1449026,6.64172308 11.1213128,7.58752821 11.1213128,8.77013333 M21.1397744,9.47035897 L19.9876103,6.73837949 L19.0671179,6.73837949 L20.9004308,10.9098667 L21.3539282,10.9098667 L23.2202667,6.73837949 L22.3068308,6.73837949 L21.1398154,9.4704 M23.6013538,10.8119795 L25.9911385,10.8119795 L25.9911385,10.1234051 L24.4434051,10.1234051 L24.4434051,9.02547692 L25.9340718,9.02547692 L25.9340718,8.33657436 L24.4434051,8.33657436 L24.4434051,7.43384615 L25.9911385,7.43384615 L25.9911385,6.74461538 L23.6013538,6.74461538 L23.6013538,10.8119795 M29.3277128,7.9454359 C29.3277128,7.184 28.7707487,6.74461538 27.7988513,6.74461538 L26.5493744,6.74461538 L26.5493744,10.8119795 L27.3910974,10.8119795 L27.3910974,9.17805128 L27.5009231,9.17805128 L28.6672821,10.8119795 L29.7035897,10.8119795 L28.3436308,9.09854359 C28.9783795,8.97694359 29.3277128,8.56820513 29.3277128,7.94547692 L29.3277128,7.9454359 Z M27.6372923,8.61706667 L27.3910974,8.61706667 L27.3910974,7.38527179 L27.6506256,7.38527179 C28.1753846,7.38527179 28.4606359,7.59236923 28.4606359,7.98822564 C28.4606359,8.39708718 28.1753846,8.61706667 27.6372513,8.61706667 L27.6372923,8.61706667 Z M14.7326359,8.77764103 L14.7326359,8.77624615 C14.7326359,7.58121026 15.761641,6.61386667 17.0309744,6.61386667 C18.3003077,6.61386667 19.3293128,7.58121026 19.3293128,8.77624615 L19.3293128,8.77764103 C19.3293128,9.97271795 18.3003077,10.9414564 17.0309744,10.9414564 C15.761641,10.9414564 14.7326359,9.97267692 14.7326359,8.77764103"></path> </g> </g> </symbol> <!-- maestro --> <symbol id="svg-icon__maestro" viewBox="0 0 34 22"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g transform="translate(1.000000, 1.000000)" fill="currentColor" fill-rule="nonzero"> <path d="M30.3589853,-0.640854473 L1.64101469,-0.640854473 C0.38380097,-0.640854473 -0.640854473,0.36218641 -0.640854473,1.60640854 L-0.640854473,18.4736555 C-0.640854473,19.7179111 0.38379165,20.7209613 1.64101469,20.7209613 L30.3589853,20.7209613 C31.6162295,20.7209613 32.6408545,19.7179322 32.6408545,18.4736983 L32.6408545,1.60640854 C32.6408545,0.362174605 31.6162295,-0.640854473 30.3589853,-0.640854473 Z M1.64101469,0.640854473 L30.3589853,0.640854473 C30.9144002,0.640854473 31.3591455,1.07622592 31.3591455,1.60640854 L31.3591455,18.4736983 C31.3591455,19.0038809 30.9144002,19.4392523 30.3589853,19.4392523 L1.64101469,19.4392523 C1.08562103,19.4392523 0.640854473,19.0038599 0.640854473,18.4736555 L0.640854473,1.60640854 C0.640854473,1.076243 1.0856252,0.640854473 1.64101469,0.640854473 Z"></path> <path d="M29.4716155,10.0605607 C29.4716155,14.5755941 25.7172336,18.248972 21.1003471,18.248972 C19.1762457,18.248972 17.4010788,17.6113218 15.985474,16.5384887 C14.5694846,17.6113218 12.795215,18.248972 10.8701736,18.248972 C6.25516689,18.248972 2.50061415,14.5755941 2.50061415,10.0605607 C2.50061415,5.54680908 6.25491055,1.87385848 10.8701736,1.87385848 C12.7950441,1.87385848 14.5693138,2.51308945 15.985474,3.5848972 C17.4012497,2.51308945 19.1764593,1.87385848 21.1003471,1.87385848 C25.7170628,1.87385848 29.4716155,5.54676636 29.4716155,10.0605607 L29.4716155,10.0605607 Z M21.089239,2.59674232 C19.3915728,2.59674232 17.8244272,3.14091322 16.5566889,4.05895861 C17.7945207,5.18485447 18.6818905,6.67236315 19.0464085,8.3458478 L18.279263,8.3458478 C17.9214953,6.84855541 17.1007744,5.5244219 15.9741522,4.52626969 C14.8482991,5.5244219 14.0279626,6.84851268 13.6698104,8.3458478 L12.9030494,8.3458478 C13.2670975,6.67232043 14.1549372,5.18476903 15.3918291,4.05895861 C14.1257143,3.14091322 12.5570734,2.59674232 10.8588518,2.59674232 C6.65112951,2.59674232 3.23909212,5.93324433 3.23909212,10.0503071 C3.23909212,14.1672844 6.65121495,17.506008 10.8588518,17.506008 C12.5569453,17.506008 14.1255434,16.9614953 15.3918291,16.0434072 C14.3109212,15.0582857 13.4963952,13.7999466 13.0644593,12.3781469 L13.848737,12.3781469 C14.2658478,13.6207637 15.0077009,14.7180774 15.9741522,15.5763952 C16.9428678,14.7180347 17.6832684,13.6207637 18.1003792,12.3781469 L18.8844005,12.3781469 C18.4540454,13.7999466 17.6381522,15.058243 16.5567316,16.0434072 C17.8245127,16.9614953 19.3916155,17.506008 21.0892817,17.506008 C25.2982003,17.506008 28.7098959,14.1671135 28.7098959,10.0503071 C28.7098959,5.9333725 25.2982003,2.59674232 21.0892817,2.59674232 L21.089239,2.59674232 Z"></path> <path d="M15.8329506,11.7977036 C15.5233324,11.8755461 15.223498,11.9138692 14.9073431,11.9138692 C13.899279,11.9138692 13.3728385,11.4642029 13.3728385,10.6033645 C13.3728385,9.60017089 14.0414633,8.86152203 14.9505794,8.86152203 C15.6928598,8.86152203 16.1673057,9.27628304 16.1673057,9.92435781 C16.1673057,10.1384887 16.1354766,10.3479626 16.0563952,10.6457891 L14.2628571,10.6457891 C14.1980027,11.0652924 14.5115514,11.2499866 15.0456395,11.2499866 C15.3652977,11.2499866 15.6535541,11.1943605 15.9734259,11.0676849 L15.8329506,11.7977036 L15.8329506,11.7977036 Z M15.3523525,10.0694473 C15.3523525,10.0045501 15.4517704,9.55449933 14.9333618,9.54424566 C14.6469853,9.54424566 14.4411429,9.73141789 14.3574473,10.0694473 L15.3523525,10.0694473 L15.3523525,10.0694473 Z M16.6329079,9.85604272 C16.6329079,10.2271402 16.8466115,10.4843792 17.332251,10.6738585 C17.7027503,10.8228785 17.7611963,10.8656876 17.7611963,10.9989426 C17.7611963,11.1847049 17.5982483,11.268016 17.2339439,11.266478 C16.9605127,11.2648545 16.7106649,11.2319146 16.4171108,11.1519359 L16.2856929,11.8271829 C16.5473324,11.886996 16.9151402,11.9073324 17.2414633,11.9138264 C18.2091963,11.9138264 18.6553591,11.6033965 18.6553591,10.9327637 C18.6553591,10.5301789 18.4697677,10.2925928 18.0086088,10.1155461 C17.6248224,9.96601335 17.5806462,9.93204806 17.5806462,9.79640053 C17.5806462,9.6365287 17.7327423,9.5555247 18.0303124,9.5555247 C18.2100935,9.5555247 18.4563952,9.57193057 18.6905207,9.60012817 L18.8209132,8.9186008 C18.5835407,8.88766889 18.2215007,8.86152203 18.0126676,8.86152203 C16.9854206,8.86152203 16.6297036,9.31311081 16.6329079,9.85604272 Z M12.7680854,11.8666168 L12.0146969,11.8666168 L12.0331535,11.5573832 C11.8036849,11.7992844 11.4986382,11.9138692 11.0828091,11.9138692 C10.5921709,11.9138692 10.2549105,11.5851535 10.2549105,11.1134846 C10.2549105,10.3956422 10.8404379,9.98156475 11.8458959,9.98156475 C11.9486889,9.98156475 12.0813031,9.98775968 12.2157543,10.0028411 C12.2433538,9.90585848 12.2507877,9.86510013 12.2507877,9.81276368 C12.2507877,9.61614953 12.0933084,9.54407477 11.6691482,9.54407477 C11.2524646,9.54582644 10.9712577,9.60628037 10.7104299,9.67489453 L10.838729,9.01630975 C11.2904887,8.90480107 11.5863925,8.86152203 11.9202777,8.86152203 C12.6987877,8.86152203 13.1108571,9.15900668 13.1108571,9.72073698 C13.1170093,9.86997063 13.0636475,10.1716849 13.0368171,10.3020774 C13.0059279,10.4942056 12.790729,11.6033538 12.7680854,11.8666168 L12.7680854,11.8666168 Z M12.1332123,10.5614099 C12.0384085,10.5510708 11.9962403,10.5481656 11.9305314,10.5481656 C11.4165234,10.5481656 11.1574473,10.6967583 11.1574473,10.9925768 C11.1574473,11.1799626 11.2840801,11.2944619 11.4822323,11.2944619 C11.8502964,11.2945047 12.1174045,10.9926195 12.1332123,10.5614099 L12.1332123,10.5614099 Z M20.4758558,11.2041442 C20.4133084,11.2251642 20.3346115,11.2334953 20.2317757,11.2334953 C20.0176876,11.2334953 19.9241228,11.1679573 19.9241228,11.0159039 C19.9241228,10.9211001 20.1775167,9.67673164 20.1775167,9.67673164 L20.6397009,9.67673164 L20.7633431,8.96102537 L20.3036796,8.96102537 L20.4406088,8.25911883 L19.5446088,8.25911883 C19.5446088,8.25911883 19.1433485,10.3804326 19.1183979,10.5267183 C19.0934045,10.6721495 18.9795033,11.194275 18.9947984,11.3053992 C18.9947984,11.7158879 19.2463551,11.9463818 19.7085821,11.9463818 C19.9156208,11.9463818 20.1088598,11.9195514 20.3553752,11.8531162 L20.4758558,11.2041442 L20.4758558,11.2041442 Z M24.4715834,11.9138264 C23.4621949,11.9138264 23.0550387,11.3137303 23.0550387,10.5804219 C23.0550387,9.5555247 23.7444272,8.86147931 24.8117063,8.86147931 C25.7387664,8.86147931 26.231028,9.4329506 26.231028,10.166259 C26.231028,11.3825154 25.4921656,11.9138264 24.4715834,11.9138264 Z M24.7761175,9.58436315 C24.3222216,9.58436315 24.0396475,10.1101202 24.0396475,10.5752523 C24.0396475,10.9681389 24.2319893,11.2296929 24.5520748,11.2256342 C24.9909319,11.2256342 25.2685073,10.832534 25.2685073,10.170745 C25.2685073,9.86979973 25.1429426,9.58436315 24.7761175,9.58436315 Z M21.3513057,8.93235781 C21.2376609,9.84160214 21.0351936,10.7633645 20.878227,11.6727797 L20.8396475,11.8725554 L21.7455594,11.8725554 C22.0717116,10.1134526 22.180486,9.61217623 22.8639359,9.78922296 C22.8991829,9.69480374 23.1932497,8.95773565 23.1932497,8.95773565 C22.7169239,8.78615754 22.4093565,9.0317757 22.131781,9.37792256 C22.1566889,9.22057143 22.2038985,9.0700988 22.1921068,8.93235781 L21.3513057,8.93235781 Z M10.377741,8.29923632 L8.91214953,8.29923632 L7.92096128,10.5218478 L7.84653672,8.29923632 L6.43870761,8.29923632 L5.74201335,11.8910547 L6.55991455,11.8910547 L7.09724967,9.1464032 L7.2468251,11.8910547 L8.06874232,11.8910547 L9.30200267,9.12957009 L8.76633378,11.8910547 L9.66733244,11.8910547 L10.377741,8.29923632 L10.377741,8.29923632 Z"></path> </g> </g> </symbol> <!-- mastercard --> <symbol id="svg-icon__mastercard" viewBox="0 0 34 22"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g transform="translate(1.000000, 1.000000)" fill="currentColor" fill-rule="nonzero"> <path d="M30.3386489,-0.640854473 L1.6399466,-0.640854473 C0.383102002,-0.640854473 -0.640854473,0.363238673 -0.640854473,1.60811749 L-0.640854473,18.4933511 C-0.640854473,19.7382606 0.383089529,20.7423231 1.6399466,20.7423231 L30.3386489,20.7423231 C31.59557,20.7423231 32.6194927,19.7382816 32.6194927,18.4933511 L32.6194927,1.60811749 C32.6194927,0.363217725 31.5955575,-0.640854473 30.3386489,-0.640854473 Z M1.6399466,0.640854473 L30.3386489,0.640854473 C30.8932481,0.640854473 31.3377837,1.07676668 31.3377837,1.60811749 L31.3377837,18.4933511 C31.3377837,19.0247272 30.8932658,19.4606142 30.3386489,19.4606142 L1.6399466,19.4606142 C1.08539379,19.4606142 0.640854473,19.0247063 0.640854473,18.4933511 L0.640854473,1.60811749 C0.640854473,1.07678763 1.08541141,0.640854473 1.6399466,0.640854473 Z"></path> <path d="M29.4767423,10.0498798 C29.4767423,14.5670494 25.7211215,18.2434179 21.1050467,18.2434179 C19.1797063,18.2434179 17.4047957,17.602478 15.9888919,16.5306275 C14.573757,17.602478 12.7988465,18.2434179 10.8735915,18.2434179 C6.25773031,18.2434179 2.5023231,14.5670921 2.5023231,10.0498798 C2.5023231,5.53228304 6.25781575,1.85805073 10.8735915,1.85805073 C12.7989319,1.85805073 14.5738852,2.49655541 15.9888919,3.56994393 C17.4048812,2.49655541 19.1797917,1.85805073 21.1050467,1.85805073 C25.7209079,1.85805073 29.4767423,5.53262483 29.4767423,10.0498798 Z M21.0930841,2.58136182 C19.3949479,2.58136182 17.827247,3.12583178 16.560534,4.04464619 C17.7092016,5.09086248 18.558761,6.44947397 18.9646355,7.98060347 L18.1887744,7.98060347 C17.7912737,6.62694793 17.014259,5.43183979 15.9766729,4.51212817 C14.9401976,5.43183979 14.1626275,6.62694793 13.7666222,7.98060347 L12.9895648,7.98060347 C13.3964219,6.44947397 14.2459386,5.09086248 15.3946489,4.04464619 C14.1273805,3.12583178 12.5602777,2.58136182 10.8612443,2.58136182 C6.65206943,2.58136182 3.2397757,5.92064085 3.2397757,10.0409079 C3.2397757,14.1600214 6.65206943,17.5004539 10.8612443,17.5004539 C12.560235,17.5004539 14.1273378,16.955984 15.3946489,16.037255 C14.3137837,15.0520908 13.4983605,13.7898638 13.067279,12.3691749 L13.8518558,12.3691749 C14.2686248,13.6132016 15.0085554,14.7112417 15.9766729,15.5696021 C16.9458585,14.7112417 17.686729,13.6132016 18.1035407,12.3691749 L18.8878611,12.3691749 C18.4560534,13.7899493 17.6408438,15.0521335 16.5604913,16.037255 C17.8270334,16.955984 19.3947343,17.5004539 21.0930414,17.5004539 C25.3022163,17.5004539 28.71451,14.1601068 28.71451,10.0409079 C28.71451,5.9207263 25.302259,2.58136182 21.0930414,2.58136182 L21.0930841,2.58136182 Z"></path> <path d="M7.77869159,8.25036048 L6.55829105,8.25036048 L5.79558879,10.4755354 L5.76384513,8.25036048 L4.63286515,8.25036048 L4.01888385,11.8455541 L4.75488385,11.8455541 L5.2275781,9.0988518 L5.29358611,11.8455541 L5.82981041,11.8455541 L6.83471295,9.08244593 L6.3844486,11.8455541 L7.17047797,11.8455541 L7.77869159,8.25036048 L7.77869159,8.25036048 Z M9.80430441,11.8421789 L9.15276903,11.8421789 L9.16793591,11.5387984 C8.96905741,11.7783071 8.70421362,11.8929346 8.34435247,11.8929346 C7.91750067,11.8929346 7.62680908,11.5667397 7.62680908,11.0949853 C7.62680908,10.3820561 8.13376769,9.96767957 9.00588518,9.96767957 C9.09526302,9.96767957 9.20963418,9.97579706 9.32656876,9.99049399 C9.3508785,9.89321228 9.35677437,9.85236849 9.35677437,9.80003204 C9.35677437,9.60713485 9.22048598,9.5343765 8.85293458,9.5343765 C8.46876368,9.52946328 8.15136983,9.62354072 8.02110547,9.66605073 C8.02943658,9.61700401 8.13056342,9.00874766 8.13056342,9.00874766 C8.52152737,8.89595728 8.78030441,8.85344726 9.07108144,8.85344726 C9.74598665,8.85344726 10.1035834,9.14935113 10.1027501,9.71018425 C10.1035834,9.86061415 10.0784619,10.0461202 10.0391562,10.290713 C9.97071295,10.7132069 9.82451268,11.6206142 9.80438985,11.8420935 L9.80438985,11.8421789 L9.80430441,11.8421789 Z M9.25205874,10.5534206 C9.16938852,10.5451749 9.1333725,10.5419279 9.07659279,10.5419279 C8.63051535,10.5419279 8.40574633,10.6913752 8.40574633,10.9857837 C8.40574633,11.1682563 8.51605874,11.2841656 8.68644059,11.2841656 C9.00729506,11.2841656 9.2377036,10.9857837 9.25205874,10.5534206 Z M20.0974526,8.16999733 C19.0557223,8.16999733 18.3271989,9.06753538 18.3271989,10.3527477 C18.3271989,11.3074927 18.854494,11.9042991 19.7006355,11.9042991 C19.917757,11.9042991 20.1056555,11.876486 20.3947236,11.7980454 L20.5325501,10.9796742 C20.2727477,11.1048545 20.0590013,11.1644539 19.8649933,11.1644539 C19.4081068,11.1644539 19.1323258,10.8341148 19.1323258,10.2887904 C19.1323258,9.49669426 19.5426862,8.94162884 20.1298371,8.94162884 C20.3478985,8.94162884 20.551733,8.99725501 20.8323418,9.1362777 L20.9609826,8.35644326 C20.8458425,8.3122243 20.4406088,8.16999733 20.0974526,8.16999733 L20.0974526,8.16999733 Z M22.9247316,11.8421789 L22.2740935,11.8421789 L22.2891322,11.5387984 C22.0894419,11.7783071 21.8237864,11.8929346 21.4645234,11.8929346 C21.0385688,11.8929346 20.7461682,11.5667397 20.7461682,11.0949853 C20.7461682,10.3820561 21.2549212,9.96767957 22.1261415,9.96767957 C22.2155621,9.96767957 22.3300187,9.97579706 22.4471242,9.99049399 C22.4711348,9.89321228 22.4770734,9.85236849 22.4770734,9.80003204 C22.4770734,9.60713485 22.3409132,9.5343765 21.9740881,9.5343765 C21.5891055,9.52946328 21.2725661,9.62354072 21.1421308,9.66605073 C21.1496929,9.61700401 21.2508198,9.00874766 21.2508198,9.00874766 C21.64251,8.89595728 21.9014152,8.85344726 22.1904406,8.85344726 C22.8663284,8.85344726 23.2239252,9.14935113 23.223028,9.71018425 C23.2246515,9.86061415 23.1988465,10.0461202 23.1595407,10.290713 C23.0919092,10.7132069 22.9450254,11.6206142 22.9248171,11.8420935 L22.9248171,11.8421789 L22.9247316,11.8421789 Z M22.3721869,10.5534206 C22.2903284,10.5451749 22.2535861,10.5419279 22.1959092,10.5419279 C21.7506435,10.5419279 21.5250628,10.6913752 21.5250628,10.9857837 C21.5250628,11.1682563 21.6354179,11.2841656 21.8075514,11.2841656 C22.1275514,11.2841656 22.3588571,10.9857837 22.3721869,10.5534206 Z M13.6723738,11.1646248 C13.6197383,11.1826969 13.5504406,11.1923525 13.4610628,11.1923525 C13.273976,11.1923525 13.1913057,11.1271135 13.1913057,10.9757437 C13.1930147,10.8826489 13.3224673,10.1910387 13.4127423,9.63588785 L13.8160107,9.63588785 L13.9230334,8.93282777 L13.5211749,8.93282777 L13.612219,8.4915781 L12.8311455,8.4915781 C12.8311455,8.4915781 12.5355407,10.2123578 12.491279,10.4845073 C12.4411215,10.7960053 12.3777196,11.1352737 12.3825901,11.2643845 C12.3825901,11.6805554 12.601506,11.9070334 13.0031936,11.9070334 C13.1854953,11.9070334 13.3531001,11.8775113 13.5688972,11.8121869 L13.6723738,11.1646248 Z M16.0736983,11.7751455 C15.804753,11.8553378 15.5456342,11.8929346 15.2717757,11.8929346 C14.3961976,11.8910975 13.940251,11.4441228 13.940251,10.5881976 C13.940251,9.5891482 14.520737,8.85340454 15.3084753,8.85340454 C15.9524913,8.85340454 16.3644326,9.26461949 16.3644326,9.91201068 C16.3644326,10.1261842 16.3351669,10.3346756 16.2674072,10.6314766 L14.7120107,10.6314766 C14.6594179,11.0540561 14.9368652,11.2306328 15.3912737,11.2306328 C15.6709426,11.2306328 15.9224993,11.1750067 16.2031509,11.0475621 L16.0736983,11.7751455 L16.0736983,11.7751455 Z M15.6641068,10.0601762 C15.6691482,9.99967957 15.7466916,9.53685447 15.3006569,9.53685447 C15.0516636,9.53685447 14.8729933,9.72415487 14.8012603,10.0601762 L15.6641068,10.0601762 Z M10.4266168,9.84258478 C10.4266168,10.2129559 10.6086195,10.4672043 11.0246622,10.6593324 C11.3429533,10.8064299 11.3922136,10.8489399 11.3922136,10.9823231 C11.3922136,11.1635995 11.2518665,11.2454579 10.940283,11.2454579 C10.7064139,11.2454579 10.4875407,11.2110227 10.2360267,11.1310441 C10.2360267,11.1310441 10.1325928,11.7751883 10.1275087,11.8063338 C10.3071615,11.844016 10.4657944,11.879733 10.9461362,11.8929773 C11.77553,11.8929773 12.1582483,11.5830601 12.1582483,10.916016 C12.1582483,10.5130467 11.9986328,10.2792203 11.604251,10.1016609 C11.275279,9.9528972 11.2368278,9.92025634 11.2368278,9.78375434 C11.2368278,9.6251215 11.3679466,9.54501469 11.6227076,9.54501469 C11.7763418,9.54501469 11.9876956,9.56142056 12.1865314,9.58923364 L12.2985527,8.91065421 C12.0946756,8.87959413 11.78651,8.85344726 11.6068571,8.85344726 C10.727263,8.85340454 10.4232417,9.30221629 10.4266168,9.84258478 Z M27.3494473,11.8455968 L26.605287,11.8455968 L26.6428411,11.57349 C26.4264459,11.7983872 26.205223,11.8964379 25.9178211,11.8964379 C25.3463498,11.8964379 24.9688438,11.4148999 24.9688438,10.6840694 C24.9688438,9.71031242 25.5542857,8.89125768 26.2475621,8.89125768 C26.5517971,8.89125768 26.7838718,9.012251 26.998729,9.28944192 L27.1724005,8.25044593 L27.9477063,8.25044593 L27.3494473,11.8455968 L27.3494473,11.8455968 Z M26.1916368,11.1755621 C26.5574366,11.1755621 26.8155728,10.7690895 26.8155728,10.1903124 C26.8155728,9.81836048 26.6694579,9.61721762 26.3985901,9.61721762 C26.0419332,9.61721762 25.7888385,10.0235621 25.7888385,10.5982804 C25.7888385,10.981725 25.9243151,11.1755621 26.1916368,11.1755621 Z M23.7742483,8.92522296 C23.6757276,9.8294259 23.5010734,10.7458051 23.3649559,11.6516315 L23.3289826,11.8485874 L24.114243,11.8485874 C24.395749,10.0608171 24.4641495,9.7117223 24.9044166,9.75581308 C24.9744833,9.38877437 25.1047904,9.06924433 25.2033538,8.90740721 C24.8736555,8.84020294 24.6896876,9.02340187 24.4500935,9.36924967 C24.4691909,9.21877704 24.503498,9.0740721 24.4960214,8.92522296 L23.7742483,8.92522296 L23.7742483,8.92522296 Z M16.8876262,8.92522296 C16.7888491,9.8294259 16.6135113,10.7458051 16.4773511,11.6516315 L16.4413351,11.8485874 L17.2273645,11.8485874 C17.5089132,10.0608171 17.5765447,9.7117223 18.0167263,9.75581308 C18.087733,9.38877437 18.2188518,9.06924433 18.3158772,8.90740721 C17.9875033,8.84020294 17.8022964,9.02340187 17.5623178,9.36924967 C17.5815434,9.21877704 17.6156796,9.0740721 17.6091001,8.92522296 L16.8876262,8.92522296 L16.8876262,8.92522296 Z"></path> </g> </g> </symbol> <!-- paypal --> <symbol id="svg-icon__paypal" viewBox="0 0 34 22"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g transform="translate(1.000000, 1.000000)" fill="currentColor" fill-rule="nonzero"> <path d="M30.2933333,-0.64 L1.70666667,-0.64 C0.410624688,-0.64 -0.64,0.410642831 -0.64,1.70666667 L-0.64,18.3893333 C-0.64,19.6853876 0.410612427,20.736 1.70666667,20.736 L30.2933333,20.736 C31.5893572,20.736 32.64,19.6853753 32.64,18.3893333 L32.64,1.70666667 C32.64,0.410655093 31.5893449,-0.64 30.2933333,-0.64 Z M1.70666667,0.64 L30.2933333,0.64 C30.8824204,0.64 31.36,1.11757957 31.36,1.70666667 L31.36,18.3893333 C31.36,18.9784459 30.8824376,19.456 30.2933333,19.456 L1.70666667,19.456 C1.11753691,19.456 0.64,18.9784631 0.64,18.3893333 L0.64,1.70666667 C0.64,1.11756236 1.11755412,0.64 1.70666667,0.64 Z"></path> <g transform="translate(1.664000, 6.229333)"> <path d="M4.88017067,0.377728 C4.52181333,0.131370667 4.05418667,0.00789333333 3.47729067,0.00789333333 L1.24386133,0.00789333333 C1.067008,0.00789333333 0.969301333,0.0963413333 0.950741333,0.273066667 L0.0434346667,5.96834133 C0.0340053333,6.02427733 0.048,6.07543467 0.0852906667,6.12194133 C0.122368,6.16853333 0.169002667,6.19170133 0.224853333,6.19170133 L1.28571733,6.19170133 C1.47178667,6.19170133 1.57405867,6.10346667 1.592832,5.926528 L1.84405333,4.39112533 C1.85322667,4.31671467 1.885952,4.25621333 1.94180267,4.20962133 C1.99761067,4.16311467 2.06741333,4.13269333 2.151168,4.11874133 C2.23492267,4.10491733 2.31389867,4.09796267 2.38848,4.09796267 C2.462848,4.09796267 2.55121067,4.102656 2.65373867,4.11191467 C2.75601067,4.121216 2.82120533,4.12573867 2.849152,4.12573867 C3.649408,4.12573867 4.27754667,3.90024533 4.73361067,3.44878933 C5.18946133,2.997504 5.41764267,2.37175467 5.41764267,1.57128533 C5.41764267,1.02229333 5.23835733,0.624469333 4.88017067,0.377728 Z M3.72859733,2.087808 C3.68192,2.413568 3.561088,2.62749867 3.36567467,2.72989867 C3.17021867,2.83242667 2.89105067,2.88341333 2.52817067,2.88341333 L2.06749867,2.89736533 L2.30485333,1.40373333 C2.32337067,1.30146133 2.38382933,1.25026133 2.486272,1.25026133 L2.75157333,1.25026133 C3.12362667,1.25026133 3.393664,1.30389333 3.56117333,1.41073067 C3.72859733,1.517824 3.784448,1.74357333 3.72859733,2.087808 Z M28.4498347,0.00789333333 L27.4170027,0.00789333333 C27.3143467,0.00789333333 27.2539307,0.0590933333 27.2354987,0.161493333 L26.3281493,5.968384 L26.3141547,5.996288 C26.3141547,6.04305067 26.3327573,6.08704 26.3700907,6.12893867 C26.4070827,6.170752 26.4538453,6.19170133 26.5096107,6.19170133 L27.4309547,6.19170133 C27.607552,6.19170133 27.7053013,6.10346667 27.7241173,5.926528 L28.6314667,0.217173333 L28.6314667,0.203306667 C28.631424,0.0730453333 28.570752,0.00789333333 28.4498347,0.00789333333 Z M15.97056,2.25518933 C15.97056,2.208768 15.9518293,2.16448 15.91488,2.12266667 C15.8775467,2.08081067 15.8355627,2.059776 15.7892267,2.059776 L14.7143253,2.059776 C14.6117547,2.059776 14.5280427,2.10653867 14.4630613,2.19933867 L12.983424,4.37704533 L12.3692373,2.28317867 C12.3225173,2.1344 12.2202453,2.059776 12.0621653,2.059776 L11.0150827,2.059776 C10.968448,2.059776 10.926592,2.080768 10.8896,2.12266667 C10.8522667,2.16448 10.8337493,2.20881067 10.8337493,2.25518933 C10.8337493,2.27396267 10.9245013,2.548352 11.10592,3.078784 C11.2873387,3.609344 11.482752,4.18167467 11.69216,4.795904 C11.901568,5.41000533 12.0108373,5.73589333 12.0201813,5.77288533 C11.2570453,6.815232 10.8756053,7.37361067 10.8756053,7.447936 C10.8756053,7.569024 10.9360213,7.62944 11.0570667,7.62944 L12.1319253,7.62944 C12.23424,7.62944 12.317952,7.58301867 12.3831893,7.48992 L15.9427413,2.352896 C15.9613013,2.33442133 15.97056,2.30199467 15.97056,2.25518933 L15.97056,2.25518933 Z M25.9791787,2.059776 L24.9181867,2.059776 C24.78784,2.059776 24.7089493,2.213376 24.681088,2.52049067 C24.4388267,2.14839467 23.9970987,1.96206933 23.3548373,1.96206933 C22.6848427,1.96206933 22.114688,2.213376 21.644928,2.715904 C21.174912,3.218432 20.940032,3.80949333 20.940032,4.48874667 C20.940032,5.03790933 21.1005013,5.47524267 21.4214827,5.800832 C21.7425493,6.12676267 22.1729707,6.289408 22.712832,6.289408 C22.982656,6.289408 23.2571733,6.233472 23.5363413,6.12189867 C23.8155093,6.01024 24.0340053,5.86141867 24.192512,5.67522133 C24.192512,5.68456533 24.1829973,5.72637867 24.1645227,5.80078933 C24.145792,5.87537067 24.1366187,5.93130667 24.1366187,5.96829867 C24.1366187,6.117376 24.1969493,6.191616 24.3181227,6.191616 L25.2813653,6.191616 C25.4578773,6.191616 25.560448,6.10338133 25.5882667,5.92644267 L26.1606827,2.283136 C26.169856,2.22728533 26.1558613,2.17617067 26.118784,2.12957867 C26.081408,2.08311467 26.0350293,2.059776 25.9791787,2.059776 L25.9791787,2.059776 Z M24.1575253,4.80977067 C23.920256,5.042432 23.6340907,5.15869867 23.2991147,5.15869867 C23.02912,5.15869867 22.810624,5.08437333 22.6430293,4.93538133 C22.4754347,4.78673067 22.39168,4.58197333 22.39168,4.32119467 C22.39168,3.977088 22.508032,3.68605867 22.7406933,3.44878933 C22.9730987,3.21147733 23.2618667,3.09282133 23.6061867,3.09282133 C23.8665387,3.09282133 24.082944,3.16962133 24.2552747,3.32309333 C24.427264,3.47669333 24.513536,3.688448 24.513536,3.95835733 C24.5134933,4.29333333 24.3948373,4.57723733 24.1575253,4.80977067 L24.1575253,4.80977067 Z M10.121856,2.059776 L9.06094933,2.059776 C8.93047467,2.059776 8.85154133,2.213376 8.82359467,2.52049067 C8.57233067,2.14839467 8.13026133,1.96206933 7.497472,1.96206933 C6.82743467,1.96206933 6.25736533,2.213376 5.78747733,2.715904 C5.31746133,3.218432 5.08258133,3.80949333 5.08258133,4.48874667 C5.08258133,5.03790933 5.243136,5.47524267 5.56420267,5.800832 C5.88526933,6.12676267 6.31556267,6.289408 6.85538133,6.289408 C7.11581867,6.289408 7.385856,6.233472 7.66498133,6.12189867 C7.94414933,6.01024 8.16750933,5.86141867 8.33501867,5.67522133 C8.29768533,5.78688 8.279168,5.88462933 8.279168,5.96829867 C8.279168,6.117376 8.33962667,6.191616 8.46062933,6.191616 L9.42378667,6.191616 C9.60046933,6.191616 9.70295467,6.10338133 9.73090133,5.92644267 L10.3031893,2.283136 C10.3123627,2.22728533 10.2984533,2.17617067 10.2613333,2.12957867 C10.2240853,2.08311467 10.1775787,2.059776 10.121856,2.059776 L10.121856,2.059776 Z M8.30016,4.81668267 C8.06280533,5.04494933 7.77186133,5.15869867 7.42775467,5.15869867 C7.15771733,5.15869867 6.94135467,5.08437333 6.778624,4.93538133 C6.61568,4.78673067 6.53431467,4.58197333 6.53431467,4.32119467 C6.53431467,3.977088 6.65058133,3.68605867 6.883328,3.44878933 C7.11581867,3.21147733 7.40433067,3.09282133 7.74877867,3.09282133 C8.009216,3.09282133 8.22557867,3.16962133 8.39790933,3.32309333 C8.56994133,3.47669333 8.656128,3.688448 8.656128,3.95835733 C8.656128,4.30267733 8.537472,4.588928 8.30016,4.81668267 L8.30016,4.81668267 Z M20.737536,0.377728 C20.3792213,0.131370667 19.9117227,0.00789333333 19.3346987,0.00789333333 L17.1153067,0.00789333333 C16.9290667,0.00789333333 16.826624,0.0963413333 16.8081493,0.273066667 L15.9008853,5.96834133 C15.891456,6.02427733 15.9053653,6.07543467 15.9426987,6.12194133 C15.9796907,6.16853333 16.0264533,6.19170133 16.0822613,6.19170133 L17.2268373,6.19170133 C17.338496,6.19170133 17.4129067,6.13128533 17.4501547,6.01028267 L17.701504,4.39112533 C17.7106773,4.31671467 17.7433173,4.25621333 17.799168,4.20962133 C17.8550187,4.16311467 17.924736,4.13269333 18.008576,4.11874133 C18.0923307,4.10491733 18.171264,4.09796267 18.2459307,4.09796267 C18.320256,4.09796267 18.4086613,4.102656 18.5110187,4.11191467 C18.6134187,4.121216 18.6786987,4.12573867 18.706432,4.12573867 C19.5068587,4.12573867 20.134912,3.90024533 20.5909333,3.44878933 C21.046912,2.997504 21.27488,2.37175467 21.27488,1.57128533 C21.27488,1.02229333 21.09568,0.624469333 20.737536,0.377728 Z M19.3067947,2.674048 C19.1020373,2.81361067 18.79488,2.88337067 18.385536,2.88337067 L17.9387733,2.89732267 L18.1761707,1.40369067 C18.1946027,1.30141867 18.2550187,1.25021867 18.3575893,1.25021867 L18.608768,1.25021867 C18.81344,1.25021867 18.976256,1.25952 19.0974293,1.27808 C19.2182613,1.29681067 19.3346987,1.35483733 19.4463573,1.452544 C19.5581013,1.55025067 19.6138667,1.69224533 19.6138667,1.87831467 C19.6138667,2.26922667 19.5113813,2.53435733 19.3067947,2.674048 L19.3067947,2.674048 Z"></path> </g> </g> </g> </symbol> <!-- postepay --> <symbol id="svg-icon__postepay" viewBox="0 0 32 21"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g transform="translate(0.000000, -0.000000)" fill="currentColor" fill-rule="nonzero"> <path d="M29.7879027,0 L2.19152881,0 C0.984489697,0 0,0.960760029 0,2.15350576 L0,18.3124814 C0,19.5052912 0.984471793,20.4660691 2.19152881,20.4660691 L29.7879027,20.4660691 C30.9949799,20.4660691 31.9794725,19.5052705 31.9794725,18.3124814 L31.9794725,2.15350576 C31.9794725,0.960751312 30.994974,0 29.7879027,0 Z M2.19152881,1.22919334 L29.7879027,1.22919334 C30.3227358,1.22919334 30.7502791,1.64642392 30.7502791,2.15350576 L30.7502791,18.3124814 C30.7502791,18.8196135 30.3227269,19.2368758 29.7879027,19.2368758 L2.19152881,19.2368758 C1.65672471,19.2368758 1.22919334,18.8196341 1.22919334,18.3124814 L1.22919334,2.15350576 C1.22919334,1.64642757 1.65673277,1.22919334 2.19152881,1.22919334 Z"></path> <g transform="translate(3.032010, 7.580026)"> <path d="M2.10699107,0.902702565 C2.25054963,0.843426316 2.41672838,0.819462228 2.57169261,0.819462228 C2.88092017,0.819462228 3.14293206,0.914367624 3.33345141,1.10386143 C3.53614106,1.29341863 3.64363475,1.56596258 3.67842524,1.89759259 C3.70276584,2.13482439 3.67842524,2.3952595 3.60712385,2.66761326 C3.54754673,2.93996702 3.45260565,3.17669164 3.32128111,3.37854787 C3.17867833,3.62712773 2.98841386,3.81693852 2.75004166,3.94690249 C2.55952231,4.0652648 2.34542699,4.12460445 2.10699107,4.14831495 L2.10699107,3.67480232 C2.19090879,3.65058464 2.27367957,3.61552607 2.34542699,3.57989692 C2.50039122,3.48499153 2.63126973,3.34291872 2.73831739,3.15361511 C2.84536505,2.96386771 2.92883674,2.76270885 2.98841386,2.53733231 C3.04754495,2.31220935 3.05971525,2.09894165 3.04754495,1.8975292 C3.0237141,1.68451508 2.95266759,1.51847819 2.83344963,1.38845082 C2.70257112,1.25797968 2.53588262,1.19889362 2.34542699,1.19889362 C2.2619553,1.19889362 2.17873849,1.21049528 2.10699107,1.23445937 C2.10699107,1.23458616 2.10699107,0.902702565 2.10699107,0.902702565 Z M0,5.28553137 L0.82133592,1.69618014 C0.845676519,1.55410734 0.86880646,1.42407997 0.892637309,1.28175357 C0.904807608,1.13942718 0.916977908,1.00895603 0.928383581,0.867073418 L1.50013278,0.867073418 L1.45221621,1.35263149 C1.63101129,1.17518312 1.80987009,1.03260314 1.98821914,0.950060167 C2.02396541,0.925842491 2.07169083,0.914494418 2.10692735,0.902639168 L2.10692735,1.23452277 C2.02396541,1.25797968 1.9407486,1.30546407 1.85683088,1.35263149 C1.70282243,1.45913854 1.57143417,1.61357378 1.4758559,1.80287739 C1.36880824,1.99243459 1.28533655,2.21705037 1.22620547,2.46588382 C1.16662834,2.72682611 1.15445805,2.92773139 1.16662834,3.09402187 C1.17828889,3.28332549 1.25010003,3.4252081 1.36880824,3.5437606 C1.4880262,3.65026766 1.64299043,3.7096073 1.83300003,3.7096073 C1.92838714,3.7096073 2.02396541,3.69775205 2.10673619,3.67448533 L2.10673619,4.14799796 C2.07143595,4.14799796 2.03543481,4.14799796 1.99968853,4.14799796 C1.77393266,4.14799796 1.59507386,4.10076715 1.42844908,4.0177804 C1.27393088,3.93473026 1.13088207,3.80425911 1.01166411,3.63847581 L0.630689134,5.28502419 L6.37188456e-05,5.28502419 L6.37188456e-05,5.28553137 L0,5.28553137 L0,5.28553137 Z"></path> <path d="M17.3028936,1.37135395 C17.2315738,1.37135395 17.1719813,1.38347785 17.1006614,1.39509393 L17.1006614,0.932672059 C17.1359708,0.920548163 17.1598078,0.908932075 17.1841547,0.897252511 C17.3503764,0.813908664 17.5413912,0.778489117 17.7436233,0.778489117 C18.0534407,0.778489117 18.3036019,0.873258624 18.481997,1.05137198 C18.6608383,1.22948533 18.7679137,1.49030777 18.7918144,1.83396625 C18.851407,2.47456496 18.7322219,3.02014025 18.4224045,3.45901257 C18.1247606,3.90981836 17.7200413,4.13522125 17.219719,4.13522125 C17.1844096,4.13522125 17.1362257,4.12335126 17.1009801,4.12335126 L17.1009801,3.50630211 C17.1722999,3.49468602 17.2436198,3.45882214 17.3032123,3.4115326 C17.4102876,3.32837918 17.4937809,3.20986969 17.5770192,3.04362633 C17.6605125,2.86570341 17.7320235,2.66410397 17.7797613,2.4507615 C17.8272441,2.2372286 17.8393538,2.05936915 17.8272441,1.9051862 C17.8155805,1.72726328 17.7559243,1.59662989 17.6726859,1.51379385 C17.5767005,1.41908782 17.4574518,1.37135395 17.3028936,1.37135395 Z M17.1006614,1.39509393 C16.9096467,1.45444389 16.7429151,1.60888074 16.6120027,1.83402973 C16.4214341,2.15420213 16.3496681,2.51049231 16.3861885,2.90163076 C16.4095793,3.10329367 16.4575083,3.25766704 16.5645836,3.36386221 C16.6594855,3.47100951 16.7909078,3.53035947 16.9571295,3.53035947 C17.0050584,3.53035947 17.0525413,3.51823558 17.1007252,3.50636559 L17.1007252,4.12316083 C16.9218839,4.11154474 16.7668796,4.06381087 16.6359035,3.99278135 C16.4691719,3.90962793 16.3382595,3.76737846 16.2433576,3.58970943 L15.8617743,5.28553137 L14.8732394,5.28553137 L15.6356413,1.84634405 C15.7305432,1.40715435 15.7901995,1.07511196 15.8140365,0.861642535 L16.7074145,0.861642535 L16.6835775,1.25284446 C16.8262171,1.12221107 16.9568745,1.01557157 17.1004702,0.932418155 L17.1004702,1.39509393 L17.1006614,1.39509393 L17.1006614,1.39509393 Z"></path> <path d="M20.9809125,2.54380877 C20.9571099,2.53199082 20.9334981,2.53199082 20.9096954,2.53199082 C20.8739914,2.53199082 20.8501888,2.53199082 20.8027743,2.53199082 C20.6479933,2.53199082 20.5055591,2.54380877 20.3864821,2.57907304 L20.3864821,2.05952556 C20.5172059,2.04770761 20.6719869,2.04770761 20.826577,2.04770761 C20.8977941,2.04770761 20.9573008,2.04770761 20.9930685,2.04770761 C21.0287725,2.04770761 21.0642856,2.04770761 21.0999896,2.04770761 C21.1237922,1.92971768 21.147404,1.84718162 21.147404,1.77602112 C21.1595599,1.71693136 21.1595599,1.67029153 21.1595599,1.62276694 C21.147404,1.52816013 21.1121455,1.45744201 21.0404829,1.410423 C20.9809762,1.36334078 20.8861473,1.3392625 20.7670703,1.3392625 C20.6241906,1.3392625 20.5172695,1.37471635 20.4460524,1.43386931 C20.4217406,1.45750521 20.398638,1.46913357 20.3865457,1.5050298 L20.3865457,0.843350921 C20.5056228,0.819462228 20.6363465,0.819462228 20.7670703,0.819462228 C21.1833626,0.819462228 21.4926701,0.878551985 21.7186682,1.0204938 C21.9325104,1.16237241 22.0515874,1.36315119 22.0753901,1.63458489 C22.087546,1.71712095 22.087546,1.8000994 22.0753901,1.89445342 C22.0632342,1.97724228 22.0396861,2.08341425 22.0153743,2.1900286 L21.766019,3.27614258 C21.730315,3.40620324 21.7186046,3.53601111 21.6943564,3.67788973 C21.6827096,3.81932596 21.6827096,3.94913383 21.6827096,4.09101245 L20.7789717,4.09101245 C20.7789717,4.02029433 20.7789717,3.94913383 20.7789717,3.86659776 C20.7789717,3.7840617 20.7906184,3.71334358 20.7906184,3.63036513 C20.6720506,3.79543726 20.5291709,3.92568752 20.3864821,3.99665843 L20.3864821,3.50030447 C20.4817564,3.45303266 20.5767762,3.38231455 20.6719869,3.27588979 C20.8263861,3.08718175 20.9335618,2.83887837 20.9809125,2.54380877 Z M20.3865457,2.57926263 C20.255822,2.61471648 20.1489008,2.66205149 20.0536265,2.7327064 C19.8511765,2.86251428 19.7685672,3.02802879 19.7916698,3.21698962 C19.7916698,3.32316159 19.8273738,3.40595045 19.8991,3.46504021 C19.9586067,3.52412996 20.0415342,3.54782906 20.1489008,3.54782906 C20.2322739,3.54782906 20.3153923,3.53575832 20.3865457,3.50055726 L20.3865457,3.99665843 L20.3622339,4.00847638 C20.2084075,4.09126524 20.041216,4.13828425 19.8395297,4.13828425 C19.5540249,4.13828425 19.3280268,4.05549539 19.1498886,3.90230441 C18.9713048,3.74886063 18.876476,3.54808185 18.8526733,3.28796053 C18.8169693,2.88665576 18.9712412,2.57951542 19.3041604,2.36691869 C19.565608,2.20159376 19.9228391,2.09542179 20.3864821,2.05971515 L20.3865457,2.57926263 L20.3865457,2.57926263 Z M20.3865457,0.843287724 L20.3865457,1.50496661 C20.3391313,1.56386677 20.3153286,1.64640284 20.2912714,1.74094645 L19.3522749,1.74094645 C19.3760776,1.44537127 19.5187027,1.22139897 19.7564113,1.05613724 C19.9342949,0.949712484 20.1367449,0.878551985 20.3865457,0.843287724 Z"></path> <polygon points="22.2483995 5.24455826 23.0320809 4.061388 22.4619748 0.819462228 23.4361576 0.819462228 23.7092289 3.04410344 24.9681152 0.819462228 25.8950064 0.819462228 23.8754489 4.19143732 23.2934563 5.24455826"></polygon> <path d="M5.5108799,1.16932049 C5.42773718,1.16932049 5.3565264,1.1809049 5.27389142,1.20439023 L5.27389142,0.790833159 C5.36839486,0.778489117 5.47527451,0.778489117 5.58190028,0.778489117 C5.96137379,0.778489117 6.2582758,0.873000169 6.48364968,1.05062777 C6.72063816,1.23990309 6.83938627,1.50020413 6.87454738,1.83108777 C6.89879205,2.09164202 6.87454738,2.3756183 6.79140467,2.67098908 C6.72038429,2.96680297 6.61375851,3.2269141 6.47127348,3.43986466 C6.30524191,3.68832808 6.11553689,3.86576578 5.87848495,3.97211445 C5.71200911,4.05504109 5.51062603,4.10264478 5.27363755,4.1258136 L5.27363755,3.71250974 C5.36814099,3.68858129 5.46340604,3.65332164 5.53436296,3.60616107 C5.67684799,3.52323442 5.7955961,3.3929573 5.9017776,3.21583612 C6.02052571,3.01446997 6.1041127,2.78974509 6.16301075,2.54147158 C6.22235307,2.28117055 6.24615346,2.0684732 6.2344754,1.87894467 C6.21023073,1.63048125 6.13946422,1.45304356 6.02071611,1.34669488 C5.9017776,1.22857189 5.73625378,1.16932049 5.5108799,1.16932049 Z M5.27389142,1.20464344 C5.19030443,1.2288251 5.09580099,1.26383154 5.01265828,1.31124533 C4.87017324,1.41784721 4.74000094,1.55970874 4.63318476,1.74898406 C4.52655899,1.92642176 4.442972,2.1391191 4.38407395,2.39916693 C4.32473163,2.65972118 4.3126093,2.88450936 4.32473163,3.07378468 C4.33634623,3.28648202 4.41923507,3.44043439 4.53798318,3.55887389 C4.66885362,3.6773134 4.83482172,3.73631159 5.04762899,3.73631159 C5.13077171,3.73631159 5.20198249,3.72422076 5.27344715,3.71263635 L5.27344715,4.12644663 C5.18986016,4.12644663 5.09535672,4.13828425 5.00034554,4.13828425 C4.62087203,4.13828425 4.3126093,4.04402641 4.08748929,3.84266026 C3.84999307,3.65338494 3.71963037,3.3814995 3.69614731,3.03827181 C3.67241038,2.75473866 3.69614731,2.47076238 3.79065075,2.16330077 C3.87423774,1.85558595 3.99254157,1.59553812 4.15850967,1.37049673 C4.31241889,1.169637 4.50212392,1.02752226 4.73962013,0.920920375 C4.89397364,0.862175394 5.08374213,0.814571702 5.27351062,0.791339581 L5.27351062,1.20464344 L5.27389142,1.20464344 L5.27389142,1.20464344 Z"></path> <path d="M7.52882934,3.02683687 C7.50502542,3.08603724 7.49261429,3.13320759 7.49261429,3.18037794 C7.48096692,3.22754829 7.48096692,3.26332177 7.49261429,3.29884199 C7.50521636,3.42914613 7.55263326,3.52367677 7.64740339,3.58287714 C7.74217353,3.65372764 7.87341331,3.67740779 8.06371734,3.67740779 C8.31353117,3.67740779 8.50383521,3.62979423 8.64646777,3.53501032 C8.78935491,3.42889286 8.84892835,3.29858873 8.83721733,3.14504766 C8.83721733,3.05026376 8.78935491,2.96738324 8.70553203,2.89627948 C8.62266385,2.82517572 8.45616373,2.73064507 8.19444794,2.61243428 C7.86151135,2.45845 7.62385406,2.31674901 7.49261429,2.18669814 C7.35017267,2.06823408 7.27920645,1.91450307 7.26711355,1.7486154 C7.24330964,1.46458025 7.35049091,1.23993543 7.57650082,1.05068419 C7.81466728,0.873019761 8.13570191,0.778489117 8.53985932,0.778489117 C8.90875637,0.778489117 9.18218318,0.837689487 9.36026702,0.944313469 C9.55057106,1.05068419 9.64578673,1.2044152 9.66965429,1.42924998 C9.66965429,1.46458025 9.66965429,1.50054369 9.66965429,1.54771404 C9.66965429,1.58279105 9.66965429,1.64199142 9.65749774,1.72518851 L9.07474732,1.72518851 C9.07474732,1.68966829 9.07474732,1.65408475 9.07474732,1.63040461 C9.07474732,1.60697772 9.07474732,1.57139418 9.07474732,1.54771404 C9.06309995,1.42924998 9.01568306,1.33446607 8.92040374,1.27570891 C8.83753557,1.21650854 8.7060412,1.180925 8.52795736,1.180925 C8.32600595,1.180925 8.17121685,1.22853856 8.06429016,1.31122913 C7.94571611,1.3939197 7.89779004,1.51238376 7.90950106,1.6542747 C7.92165761,1.73721854 7.95736348,1.81990911 8.04074084,1.87885621 C8.11196164,1.94995997 8.29055466,2.04449062 8.56398147,2.17454149 C8.9445259,2.35220591 9.20630533,2.50600024 9.31323201,2.6244643 C9.4201587,2.74223188 9.4913795,2.89621616 9.50353605,3.07362732 C9.52733997,3.36950254 9.40876591,3.62966759 9.12299162,3.83101217 C8.84956482,4.03191353 8.48066776,4.13828425 8.028457,4.13828425 C7.67171648,4.13828425 7.39828968,4.06718049 7.18418173,3.9489697 C6.98172114,3.81866557 6.87479446,3.64119109 6.85124513,3.4047695 C6.83959776,3.35715594 6.83959776,3.29839878 6.85124513,3.22710508 C6.86340168,3.1679047 6.87504905,3.09705421 6.88695101,3.02620371 L7.52902028,3.02620371 L7.52902028,3.02683687 L7.52882934,3.02683687 L7.52882934,3.02683687 Z"></path> <path d="M11.41418,4.09114541 C11.2950276,4.10323067 11.1875794,4.11480974 11.0915796,4.12645208 C10.9963472,4.12645208 10.9003474,4.13828425 10.8168192,4.13828425 C10.5780028,4.13828425 10.3989864,4.10323067 10.2910265,4.02040551 C10.1718741,3.94915942 10.1120101,3.81894232 10.0997943,3.64158637 C10.0880901,3.58286846 10.0997943,3.47612587 10.1120101,3.34609859 C10.1237143,3.20430242 10.1596583,3.06269607 10.1835783,2.90856154 L10.5542746,1.30077898 L9.95646607,1.30077898 L10.0639143,0.886906263 L10.649507,0.886906263 L10.8168192,0.153881432 L11.45006,0 L11.2593395,0.886906263 L11.9641485,0.886906263 L11.8689162,1.30077898 L11.1636594,1.30077898 L10.805179,2.9798709 C10.7692989,3.109392 10.7453789,3.20430242 10.7453789,3.26327343 C10.7331631,3.3343297 10.7214589,3.38165836 10.7331631,3.41671194 C10.7331631,3.51143255 10.7690431,3.57059338 10.8289071,3.60634297 C10.8887071,3.65348181 10.9962193,3.67739924 11.1398034,3.67739924 C11.1874515,3.67739924 11.2594674,3.66556707 11.3310356,3.65348181 C11.3903879,3.65348181 11.4624038,3.62956439 11.5222678,3.61798531 L11.41418,4.09114541 Z"></path> <path d="M13.4666623,2.11060845 L14.2746787,2.11060845 C14.2868279,2.0043569 14.2989771,1.92195517 14.2989771,1.86296158 C14.3111263,1.80415728 14.3111263,1.75696241 14.2989771,1.70976754 C14.2868279,1.53272369 14.2156502,1.40306399 14.096639,1.30911592 C13.9659876,1.21466308 13.7995882,1.15592188 13.5858643,1.15592188 C13.55018,1.15592188 13.5025374,1.16772059 13.4668531,1.16772059 L13.4668531,0.778867685 C13.5146866,0.778867685 13.55018,0.778867685 13.5975046,0.778867685 C14.0135666,0.778867685 14.3344069,0.861269421 14.5485761,1.01427418 C14.7504052,1.16772059 14.8808659,1.41536747 14.9051007,1.75721479 C14.9172498,1.87501268 14.9172498,2.00460928 14.9051007,2.13471065 C14.9051007,2.26430725 14.8808023,2.40526091 14.8456269,2.54716099 L13.4668531,2.54716099 L13.4668531,2.11060845 L13.4666623,2.11060845 Z M13.4666623,4.11474991 L13.4666623,3.63125489 C13.53784,3.60790983 13.609463,3.57245058 13.6684915,3.53705443 C13.8112921,3.44285398 13.9181541,3.30145866 13.9776915,3.12485647 L14.6791003,3.12485647 C14.5957734,3.44285398 14.4177974,3.69050085 14.1440272,3.86735542 C13.9536475,3.99688893 13.7277744,4.07954304 13.4666623,4.11474991 Z M12.634602,2.11060845 L13.4666623,2.11060845 L13.4666623,2.54690861 L12.52774,2.54690861 C12.4920558,2.64110906 12.4803519,2.72376318 12.4682663,2.81815292 C12.456626,2.90055465 12.456626,2.98314567 12.456626,3.05374869 C12.4804155,3.25445307 12.5513387,3.40739473 12.6703499,3.5133939 C12.8010013,3.61939307 12.9674007,3.67863904 13.1932738,3.67863904 C13.2879866,3.67863904 13.3829538,3.66684032 13.4665351,3.63119179 L13.4665351,4.11468682 C13.3596731,4.12648553 13.240662,4.13828425 13.1216508,4.13828425 C12.7413368,4.13828425 12.4442859,4.04433618 12.2184128,3.86722923 C12.0046889,3.69037466 11.8740374,3.43118145 11.8501843,3.10088047 C11.8258859,2.85323359 11.8501843,2.57063223 11.9335112,2.25194068 C12.0046889,1.94548951 12.1237001,1.67468686 12.2543515,1.45019576 C12.3971522,1.23863909 12.5870866,1.06159523 12.8127053,0.955343685 C13.0033394,0.849092135 13.2170633,0.80233893 13.4667259,0.778489117 L13.4667259,1.16734203 C13.2765371,1.19093946 13.1102013,1.26154248 12.9795499,1.4029378 C12.8126417,1.55651041 12.6940758,1.79235856 12.634602,2.11060845 Z"></path> </g> </g> </g> </symbol> <!-- visa --> <symbol id="svg-icon__visa" viewBox="0 0 34 22"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g transform="translate(1.000000, 1.000000)" fill="currentColor" fill-rule="nonzero"> <path d="M30.3386844,-0.639147803 L1.63992543,-0.639147803 C0.384669046,-0.639147803 -0.639147803,0.359991455 -0.639147803,1.60038349 L-0.639147803,18.4048575 C-0.639147803,19.6453162 0.384650426,20.644474 1.63992543,20.644474 L30.3386844,20.644474 C31.5939804,20.644474 32.6178003,19.6452947 32.6178003,18.4048575 L32.6178003,1.60038349 C32.6178003,0.35998239 31.5939743,-0.639147803 30.3386844,-0.639147803 Z M1.63992543,0.639147803 L30.3386844,0.639147803 C30.8948823,0.639147803 31.3395047,1.07304538 31.3395047,1.60038349 L31.3395047,18.4048575 C31.3395047,18.9322479 30.8948731,19.3661784 30.3386844,19.3661784 L1.63992543,19.3661784 C1.08375765,19.3661784 0.639147803,18.9322693 0.639147803,18.4048575 L0.639147803,1.60038349 C0.639147803,1.07304917 1.08376604,0.639147803 1.63992543,0.639147803 Z"></path> <path d="M12.0100133,14.0058589 L13.377747,6.17331558 L15.5655073,6.17331558 L14.196751,14.0058589 L12.0100133,14.0058589 Z M22.1000266,6.3420506 C21.6665992,6.1833715 20.9875686,6.01305992 20.1393768,6.01305992 C17.9777364,6.01305992 16.4550732,7.07536618 16.4421198,8.59785885 C16.4298908,9.72335553 17.5291398,10.3512117 18.3588815,10.7258375 C19.2104394,11.1097523 19.4966924,11.3545459 19.4926445,11.6973848 C19.487233,12.2224234 18.8125912,12.4623169 18.1838828,12.4623169 C17.3082929,12.4623169 16.8430786,12.3436059 16.1246764,12.0511318 L15.8427696,11.9266684 L15.5356804,13.6800213 C16.0467004,13.8986951 16.9915739,14.0881385 17.9725806,14.0979387 C20.2721065,14.0979387 21.7649427,13.0477763 21.7819441,11.4219973 C21.7901678,10.5309401 21.2073928,9.85284687 19.9452463,9.2938482 C19.1806125,8.93157923 18.7122876,8.6897257 18.7173156,8.32285486 C18.7173156,7.99731558 19.1136298,7.64910786 19.9700027,7.64910786 C20.6854647,7.63828495 21.2036005,7.79052996 21.6073715,7.94920905 L21.8034194,8.03962716 L22.1000266,6.34192277 M27.7295979,6.17305992 L26.0392224,6.17305992 C25.5155473,6.17305992 25.1236644,6.31256458 24.8936138,6.82264714 L21.6448256,14.0007031 L23.9419228,14.0007031 C23.9419228,14.0007031 24.3175286,13.0354621 24.4025353,12.8236059 C24.6535925,12.8236059 26.8851558,12.826972 27.2042184,12.826972 C27.2696245,13.1012091 27.4703169,14.0007031 27.4703169,14.0007031 L29.5002929,14.0007031 L27.7295979,6.17284687 L27.7295979,6.17305992 Z M25.0476059,11.2308495 C25.2285273,10.7795686 25.9191904,9.04134221 25.9191904,9.04134221 C25.9062796,9.06226365 26.0987909,8.58784554 26.2093635,8.29383755 L26.3571345,8.96916112 C26.3571345,8.96916112 26.776032,10.8387963 26.8635952,11.2308495 L25.0476059,11.2308495 L25.0476059,11.2308495 Z M10.1533316,6.17305992 L8.01158988,11.5142051 L7.7833715,10.4286764 C7.38467111,9.17739547 6.14242344,7.82172037 4.75368309,7.14303063 L6.71198935,13.9929907 L9.02655659,13.9903915 L12.4705832,6.17276165 L10.1533316,6.17276165"></path> <path d="M6.01267643,6.17331558 L2.48513449,6.17331558 L2.45722503,6.33629827 C5.20155526,6.9846498 7.01733156,8.55132889 7.77152597,10.4339174 L7.00446338,6.83453529 C6.87203196,6.33864181 6.48798935,6.19065779 6.01284687,6.17331558" id="Path"></path> </g> </g> </symbol> <!-- facebook --> <symbol id="svg-icon__facebook" viewBox="0 0 16 32" fill="currentColor"> <path d="M10,11 L10,7 C10,5.896 10.896,5 12,5 L14,5 L14,0 L10,0 C6.686,0 4,2.686 4,6 L4,11 L0,11 L0,16 L4,16 L4,32 L10,32 L10,16 L14,16 L16,11 L10,11 Z"></path> </symbol> <!-- twitter --> <symbol id="svg-icon__twitter" viewBox="1.25 2.25 21.57 19.5" fill="currentColor"> <path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/> </symbol> <!-- Linkedin --> <symbol id="svg-icon__linkedin" viewBox="0 0 24 24" fill="currentColor"> <path d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"/> </symbol> <!-- youtube --> <symbol id="svg-icon__youtube" viewBox="0 0 32 23" fill="currentColor"> <path d="M31.340625,3.5517578 C30.971875,2.1808594 29.8910156,1.1001953 28.5203125,0.7310547 C26.016211,0.04589845 15.9996094,0.04589845 15.9996094,0.04589845 C15.9996094,0.04589845 5.98339845,0.04589845 3.4792969,0.7050781 C2.13496095,1.0738281 1.0277344,2.1810547 0.6589844,3.5517578 C-8.8817842e-17,6.05566405 -8.8817842e-17,11.2484375 -8.8817842e-17,11.2484375 C-8.8817842e-17,11.2484375 -8.8817842e-17,16.4673828 0.6589844,18.9451172 C1.028125,20.3158203 2.10859375,21.3964844 3.4794922,21.765625 C6.0097656,22.4509766 16,22.4509766 16,22.4509766 C16,22.4509766 26.016211,22.4509766 28.5203125,21.7917969 C29.891211,21.4228516 30.971875,20.3421875 31.3410156,18.9714844 C31.9999392,16.4673828 31.9999392,11.2748047 31.9999392,11.2748047 C31.9999392,11.2748047 32.0261719,6.05566405 31.340625,3.5517578 L31.340625,3.5517578 Z M12.8105469,16.0457031 L12.8105469,6.4511719 L21.1398438,11.2484375 L12.8105469,16.0457031 Z"></path> </symbol> <!-- instagram --> <symbol id="svg-icon__instagram" viewBox="0 0 32 32" fill="currentColor"> <path d="M31.872076,9.38791423 C31.797271,7.69127679 31.5229045,6.52485377 31.1298733,5.51413258 C30.7244152,4.44127682 30.1006335,3.48075047 29.2833821,2.68226121 C28.4848928,1.87134503 27.5180312,1.2412281 26.4576024,0.842105263 C25.4410331,0.44907409 24.2807018,0.174707587 22.5840643,0.0999025029 C20.8747564,0.0187621676 20.332115,0 15.9968324,0 C11.6615497,0 11.1189084,0.0187621676 9.41593569,0.0935672515 C7.71929825,0.168372335 6.55287523,0.442982425 5.54239763,0.835770012 C4.46929828,1.2412281 3.50877193,1.86500978 2.71028267,2.68226121 C1.89936649,3.48075047 1.26949315,4.44761207 0.870126721,5.50804092 C0.477095548,6.52485377 0.202729045,7.68494154 0.127923961,9.38157898 C0.0467836257,11.0908869 0.0280214581,11.6335283 0.0280214581,15.9688109 C0.0280214581,20.3040936 0.0467836257,20.8467349 0.12158871,22.5497076 C0.196393793,24.246345 0.471003883,25.4127681 0.864035057,26.4234892 C1.26949315,27.496345 1.89936649,28.4568714 2.71028267,29.2553606 C3.50877193,30.0662768 4.47563353,30.6963937 5.53606238,31.0955166 C6.55287523,31.4885477 7.71296299,31.7629142 9.40984402,31.8377193 C11.1125731,31.912768 11.6554581,31.9312866 15.9907407,31.9312866 C20.3260234,31.9312866 20.8686647,31.912768 22.5716374,31.8377193 C24.2682748,31.7629142 25.4346979,31.4885477 26.4451755,31.0955166 C28.5911306,30.2658382 30.287768,28.5692008 31.1174464,26.4234892 C31.5102339,25.4066764 31.784844,24.246345 31.8596491,22.5497076 C31.9344542,20.8467349 31.9532164,20.3040936 31.9532164,15.9688109 C31.9532164,11.6335283 31.9468811,11.0908869 31.872076,9.38791423 Z M28.9965887,22.4249513 C28.9278752,23.9844055 28.6659357,24.8265107 28.4476121,25.3879142 C27.9110624,26.7789961 26.8070175,27.8830409 25.4159357,28.4195906 C24.8545322,28.6379142 24.0063353,28.8998538 22.4529727,28.9683236 C20.7687622,29.0433723 20.2636452,29.0618909 16.0031676,29.0618909 C11.7426901,29.0618909 11.2312378,29.0433723 9.55311894,28.9683236 C7.99366475,28.8998538 7.15155949,28.6379142 6.59015598,28.4195906 C5.89790447,28.1637427 5.26778754,27.7582846 4.75633528,27.2280702 C4.22612086,26.7102827 3.82066277,26.086501 3.56481485,25.3942495 C3.34649126,24.832846 3.08455167,23.9844055 3.01608184,22.4312865 C2.94103317,20.747076 2.92251459,20.2417154 2.92251459,15.9812378 C2.92251459,11.7207603 2.94103317,11.209308 3.01608184,9.53143273 C3.08455167,7.97197854 3.34649126,7.12987328 3.56481485,6.56846977 C3.82066277,5.87597467 4.22612086,5.24610133 4.76267053,4.73440549 C5.28021446,4.20419106 5.90399613,3.79873297 6.59649123,3.54312864 C7.15789474,3.32480505 8.00633525,3.06286547 9.55945419,2.99415205 C11.2436647,2.91934696 11.7490253,2.9005848 16.0092593,2.9005848 C20.2760721,2.9005848 20.7811891,2.91934696 22.459308,2.99415205 C24.0187622,3.06286547 24.8608674,3.32480505 25.4222709,3.54312864 C26.1145224,3.79873297 26.7446394,4.20419106 27.2560916,4.73440549 C27.7863061,5.252193 28.1917641,5.87597467 28.4476121,6.56846977 C28.6659357,7.12987328 28.9278752,7.97807021 28.9965887,9.53143273 C29.0713937,11.2156433 29.0901559,11.7207603 29.0901559,15.9812378 C29.0901559,20.2417154 29.0713937,20.7407407 28.9965887,22.4249513 Z"></path> <path d="M15.9968324,7.76608187 C11.4683236,7.76608187 7.79410333,11.4400585 7.79410333,15.9688109 C7.79410333,20.4975633 11.4683236,24.17154 15.9968324,24.17154 C20.5255848,24.17154 24.1995614,20.4975633 24.1995614,15.9688109 C24.1995614,11.4400585 20.5255848,7.76608187 15.9968324,7.76608187 Z M15.9968324,21.2897173 C13.0589668,21.2897173 10.675926,18.90692 10.675926,15.9688109 C10.675926,13.0307018 13.0589668,10.6479045 15.9968324,10.6479045 C18.9349415,10.6479045 21.3177388,13.0307018 21.3177388,15.9688109 C21.3177388,18.90692 18.9349415,21.2897173 15.9968324,21.2897173 L15.9968324,21.2897173 Z"></path> <path d="M26.4390838,7.44176412 C26.4390838,8.49926899 25.5816277,9.35672515 24.5238792,9.35672515 C23.4663742,9.35672515 22.6089181,8.49926899 22.6089181,7.44176412 C22.6089181,6.38401559 23.4663742,5.52680309 24.5238792,5.52680309 C25.5816277,5.52680309 26.4390838,6.38401559 26.4390838,7.44176412 L26.4390838,7.44176412 Z"></path> </symbol> <!-- instagram-colored --> <symbol id="svg-icon__instagram-colored" viewBox="0 0 512 512" fill="currentColor"> <path fill="url(#instagram_colored_1)" d="M96.1,23.2c-16.2,6.3-29.9,14.7-43.6,28.4C38.8,65.2,30.4,79,24.1,95.1c-6.1,15.6-10.2,33.5-11.4,59.7 c-1.2,26.2-1.5,34.6-1.5,101.4s0.3,75.2,1.5,101.4c1.2,26.2,5.4,44.1,11.4,59.7c6.3,16.2,14.7,29.9,28.4,43.6 c13.7,13.7,27.4,22.1,43.6,28.4c15.6,6.1,33.5,10.2,59.7,11.4c26.2,1.2,34.6,1.5,101.4,1.5c66.8,0,75.2-0.3,101.4-1.5 c26.2-1.2,44.1-5.4,59.7-11.4c16.2-6.3,29.9-14.7,43.6-28.4c13.7-13.7,22.1-27.4,28.4-43.6c6.1-15.6,10.2-33.5,11.4-59.7 c1.2-26.2,1.5-34.6,1.5-101.4s-0.3-75.2-1.5-101.4c-1.2-26.2-5.4-44.1-11.4-59.7C484,79,475.6,65.2,462,51.6 c-13.7-13.7-27.4-22.1-43.6-28.4c-15.6-6.1-33.5-10.2-59.7-11.4c-26.2-1.2-34.6-1.5-101.4-1.5s-75.2,0.3-101.4,1.5 C129.6,12.9,111.7,17.1,96.1,23.2z M356.6,56c24,1.1,37,5.1,45.7,8.5c11.5,4.5,19.7,9.8,28.3,18.4c8.6,8.6,13.9,16.8,18.4,28.3 c3.4,8.7,7.4,21.7,8.5,45.7c1.2,25.9,1.4,33.7,1.4,99.4s-0.3,73.5-1.4,99.4c-1.1,24-5.1,37-8.5,45.7c-4.5,11.5-9.8,19.7-18.4,28.3 c-8.6,8.6-16.8,13.9-28.3,18.4c-8.7,3.4-21.7,7.4-45.7,8.5c-25.9,1.2-33.7,1.4-99.4,1.4s-73.5-0.3-99.4-1.4 c-24-1.1-37-5.1-45.7-8.5c-11.5-4.5-19.7-9.8-28.3-18.4c-8.6-8.6-13.9-16.8-18.4-28.3c-3.4-8.7-7.4-21.7-8.5-45.7 c-1.2-25.9-1.4-33.7-1.4-99.4s0.3-73.5,1.4-99.4c1.1-24,5.1-37,8.5-45.7c4.5-11.5,9.8-19.7,18.4-28.3c8.6-8.6,16.8-13.9,28.3-18.4 c8.7-3.4,21.7-7.4,45.7-8.5c25.9-1.2,33.7-1.4,99.4-1.4S330.7,54.8,356.6,56z"/> <path fill="url(#instagram_colored_2)" d="M130.9,256.3c0,69.8,56.6,126.3,126.3,126.3s126.3-56.6,126.3-126.3S327,130,257.2,130 S130.9,186.5,130.9,256.3z M339.2,256.3c0,45.3-36.7,82-82,82s-82-36.7-82-82c0-45.3,36.7-82,82-82S339.2,211,339.2,256.3z"/> <circle fill="#654C9F" cx="388.6" cy="125" r="29.5"/> </symbol> <!-- pin --> <symbol id="svg-icon__pin" viewBox="0 0 20 28" fill="currentColor"> <path d="M9.99714414,0 C4.48504163,0 0,4.40159182 0,9.81121092 C0,15.0471973 9.14693694,27.2551562 9.54066101,27.7703808 C9.64907883,27.9159863 9.81454394,28 9.99714414,28 C10.1797443,28 10.3509212,27.9159863 10.459339,27.7703808 C10.8473514,27.2551563 20,15.0471973 20,9.81121092 C20,4.40159182 15.5149584,0 9.99714414,0 Z M9.49734252,14 C7.01769845,14 5,11.9822692 5,9.49734252 C5,7.01766606 7.01769845,5 9.49734252,5 C11.9769866,5 14,7.01766606 14,9.49734252 C14,11.9822692 11.9769866,14 9.49734252,14 Z" id="Shape"></path> </symbol> <!-- arrow --> <symbol id="svg-icon__arrow" viewBox="0 0 9 17" fill="currentColor"> <polygon transform="translate(4.500000, 8.500000) rotate(-90.000000) translate(-4.500000, -8.500000) " points="4.5 13 -4 5.62295082 -2.13 4 4.5 9.75409836 11.13 4 13 5.62295082"></polygon> </symbol> <!-- envelope --> <symbol id="svg-icon__envelope" viewBox="0 0 512 512" fill="currentColor"> <path d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"/> </symbol> <!-- phone --> <symbol id="svg-icon__phone" viewBox="0 0 512 512" fill="currentColor"> <path d="M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z"/> </symbol> <!-- bars --> <symbol id="svg-icon__bars" viewBox="0 0 448 512" fill="currentColor"> <path d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"/> </symbol> <!-- truck --> <symbol id="svg-icon__truck" viewBox="0 0 640 512" fill="currentColor"> <path d="M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"/> </symbol> <!-- credit-card --> <symbol id="svg-icon__credit-card" viewBox="0 0 576 512" fill="currentColor"> <path d="M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z"/> </symbol> <!-- cart --> <symbol id="svg-icon__cart" viewBox="0 0 22 32" fill="currentColor"> <path d="M21.2938272,8.59875617 L17.3148148,8.59875617 L17.3148148,6.40274501 C17.3148148,2.8754021 14.4901235,0 11,0 C7.50987654,0 4.68518519,2.8754021 4.68518519,6.40274501 L4.68518519,8.59875617 L0.70617284,8.59875617 C0.332716049,8.59875617 0,8.88012009 0,9.25755951 L0,28.5893202 C0,30.4833798 1.54814815,32 3.42222222,32 L18.5777778,32 C20.4518519,32 22,30.4833798 22,28.5893202 L22,9.25755951 C22,8.88012009 21.667284,8.59875617 21.2938272,8.59875617 Z M15.9567901,8.59875617 L6.04320988,8.59875617 L6.04320988,6.40274501 C6.04320988,3.63028094 8.25679012,1.37250697 11,1.37250697 C13.7432099,1.37250697 15.9567901,3.63028094 15.9567901,6.40274501 L15.9567901,8.59875617 Z"></path> </symbol> <!-- user-profile --> <symbol id="svg-icon__user-profile" viewBox="0 0 25 31" fill="currentColor"> <path d="M18.6624,15.228 C18.468,15.0984 18.2412,15.1308 18.0792,15.2604 C16.4592,16.4592 14.4828,17.1396 12.312,17.1396 C10.1412,17.1396 8.1648,16.4268 6.5448,15.2604 C6.3828,15.1308 6.1236,15.1308 5.9616,15.228 C2.1384,17.6904 0.2268,22.518 0.2268,28.0584 C0.2268,31.8816 24.3972,31.8816 24.3972,28.0584 C24.3972,22.518 22.4856,17.6904 18.6624,15.228 Z"></path> <circle cx="12.312" cy="7.3872" r="7.2252"></circle> </symbol> <!-- search --> <symbol id="svg-icon__search" viewBox="0 0 20 21" fill="currentColor"> <path d="M19.6297374,18.8461538 L15.8032358,15.0338462 C17.2300669,13.44 18.1164317,11.3292308 18.1164317,9.02461538 C18.1164317,4.04923077 14.0521248,0 9.05821584,0 C4.06430687,0 0,4.04923077 0,9.02461538 C0,14 4.06430687,18.0492308 9.05821584,18.0492308 C10.8309454,18.0492308 12.4739631,17.5323077 13.8575569,16.6707692 L17.8353892,20.6338462 C18.0731944,20.8707692 18.3974742,21 18.721754,21 C19.0460338,21 19.3703136,20.8707692 19.6081188,20.6338462 C20.1269665,20.1384615 20.1269665,19.3415385 19.6297374,18.8461538 Z M2.5,9 C2.5,5.42715232 5.41044776,2.5 9.01077944,2.5 C12.6111111,2.5 15.5,5.42715232 15.5,9 C15.5,12.5728477 12.5895522,15.5 9.01077944,15.5 C5.43200663,15.5 2.5,12.5943709 2.5,9 Z"></path> </symbol> <!-- close --> <symbol id="svg-icon__close" viewBox="0 0 18 18" fill="currentColor"> <g transform="translate(-6.000000, -6.000000)" fill-rule="nonzero"> <polygon transform="translate(14.849242, 14.849242) rotate(-45.000000) translate(-14.849242, -14.849242) " points="16.3286238 25.3492424 16.3286238 16.3286238 25.3492424 16.3286238 25.3492424 13.369861 16.3286238 13.369861 16.3286238 4.3492424 13.369861 4.3492424 13.369861 13.369861 4.3492424 13.369861 4.3492424 16.3286238 13.369861 16.3286238 13.369861 25.3492424"></polygon> </g> </symbol> <!-- customer-care --> <symbol id="svg-icon__customer-care" viewBox="0 0 24 24" fill="currentColor"> <path d="M20.5661538,-2.73558953e-13 C22.3384615,-2.73558953e-13 23.7784615,1.44 23.7784615,3.21230769 L23.7784615,16.2830769 C23.7784615,18.0553846 22.3384615,19.4953846 20.5661538,19.4953846 L17.3169231,19.4953846 L17.3169231,23.1876923 C17.3169231,23.7784615 16.6153846,24.0738462 16.2092308,23.6307692 L12.0369231,19.4953846 L3.21230769,19.4953846 C1.44,19.4953846 1.04094511e-12,18.0553846 1.04094511e-12,16.2830769 L1.04094511e-12,3.21230769 C1.04094511e-12,1.44 1.44,-2.73558953e-13 3.21230769,-2.73558953e-13 L20.5661538,-2.73558953e-13 Z M12.2584615,13.1446154 L10.8923077,13.1446154 L10.7967838,13.1526179 C10.5504274,13.1947578 10.3753846,13.3989744 10.3753846,13.6615385 L10.3753846,13.6615385 L10.3753846,14.5107692 L10.3818831,14.5980554 C10.4204308,14.8552615 10.6264615,15.0646154 10.8923077,15.0646154 L10.8923077,15.0646154 L12.2584615,15.0646154 L12.3539854,15.0566129 C12.6003419,15.0144729 12.7753846,14.8102564 12.7753846,14.5476923 L12.7753846,14.5476923 L12.7753846,13.6615385 L12.7673821,13.5660146 C12.7252422,13.3196581 12.5210256,13.1446154 12.2584615,13.1446154 L12.2584615,13.1446154 Z M11.7784615,4.46769231 C10.7076923,4.46769231 9.85846154,4.72615385 9.23076923,5.20615385 C8.67692308,5.64923077 8.34461538,6.27692308 8.30769231,7.08923077 C8.30769231,7.27384615 8.45538462,7.45846154 8.64,7.45846154 L8.64,7.45846154 L10.1538462,7.49538462 L10.2488221,7.48853365 C10.4653846,7.45673077 10.6430769,7.31538462 10.7076923,7.08923077 C10.7446154,6.90461538 10.8553846,6.72 11.0030769,6.60923077 C11.2246154,6.42461538 11.4830769,6.31384615 11.8153846,6.31384615 C12.2215385,6.31384615 12.5169231,6.42461538 12.7384615,6.68307692 C12.96,6.90461538 13.0707692,7.23692308 13.0707692,7.64307692 C13.0707692,8.01230769 12.9969231,8.38153846 12.8123077,8.67692308 C12.6276923,8.97230769 12.3692308,9.23076923 12.0369231,9.41538462 C11.4092308,9.85846154 11.0030769,10.2276923 10.7446154,10.56 C10.56,10.8184615 10.4492308,11.1876923 10.4123077,11.6676923 C10.3753846,11.8892308 10.56,12.0738462 10.7815385,12.0738462 L10.7815385,12.0738462 L12.4430769,12.0738462 L12.5119471,12.0671394 C12.6709615,12.0363462 12.8123077,11.9030769 12.8123077,11.7415385 C12.8492308,11.4830769 12.8861538,11.2984615 12.96,11.1507692 C13.0707692,10.9292308 13.2923077,10.7076923 13.5876923,10.4861538 C14.1415385,10.1907692 14.5846154,9.82153846 14.9538462,9.30461538 C15.3230769,8.78769231 15.4707692,8.27076923 15.4707692,7.64307692 C15.4707692,6.68307692 15.1384615,5.90769231 14.4738462,5.31692308 C13.8092308,4.72615385 12.9230769,4.46769231 11.7784615,4.46769231 Z"></path> </symbol> <!-- arrow-top --> <symbol id="svg-icon__arrow-top" viewBox="0 0 18 18" fill="currentColor"> <polygon points="10.1047904 18 10.1047904 4.31137725 16.3562874 10.5898204 18 9 9 0 0 9 1.58982036 10.5898204 7.89520958 4.31137725 7.89520958 18"></polygon> </symbol> <!-- arrow-right --> <symbol id="svg-icon__arrow-right" viewBox="0 0 9 17" fill="currentColor"> <polygon transform="translate(4.500000, 8.500000) rotate(-90.000000) translate(-4.500000, -8.500000) " points="4.5 13 -4 5.62295082 -2.13 4 4.5 9.75409836 11.13 4 13 5.62295082"></polygon> </symbol> <!-- my-location --> <symbol id="svg-icon__my-location" viewBox="0 0 24 24" fill="currentColor"> <path d="M0 0h24v24H0z" fill="none"/> <path d="M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/> </symbol> <!-- customize --> <symbol id="svg-icon__customize" viewBox="0 0 18 18" fill="currentColor"> <path d="M6.02406939,16.7374196 L6.54704734,16.2144417 L1.78555837,11.4529527 L12.4989086,0.73960249 C13.4850452,-0.246534163 15.0838886,-0.246534163 16.0700253,0.73960249 L17.2603975,1.92997473 C18.2465342,2.91611139 18.2465342,4.51495482 17.2603975,5.50109147 L6.02406939,16.7374196 Z M5.35082967,17.3989685 C4.89601991,17.7855362 4.31683241,18 3.7155331,18 L0.420860142,18 C0.188425508,18 0,17.8115745 0,17.5791399 L0,14.284467 C0,13.6831677 0.21446383,13.1039801 0.601031547,12.6491703 L5.35082967,17.3989685 Z"></path> </symbol> <!-- minicart-check --> <symbol id="svg-icon__minicart-check" viewBox="0 0 48 47" fill="currentColor"> <path d="M23.5,47 C26.7434896,47 29.7957357,46.3880208 32.6567383,45.1640625 C35.5177409,43.9401042 38.011556,42.2648112 40.1381836,40.1381836 C42.2648112,38.011556 43.9401042,35.5177409 45.1640625,32.6567383 C46.3880208,29.7957357 47,26.7434896 47,23.5 C47,20.2565104 46.3880208,17.2042643 45.1640625,14.3432617 C43.9401042,11.4822591 42.2648112,8.98844401 40.1381836,6.86181641 C38.011556,4.7351888 35.5177409,3.05989583 32.6567383,1.8359375 C29.7957357,0.611979167 26.7434896,0 23.5,0 C20.2565104,0 17.2042643,0.611979167 14.3432617,1.8359375 C11.4822591,3.05989583 8.98844401,4.7351888 6.86181641,6.86181641 C4.7351888,8.98844401 3.05989583,11.4822591 1.8359375,14.3432617 C0.611979167,17.2042643 0,20.2565104 0,23.5 C0,26.7434896 0.611979167,29.7957357 1.8359375,32.6567383 C3.05989583,35.5177409 4.7351888,38.011556 6.86181641,40.1381836 C8.98844401,42.2648112 11.4822591,43.9401042 14.3432617,45.1640625 C17.2042643,46.3880208 20.2565104,47 23.5,47 Z M23.5,44 C20.6629464,44 18.0013021,43.459123 15.515067,42.377369 C13.0288318,41.295615 10.8629092,39.8253437 9.01729911,37.9665552 C7.17168899,36.1077666 5.70740327,33.9366407 4.62444196,31.4531773 C3.54148065,28.9697139 3,26.3110368 3,23.477146 C3,20.6432553 3.54148065,17.9845782 4.62444196,15.5011148 C5.70740327,13.0176514 7.17168899,10.8541434 9.01729911,9.01059086 C10.8629092,7.16703828 13.0288318,5.70438499 15.515067,4.62263099 C18.0013021,3.540877 20.6629464,3 23.5,3 C26.3370536,3 28.9986979,3.540877 31.484933,4.62263099 C33.9711682,5.70438499 36.1370908,7.16703828 37.9827009,9.01059086 C39.828311,10.8541434 41.2925967,13.0176514 42.375558,15.5011148 C43.4585193,17.9845782 44,20.6432553 44,23.477146 C44,26.3110368 43.4585193,28.9697139 42.375558,31.4531773 C41.2925967,33.9366407 39.828311,36.1077666 37.9827009,37.9665552 C36.1370908,39.8253437 33.9711682,41.295615 31.484933,42.377369 C28.9986979,43.459123 26.3370536,44 23.5,44 Z M18.7385321,32 C19.1513761,32 19.4954128,31.8461538 19.7706422,31.5384615 L19.8623853,31.4461538 L19.8623853,31.4461538 C19.8929664,31.4153846 19.9235474,31.3846154 19.9541284,31.3538462 L34.587156,16.5384615 C34.8623853,16.2615385 35,15.9153846 35,15.5 C35,15.0846154 34.8623853,14.7384615 34.587156,14.4615385 C34.2813456,14.1538462 33.9296636,14 33.5321101,14 C33.1345566,14 32.7828746,14.1538462 32.4770642,14.4615385 L18.7155963,28.4 L12.5229358,22.1692308 C12.2171254,21.8615385 11.8654434,21.7076923 11.4678899,21.7076923 C11.0703364,21.7076923 10.7186544,21.8615385 10.412844,22.1692308 C10.1376147,22.4461538 10,22.7923077 10,23.2076923 C10,23.6230769 10.1376147,23.9692308 10.412844,24.2461538 L17.706422,31.5384615 C17.9816514,31.8461538 18.3256881,32 18.7385321,32 Z"></path> </symbol> <!-- green-check --> <symbol id="svg-icon__green-check" viewBox="0 0 22 22" style="enable-background:new 0 0 22 22" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> <circle cx="7719" cy="-3226" r="11" style="fill:#67b43d" transform="translate(-7708 3237)"/> <path style="fill:#fff" d="m7717.4-3219.7-4.8-4.9 2.2-2.1 2.6 2.7 6.9-6.9 2.1 2.1z" transform="translate(-7708 3237)"/> </symbol> <!-- info --> <symbol id="svg-icon__info" viewBox="0 0 10 10" fill="currentColor"> <path d="M5,0 C2.24444444,0 0,2.24444444 0,5 C0,7.75555556 2.24444444,10 5,10 C7.75555556,10 10,7.75555556 10,5 C10,2.24444444 7.75555556,0 5,0 Z M5.70303712,8.57142857 L4.28571429,8.57142857 L4.28571429,3.80952381 L5.71428571,3.80952381 L5.71428571,8.57142857 L5.70303712,8.57142857 Z M4.98427229,3.33333333 C4.56107611,3.33333333 4.27541868,3.0183727 4.28599859,2.62467192 C4.27541868,2.20847394 4.56107611,1.9047619 4.9948522,1.9047619 C5.42862829,1.9047619 5.70370581,2.21972253 5.71428571,2.62467192 C5.71428571,3.00712411 5.42862829,3.33333333 4.98427229,3.33333333 Z"></path> </symbol> <!-- info-outlined --> <symbol id="svg-icon__info-outlined" viewBox="0 0 24 24" fill="currentColor"> <path d="M0 0h24v24H0V0z" fill="none"/><path d="M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/> </symbol> <!-- play --> <symbol id="svg-icon__play" viewBox="0 0 116 116" fill="currentColor"> <g transform="translate(1.000000, 1.000000)" stroke="none" stroke-width="1" fill-rule="evenodd"> <path d="M57,-1 C24.9674845,-1 -1,24.9674845 -1,57 C-1,89.0325155 24.9674845,115 57,115 C89.0325155,115 115,89.0325155 115,57 C115,24.9674845 89.0325155,-1 57,-1 Z M57,1 C87.927946,1 113,26.072054 113,57 C113,87.927946 87.927946,113 57,113 C26.072054,113 1,87.927946 1,57 C1,26.072054 26.072054,1 57,1 Z"></path> <polygon points="48 75 76 57 48 39"></polygon> </g> </symbol> <!-- copy --> <symbol id="svg-icon__copy" viewBox="0 0 24 24" fill="currentColor"> <path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/> </symbol> <!-- share --> <symbol id="svg-icon__share" viewBox="0 0 24 24" fill="currentColor"> <path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z"/> </symbol> <!-- bell --> <symbol id="svg-icon__bell" viewBox="0 0 27 32" fill="currentColor"> <path d="M25.8596191,22.5507812 C23.8435059,20.8466797 22.6875,18.355957 22.6875,15.7172851 L22.6875,12 C22.6875,7.3081055 19.2021484,3.42407225 14.6875,2.7734375 L14.6875,1.33325194 C14.6875,0.59594725 14.0900879,0 13.3542481,0 C12.6181641,0 12.0207519,0.59594725 12.0207519,1.33325194 L12.0207519,2.7734375 C7.50488281,3.42407225 4.02075194,7.3081055 4.02075194,12 L4.02075194,15.7172851 C4.02075194,18.355957 2.86474613,20.8466797 0.836914063,22.5612793 C0.31811525,23.0053711 0.0207519375,23.6506347 0.0207519375,24.3332519 C0.0207519375,25.6201172 1.06738281,26.6667481 2.35424806,26.6667481 L24.3542481,26.6667481 C25.6408691,26.6667481 26.6875,25.6201172 26.6875,24.3332519 C26.6875,23.6506347 26.3901368,23.0053711 25.8596191,22.5507812 Z"></path> <path d="M13.3542481,32 C15.7687988,32 17.7888184,30.2785644 18.2529297,28 L8.45556638,28 C8.91943363,30.2785644 10.9394531,32 13.3542481,32 Z"></path> </symbol> </defs> </svg> </div> </div><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'915922b129defe85',t:'MTc0MDE2NjA2NS4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10