1<!doctype html> 2<html class="no-js" lang="en" dir="ltr"> 3<head><meta charset="utf-8"> 4<meta name="viewport" content="width=device-width,initial-scale=1"> 5<title>Peak Pilates EU</title><link rel="canonical" href="https://peakpilates.eu/"><link rel="icon" href="//peakpilates.eu/cdn/shop/files/peak-new-favicon-circle.png?crop=center&height=48&v=1768518041&width=48" type="image/png"> 6 <link rel="apple-touch-icon" href="//peakpilates.eu/cdn/shop/files/peak-new-favicon-circle.png?crop=center&height=180&v=1768518041&width=180"><meta property="og:site_name" content="Peak Pilates EU"> 7<meta property="og:url" content="https://peakpilates.eu/"> 8<meta property="og:title" content="Peak Pilates EU"> 9<meta property="og:type" content="website"> 10<meta property="og:description" content="Peak Pilates EU"><meta name="twitter:card" content="summary_large_image"> 11<meta name="twitter:title" content="Peak Pilates EU"> 12<meta name="twitter:description" content="Peak Pilates EU"> 13<style>@font-face { 14 font-family: Montserrat; 15 font-weight: 400; 16 font-style: normal; 17 font-display: fallback; 18 src: url("//peakpilates.eu/cdn/fonts/montserrat/montserrat_n4.81949fa0ac9fd2021e16436151e8eaa539321637.woff2") format("woff2"), 19 url("//peakpilates.eu/cdn/fonts/montserrat/montserrat_n4.a6c632ca7b62da89c3594789ba828388aac693fe.woff") format("woff"); 20} 21@font-face { 22 font-family: Montserrat; 23 font-weight: 700; 24 font-style: normal; 25 font-display: fallback; 26 src: url("//peakpilates.eu/cdn/fonts/montserrat/montserrat_n7.3c434e22befd5c18a6b4afadb1e3d77c128c7939.woff2") format("woff2"), 27 url("//peakpilates.eu/cdn/fonts/montserrat/montserrat_n7.5d9fa6e2cae713c8fb539a9876489d86207fe957.woff") format("woff"); 28} 29@font-face { 30 font-family: Montserrat; 31 font-weight: 500; 32 font-style: normal; 33 font-display: fallback; 34 src: url("//peakpilates.eu/cdn/fonts/montserrat/montserrat_n5.07ef3781d9c78c8b93c98419da7ad4fbeebb6635.woff2") format("woff2"), 35 url("//peakpilates.eu/cdn/fonts/montserrat/montserrat_n5.adf9b4bd8b0e4f55a0b203cdd84512667e0d5e4d.woff") format("woff"); 36} 37@font-face { 38 font-family: Montserrat; 39 font-weight: 400; 40 font-style: italic; 41 font-display: fallback; 42 src: url("//peakpilates.eu/cdn/fonts/montserrat/montserrat_i4.5a4ea298b4789e064f62a29aafc18d41f09ae59b.woff2") format("woff2"), 43 url("//peakpilates.eu/cdn/fonts/montserrat/montserrat_i4.072b5869c5e0ed5b9d2021e4c2af132e16681ad2.woff") format("woff"); 44} 45@font-face { 46 font-family: Montserrat; 47 font-weight: 700; 48 font-style: italic; 49 font-display: fallback; 50 src: url("//peakpilates.eu/cdn/fonts/montserrat/montserrat_i7.a0d4a463df4f146567d871890ffb3c80408e7732.woff2") format("woff2"), 51 url("//peakpilates.eu/cdn/fonts/montserrat/montserrat_i7.f6ec9f2a0681acc6f8152c40921d2a4d2e1a2c78.woff") format("woff"); 52} 53@font-face { 54 font-family: Montserrat; 55 font-weight: 400; 56 font-style: normal; 57 font-display: fallback; 58 src: url("//peakpilates.eu/cdn/fonts/montserrat/montserrat_n4.81949fa0ac9fd2021e16436151e8eaa539321637.woff2") format("woff2"), 59 url("//peakpilates.eu/cdn/fonts/montserrat/montserrat_n4.a6c632ca7b62da89c3594789ba828388aac693fe.woff") format("woff"); 60} 61@font-face { 62 font-family: Montserrat; 63 font-weight: 400; 64 font-style: normal; 65 font-display: fallback; 66 src: url("//peakpilates.eu/cdn/fonts/montserrat/montserrat_n4.81949fa0ac9fd2021e16436151e8eaa539321637.woff2") format("woff2"), 67 url("//peakpilates.eu/cdn/fonts/montserrat/montserrat_n4.a6c632ca7b62da89c3594789ba828388aac693fe.woff") format("woff"); 68} 69@font-face { 70 font-family: Montserrat; 71 font-weight: 400; 72 font-style: normal; 73 font-display: fallback; 74 src: url("//peakpilates.eu/cdn/fonts/montserrat/montserrat_n4.81949fa0ac9fd2021e16436151e8eaa539321637.woff2") format("woff2"), 75 url("//peakpilates.eu/cdn/fonts/montserrat/montserrat_n4.a6c632ca7b62da89c3594789ba828388aac693fe.woff") format("woff"); 76} 77@font-face { 78 font-family: Montserrat; 79 font-weight: 600; 80 font-style: normal; 81 font-display: fallback; 82 src: url("//peakpilates.eu/cdn/fonts/montserrat/montserrat_n6.1326b3e84230700ef15b3a29fb520639977513e0.woff2") format("woff2"), 83 url("//peakpilates.eu/cdn/fonts/montserrat/montserrat_n6.652f051080eb14192330daceed8cd53dfdc5ead9.woff") format("woff"); 84} 85:root { 86 --page-container-width: 1920px; 87 --reading-container-width: 720px; 88 --divider-opacity: 0.14; 89 --gutter-large: 30px; 90 --gutter-desktop: 20px; 91 --gutter-mobile: 16px; 92 --section-padding: 50px; 93 --larger-section-padding: 80px; 94 --larger-section-padding-mobile: 60px; 95 --largest-section-padding: 110px; 96 --aos-animate-duration: 0.6s; 97 98 --base-font-family: Montserrat, sans-serif;
99 --base-font-weight: 400; 100 --base-font-style: normal; 101 --heading-font-family: Montserrat, sans-serif; 102 --heading-font-weight: 400; 103 --heading-font-style: normal; 104 --heading-font-letter-spacing: normal; 105 --logo-font-family: Montserrat, sans-serif; 106 --logo-font-weight: 400; 107 --logo-font-style: normal; 108 --nav-font-family: Montserrat, sans-serif; 109 --nav-font-weight: 400; 110 --nav-font-style: normal; 111 112 --base-text-size:16px; 113 --base-line-height: 1.6; 114 --input-text-size:16px; 115 --smaller-text-size-1:13px; 116 --smaller-text-size-2:14px; 117 --smaller-text-size-3:13px; 118 --smaller-text-size-4:12px; 119 --larger-text-size:36px; 120 --super-large-text-size:63px; 121 --super-large-mobile-text-size:29px; 122 --larger-mobile-text-size:29px; 123 --logo-text-size:26px;--btn-letter-spacing: 0.08em; 124 --btn-text-transform: uppercase; 125 --button-text-size: 14px; 126 --quickbuy-button-text-size: 13; 127 --small-feature-link-font-size: 0.75em; 128 --input-btn-padding-top: 1.2em; 129 --input-btn-padding-bottom: 1.2em;--heading-text-transform:none; 130 --nav-text-size: 14px; 131 --mobile-menu-font-weight: 600; 132 133 --body-bg-color: 255 255 255; 134 --bg-color: 255 255 255; 135 --body-text-color: 73 78 90; 136 --text-color: 73 78 90; 137 138 --header-text-col: #494e5a;--header-text-hover-col: var(--main-nav-link-hover-col);--header-bg-col: #ffffff; 139 --heading-color: 73 78 90; 140 --body-heading-color: 73 78 90; 141 --heading-divider-col: #dfe3e8; 142 143 --logo-col: #494e5a; 144 --main-nav-bg: #ffffff; 145 --main-nav-link-col: #494e5a; 146 --main-nav-link-hover-col: #00b7f1; 147 --main-nav-link-featured-col: #00b7f1; 148 149 --link-color: 0 183 241; 150 --body-link-color: 0 183 241; 151 152 --btn-bg-color: 0 183 241; 153 --btn-bg-hover-color: 73 78 90; 154 --btn-border-color: 0 183 241; 155 --btn-border-hover-color: 73 78 90; 156 --btn-text-color: 255 255 255; 157 --btn-text-hover-color: 255 255 255;--btn-alt-bg-color: 255 255 255; 158 --btn-alt-text-color: 0 183 241; 159 --btn-alt-border-color: 0 183 241; 160 --btn-alt-border-hover-color: 0 183 241;--btn-ter-bg-color: 235 235 235; 161 --btn-ter-text-color: 27 29 34; 162 --btn-ter-bg-hover-color: 0 183 241; 163 --btn-ter-text-hover-color: 255 255 255;--btn-border-radius: 3px; 164 --btn-inspired-border-radius: 3px;--color-scheme-default: #ffffff; 165 --color-scheme-default-color: 255 255 255; 166 --color-scheme-default-text-color: 73 78 90; 167 --color-scheme-default-head-color: 73 78 90; 168 --color-scheme-default-link-color: 0 183 241; 169 --color-scheme-default-btn-text-color: 255 255 255; 170 --color-scheme-default-btn-text-hover-color: 255 255 255; 171 --color-scheme-default-btn-bg-color: 0 183 241; 172 --color-scheme-default-btn-bg-hover-color: 73 78 90; 173 --color-scheme-default-btn-border-color: 0 183 241; 174 --color-scheme-default-btn-border-hover-color: 73 78 90; 175 --color-scheme-default-btn-alt-text-color: 0 183 241; 176 --color-scheme-default-btn-alt-bg-color: 255 255 255; 177 --color-scheme-default-btn-alt-border-color: 0 183 241; 178 --color-scheme-default-btn-alt-border-hover-color: 0 183 241; 179 180 --color-scheme-1: #84c6c8; 181 --color-scheme-1-color: 132 198 200; 182 --color-scheme-1-text-color: 255 255 255; 183 --color-scheme-1-head-color: 0 0 0; 184 --color-scheme-1-link-color: 0 183 241; 185 --color-scheme-1-btn-text-color: 0 183 241; 186 --color-scheme-1-btn-text-hover-color: 0 183 241; 187 --color-scheme-1-btn-bg-color: 255 255 255; 188 --color-scheme-1-btn-bg-hover-color: 73 78 90; 189 --color-scheme-1-btn-border-color: 255 255 255; 190 --color-scheme-1-btn-border-hover-color: 73 78 90; 191 --color-scheme-1-btn-alt-text-color: 73 78 90; 192 --color-scheme-1-btn-alt-bg-color: 255 255 255; 193 --color-scheme-1-btn-alt-border-color: 73 78 90; 194 --color-scheme-1-btn-alt-border-hover-color: 73 78 90; 195 196 --color-scheme-2: #f4f6f8; 197 --color-scheme-2-color: 244 246 248; 198 --color-scheme-2-text-color: 73 78 90; 199 --color-scheme-2-head-color: 73 78 90; 200 --color-scheme-2-link-color: 0 183 241; 201 --color-scheme-2-btn-text-color: 255 255 255; 202 --color-scheme-2-btn-text-hover-color: 255 255 255; 203 --color-scheme-2-btn-bg-color: 0 183 241; 204 --color-scheme-2-btn-bg-hover-color: 73 78 90; 205 --color-scheme-2-btn-border-color: 0 183 241; 206 --color-scheme-2-btn-border-hover-color: 73 78 90; 207 --color-scheme-2-btn-alt-text-color: 35 35 35; 208 --color-scheme-2-btn-alt-bg-color: 255 255 255; 209 --color-scheme-2-btn-alt-border-color: 35 35 35; 210 --color-scheme-2-btn-alt-border-hover-color: 35 35 35; 211
212 /* Shop Pay payment terms */ 213 --payment-terms-background-color: #ffffff;--quickbuy-bg: 255 255 255;--body-input-background-color: rgb(var(--body-bg-color)); 214 --input-background-color: rgb(var(--body-bg-color)); 215 --body-input-text-color: var(--body-text-color); 216 --input-text-color: var(--body-text-color); 217 --body-input-border-color: rgb(210, 211, 214); 218 --input-border-color: rgb(210, 211, 214); 219 --input-border-color-hover: rgb(155, 158, 164); 220 --input-border-color-active: rgb(73, 78, 90); 221 222 --swatch-cross-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 24 24' fill='none' stroke='rgb(210, 211, 214)' stroke-width='0.09' preserveAspectRatio='none' %3E%3Cline x1='24' y1='0' x2='0' y2='24'%3E%3C/line%3E%3C/svg%3E"); 223 --swatch-cross-hover: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 24 24' fill='none' stroke='rgb(155, 158, 164)' stroke-width='0.09' preserveAspectRatio='none' %3E%3Cline x1='24' y1='0' x2='0' y2='24'%3E%3C/line%3E%3C/svg%3E"); 224 --swatch-cross-active: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 24 24' fill='none' stroke='rgb(73, 78, 90)' stroke-width='0.09' preserveAspectRatio='none' %3E%3Cline x1='24' y1='0' x2='0' y2='24'%3E%3C/line%3E%3C/svg%3E"); 225 226 --footer-divider-col: #ececec; 227 --footer-text-col: 255 255 255; 228 --footer-heading-col: 255 255 255; 229 --footer-bg-col: 35 35 35;--product-label-overlay-justify: flex-start;--product-label-overlay-align: flex-start;--product-label-overlay-reduction-text: #232323; 230 --product-label-overlay-reduction-bg: #00b7f1; 231 --product-label-overlay-reduction-text-weight: inherit; 232 --product-label-overlay-stock-text: #232323; 233 --product-label-overlay-stock-bg: #efefef; 234 --product-label-overlay-new-text: #232323; 235 --product-label-overlay-new-bg: #efefef; 236 --product-label-overlay-meta-text: #232323; 237 --product-label-overlay-meta-bg: #efefef; 238 --product-label-sale-text: #00b7f1; 239 --product-label-sold-text: #171717; 240 --product-label-preorder-text: #00b7f1; 241 242 --product-block-crop-align: center; 243 244 245 --product-block-price-align: center; 246 --product-block-price-item-margin-start: .25rem; 247 --product-block-price-item-margin-end: .25rem; 248 249 250 251 252 --collection-block-image-position: center center; 253 254 --swatch-picker-image-size: 40px; 255 --swatch-crop-align: center center; 256 257 --image-overlay-text-color: 255 255 255;--image-overlay-bg: rgba(0, 0, 0, 0.12); 258 --image-overlay-shadow-start: rgb(0 0 0 / 0.16); 259 --image-overlay-box-opacity: 0.88;--product-inventory-ok-box-color: rgba(0,0,0,0); 260 --product-inventory-ok-text-color: #232323; 261 --product-inventory-ok-icon-box-fill-color: none; 262 --product-inventory-low-box-color: rgba(0,0,0,0); 263 --product-inventory-low-text-color: #232323; 264 --product-inventory-low-icon-box-fill-color: none; 265 --product-inventory-low-text-color-channels: 35, 35, 35; 266 --product-inventory-ok-text-color-channels: 35, 35, 35; 267 268 --rating-star-color: 35 35 35;--overlay-align-left: start; 269 --overlay-align-right: end;}html[dir=rtl] { 270 --overlay-right-text-m-left: 0; 271 --overlay-right-text-m-right: auto; 272 --overlay-left-shadow-left-left: 15%; 273 --overlay-left-shadow-left-right: -50%; 274 --overlay-left-shadow-right-left: -85%; 275 --overlay-left-shadow-right-right: 0; 276}.image-overlay--bg-box .text-overlay .text-overlay__text { 277 --image-overlay-box-bg: 255 255 255; 278 --heading-color: var(--body-heading-color); 279 --text-color: var(--body-text-color); 280 --link-color: var(--body-link-color); 281 }::selection { 282 background: rgb(var(--body-heading-color)); 283 color: rgb(var(--body-bg-color)); 284 } 285 ::-moz-selection { 286 background: rgb(var(--body-heading-color)); 287 color: rgb(var(--body-bg-color)); 288 }.use-color-scheme--default { 289 --product-label-sale-text: #00b7f1; 290 --product-label-sold-text: #171717; 291 --product-label-preorder-text: #00b7f1; 292 --input-background-color: rgb(var(--body-bg-color)); 293 --input-text-color: var(--body-input-text-color); 294 --input-border-color: rgb(210, 211, 214); 295 --input-border-color-hover: rgb(155, 158, 164); 296 --input-border-color-active: rgb(73, 78, 90); 297}</style> 298 299 <link href="//peakpilates.eu/cdn/shop/t/4/assets/main.css?v=172312757779536793001789404899" rel="stylesheet" type="text/css" media="all" /> 300<link rel="preload" as="font" href="//peakpilates.eu/cdn/fonts/montserrat/montserrat_n4.81949fa0ac9fd2021e16436151e8eaa539321637.woff2" type="font/woff2" crossorigin><link rel="preload" as="font" href="//peakpilates.eu/cdn/fonts/montserrat/montserrat_n4.81949fa0ac9fd2021e16436151e8eaa539321637.woff2" type="font/woff2" crossorigin>
300<script> 301 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 302 303 window.theme = { 304 info: { 305 name: 'Symmetry', 306 version: '8.0.0' 307 }, 308 device: { 309 hasTouch: window.matchMedia('(any-pointer: coarse)').matches, 310 hasHover: window.matchMedia('(hover: hover)').matches 311 }, 312 mediaQueries: { 313 md: '(min-width: 768px)', 314 productMediaCarouselBreak: '(min-width: 1041px)' 315 }, 316 routes: { 317 base: 'https://peakpilates.eu', 318 cart: '/cart', 319 cartAdd: '/cart/add.js', 320 cartUpdate: '/cart/update.js', 321 predictiveSearch: '/search/suggest' 322 }, 323 strings: { 324 cartTermsConfirmation: "You must agree to the terms and conditions before continuing.", 325 cartItemsQuantityError: "You can only add [QUANTITY] of this item to your cart.", 326 generalSearchViewAll: "View all search results", 327 noStock: "Sold out", 328 noVariant: "Unavailable", 329 productsProductChooseA: "Choose a", 330 generalSearchPages: "Pages", 331 generalSearchNoResultsWithoutTerms: "Sorry, we couldnʼt find any results", 332 shippingCalculator: { 333 singleRate: "There is one shipping rate for this destination:", 334 multipleRates: "There are multiple shipping rates for this destination:", 335 noRates: "We do not ship to this destination." 336 }, 337 regularPrice: "Regular price", 338 salePrice: "Sale price" 339 }, 340 settings: { 341 moneyWithCurrencyFormat: "â¬{{amount_with_comma_separator}} EUR", 342 cartType: "drawer", 343 afterAddToCart: "drawer", 344 quickbuyStyle: "off", 345 externalLinksNewTab: true, 346 internalLinksSmoothScroll: true 347 } 348 } 349 350 theme.inlineNavigationCheck = function() { 351 var pageHeader = document.querySelector('.pageheader'), 352 inlineNavContainer = pageHeader.querySelector('.logo-area__left__inner'), 353 inlineNav = inlineNavContainer.querySelector('.navigation--left'); 354 if (inlineNav && getComputedStyle(inlineNav).display != 'none') { 355 var inlineMenuCentered = document.querySelector('.pageheader--layout-inline-menu-center'), 356 logoContainer = document.querySelector('.logo-area__middle__inner'); 357 if(inlineMenuCentered) { 358 var rightWidth = document.querySelector('.logo-area__right__inner').clientWidth, 359 middleWidth = logoContainer.clientWidth, 360 logoArea = document.querySelector('.logo-area'), 361 computedLogoAreaStyle = getComputedStyle(logoArea), 362 logoAreaInnerWidth = logoArea.clientWidth - Math.ceil(parseFloat(computedLogoAreaStyle.paddingLeft)) - Math.ceil(parseFloat(computedLogoAreaStyle.paddingRight)), 363 availableNavWidth = logoAreaInnerWidth - Math.max(rightWidth, middleWidth) * 2 - 40; 364 inlineNavContainer.style.maxWidth = availableNavWidth + 'px'; 365 } 366 367 var firstInlineNavLink = inlineNav.querySelector('.navigation__item:first-child'), 368 lastInlineNavLink = inlineNav.querySelector('.navigation__item:last-child'); 369 if (lastInlineNavLink) { 370 var inlineNavWidth = null; 371 if(document.querySelector('html[dir=rtl]')) { 372 inlineNavWidth = firstInlineNavLink.offsetLeft - lastInlineNavLink.offsetLeft + firstInlineNavLink.offsetWidth; 373 } else { 374 inlineNavWidth = lastInlineNavLink.offsetLeft - firstInlineNavLink.offsetLeft + lastInlineNavLink.offsetWidth; 375 } 376 if (inlineNavContainer.offsetWidth >= inlineNavWidth) { 377 pageHeader.classList.add('pageheader--layout-inline-permitted'); 378 var tallLogo = logoContainer.clientHeight > lastInlineNavLink.clientHeight + 20; 379 if (tallLogo) { 380 inlineNav.classList.add('navigation--tight-underline'); 381 } else { 382 inlineNav.classList.remove('navigation--tight-underline'); 383 } 384 } else { 385 pageHeader.classList.remove('pageheader--layout-inline-permitted'); 386 } 387 } 388 } 389 }; 390 391 theme.setInitialHeaderHeightProperty = () => { 392 const section = document.querySelector('.section-header'); 393 if (section) { 394 document.documentElement.style.setProperty('--theme-header-height', Math.ceil(section.clientHeight) + 'px'); 395 } 396 }; 397 </script>
397 398 399
399<script src="//peakpilates.eu/cdn/shop/t/4/assets/main.js?v=150891663519462644191789404899" defer></script>
399 400 401
401<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
401<meta name="google-site-verification" content="_vXXxEuV0FLZwJlgLr1ulxghGgMAIky5SoFZmB5HZJo"> 402<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/97826013533/digital_wallets/dialog"> 403<meta id="in-context-paypal-metadata" data-shop-id="97826013533" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="EUR"> 404<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" hreflang="x-default" href="https://peakpilates.eu/"> 405<link rel="alternate" hreflang="en" href="https://peakpilates.eu/"> 406<link rel="alternate" hreflang="nl" href="https://peakpilates.eu/nl"> 407<link rel="alternate" hreflang="de" href="https://peakpilates.eu/de"> 408<link rel="alternate" hreflang="es" href="https://peakpilates.eu/es"> 409<link rel="alternate" hreflang="it" href="https://peakpilates.eu/it"> 410<link rel="alternate" hreflang="fr" href="https://peakpilates.eu/fr">
411<script async="async" src="/checkouts/internal/preloads.js?locale=en-NL&default_configuration_id=6694437213"></script>
411 412<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
413<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-NL&default_configuration_id=6694437213&shop_id=97826013533" crossorigin="anonymous"></script>
vendor: 1 bytes, line 413
413
414<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":97826013533,"countryCode":"NL","currencyCode":"EUR","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/97826013533","merchantName":"Peak Pilates EU","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","maestro"],"total":{"type":"pending","label":"Peak Pilates EU","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 414
414
415<script id="shopify-features" type="application/json">{"accessToken":"56a17bbc15be71daf2ca9ea0504640b3","betas":["rich-media-storefront-analytics"],"domain":"peakpilates.eu","predictiveSearch":true,"shopId":97826013533,"locale":"en"}</script>
vendor: 1 bytes, line 415
415
416<script>var Shopify = Shopify || {}; 417Shopify.shop = "w7e8xk-80.myshopify.com"; 418Shopify.locale = "en"; 419Shopify.currency = {"active":"EUR","rate":"1.0"}; 420Shopify.country = "NL"; 421Shopify.theme = {"name":"Symmetry - geo-target-pricing","id":210112053597,"schema_name":"Symmetry","schema_version":"8.0.0","theme_store_id":568,"role":"main"}; 422Shopify.theme.handle = "null"; 423Shopify.theme.style = {"id":null,"handle":null}; 424Shopify.cdnHost = "peakpilates.eu/cdn"; 425Shopify.routes = Shopify.routes || {}; 426Shopify.routes.root = "/"; 427Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 428Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 429Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 430Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 430
430
431<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 431
431
432<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 432
432
433<script> 434 window.ShopifyPay = window.ShopifyPay || {}; 435 window.ShopifyPay.apiHost = "shop.app\/pay"; 436 window.ShopifyPay.redirectState = null; 437</script>
vendor: 1 bytes, line 437
437
438<script> 439 window.Shopify = window.Shopify || {}; 440 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 441 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 442 window.Shopify.SignInWithShop.eligible = true; 443</script>
vendor: 1 bytes, line 443
443
444<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
vendor: 1 bytes, line 444
444
445<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 445
445
446<script type="module"> 447 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 448 449 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 450 451</script>
vendor: 1 bytes, line 451
451
452<script> 453 window.Shopify = window.Shopify || {}; 454 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 455 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]}; 456</script>
vendor: 1 bytes, line 456
456
457<script id="__st">var __st={"a":97826013533,"offset":7200,"reqid":"714c6378-fedb-41dc-a155-3c554c2e3ee1-1791519599","pageurl":"peakpilates.eu\/","u":"636c1cdfb774","p":"home"};</script>
vendor: 1 bytes, line 457
457
458<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 458
458
459<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 459
459
460<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//peakpilates.eu/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 460
460
461<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//peakpilates.eu/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
461<script crossorigin="anonymous" defer="defer" src="//peakpilates.eu/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-f0e26bdf.js?v=20250812"></script>
vendor: 1 bytes, line 461
461
462<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 462
462
463<script> 464 window.Shopify = window.Shopify || {}; 465 window.Shopify.MCP = window.Shopify.MCP || {}; 466 window.Shopify.MCP.enabled = true; 467 window.Shopify.MCP.shop = "w7e8xk-80.myshopify.com"; 468 window.Shopify.MCP.mcpEndpoint = "https:\/\/peakpilates.eu\/api\/mcp"; 469 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\nSet policy_types to also get the store's written policies (full text and URL).\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question â e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}]; 470</script>
vendor: 1 bytes, line 470
470
471<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/peakpilates.eu\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 472</script>
vendor: 1 bytes, line 472
472
473<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://peakpilates.eu/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 474</script>
vendor: 1 bytes, line 474
474
475<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 476 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 477</script>
vendor: 1 bytes, line 477
477
478<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 479</script>
vendor: 1 bytes, line 479
479
480<script id='scb4127' type='text/javascript' async='' src='https://peakpilates.eu/cdn/shopifycloud/privacy-banner/storefront-banner.js'></script>
480<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://peakpilates.eu/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 481<style id="shopify-accelerated-checkout-cart"> 482 #shopify-buyer-consent { 483 margin-top: 1em; 484 display: inline-block; 485 width: 100%; 486} 487 488#shopify-buyer-consent.hidden { 489 display: none; 490} 491 492#shopify-subscription-policy-button { 493 background: none; 494 border: none; 495 padding: 0; 496 text-decoration: underline; 497 font-size: inherit; 498 cursor: pointer; 499} 500 501#shopify-subscription-policy-button::before { 502 box-shadow: none; 503} 504 505 </style>
506<script id="sections-script" data-sections="footer" defer="defer" src="//peakpilates.eu/cdn/shop/t/4/compiled_assets/scripts.js?v=106146054796332795651789404899"></script>
vendor: 1 bytes, line 506
506
507<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
507 508<!-- CC Custom Head Start --><!-- CC Custom Head End --> 509 510 511 512 513<!-- GEO REDIRECT REDIRECTS USERS TO .COM IF IP IS NOT IN EMEA-->
514<script type="text/javascript" src="//geoip-js.com/js/apis/geoip2/v2.1/geoip2.js"></script>
514 515
516<script type="text/javascript"> 517 function runGeoRedirect() { 518 519 /* ââ TEST MODE ââââââââââââââââââââââââââââââââââââââââââââââââââââ 520 Append ?georedirect=test to any URL to switch test mode ON for 521 the rest of the tab session. In test mode the script: 522 - LOGS what it would do but never actually redirects 523 - runs on every page load (session flag ignored) 524 - also runs on .myshopify.com preview domains 525 - exposes window.__geoSimulate(countryCode, continentCode) in 526 the console to simulate visitors from any country 527 Turn off: close the tab, or run 528 sessionStorage.removeItem('geoRedirectTest') in the console. */ 529 var testMode = false; 530 try { 531 if (window.location.search.indexOf('georedirect=test') > -1) { 532 sessionStorage.setItem('geoRedirectTest', '1'); 533 } 534 testMode = sessionStorage.getItem('geoRedirectTest') === '1'; 535 } catch (e) { /* sessionStorage unavailable â test mode off */ } 536 if (testMode) console.log('%cGeoIP TEST MODE â no real redirects will happen', 'color:orange;font-weight:bold'); 537 538 /* ââ FIX 1: Run at most once per browsing session âââââââââââââââââ 539 The geo decision is made on the first page load only. Anything the 540 visitor does after that (including manually picking a language in 541 the Shopify selector) is respected and never overridden. */ 542 try { 543 if (!testMode && sessionStorage.getItem('geoRedirectChecked')) { 544 console.log('GeoIP: already evaluated this session, skipping'); 545 return; 546 } 547 // Set the flag BEFORE redirecting so the back button / the target 548 // page never triggers a second evaluation. 549 if (!testMode) sessionStorage.setItem('geoRedirectChecked', '1'); 550 } catch (e) { 551 // sessionStorage unavailable (some privacy modes) â continue anyway 552 } 553 554 var arrPath = window.location.pathname.split('/').filter(function (p) { return p.trim() !== ''; }); 555 var language = (navigator.language || navigator.userLanguage).substring(0, 2).toLowerCase(); 556 var publishedLocalePaths = ['de', 'es', 'fr', 'it', 'nl']; 557 var manualLocaleStorageKey = 'maddoggGeoCountrySync:v3:' + window.location.hostname + ':manual_locale'; 558 var manualLocaleMaxAgeMs = 180 * 24 * 60 * 60 * 1000; 559 560 function readPersistentManualLocale() { 561 try { 562 var raw = window.localStorage.getItem(manualLocaleStorageKey); 563 if (!raw) return ''; 564 var parsed = JSON.parse(raw); 565 var locale = String(parsed.locale || '').trim().toLowerCase().replace('_', '-').split('-')[0]; 566 var selectedAt = Date.parse(parsed.at || 0); 567 var ageMs = Date.now() - selectedAt; 568 var supported = locale === 'en' || publishedLocalePaths.indexOf(locale) > -1; 569 if (!supported || !isFinite(selectedAt) || ageMs < 0 || ageMs > manualLocaleMaxAgeMs) { 570 window.localStorage.removeItem(manualLocaleStorageKey); 571 return ''; 572 } 573 return locale; 574 } catch (e) { 575 return ''; 576 } 577 } 578 579 function localeFromPathSegment(value) { 580 var match = String(value || '').trim().toLowerCase().match(/^([a-z]{2})(?:-[a-z]{2})?$/); 581 if (!match) return ''; 582 return match[1] === 'en' || publishedLocalePaths.indexOf(match[1]) > -1 ? match[1] : ''; 583 } 584 585 // Never run on Shopify preview domains (unless in test mode) 586 if (!testMode && window.location.hostname.indexOf('.myshopify.com') > -1) { 587 console.log('GeoIP: Shopify preview domain, skipping redirect'); 588 return; 589 } 590 591 // Respect an explicitly selected Shopify locale path, including 592 // market-aware routes such as /en-es, /es-es and /en-nl. 593 if (arrPath.length > 0 && localeFromPathSegment(arrPath[0])) { 594 console.log('GeoIP: explicit Shopify locale path selected, skipping redirect'); 595 return; 596 } 597 598 var sitePrefix = 'https://'; 599 /* ââ EMEA storefront domain âââââââââââââââââââââââââââââââââââââââ */ 600 var internationalSite = 'peakpilates.eu'; 601 /* List ONLY the locales actually published on peakpilates.eu. 602 To verify: open your preview URL + /de (e.g. store.myshopify.com/de) 603 â if translated content loads, that locale is published; if it 604 404s, remove it from this list. */ 605 var emeaPublishedLocales = ['de', 'es', 'fr', 'it', 'nl']; 606 var usSiteHost = 'peakpilates.com'; 607 var regions = ['NA', 'SA', 'OC', 'AS']; 608 var countries = ['US', 'CA', 'BR', 'MX', 'CL', 'AR', 'CU', 'AU', 'NZ']; 609 var excludedCountries = ['IL', 'AE', 'BH', 'SA', 'TR', 'ZA']; 610 var ipAddresses = ['76.80.194.178', '104.187.115.50']; 611 612 var CurrentPage = window.location.pathname + window.location.search; 613 var usSite = sitePrefix + usSiteHost + CurrentPage; 614 var usSiteEs = sitePrefix + usSiteHost + '/es' + CurrentPage; 615 616 /* ââ FIX 3: Same-page guard âââââââââââââââââââââââââââââââââââââââ 617 Never redirect to the exact URL we are already on. This prevents
618 self-redirect reloads when the script ships in the theme of the 619 store it would redirect to (peakpilates.com or peakpilates.eu). */ 620 var redirectTo = function (url, label) { 621 var a = document.createElement('a'); 622 a.href = url; 623 var samePage = 624 a.hostname === window.location.hostname && 625 a.pathname.replace(/\/+$/, '') === window.location.pathname.replace(/\/+$/, ''); 626 if (samePage) { 627 console.log('GeoIP: already on target page, no redirect needed (' + label + ')'); 628 return; 629 } 630 if (testMode) { 631 console.log('%cGeoIP [TEST]: WOULD redirect -> ' + label + ': ' + url, 'color:orange'); 632 return; 633 } 634 console.log('GeoIP: -> ' + label, url); 635 window.location.href = url; 636 }; 637 638 var onSuccess = function (geoipResponse) { 639 if (!geoipResponse.country || !geoipResponse.country.iso_code) { 640 console.log('GeoIP: no country code returned'); 641 return; 642 } 643 var ip = geoipResponse.traits.ip_address; 644 var region = geoipResponse.continent.code.toUpperCase(); 645 var country = geoipResponse.country.iso_code.toUpperCase(); 646 console.log('GeoIP resolved -- IP:', ip, '| Country:', country, '| Region:', region); 647 648 if (ipAddresses.indexOf(ip) > -1) { 649 console.log('GeoIP: IP is excluded, skipping redirect'); 650 return; 651 } 652 if (excludedCountries.indexOf(country) > -1) { 653 console.log('GeoIP: country is excluded, skipping redirect'); 654 return; 655 } 656 657 if (countries.indexOf(country) > -1 || regions.indexOf(region) > -1) { 658 // Americas / Oceania / Asia -> US storefront 659 if (arrPath.length === 0 && language === 'es') { 660 redirectTo(usSiteEs, 'US Spanish site'); 661 } else { 662 redirectTo(usSite, 'US site'); 663 } 664 } else if (region === 'EU' || region === 'AF') { 665 /* ââ All EMEA visitors -> EMEA storefront (peakpilates.eu) âââââ 666 (Middle East key markets are handled by excludedCountries 667 above; other Asian countries route to the US site via the 668 regions list.) 669 Locale is chosen by COUNTRY first, then browser language, 670 then the store default (English, no prefix). */ 671 var countryLocaleMap = { 672 DE: 'de', AT: 'de', CH: 'de', 673 FR: 'fr', MC: 'fr', LU: 'fr', 674 IT: 'it', SM: 'it', 675 NL: 'nl', 676 ES: 'es', AD: 'es' 677 // Multilingual countries not listed (e.g. BE) fall back to 678 // the visitor's browser language below. 679 }; 680 var manualLocale = readPersistentManualLocale(); 681 var locale = manualLocale || 682 countryLocaleMap[country] || 683 (emeaPublishedLocales.indexOf(language) > -1 ? language : ''); 684 // English is the unprefixed EMEA route; other values must be published. 685 if (locale && locale !== 'en' && emeaPublishedLocales.indexOf(locale) === -1) locale = ''; 686 var localePrefix = locale && locale !== 'en' ? '/' + locale : ''; 687 var intlUrl = sitePrefix + internationalSite + localePrefix + CurrentPage; 688 redirectTo(intlUrl, 'EMEA site' + (locale ? ' (' + locale + ')' : '')); 689 } else { 690 console.log('GeoIP: no redirect rule matched for', country, region, language); 691 } 692 }; 693 694 var onError = function (error) { 695 console.warn('GeoIP lookup failed:', error); 696 }; 697 698 /* In test mode, expose a console helper to simulate any visitor: 699 __geoSimulate('DE', 'EU') // German visitor 700 __geoSimulate('US', 'NA') // US visitor 701 __geoSimulate('TR', 'AS') // excluded country 702 Combine with a browser-language change to test the es/de paths. */ 703 if (testMode) { 704 window.__geoSimulate = function (countryCode, continentCode) { 705 onSuccess({ 706 country: { iso_code: countryCode }, 707 continent: { code: continentCode }, 708 traits: { ip_address: '0.0.0.0' } 709 }); 710 }; 711 console.log('GeoIP [TEST]: __geoSimulate(country, continent) is available in the console'); 712 } 713 714 // Wait for the geoip2 library to be available before calling it 715 var attempts = 0; 716 var waitForGeoIP = setInterval(function () { 717 attempts++; 718 if (typeof geoip2 !== 'undefined') { 719 clearInterval(waitForGeoIP); 720 console.log('GeoIP: library ready, running lookup...'); 721 geoip2.country(onSuccess, onError); 722 } else if (attempts > 20) { 723 clearInterval(waitForGeoIP); 724 console.warn('GeoIP: library never loaded after 2s, giving up'); 725 } 726 }, 100); 727 } 728 729 document.addEventListener('DOMContentLoaded', runGeoRedirect); 730</script>
730 731 732<!--HIDDEN PRICING FOR COUNTRY NOT LISTED WITHIN THE ALLOWED COUNTRIES-->
733<script type="text/javascript"> 734(function() { 735 var allowedCountries = ["NL","BE","LU","DE","ZA","NO","IS"]; 736 737 function togglePricingVisibility(countryCode) { 738 var isAllowed = allowedCountries.indexOf(countryCode) > -1; 739 document.querySelectorAll('#pp-price-allowed, #pp-atc-allowed, .pp-price-allowed').forEach(function(el) { 740 el.style.display = isAllowed ? '' : 'none'; 741 }); 742 document.querySelectorAll('#pp-atc-fallback, .pp-price-fallback').forEach(function(el) { 743 el.style.display = isAllowed ? 'none' : ''; 744 }); 745 } 746 747 function runPricingGeoCheck() { 748 if (typeof geoip2 === 'undefined') return; 749 geoip2.country(function(geoipResponse) { 750 if (!geoipResponse.country || !geoipResponse.country.iso_code) return; 751 togglePricingVisibility(geoipResponse.country.iso_code.toUpperCase()); 752 }, function() { 753 togglePricingVisibility(''); // on lookup failure, default to hidden 754 }); 755 } 756 757 if (document.readyState === 'loading') { 758 document.addEventListener('DOMContentLoaded', runPricingGeoCheck); 759 } else { 760 runPricingGeoCheck(); 761 } 762})(); 763</script>
763 764
765<script id="maddogg-geo-country-sync"> 766 /** 767 * Geo Country + Locale Sync 768 * --------------------------------------------------------------- 769 * Purpose: automatically select a visitor's storefront COUNTRY 770 * (currency, shipping region, Shopify country_code) AND their 771 * LANGUAGE (locale_code) based on their detected geo-IP location. 772 * 773 * How it decides the country: 774 * 1. Tries to read the country from a "server-timing" response 775 * header on a HEAD request to the current page. 776 * 2. If that fails, polls for a geoip2 widget/library for up to 777 * 4 seconds. 778 * 3. If both fail, falls back to `fallbackCountry` (NL). 779 * 780 * How it decides the language: 781 * Once a country is known, `countryLocaleMap` maps that country 782 * to a language (e.g. FR/BE/LU/MC -> fr, DE/AT/CH/LI -> de, 783 * IT/SM/VA -> it, ES -> es, everything else -> fallbackLocale). 784 * The resulting locale is only applied if it's present in 785 * `availableLocales` (the actual list of published site 786 * locales) -- language selection always rides on the back of 787 * country detection, it is not detected independently. 788 * 789 * How it applies the change: 790 * Prefers clicking Shopify's native country/locale selector 791 * buttons if present on the page; otherwise builds and submits 792 * a hidden form POST to /localization and redirects back to an 793 * equivalent, correctly-prefixed URL. 794 * 795 * Guardrails (so it doesn't fight the visitor): 796 * - Skipped entirely on /cart, /checkout, /checkouts, /account 797 * pages, or when the URL has ?geocountry=off. 798 * - Never overrides a country/language the visitor picked 799 * manually this session (tracked in storage). 800 * - Never overrides a URL that already has an explicit locale 801 * prefix (e.g. /fr/...). 802 * - Won't repeat the same switch attempt within a 10-minute 803 * window, to avoid redirect loops. 804 * - Only switches to a country/locale present in the 805 * `availableCountries` / `availableLocales` allowlists. 806 * --------------------------------------------------------------- 807 */ 808 (function () { 809 var marker = 'MADDOGG_GEO_COUNTRY_SYNC'; // namespace used for the debug object + storage keys 810 var version = 'v3'; // bumping this changes storage keys, effectively resetting stored manual/attempt state 811 var fallbackCountry = 'NL'; // used when geo-detection fails AND when the detected country isn't in availableCountries 812 var fallbackLocale = 'en'; // used when a country has no entry in countryLocaleMap, or its target locale isn't published 813 var supportedLocales = ['de', 'es', 'fr', 'it', 'nl']; // used only to recognize/strip an existing locale prefix from the URL path (localeRoot/localizedReturnTo) â NOT the gate for switching, see availableLocales below 814 815 // Pulled from Shopify's live localization context via Liquid, so 816 // these always reflect what the page is ACTUALLY set to right now 817 // (not a hardcoded guess) â this is what syncCountry()/syncLocale() 818 // compare the detected target against to decide whether a switch 819 // is needed. 820 var currentCountry = 'NL'; 821 var currentLocale = 'en'; 822 823 // Countries this store's Shopify Market is configured to serve â 824 // syncCountry() rejects any detected country not in this list and 825 // falls back to fallbackCountry instead. 826 var availableCountries = ['AF', 827'AL', 828'DE', 829'AD', 830'AO', 831'SA', 832'DZ', 833'AM', 834'AT', 835'AZ', 836'BH', 837'BE', 838'BJ', 839'BY', 840'BA', 841'BW', 842'BG', 843'BF', 844'BI', 845'CV', 846'CM', 847'QA', 848'TD', 849'CZ', 850'CY', 851'VA', 852'HR', 853'DK', 854'EG', 855'AE', 856'ER', 857'SK', 858'SI', 859'ES', 860'EE', 861'ET', 862'FI', 863'FR', 864'GA', 865'GM', 866'GE', 867'GH', 868'GI', 869'GR', 870'GN', 871'GW', 872'HU', 873'IQ', 874'IE', 875'IS', 876'IL', 877'IT', 878'JO', 879'KZ', 880'KE', 881'KW', 882'LS', 883'LV', 884'LB', 885'LR', 886'LI', 887'LT', 888'LU', 889'MK', 890'MG', 891'MW', 892'ML', 893'MT', 894'MA', 895'MU', 896'MR', 897'MC', 898'ME', 899'MZ', 900'NA', 901'NE', 902'NG', 903'NO', 904'OM', 905'NL', 906'PK', 907'PL', 908'PT', 909'GB', 910'CF', 911'RW', 912'RO', 913'RU', 914'EH', 915'SM', 916'SN', 917'RS', 918'SL', 919'SO', 920'ZA', 921'SD', 922'SE', 923'CH', 924'TZ', 925'TJ', 926'TG', 927'TN', 928'TM', 929'TR', 930'UA', 931'UG', 932'YE', 933'DJ', 934'ZM', 935'ZW' 936]; 937 // FIX: was ['en', 'es'] â this list is what actually gates locale 938 // switching (desiredLocaleForCountry, readManualSelection, pathLocale 939 // all check against it), so de/fr/it/nl were silently falling back 940 // to English even though countryLocaleMap targeted them correctly. 941 var availableLocales = ['en', 942'es', 943'de', 944'fr', 945'it', 946'nl' 947]; 948 // Maps a detected country to the language it should switch to. 949 // Any country not listed here falls through to fallbackLocale. 950 var countryLocaleMap = { 951 ES: 'es', 952 FR: 'fr', MC: 'fr', BE: 'fr', LU: 'fr', 953 DE: 'de', AT: 'de', CH: 'de', LI: 'de', 954 IT: 'it', SM: 'it', VA: 'it', 955 // NOTE: left as 'en' per the original â flip to 'nl' if Dutch 956 // visitors from the Netherlands should land on the Nederlands 957 // version automatically instead of English. 958 NL: 'en' 959 }; 960 961 // --- Small utilities ------------------------------------------------- 962 963 // Trims/uppercases a country code so comparisons are consistent 964 // regardless of casing or stray whitespace (e.g. " es " -> "ES"). 965 function normalizeCountry(value) { 966 return String(value || '').trim().toUpperCase(); 967 } 968 969 // Trims/lowercases a locale and strips any region subtag, so 970 // "EN-US" and "en_us" both normalize to "en". 971 function normalizeLocale(value) { 972 return String(value || '').trim().toLowerCase().replace('_', '-').split('-')[0]; 973 } 974 975 // Builds a storage key scoped by script version + hostname, so 976 // stored state doesn't leak across domains or stale script versions. 977 function storageKey(name) { 978 return 'maddoggGeoCountrySync:' + version + ':' + window.location.hostname + ':' + name; 979 } 980 981 // sessionStorage read/write â used for per-tab-session state (manual 982 // country pick, and the "recent attempt" throttle for both types). 983 function storageGet(key) { 984 try { return window.sessionStorage.getItem(key); } catch (e) { return null; } 985 } 986 987 function storageSet(key, value) { 988 try { window.sessionStorage.setItem(key, value); } catch (e) {} 989 } 990 991 // How long a manually-picked locale is remembered across sessions (180 days). 992 var manualLocaleMaxAgeMs = 180 * 24 * 60 * 60 * 1000; 993 994 // localStorage read/write â used only for the manual locale pick, 995 // since that one is meant to persist across browser sessions 996 // (unlike the manual country pick, which is session-only). 997 function preferenceGet(key) { 998 try { return window.localStorage.getItem(key); } catch (e) { return null; } 999 } 1000 1001 function preferenceSet(key, value) { 1002 try { window.localStorage.setItem(key, value); } catch (e) {} 1003 } 1004 1005 function preferenceRemove(key) { 1006 try { window.localStorage.removeItem(key); } catch (e) {} 1007 } 1008 1009 // Writes the current status/reason to window.MaddoggGeoCountrySync 1010 // so it can be inspected from the console for debugging 1011 // (e.g. `window.MaddoggGeoCountrySync` in devtools). 1012 function setDebug(payload) { 1013 window.MaddoggGeoCountrySync = Object.assign({ marker: marker, version: version }, payload || {}); 1014 } 1015
1016 // Decides whether the script should do nothing at all on this page: 1017 // opted out via ?geocountry=off, or on a sensitive page (cart, 1018 // checkout, account) where silently changing country/currency 1019 // mid-flow could break the user's cart or session. 1020 function shouldSkip() { 1021 if (window.location.search.indexOf('geocountry=off') > -1) { 1022 setDebug({ status: 'skipped', reason: 'disabled_by_query' }); 1023 return true; 1024 } 1025 var path = window.location.pathname || ''; 1026 if (['/cart', '/checkout', '/checkouts', '/account'].some(function (prefix) { return path === prefix || path.indexOf(prefix + '/') === 0; })) { 1027 setDebug({ status: 'skipped', reason: 'sensitive_path', path: path }); 1028 return true; 1029 } 1030 return false; 1031 } 1032 1033 // Looks up whether the visitor already manually chose a country or 1034 // locale, so the auto-sync can avoid overriding their choice. 1035 // - 'country' selections live only in sessionStorage (cleared each tab session). 1036 // - 'locale' selections are also mirrored to localStorage and expire 1037 // after manualLocaleMaxAgeMs (180 days), and are discarded if the 1038 // stored locale isn't in availableLocales. 1039 function readManualSelection(type) { 1040 var key = storageKey('manual_' + type); 1041 var raw = storageGet(key); 1042 if (!raw && type === 'locale') raw = preferenceGet(key); 1043 if (!raw) return null; 1044 1045 try { 1046 var parsed = JSON.parse(raw); 1047 if (type === 'locale') { 1048 var locale = normalizeLocale(parsed.locale); 1049 var selectedAt = Date.parse(parsed.at || 0); 1050 var ageMs = Date.now() - selectedAt; 1051 if ( 1052 availableLocales.indexOf(locale) === -1 || 1053 !isFinite(selectedAt) || 1054 ageMs < 0 || 1055 ageMs > manualLocaleMaxAgeMs 1056 ) { 1057 preferenceRemove(key); 1058 return null; 1059 } 1060 parsed.locale = locale; 1061 } 1062 return parsed; 1063 } catch (e) { 1064 if (type === 'locale') { 1065 preferenceRemove(key); 1066 return null; 1067 } 1068 return { raw: raw }; 1069 } 1070 } 1071 1072 // Listens (in the capture phase, so it fires before Shopify's own 1073 // handlers) for clicks on the native country/locale selector 1074 // buttons, and records that as a manual choice. This is what lets 1075 // readManualSelection() later recognize "the visitor picked this 1076 // themselves" and stop the script from overriding it. 1077 function installManualSelectionGuard() { 1078 document.addEventListener('click', function (event) { 1079 var countryTarget = event.target && event.target.closest ? event.target.closest('button[name="country_code"], input[name="country_code"]') : null; 1080 if (countryTarget && !window.__MaddoggGeoCountrySyncAutoSubmitting) { 1081 storageSet(storageKey('manual_country'), JSON.stringify({ country: normalizeCountry(countryTarget.value), at: new Date().toISOString() })); 1082 } 1083 var localeTarget = event.target && event.target.closest ? event.target.closest('button[name="locale_code"], input[name="locale_code"], button[name="language_code"], input[name="language_code"]') : null; 1084 if (localeTarget && !window.__MaddoggGeoCountrySyncAutoSubmitting) { 1085 var key = storageKey('manual_locale'); 1086 var payload = JSON.stringify({ 1087 locale: normalizeLocale(localeTarget.value), 1088 at: new Date().toISOString() 1089 }); 1090 storageSet(key, payload); 1091 preferenceSet(key, payload); 1092 } 1093 }, true); 1094 } 1095 1096 // Pulls a country code out of a Shopify "server-timing" response 1097 // header, if present (format looks like: country;desc="ES"). 1098 function parseServerTimingCountry(value) { 1099 var text = String(value || ''); 1100 var match = text.match(/(?:^|,)\s*country;desc="?([A-Z]{2})"?/i); 1101 return match ? normalizeCountry(match[1]) : ''; 1102 } 1103 1104 // Detection method #1: makes a lightweight HEAD request to the 1105 // current URL and reads the country Shopify's edge/CDN already 1106 // resolved for this visitor from the response headers. Fastest/most 1107 // reliable method when it works; resolves to '' on any failure. 1108 function detectCountryFromServerTiming() { 1109 if (!window.fetch) return Promise.resolve(''); 1110 return fetch(window.location.href, { 1111 method: 'HEAD', 1112 cache: 'no-store', 1113 credentials: 'same-origin' 1114 }).then(function (response) { 1115 return parseServerTimingCountry(response.headers && response.headers.get('server-timing')); 1116 }).catch(function () { return ''; }); 1117 } 1118 1119 // Detection method #2 (fallback): polls for a third-party geoip2 1120 // library/widget (not part of Shopify core â must be loaded by 1121 // another app/script on the store) for up to `timeoutMs`, and asks 1122 // it directly for the visitor's country by IP. Resolves to '' if 1123 // geoip2 never appears or errors out. 1124 function detectCountryFromGeoIP(timeoutMs) { 1125 return new Promise(function (resolve) { 1126 var resolved = false;
1127 function finish(country) { 1128 if (resolved) return; 1129 resolved = true; 1130 resolve(normalizeCountry(country)); 1131 } 1132 var attempts = 0; 1133 var timer = window.setInterval(function () { 1134 attempts += 1; 1135 if (window.geoip2 && window.geoip2.country) { 1136 window.clearInterval(timer); 1137 try { 1138 window.geoip2.country(function (geoipResponse) { 1139 finish(geoipResponse && geoipResponse.country && geoipResponse.country.iso_code); 1140 }, function () { finish(''); }); 1141 } catch (e) { finish(''); } 1142 } else if (attempts > Math.ceil(timeoutMs / 100)) { 1143 window.clearInterval(timer); 1144 finish(''); 1145 } 1146 }, 100); 1147 }); 1148 } 1149 1150 // Orchestrates the two detection methods in order: try 1151 // server-timing first, then geoip2, then give up and use 1152 // fallbackCountry. Calls back with (country, source) where source 1153 // records which method produced the result (useful for debugging 1154 // via window.MaddoggGeoCountrySync). 1155 function detectTargetCountry(callback) { 1156 detectCountryFromServerTiming().then(function (serverCountry) { 1157 if (serverCountry) { 1158 callback(serverCountry, 'shopify_server_timing'); 1159 return; 1160 } 1161 detectCountryFromGeoIP(4000).then(function (geoCountry) { 1162 if (geoCountry) { 1163 callback(geoCountry, 'geoip2'); 1164 } else { 1165 callback(fallbackCountry, 'fallback_unknown_country'); 1166 } 1167 }); 1168 }); 1169 } 1170 1171 // Returns the base path to POST the localization form to â prefers 1172 // Shopify's own Shopify.routes.root if available, else falls back 1173 // to stripping any recognized locale prefix off the current path. 1174 function localeRoot() { 1175 var root = ''; 1176 try { root = window.Shopify && window.Shopify.routes && window.Shopify.routes.root; } catch (e) {} 1177 if (root && root.charAt(root.length - 1) !== '/') root += '/'; 1178 if (root) return root; 1179 var first = normalizeLocale((window.location.pathname || '').split('/').filter(Boolean)[0]); 1180 if (supportedLocales.indexOf(first) > -1) return '/' + first + '/'; 1181 return '/'; 1182 } 1183 1184 // Reads an explicit locale prefix off the current URL path (e.g. 1185 // "/fr/products/..." -> "fr"), but only if that locale is actually 1186 // published (in availableLocales). Used so the script won't 1187 // override a URL the visitor is already explicitly viewing in a 1188 // given language. 1189 function pathLocale() { 1190 var firstSegment = (window.location.pathname || '').split('/').filter(Boolean)[0] || ''; 1191 if (!/^[a-z]{2}(?:-[a-z]{2})?$/i.test(firstSegment)) return ''; 1192 var first = normalizeLocale(firstSegment); 1193 return availableLocales.indexOf(first) > -1 ? first : ''; 1194 } 1195 1196 // Looks up the language a given country should switch to
1197 // (via countryLocaleMap), and guards it against availableLocales â 1198 // if the mapped locale isn't actually published on this store, it 1199 // falls back to fallbackLocale instead. 1200 function desiredLocaleForCountry(country) { 1201 var target = normalizeLocale(countryLocaleMap[normalizeCountry(country)] || fallbackLocale); 1202 return availableLocales.indexOf(target) > -1 ? target : fallbackLocale; 1203 } 1204 1205 // Builds the URL (path + query string) to redirect back to after 1206 // the localization form submits, rewriting the locale prefix to 1207 // match targetLocale (removing it entirely for the fallback locale, 1208 // since that one is assumed to live at the root with no prefix). 1209 function localizedReturnTo(targetLocale) { 1210 targetLocale = normalizeLocale(targetLocale || fallbackLocale); 1211 var path = window.location.pathname || '/'; 1212 var search = window.location.search || ''; 1213 var parts = path.split('/'); 1214 var first = normalizeLocale(parts[1]); 1215 var hasLocalePrefix = supportedLocales.indexOf(first) > -1; 1216 if (hasLocalePrefix) parts.splice(1, 1); 1217 var cleanPath = parts.join('/') || '/'; 1218 if (cleanPath.charAt(0) !== '/') cleanPath = '/' + cleanPath; 1219 if (targetLocale && targetLocale !== fallbackLocale && availableLocales.indexOf(targetLocale) > -1) { 1220 cleanPath = '/' + targetLocale + (cleanPath === '/' ? '' : cleanPath); 1221 } 1222 return cleanPath + search; 1223 } 1224 1225 function returnToPath(targetLocale) { 1226 return localizedReturnTo(targetLocale || currentLocale || fallbackLocale); 1227 } 1228 1229 // Records "we just tried to switch to this country/locale" in 1230 // sessionStorage, timestamped, so recentAttempt() can throttle 1231 // repeat attempts and prevent redirect loops. 1232 function markAttempt(type, target, source, method) { 1233 storageSet(storageKey('attempt_' + type), JSON.stringify({ 1234 type: type, 1235 fromCountry: normalizeCountry(currentCountry), 1236 fromLocale: normalizeLocale(currentLocale), 1237 to: type === 'country' ? normalizeCountry(target) : normalizeLocale(target), 1238 source: source, 1239 method: method, 1240 at: new Date().toISOString() 1241 })); 1242 } 1243 1244 // Checks whether a switch to this exact target was already 1245 // attempted within the last 10 minutes â if so, the caller skips 1246 // trying again, which is what stops the script from looping if the 1247 // switch didn't actually take effect (e.g. blocked by browser, 1248 // Shopify rejecting it, etc). 1249 function recentAttempt(type, target) { 1250 var raw = storageGet(storageKey('attempt_' + type)); 1251 if (!raw) return null; 1252 try { 1253 var parsed = JSON.parse(raw); 1254 var expected = type === 'country' ? normalizeCountry(target) : normalizeLocale(target); 1255 var actual = type === 'country' ? normalizeCountry(parsed.to) : normalizeLocale(parsed.to); 1256 if (actual !== expected) return null; 1257 var ageMs = Date.now() - Date.parse(parsed.at || 0); 1258 return ageMs >= 0 && ageMs < 10 * 60 * 1000 ? parsed : null; 1259 } catch (e) { return null; } 1260 } 1261 1262 // Tries to find and click Shopify's own native country/locale 1263 // selector button/input for the target value (e.g. a 1264 // button[name="country_code"][value="ES"]), letting Shopify's own 1265 // JS handle the actual switch instead of us submitting a form 1266 // directly. Returns false (and does nothing) if no matching 1267 // button exists on the page for this theme. 1268 function clickButton(name, targetValue) { 1269 var normalizedTarget = name === 'country_code' ? normalizeCountry(targetValue) : normalizeLocale(targetValue); 1270 var selector = 'button[name="' + name + '"], input[name="' + name + '"]'; 1271 var buttons = Array.prototype.slice.call(document.querySelectorAll(selector)); 1272 var button = buttons.find(function (candidate) { 1273 var value = candidate.value || candidate.getAttribute('value'); 1274 return (name === 'country_code' ? normalizeCountry(value) : normalizeLocale(value)) === normalizedTarget; 1275 }); 1276 if (!button) return false;
1277 window.__MaddoggGeoCountrySyncAutoSubmitting = true; 1278 button.click(); 1279 window.setTimeout(function () { window.__MaddoggGeoCountrySyncAutoSubmitting = false; }, 3000); 1280 return true; 1281 } 1282 1283 // Sets (creating if needed) a hidden input on a form â used to 1284 // build up the fallback /localization POST when no clickable 1285 // selector button is found on the page. 1286 function ensureHidden(form, name, value) { 1287 var input = form.querySelector('input[name="' + name + '"]'); 1288 if (!input) { 1289 input = document.createElement('input'); 1290 input.type = 'hidden'; 1291 input.name = name; 1292 form.appendChild(input); 1293 } 1294 input.value = value; 1295 } 1296 1297 // Fallback path when no clickable native selector button exists: 1298 // reuses an existing Shopify localization form on the page if one 1299 // is found, otherwise builds a hidden one, sets country_code / 1300 // locale_code / return_to, and submits it directly â this is what 1301 // actually performs the country/locale switch server-side and 1302 // redirects the visitor back to an equivalent URL. 1303 function submitLocalizationForm(targetCountry, targetLocale, type) { 1304 var existingForm = document.querySelector('form[action*="/localization"], form.shopify-localization-form'); 1305 var form = existingForm || document.createElement('form'); 1306 if (!existingForm) { 1307 form.method = 'post'; 1308 form.action = localeRoot() + 'localization'; 1309 form.style.display = 'none'; 1310 document.body.appendChild(form); 1311 } 1312 ensureHidden(form, 'form_type', 'localization'); 1313 ensureHidden(form, '_method', 'put'); 1314 ensureHidden(form, 'utf8', 'â'); 1315 if (targetCountry) ensureHidden(form, 'country_code', normalizeCountry(targetCountry)); 1316 if (targetLocale) ensureHidden(form, 'locale_code', normalizeLocale(targetLocale)); 1317 ensureHidden(form, 'return_to', returnToPath(targetLocale)); 1318 window.__MaddoggGeoCountrySyncAutoSubmitting = true; 1319 form.submit(); 1320 return true; 1321 } 1322 1323 // Decides whether/how to switch the storefront's COUNTRY to 1324 // targetCountry, and does it. Returns: 1325 // true -> country is already correct (or was skipped for a valid 1326 // reason), caller may proceed to sync the locale too 1327 // false -> a switch was just kicked off (page will reload/redirect 1328 // shortly), or the switch was blocked â caller should 1329 // stop here and let this attempt play out 1330 function syncCountry(targetCountry, source) { 1331 targetCountry = normalizeCountry(targetCountry || fallbackCountry); 1332 currentCountry = normalizeCountry(currentCountry); 1333 1334 if (availableCountries.indexOf(targetCountry) === -1) { 1335 var fallbackAvailable = availableCountries.indexOf(fallbackCountry) > -1; 1336 setDebug({ status: 'skipped', reason: 'geo_country_not_available', currentCountry: currentCountry, targetCountry: targetCountry, fallbackCountry: fallbackCountry, source: source }); 1337 if (!fallbackAvailable) return false; 1338 targetCountry = fallbackCountry; 1339 source = source + '_fallback_country'; 1340 } 1341 1342 // Already on the right country (per `currentCountry`) â nothing to do. 1343 if (targetCountry === currentCountry) return true; 1344 1345 // Visitor already manually chose a different country this session â respect it, don't override. 1346 var manual = readManualSelection('country'); 1347 if (manual && normalizeCountry(manual.country) && normalizeCountry(manual.country) !== targetCountry) { 1348 setDebug({ status: 'skipped', reason: 'manual_country_selected_this_session', currentCountry: currentCountry, targetCountry: targetCountry, manualCountry: normalizeCountry(manual.country), source: source }); 1349 return false; 1350 } 1351 1352 // Already tried switching to this country recently â don't retry/loop. 1353 var attempt = recentAttempt('country', targetCountry); 1354 if (attempt) { 1355 setDebug({ status: 'skipped', reason: 'recent_country_attempt_already_made', currentCountry: currentCountry, targetCountry: targetCountry, source: source, attempt: attempt }); 1356 return false;
1357 } 1358 1359 // Preferred path: click the theme's own native country selector button. 1360 if (clickButton('country_code', targetCountry)) { 1361 markAttempt('country', targetCountry, source, 'button_click'); 1362 setDebug({ status: 'submitting', stage: 'country', method: 'button_click', currentCountry: currentCountry, targetCountry: targetCountry, source: source }); 1363 return false; 1364 } 1365 1366 // No clickable button found â fall back to submitting the 1367 // /localization form directly (also carries the target locale 1368 // along, so country + language switch in one request/redirect). 1369 var targetLocale = desiredLocaleForCountry(targetCountry); 1370 markAttempt('country', targetCountry, source, 'form_submit'); 1371 setDebug({ status: 'submitting', stage: 'country', method: 'form_submit', currentCountry: currentCountry, targetCountry: targetCountry, targetLocale: targetLocale, source: source }); 1372 submitLocalizationForm(targetCountry, targetLocale, 'country'); 1373 return false; 1374 } 1375 1376 // Decides whether/how to switch the storefront's LANGUAGE to match 1377 // targetCountry (via desiredLocaleForCountry). Only reached once 1378 // syncCountry() has confirmed the country side is already correct 1379 // (see syncCountryAndLocale below). 1380 function syncLocale(targetCountry, source) { 1381 var targetLocale = desiredLocaleForCountry(targetCountry); 1382 var current = normalizeLocale(currentLocale || fallbackLocale); 1383 var explicitPathLocale = pathLocale(); 1384 1385 // Target locale isn't published on this store â nothing valid to switch to. 1386 if (!targetLocale || availableLocales.indexOf(targetLocale) === -1) { 1387 setDebug({ status: 'ready', reason: 'target_locale_unavailable', currentCountry: normalizeCountry(currentCountry), targetCountry: normalizeCountry(targetCountry), currentLocale: current, targetLocale: targetLocale, source: source }); 1388 return; 1389 } 1390 // Already on the right locale (per `currentLocale`) â done. 1391 if (current === targetLocale) { 1392 setDebug({ status: 'ready', reason: 'country_and_locale_selected', currentCountry: normalizeCountry(currentCountry), targetCountry: normalizeCountry(targetCountry), currentLocale: current, targetLocale: targetLocale, source: source }); 1393 return; 1394 } 1395 1396 // Visitor already manually chose a different language â respect it. 1397 var manual = readManualSelection('locale'); 1398 if (manual && normalizeLocale(manual.locale) && normalizeLocale(manual.locale) !== targetLocale) { 1399 setDebug({ status: 'skipped', reason: 'manual_locale_selected_this_session', currentCountry: normalizeCountry(currentCountry), targetCountry: normalizeCountry(targetCountry), currentLocale: current, targetLocale: targetLocale, manualLocale: normalizeLocale(manual.locale), source: source }); 1400 return; 1401 } 1402 1403 // URL already has an explicit, different locale prefix â respect that instead of overriding it. 1404 if (explicitPathLocale && explicitPathLocale !== targetLocale) { 1405 setDebug({ status: 'skipped', reason: 'explicit_locale_path_selected', currentCountry: normalizeCountry(currentCountry), targetCountry: normalizeCountry(targetCountry), currentLocale: current, targetLocale: targetLocale, pathLocale: explicitPathLocale, source: source }); 1406 return; 1407 } 1408 1409 // Already tried switching to this locale recently â don't retry/loop. 1410 var attempt = recentAttempt('locale', targetLocale); 1411 if (attempt) { 1412 setDebug({ status: 'skipped', reason: 'recent_locale_attempt_already_made', currentCountry: normalizeCountry(currentCountry), targetCountry: normalizeCountry(targetCountry), currentLocale: current, targetLocale: targetLocale, source: source, attempt: attempt }); 1413 return; 1414 } 1415 1416 // Preferred path: click the theme's own native locale selector button.
1417 if (clickButton('locale_code', targetLocale)) { 1418 markAttempt('locale', targetLocale, source, 'button_click'); 1419 setDebug({ status: 'submitting', stage: 'locale', method: 'button_click', currentCountry: normalizeCountry(currentCountry), targetCountry: normalizeCountry(targetCountry), currentLocale: current, targetLocale: targetLocale, source: source }); 1420 return; 1421 } 1422 1423 // No clickable button found â fall back to submitting the /localization form directly. 1424 markAttempt('locale', targetLocale, source, 'form_submit'); 1425 setDebug({ status: 'submitting', stage: 'locale', method: 'form_submit', currentCountry: normalizeCountry(currentCountry), targetCountry: normalizeCountry(targetCountry), currentLocale: current, targetLocale: targetLocale, source: source }); 1426 submitLocalizationForm(targetCountry, targetLocale, 'locale'); 1427 } 1428 1429 // Entry point called once a target country has been detected. 1430 // Country is synced first; locale is only attempted once the 1431 // country is confirmed correct (syncCountry returning anything 1432 // other than false). 1433 function syncCountryAndLocale(detectedCountry, source) { 1434 var targetCountry = normalizeCountry(detectedCountry || fallbackCountry); 1435 if (syncCountry(targetCountry, source) === false) return; 1436 syncLocale(targetCountry, source); 1437 } 1438 1439 // Script entry point: wires up the manual-selection click listener, 1440 // bails out early on sensitive/opted-out pages, then kicks off geo 1441 // detection which eventually drives syncCountryAndLocale(). 1442 function run() { 1443 installManualSelectionGuard(); 1444 if (shouldSkip()) return; 1445 detectTargetCountry(syncCountryAndLocale); 1446 } 1447 1448 if (document.readyState === 'loading') { 1449 document.addEventListener('DOMContentLoaded', run); 1450 } else { 1451 run(); 1452 } 1453 })(); 1454 </script>
1454 1455 1456 1457<style> 1458 sup{ 1459 font-family: Montserrat, sans-serif; 1460 font-size: .5em; 1461 } 1462</style> 1463 1464<!-- BEGIN app block: shopify://apps/langify/blocks/langify/b50c2edb-8c63-4e36-9e7c-a7fdd62ddb8f --><!-- BEGIN app snippet: ly-switcher-factory --> 1465 1466 1467 1468 1469<style> 1470 .ly-switcher-wrapper.ly-hide, .ly-recommendation.ly-hide, .ly-recommendation .ly-submit-btn { 1471 display: none !important; 1472 } 1473 1474 #ly-switcher-factory-template { 1475 display: none; 1476 } 1477 1478 1479 1480 1481 /* Accessibility: Focus indicators - only visible for keyboard navigation */ 1482 .ly-languages-switcher:focus-visible, 1483 .ly-languages-switcher *:focus-visible, 1484 .ly-currency-switcher:focus-visible, 1485 .ly-currency-switcher *:focus-visible, 1486 .ly-country-switcher:focus-visible, 1487 .ly-country-switcher *:focus-visible, 1488 .ly-custom-dropdown-current:focus-visible, 1489 .ly-custom-dropdown-list-element:focus-visible, 1490 .ly-languages-switcher-link:focus-visible, 1491 .ly-popup-current:focus-visible, 1492 .ly-close:focus-visible, 1493 .ly-submit-btn:focus-visible, 1494 .ly-text-input:focus-visible { 1495 outline: 2px solid #005fcc; 1496 outline-offset: 2px; 1497 } 1498 1499 @media (prefers-color-scheme: dark) { 1500 .ly-languages-switcher:focus-visible, 1501 .ly-languages-switcher *:focus-visible, 1502 .ly-currency-switcher:focus-visible, 1503 .ly-currency-switcher *:focus-visible, 1504 .ly-country-switcher:focus-visible, 1505 .ly-country-switcher *:focus-visible, 1506 .ly-custom-dropdown-current:focus-visible, 1507 .ly-custom-dropdown-list-element:focus-visible, 1508 .ly-languages-switcher-link:focus-visible, 1509 .ly-popup-current:focus-visible, 1510 .ly-close:focus-visible, 1511 .ly-submit-btn:focus-visible, 1512 .ly-text-input:focus-visible { 1513 outline-color: #66b3ff; 1514 } 1515 } 1516</style> 1517 1518 1519<template id="ly-switcher-factory-template"> 1520<div data-breakpoint="" class="ly-switcher-wrapper ly-breakpoint-1 fixed bottom_right ly-hide" style="font-size: 14px; margin: 0px 0px; "><div data-dropup="false" onclick="langify.switcher.toggleSwitcherOpen(this)" class="ly-languages-switcher ly-custom-dropdown-switcher ly-bright-theme" style=" margin: 0px 0px;"> 1521 <span role="button" tabindex="0" aria-label="Selected language: English" aria-expanded="false" aria-controls="languagesSwitcherList-1" class="ly-custom-dropdown-current" style="background: #ffffff; color: #000000; "><img class="ly-icon ly-flag-icon" src="https://cdn.shopify.com/static/images/flags/gb.svg" alt="English" aria-hidden="true"><span class="ly-custom-dropdown-current-inner ly-custom-dropdown-current-inner-text">English 1522</span> 1523<div aria-hidden="true" class="ly-arrow ly-arrow-black stroke" style="vertical-align: middle; width: 14.0px; height: 14.0px;"> 1524 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14.0 14.0" height="14.0px" width="14.0px" style="position: absolute;"> 1525 <path d="M1 4.5 L7.0 10.5 L13.0 4.5" fill="transparent" stroke="#000000" stroke-width="1px"/> 1526 </svg> 1527 </div> 1528 </span> 1529 <ul id="languagesSwitcherList-1" role="list" class="ly-custom-dropdown-list ly-is-open ly-bright-theme" style="background: #ffffff; color: #000000; "><li key="en" style="color: #000000; margin: 0px 0px;"> 1530 <a class="ly-custom-dropdown-list-element ly-languages-switcher-link ly-bright-theme" 1531 href="#" 1532 data-language-code="en" 1533 1534 lang="en" data-ly-locked="true" rel="nofollow"><img class="ly-icon ly-flag-icon" src="https://cdn.shopify.com/static/images/flags/gb.svg" alt="English" aria-hidden="true"><span class="ly-custom-dropdown-list-element-right">English</span></a> 1535 </li><li key="nl" style="color: #000000; margin: 0px 0px;"> 1536 <a class="ly-custom-dropdown-list-element ly-languages-switcher-link ly-bright-theme" 1537 href="#" 1538 data-language-code="nl" 1539 1540 lang="nl" data-ly-locked="true" rel="nofollow"><img class="ly-icon ly-flag-icon" src="https://cdn.shopify.com/static/images/flags/nl.svg" alt="Dutch" aria-hidden="true"><span class="ly-custom-dropdown-list-element-right">Dutch</span></a> 1541 </li><li key="de" style="color: #000000; margin: 0px 0px;"> 1542 <a class="ly-custom-dropdown-list-element ly-languages-switcher-link ly-bright-theme" 1543 href="#" 1544 data-language-code="de" 1545 1546 lang="de" data-ly-locked="true" rel="nofollow"><img class="ly-icon ly-flag-icon" src="https://cdn.shopify.com/static/images/flags/de.svg" alt="German" aria-hidden="true"><span class="ly-custom-dropdown-list-element-right">German</span></a> 1547 </li><li key="es" style="color: #000000; margin: 0px 0px;"> 1548 <a class="ly-custom-dropdown-list-element ly-languages-switcher-link ly-bright-theme" 1549 href="#" 1550 data-language-code="es" 1551 1552 lang="es" data-ly-locked="true" rel="nofollow"><img class="ly-icon ly-flag-icon" src="https://cdn.shopify.com/static/images/flags/es.svg" alt="Spanish" aria-hidden="true"><span class="ly-custom-dropdown-list-element-right">Spanish</span></a> 1553 </li><li key="it" style="color: #000000; margin: 0px 0px;"> 1554 <a class="ly-custom-dropdown-list-element ly-languages-switcher-link ly-bright-theme" 1555 href="#" 1556 data-language-code="it" 1557 1558 lang="it" data-ly-locked="true" rel="nofollow"><img class="ly-icon ly-flag-icon" src="https://cdn.shopify.com/static/images/flags/it.svg" alt="Italian" aria-hidden="true"><span class="ly-custom-dropdown-list-element-right">Italian</span></a> 1559 </li><li key="fr" style="color: #000000; margin: 0px 0px;"> 1560 <a class="ly-custom-dropdown-list-element ly-languages-switcher-link ly-bright-theme" 1561 href="#" 1562 data-language-code="fr" 1563 1564 lang="fr" data-ly-locked="true" rel="nofollow"><img class="ly-icon ly-flag-icon" src="https://cdn.shopify.com/static/images/flags/fr.svg" alt="French" aria-hidden="true"><span class="ly-custom-dropdown-list-element-right">French</span></a> 1565 </li></ul> 1566 </div></div> 1567</template> 1568<!-- END app snippet --> 1569
1570<script> 1571 // langify lib v2.0.0 1572 var langify = window.langify || {}; 1573 var customContents = {}; 1574 var customContents_image = {}; 1575 var langifySettingsOverwrites = {}; 1576 var defaultSettings = { 1577 debug: false, // BOOL : Enable/disable console logs 1578 observe: true, // BOOL : Enable/disable the entire mutation observer (off switch) 1579 observeLinks: false, 1580 observeImages: true, 1581 observeCustomContents: true, 1582 maxMutations: 5, 1583 timeout: 100, // INT : Milliseconds to wait after a mutation, before the next mutation event will be allowed for the element 1584 linksBlacklist: [], 1585 usePlaceholderMatching: false 1586 }; 1587 1588 if(langify.settings) { 1589 langifySettingsOverwrites = Object.assign({}, langify.settings); 1590 langify.settings = Object.assign(defaultSettings, langify.settings); 1591 } else { 1592 langify.settings = defaultSettings; 1593 } 1594 1595 langify.settings.theme = null; 1596 langify.settings.switcher = null; 1597 if(langify.settings.switcher === null) { 1598 langify.settings.switcher = {}; 1599 } 1600 langify.settings.switcher.customIcons = null; 1601 1602 langify.locale = langify.locale || { 1603 country_code: "NL", 1604 language_code: "en", 1605 currency_code: null, 1606 primary: true, 1607 iso_code: "en", 1608 root_url: "\/", 1609 language_id: "ly282819", 1610 shop_url: "https:\/\/peakpilates.eu", 1611 domain_feature_enabled: null, 1612 languages: [{ 1613 iso_code: "en", 1614 root_url: "\/", 1615 domain: null, 1616 },{ 1617 iso_code: "nl", 1618 root_url: "\/nl", 1619 domain: null, 1620 },{ 1621 iso_code: "de", 1622 root_url: "\/de", 1623 domain: null, 1624 },{ 1625 iso_code: "es", 1626 root_url: "\/es", 1627 domain: null, 1628 },{ 1629 iso_code: "it", 1630 root_url: "\/it", 1631 domain: null, 1632 },{ 1633 iso_code: "fr", 1634 root_url: "\/fr", 1635 domain: null, 1636 },] 1637 }; 1638 1639 langify.localization = { 1640 available_countries: ["Afghanistan","Albania","Algeria","Andorra","Angola","Armenia","Austria","Azerbaijan","Bahrain","Belarus","Belgium","Benin","Bosnia \u0026amp; Herzegovina","Botswana","Bulgaria","Burkina Faso","Burundi","Cameroon","Cape Verde","Central African Republic","Chad","Croatia","Cyprus","Czechia","Denmark","Djibouti","Egypt","Eritrea","Estonia","Ethiopia","Finland","France","Gabon","Gambia","Georgia","Germany","Ghana","Gibraltar","Greece","Guinea","Guinea-Bissau","Hungary","Iceland","Iraq","Ireland","Israel","Italy","Jordan","Kazakhstan","Kenya","Kuwait","Latvia","Lebanon","Lesotho","Liberia","Liechtenstein","Lithuania","Luxembourg","Madagascar","Malawi","Mali","Malta","Mauritania","Mauritius","Monaco","Montenegro","Morocco","Mozambique","Namibia","Netherlands","Niger","Nigeria","North Macedonia","Norway","Oman","Pakistan","Poland","Portugal","Qatar","Romania","Russia","Rwanda","San Marino","Saudi Arabia","Senegal","Serbia","Sierra Leone","Slovakia","Slovenia","Somalia","South Africa","Spain","Sudan","Sweden","Switzerland","Tajikistan","Tanzania","Togo","Tunisia","Türkiye","Turkmenistan","Uganda","Ukraine","United Arab Emirates","United Kingdom","Vatican City","Western Sahara","Yemen","Zambia","Zimbabwe"], 1641 available_languages: [{"shop_locale":{"locale":"en","enabled":true,"primary":true,"published":true}},{"shop_locale":{"locale":"nl","enabled":true,"primary":false,"published":true}},{"shop_locale":{"locale":"de","enabled":true,"primary":false,"published":true}},{"shop_locale":{"locale":"es","enabled":true,"primary":false,"published":true}},{"shop_locale":{"locale":"it","enabled":true,"primary":false,"published":true}},{"shop_locale":{"locale":"fr","enabled":true,"primary":false,"published":true}}], 1642 country: "Netherlands", 1643 language: {"shop_locale":{"locale":"en","enabled":true,"primary":true,"published":true}}, 1644 market: { 1645 handle: "the-netherlands-germany-belgium-and-austria", 1646 id: 111088009565, 1647 metafields: {"error":"json not allowed for this object"}, 1648 } 1649 }; 1650 1651 // Disable link correction ALWAYS on languages with mapped domains 1652 1653 if(langify.locale.root_url == '/') { 1654 langify.settings.observeLinks = false;
1655 } 1656 1657 1658 function extractImageObject(val) { 1659 if (!val || val === '') return false; 1660 1661 // Handle src-sets (e.g., "image_600x600.jpg 1x, image_1200x1200.jpg 2x") 1662 if (val.search(/([0-9]+w?h?x?,)/gi) > -1) { 1663 val = val.split(/([0-9]+w?h?x?,)/gi)[0]; 1664 } 1665 1666 const hostBegin = val.indexOf('//') !== -1 ? val.indexOf('//') : 0; 1667 const hostEnd = val.lastIndexOf('/') + 1; 1668 const host = val.substring(hostBegin, hostEnd); 1669 let afterHost = val.substring(hostEnd); 1670 1671 // Remove query/hash fragments 1672 afterHost = afterHost.split('#')[0].split('?')[0]; 1673 1674 // Extract name before any Shopify modifiers or file extension 1675 // e.g., "[email protected]" â "photo" 1676 const name = afterHost.replace( 1677 /(_[0-9]+x[0-9]*|_{width}x|_{size})?(_crop_(top|center|bottom|left|right))?(@[0-9]*x)?(\.progressive)?(\.(png\.jpg|jpe?g|png|gif|webp))?$/i, 1678 '' 1679 ); 1680 1681 // Extract file extension (if any) 1682 let type = ''; 1683 const match = afterHost.match(/\.(png\.jpg|jpe?g|png|gif|webp)$/i); 1684 if (match) { 1685 type = match[1].replace('png.jpg', 'jpg'); // fix weird double-extension cases 1686 } 1687 1688 // Clean file name with extension or suffixes normalized 1689 const file = afterHost.replace( 1690 /(_[0-9]+x[0-9]*|_{width}x|_{size})?(_crop_(top|center|bottom|left|right))?(@[0-9]*x)?(\.progressive)?(\.(png\.jpg|jpe?g|png|gif|webp))?$/i, 1691 type ? '.' + type : '' 1692 ); 1693 1694 return { host, name, type, file }; 1695} 1696 1697 1698 1699 /* Custom Contents Section*/ 1700 var customContents = {}; 1701 1702 // Images Section 1703 1704 1705</script>
1705<link rel="preload stylesheet" href="https://cdn.shopify.com/extensions/019f845b-ea0a-7f6d-b8bd-14dcbe496e11/langify-91/assets/langify-lib.css" as="style" media="print" onload="this.media='all'; this.onload=null;"><!-- END app block --><!-- BEGIN app block: shopify://apps/pagefly-ai-page-builder/blocks/app-embed/83e179f7-59a0-4589-8c66-c0dddf959200 --> 1706 1707<!-- BEGIN app snippet: pagefly-cro-ab-testing-main --> 1708 1709 1710 1711 1712 1713 1714
1715<script> 1716 ;(function () { 1717 const url = new URL(window.location) 1718 const viewParam = url.searchParams.get('view') 1719 if (viewParam && viewParam.includes('variant-pf-')) { 1720 url.searchParams.set('pf_v', viewParam) 1721 url.searchParams.delete('view') 1722 window.history.replaceState({}, '', url) 1723 } 1724 })() 1725</script>
1725 1726 1727 1728
1729<script type='module'> 1730 1731 window.PAGEFLY_CRO = window.PAGEFLY_CRO || {} 1732 1733 window.PAGEFLY_CRO['data_debug'] = { 1734 original_template_suffix: "home", 1735 allow_ab_test: false, 1736 ab_test_start_time: 0, 1737 ab_test_end_time: 0, 1738 today_date_time: 1791519599000, 1739 } 1740 window.PAGEFLY_CRO['GA4'] = { enabled: false} 1741</script>
1741 1742 1743<!-- END app snippet --> 1744 1745 1746 1747 1748 1749 1750 1751 1752
1752<script src='https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-helper.js' defer='defer'></script>
1752 1753 1754
1754<script src='https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-general-helper.js' defer='defer'></script>
1754 1755 1756
1756<script src='https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-snap-slider.js' defer='defer'></script>
1756 1757 1758
1758<script src='https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-slideshow-v3.js' defer='defer'></script>
1758 1759 1760
1760<script src='https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-slideshow-v4.js' defer='defer'></script>
1760 1761 1762
1762<script src='https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-glider.js' defer='defer'></script>
1762 1763 1764
1764<script src='https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-slideshow-v1-v2.js' defer='defer'></script>
1764 1765 1766
1766<script src='https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-product-media.js' defer='defer'></script>
1766 1767 1768
1768<script src='https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-product.js' defer='defer'></script>
1768 1769 1770
1771<script id='pagefly-helper-data' type='application/json'> 1772 { 1773 "page_optimization": { 1774 "assets_prefetching": false 1775 }, 1776 "elements_asset_mapper": { 1777 "Accordion": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-accordion.js", 1778 "Accordion3": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-accordion3.js", 1779 "CountDown": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-countdown.js", 1780 "GMap1": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-gmap.js", 1781 "GMap2": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-gmap.js", 1782 "GMapBasicV2": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-gmap.js", 1783 "GMapAdvancedV2": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-gmap.js", 1784 "HTML.Video": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-htmlvideo.js", 1785 "HTML.Video2": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-htmlvideo2.js", 1786 "HTML.Video3": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-htmlvideo2.js", 1787 "BackgroundVideo": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-htmlvideo2.js", 1788 "Instagram": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-instagram.js", 1789 "Instagram2": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-instagram.js", 1790 "Insta3": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-instagram3.js", 1791 "Tabs": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-tab.js", 1792 "Tabs3": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-tab3.js", 1793 "ProductBox": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-cart.js", 1794 "FBPageBox2": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-facebook.js", 1795 "FBLikeButton2": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-facebook.js", 1796 "TwitterFeed2": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-twitter.js", 1797 "Paragraph4": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-paragraph4.js", 1798 1799 "AliReviews": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-3rd-elements.js", 1800 "BackInStock": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-3rd-elements.js", 1801 "GloboBackInStock": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-3rd-elements.js", 1802 "GrowaveWishlist": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-3rd-elements.js", 1803 "InfiniteOptionsShopPad": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-3rd-elements.js", 1804 "InkybayProductPersonalizer": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder
1804-367/assets/pagefly-3rd-elements.js", 1805 "LimeSpot": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-3rd-elements.js", 1806 "Loox": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-3rd-elements.js", 1807 "Opinew": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-3rd-elements.js", 1808 "Powr": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-3rd-elements.js", 1809 "ProductReviews": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-3rd-elements.js", 1810 "PushOwl": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-3rd-elements.js", 1811 "ReCharge": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-3rd-elements.js", 1812 "Rivyo": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-3rd-elements.js", 1813 "TrackingMore": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-3rd-elements.js", 1814 "Vitals": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-3rd-elements.js", 1815 "Wiser": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-3rd-elements.js" 1816 }, 1817 "custom_elements_mapper": { 1818 "pf-click-action-element": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-click-action-element.js", 1819 "pf-dialog-element": "https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-dialog-element.js" 1820 } 1821 } 1822</script>
1822 1823
1824<script id='pagefly-heatmap-config' type='application/json'> 1825 {} 1826</script>
vendor: 1 bytes, line 1826
1826
1827<script> 1828 (function () { 1829 var el = document.getElementById('pagefly-heatmap-config') 1830 if (!el) { window.__pagefly_heatmap_config__ = {}; return } 1831 try { 1832 window.__pagefly_heatmap_config__ = JSON.parse(el.textContent || '{}') || {} 1833 } catch (e) { 1834 window.__pagefly_heatmap_config__ = {} 1835 } 1836 })() 1837</script>
vendor: 1 bytes, line 1837
1837
1838<script> 1839 // Heatmap overlay loader. Three gates, all of them cheap, none of them trusting the URL: 1840 // the visitor must have arrived on a pf_heatmap link, the SERVER must have published an 1841 // overlay path in the metafield, and this page must already be one the merchant enabled 1842 // tracking for. The last gate is what stops a crafted link pulling the asset onto an 1843 // arbitrary storefront page. Everything else is decided inside the asset, and by the server. 1844 (function () { 1845 var cfg = window.__pagefly_heatmap_config__ || {} 1846 var id = (window.__pagefly_page_setting__ || {}).pageId 1847 if (!/[#&]pf_heatmap=/.test(window.location.hash || '')) return 1848 if (!cfg.overlay_data_path || !Array.isArray(cfg.enabled_page_ids)) return 1849 if (!id || cfg.enabled_page_ids.indexOf(id) === -1) return 1850 var s = document.createElement('script') 1851 s.src = 'https://cdn.shopify.com/extensions/01a115fb-add3-73f7-a337-6aea6d12aa8f/pagefly-ai-page-builder-367/assets/pagefly-heatmap-overlay.js' 1852 s.defer = true 1853 document.head.appendChild(s) 1854 })() 1855</script>
1855 1856 1857<!-- BEGIN app snippet: pf-ai-schema --> 1858<!-- END app snippet --> 1859 1860 1861<!-- END app block -->
1861<script src="https://cdn.shopify.com/extensions/019f845b-ea0a-7f6d-b8bd-14dcbe496e11/langify-91/assets/langify-lib.js" type="text/javascript" defer="defer"></script>
1861 1862<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1863<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 97826013533,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "index"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 1863
1863
1864<script> 1865 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1866</script>
vendor: 1 bytes, line 1866
1866
1867<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
1867).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 97826013533,storefrontBaseUrl: "https://peakpilates.eu",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://peakpilates.eu/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab"],webPixelsConfigList: [{"id":"6254788957","configuration":"{\"mailchimp_store_id\":\"store_76q3y362bcvg664pm7e6\", \"mailchimp_user_id\":\"55880117\",\"mailchimp_list_id\":\"01ba9ef783\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"e357a49eadeb6216a959d63fa3fb8f55","type":"APP","apiClientId":2585307,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Peak Pilates EU","paymentSettings":{"currencyCode":"EUR"},"myshopifyDomain":"w7e8xk-80.myshopify.com","countryCode":"NL","storefrontUrl":"https:\/\/peakpilates.eu"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://peakpilates.eu/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"210112053597","themeStoreId":"568","themePublished":"true","eventMetadataId":"d3ab9fbd-dcc3-4aec-aacf-4cc63d04b174","pageType":"home","shopId":"97826013533","storefrontBaseUrl":"https:\/\/peakpilates.eu","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\"]","isMerchantRequest":"false","hashVersion":"7ec887c8w14f9f074p854094e1m1370c602","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
1867<script> 1868 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1869 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1870 window.ShopifyAnalytics.meta.currency = 'EUR'; 1871 var meta = {"page":{"pageType":"home","requestId":"714c6378-fedb-41dc-a155-3c554c2e3ee1-1791519599"}}; 1872 for (var attr in meta) { 1873 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1874 } 1875</script>
vendor: 1 bytes, line 1875
1875
1876<script class="analytics"> 1877 (function () { 1878 var customDocumentWrite = function(content) { 1879 var jquery = null; 1880 1881 if (window.jQuery) { 1882 jquery = window.jQuery; 1883 } else if (window.Checkout && window.Checkout.$) { 1884 jquery = window.Checkout.$; 1885 } 1886 1887 if (jquery) { 1888 jquery('body').append(content); 1889 } 1890 }; 1891 1892 var hasLoggedConversion = function(token) { 1893 if (token) { 1894 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 1895 } 1896 return false; 1897 } 1898 1899 var setCookieIfConversion = function(token) { 1900 if (token) { 1901 var twoMonthsFromNow = new Date(Date.now()); 1902 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 1903 1904 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 1905 } 1906 } 1907 1908 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 1909 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 1910 if (trekkie.integrations) { 1911 return; 1912 } 1913 trekkie.methods = [ 1914 'identify', 1915 'page', 1916 'ready', 1917 'track', 1918 'trackForm', 1919 'trackLink' 1920 ]; 1921 trekkie.factory = function(method) { 1922 return function() { 1923 var args = Array.prototype.slice.call(arguments); 1924 args.unshift(method); 1925 trekkie.push(args); 1926 if (method == 'track' || method == 'page') { 1927 var pageUrl; 1928 try { 1929 pageUrl = window.location.href; 1930 } catch (e) {} 1931 var pageReferrer; 1932 try { 1933 pageReferrer = document.referrer; 1934 } catch (e) {} 1935 try { 1936 if (window.__TREKKIE_SHIM_QUEUE == null) { 1937 window.__TREKKIE_SHIM_QUEUE = []; 1938 } 1939 window.__TREKKIE_SHIM_QUEUE.push({ 1940 from: 'trekkie-stub', 1941 method: method, 1942 args: args.slice(1), 1943 pageContext: { 1944 url: pageUrl, 1945 referrer: pageReferrer 1946 } 1947 }); 1948 } catch (e) { 1949 // no-op 1950 } 1951 } 1952 return trekkie; 1953 }; 1954 }; 1955 for (var i = 0; i < trekkie.methods.length; i++) { 1956 var key = trekkie.methods[i]; 1957 trekkie[key] = trekkie.factory(key); 1958 } 1959 trekkie.load = function(config) { 1960 trekkie.config = config || {}; 1961 trekkie.config.initialDocumentCookie = document.cookie; 1962 var first = document.getElementsByTagName('script')[0]; 1963var script = document.createElement('script'); 1964script.type = 'text/javascript'; 1965script.onerror = function(e) { 1966 var scriptFallback = document.createElement('script'); 1967 scriptFallback.type = 'text/javascript'; 1968 scriptFallback.onerror = function(error) { 1969 var Monorail = { 1970 produce: function produce(monorailDomain, schemaId, payload) { 1971 var currentMs = new Date().getTime(); 1972 var event = { 1973 schema_id: schemaId, 1974 payload: payload, 1975 metadata: { 1976 event_created_at_ms: currentMs, 1977 event_sent_at_ms: currentMs 1978 } 1979 }; 1980 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1981 }, 1982 sendRequest: function sendRequest(endpointUrl, payload) { 1983 // Try the sendBeacon API 1984 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1985 var blobData = new window.Blob([payload], { 1986 type: 'text/plain' 1987 }); 1988 1989 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1990 return true; 1991 } // sendBeacon was not successful 1992 1993 } // XHR beacon 1994 1995 var xhr = new XMLHttpRequest(); 1996 1997 try { 1998 xhr.open('POST', endpointUrl); 1999 xhr.setRequestHeader('Content-Type', 'text/plain'); 2000 xhr.send(payload); 2001 } catch (e) { 2002 console.log(e); 2003 } 2004 2005 return false; 2006 }, 2007 isIos12: function isIos12() { 2008 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 2009 } 2010 }; 2011 Monorail.produce('monorail-edge.shopifysvc.com', 2012 'trekkie_storefront_load_errors/1.1', 2013 {shop_id: 97826013533, 2014 theme_id: 210112053597, 2015 app_name: "storefront", 2016 context_url: window.location.href, 2017 source_url: "//peakpilates.eu/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"}); 2018 2019 }; 2020 scriptFallback.async = true; 2021 scriptFallback.src = '//peakpilates.eu/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 2022 first.parentNode.insertBefore(scriptFallback, first); 2023}; 2024script.async = true; 2025script.src = '//peakpilates.eu/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 2026first.parentNode.insertBefore(script, first); 2027 2028 }; 2029 trekkie.load( 2030 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":97826013533,"isMerchantRequest":null,"themeId":210112053597,"themeCityHash":"1199129529711586585","contentLanguage":"en","currency":"EUR","eventMetadataId":"d3ab9fbd-dcc3-4aec-aacf-4cc63d04b174"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 2031 ); 2032 2033 var loaded = false;
2034 trekkie.ready(function() { 2035 if (loaded) return; 2036 loaded = true; 2037 2038 window.ShopifyAnalytics.lib = window.trekkie; 2039 2040 var originalDocumentWrite = document.write; 2041 document.write = customDocumentWrite; 2042 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 2043 document.write = originalDocumentWrite; 2044 2045 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 2046 var token = match? match[1]: undefined; 2047 if (!hasLoggedConversion(token)) { 2048 setCookieIfConversion(token); 2049 2050 } 2051 }); 2052 2053 window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"714c6378-fedb-41dc-a155-3c554c2e3ee1-1791519599","shopifyEmitted":true}); 2054 2055 var eventsListenerScript = document.createElement('script'); 2056 eventsListenerScript.async = true; 2057 eventsListenerScript.src = "//peakpilates.eu/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 2058 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 2059})();</script>
vendor: 1 bytes, line 2059
2059
2060<script 2061 defer 2062 src="https://peakpilates.eu/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.10.1.min.js" 2063 data-application="storefront-renderer" 2064 data-shop-id="97826013533" 2065 data-render-region="gcp-us-west1" 2066 data-page-type="index" 2067 data-theme-instance-id="210112053597" 2068 data-theme-name="Symmetry" 2069 data-theme-version="8.0.0" 2070 data-monorail-region="shop_domain" 2071 data-resource-timing-sampling-rate="10" 2072 data-shs="true" 2073 data-shs-beacon="true" 2074 data-shs-export-with-fetch="true" 2075 data-shs-logs-sample-rate="1" 2076 data-shs-beacon-endpoint="https://peakpilates.eu/api/collect" 2077></script>
2077 2078<meta name="shopify-y" content="906e5dc2-764b-48b8-8e37-08410f191051" data-expiration="1823077199000"><meta name="shopify-s" content="c4fa96f9-cbf4-4e62-9064-96319503a740" data-expiration="1791521399000"> 2079</head> 2080 2081<body class="template-index 2082 swatch-source-native swatch-method-swatches swatch-style-icon_circle 2083"> 2084 2085 <a class="skip-link visually-hidden" href="#content" data-cs-role="skip">Skip to content</a><!-- BEGIN sections: header-group --> 2086<div id="shopify-section-sections--32858859438429__announcement-bar" class="shopify-section shopify-section-group-header-group section-announcement-bar"> 2087 2088<announcement-bar id="section-id-sections--32858859438429__announcement-bar" class="announcement-bar announcement-bar--with-announcement"> 2089 <style data-shopify> 2090#section-id-sections--32858859438429__announcement-bar { 2091 --bg-color: #00b7f1; 2092 --bg-gradient: ; 2093 --heading-color: 255 255 255; 2094 --text-color: 255 255 255; 2095 --link-color: 255 255 255; 2096 --announcement-font-size: 14px; 2097 } 2098 </style> 2099<div class="container container--no-max relative"> 2100 <div class="announcement-bar__left desktop-only"> 2101 2102<ul class="social inline-flex flex-wrap"><li> 2103 <a class="social__link flex items-center justify-center" href="https://www.facebook.com/peakpilates/" target="_blank" rel="noopener" title="Peak Pilates EU on Facebook"><svg aria-hidden="true" class="icon icon-facebook" viewBox="2 2 16 16" focusable="false" role="presentation"><path fill="currentColor" d="M18 10.049C18 5.603 14.419 2 10 2c-4.419 0-8 3.603-8 8.049C2 14.067 4.925 17.396 8.75 18v-5.624H6.719v-2.328h2.03V8.275c0-2.017 1.195-3.132 3.023-3.132.874 0 1.79.158 1.79.158v1.98h-1.009c-.994 0-1.303.621-1.303 1.258v1.51h2.219l-.355 2.326H11.25V18c3.825-.604 6.75-3.933 6.75-7.951Z"/></svg><span class="visually-hidden">Facebook</span> 2104 </a> 2105 </li><li> 2106 <a class="social__link flex items-center justify-center" href="https://www.youtube.com/@PeakPilatesHQ/videos" target="_blank" rel="noopener" title="Peak Pilates EU on YouTube"><svg class="icon" width="48" height="34" viewBox="0 0 48 34" aria-hidden="true" focusable="false" role="presentation"><path d="m19.044 23.27-.001-13.582 12.968 6.814-12.967 6.768ZM47.52 7.334s-.47-3.33-1.908-4.798C43.787.61 41.74.601 40.803.49 34.086 0 24.01 0 24.01 0h-.02S13.914 0 7.197.49C6.258.6 4.213.61 2.387 2.535.947 4.003.48 7.334.48 7.334S0 11.247 0 15.158v3.668c0 3.912.48 7.823.48 7.823s.468 3.331 1.906 4.798c1.827 1.926 4.226 1.866 5.294 2.067C11.52 33.885 24 34 24 34s10.086-.015 16.803-.505c.938-.113 2.984-.122 4.809-2.048 1.439-1.467 1.908-4.798 1.908-4.798s.48-3.91.48-7.823v-3.668c0-3.911-.48-7.824-.48-7.824Z" fill="currentColor" fill-rule="evenodd"/></svg><span class="visually-hidden">YouTube</span> 2107 </a> 2108 </li><li> 2109 <a class="social__link flex items-center justify-center" href="https://www.instagram.com/peakpilates/" target="_blank" rel="noopener" title="Peak Pilates EU on Instagram"><svg class="icon" width="48" height="48" viewBox="0 0 48 48" aria-hidden="true" focusable="false" role="presentation"><path d="M24 0c-6.518 0-7.335.028-9.895.144-2.555.117-4.3.523-5.826 1.116-1.578.613-2.917 1.434-4.25 2.768C2.693 5.362 1.872 6.701 1.26 8.28.667 9.806.26 11.55.144 14.105.028 16.665 0 17.482 0 24s.028 7.335.144 9.895c.117 2.555.523 4.3 1.116 5.826.613 1.578 1.434 2.917 2.768 4.25 1.334 1.335 2.673 2.156 4.251 2.77 1.527.592 3.271.998 5.826 1.115 2.56.116 3.377.144 9.895.144s7.335-.028 9.895-.144c2.555-.117 4.3-.523 5.826-1.116 1.578-.613 2.917-1.434 4.25-2.768 1.335-1.334 2.156-2.673 2.77-4.251.592-1.527.998-3.271 1.115-5.826.116-2.56.144-3.377.144-9.895s-.028-7.335-.144-9.895c-.117-2.555-.523-4.3-1.116-5.826-.613-1.578-1.434-2.917-2.768-4.25-1.334-1.335-2.673-2.156-4.251-2.769-1.527-.593-3.271-1-5.826-1.116C31.335.028 30.518 0 24 0Zm0 4.324c6.408 0 7.167.025 9.698.14 2.34.107 3.61.498 4.457.827 1.12.435 1.92.955 2.759 1.795.84.84 1.36 1.64 1.795 2.76.33.845.72 2.116.827 4.456.115 2.53.14 3.29.14 9.698s-.025 7.167-.14 9.698c-.107 2.34-.498 3.61-.827 4.457-.435 1.12-.955 1.92-1.795 2.759-.84.84-1.64 1.36-2.76 1.795-.845.33-2.116.72-4.456.827-2.53.115-3.29.14-9.698.14-6.409 0-7.168-.025-9.698-.14-2.34-.107-3.61-.498-4.457-.827-1.12-.435-1.92-.955-2.759-1.795-.84-.84-1.36-1.64-1.795-2.76-.33-.845-.72-2.116-.827-4.456-.115-2.53-.14-3.29-.14-9.698s.025-7.167.14-9.698c.107-2.34.498-3.61.827-4.457.435-1.12.955-1.92 1.795-2.759.84-.84 1.64-1.36 2.76-1.795.845-.33 2.116-.72 4.456-.827 2.53-.115 3.29-.14 9.698-.14Zm0 7.352c-6.807 0-12.324 5.517-12.324 12.324 0 6.807 5.517 12.324 12.324 12.324 6.807 0 12.324-5.517 12.324-12.324 0-6.807-5.517-12.324-12.324-12.324ZM24 32a8 8 0 1 1 0-16 8 8 0 0 1 0 16Zm15.691-20.811a2.88 2.88 0 1 1-5.76 0 2.88 2.88 0 0 1 5.76 0Z" fill="currentColor" fill-rule="evenodd"/></svg><span class="visually-hidden">Instagram</span> 2110 </a> 2111 </li></ul> 2112 2113 </div> 2114 2115 <div class="announcement-bar__middle"><div class="announcement-bar__announcements"><div 2116 class="announcement" 2117 style="--heading-color: 255 255 255; 2118 --text-color: 255 255 255; 2119 --link-color: 255 255 255; 2120 " 2121 ><div class="announcement__text"> 2122 The casa⢠Reformer. Affordable and Designed specifically for at home! <a href="/products/casa-reformer-incl-long-short-box" title="/products/casa-reformer-incl-long-short-box">GET MORE INFO NOW</a> 2123 2124 2125 </div> 2126 </div></div> 2127 <div class="announcement-bar__announcement-controller"> 2128 <button class="announcement-button announcement-button--previous" aria-label="Previous"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-left" aria-hidden="true" focusable="false" role="presentation"><path d="m15 18-6-6 6-6"/></svg></button><button class="announcement-button announcement-button--next" aria-label="Next"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-right" aria-hidden="true" focusable="false" role="presentation"><path d="m9 18 6-6-6-6"/></svg></button> 2129 </div></div> 2130 2131 <div class="announcement-bar__right desktop-only"> 2132 2133 2134 <div class="header-localization"> 2135 2136
2137<script src="//peakpilates.eu/cdn/shop/t/4/assets/custom-select.js?v=173148981874697908181789404899" defer="defer"></script>
2137<form method="post" action="/localization" id="annbar-localization" accept-charset="UTF-8" class="form localization no-js-hidden" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/" /><div class="localization__grid"><div class="localization__selector"> 2138 <input type="hidden" name="country_code" value="NL"> 2139<country-selector><label class="label visually-hidden no-js-hidden" for="annbar-localization-country-button">Country/Region</label><div class="custom-select relative w-full no-js-hidden"><button class="custom-select__btn input items-center" type="button" 2140 aria-expanded="false" aria-haspopup="listbox" id="annbar-localization-country-button"> 2141 <span class="text-start">Netherlands (EUR â¬)</span> 2142 <svg width="20" height="20" viewBox="0 0 24 24" class="icon" role="presentation" focusable="false" aria-hidden="true"> 2143 <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/> 2144 </svg> 2145 </button> 2146 <ul class="custom-select__listbox absolute invisible" role="listbox" tabindex="-1" 2147 aria-hidden="true" hidden aria-activedescendant="annbar-localization-country-opt-0"><li class="custom-select__option flex items-center js-option" id="annbar-localization-country-opt-0" role="option" 2148 data-value="NL" 2149 data-value-id="" 2150 2151 aria-selected="true"> 2152 <span class="pointer-events-none">Netherlands (EUR â¬)</span> 2153 </li></ul> 2154 </div></country-selector></div><div class="localization__selector"> 2155 <input type="hidden" name="locale_code" value="en"> 2156<custom-select id="annbar-localization-language"><label class="label visually-hidden no-js-hidden" for="annbar-localization-language-button">Language</label><div class="custom-select relative w-full no-js-hidden"><button class="custom-select__btn input items-center" type="button" 2157 aria-expanded="false" aria-haspopup="listbox" id="annbar-localization-language-button"> 2158 <span class="text-start">English</span> 2159 <svg width="20" height="20" viewBox="0 0 24 24" class="icon" role="presentation" focusable="false" aria-hidden="true"> 2160 <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/> 2161 </svg> 2162 </button> 2163 <ul class="custom-select__listbox absolute invisible" role="listbox" tabindex="-1" 2164 aria-hidden="true" hidden aria-activedescendant="annbar-localization-language-opt-0"><li class="custom-select__option flex items-center js-option" id="annbar-localization-language-opt-0" role="option" 2165 data-value="en" 2166 data-value-id="" 2167 2168 aria-selected="true"> 2169 <span class="pointer-events-none">English</span> 2170 </li><li class="custom-select__option flex items-center js-option" id="annbar-localization-language-opt-1" role="option" 2171 data-value="nl" 2172 data-value-id="" 2173 2174> 2175 <span class="pointer-events-none">Nederlands</span> 2176 </li><li class="custom-select__option flex items-center js-option" id="annbar-localization-language-opt-2" role="option" 2177 data-value="de" 2178 data-value-id="" 2179 2180> 2181 <span class="pointer-events-none">Deutsch</span> 2182 </li><li class="custom-select__option flex items-center js-option" id="annbar-localization-language-opt-3" role="option" 2183 data-value="es" 2184 data-value-id="" 2185 2186> 2187 <span class="pointer-events-none">Español</span> 2188 </li><li class="custom-select__option flex items-center js-option" id="annbar-localization-language-opt-4" role="option" 2189 data-value="it" 2190 data-value-id="" 2191 2192> 2193 <span class="pointer-events-none">Italiano</span> 2194 </li><li class="custom-select__option flex items-center js-option" id="annbar-localization-language-opt-5" role="option" 2195 data-value="fr" 2196 data-value-id="" 2197 2198> 2199 <span class="pointer-events-none">
2199Français</span> 2200 </li></ul> 2201 </div></custom-select></div></div>
2201<script> 2202 customElements.whenDefined('custom-select').then(() => { 2203 if (!customElements.get('country-selector')) { 2204 class CountrySelector extends customElements.get('custom-select') { 2205 constructor() { 2206 super(); 2207 this.loaded = false; 2208 } 2209 2210 async showListbox() { 2211 if (this.loaded) { 2212 super.showListbox(); 2213 return; 2214 } 2215 2216 this.button.classList.add('is-loading'); 2217 this.button.setAttribute('aria-disabled', 'true'); 2218 2219 try { 2220 const response = await fetch('?section_id=country-selector'); 2221 if (!response.ok) throw new Error(response.status); 2222 2223 const tmpl = document.createElement('template'); 2224 tmpl.innerHTML = await response.text(); 2225 2226 const el = tmpl.content.querySelector('.custom-select__listbox'); 2227 this.listbox.innerHTML = el.innerHTML; 2228 2229 this.options = this.querySelectorAll('.custom-select__option'); 2230 2231 this.popular = this.querySelectorAll('[data-popular]'); 2232 if (this.popular.length) { 2233 this.popular[this.popular.length - 1].closest('.custom-select__option') 2234 .classList.add('custom-select__option--visual-group-end'); 2235 } 2236 2237 this.selectedOption = this.querySelector('[aria-selected="true"]'); 2238 if (!this.selectedOption) { 2239 this.selectedOption = this.listbox.firstElementChild; 2240 } 2241 2242 this.loaded = true; 2243 } catch { 2244 this.listbox.innerHTML = '<li>Error fetching countries, please try again.</li>'; 2245 } finally { 2246 super.showListbox(); 2247 this.button.classList.remove('is-loading'); 2248 this.button.setAttribute('aria-disabled', 'false'); 2249 } 2250 } 2251 2252 setButtonWidth() { 2253 return; 2254 } 2255 } 2256 2257 customElements.define('country-selector', CountrySelector); 2258 } 2259 }); 2260 </script>
2260<script> 2261 document.getElementById('annbar-localization').addEventListener('change', (evt) => { 2262 const input = evt.target.closest('.localization__selector').firstElementChild; 2263 if (input && input.tagName === 'INPUT') { 2264 input.value = evt.detail ? evt.detail.selectedValue : evt.target.value; 2265 evt.currentTarget.submit(); 2266 } 2267 }); 2268 </script>
2268</form> 2269 </div> 2270 2271 </div> 2272 </div> 2273 </announcement-bar> 2274<style> @media (min-width: 768px) {#shopify-section-sections--32858859438429__announcement-bar .announcement-bar__middle:not(:first-child):not(:last-child) {max-width: 75%; }} </style></div><div id="shopify-section-sections--32858859438429__header" class="shopify-section shopify-section-group-header-group section-header"><style data-shopify> 2275 .logo img { 2276 width: 150px; 2277 } 2278 .logo-area__middle--logo-image { 2279 max-width: 150px; 2280 } 2281 @media (max-width: 767.98px) { 2282 .logo img { 2283 width: 100px; 2284 } 2285 }.section-header { 2286 position: -webkit-sticky; 2287 position: sticky; 2288 }</style> 2289<page-header data-section-id="sections--32858859438429__header"> 2290 <div id="pageheader" class="pageheader pageheader--layout-inline-menu-center pageheader--sticky"> 2291 <div class="logo-area container container--no-max"> 2292 <div class="logo-area__left"> 2293 <div class="logo-area__left__inner"> 2294 <button class="mobile-nav-toggle" aria-label="Menu" aria-controls="main-nav"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-menu" aria-hidden="true" focusable="false" role="presentation"><path d="M3 12h18M3 6h18M3 18h18"/></svg></button> 2295 2296 <a class="show-search-link" href="/search" aria-label="Search"> 2297 <span class="show-search-link__icon"><svg class="icon" width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation"><g transform="translate(3 3)" stroke="currentColor" stroke-width="1.5" fill="none" fill-rule="evenodd"><circle cx="7.824" cy="7.824" r="7.824"/><path stroke-linecap="square" d="m13.971 13.971 4.47 4.47"/></g></svg></span> 2298 <span class="show-search-link__text">Search</span> 2299 </a> 2300 2301 2302 <div id="proxy-nav" class="navigation navigation--left" role="navigation" aria-label="Primary"> 2303 <div class="navigation__tier-1-container"> 2304 <ul class="navigation__tier-1"> 2305 2306<li class="navigation__item navigation__item--with-children navigation__item--with-mega-menu"> 2307 <a href="#" class="navigation__link" aria-haspopup="true" aria-expanded="false" aria-controls="NavigationTier2-1">Shop</a> 2308 </li> 2309 2310<li class="navigation__item"> 2311 <a href="/pages/pilates-studio-connect" class="navigation__link" >Pilates StudioConnectâ¢</a> 2312 </li> 2313 2314<li class="navigation__item navigation__item--with-children navigation__item--with-mega-menu"> 2315 <a href="/pages/education" class="navigation__link" aria-haspopup="true" aria-expanded="false" aria-controls="NavigationTier2-3">Education</a> 2316 </li> 2317 2318<li class="navigation__item navigation__item--with-children navigation__item--with-small-menu"> 2319 <a href="/pages/studios" class="navigation__link" aria-haspopup="true" aria-expanded="false" aria-controls="NavigationTier2-4">Studios</a> 2320 </li> 2321 2322<li class="navigation__item"> 2323 <a href="/pages/global-distributors" class="navigation__link" >Distributors</a> 2324 </li> 2325 2326<li class="navigation__item navigation__item--with-children navigation__item--with-small-menu"> 2327 <a href="/pages/education-community" class="navigation__link" aria-haspopup="true" aria-expanded="false" aria-controls="NavigationTier2-6">Community</a> 2328 </li> 2329 2330<li class="navigation__item"> 2331 <a href="/pages/education-find-a-training" class="navigation__link" >Find a Training</a> 2332 </li> 2333 2334<li class="navigation__item"> 2335 <a href="/blogs/theteaser" class="navigation__link" >Blog</a> 2336 </li> 2337 2338 </ul> 2339 </div> 2340 </div> 2341 2342 </div> 2343 </div> 2344 2345 <div class="logo-area__middle logo-area__middle--logo-image"> 2346 <div class="logo-area__middle__inner"> 2347 <div class="logo"><h1 class="logo__h1"><a class="logo__link" href="/" title="Peak Pilates EU"><img class="logo__image" src="//peakpilates.eu/cdn/shop/files/peakpilates-logo_1506467692__46873.original.png?v=1755680591&width=300" alt="Peak Pilates EU" itemprop="logo" width="250" height="53" loading="eager" /></a></h1></div> 2348 </div> 2349 </div> 2350 2351 <div class="logo-area__right"> 2352 <div class="logo-area__right__inner"> 2353 2354 2355 <a class="header-account-link" href="https://peakpilates.eu/customer_authentication/redirect?locale=en®ion_country=NL" aria-label="Account">
2356 <span class="header-account-link__text visually-hidden-mobile">Account</span> 2357 <span class="header-account-link__icon mobile-only"><svg class="icon" width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation"><g fill="none" fill-rule="evenodd"><path d="M12 2a5 5 0 1 1 0 10 5 5 0 0 1 0-10Zm0 1.429a3.571 3.571 0 1 0 0 7.142 3.571 3.571 0 0 0 0-7.142Z" fill="currentColor"/><path d="M3 18.25c0-2.486 4.542-4 9.028-4 4.486 0 8.972 1.514 8.972 4v3H3v-3Z" stroke="currentColor" stroke-width="1.5"/><circle stroke="currentColor" stroke-width="1.5" cx="12" cy="7" r="4.25"/></g></svg></span> 2358 </a> 2359 2360 2361 2362 <a class="show-search-link" href="/search"> 2363 <span class="show-search-link__text visually-hidden-mobile">Search</span> 2364 <span class="show-search-link__icon"><svg class="icon" width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation"><g transform="translate(3 3)" stroke="currentColor" stroke-width="1.5" fill="none" fill-rule="evenodd"><circle cx="7.824" cy="7.824" r="7.824"/><path stroke-linecap="square" d="m13.971 13.971 4.47 4.47"/></g></svg></span> 2365 </a> 2366 2367<a href="/cart" class="cart-link" data-hash="e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"> 2368 <span class="cart-link__label visually-hidden-mobile">Cart</span> 2369 <span class="cart-link__icon"><svg class="icon" width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation"><g fill="none" fill-rule="evenodd" stroke="currentColor" stroke-width="1.5"><path d="M2 9.25h20l-4 12H6z"/><path stroke-linecap="square" d="M12 9V3"/></g></svg><span class="cart-link__count"></span> 2370 </span> 2371 </a> 2372 </div> 2373 </div> 2374 </div>
2374<script src="//peakpilates.eu/cdn/shop/t/4/assets/main-search.js?v=76809749390081725741789404899" defer></script>
2374 2375 <main-search class="main-search " 2376 data-quick-search="true" 2377 data-quick-search-meta="true"> 2378 2379 <div class="main-search__container container"> 2380 <button class="main-search__close" aria-label="Close"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-x" aria-hidden="true" focusable="false" role="presentation"><path d="M18 6 6 18M6 6l12 12"/></svg></button> 2381 2382 <form class="main-search__form" action="/search" method="get" autocomplete="off"> 2383 <div class="main-search__input-container"> 2384 <input class="main-search__input" type="text" name="q" autocomplete="off" placeholder="Search our store" aria-label="Search" /> 2385 <button class="main-search__button" type="submit" aria-label="Search"><svg class="icon" width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation"><g transform="translate(3 3)" stroke="currentColor" stroke-width="1.5" fill="none" fill-rule="evenodd"><circle cx="7.824" cy="7.824" r="7.824"/><path stroke-linecap="square" d="m13.971 13.971 4.47 4.47"/></g></svg></button> 2386 </div>
2386<script src="//peakpilates.eu/cdn/shop/t/4/assets/search-suggestions.js?v=101886753114502501091789404899" defer></script>
2386 2387 <search-suggestions></search-suggestions></form> 2388 2389 <div class="main-search__results"></div> 2390 2391 2392 </div> 2393 </main-search></div> 2394 2395 <main-navigation id="main-nav" class="desktop-only" data-proxy-nav="proxy-nav"> 2396 <div class="navigation navigation--main" role="navigation" aria-label="Primary"> 2397 <div class="navigation__tier-1-container"> 2398 <ul class="navigation__tier-1"> 2399 2400<li class="navigation__item navigation__item--with-children navigation__item--with-mega-menu"> 2401 <a href="#" class="navigation__link" aria-haspopup="true" aria-expanded="false" aria-controls="NavigationTier2-1">Shop</a> 2402 2403 2404 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 2405 2406 <div id="NavigationTier2-1" class="navigation__tier-2-container navigation__child-tier"><div class="container"> 2407 <ul class="navigation__tier-2 navigation__columns navigation__columns--count-5 navigation__columns--5-cols"> 2408 2409 2410 <li class="navigation__item navigation__item--with-children navigation__column"> 2411 <a href="#" class="navigation__link navigation__column-title" aria-haspopup="true" aria-expanded="false">Pilates Equipment</a> 2412 2413 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 2414 2415 2416 2417 <div class="navigation__tier-3-container navigation__child-tier"> 2418 <ul class="navigation__tier-3"> 2419 2420 <li class="navigation__item"> 2421 <a class="navigation__link" href="/collections/reformers">Reformers</a> 2422 </li> 2423 2424 <li class="navigation__item"> 2425 <a class="navigation__link" href="/collections/tower-systems">Tower Systems</a> 2426 </li> 2427 2428 <li class="navigation__item"> 2429 <a class="navigation__link" href="/collections/cadillacs">Cadillacs</a> 2430 </li> 2431 2432 <li class="navigation__item"> 2433 <a class="navigation__link" href="/collections/chairs">Chairs</a> 2434 </li> 2435 2436 <li class="navigation__item"> 2437 <a class="navigation__link" href="/collections/barrels">Barrels</a> 2438 </li> 2439 2440 <li class="navigation__item"> 2441 <a class="navigation__link" href="/pages/pilates-studio-connect">Pilates StudioConnectâ¢</a> 2442 </li> 2443 2444 <li class="navigation__item"> 2445 <a class="navigation__link" href="/collections/other-equipment">Other Equipment</a> 2446 </li> 2447 2448 </ul> 2449 </div> 2450 2451 </li> 2452 2453 <li class="navigation__item navigation__item--with-children navigation__column"> 2454 <a href="#" class="navigation__link navigation__column-title" aria-haspopup="true" aria-expanded="false">Pilates Accessories</a> 2455 2456 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 2457 2458 2459 2460 <div class="navigation__tier-3-container navigation__child-tier"> 2461 <ul class="navigation__tier-3"> 2462 2463 <li class="navigation__item"> 2464 <a class="navigation__link" href="/collections/straps-handles">Straps & Handles</a> 2465 </li> 2466 2467 <li class="navigation__item"> 2468 <a class="navigation__link" href="/collections/mats">Mats</a> 2469 </li> 2470 2471 <li class="navigation__item"> 2472 <a class="navigation__link" href="/collections/pillows-pads">Pillows & Pads</a> 2473 </li> 2474 2475 <li class="navigation__item"> 2476 <a class="navigation__link" href="/collections/pilatesstick">Pilatesstick®</a> 2477 </li> 2478 2479 <li class="navigation__item"> 2480 <a class="navigation__link" href="/collections/ugi">Ugi®</a> 2481 </li> 2482 2483 <li class="navigation__item"> 2484 <a class="navigation__link" href="/collections/functional-equipment">Functional Equipment</a> 2485 </li> 2486 2487 <li class="navigation__item"> 2488 <a class="navigation__link" href="/collections/pilates-props">Pilates Props</a> 2489 </li> 2490 2491 <li class="navigation__item"> 2492 <a class="navigation__link" href="/collections/pilates-essentials">Pilates Essentials</a> 2493 </li> 2494 2495 </ul> 2496 </div> 2497 2498 </li> 2499 2500 <li class="navigation__item navigation__item--with-children navigation__column"> 2501 <a href="#" class="navigation__link navigation__column-title" aria-haspopup="true" aria-expanded="false">Equipment Accessories</a> 2502 2503 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 2504 2505 2506 2507 <div class="navigation__tier-3-container navigation__child-tier"> 2508 <ul class="navigation__tier-3"> 2509 2510 <li class="navigation__item"> 2511 <a class="navigation__link" href="/collections/boxes-cushions">Boxes & Cushions</a> 2512 </li> 2513 2514 <li class="navigation__item"> 2515 <a class="navigation__link" href="/collections/reformer-props">Reformer Props</a> 2516 </li> 2517 2518 <li class="navigation__item"> 2519 <a class="navigation__link" href="/collections/reformer-accessories">Reformer Accessories</a> 2520 </li> 2521 2522 <li class="navigation__item"> 2523 <a class="navigation__link" href="/collections/chair-accessories">Chair Accessories</a> 2524 </li> 2525 2526 </ul> 2527 </div> 2528 2529 </li> 2530 2531 <li class="navigation__item navigation__item--with-children navigation__column"> 2532 <a href="#" class="navigation__link navigation__column-title" aria-haspopup="true" aria-expanded="false">Replacement Parts</a> 2533 2534 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 2535 2536 2537 2538 <div class="navigation__tier-3-container navigation__child-tier"> 2539 <ul class="navigation__tier-3"> 2540 2541 <li class="navigation__item"> 2542 <a class="navigation__link" href="/collections/springs">Springs</a> 2543 </li> 2544 2545 <li class="navigation__item"> 2546 <a class="navigation__link" href="/collections/wheels">Wheels</a> 2547 </li> 2548 2549 <li class="navigation__item"> 2550 <a class="navigation__link" href="/collections/clips">Clips</a> 2551 </li> 2552 2553 <li class="navigation__item"> 2554 <a class="navigation__link" href="/collections/other-parts">Other Parts</a> 2555 </li> 2556 2557 </ul> 2558 </div> 2559 2560 </li> 2561 2562 <li class="navigation__item navigation__column"> 2563 <a href="/collections/apparel" class="navigation__link" >Apparel</a> 2564 2565 2566 2567 </li> 2568 2569 2570 2571 2572</ul> 2573 </div></div> 2574 2575 </li> 2576 2577<li class="navigation__item"> 2578 <a href="/pages/pilates-studio-connect" class="navigation__link" >
2578Pilates StudioConnectâ¢</a> 2579 2580 2581 </li> 2582 2583<li class="navigation__item navigation__item--with-children navigation__item--with-mega-menu"> 2584 <a href="/pages/education" class="navigation__link" aria-haspopup="true" aria-expanded="false" aria-controls="NavigationTier2-3">Education</a> 2585 2586 2587 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 2588 2589 <div id="NavigationTier2-3" class="navigation__tier-2-container navigation__child-tier"><div class="container"> 2590 <ul class="navigation__tier-2 navigation__columns navigation__columns--count-3"> 2591 2592 2593 <li class="navigation__item navigation__item--with-children navigation__column"> 2594 <a href="/pages/education-certifications" class="navigation__link navigation__column-title" aria-haspopup="true" aria-expanded="false">Instructor Certifications</a> 2595 2596 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 2597 2598 2599 2600 <div class="navigation__tier-3-container navigation__child-tier"> 2601 <ul class="navigation__tier-3"> 2602 2603 <li class="navigation__item"> 2604 <a class="navigation__link" href="/pages/education-certifications-comprehensive">Comprehensive</a> 2605 </li> 2606 2607 <li class="navigation__item"> 2608 <a class="navigation__link" href="/pages/education-certifications-mat">Mat</a> 2609 </li> 2610 2611 <li class="navigation__item"> 2612 <a class="navigation__link" href="/pages/fitcore">
2612FitCoreâ¢</a> 2613 </li> 2614 2615 <li class="navigation__item"> 2616 <a class="navigation__link" href="/pages/education-certification-level-1-bridge-course">Bridge</a> 2617 </li> 2618 2619 <li class="navigation__item"> 2620 <a class="navigation__link" href="/pages/education-find-a-training">Find a Training</a> 2621 </li> 2622 2623 </ul> 2624 </div> 2625 2626 </li> 2627 2628 <li class="navigation__item navigation__item--with-children navigation__column"> 2629 <a href="/pages/education-continuing-education" class="navigation__link navigation__column-title" aria-haspopup="true" aria-expanded="false">Continuing Education</a> 2630 2631 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 2632 2633 2634 2635 <div class="navigation__tier-3-container navigation__child-tier"> 2636 <ul class="navigation__tier-3"> 2637 2638 <li class="navigation__item"> 2639 <a class="navigation__link" href="/pages/education-continuing-education-workshops">Live Workshops</a> 2640 </li> 2641 2642 <li class="navigation__item"> 2643 <a class="navigation__link" href="/pages/education-find-a-training">Virtual Training</a> 2644 </li> 2645 2646 <li class="navigation__item"> 2647 <a class="navigation__link" href="https://peaku.peakpilates.eu/">Online Learning</a> 2648 </li> 2649 2650 <li class="navigation__item"> 2651 <a class="navigation__link" href="/pages/education-certification-renewal">Certification Renewal</a> 2652 </li> 2653 2654 </ul> 2655 </div> 2656 2657 </li> 2658 2659 <li class="navigation__item navigation__item--with-children navigation__column"> 2660 <a href="/pages/education-faqs" class="navigation__link navigation__column-title" aria-haspopup="true" aria-expanded="false">Education FAQs</a> 2661 2662 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 2663 2664 2665 2666 <div class="navigation__tier-3-container navigation__child-tier"> 2667 <ul class="navigation__tier-3"> 2668 2669 <li class="navigation__item"> 2670 <a class="navigation__link" href="/pages/become-a-master-instructor">Become a Master Instructor</a> 2671 </li> 2672 2673 </ul> 2674 </div> 2675 2676 </li> 2677 2678 2679 2680 2681</ul> 2682 </div></div> 2683 2684 </li> 2685 2686<li class="navigation__item navigation__item--with-children navigation__item--with-small-menu"> 2687 <a href="/pages/studios" class="navigation__link" aria-haspopup="true" aria-expanded="false" aria-controls="NavigationTier2-4">Studios</a> 2688 2689 2690 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 2691 2692 <div id="NavigationTier2-4" class="navigation__tier-2-container navigation__child-tier"><div class="container"> 2693 <ul class="navigation__tier-2"> 2694 2695 2696 <li class="navigation__item"> 2697 <a href="/pages/studios-why-peak-pilates" class="navigation__link" >Why Add Pilates?</a> 2698 2699 2700 2701 </li> 2702 2703 <li class="navigation__item">
2704 <a href="/pages/the-peak-pilates-story" class="navigation__link" >About Peak Pilates®</a> 2705 2706 2707 2708 </li> 2709 2710 <li class="navigation__item"> 2711 <a href="/pages/education-centers" class="navigation__link" >Education Centers</a> 2712 2713 2714 2715 </li> 2716 2717 <li class="navigation__item"> 2718 <a href="/pages/equipment-maintenance" class="navigation__link" >Equipment Maintenance</a> 2719 2720 2721 2722 </li> 2723 2724 <li class="navigation__item"> 2725 <a href="/pages/studios-host-a-training" class="navigation__link" >Host a Training</a> 2726 2727 2728 2729 </li> 2730 2731 2732 2733 2734</ul> 2735 </div></div> 2736 2737 </li> 2738 2739<li class="navigation__item"> 2740 <a href="/pages/global-distributors" class="navigation__link" >Distributors</a> 2741 2742 2743 </li> 2744 2745<li class="navigation__item navigation__item--with-children navigation__item--with-small-menu"> 2746 <a href="/pages/education-community" class="navigation__link" aria-haspopup="true" aria-expanded="false" aria-controls="NavigationTier2-6">Community</a> 2747 2748 2749 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 2750 2751 <div id="NavigationTier2-6" class="navigation__tier-2-container navigation__child-tier"><div class="container"> 2752 <ul class="navigation__tier-2"> 2753 2754 2755 <li class="navigation__item"> 2756 <a href="/pages/the-peak-pilates-story" class="navigation__link" >About Peak Pilates®</a> 2757 2758 2759 2760 </li> 2761 2762 <li class="navigation__item"> 2763 <a href="/pages/master-instructor-team" class="navigation__link" >Master Instructor Team</a> 2764 2765 2766 2767 </li> 2768 2769 <li class="navigation__item"> 2770 <a href="/pages/education-events" class="navigation__link" >Events</a> 2771 2772 2773 2774 </li> 2775 2776 <li class="navigation__item"> 2777 <a href="/pages/education-peakulogin" class="navigation__link" >PeakU</a> 2778 2779 2780 2781 </li> 2782 2783 2784 2785 2786</ul> 2787 </div></div> 2788 2789 </li> 2790 2791<li class="navigation__item"> 2792 <a href="/pages/education-find-a-training" class="navigation__link" >Find a Training</a> 2793 2794 2795 </li> 2796 2797<li class="navigation__item"> 2798 <a href="/blogs/theteaser" class="navigation__link" >Blog</a> 2799 2800 2801 </li> 2802 2803</ul> 2804 </div> 2805 </div>
2805<script class="mobile-navigation-drawer-template" type="text/template"> 2806 <div class="mobile-navigation-drawer" data-mobile-expand-with-entire-link="true"> 2807 <div class="navigation navigation--main" role="navigation" aria-label="Primary"> 2808 <div class="navigation__tier-1-container"> 2809 <div class="navigation__mobile-header"> 2810 <a href="#" class="mobile-nav-back has-ltr-icon" aria-label="Back"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-left" aria-hidden="true" focusable="false" role="presentation"><path d="m15 18-6-6 6-6"/></svg></a> 2811 <span class="mobile-nav-title"></span> 2812 <a href="#" class="mobile-nav-toggle" aria-label="Close"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-x" aria-hidden="true" focusable="false" role="presentation"><path d="M18 6 6 18M6 6l12 12"/></svg></a> 2813 </div> 2814 <ul class="navigation__tier-1"> 2815 2816<li class="navigation__item navigation__item--with-children navigation__item--with-mega-menu"> 2817 <a href="#" class="navigation__link" aria-haspopup="true" aria-expanded="false" aria-controls="NavigationTier2-1-mob">Shop</a> 2818 2819 2820 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 2821 2822 <div id="NavigationTier2-1-mob" class="navigation__tier-2-container navigation__child-tier"><div class="container"> 2823 <ul class="navigation__tier-2 navigation__columns navigation__columns--count-5 navigation__columns--5-cols"> 2824 2825 2826 <li class="navigation__item navigation__item--with-children navigation__column"> 2827 <a href="#" class="navigation__link navigation__column-title" aria-haspopup="true" aria-expanded="false">Pilates Equipment</a> 2828 2829 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 2830 2831 2832 2833 <div class="navigation__tier-3-container navigation__child-tier"> 2834 <ul class="navigation__tier-3"> 2835 2836 <li class="navigation__item"> 2837 <a class="navigation__link" href="/collections/reformers">Reformers</a> 2838 </li> 2839 2840 <li class="navigation__item"> 2841 <a class="navigation__link" href="/collections/tower-systems">Tower Systems</a> 2842 </li> 2843 2844 <li class="navigation__item"> 2845 <a class="navigation__link" href="/collections/cadillacs">Cadillacs</a> 2846 </li> 2847 2848 <li class="navigation__item"> 2849 <a class="navigation__link" href="/collections/chairs">Chairs</a> 2850 </li> 2851 2852 <li class="navigation__item"> 2853 <a class="navigation__link" href="/collections/barrels">Barrels</a> 2854 </li> 2855 2856 <li class="navigation__item"> 2857 <a class="navigation__link" href="/pages/pilates-studio-connect">
2857Pilates StudioConnectâ¢</a> 2858 </li> 2859 2860 <li class="navigation__item"> 2861 <a class="navigation__link" href="/collections/other-equipment">Other Equipment</a> 2862 </li> 2863 2864 </ul> 2865 </div> 2866 2867 </li> 2868 2869 <li class="navigation__item navigation__item--with-children navigation__column"> 2870 <a href="#" class="navigation__link navigation__column-title" aria-haspopup="true" aria-expanded="false">Pilates Accessories</a> 2871 2872 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 2873 2874 2875 2876 <div class="navigation__tier-3-container navigation__child-tier"> 2877 <ul class="navigation__tier-3"> 2878 2879 <li class="navigation__item"> 2880 <a class="navigation__link" href="/collections/straps-handles">Straps & Handles</a> 2881 </li> 2882 2883 <li class="navigation__item"> 2884 <a class="navigation__link" href="/collections/mats">Mats</a> 2885 </li> 2886 2887 <li class="navigation__item"> 2888 <a class="navigation__link" href="/collections/pillows-pads">Pillows & Pads</a> 2889 </li> 2890 2891 <li class="navigation__item"> 2892 <a class="navigation__link" href="/collections/pilatesstick">Pilatesstick®</a> 2893 </li> 2894 2895 <li class="navigation__item"> 2896 <a class="navigation__link" href="/collections/ugi">Ugi®</a> 2897 </li> 2898 2899 <li class="navigation__item"> 2900 <a class="navigation__link" href="/collections/functional-equipment">Functional Equipment</a> 2901 </li> 2902 2903 <li class="navigation__item"> 2904 <a class="navigation__link" href="/collections/pilates-props">Pilates Props</a> 2905 </li> 2906 2907 <li class="navigation__item"> 2908 <a class="navigation__link" href="/collections/pilates-essentials">Pilates Essentials</a> 2909 </li> 2910 2911 </ul> 2912 </div> 2913 2914 </li> 2915 2916 <li class="navigation__item navigation__item--with-children navigation__column"> 2917 <a href="#" class="navigation__link navigation__column-title" aria-haspopup="true" aria-expanded="false">Equipment Accessories</a> 2918 2919 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 2920 2921 2922 2923 <div class="navigation__tier-3-container navigation__child-tier"> 2924 <ul class="navigation__tier-3"> 2925 2926 <li class="navigation__item"> 2927 <a class="navigation__link" href="/collections/boxes-cushions">Boxes & Cushions</a> 2928 </li> 2929 2930 <li class="navigation__item"> 2931 <a class="navigation__link" href="/collections/reformer-props">Reformer Props</a> 2932 </li> 2933 2934 <li class="navigation__item"> 2935 <a class="navigation__link" href="/collections/reformer-accessories">Reformer Accessories</a> 2936 </li> 2937 2938 <li class="navigation__item"> 2939 <a class="navigation__link" href="/collections/chair-accessories">Chair Accessories</a> 2940 </li> 2941 2942 </ul> 2943 </div> 2944 2945 </li> 2946 2947 <li class="navigation__item navigation__item--with-children navigation__column"> 2948 <a href="#" class="navigation__link navigation__column-title" aria-haspopup="true" aria-expanded="false">Replacement Parts</a> 2949 2950 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 2951 2952 2953 2954 <div class="navigation__tier-3-container navigation__child-tier"> 2955 <ul class="navigation__tier-3"> 2956 2957 <li class="navigation__item"> 2958 <a class="navigation__link" href="/collections/springs">Springs</a> 2959 </li> 2960 2961 <li class="navigation__item"> 2962 <a class="navigation__link" href="/collections/wheels">Wheels</a> 2963 </li> 2964 2965 <li class="navigation__item"> 2966 <a class="navigation__link" href="/collections/clips">Clips</a> 2967 </li> 2968 2969 <li class="navigation__item"> 2970 <a class="navigation__link" href="/collections/other-parts">Other Parts</a> 2971 </li> 2972 2973 </ul> 2974 </div> 2975 2976 </li> 2977 2978 <li class="navigation__item navigation__column"> 2979 <a href="/collections/apparel" class="navigation__link" >Apparel</a> 2980 2981 2982 2983 </li> 2984 2985 2986 2987 2988</ul> 2989 </div></div> 2990 2991 </li> 2992 2993<li class="navigation__item"> 2994 <a href="/pages/pilates-studio-connect" class="navigation__link" >
2994Pilates StudioConnectâ¢</a> 2995 2996 2997 </li> 2998 2999<li class="navigation__item navigation__item--with-children navigation__item--with-mega-menu"> 3000 <a href="/pages/education" class="navigation__link" aria-haspopup="true" aria-expanded="false" aria-controls="NavigationTier2-3-mob">Education</a> 3001 3002 3003 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 3004 3005 <div id="NavigationTier2-3-mob" class="navigation__tier-2-container navigation__child-tier"><div class="container"> 3006 <ul class="navigation__tier-2 navigation__columns navigation__columns--count-3"> 3007 3008 3009 <li class="navigation__item navigation__item--with-children navigation__column"> 3010 <a href="/pages/education-certifications" class="navigation__link navigation__column-title" aria-haspopup="true" aria-expanded="false">Instructor Certifications</a> 3011 3012 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 3013 3014 3015 3016 <div class="navigation__tier-3-container navigation__child-tier"> 3017 <ul class="navigation__tier-3"> 3018 3019 <li class="navigation__item"> 3020 <a class="navigation__link" href="/pages/education-certifications-comprehensive">Comprehensive</a> 3021 </li> 3022 3023 <li class="navigation__item"> 3024 <a class="navigation__link" href="/pages/education-certifications-mat">Mat</a> 3025 </li> 3026 3027 <li class="navigation__item"> 3028 <a class="navigation__link" href="/pages/fitcore">
3028FitCoreâ¢</a> 3029 </li> 3030 3031 <li class="navigation__item"> 3032 <a class="navigation__link" href="/pages/education-certification-level-1-bridge-course">Bridge</a> 3033 </li> 3034 3035 <li class="navigation__item"> 3036 <a class="navigation__link" href="/pages/education-find-a-training">Find a Training</a> 3037 </li> 3038 3039 </ul> 3040 </div> 3041 3042 </li> 3043 3044 <li class="navigation__item navigation__item--with-children navigation__column"> 3045 <a href="/pages/education-continuing-education" class="navigation__link navigation__column-title" aria-haspopup="true" aria-expanded="false">Continuing Education</a> 3046 3047 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 3048 3049 3050 3051 <div class="navigation__tier-3-container navigation__child-tier"> 3052 <ul class="navigation__tier-3"> 3053 3054 <li class="navigation__item"> 3055 <a class="navigation__link" href="/pages/education-continuing-education-workshops">Live Workshops</a> 3056 </li> 3057 3058 <li class="navigation__item"> 3059 <a class="navigation__link" href="/pages/education-find-a-training">Virtual Training</a> 3060 </li> 3061 3062 <li class="navigation__item"> 3063 <a class="navigation__link" href="https://peaku.peakpilates.eu/">Online Learning</a> 3064 </li> 3065 3066 <li class="navigation__item"> 3067 <a class="navigation__link" href="/pages/education-certification-renewal">Certification Renewal</a> 3068 </li> 3069 3070 </ul> 3071 </div> 3072 3073 </li> 3074 3075 <li class="navigation__item navigation__item--with-children navigation__column"> 3076 <a href="/pages/education-faqs" class="navigation__link navigation__column-title" aria-haspopup="true" aria-expanded="false">Education FAQs</a> 3077 3078 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 3079 3080 3081 3082 <div class="navigation__tier-3-container navigation__child-tier"> 3083 <ul class="navigation__tier-3"> 3084 3085 <li class="navigation__item"> 3086 <a class="navigation__link" href="/pages/become-a-master-instructor">Become a Master Instructor</a> 3087 </li> 3088 3089 </ul> 3090 </div> 3091 3092 </li> 3093 3094 3095 3096 3097</ul> 3098 </div></div> 3099 3100 </li> 3101 3102<li class="navigation__item navigation__item--with-children navigation__item--with-small-menu"> 3103 <a href="/pages/studios" class="navigation__link" aria-haspopup="true" aria-expanded="false" aria-controls="NavigationTier2-4-mob">Studios</a> 3104 3105 3106 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 3107 3108 <div id="NavigationTier2-4-mob" class="navigation__tier-2-container navigation__child-tier"><div class="container"> 3109 <ul class="navigation__tier-2"> 3110 3111 3112 <li class="navigation__item"> 3113 <a href="/pages/studios-why-peak-pilates" class="navigation__link" >Why Add Pilates?</a> 3114 3115 3116 3117 </li> 3118 3119 <li class="navigation__item">
3120 <a href="/pages/the-peak-pilates-story" class="navigation__link" >About Peak Pilates®</a> 3121 3122 3123 3124 </li> 3125 3126 <li class="navigation__item"> 3127 <a href="/pages/education-centers" class="navigation__link" >Education Centers</a> 3128 3129 3130 3131 </li> 3132 3133 <li class="navigation__item"> 3134 <a href="/pages/equipment-maintenance" class="navigation__link" >Equipment Maintenance</a> 3135 3136 3137 3138 </li> 3139 3140 <li class="navigation__item"> 3141 <a href="/pages/studios-host-a-training" class="navigation__link" >Host a Training</a> 3142 3143 3144 3145 </li> 3146 3147 3148 3149 3150</ul> 3151 </div></div> 3152 3153 </li> 3154 3155<li class="navigation__item"> 3156 <a href="/pages/global-distributors" class="navigation__link" >Distributors</a> 3157 3158 3159 </li> 3160 3161<li class="navigation__item navigation__item--with-children navigation__item--with-small-menu"> 3162 <a href="/pages/education-community" class="navigation__link" aria-haspopup="true" aria-expanded="false" aria-controls="NavigationTier2-6-mob">Community</a> 3163 3164 3165 <a class="navigation__children-toggle" href="#" aria-label="Show links"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-down" aria-hidden="true" focusable="false" role="presentation"><path d="m6 9 6 6 6-6"/></svg></a> 3166 3167 <div id="NavigationTier2-6-mob" class="navigation__tier-2-container navigation__child-tier"><div class="container"> 3168 <ul class="navigation__tier-2"> 3169 3170 3171 <li class="navigation__item"> 3172 <a href="/pages/the-peak-pilates-story" class="navigation__link" >About Peak Pilates®</a> 3173 3174 3175 3176 </li> 3177 3178 <li class="navigation__item"> 3179 <a href="/pages/master-instructor-team" class="navigation__link" >Master Instructor Team</a> 3180 3181 3182 3183 </li> 3184 3185 <li class="navigation__item"> 3186 <a href="/pages/education-events" class="navigation__link" >Events</a> 3187 3188 3189 3190 </li> 3191 3192 <li class="navigation__item"> 3193 <a href="/pages/education-peakulogin" class="navigation__link" >PeakU</a> 3194 3195 3196 3197 </li> 3198 3199 3200 3201 3202</ul> 3203 </div></div> 3204 3205 </li> 3206 3207<li class="navigation__item"> 3208 <a href="/pages/education-find-a-training" class="navigation__link" >Find a Training</a> 3209 3210 3211 </li> 3212 3213<li class="navigation__item"> 3214 <a href="/blogs/theteaser" class="navigation__link" >Blog</a> 3215 3216 3217 </li> 3218 3219</ul> 3220 3221 </div> 3222 </div> 3223 <div class="mobile-navigation-drawer__footer"></div> 3224 </div> 3225 </script>
3225 3226 </main-navigation> 3227 3228 <a href="#" class="header-shade mobile-nav-toggle" aria-label="Close"></a> 3229</page-header> 3230
3231<script> 3232 const mainNav = document.getElementById('main-nav'); 3233 if (mainNav) mainNav.style.opacity = 0; 3234 setTimeout(() => { 3235 theme.inlineNavigationCheck(); 3236 if (mainNav) mainNav.style.opacity = null; 3237 }, 0); 3238 setTimeout(theme.setInitialHeaderHeightProperty, 0); 3239</script>
3239<script type="application/ld+json"> 3240 { 3241 "@context": "http://schema.org", 3242 "@type": "Organization", 3243 "name": "Peak Pilates EU", 3244 "logo": "https:\/\/peakpilates.eu\/cdn\/shop\/files\/peakpilates-logo_1506467692__46873.original.png?v=1755680591\u0026width=250", 3245 3246 "sameAs": [ 3247 3248"https:\/\/www.facebook.com\/peakpilates\/","https:\/\/www.youtube.com\/@PeakPilatesHQ\/videos","https:\/\/www.instagram.com\/peakpilates\/" 3249 ], 3250 "url": "https:\/\/peakpilates.eu" 3251 } 3252</script>
3252<script type="application/ld+json"> 3253 { 3254 "@context": "http://schema.org", 3255 "@type": "WebSite", 3256 "name": "Peak Pilates EU", 3257 "url": "https:\/\/peakpilates.eu", 3258 "potentialAction": { 3259 "@type": "SearchAction", 3260 "target": "https:\/\/peakpilates.eu\/search?q={search_term_string}", 3261 "query-input": "required name=search_term_string" 3262 } 3263 } 3264 </script>
3264 3265 3266 3267</div> 3268<!-- END sections: header-group --><main id="content" role="main"> 3269 <div class="container cf"> 3270 3271 <div id="shopify-section-template--32858865697117__custom_liquid_g6FGpW" class="shopify-section section-custom-liquid"><div id="section-id-template--32858865697117__custom_liquid_g6FGpW" class="section-id-template--32858865697117__custom_liquid_g6FGpW"> 3272 <div class="custom-html"> 3273 <style> 3274 .video-wrap { 3275 position: relative; 3276 width: 100%; 3277 max-width: 100%; /* adjust as needed */ 3278 margin: 0 auto; 3279 aspect-ratio: 16 / 9; 3280 overflow: hidden; 3281 background: #000; 3282 } 3283 .video-wrap video { 3284 width: 100%; 3285 height: 100%; 3286 object-fit: cover; 3287 display: block; 3288 } 3289</style> 3290 3291<div class="video-wrap"> 3292 <video 3293 autoplay 3294 muted 3295 loop 3296 playsinline 3297 preload="metadata" 3298 > 3299 <source src="https://cdn.shopify.com/videos/c/o/v/2b1cc3377cc4434692e7893977f18db1.mp4#t=0.1" type="video/mp4"> 3300 3301 </video> 3302</div> 3303 </div> 3304</div> 3305 3306 3307 3308</div><div id="shopify-section-template--32858865697117__1617293273c37b524b" class="shopify-section section-rich-text"><div class="fully-spaced-row--small"> 3309 <div class="container container--reading-width"> 3310 <div class="align-ltr-center spaced-column"> 3311 3312 3313 3314 <div class="subheading subheading--over lightish-spaced-row-above" ></div> 3315 3316 3317 3318 3319 3320 <h2 class="majortitle in-content h1" >Benefit Beautifully with Peak Pilates®</h2> 3321 3322 3323 3324 3325 3326 <div class="rte lightly-spaced-row large-text" ><p>We believe in the transformational power of Pilates and its ability to positively impact your life. Your journey awaits.<br/></p></div> 3327 3328 3329 3330 </div> 3331 </div> 3332</div> 3333 3334 3335 3336<style> #shopify-section-template--32858865697117__1617293273c37b524b .container {margin-top: -1%;} #shopify-section-template--32858865697117__1617293273c37b524b .majortitle {font-size: 32px;} </style></div><div id="shopify-section-template--32858865697117__1521034575223" class="shopify-section section-image-with-text"><div class="use-color-scheme use-color-scheme--2 fully-padded-row--medium"> 3337 <div class="container"> 3338 <div class="flexible-layout valign-middle"> 3339 <div class="column column--half column--order-push-desktop"> 3340 3341 <div class="image-overlap" style="max-width: 530px"> 3342 <div class="image-overlap__image image-overlap__image-1"> 3343 <div class="fade-in-up"> 3344<img src="//peakpilates.eu/cdn/shop/files/Folder2Capture_0044-411x330_fe879b7e-348b-40e9-979a-b924d3a7d6e2.jpg?v=1755680536&width=1280" alt="" width="1280" height="1028" loading="lazy" sizes="(min-width: 1920px) 640px, (min-width: 768px) 33vw, 100vw" srcset="//peakpilates.eu/cdn/shop/files/Folder2Capture_0044-411x330_fe879b7e-348b-40e9-979a-b924d3a7d6e2.jpg?v=1755680536&width=425 340w, //peakpilates.eu/cdn/shop/files/Folder2Capture_0044-411x330_fe879b7e-348b-40e9-979a-b924d3a7d6e2.jpg?v=1755680536&width=600 480w, //peakpilates.eu/cdn/shop/files/Folder2Capture_0044-411x330_fe879b7e-348b-40e9-979a-b924d3a7d6e2.jpg?v=1755680536&width=925 740w, //peakpilates.eu/cdn/shop/files/Folder2Capture_0044-411x330_fe879b7e-348b-40e9-979a-b924d3a7d6e2.jpg?v=1755680536&width=1225 980w, //peakpilates.eu/cdn/shop/files/Folder2Capture_0044-411x330_fe879b7e-348b-40e9-979a-b924d3a7d6e2.jpg?v=1755680536&width=1500 1200w, //peakpilates.eu/cdn/shop/files/Folder2Capture_0044-411x330_fe879b7e-348b-40e9-979a-b924d3a7d6e2.jpg?v=1755680536&width=1600 1280w" class="theme-img"> 3345</div> 3346 </div><div class="image-overlap__image image-overlap__image-2"> 3347 <div class="fade-in-up"> 3348<img src="//peakpilates.eu/cdn/shop/files/community-squares-2_0a215907-c3a4-47db-8c88-e532bf4c6dd3.jpg?v=1755680514&width=439" alt="" width="439" height="439" loading="lazy" sizes="(min-width: 1920px) 640px, (min-width: 768px) 33vw, 100vw" srcset="//peakpilates.eu/cdn/shop/files/community-squares-2_0a215907-c3a4-47db-8c88-e532bf4c6dd3.jpg?v=1755680514&width=425 340w, //peakpilates.eu/cdn/shop/files/community-squares-2_0a215907-c3a4-47db-8c88-e532bf4c6dd3.jpg?v=1755680514&width=548 439w" class="theme-img"> 3349</div> 3350 </div></div> 3351 3352 </div> 3353 3354 <div class="column column--half align-ltr-left"> 3355 <div class="feature-text-paired"> 3356 3357 3358 3359 3360 <h2 class="majortitle in-content h1" >âPilates is gaining the mastery of your mind over the complete control over your body.â</h2> 3361 3362 3363 3364 3365 3366 <div class="rte lightly-spaced-row " ><p>JOSEPH PILATES</p></div> 3367 3368 3369 3370 </div> 3371 </div> 3372 </div> 3373 </div> 3374</div> 3375 3376 3377 3378<style> #shopify-section-template--32858865697117__1521034575223 .majortitle {font-size: 24px; line-height: 1.4;} </style></div><div id="shopify-section-template--32858865697117__1521035976582" class="shopify-section section-image-with-text"><div class="fully-spaced-row--medium"> 3379 <div class="container"> 3380 <div class="flexible-layout valign-middle"> 3381 <div class="column column--half column--order-push-desktop"> 3382 3383 <div class="image-overlap" style="max-width: 700px"> 3384 <div class="image-overlap__image image-overlap__image-1"> 3385 <div class="fade-in-up"> 3386<img src="//peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-4.jpg?v=1755680531&width=850" alt="" width="850" height="620" loading="lazy" sizes="(min-width: 1920px) 960px, (min-width: 768px) 50vw, 100vw" srcset="//peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-4.jpg?v=1755680531&width=425 340w, //peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-4.jpg?v=1755680531&width=600 480w, //peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-4.jpg?v=1755680531&width=925 740w, //peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-4.jpg?v=1755680531&width=1062 850w" class="theme-img"> 3387</div> 3388 </div></div> 3389 3390 </div> 3391 3392 <div class="column column--half align-ltr-left"> 3393 <div class="feature-text-paired"> 3394 3395 3396 3397 3398 <h2 class="majortitle in-content h1" >Shop Peak Equipment</h2> 3399 3400 3401 3402 3403 3404 <div class="rte lightly-spaced-row " ><p>Inspired by the timeless designs and movement principles created by Joseph Pilates. Constructed with beauty, function and tradition in mind.</p></div> 3405 3406 3407 3408 3409 <div class="lightly-spaced-row button-row" > 3410 <a class="btn btn--primary button-row__btn" href="/collections/artistry">Shop Now</a></div> 3411 3412 3413 3414 </div> 3415 </div> 3416 </div> 3417 </div> 3418</div> 3419 3420 3421 3422<style> #shopify-section-template--32858865697117__1521035976582 .container {background-color: white;} #shopify-section-template--32858865697117__1521035976582 .majortitle {font-size: 28px;} </style></div><div id="shopify-section-template--32858865697117__image_with_text_6KqnQ6" class="shopify-section section-image-with-text"><div class="use-color-scheme use-color-scheme--2 fully-padded-row--medium"> 3423 <div class="container"> 3424 <div class="flexible-layout valign-middle"> 3425 <div class="column column--half "> 3426 3427 <div class="image-overlap" style="max-width: 700px"> 3428 <div class="image-overlap__image image-overlap__image-1"> 3429 <div class="fade-in-up"> 3430<img src="//peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-2.jpg?v=1755680530&width=850" alt="" width="850" height="620" loading="lazy" sizes="(min-width: 1920px) 960px, (min-width: 768px) 50vw, 100vw" srcset="//peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-2.jpg?v=1755680530&width=425 340w, //peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-2.jpg?v=1755680530&width=600 480w, //peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-2.jpg?v=1755680530&width=925 740w, //peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-2.jpg?v=1755680530&width=1062 850w" class="theme-img"> 3431</div> 3432 </div></div> 3433 3434 </div> 3435 3436 <div class="column column--half align-ltr-left"> 3437 <div class="feature-text-paired"> 3438 3439 3440 3441 3442 <h2 class="majortitle in-content h1" >Opening a studio?</h2> 3443 3444 3445 3446 3447 3448 <div class="rte lightly-spaced-row " ><p>Support for the new studio with space planning assistance, marketing support, equipment recommendation and educational packages.</p></div> 3449 3450 3451 3452 3453 <div class="lightly-spaced-row button-row" > 3454 <a class="btn btn--primary button-row__btn" href="/pages/studios">Learn More</a></div> 3455 3456 3457 3458 </div> 3459 </div> 3460 </div> 3461 </div> 3462</div> 3463 3464 3465 3466<style> #shopify-section-template--32858865697117__image_with_text_6KqnQ6 .majortitle {font-size: 28px;} </style></div><div id="shopify-section-template--32858865697117__image_with_text_RYwdjq" class="shopify-section section-image-with-text"><div class="fully-spaced-row--medium"> 3467 <div class="container"> 3468 <div class="flexible-layout valign-middle"> 3469 <div class="column column--half column--order-push-desktop"> 3470 3471 <div class="image-overlap" style="max-width: 700px"> 3472 <div class="image-overlap__image image-overlap__image-1"> 3473 <div class="fade-in-up"> 3474<img src="//peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-1.jpg?v=1755680529&width=850" alt="" width="850" height="620" loading="lazy" sizes="(min-width: 1920px) 960px, (min-width: 768px) 50vw, 100vw" srcset="//peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-1.jpg?v=1755680529&width=425 340w, //peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-1.jpg?v=1755680529&width=600 480w, //peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-1.jpg?v=1755680529&width=925 740w, //peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-1.jpg?v=1755680529&width=1062 850w" class="theme-img"> 3475</div> 3476 </div></div> 3477 3478 </div> 3479 3480 <div class="column column--half align-ltr-left"> 3481 <div class="feature-text-paired"> 3482 3483 3484 3485 3486 <h2 class="majortitle in-content h1" >Instructor Training</h2> 3487 3488 3489 3490 3491 3492 <div class="rte lightly-spaced-row " ><p>Classical education, empowering instructors to achieve the high standard of excellence and become thoughtful and confident leaders in the Pilates community.</p></div> 3493 3494 3495 3496 3497 <div class="lightly-spaced-row button-row" > 3498 <a class="btn btn--primary button-row__btn" href="/pages/education">Learn More</a></div> 3499 3500 3501 3502 </div> 3503 </div> 3504 </div> 3505 </div> 3506</div> 3507 3508 3509 3510<style> #shopify-section-template--32858865697117__image_with_text_RYwdjq .majortitle {font-size: 28px;} </style></div><div id="shopify-section-template--32858865697117__image_with_text_8qM7KA" class="shopify-section section-image-with-text"><div class="use-color-scheme use-color-scheme--2 fully-padded-row--medium"> 3511 <div class="container"> 3512 <div class="flexible-layout valign-middle"> 3513 <div class="column column--half "> 3514 3515 <div class="image-overlap" style="max-width: 700px"> 3516 <div class="image-overlap__image image-overlap__image-1"> 3517 <div class="fade-in-up"> 3518<img src="//peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-3.jpg?v=1755680531&width=850" alt="" width="850" height="620" loading="lazy" sizes="(min-width: 1920px) 960px, (min-width: 768px) 50vw, 100vw" srcset="//peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-3.jpg?v=1755680531&width=425 340w, //peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-3.jpg?v=1755680531&width=600 480w, //peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-3.jpg?v=1755680531&width=925 740w, //peakpilates.eu/cdn/shop/files/Peak_Homepage-Modules-3.jpg?v=1755680531&width=1062 850w" class="theme-img"> 3519</div> 3520 </div></div> 3521 3522 </div> 3523 3524 <div class="column column--half align-ltr-left"> 3525 <div class="feature-text-paired"> 3526 3527 3528 3529 3530 <h2 class="majortitle in-content h1" >Pilates for the home</h2> 3531 3532 3533 3534 3535 3536 <div class="rte lightly-spaced-row " ><p>Bring the beauty and benefits of Pilates home. Carefully curated equipment designed to enhance your focused mind-body awareness.</p></div> 3537 3538 3539 3540 3541 <div class="lightly-spaced-row button-row" > 3542 <a class="btn btn--primary button-row__btn" href="/collections/pilates-for-the-home">Shop Now</a></div> 3543 3544 3545 3546 </div> 3547 </div> 3548 </div> 3549 </div> 3550</div> 3551 3552 3553 3554<style> #shopify-section-template--32858865697117__image_with_text_8qM7KA .majortitle {font-size: 28px;} </style></div><div id="shopify-section-template--32858865697117__collection_list_bMMy9b" class="shopify-section section-collection-list"><div class="section-id-template--32858865697117__collection_list_bMMy9b collection-sli
3554der-row for-collections "> 3555 <div class="container container--not-mobile container--no-max"><carousel-slider class="carousel block collection-slider"><div class="hometitle align-center has-paging slider-nav"> 3556 3557 <button name="prev" class="slider-nav__btn has-ltr-icon"> 3558 <span class="visually-hidden">Previous</span> 3559 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-left" aria-hidden="true" focusable="false" role="presentation"><path d="m15 18-6-6 6-6"/></svg> 3560 </button> 3561 3562 <h2 class="has-paging__title h4 m-0">Shop By Category</h2> 3563 3564 <button name="next" class="slider-nav__btn has-ltr-icon"> 3565 <span class="visually-hidden">Next</span> 3566 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-right" aria-hidden="true" focusable="false" role="presentation"><path d="m9 18 6-6-6-6"/></svg> 3567 </button> 3568 3569 </div> 3570 3571 <div class="collection-listing fade-in-up slider slider--edge-peek slider--mobile-container-pad slider--no-scrollbar"> 3572 <div class="product-grid product-grid--per-row-4 product-grid--per-row-mob-2 product-grid--image-shape-portrait-45 slider__grid product-grid--carousel"><div class="slider__item"><div class="product-block collection-block" data-collection-id="663434166621" > 3573 <div class="block-inner"> 3574 <a class="product-link" href="/collections/reformers"> 3575 <div class="image-cont"> 3576 <div class="product-block__image image-overlay__image img-stretch product-block__image--primary product-block__image--active">
3576<div class="img-ar img-ar--cover" style="--aspect-ratio: 0.8"> 3577<img src="//peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Reformers_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680540&width=1024" alt="" width="819" height="1024" loading="lazy" sizes="(min-width: 1920px) 480px, (min-width: 768px) 25vw, 50vw" srcset="//peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Reformers_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680540&width=425 340w, //peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Reformers_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680540&width=600 480w, //peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Reformers_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680540&width=925 740w, //peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Reformers_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680540&width=1225 980w, //peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Reformers_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680540&width=1280 1024w" class="theme-img"></div> 3578</div> 3579 3580</div><div class="product-block__detail align-center"><div class="product-block__title">Reformers</div></div></a> 3581 </div> 3582</div> 3583</div><div class="slider__item"><div class="product-block collection-block" data-collection-id="663434985821" > 3584 <div class="block-inner"> 3585 <a class="product-link" href="/collections/tower-systems"> 3586 <div class="image-cont"> 3587 <div class="product-block__image image-overlay__image img-stretch product-block__image--primary product-block__image--active">
3587<div class="img-ar img-ar--cover" style="--aspect-ratio: 0.8"> 3588<img src="//peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Tower-Systems_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680540&width=1024" alt="" width="819" height="1024" loading="lazy" sizes="(min-width: 1920px) 480px, (min-width: 768px) 25vw, 50vw" srcset="//peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Tower-Systems_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680540&width=425 340w, //peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Tower-Systems_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680540&width=600 480w, //peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Tower-Systems_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680540&width=925 740w, //peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Tower-Systems_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680540&width=1225 980w, //peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Tower-Systems_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680540&width=1280 1024w" class="theme-img"></div> 3589</div> 3590 3591</div><div class="product-block__detail align-center"><div class="product-block__title">Tower Systems</div></div></a> 3592 </div> 3593</div> 3594</div><div class="slider__item"><div class="product-block collection-block" data-collection-id="663435084125" > 3595 <div class="block-inner"> 3596 <a class="product-link" href="/collections/cadillacs"> 3597 <div class="image-cont"> 3598 <div class="product-block__image image-overlay__image img-stretch product-block__image--primary product-block__image--active">
3598<div class="img-ar img-ar--cover" style="--aspect-ratio: 0.8"> 3599<img src="//peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Cadillacs_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680540&width=1024" alt="" width="819" height="1024" loading="lazy" sizes="(min-width: 1920px) 480px, (min-width: 768px) 25vw, 50vw" srcset="//peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Cadillacs_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680540&width=425 340w, //peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Cadillacs_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680540&width=600 480w, //peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Cadillacs_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680540&width=925 740w, //peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Cadillacs_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680540&width=1225 980w, //peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Cadillacs_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680540&width=1280 1024w" class="theme-img"></div> 3600</div> 3601 3602</div><div class="product-block__detail align-center"><div class="product-block__title">Cadillacs</div></div></a> 3603 </div> 3604</div> 3605</div><div class="slider__item"><div class="product-block collection-block" data-collection-id="663434199389" > 3606 <div class="block-inner"> 3607 <a class="product-link" href="/collections/barrels"> 3608 <div class="image-cont"> 3609 <div class="product-block__image image-overlay__image img-stretch product-block__image--primary product-block__image--active">
3609<div class="img-ar img-ar--cover" style="--aspect-ratio: 0.8"> 3610<img src="//peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Barrels_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680541&width=1024" alt="" width="819" height="1024" loading="lazy" sizes="(min-width: 1920px) 480px, (min-width: 768px) 25vw, 50vw" srcset="//peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Barrels_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680541&width=425 340w, //peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Barrels_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680541&width=600 480w, //peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Barrels_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680541&width=925 740w, //peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Barrels_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680541&width=1225 980w, //peakpilates.eu/cdn/shop/files/Peak_Product-Categories_Barrels_1024x1024px.jpg?crop=region&crop_height=1024&crop_left=102&crop_top=0&crop_width=819&v=1755680541&width=1280 1024w" class="theme-img"></div> 3611</div> 3612 3613</div><div class="product-block__detail align-center"><div class="product-block__title">Barrels</div></div></a> 3614 </div> 3615</div> 3616</div></div> 3617 </div></carousel-slider></div> 3618</div> 3619 3620 3621 3622</div><div id="shopify-section-template--32858865697117__key_features_nPh38m" class="shopify-section section-key-features"><link rel="stylesheet" href="//peakpilates.eu/cdn/shop/t/4/assets/feature-rating.css?v=59419178531028512671789404899" media="print" onload="this.media='all'"> 3623<link rel="stylesheet" href="//peakpilates.eu/cdn/shop/t/4/assets/scrolling-image-list.css?v=123925918363151390951789404899" media="print" onload="this.media='all'">
3624<script src="//peakpilates.eu/cdn/shop/t/4/assets/scrolling-image-list.js?v=143095951995490155941789404899" defer></script>
3624<style data-shopify> 3625 3626 #template--32858865697117__key_features_nPh38m[data-current-index="1"] { 3627 --text-color: 80 80 80; 3628 --heading-color: 80 80 80; 3629 --link-color: 80 80 80; 3630 } 3631 3632 #template--32858865697117__key_features_nPh38m .scrolling-image-list__background[data-index="1"] { 3633 background: #ffffff; 3634 } 3635 3636 #template--32858865697117__key_features_nPh38m[data-current-index="1"] [data-index="1"] { 3637 --content-fade-delay: 200ms; 3638 --content-visibility: visible; 3639 opacity: 1; 3640 } 3641 3642 #template--32858865697117__key_features_nPh38m[data-current-index="1"] .scrolling-image-list-dots__dot[data-index="1"] { 3643 background: currentColor; 3644 } 3645 3646 #template--32858865697117__key_features_nPh38m[data-current-index="2"] { 3647 --text-color: 80 80 80; 3648 --heading-color: 80 80 80; 3649 --link-color: 80 80 80; 3650 } 3651 3652 #template--32858865697117__key_features_nPh38m .scrolling-image-list__background[data-index="2"] { 3653 background: #ffffff; 3654 } 3655 3656 #template--32858865697117__key_features_nPh38m[data-current-index="2"] [data-index="2"] { 3657 --content-fade-delay: 200ms; 3658 --content-visibility: visible; 3659 opacity: 1; 3660 } 3661 3662 #template--32858865697117__key_features_nPh38m[data-current-index="2"] .scrolling-image-list-dots__dot[data-index="2"] { 3663 background: currentColor; 3664 } 3665 3666 #template--32858865697117__key_features_nPh38m[data-current-index="3"] { 3667 --text-color: 80 80 80; 3668 --heading-color: 80 80 80; 3669 --link-color: 80 80 80; 3670 } 3671 3672 #template--32858865697117__key_features_nPh38m .scrolling-image-list__background[data-index="3"] { 3673 background: #ffffff; 3674 } 3675 3676 #template--32858865697117__key_features_nPh38m[data-current-index="3"] [data-index="3"] { 3677 --content-fade-delay: 200ms; 3678 --content-visibility: visible; 3679 opacity: 1; 3680 } 3681 3682 #template--32858865697117__key_features_nPh38m[data-current-index="3"] .scrolling-image-list-dots__dot[data-index="3"] { 3683 background: currentColor; 3684 } 3685 3686</style> 3687 3688<scrolling-image-list 3689 id="template--32858865697117__key_features_nPh38m" 3690 data-current-index="1" 3691 class="scrolling-image-list block use-color-scheme fully-padded-row--large" 3692 style="--image-width: 620px"> 3693 3694 <div class="scrolling-image-list__background" data-index="1"></div> 3695 3696 <div class="scrolling-image-list__background" data-index="2"></div> 3697 3698 <div class="scrolling-image-list__background" data-index="3"></div> 3699 3700 <div class="container container--not-mobile"> 3701 <div class="flexible-layout"> 3702 <div class="column column--half "> 3703 <carousel-slider class="carousel block" data-dispatch-events="true"> 3704 <div class="slider slider--no-scrollbar fade-in-up"> 3705 <div class="slider__grid md:block"> 3706 3707 <div class="slider__item flex-none basis-full" > 3708 <div class="scrolling-image-list__image" data-index="1" tabindex="0">
3708<div class="img-ar img-ar--cover" style="--aspect-ratio: 0.8"> 3709<img src="//peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_1_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680545&width=1500" alt="" width="1200" height="1500" loading="lazy" sizes="(min-width: 1920px) 960px, (min-width: 768px) 50vw, 100vw" srcset="//peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_1_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680545&width=425 340w, //peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_1_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680545&width=600 480w, //peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_1_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680545&width=925 740w, //peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_1_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680545&width=1225 980w, //peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_1_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680545&width=1500 1200w, //peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_1_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680545&width=1750 1400w, //peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_1_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680545&width=1875 1500w" class="theme-img"></div> 3710<div class="mobile-only fully-spaced-row scrolling-image-list__content scrolling-image-list__content--mobile" data-index="1"><div class="subheading spaced-row" role="heading" aria-level="2">Why Peak Pilates?</div><h3 class="h2">Beauty, Function and Tradition</h3><div class="rte"><p>Our family of equipmentâfrom classic, handcrafted woods to innovative metal designs, is constructed with beauty, function and tradition in mind. We use only the finest materials, including traditional wood, sustainable bamboo and modern metals, to honor Joseph Pilatesâ original designs and deliberately include only those components that we believe will preserve the integrity of authentic Pilates exercises. Our equipment delivers unparalleled product performance, versatility and safety, and a superior Pilates experience.</p></div></div> 3711 </div> 3712 </div> 3713 3714 <div class="slider__item flex-none basis-full" > 3715 <div class="scrolling-image-list__image" data-index="2" tabindex="0">
3715<div class="img-ar img-ar--cover" style="--aspect-ratio: 0.8"> 3716<img src="//peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_2_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680546&width=1500" alt="" width="1200" height="1500" loading="lazy" sizes="(min-width: 1920px) 960px, (min-width: 768px) 50vw, 100vw" srcset="//peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_2_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680546&width=425 340w, //peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_2_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680546&width=600 480w, //peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_2_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680546&width=925 740w, //peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_2_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680546&width=1225 980w, //peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_2_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680546&width=1500 1200w, //peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_2_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680546&width=1750 1400w, //peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_2_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680546&width=1875 1500w" class="theme-img"></div> 3717<div class="mobile-only fully-spaced-row scrolling-image-list__content scrolling-image-list__content--mobile" data-index="2"><div class="subheading spaced-row" role="heading" aria-level="2">Why Peak Pilates?</div><h3 class="h2">World-Class Education</h3><div class="rte"><p>We have created the very best Pilates instructor education system in the world. We are unique in that we teach the fundamentals of Classical Pilates and emphasize an integrated and systematic approach for a balanced workout and unparalleled results. Instructors truly learn how to teach and balance flow with precision, not just what to teach. Our programs provide a formula to teach Pilates that is integrated, fresh in its simplicity, structured enough for the new teacher, yet rich enough for the more experienced teacher.</p></div></div> 3718 </div> 3719 </div> 3720 3721 <div class="slider__item flex-none basis-full" > 3722 <div class="scrolling-image-list__image" data-index="3" tabindex="0">
3722<div class="img-ar img-ar--cover" style="--aspect-ratio: 0.8"> 3723<img src="//peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_3_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680546&width=1500" alt="" width="1200" height="1500" loading="lazy" sizes="(min-width: 1920px) 960px, (min-width: 768px) 50vw, 100vw" srcset="//peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_3_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680546&width=425 340w, //peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_3_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680546&width=600 480w, //peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_3_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680546&width=925 740w, //peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_3_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680546&width=1225 980w, //peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_3_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680546&width=1500 1200w, //peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_3_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680546&width=1750 1400w, //peakpilates.eu/cdn/shop/files/Why-Peak-Pilates_3_1500x1500px.jpg?crop=region&crop_height=1500&crop_left=150&crop_top=0&crop_width=1200&v=1755680546&width=1875 1500w" class="theme-img"></div> 3724<div class="mobile-only fully-spaced-row scrolling-image-list__content scrolling-image-list__content--mobile" data-index="3"><div class="subheading spaced-row" role="heading" aria-level="2">Why Peak Pilates?</div><h3 class="h2">Integrated Approach</h3><div class="rte"><p>The timeless designs and movement principles created by Joseph Pilates are reflected in each piece of our equipment and education programming. The marriage of our elegant equipment and unparalleled instructor education programming brings the beauty and benefits of Pilates to the world.</p></div></div> 3725 </div> 3726 </div> 3727 3728 </div> 3729 </div> 3730 3731 <div class="scrolling-image-list-dots flex justify-center mobile-only js" role="presentation"><div class="scrolling-image-list-dots__dot" data-index="1"></div><div class="scrolling-image-list-dots__dot" data-index="2"></div><div class="scrolling-image-list-dots__dot" data-index="3"></div></div> 3732 </carousel-slider> 3733 </div> 3734 3735 <div class="column column--half desktop-only scrolling-image-list__content-column"> 3736 <div class="scrolling-image-list__content-area"> 3737 <div class="feature-text-paired"><div class="subheading spaced-row" role="heading" aria-level="2">Why Peak Pilates?</div><div class="scrolling-image-list__content-list"> 3738 3739 <div class="spaced-row scrolling-image-list__content" data-index="1" tabindex="0"><h3 class="h2">Beauty, Function and Tradition</h3><div class="rte"><p>Our family of equipmentâfrom classic, handcrafted woods to innovative metal designs, is constructed with beauty, function and tradition in mind. We use only the finest materials, including traditional wood, sustainable bamboo and modern metals, to honor Joseph Pilatesâ original designs and deliberately include only those components that we believe will preserve the integrity of authentic Pilates exercises. Our equipment delivers unparalleled product performance, versatility and safety, and a superior Pilates experience.</p></div></div> 3740 3741 <div class="spaced-row scrolling-image-list__content" data-index="2" tabindex="0"><h3 class="h2">World-Class Education</h3><div class="rte"><p>We have created the very best Pilates instructor education system in the world. We are unique in that we teach the fundamentals of Classical Pilates and emphasize an integrated and systematic approach for a balanced workout and unparalleled results. Instructors truly learn how to teach and balance flow with precision, not just what to teach. Our programs provide a formula to teach Pilates that is integrated, fresh in its simplicity, structured enough for the new teacher, yet rich enough for the more experienced teacher.</p></div></div> 3742 3743 <div class="spaced-row scrolling-image-list__content" data-index="3" tabindex="0"><h3 class="h2">Integrated Approach</h3><div class="rte"><p>The timeless designs and movement principles created by Joseph Pilates are reflected in each piece of our equipment and education programming. The marriage of our elegant equipment and unparalleled instructor education programming brings the beauty and benefits of Pilates to the world.</p></div></div> 3744 3745 </div> 3746 </div> 3747 </div> 3748 </div> 3749 </div> 3750 </div> 3751</scrolling-image-list> 3752 3753 3754 3755<style> #shopify-section-template--32858865697117__key_features_nPh38m .majortitle {font-size: 28px;} </style></div><div id="shopify-section-template--32858865697117__testimonials_Et8QNb" class="shopify-section section-testimonials">
3755<script src="//peakpilates.eu/cdn/shop/t/4/assets/slideshow.js?v=180883487346732308881789404899" defer></script>
3755<link rel="stylesheet" href="//peakpilates.eu/cdn/shop/t/4/assets/testimonials.css?v=44668326073150602841789404899" media="print" onload="this.media='all'"> 3756 3757<div id="section-id-template--32858865697117__testimonials_Et8QNb" class="fully-spaced-row--medium"><style data-shopify>#section-id-template--32858865697117__testimonials_Et8QNb .testimonial__blockquote { 3758 font-size: 20px; 3759 } 3760 @media (min-width: 768px) { 3761 #section-id-template--32858865697117__testimonials_Et8QNb .testimonial__blockquote {font-size: 21.0px; 3762 } 3763 } 3764 @media (min-width: 1100px) { 3765 #section-id-template--32858865697117__testimonials_Et8QNb .testimonial__blockquote { 3766 font-size: 30px; 3767 } 3768 }</style><div class="container fade-in"> 3769 <div class="testimonial-list testimonial-list--no-image testimonial-list--without-images" data-testimonial-count="2"><div class="subheading">From the people</div><slide-show role="region" data-autoplay="true" data-speed="5" data-transition="fade" data-transition-out-delay="0" data-pause-autoplay-on-mouseover="true"> 3770 <div class="slideshow slideshow--navigation-arrows testimonial-list__inner" id="slideshow-template--32858865697117__testimonials_Et8QNb" aria-live="polite" aria-atomic="true"><div class="slideshow__slide is-active" style="--slide-index: 1"><div class="testimonial testimonial-1 reading-width" > 3771 <div class="testimonial__column testimonial__column--text"> 3772 3773 3774 <div class="testimonial__content"><div class="testimonial__star-rating heading-font"><span class="testimonial__star"><svg class="icon" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" focusable="false" role="presentation"><path d="m12 2 3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg></span><span class="testimonial__star"><svg class="icon" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" focusable="false" role="presentation"><path d="m12 2 3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg></span><span class="testimonial__star"><svg class="icon" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" focusable="false" role="presentation"><path d="m12 2 3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg></span><span class="testimonial__star"><svg class="icon" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" focusable="false" role="presentation"><path d="m12 2 3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg></span><span class="testimonial__star"><svg class="icon" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" focusable="false" role="presentation"><path d="m12 2 3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg></span></div><div class="testimonial__text"> 3775 <blockquote class="testimonial__blockquote heading-font">Awesome Reformer!</blockquote> 3776 </div><div class="testimonial__author"> 3777 — Joanie B. 3778 </div></div> 3779 </div> 3780 3781 3782 </div></div><div class="slideshow__slide" style="--slide-index: 2"><div class="testimonial testimonial-2 reading-width" > 3783 <div class="testimonial__column testimonial__column--text"> 3784 3785 3786 <div class="testimonial__content"><div class="testimonial__star-rating heading-font"><span class="testimonial__star"><svg class="icon" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" focusable="false" role="presentation"><path d="m12 2 3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg></span><span class="testimonial__star"><svg class="icon" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" focusable="false" role="presentation"><path d="m12 2 3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg></span><span class="testimonial__star"><svg class="icon" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" focusable="false" role="presentation"><path d="m12 2 3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg></span><span class="testimonial__star"><svg class="icon" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" focusable="false" role="presentation"><path d="m12 2 3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg></span><span class="testimonial__star"><svg class="icon" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" focusable="false" role="presentation"><path d="m12 2 3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg></span></div><div class="testimonial__text"> 3787 <blockquote class="testimonial__blockquote heading-font">Great quality & looks great, too. Smooth, quiet glide on carriage. Equals or exceeds any reformer I've experienced. Love this reformer!</blockquote> 3788 </div><div class="testimonial__author"> 3789 — Debbie M. 3790 </div></div> 3791 </div> 3792 3793 3794 </div></div></div> 3795 <div class="slideshow-ctrl js-only"> 3796 <div class="slideshow-nav"> 3797 <button type="button" class="slideshow-nav__btn has-ltr-icon" name="prev" aria-controls="slideshow-template--32858865697117__testimonials_Et8QNb">
3798 <span class="visually-hidden">Previous</span> 3799 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-left" aria-hidden="true" focusable="false" role="presentation"><path d="m15 18-6-6 6-6"/></svg> 3800 </button> 3801 <button type="button" class="slideshow-nav__btn has-ltr-icon" name="next" aria-controls="slideshow-template--32858865697117__testimonials_Et8QNb"> 3802 <span class="visually-hidden">Next</span> 3803 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-chevron-right" aria-hidden="true" focusable="false" role="presentation"><path d="m9 18 6-6-6-6"/></svg> 3804 </button> 3805 </div> 3806 </div> 3807 </slide-show></div> 3808 </div> 3809</div> 3810 3811 3812</div> 3813 3814 </div> 3815 </main><div id="pagefooter"><!-- BEGIN sections: footer-group --> 3816<div id="shopify-section-sections--32858859340125__newsletter_a38NQg" class="shopify-section shopify-section-group-footer-group section-newsletter"><div class="section-signup use-color-scheme use-color-scheme--2"> 3817 <div class="container strongly-padded-row align-center"> 3818 3819 <h2 class="hometitle h4 in-content">Subscribe to our newsletter</h2> 3820 3821 <div class="rte lightly-spaced-row"><p>Promotions, new products and sales. Directly to your inbox.</p></div> 3822 3823 <div class="signup-form"> 3824 <form method="post" action="/contact#home_newsletter_signup" id="home_newsletter_signup" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /> 3825 3826<input type="hidden" name="contact[tags]" value="prospect,newsletter"/> 3827 <div> 3828 <div class="signup-form__inline-container"> 3829 <input type="email" 3830 placeholder="Your email" 3831 class="signup-form__email" 3832 value="" 3833 name="contact[email]" 3834 aria-label="Email" 3835 3836 required /> 3837 <button class="btn signup-form__button" type="submit">Subscribe</button> 3838 </div> 3839 </div> 3840 3841 </form> 3842 </div> 3843 </div> 3844</div> 3845 3846 3847<style> #shopify-section-sections--32858859340125__newsletter_a38NQg .section-signup.use-color-scheme.use-color-scheme--2, #shopify-section-sections--32858859340125__newsletter_a38NQg .section-signup.use-color-scheme.use-color-scheme--2::before {background-color: black !important; color: white;} #shopify-section-sections--32858859340125__newsletter_a38NQg .hometitle {color: white;} #shopify-section-sections--32858859340125__newsletter_a38NQg div {margin-top: 0px;} #shopify-section-sections--32858859340125__newsletter_a38NQg button {background-color: #a68b5b !important; color: ivory !important; border: none !important; outline: none !important; box-shadow: none !important;} </style></div><div id="shopify-section-sections--32858859340125__footer" class="shopify-section shopify-section-group-footer-group section-footer"> 3848 <div class="container container--no-max section-footer__row-container"> 3849 <div class="section-footer__row section-footer__row--blocks" data-num-blocks="4"> 3850 3851 3852 <div class="section-footer__row__col section-footer__menu-block" role="navigation" aria-label="Secondary" > 3853 <mobile-disclosure class="block"> 3854 <details class="mobile-disclosure" open> 3855 <summary class="mobile-disclosure__title" tabindex="-1"> 3856 3857<div class="section-footer__title heading-font h6 no-wrap">Support</div> 3858 3859 </summary> 3860 <div class="mobile-disclosure__panel has-motion"> 3861 <div class="mobile-disclosure__content"> 3862 3863 <ul class="section-footer__menu-block__menu" > 3864 3865 <li> 3866 <a href="/pages/contact-us" class="no-wrap">Contact Us</a> 3867 </li> 3868 3869 <li> 3870 <a href="/pages/order-faqs" class="no-wrap">Order FAQs</a> 3871 </li> 3872 3873 <li> 3874 <a href="/pages/warranty" class="no-wrap">Warranty</a> 3875 </li> 3876 3877 <li> 3878 <a href="/pages/shipping-handling" class="no-wrap">Shipping and Handling</a> 3879 </li> 3880 3881 <li> 3882 <a href="/pages/product-manuals" class="no-wrap">Product Manuals</a> 3883 </li> 3884 3885 <li> 3886 <a href="/search" class="no-wrap">Search</a> 3887 </li> 3888 3889<li data-mda-eu-withdrawal-link> 3890 <a href="https://shopify.com/97826013533/account" class="no-wrap"> 3891 Request return/cancellation / Withdrawal 3892 </a> 3893 </li></ul> 3894 3895 </div> 3896 </div> 3897 </details> 3898 </mobile-disclosure> 3899 </div> 3900 3901 3902 3903 3904 <div class="section-footer__row__col section-footer__menu-block" role="navigation" aria-label="Secondary" > 3905 <mobile-disclosure class="block"> 3906 <details class="mobile-disclosure" open> 3907 <summary class="mobile-disclosure__title" tabindex="-1"> 3908 3909<div class="section-footer__title heading-font h6 no-wrap">Company Info</div> 3910 3911 </summary> 3912 <div class="mobile-disclosure__panel has-motion"> 3913 <div class="mobile-disclosure__content"> 3914 3915 <ul class="section-footer__menu-block__menu" > 3916 3917 <li> 3918 <a href="/pages/about-mad-dogg-athletics" class="no-wrap">About Mad Dogg Athletics</a> 3919 </li> 3920 3921 <li> 3922 <a href="https://issuu.com/spinning.com/docs/peak_pilates_catalog?fr=xKAE9_zU1NQ" class="no-wrap">Catalog</a> 3923 </li> 3924 3925 <li> 3926 <a href="/pages/legal-trademark" class="no-wrap">Legal & Trademark</a> 3927 </li> 3928 3929 <li> 3930 <a href="/pages/privacy-policy" class="no-wrap">Privacy Policy</a> 3931 </li> 3932 3933 <li> 3934 <a href="/pages/global-distributors" class="no-wrap">Equipment Distributors</a> 3935 </li> 3936 3937 <li> 3938 <a href="/pages/newsletter" class="no-wrap">Newsletter</a> 3939 </li> 3940 3941</ul> 3942 3943 </div> 3944 </div> 3945 </details> 3946 </mobile-disclosure> 3947 </div> 3948 3949 3950 3951 3952 <div class="section-footer__row__col section-footer__menu-block" role="navigation" aria-label="Secondary" > 3953 <mobile-disclosure class="block"> 3954 <details class="mobile-disclosure" open> 3955 <summary class="mobile-disclosure__title" tabindex="-1"> 3956 3957<div class="section-footer__title heading-font h6 no-wrap">Education</div> 3958 3959 </summary> 3960 <div class="mobile-disclosure__panel has-motion"> 3961 <div class="mobile-disclosure__content"> 3962 3963 <ul class="section-footer__menu-block__menu" > 3964 3965 <li> 3966 <a href="/pages/education-find-a-training" class="no-wrap">Find a Training</a> 3967 </li> 3968 3969 <li> 3970 <a href="/pages/education-certifications-comprehe
3970nsive" >Instructor Certifications</a> 3971 </li> 3972 3973 <li> 3974 <a href="/pages/education-certification-renewal" class="no-wrap">Certification Renewal</a> 3975 </li> 3976 3977 <li> 3978 <a href="/pages/education-continuing-education" class="no-wrap">Continuing Education</a> 3979 </li> 3980 3981 <li> 3982 <a href="/pages/education-faqs" class="no-wrap">Education FAQs</a> 3983 </li> 3984 3985 <li> 3986 <a href="/pages/education-peakulogin" class="no-wrap">PeakU</a> 3987 </li> 3988 3989 <li> 3990 <a href="/pages/education-centers" class="no-wrap">Education Distributors</a> 3991 </li> 3992 3993</ul> 3994 3995 </div> 3996 </div> 3997 </details> 3998 </mobile-disclosure> 3999 </div> 4000 4001 4002 4003 4004 <div class="section-footer__row__col section-footer__menu-block" role="navigation" aria-label="Secondary" > 4005 <mobile-disclosure class="block"> 4006 <details class="mobile-disclosure" open> 4007 <summary class="mobile-disclosure__title" tabindex="-1"> 4008 4009<div class="section-footer__title heading-font h6 no-wrap">Brands</div> 4010 4011 </summary> 4012 <div class="mobile-disclosure__panel has-motion"> 4013 <div class="mobile-disclosure__content"> 4014 4015 <ul class="section-footer__menu-block__menu" > 4016 4017 <li> 4018 <a href="https://spinning.eu/" class="no-wrap">Spinning®</a> 4019 </li> 4020 4021 <li> 4022 <a href="https://peakpilates.eu/" class="no-wrap">Peak Pilates®</a> 4023 </li> 4024 4025 <li> 4026 <a href="https://spinning.eu/collections/crosscore" class="no-wrap">CrossCore®</a> 4027 </li> 4028 4029</ul> 4030 4031 </div> 4032 </div> 4033 </details> 4034 </mobile-disclosure> 4035 </div> 4036 4037 4038 4039 </div> 4040 </div> 4041 4042<div class="container container--no-max section-footer__row-container section-footer__row-container--with-localization"> 4043 <div class="section-footer__row section-footer__row-lower"> 4044 <div class="section-footer__row__col"> 4045 4046 <div class="section-footer__payment-icons"> 4047 4048 <svg class="section-footer__payment-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-american_express"><title id="pi-american_express">American Express</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#0071CE" style="fill:#0071CE;fill:color(display-p3 0.0000 0.4431 0.8078);fill-opacity:1;"/><path d="M3 0.5H35C36.3348 0.5 37.5 1.58692 37.5 3V21C37.5 22.4239 36.4239 23.5 35 23.5H3C1.66524 23.5 0.5 22.4131 0.5 21V3C0.5 1.57614 1.57614 0.5 3 0.5Z" stroke="black" stroke-opacity="0.07" style="stroke:black;stroke-opacity:0.07;"/><path d="M25.8662 6.33203V3H31L31.8662 5.5332L32.7334 3H37V14.2002H36.7998L34.8672 16.2656L36.7998 18.3594H37V21.2666H33.5996L31.9336 19.3994L30.2002 21.2666H19.4668V12.666H16L20.2666 3H24.4004L25.8662 6.33203ZM20.5996 20.2656H27V18.5322H22.666V17.3994H26.8662V15.666H22.666V14.5322H27V12.7988H20.5996V20.2656ZM30.5332 16.5322L27 20.2656H29.5996L31.8662 17.8662L34.0664 20.2656H36.7324L33.1992 16.4658L36.7324 12.7988H34.1328L31.8662 15.1992L29.7324 12.7988H27L30.5332 16.5322ZM17.666 11.7324H19.9326L20.5332 10.1992H23.999L24.666 11.7324H26.999L23.666 4.19922H20.999L17.666 11.7324ZM33.5996 4.19922L31.9326 8.86621L30.1992 4.19922H27V11.666H29.0664V6.39941L31 11.666H32.7998L34.7324 6.39941V11.666H36.7324V4.13281L33.5996 4.19922ZM23.2656 8.46582H21.2656L22.2656 5.99902L23.2656 8.46582Z" fill="white" style="fill:white;fill-opacity:1;"/>
4048</svg> 4049 4050 4051 <svg class="section-footer__payment-icon" version="1.1" xmlns="http://www.w3.org/2000/svg" role="img" x="0" y="0" width="38" height="24" viewBox="0 0 165.521 105.965" xml:space="preserve" aria-labelledby="pi-apple_pay"><title id="pi-apple_pay">Apple Pay</title><path fill="#000" d="M150.698 0H14.823c-.566 0-1.133 0-1.698.003-.477.004-.953.009-1.43.022-1.039.028-2.087.09-3.113.274a10.51 10.51 0 0 0-2.958.975 9.932 9.932 0 0 0-4.35 4.35 10.463 10.463 0 0 0-.975 2.96C.113 9.611.052 10.658.024 11.696a70.22 70.22 0 0 0-.022 1.43C0 13.69 0 14.256 0 14.823v76.318c0 .567 0 1.132.002 1.699.003.476.009.953.022 1.43.028 1.036.09 2.084.275 3.11a10.46 10.46 0 0 0 .974 2.96 9.897 9.897 0 0 0 1.83 2.52 9.874 9.874 0 0 0 2.52 1.83c.947.483 1.917.79 2.96.977 1.025.183 2.073.245 3.112.273.477.011.953.017 1.43.02.565.004 1.132.004 1.698.004h135.875c.565 0 1.132 0 1.697-.004.476-.002.952-.009 1.431-.02 1.037-.028 2.085-.09 3.113-.273a10.478 10.478 0 0 0 2.958-.977 9.955 9.955 0 0 0 4.35-4.35c.483-.947.789-1.917.974-2.96.186-1.026.246-2.074.274-3.11.013-.477.02-.954.022-1.43.004-.567.004-1.132.004-1.699V14.824c0-.567 0-1.133-.004-1.699a63.067 63.067 0 0 0-.022-1.429c-.028-1.038-.088-2.085-.274-3.112a10.4 10.4 0 0 0-.974-2.96 9.94 9.94 0 0 0-4.35-4.35A10.52 10.52 0 0 0 156.939.3c-1.028-.185-2.076-.246-3.113-.274a71.417 71.417 0 0 0-1.431-.022C151.83 0 151.263 0 150.698 0z" /><path fill="#FFF" d="M150.698 3.532l1.672.003c.452.003.905.008 1.36.02.793.022 1.719.065 2.583.22.75.135 1.38.34 1.984.648a6.392 6.392 0 0 1 2.804 2.807c.306.6.51 1.226.645 1.983.154.854.197 1.783.218 2.58.013.45.019.9.02 1.36.005.557.005 1.113.005 1.671v76.318c0 .558 0 1.114-.004 1.682-.002.45-.008.9-.02 1.35-.022.796-.065 1.725-.221 2.589a6.855 6.855 0 0 1-.645 1.975 6.397 6.397 0 0 1-2.808 2.807c-.6.306-1.228.511-1.971.645-.881.157-1.847.2-2.574.22-.457.01-.912.017-1.379.019-.555.004-1.113.004-1.669.004H14.801c-.55 0-1.1 0-1.66-.004a74.993 74.993 0 0 1-1.35-.018c-.744-.02-1.71-.064-2.584-.22a6.938 6.938 0 0 1-1.986-.65 6.337 6.337 0 0 1-1.622-1.18 6.355 6.355 0 0 1-1.178-1.623 6.935 6.935 0 0 1-.646-1.985c-.156-.863-.2-1.788-.22-2.578a66.088 66.088 0 0 1-.02-1.355l-.003-1.327V14.474l.002-1.325a66.7 66.7 0 0 1 .02-1.357c.022-.792.065-1.717.222-2.587a6.924 6.924 0 0 1 .646-1.981c.304-.598.7-1.144 1.18-1.623a6.386 6.386 0 0 1 1.624-1.18 6.96 6.96 0 0 1 1.98-.646c.865-.155 1.792-.198 2.586-.22.452-.012.905-.017 1.354-.02l1.677-.003h135.875" /><g><g><path fill="#000" d="M43.508 35.77c1.404-1.755 2.356-4.112 2.105-6.52-2.054.102-4.56 1.355-6.012 3.112-1.303 1.504-2.456 3.959-2.156 6.266 2.306.2 4.61-1.152 6.063-2.858" /><path fill="#000" d="M45.587 39.079c-3.35-.2-6.196 1.9-7.795 1.9-1.6 0-4.049-1.8-6.698-1.751-3.447.05-6.645 2-8.395 5.1-3.598 6.2-.95 15.4 2.55 20.45 1.699 2.5 3.747 5.25 6.445 5.151 2.55-.1 3.549-1.65 6.647-1.65 3.097 0 3.997 1.65 6.696 1.6 2.798-.05 4.548-2.5 6.247-5 1.95-2.85 2.747-5.6 2.797-5.75-.05-.05-5.396-2.101-5.446-8.251-.05-5.15 4.198-7.6 4.398-7.751-2.399-3.548-6.147-3.948-7.447-4.048" /></g><g><path fill="#000" d="M78.973 32.11c7.278 0 12.347 5.017 12.347 12.321 0 7.33-5.173 12.373-12.529 12.373h-8.058V69.62h-5.822V32.11h14.062zm-8.24 19.807h6.68c5.07 0 7.954-2.729 7.954-7.46 0-4.73-2.885-7.434-7.928-7.434h-6.706v14.894z" /><path fill="#000" d="M92.764 61.847c0-4.809 3.665-7.564 10.423-7.98l7.252-.442v-2.08c0-3.04-2.001-4.704-5.562-4.704-2.938 0-5.07 1.507-5.51 3.82h-5.252c.157-4.86 4.731-8.395 10.918-8.395 6.654 0 10.995 3.483 10.995 8.89v18.663h-5.38v-4.497h-.13c-1.534 2.937-4.914 4.782-8.579 4.782-5.406 0-9.175-3.222-9.175-8.057zm17.675-2.417v-2.106l-6.472.416c-3.64.234-5.536 1.585-5.536 3.95 0 2.288 1.975 3.77 5.068 3.77 3.95 0 6.94-2.522 6.94-6.03z" /><path fill="#000" d="M120.975 79.652v-4.496c.364.051 1.247.103 1.715.103 2.573 0 4.029-1.09 4.913-3.899l.52-1.663-9.852-27.293h6.082l6.863 22.146h.13l6.862-22.146h5.927l-10.216 28.67c-2.34 6.577-5.017 8.735-10.683 8.735-.442 0-1.872-.052-2.261-.157z" /></g></g></svg> 4052 4053 4054 <svg class="section-footer__payment-icon" xmlns="http://www.w3.org/2000/svg" aria-labelledby="pi-bancontact" role="img" viewBox="0 0 38 24" width="38" height="24"><title id="pi-bancontact">Bancontact</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M4.703 3.077h28.594c.139 0 .276.023.405.068.128.045.244.11.343.194a.9.9 0 0 1 .229.29c.053.107.08.223.08.34V20.03a.829.829 0 0 1-.31.631 1.164 1.164 0 0 1-.747.262H4.703a1.23 1.23 0 0 1-.405-.068 1.09 1.09 0 0 1-.343-.194.9.9 0 0 1-.229-.29.773.773 0 0 1-.08-.34V3.97c0-.118.027-.234.08-.342a.899.899 0 0 1 .23-.29c.098-.082.214-.148.342-.193a1.23 1.23 0 0 1 .405-.068Z" fill="#fff"/><path d="M6.38 18.562v-3.077h1.125c.818 0 1.344.259 1.344.795 0 .304-.167.515-.401.638.338.132.536.387.536.734 0 .62-.536.91-1.37.91H6.38Zm.724-1.798h.537c.328 0 .468-.136.468-.387 0-.268-.255-.356-.599-.356h-.406v.743Zm0 1.262h.448c.438 0 .693-.093.693-.383 0-.286-.219-.404-.63-.404h-.51v.787Zm3.284.589c-.713 0-1.073-.295-1.073-.69 0-.436.422-.69 1.047-.695.156.002.31.014.464.035v-.105c0-.269-.183-.396-.531-.396a2.128 2.128 0 0 0-.688.105l-.13-.474a3.01 3.01 0 0 1 .9-.132c.767 0 1.147.343 1.147.936v1.222c-.214.093-.615.194-1.136.194Zm.438-.497v-.47a2.06 2.06 0 0 0-.37-.036c-.24 0-.427.08-.427.286 0 .185.156.281.432.281a.947.947 0 0 0 .365-.061Zm1.204.444v-2.106a3.699 3.699 0 0 1 1.177-.193c.76 0 1.198.316 1.198.9v1.399h-.719v-1.354c0-.303-.167-.444-.484-.444a1.267 1.267 0 0 0-.459.079v1.719h-.713Zm4.886-2.167-.135.479a1.834 1.834 0 0 0-.588-.11c-.422 0-.652.25-.652.664 0 .453.24.685.688.685.2-.004.397-.043.578-.114l.115.488a2.035 2.035 0 0 1-.75.128c-.865 0-1.365-.453-1.365-1.17 0-.712.495-1.182 1.323-1.182.27-.
4054001.538.043.787.132Zm1.553 2.22c-.802 0-1.302-.47-1.302-1.178 0-.704.5-1.174 1.302-1.174.807 0 1.297.47 1.297 1.173 0 .708-.49 1.179-1.297 1.179Zm0-.502c.37 0 .563-.259.563-.677 0-.413-.193-.672-.563-.672-.364 0-.568.26-.568.672 0 .418.204.677.568.677Zm1.713.449v-2.106a3.699 3.699 0 0 1 1.177-.193c.76 0 1.198.316 1.198.9v1.399h-.719v-1.354c0-.303-.166-.444-.484-.444a1.268 1.268 0 0 0-.459.079v1.719h-.713Zm3.996.053c-.62 0-.938-.286-.938-.866v-.95h-.354v-.484h.355v-.488l.718-.03v.518h.578v.484h-.578v.94c0 .256.125.374.36.374.093 0 .185-.008.276-.026l.036.488c-.149.028-.3.041-.453.04Zm1.814 0c-.713 0-1.073-.295-1.073-.69 0-.436.422-.69 1.047-.695.155.002.31.014.464.035v-.105c0-.269-.183-.396-.532-.396a2.128 2.128 0 0 0-.687.105l-.13-.474a3.01 3.01 0 0 1 .9-.132c.766 0 1.146.343 1.146.936v1.222c-.213.093-.614.194-1.135.194Zm.438-.497v-.47a2.06 2.06 0 0 0-.37-.036c-.24 0-.427.08-.427.286 0 .185.156.281.432.281a.946.946 0 0 0 .365-.061Zm3.157-1.723-.136.479a1.834 1.834 0 0 0-.588-.11c-.422 0-.651.25-.651.664 0 .453.24.685.687.685.2-.004.397-.043.578-.114l.115.488a2.035 2.035 0 0 1-.75.128c-.865 0-1.365-.453-1.365-1.17 0-.712.495-1.182 1.323-1.182.27-.001.538.043.787.132Zm1.58 2.22c-.62 0-.938-.286-.938-.866v-.95h-.354v-.484h.354v-.488l.72-.03v.518h.577v.484h-.578v.94c0 .256.125.374.36.374.092 0 .185-.008.276-.026l.036.488c-.149.028-.3.041-.453.04Z" fill="#1E3764"/><path d="M11.394 13.946c3.803 0 5.705-2.14 7.606-4.28H6.38v4.28h5.014Z" fill="url(#pi-bancontact-a)"/><path d="M26.607 5.385c-3.804 0-5.705 2.14-7.607 4.28h12.62v-4.28h-5.013Z" fill="url(#pi-bancontact-b)"/><defs><linearGradient id="pi-bancontact-a" x1="8.933" y1="12.003" x2="17.734" y2="8.13" gradientUnits="userSpaceOnUse"><stop stop-color="#005AB9"/><stop offset="1" stop-color="#1E3764"/></linearGradient><linearGradient id="pi-bancontact-b" x1="19.764" y1="10.037" x2="29.171" y2="6.235" gradientUnits="userSpaceOnUse"><stop stop-color="#FBA900"/><stop offset="1" stop-color="#FFD800"/></linearGradient></defs></svg> 4055 4056 <svg class="section-footer__payment-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-google_pay"><title id="pi-google_pay">Google Pay</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF"/><path d="M18.093 11.976v3.2h-1.018v-7.9h2.691a2.447 2.447 0 0 1 1.747.692 2.28 2.28 0 0 1 .11 3.224l-.11.116c-.47.447-1.098.69-1.747.674l-1.673-.006zm0-3.732v2.788h1.698c.377.012.741-.135 1.005-.404a1.391 1.391 0 0 0-1.005-2.354l-1.698-.03zm6.484 1.348c.65-.03 1.286.188 1.778.613.445.43.682 1.03.65 1.649v3.334h-.969v-.766h-.049a1.93 1.93 0 0 1-1.673.931 2.17 2.17 0 0 1-1.496-.533 1.667 1.667 0 0 1-.613-1.324 1.606 1.606 0 0 1 .613-1.336 2.746 2.746 0 0 1 1.698-.515c.517-.02 1.03.093 1.49.331v-.208a1.134 1.134 0 0 0-.417-.901 1.416 1.416 0 0 0-.98-.368 1.545 1.545 0 0 0-1.319.717l-.895-.564a2.488 2.488 0 0 1 2.182-1.
405606zM23.29 13.52a.79.79 0 0 0 .337.662c.223.176.5.269.785.263.429-.001.84-.17 1.146-.472.305-.286.478-.685.478-1.103a2.047 2.047 0 0 0-1.324-.374 1.716 1.716 0 0 0-1.03.294.883.883 0 0 0-.392.73zm9.286-3.75l-3.39 7.79h-1.048l1.281-2.728-2.224-5.062h1.103l1.612 3.885 1.569-3.885h1.097z" fill="#5F6368"/><path d="M13.986 11.284c0-.308-.024-.616-.073-.92h-4.29v1.747h2.451a2.096 2.096 0 0 1-.9 1.373v1.134h1.464a4.433 4.433 0 0 0 1.348-3.334z" fill="#4285F4"/><path d="M9.629 15.721a4.352 4.352 0 0 0 3.01-1.097l-1.466-1.14a2.752 2.752 0 0 1-4.094-1.44H5.577v1.17a4.53 4.53 0 0 0 4.052 2.507z" fill="#34A853"/><path d="M7.079 12.05a2.709 2.709 0 0 1 0-1.735v-1.17H5.577a4.505 4.505 0 0 0 0 4.075l1.502-1.17z" fill="#FBBC04"/><path d="M9.629 8.44a2.452 2.452 0 0 1 1.74.68l1.3-1.293a4.37 4.37 0 0 0-3.065-1.183 4.53 4.53 0 0 0-4.027 2.5l1.502 1.171a2.715 2.715 0 0 1 2.55-1.875z" fill="#EA4335"/></svg> 4057 4058 4059 <svg class="section-footer__payment-icon" xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" viewBox="0 0 38 24" aria-labelledby="pi-klarna" fill="none"><title id="pi-klarna">Klarna</title><rect width="38" height="24" rx="2" fill="#FFA8CD"/><rect x=".5" y=".5" width="37" height="23" rx="1.5" stroke="#000" stroke-opacity=".07"/><path d="M30.62 14.755c-.662 0-1.179-.554-1.179-1.226 0-.673.517-1.226 1.18-1.226.663 0 1.18.553 1.18 1.226 0 .672-.517 1.226-1.18 1.226zm-.33 1.295c.565 0 1.286-.217 1.686-1.068l.04.02c-.176.465-.176.742-.176.81v.11h1.423v-4.786H31.84v.109c0 .069 0 .346.175.81l-.039.02c-.4-.85-1.121-1.068-1.687-1.068-1.355 0-2.31 1.088-2.31 2.522 0 1.433.955 2.521 2.31 2.521zm-4.788-5.043c-.643 0-1.15.228-1.56 1.068l-.039-.02c.175-.464.175-.741.175-.81v-.11h-1.423v4.787h1.462V13.4c0-.662.38-1.078.995-1.078.614 0 .917.356.917 1.068v2.532h1.462v-3.046c0-1.088-.838-1.869-1.989-1.869zm-4.963 1.068l-.039-.02c.176-.464.176-.741.176-.81v-.11h-1.424v4.787h1.463l.01-2.304c0-.673.35-1.078.926-1.078.156 0 .282.02.429.06v-1.464c-.644-.139-1.22.109-1.54.94zm-4.65 2.68c-.664 0-1.18-.554-1.18-1.226 0-.673.516-1.226 1.18-1.226.662 0 1.179.553 1.179 1.226 0 .672-.517 1.226-1.18 1.226zm-.332 1.295c.565 0 1.287-.217 1.687-1.068l.038.02c-.175.465-.175.742-.175.81v.11h1.424v-4.786h-1.424v.109c0 .069 0 .346.175.81l-.038.02c-.4-.85-1.122-1.068-1.687-1.068-1.356 0-2.311 1.088-2.311 2.522 0 1.433.955 2.521 2.31 2.521zm-4.349-.128h1.463V9h-1.463v6.922zM10.136 9H8.644c0 1.236-.751 2.343-1.892 3.134l-.448.317V9h-1.55v6.922h1.55V12.49l2.564 3.43h1.892L8.293 12.64c1.121-.82 1.852-2.096 1.843-3.639z" fill="#0B051D"/></svg> 4060 4061 <svg class="section-footer__payment-icon" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-maestro"><title id="pi-maestro">Maestro</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><circle fill="#EB001B" cx="15" cy="12" r="7"/><circle fill="#00A2E5" cx="23" cy="12" r="7"/><path fill="#7375CF" d="M22 12c0-2.4-1.2-4.5-3-5.7-1.8 1.3-3 3.4-3 5.7s1.2 4.5 3 5.7c1.8-1.2 3-3.3 3-5.7z"/></svg> 4062 4063 <svg class="section-footer__payment-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-master"><title id="pi-master">Mastercard</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#1C1C1C" style="fill:#1C1C1C;fill:color(display-p3 0.1098 0.1098 0.1098);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#232323" style="fill:#232323;fill:color(display-p3 0.1373 0.1373 0.1373);fill-opacity:1;"/><path d="M14.6364 19.2727C18.8538 19.2727 22.2727 15.8538 22.2727 11.6364C22.2727 7.41892 18.8538 4 14.6364 4C10.4189 4 7 7.41892 7 11.6364C7 15.8538 10.4189 19.2727 14.6364 19.2727Z" fill="#EB001B" style="fill:#E
4063B001B;fill:color(display-p3 0.9216 0.0000 0.1059);fill-opacity:1;"/><path d="M23.3637 19.2727C27.5811 19.2727 31 15.8538 31 11.6364C31 7.41892 27.5811 4 23.3637 4C19.1462 4 15.7273 7.41892 15.7273 11.6364C15.7273 15.8538 19.1462 19.2727 23.3637 19.2727Z" fill="#F79E1B" style="fill:#F79E1B;fill:color(display-p3 0.9686 0.6196 0.1059);fill-opacity:1;"/><path d="M22.2727 11.6362C22.2727 9.01797 20.9637 6.72706 19 5.41797C17.0364 6.83615 15.7273 9.12706 15.7273 11.6362C15.7273 14.1452 17.0364 16.5452 19 17.8543C20.9637 16.5452 22.2727 14.2543 22.2727 11.6362Z" fill="#FF5F00" style="fill:#FF5F00;fill:color(display-p3 1.0000 0.3725 0.0000);fill-opacity:1;"/></svg> 4064 4065 4066 <svg class="section-footer__payment-icon" viewBox="0 0 38 24" role="img" width="38" height="24" aria-labelledby="pi-mbway" xmlns="http://www.w3.org/2000/svg"><title id="pi-mbway">MB WAY</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M2.652 18.267l-.059.459a.38.38 0 00.381.424H17.88c.232 0 .41-.198.383-.424l-.061-.459a.658.658 0 01.579-.72.646.646 0 01.712.579l.057.445c.116.998-.448 1.872-1.456 1.872H2.761c-1.008 0-1.573-.874-1.457-1.872l.058-.445a.646.646 0 01.711-.579.657.657 0 01.579.72" fill="#d81e25"/><path d="M18.225 10.154c0 .608-.215.952-.571 1.374l-.036.043.05.029c.705.43 1.197 1.079 1.234 1.991.055 1.359-1.097 2.482-2.463 2.479h-3.602a.642.642 0 01-.634-.65V8.435c0-.361.283-.652.632-.652l2.974.009c1.297.002 2.416.955 2.416 2.362m-1.793 4.659c.726 0 1.303-.528 1.288-1.223-.016-.712-.663-1.172-1.385-1.174h-1.46a.595.595 0 01-.588-.605c0-.337.264-.606.588-.606h.974c.658-.026 1.165-.424 1.196-1.046.032-.666-.539-1.165-1.238-1.165H13.44l-.008 5.819h3" fill="#100f0d"/><path d="M6.616 13.676l.016.049.018-.049c.168-.46.369-.969.583-1.525.22-.584.439-1.143.658-1.675.221-.541.431-1.024.631-1.444.2-.429.366-.724.493-.886a.97.97 0 01.781-.354h.149c.199 0 .354.053.47.15.107.093.171.2.188.323l.931 7.219a.593.593 0 01-.159.437c-.105.1-.256.149-.453.149-.198 0-.353-.047-.469-.138a.506.506 0 01-.218-.361c-.03-.24-.06-.507-.089-.8-.04-.292-.186-1.552-.226-1.868-.038-.327-.301-2.368-.389-3.109l-.008-.062-.299.625c-.101.215-.21.474-.331.776-.119.3-.241.618-.36.954-.13.325-.707 1.972-.707 1.972-.052.15-.154.451-.245.727a12.48 12.48 0 01-.202.572.82.82 0 01-.744.455.813.813 0 01-.746-.455 10.32 10.32 0 01-.202-.572c-.093-.276-.193-.577-.248-.727 0 0-.577-1.647-.704-1.972a29.247 29.247 0 00-.363-.954c-.12-.302-.229-.561-.328-.776l-.3-.625-.007.062c-.09.741-.35 2.782-.39 3.109-.041.316-.186 1.576-.226 1.868-.03.293-.06.56-.093.8a.502.502 0 01-.215.361c-.116.091-.273.138-.47.138-.197 0-.345-.049-.451-.149-.106-.106-.159-.252-.16-.437l.931-7.219a.529.529 0 01.189-.323.703.703 0 01.467-.15h.151c.325 0 .585.119.781.354.128.162.292.457.492.886.202.42.41.903.632 1.444.219.532.439 1.091.659 1.675.214.556.415 1.065.582 1.525" fill="#100f0d"/><path d="M4.79 3.419h11.322c1.066 0 1.597.8 1.722 1.856l.047.339a.662.662 0 01-.583.725.652.652 0 01-.715-.587l-.046-.323c-.047-.401-.217-.711-.625-.711H4.989c-.407 0-.577.31-.625.711l-.043.323a.653.653 0 11-1.301-.138l.047-.339c.126-1.056.656-1.856 1.723-1.856" fill="#d81e25"/><path d="M25.154 11.027c-.079.302-.159.625-.244.969-.085.343-.17.67-.253.984-.082.313-.161.588-.236.825a3.002 3.002 0 01-.185.486c-.089.154-.243.232-.464.232-.061 0-.141-.013-.241-.039-.098-.025-.18-.096-.248-.21a3.005 3.005 0 01-.185-.511 24.53 24.53 0 01-.235-.873c-.084-.33-.165-.679-.249-1.047a79.928 79.928 0 01-.223-1.026c-.066-.316-.121-.587-.166-.808a13.422 13.422 0 01-.074-.4c-.004-.028-.007-.047-.007-.058v-.033c0-.093.033-.169.106-.228a.42.42 0 01.264-.086c.1 0 .179.022.241.064.06.039.105.113.132.218 0 .01.016.091.045.239.032.148.07.338.116.568.048.232.101.49.158.776.058.285.117.576.182.869.063.293.128.576.191.853.063.275.12.512.176.708a36.527 36.527 0 00.381-1.38c.066-.256.13-.51.19-.767l.17-.712c.053-.221.098-.415.136-.586.039-.171.069-.297.091-.379a.46.46 0 01.157-.248c.079-.06.17-.09.281-.09a.46.46 0 01.299.095.437.437 0 01.
4066148.243c.062.268.127.57.199.903a59.514 59.514 0 00.463 2.011c.084.327.163.617.24.869.055-.197.115-.434.178-.708l.194-.85c.067-.289.129-.578.19-.865l.167-.771a106.486 106.486 0 00.164-.778c.027-.105.072-.179.132-.218a.418.418 0 01.24-.064c.104 0 .193.03.264.086a.28.28 0 01.109.228v.033a6.253 6.253 0 01-.088.458 108.095 108.095 0 01-.392 1.829 49.61 49.61 0 01-.244 1.042c-.08.33-.156.621-.232.872a2.898 2.898 0 01-.185.506.439.439 0 01-.252.218.92.92 0 01-.245.047.663.663 0 01-.099-.01.748.748 0 01-.141-.033.516.516 0 01-.148-.078.362.362 0 01-.117-.144 3.826 3.826 0 01-.178-.52 37.54 37.54 0 01-.458-1.776c-.077-.332-.15-.645-.215-.935" fill="#100f0d"/><path d="M31.315 12.279a40 40 0 00-.33-.984 17.49 17.49 0 00-.411-1.065l-.052-.142a.692.692 0 00-.053.136 16.567 16.567 0 00-.408 1.071c-.1.299-.209.627-.325.984zm-1.835.718a24.52 24.52 0 00-.22.732 5.932 5.932 0 01-.178.553c-.06.16-.181.241-.363.241-.127 0-.219-.032-.278-.096a.347.347 0 01-.086-.243.36.36 0 01.016-.109c.011-.031.045-.144.105-.337.057-.191.132-.431.226-.717.093-.286.197-.599.31-.939a34.26 34.26 0 01.707-1.941c.115-.289.224-.522.322-.696a.382.382 0 01.178-.192.785.785 0 01.303-.049c.123 0 .225.021.309.059a.324.324 0 01.178.198c.078.164.171.386.279.662.106.278.22.578.338.899.118.322.235.651.352.985.115.336.223.648.318.937l.248.738c.068.203.113.335.128.393.01.035.017.071.017.109a.32.32 0 01-.099.243c-.067.064-.163.096-.289.096-.096 0-.164-.022-.213-.064a.404.404 0 01-.11-.177 11.55 11.55 0 01-.196-.553c-.073-.225-.153-.468-.235-.732H29.48" fill="#100f0d"/><path d="M34.12 12.443a.654.654 0 01-.079-.091 5.456 5.456 0 01-.33-.514 9.736 9.736 0 01-.275-.497c-.09-.177-.177-.356-.262-.534a12.458 12.458 0 01-.231-.496c-.071-.155-.13-.289-.178-.4a1.671 1.671 0 01-.112-.298.428.428 0 01-.005-.062c0-.099.034-.182.103-.246a.395.395 0 01.286-.101c.11 0 .187.028.235.083.047.056.082.11.103.165.01.029.038.088.079.181l.152.346c.061.138.13.289.207.453.079.166.156.328.237.488.079.159.158.311.232.458.073.144.145.264.21.359a6.14 6.14 0 00.34-.603c.12-.242.236-.48.347-.716.11-.238.204-.447.286-.627.079-.182.127-.295.144-.339a.666.666 0 01.103-.165c.046-.055.126-.083.235-.083.122 0 .216.034.287.101a.327.327 0 01.101.246c0 .026 0 .048-.002.062-.003.014-.011.035-.02.062l-.096.239a24.658 24.658 0 01-.405.903c-.087.178-.174.355-.265.531-.091.175-.182.344-.274.503-.09.158-.175.295-.252.404a1.237 1.237 0 01-.156.188v1.707c0 .11-.035.199-.105.27a.37.37 0 01-.268.103.37.37 0 01-.268-.103.366.366 0 01-.104-.27v-1.707" fill="#100f0d"/></svg> 4067 4068 4069 <svg class="section-footer__payment-icon" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-mobilepay"><title id="pi-mobilepay">MobilePay</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path fill-rule="evenodd" clip-rule="evenodd" d="M20.05 15.296s2.53-.771 4.282-.776c2.896-.007 4.857 1.15 4.857 1.15V10.06s-1.97-1.02-4.453-1.09c-2.481-.068-4.687 1.012-4.687 1.012v5.313z" fill="#5A78FF"/><path fill-rule="evenodd" clip-rule="evenodd" d="M17.308 9.19l2.082 4.957V9.396s1.646-.882 3.485-1.13c1.84-.249 4.181.08 4.181.08l-1.133-2.707s-2.461-.159-4.69.794c-2.228.952-3.925 2.756-3.925 2.756z" fill="#5A78FF"/><path d="M21.428 5.676l-.82-1.99a1.818 1.818 0 00-2.37-.996l-5.663 2.334a1.818 1.818 0 00-.98 2.376l5.46 13.247a1.818 1.818 0 002.37.995l5.662-2.334a1.817 1.817 0 00.98-2.376l-.677-1.642s-.462-.027-.676-.033c-.226-.006-.644-.001-.644-.001l.88 2.136a.606.606 0 01-.326.793l-5.663 2.333a.606.606 0 01-.79-.331L12.711 6.94a.606.606 0 01.327-.792L18.7 3.814a.606.606 0 01.79.332l.83 2.011s.383-.187.59-.27c.206-.082.518-.211.518-.211z" fill="#5A78FF"/></svg> 4070 4071 <svg class="section-footer__payment-icon" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-paypal"><title id="pi-paypal">PayPal</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path fill="#003087" d="M23.9 8.3c.2-1 0-1.7-.6-2.3-.6-.7-1.7-1-3.1-1h-4.1c-.3 0-.5.2-.6.5L14 15.6c0 .2.1.4.3.4H17l.4-3.4 1.8-2.2 4.7-2.1z"/><path fill="#3086C8" d="M23.9 8.3l-.2.2c-.5 2.8-2.2 3.8-4.6 3.8H18c-.3 0-.5.2-.6.5l-.6 3.9-.2 1c0 .2.1.4.3.4H19c.3 0 .5-.2.5-.4v-.1l.4-2.4v-.1c0-.2.3-.4.5-.4h.3c2.1 0 3.7-.8 4.1-3.2.2-1 .1-1.8-.4-2.4-.1-.5-.3-.7-.5-.8z"/>
4071<path fill="#012169" d="M23.3 8.1c-.1-.1-.2-.1-.3-.1-.1 0-.2 0-.3-.1-.3-.1-.7-.1-1.1-.1h-3c-.1 0-.2 0-.2.1-.2.1-.3.2-.3.4l-.7 4.4v.1c0-.3.3-.5.6-.5h1.3c2.5 0 4.1-1 4.6-3.8v-.2c-.1-.1-.3-.2-.5-.2h-.1z"/></svg> 4072 4073 <svg class="section-footer__payment-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-shopify_pay"><title id="pi-shopify_pay">Shop Pay</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000"/><path d="M35.889 0C37.05 0 38 .982 38 2.182v19.636c0 1.2-.95 2.182-2.111 2.182H2.11C.95 24 0 23.018 0 21.818V2.182C0 .982.95 0 2.111 0H35.89z" fill="#5A31F4"/><path d="M9.35 11.368c-1.017-.223-1.47-.31-1.47-.705 0-.372.306-.558.92-.558.54 0 .934.238 1.225.704a.079.079 0 00.104.03l1.146-.584a.082.082 0 00.032-.114c-.475-.831-1.353-1.286-2.51-1.286-1.52 0-2.464.755-2.464 1.956 0 1.275 1.15 1.597 2.17 1.82 1.02.222 1.474.31 1.474.705 0 .396-.332.582-.993.582-.612 0-1.065-.282-1.34-.83a.08.08 0 00-.107-.035l-1.143.57a.083.083 0 00-.036.111c.454.92 1.384 1.437 2.627 1.437 1.583 0 2.539-.742 2.539-1.98s-1.155-1.598-2.173-1.82v-.003zM15.49 8.855c-.65 0-1.224.232-1.636.646a.04.04 0 01-.069-.03v-2.64a.08.08 0 00-.08-.081H12.27a.08.08 0 00-.08.082v8.194a.08.08 0 00.08.082h1.433a.08.08 0 00.081-.082v-3.594c0-.695.528-1.227 1.239-1.227.71 0 1.226.521 1.226 1.227v3.594a.08.08 0 00.081.082h1.433a.08.08 0 00.081-.082v-3.594c0-1.51-.981-2.577-2.355-2.577zM20.753 8.62c-.778 0-1.507.24-2.03.588a.082.082 0 00-.027.109l.632 1.088a.08.08 0 00.11.03 2.5 2.5 0 011.318-.366c1.25 0 2.17.891 2.17 2.068 0 1.003-.736 1.745-1.669 1.745-.76 0-1.288-.446-1.288-1.077 0-.361.152-.657.548-.866a.08.08 0 00.032-.113l-.596-1.018a.08.08 0 00-.098-.035c-.799.299-1.359 1.018-1.359 1.984 0 1.46 1.152 2.55 2.76 2.55 1.877 0 3.227-1.313 3.227-3.195 0-2.018-1.57-3.492-3.73-3.492zM28.675 8.843c-.724 0-1.373.27-1.845.746-.026.027-.069.007-.069-.029v-.572a.08.08 0 00-.08-.082h-1.397a.08.08 0 00-.08.082v8.182a.08.08 0 00.08.081h1.433a.08.08 0 00.081-.081v-2.683c0-.036.043-.054.069-.03a2.6 2.6 0 001.808.7c1.682 0 2.993-1.373 2.993-3.157s-1.313-3.157-2.993-3.157zm-.271 4.929c-.956 0-1.681-.768-1.681-1.783s.723-1.783 1.681-1.783c.958 0 1.68.755 1.68 1.783 0 1.027-.713 1.783-1.681 1.783h.001z" fill="#fff"/></svg> 4074 4075 4076 <svg class="section-footer__payment-icon" viewBox="-36 25 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-unionpay"><title id="pi-unionpay">Union Pay</title><path fill="#005B9A" d="M-36 46.8v.7-.7zM-18.3 25v24h-7.2c-1.3 0-2.1-1-1.8-2.3l4.4-19.4c.3-1.3 1.9-2.3 3.2-2.3h1.4zm12.6 0c-1.3 0-2.9 1-3.2 2.3l-4.5 19.4c-.3 1.3.5 2.3 1.8 2.3h-4.9V25h10.8z"/><path fill="#E9292D" d="M-19.7 25c-1.3 0-2.9 1.1-3.2 2.3l-4.4 19.4c-.3 1.3.5 2.3 1.8 2.3h-8.9c-.8 0-1.5-.6-1.5-1.4v-21c0-.8.7-1.6 1.5-1.6h14.7z"/><path fill="#0E73B9" d="M-5.7 25c-1.3 0-2.9 1.1-3.2 2.3l-4.4 19.4c-.3 1.3.5 2.3 1.8 2.3H-26h.5c-1.3 0-2.1-1-1.8-2.3l4.4-19.4c.3-1.3 1.9-2.3 3.2-2.3h14z"/><path fill="#059DA4" d="M2 26.6v21c0 .8-.6 1.4-1.5 1.4h-12.1c-1.3 0-2.1-1.1-1.8-2.3l4.5-19.4C-8.6 26-7 25-5.7 25H.5c.9 0 1.5.7 1.5 1.6z"/><path fill="#fff" d="M-21.122 38.645h.14c.14 0 .28-.07.28-.14l.42-.63h1.19l-.21.35h1.4l-.21.63h-1.68c-.21.28-.42.42-.7.42h-.84l.21-.63m-.21.91h3.01l-.21.7h-1.19l-.21.7h1.19l-.21.7h-1.19l-.28 1.05c-.07.14 0 .28.28.21h.98l-.21.7h-1.89c-.35 0-.49-.21-.35-.63l.35-1.33h-.77l.21-.7h.77l.21-.7h-.7l.21-.7zm4.83-1.75v.42s.56-.42 1.12-.42h1.96l-.77 2.66c-.07.28-.35.49-.77.49h-2.24l-.49 1.89c0 .07 0 .14.14.14h.42l-.14.56h-1.12c-.42 0-.56-.14-.49-.35l1.47-5.39h.91zm1.68.77h-1.75l-.21.7s.28-.21.77-.21h1.05l.14-.49zm-.63 1.68c.14 0 .21 0 .21-.14l.14-.35h-1.75l-.14.56 1.54-.07zm-1.19.84h.98v.42h.28c.14 0 .21-.07.21-.14l.07-.28h.84l-.14.49c-.07.35-.35.49-.77.56h-.56v.77c0 .14.07.21.35.21h.49l-.14.56h-1.19c-.35 0-.49-.14-.49-.49l.07-2.1zm4.2-2.45l.21-.84h1.19l-.07.28s.56-.28 1.05-.28h1.47l-.21.84h-.21l-1.12 3.85h.21l-.21.77h-.21l-.07.35h-1.19l.07-.35h-2.17l.21-.77h.21l1.12-3.85h-.28m1.26 0l-.28 1.05s.49-.21.91-.28c.07-.35.21-.77.21-.77h-.84zm-.49 1.54l-.28 1.12s.56-.28.98-.28c.14-.42.21-.77.21-.77l-.91-.07zm.21 2.31l.21-.77h-.84l-.21.77h.84zm2.87-4.69h1.12l.07.42c0 .07.07.14.21.14h.21l-.21.7h-.77c-.28 0-.49-.07-.49-.35l-.14-.91zm-.35 1.47h3.57l-.21.77h-1.19l-.21.7h1.12l-.21.77h-1.26l-.28.42h.63l.14.84c0 .07.07.14.21.14h.21l-.21.7h-.7c-.35 0-.56-.07-.56-.35l-.14-.77-.56.84c-.14.21-.35.35-.63.35h-1.05l.21-.7h.35c.14 0 .21-.07.35-.21l.84-1.26h-1.05l.21-.77h1.19l.21-.7h-1.19l.21-.77zm-19.74-5.04c-.14.7-.42 1.19-.91 1.54-.49.35-1.12.56-1.89.56-.7 0-1.26-.21-1.54-.56-.21-.28-.35-.56-.35-.98 0-.14 0-.35.07-.56l.84-3.92h1.19l-.77 3.92v.28c0 .21.07.35.14.49.14.21.35.28.7.28s.7-.07.91-.28c.21-.21.42-.42.49-.77l.77-3.92h1.19l-.84 3.92m1.12-1.54h.84l-.07.49.14-.14c.28-.28.63-.42 1.05-.42.35 0 .63.14.77.35.14.21.21.49.14.91l-.49 2.38h-.91l.42-2.17c.07-.28.07-.49 0-.56-.07-.14-.21-.14-.35-.14-.21 0-.42.07-.56.21-.14.14-.28.35-.28.63l-.42 2.03h-.91l.63-3.57m9.8 0h.84l-.07.49.14-.14c.28-.28.63-.42 1.05-.42.35 0 .63.14.77.35s.21.49.14.91l-.49 2.38h-.91l.42-2.24c.07-.21 0-.42-.07-.49-.07-.14-.21-.14-.35-.14-.21 0-.42.07-.56.21-.14.14-.28.35-.28.63l-.42 2.03h-.91l.7-3.57m-5.81 0h.98l-.77 3.5h-.98l.77-3.5m.35-1.33h.98l-.21.84h-.98l.21-.84zm1.4 4.55c-.21-.21-.35-.56-.35-.98v-.21c0-.07 0-.21.07-.28.14-.56.35-1.05.7-1.33.35-.35.84-.49 1.33-.49.42 0 .77.14 1.05.35.21.21.35.56.35.98v.21c0 .07 0 .21-.07.28-.14.56-.35.98-.7 1.33-.35.35-.84.49-1.33.49-.35 0-.7-.14-1.05-.35m1.89-.7c.14-.21.28-.49.35-.84v-.35c0-.21-.07-.35-.14-.49a.
4076635.635 0 0 0-.49-.21c-.28 0-.49.07-.63.28-.14.21-.28.49-.35.84v.28c0 .21.07.35.14.49.14.14.28.21.49.21.28.07.42 0 .63-.21m6.51-4.69h2.52c.49 0 .84.14 1.12.35.28.21.35.56.35.91v.28c0 .07 0 .21-.07.28-.07.49-.35.98-.7 1.26-.42.35-.84.49-1.4.49h-1.4l-.42 2.03h-1.19l1.19-5.6m.56 2.59h1.12c.28 0 .49-.07.7-.21.14-.14.28-.35.35-.63v-.28c0-.21-.07-.35-.21-.42-.14-.07-.35-.14-.7-.14h-.91l-.35 1.68zm8.68 3.71c-.35.77-.7 1.26-.91 1.47-.21.21-.63.7-1.61.7l.07-.63c.84-.28 1.26-1.4 1.54-1.96l-.28-3.78h1.19l.07 2.38.91-2.31h1.05l-2.03 4.13m-2.94-3.85l-.42.28c-.42-.35-.84-.56-1.54-.21-.98.49-1.89 4.13.91 2.94l.14.21h1.12l.7-3.29-.91.07m-.56 1.82c-.21.56-.56.84-.91.77-.28-.14-.35-.63-.21-1.19.21-.56.56-.84.91-.77.28.14.35.63.21 1.19"/></svg> 4077 4078 <svg class="section-footer__payment-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-visa"><title id="pi-visa">Visa</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#142FBD" style="fill:#142FBD;fill:color(display-p3 0.0784 0.1843 0.7412);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#1532CB" style="fill:#1532CB;fill:color(display-p3 0.0824 0.1961 0.7961);fill-opacity:1;"/><path d="M29.5944 10.2167H29.2778C28.8556 11.2722 28.5389 11.8 28.2222 13.3833H30.2278C29.9111 11.8 29.9111 11.0611 29.5944 10.2167V10.2167ZM32.6556 16.4444H30.8611C30.7556 16.4444 30.7556 16.4444 30.65 16.3389L30.4389 15.3889L30.3333 15.1778H27.8C27.6944 15.1778 27.5889 15.1778 27.5889 15.3889L27.2722 16.3389C27.2722 16.4444 27.1667 16.4444 27.1667 16.4444H24.95L25.1611 15.9167L28.2222 8.73889C28.2222 8.21111 28.5389 8 29.0667 8H30.65C30.7556 8 30.8611 8 30.8611 8.21111L32.3389 15.0722C32.4444 15.4944 32.55 15.8111 32.55 16.2333C32.6556 16.3389 32.6556 16.3389 32.6556 16.4444V16.4444ZM18.5111 16.1278L18.9333 14.2278C19.0389 14.2278 19.1444 14.3333 19.1444 14.3333C19.8833 14.65 20.6222 14.8611 21.3611 14.7556C21.5722 14.7556 21.8889 14.65 22.1 14.5444C22.6278 14.3333 22.6278 13.8056 22.2056 13.3833C21.9944 13.1722 21.6778 13.0667 21.3611 12.8556C20.9389 12.6444 20.5167 12.4333 20.2 12.1167C18.9333 11.0611 19.3556 9.58333 20.0944 8.84444C20.7278 8.42222 21.0444 8 21.8889 8C23.1556 8 24.5278 8 25.1611 8.21111H25.2667C25.1611 8.84444 25.0556 9.37222 24.8444 10.0056C24.3167 9.79444 23.7889 9.58333 23.2611 9.58333C22.9444 9.58333 22.6278 9.58333 22.3111 9.68889C22.1 9.68889 21.9944 9.79444 21.8889 9.9C21.6778 10.1111 21.6778 10.4278 21.8889 10.6389L22.4167 11.0611C22.8389 11.2722 23.2611 11.4833 23.5778 11.6944C24.1056 12.0111 24.6333 12.5389 24.7389 13.1722C24.95 14.1222 24.6333 14.9667 23.7889 15.6C23.2611 16.0222 23.05 16.2333 22.3111 16.2333C20.8333 16.2333 19.6722 16.3389 18.7222 16.0222C18.6167 16.2333 18.6167 16.2333 18.5111 16.1278V16.1278ZM14.8167 16.4444C14.9222 15.7056 14.9222 15.7056 15.0278 15.3889C15.5556 13.0667 16.0833 10.6389 16.5056 8.31667C16.6111 8.10556 16.6111 8 16.8222 8H18.7222C18.5111 9.26667 18.3 10.2167 17.9833 11.3778C17.6667 12.9611 17.35 14.5444 16.9278 16.1278C16.9278 16.3389 16.8222 16.3389 16.6111 16.3389L14.8167 16.4444ZM5 8.21111C5 8.10556 5.21111 8 5.31667 8H8.90556C9.43333 8 9.85556 8.31667 9.96111 8.84444L10.9111 13.4889C10.9111 13.5944 10.9111 13.5944 11.0167 13.7C11.0167 13.5944 11.1222 13.5944 11.1222 13.5944L13.3389 8.21111C13.2333 8.10556 13.3389 8 13.4444 8H15.6611C15.6611 8.10556 15.6611 8.10556 15.5556 8.21111L12.2833 15.9167C12.1778 16.1278 12.1778
407816.2333 12.0722 16.3389C11.9667 16.4444 11.7556 16.3389 11.5444 16.3389H9.96111C9.85556 16.3389 9.75 16.3389 9.75 16.1278L8.06111 9.58333C7.85 9.37222 7.53333 9.05556 7.11111 8.95C6.47778 8.63333 5.31667 8.42222 5.10556 8.42222L5 8.21111Z" fill="white" style="fill:white;fill-opacity:1;"/></svg> 4079 4080 4081 </div> 4082 4083 4084 4085 </div> 4086 <div class="section-footer__row__col"> 4087 4088 <div class="section-footer__localization"> 4089 4090
4091<script src="//peakpilates.eu/cdn/shop/t/4/assets/custom-select.js?v=173148981874697908181789404899" defer="defer"></script>
4091<form method="post" action="/localization" id="footer-localization" accept-charset="UTF-8" class="form localization no-js-hidden" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/" /><div class="localization__grid"><div class="localization__selector"> 4092 <input type="hidden" name="country_code" value="NL"> 4093<country-selector><label class="label visually-hidden no-js-hidden" for="footer-localization-country-button">Country/Region</label><div class="custom-select relative w-full no-js-hidden"><button class="custom-select__btn input items-center" type="button" 4094 aria-expanded="false" aria-haspopup="listbox" id="footer-localization-country-button"> 4095 <span class="text-start">Netherlands (EUR â¬)</span> 4096 <svg width="20" height="20" viewBox="0 0 24 24" class="icon" role="presentation" focusable="false" aria-hidden="true"> 4097 <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/> 4098 </svg> 4099 </button> 4100 <ul class="custom-select__listbox absolute invisible" role="listbox" tabindex="-1" 4101 aria-hidden="true" hidden aria-activedescendant="footer-localization-country-opt-0"><li class="custom-select__option flex items-center js-option" id="footer-localization-country-opt-0" role="option" 4102 data-value="NL" 4103 data-value-id="" 4104 4105 aria-selected="true"> 4106 <span class="pointer-events-none">Netherlands (EUR â¬)</span> 4107 </li></ul> 4108 </div></country-selector></div><div class="localization__selector"> 4109 <input type="hidden" name="locale_code" value="en"> 4110<custom-select id="footer-localization-language"><label class="label visually-hidden no-js-hidden" for="footer-localization-language-button">Language</label><div class="custom-select relative w-full no-js-hidden"><button class="custom-select__btn input items-center" type="button" 4111 aria-expanded="false" aria-haspopup="listbox" id="footer-localization-language-button"> 4112 <span class="text-start">English</span> 4113 <svg width="20" height="20" viewBox="0 0 24 24" class="icon" role="presentation" focusable="false" aria-hidden="true"> 4114 <path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"/> 4115 </svg> 4116 </button> 4117 <ul class="custom-select__listbox absolute invisible" role="listbox" tabindex="-1" 4118 aria-hidden="true" hidden aria-activedescendant="footer-localization-language-opt-0"><li class="custom-select__option flex items-center js-option" id="footer-localization-language-opt-0" role="option" 4119 data-value="en" 4120 data-value-id="" 4121 4122 aria-selected="true"> 4123 <span class="pointer-events-none">English</span> 4124 </li><li class="custom-select__option flex items-center js-option" id="footer-localization-language-opt-1" role="option" 4125 data-value="nl" 4126 data-value-id="" 4127 4128> 4129 <span class="pointer-events-none">Nederlands</span> 4130 </li><li class="custom-select__option flex items-center js-option" id="footer-localization-language-opt-2" role="option" 4131 data-value="de" 4132 data-value-id="" 4133 4134> 4135 <span class="pointer-events-none">Deutsch</span> 4136 </li><li class="custom-select__option flex items-center js-option" id="footer-localization-language-opt-3" role="option" 4137 data-value="es" 4138 data-value-id="" 4139 4140> 4141 <span class="pointer-events-none">Español</span> 4142 </li><li class="custom-select__option flex items-center js-option" id="footer-localization-language-opt-4" role="option" 4143 data-value="it" 4144 data-value-id="" 4145 4146> 4147 <span class="pointer-events-none">Italiano</span> 4148 </li><li class="custom-select__option flex items-center js-option" id="footer-localization-language-opt-5" role="option" 4149 data-value="fr" 4150 data-value-id="" 4151 4152> 4153 <span class="pointer-events-none">
4153Français</span> 4154 </li></ul> 4155 </div></custom-select></div></div>
4155<script> 4156 customElements.whenDefined('custom-select').then(() => { 4157 if (!customElements.get('country-selector')) { 4158 class CountrySelector extends customElements.get('custom-select') { 4159 constructor() { 4160 super(); 4161 this.loaded = false; 4162 } 4163 4164 async showListbox() { 4165 if (this.loaded) { 4166 super.showListbox(); 4167 return; 4168 } 4169 4170 this.button.classList.add('is-loading'); 4171 this.button.setAttribute('aria-disabled', 'true'); 4172 4173 try { 4174 const response = await fetch('?section_id=country-selector'); 4175 if (!response.ok) throw new Error(response.status); 4176 4177 const tmpl = document.createElement('template'); 4178 tmpl.innerHTML = await response.text(); 4179 4180 const el = tmpl.content.querySelector('.custom-select__listbox'); 4181 this.listbox.innerHTML = el.innerHTML; 4182 4183 this.options = this.querySelectorAll('.custom-select__option'); 4184 4185 this.popular = this.querySelectorAll('[data-popular]'); 4186 if (this.popular.length) { 4187 this.popular[this.popular.length - 1].closest('.custom-select__option') 4188 .classList.add('custom-select__option--visual-group-end'); 4189 } 4190 4191 this.selectedOption = this.querySelector('[aria-selected="true"]'); 4192 if (!this.selectedOption) { 4193 this.selectedOption = this.listbox.firstElementChild; 4194 } 4195 4196 this.loaded = true; 4197 } catch { 4198 this.listbox.innerHTML = '<li>Error fetching countries, please try again.</li>'; 4199 } finally { 4200 super.showListbox(); 4201 this.button.classList.remove('is-loading'); 4202 this.button.setAttribute('aria-disabled', 'false'); 4203 } 4204 } 4205 4206 setButtonWidth() { 4207 return; 4208 } 4209 } 4210 4211 customElements.define('country-selector', CountrySelector); 4212 } 4213 }); 4214 </script>
4214<script> 4215 document.getElementById('footer-localization').addEventListener('change', (evt) => { 4216 const input = evt.target.closest('.localization__selector').firstElementChild; 4217 if (input && input.tagName === 'INPUT') { 4218 input.value = evt.detail ? evt.detail.selectedValue : evt.target.value; 4219 evt.currentTarget.submit(); 4220 } 4221 }); 4222 </script>
4222</form> 4223 </div> 4224 4225 4226 <div class="copyright"><span class="copy">© 2026 <a href="/">Peak Pilates EU</a>.</span> 4227 4228 4229 <a target="_blank" rel="nofollow" href="https://www.shopify.com?utm_campaign=poweredby&utm_medium=shopify&utm_source=onlinestore">Powered by Shopify</a> 4230 4231 4232 </div> 4233 </div> 4234 </div> 4235</div> 4236 4237 4238 4239 4240 4241</div> 4242<!-- END sections: footer-group --></div><!-- BEGIN sections: overlay-group --> 4243<div id="shopify-section-sections--32858860487005__cart-drawer" class="shopify-section shopify-section-group-overlay-group section-cart-drawer">
4243<script src="//peakpilates.eu/cdn/shop/t/4/assets/cart-drawer.js?v=102395745107704590771789404899" defer></script>
4243<script src="//peakpilates.eu/cdn/shop/t/4/assets/cart-note.js?v=126131321468449833931789404899" defer="defer"></script>
4243<cart-drawer class="drawer fixed top-0 right-0 flex flex-col w-full has-motion js-cart-drawer" role="dialog" tabindex="-1" aria-labelledby="CartDrawerModal-Title" aria-modal="true" aria-hidden="true" data-name="cart-drawer" data-section-id="sections--32858860487005__cart-drawer"> 4244 <cart-form data-section-id="sections--32858860487005__cart-drawer" class="cart-drawer" data-ajax-update="true"> 4245 <div class="cart-drawer__content cart-drawer__content--hidden" data-merge-attributes="content-container"> 4246 <div class="cart-drawer__content-upper"> 4247 <header class="cart-drawer__header cart-drawer__content-item"> 4248 <div id="CartDrawerModal-Title" class="cart-drawer__title h4 heading-font" data-merge="header-title"> 4249 Your cart 4250 4251 </div> 4252 4253 <button type="button" class="drawer__close-btn js-close-drawer"> 4254 <span class="visually-hidden">Close</span> 4255 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-x" aria-hidden="true" focusable="false" role="presentation"><path d="M18 6 6 18M6 6l12 12"/></svg> 4256 </button> 4257 </header><div class="cart-item-list cart-drawer__content-item"> 4258 <div class="cart-item-list__body" data-merge-list="cart-items"> 4259 4260 </div> 4261 </div><div class="cart-drawer__content-item"> 4262 <div class="cart-info-block cart-info-block--lmtb"> 4263</div> 4264 </div></div> 4265 4266 <div data-merge="cross-sells" data-merge-cache="blank"></div> 4267 </div> 4268 4269 <div class="cart-drawer__footer cart-drawer__footer--hidden" data-merge-attributes="footer-container"><div data-merge="footer"> 4270 4271 </div> 4272 4273 4274 4275 <div class="checkout-buttons hidden" data-merge-attributes="checkout-buttons"> 4276 4277 <a href="/cart" class="btn btn--large btn--wide">Checkout</a> 4278 4279 </div></div> 4280 4281 <div 4282 class="cart-drawer__empty-content" 4283 data-merge-attributes="empty-container" 4284 > 4285 <button type="button" class="drawer__close-btn js-close-drawer"> 4286 <span class="visually-hidden">Close</span> 4287 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon feather feather-x" aria-hidden="true" focusable="false" role="presentation"><path d="M18 6 6 18M6 6l12 12"/></svg> 4288 </button> 4289 <div class="align-center"><div class="lightly-spaced-row"><span class="icon--large"><svg class="icon" width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation"><g fill="none" fill-rule="evenodd"><path d="M0 0h24v24H0z"/><path d="M15.321 9.5V5.321a3.321 3.321 0 0 0-6.642 0V9.5" stroke="currentColor" stroke-width="1.5"/><path stroke="currentColor" stroke-width="1.5" d="M5.357 7.705h13.286l1.107 13.563H4.25z"/></g></svg></span></div><div class="majortitle h1">Your bag is empty</div><div class="rte"><p>Looking for ideas?</p></div><div class="button-row"> 4290 <a class="btn btn--primary button-row__btn" href="">Start shopping</a> 4291 </div></div> 4292 </div> 4293 </cart-form> 4294</cart-drawer> 4295</div> 4296<!-- END sections: overlay-group --><a href="#" class="page-shade" aria-label="Close"></a> 4297 <div class="overlay fixed top-0 right-0 bottom-0 left-0 js-overlay"></div><!-- MDA_EU_WITHDRAWAL_START --> 4298<style> 4299 .mda-eu-withdrawal-policy { max-width: 920px; margin: 32px auto; padding: 28px; border: 1px solid rgba(0,0,0,.12); background: #fff; color: #1f1f1f; } 4300 .mda-eu-withdrawal-policy h2 { margin: 0 0 14px; font-size: clamp(24px, 3vw, 34px); line-height: 1.12; text-transform: none; } 4301 .mda-eu-withdrawal-policy p { margin: 0 0 14px; } 4302 .mda-eu-withdrawal-policy__button { display: inline-flex; align-items: center; justify-content: center; margin-top: 8px; padding: 12px 18px; background: #000; color: #fff !important; text-decoration: none; font-weight: 700; letter-spacing: .02em; } 4303 .mda-eu-withdrawal-footer { margin-top: .65rem; } 4304 .mda-eu-withdrawal-footer a, [data-mda-eu-withdrawal-link] a { color: inherit; text-decoration: underline; text-underline-offset: .18em; } 4305</style>
4306<script> 4307(function() { 4308 var COPY = {"en":{"footer":"Returns & cancellations / Withdrawal","title":"Return and refund policy","html":"<h2>Returns, cancellations and EU right of withdrawal</h2> 4309<p>If you are an EU consumer, you may cancel an unfulfilled order or withdraw from a delivered order within 14 days from delivery of the last item, unless a legal exception applies.</p> 4310<p>Use the return/cancellation link in your customer account. Shopify will send an automatic confirmation and we will review the request before approving any cancellation, return or refund.</p> 4311<p>Products must be returned complete, clean, undamaged, not used beyond what is necessary to inspect them, and with all accessories and manuals. Please use the original packaging whenever possible. For bikes/equipment, the original packaging or equivalent protective packaging is required for safe transport. If the product, accessories or packaging are damaged, incomplete, or handled beyond what is necessary for inspection, we may reduce the refund to reflect the loss in value.</p> 4312<p>Unless the product is faulty, incorrectly supplied, or applicable law requires otherwise, return shipping/collection costs and damage caused by inadequate return packaging are the customerâs responsibility.</p> 4313<p>Approved refunds are issued to the original payment method. We may withhold reimbursement until we have received the goods back or you have provided proof of return shipment. Standard outbound delivery costs are refunded where legally required; upgraded delivery or extra services are not refundable.</p> 4314<p>This policy does not affect your statutory rights.</p>","button":"Start a return or cancellation request","accountIntro":"You can submit a return or cancellation request from your customer account."},"es":{"footer":"Devoluciones y cancelaciones / desistimiento","title":"PolÃtica de devoluciones y reembolsos","html":"<h2>Devoluciones, cancelaciones y derecho de desistimiento en la UE</h2> 4315<p>Si eres consumidor de la UE, puedes cancelar un pedido no preparado o ejercer tu derecho de desistimiento de un pedido entregado dentro de los 14 dÃas desde la entrega del último artÃculo, salvo que aplique una excepción legal.</p> 4316<p>Usa el enlace de devolución/cancelación en tu cuenta de cliente. Shopify enviará una confirmación automática y revisaremos la solicitud antes de aprobar cualquier cancelación, devolución o reembolso.</p> 4317<p>Los productos deben devolverse completos, limpios, sin daños, sin un uso superior al necesario para comprobarlos, y con todos sus accesorios y manuales. Usa el embalaje original siempre que sea posible. Para bicicletas/equipos, se requiere el embalaje original o un embalaje protector equivalente para un transporte seguro. Si el producto, los accesorios o el embalaje están dañados, incompletos o han sido manipulados más allá de lo necesario para su comprobación, podremos reducir el reembolso para reflejar la pérdida de valor.</p> 4318<p>Salvo que el producto sea defectuoso, incorrecto o la ley aplicable disponga otra cosa, los costes de devolución/recogida y los daños causados por un embalaje de devolución inadecuado son responsabilidad del cliente.</p> 4319<p>Los reembolsos aprobados se realizan al método de pago original. Podemos retener el reembolso hasta recibir los productos o hasta que aportes una prueba de envÃo de la devolución. Los gastos de envÃo estándar originales se reembolsarán cuando la ley lo exija; los servicios de entrega mejorados o adicionales no son reembolsables.</p> 4320<p>Esta polÃtica no afecta a tus derechos legales.</p>","button":"Iniciar una solicitud de devolución o cancelación","accountIntro":"Puedes enviar una solicitud de devolución o cancelación desde tu cuenta de cliente."},"fr":{"footer":"Retours et annulations / rétractation","title":"Politique de retours et remboursements","html":"<h2>Retours, annulations et droit de rétractation dans lâUE</h2> 4321<p>Si vous êtes un consommateur de lâUE, vous pouvez annuler une commande non préparée ou exercer votre droit de rétractation pour une commande livrée dans un délai de 14 jours à compter de la livraison du dernier article, sauf exception légale applicable.</p> 4322<p>Utilisez le lien de retour/annulation dans votre compte client. Shopify enverra une confirmation automatique et nous examinerons la demande avant dâapprouver toute annulation, retour ou remboursement.</p> 4323<p>Les produits doivent être retournés complets, propres, non endommagés, sans utilisation au-delà de ce qui est nécessaire pour les inspecter, et avec tous les accessoires et manuels. Veuillez utiliser lâemballage dâorigine chaque fois que possible. Pour les vélos/équipements, lâemballage dâorigine ou un emballage protecteur équivalent est requis pour un transport sûr. Si le produit, les accessoires ou lâemballage sont endommagés, incomplets ou manipulés au-delà de ce qui est nécessaire à lâinspection, nous pouvons rédu
4323ire le remboursement pour refléter la perte de valeur.</p> 4324<p>Sauf si le produit est défectueux, incorrectement fourni, ou si la loi applicable lâexige autrement, les frais de retour/enlèvement et les dommages causés par un emballage de retour insuffisant sont à la charge du client.</p> 4325<p>Les remboursements approuvés sont effectués sur le moyen de paiement initial. Nous pouvons différer le remboursement jusquâà réception des biens ou jusquâà ce que vous fournissiez une preuve dâexpédition du retour. Les frais de livraison standard initiaux sont remboursés lorsque la loi lâexige ; les services de livraison améliorés ou supplémentaires ne sont pas remboursables.</p> 4326<p>Cette politique nâaffecte pas vos droits légaux.</p>","button":"Démarrer une demande de retour ou dâannulation","accountIntro":"Vous pouvez envoyer une demande de retour ou dâannulation depuis votre compte client."},"de":{"footer":"Rückgaben und Stornierungen / Widerruf","title":"Rückgabe- und Erstattungsrichtlinie","html":"<h2>Rückgaben, Stornierungen und EU-Widerrufsrecht</h2> 4327<p>Wenn Sie Verbraucher in der EU sind, können Sie eine noch nicht erfüllte Bestellung stornieren oder bei einer gelieferten Bestellung innerhalb von 14 Tagen ab Lieferung des letzten Artikels widerrufen, sofern keine gesetzliche Ausnahme gilt.</p> 4328<p>Nutzen Sie den Rückgabe-/Stornierungslink in Ihrem Kundenkonto. Shopify sendet eine automatische Bestätigung, und wir prüfen die Anfrage, bevor eine Stornierung, Rückgabe oder Erstattung genehmigt wird.</p> 4329<p>Produkte müssen vollständig, sauber, unbeschädigt, nicht über das zur Prüfung erforderliche Maà hinaus benutzt und mit allem Zubehör sowie allen Handbüchern zurückgegeben werden. Bitte verwenden Sie nach Möglichkeit die Originalverpackung. Für Fahrräder/Geräte ist die Originalverpackung oder eine gleichwertige Schutzverpackung für einen sicheren Transport erforderlich. Wenn Produkt, Zubehör oder Verpackung beschädigt, unvollständig oder über das zur Prüfung erforderliche Maà hinaus behandelt wurden, können wir die Erstattung entsprechend dem Wertverlust reduzieren.</p> 4330<p>Sofern das Produkt nicht mangelhaft oder falsch geliefert wurde oder das anwendbare Recht nichts anderes vorschreibt, trägt der Kunde die Rücksende-/Abholkosten sowie Schäden, die durch unzureichende Rücksendeverpackung entstehen.</p> 4331<p>Genehmigte Erstattungen erfolgen auf die ursprüngliche Zahlungsmethode. Wir können die Rückzahlung zurückhalten, bis wir die Waren zurückerhalten haben oder Sie einen Nachweis über die Rücksendung erbracht haben. Standardversandkosten der ursprünglichen Lieferung werden erstattet, soweit gesetzlich vorgeschrieben; verbesserte Lieferdienste oder Zusatzleistungen sind nicht erstattungsfähig.</p> 4332<p>Diese Richtlinie berührt Ihre gesetzlichen Rechte nicht.</p>","button":"Rückgabe oder Stornierung beantragen","accountIntro":"Sie können eine Rückgabe- oder Stornierungsanfrage über Ihr Kundenkonto senden."},"it":{"footer":"Resi e cancellazioni / recesso","title":"Politica di resi e rimborsi","html":"<h2>Resi, cancellazioni e diritto di recesso nellâUE</h2> 4333<p>Se sei un consumatore dellâUE, puoi cancellare un ordine non ancora evaso o esercitare il diritto di recesso per un ordine consegnato entro 14 giorni dalla consegna dellâultimo articolo, salvo eventuali eccezioni di legge.</p> 4334<p>Usa il link per reso/cancellazione nel tuo account cliente. Shopify invierà una conferma automatica e noi esamineremo la richiesta prima di approvare qualsiasi cancellazione, reso o rimborso.</p> 4335<p>I prodotti devono essere restituiti completi, puliti, non danneggiati, non utilizzati oltre quanto necessario per ispezionarli, e con tutti gli accessori e manuali. Ti chiediamo di utilizzare lâimballaggio originale ogni volta che sia possibile. Per biciclette/attrezzature, lâimballaggio originale o un imballaggio protettivo equivalente è richiesto per un trasporto sicuro. Se il prodotto, gli accessori o lâimballaggio sono danneggiati, incompleti o manipolati oltre quanto necessario per lâispezione, potremo ridurre il rimborso per riflettere la perdita di valore.</p> 4336<p>Salvo che il prodotto sia difettoso, fornito in modo errato o la legge applicabile preveda diversamente, i costi di reso/ritiro e i danni causati da un imballaggio di reso inadeguato sono a carico del cliente.</p> 4337<p>I rimborsi approvati vengono effettuati sul metodo di pagamento originale. Possiamo trattenere il rimborso fino alla ricezione dei beni o fino a quando fornisci prova della spedizione del reso. I costi di consegna standard iniziali sono rimborsati quando richiesto dalla legge; servizi di consegna migliorati o aggiuntivi non sono rimborsabili.</p> 4338<p>Questa politica non pregiudica i tuoi diritti di legge.</p>","button":"Avvia una richiesta di reso o cancellazione","accountIntro":"Puoi inviare una richiesta di reso o cancellazione dal tuo account cliente."}
4338,"nl":{"footer":"Retouren en annuleringen / herroeping","title":"Retour- en terugbetalingsbeleid","html":"<h2>Retouren, annuleringen en EU-herroepingsrecht</h2> 4339<p>Als je een EU-consument bent, kun je een nog niet verwerkte bestelling annuleren of je herroepingsrecht uitoefenen voor een geleverde bestelling binnen 14 dagen vanaf de levering van het laatste artikel, tenzij een wettelijke uitzondering van toepassing is.</p> 4340<p>Gebruik de retour-/annuleringslink in je klantaccount. Shopify stuurt een automatische bevestiging en wij beoordelen het verzoek voordat een annulering, retour of terugbetaling wordt goedgekeurd.</p> 4341<p>Producten moeten compleet, schoon, onbeschadigd, niet verder gebruikt dan nodig is om ze te inspecteren, en met alle accessoires en handleidingen worden geretourneerd. Gebruik waar mogelijk de originele verpakking. Voor fietsen/apparatuur is de originele verpakking of gelijkwaardige beschermende verpakking vereist voor veilig transport. Als het product, de accessoires of de verpakking beschadigd of incompleet zijn, of verder zijn behandeld dan nodig is voor inspectie, kunnen wij de terugbetaling verminderen om het waardeverlies weer te geven.</p> 4342<p>Tenzij het product defect of verkeerd geleverd is, of toepasselijke wetgeving anders vereist, zijn retour-/ophaalkosten en schade veroorzaakt door onvoldoende retourverpakking de verantwoordelijkheid van de klant.</p> 4343<p>Goedgekeurde terugbetalingen worden uitgevoerd naar de oorspronkelijke betaalmethode. Wij kunnen de terugbetaling uitstellen totdat wij de goederen hebben ontvangen of totdat je bewijs van retourzending hebt verstrekt. Standaardkosten voor de oorspronkelijke levering worden terugbetaald wanneer dit wettelijk vereist is; verbeterde levering of extra diensten worden niet terugbetaald.</p> 4344<p>Dit beleid doet geen afbreuk aan je wettelijke rechten.</p>","button":"Start een retour- of annuleringsverzoek","accountIntro":"Je kunt een retour- of annuleringsverzoek indienen via je klantaccount."}}; 4345 var ACCOUNT_URL = "https://shopify.com/97826013533/account"; 4346 var MARKER_ID = 'returns-cancellations-withdrawal'; 4347 function locale() { var raw = (window.Shopify && Shopify.locale) || document.documentElement.getAttribute('lang') || 'en'; raw = String(raw).toLowerCase().split('-')[0]; return COPY[raw] ? raw : 'en'; } 4348 function t() { return COPY[locale()] || COPY.en; } 4349 function esc(s) { return String(s || '').replace(/[&<>"']/g, function(c) { return {'&':'&','<':'<','>':'>','"':'"',"'":'''}[c]; }); } 4350 function rootUrl() { var root = '/'; try { root = (window.Shopify && Shopify.routes && Shopify.routes.root) || '/' || '/'; } catch (e) {} if (!root) root = '/'; if (root.charAt(root.length - 1) !== '/') root += '/'; return root; } 4351 function infoUrl() { return rootUrl() + 'pages/order-faqs#' + MARKER_ID; } 4352 function addFooterLink() { 4353 var copy = t(); var footer = document.querySelector('footer') || document.querySelector('#shopify-section-footer') || document.querySelector('[id*=footer]'); 4354 if (!footer || footer.querySelector('[data-mda-eu-withdrawal-link]')) return; 4355 var faq = footer.querySelector('a[href*="/pages/order-faqs"]'); 4356 if (faq && faq.parentElement && faq.parentElement.tagName && faq.parentElement.tagName.toLowerCase() === 'li') { var li = document.createElement('li'); li.setAttribute('data-mda-eu-withdrawal-link', ''); li.innerHTML = '<a href="' + esc(infoUrl()) + '">' + esc(copy.footer) + '</a>'; faq.parentElement.insertAdjacentElement('afterend', li); return; } 4357 var wrap = document.createElement('div'); wrap.className = 'mda-eu-withdrawal-footer'; wrap.setAttribute('data-mda-eu-withdrawal-link', ''); wrap.innerHTML = '<a href="' + esc(infoUrl()) + '">' + esc(copy.footer) + '</a>'; footer.appendChild(wrap); 4358 } 4359 function renderPolicyBlock() { 4360 var path = window.location.pathname.replace(/\/$/, ''); if (!/\/pages\/order-faqs$/.test(path)) return; if (document.getElementById(MARKER_ID)) return; 4361 var copy = t(); var section = document.createElement('section'); section.id = MARKER_ID; section.className = 'mda-eu-withdrawal-policy'; 4362 section.innerHTML = copy.html + '<p>' + esc(copy.accountIntro) + '</p><p><a class="mda-eu-withdrawal-policy__button" href="' + esc(ACCOUNT_URL) + '">' + esc(copy.button) + '</a></p>'; 4363 var main = document.querySelector('main') || document.querySelector('#MainContent') || document.body; main.insertBefore(section, main.firstChild); 4364 if (window.location.hash === '#' + MARKER_ID) setTimeout(function() { section.scrollIntoView({ block: 'start' }); }, 80); 4365 }
4366 function init() { addFooterLink(); renderPolicyBlock(); } 4367 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init(); 4368})(); 4369</script>
4369 4370<!-- MDA_EU_WITHDRAWAL_END --> 4371 4372 4373 4374
4374<script> 4375 4376(function () { 4377 var SYMBOLS = /[â¢Â®Â©]/; 4378 4379 function superscriptSymbols(root) { 4380 var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, { 4381 acceptNode: function (node) { 4382 var parent = node.parentNode && node.parentNode.nodeName; 4383 // Ignore code, styles, form fields, and symbols already superscripted 4384 if (['SCRIPT', 'STYLE', 'TEXTAREA', 'SUP'].includes(parent)) { 4385 return NodeFilter.FILTER_REJECT; 4386 } 4387 // Keep only text that contains at least one symbol 4388 return SYMBOLS.test(node.nodeValue) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP; 4389 } 4390 }); 4391 4392 // Collect first, then modify, so the walker isn't disrupted 4393 var nodes = []; 4394 while (walker.nextNode()) nodes.push(walker.currentNode); 4395 4396 nodes.forEach(function (node) { 4397 var fragment = document.createDocumentFragment(); 4398 // Split around each symbol, keeping the symbols 4399 node.nodeValue.split(/([â¢Â®Â©])/).forEach(function (part) { 4400 if (!part) return; 4401 if (SYMBOLS.test(part)) { 4402 var sup = document.createElement('sup'); 4403 sup.textContent = part; 4404 fragment.appendChild(sup); 4405 } else { 4406 fragment.appendChild(document.createTextNode(part)); 4407 } 4408 }); 4409 node.parentNode.replaceChild(fragment, node); 4410 }); 4411 } 4412 4413 function init() { 4414 // Process everything currently on the page 4415 superscriptSymbols(document.body); 4416 4417 // Watch for content added later by the theme or apps 4418 new MutationObserver(function (mutations) { 4419 mutations.forEach(function (m) { 4420 m.addedNodes.forEach(function (added) { 4421 if (added.nodeType === 1) superscriptSymbols(added); 4422 else if (added.nodeType === 3 && added.parentNode) superscriptSymbols(added.parentNode); 4423 }); 4424 }); 4425 }).observe(document.body, { childList: true, subtree: true }); 4426 } 4427 4428 // Run now if the page is already loaded, otherwise wait for it 4429 if (document.readyState === 'loading') { 4430 document.addEventListener('DOMContentLoaded', init); 4431 } else { 4432 init(); 4433 } 4434})(); 4435</script>
4435 4436 4437<style> .disclosure__title {text-transform: uppercase;} .vendor {display: none;} </style> 4438<div id="shopify-block-AdlMwdW41eW0wNHQ2b__18131037017812181619" class="shopify-block shopify-app-block"> 4439
4439<script defer src="https://chimpstatic.com/mcjs-connected/js/users/ecfe8820b329ac59d6f0a6985/593dcb72627dbe14c4442cf25.js"></script>
4439 4440
4440<script>window.mc_embedded = true;</script>
4440 4441 4442 4443 4444</div>
4444<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
4444 4445</body> 4446</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.