1<!doctype html> 2<html class="no-js" lang="en"> 3 <head> 4 5
5<script> 6(function () { 7 if (!window.location.pathname.startsWith('/collections/')) return; 8 9 var url = new URL(window.location.href); 10 11 if (url.searchParams.has('filter.v.availability')) return; 12 13 url.searchParams.set('filter.v.availability', '1'); 14 15 window.location.replace(url.toString()); 16})(); 17</script>
17 18 <meta charset="utf-8"> 19 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 20 <meta name="viewport" content="width=device-width,initial-scale=1"> 21 <meta name="theme-color" content=""> 22 <meta name="format-detection" content="telephone=no"> 23 24 25 �<link rel="canonical" href="https://foveo.run/search"> 26 <link rel="preconnect" href="https://cdn.shopify.com" crossorigin><link rel="icon" href="//foveo.run/cdn/shop/files/FoveoRunning_BadgeLogo_Plain_FullColour-01_favicon_96x96_7e118953-7313-4f4f-8dd6-a1959f49d1f7_32x32.png?v=1781457313" type="image/png"><title>Search�– Foveo Running</title><meta name="description" content="Shop high-quality, comfortable, and lightweight running shoes in Downtown Courtenay, BC, Canada. Our team will ensure the best-fitting footwear for trail running, road running, and everyday walking. Our selection of running shoes, apparel and accessories appeals to all levels from beginner runners to elite athletes."> 27 28<meta property="og:site_name" content="Foveo Running"> 29<meta property="og:url" content="https://foveo.run/search"> 30<meta property="og:title" content="Search"> 31<meta property="og:type" content="website"> 32<meta property="og:description" content="Shop high-quality, comfortable, and lightweight running shoes in Downtown Courtenay, BC, Canada. Our team will ensure the best-fitting footwear for trail running, road running, and everyday walking. Our selection of running shoes, apparel and accessories appeals to all levels from beginner runners to elite athletes."><meta property="og:image" content="http://foveo.run/cdn/shop/files/hiker-rocky-mountain-ridge-blue-sky-1.png?v=1770319118"> 33 <meta property="og:image:secure_url" content="https://foveo.run/cdn/shop/files/hiker-rocky-mountain-ridge-blue-sky-1.png?v=1770319118"> 34 <meta property="og:image:width" content="1200"> 35 <meta property="og:image:height" content="628"><meta name="twitter:card" content="summary_large_image"> 36<meta name="twitter:title" content="Search"> 37<meta name="twitter:description" content="Shop high-quality, comfortable, and lightweight running shoes in Downtown Courtenay, BC, Canada. Our team will ensure the best-fitting footwear for trail running, road running, and everyday walking. Our selection of running shoes, apparel and accessories appeals to all levels from beginner runners to elite athletes."> 38<meta property="theme:layout" content="theme"> 39<meta property="theme:template" content="search"> 40 41 <link rel="preload" as="font" href="//foveo.run/cdn/fonts/poppins/poppins_n4.0ba78fa5af9b0e1a374041b3ceaadf0a43b41362.woff2" type="font/woff2" crossorigin> 42 <link rel="preload" as="font" href="//foveo.run/cdn/fonts/poppins/poppins_n5.ad5b4b72b59a00358afc706450c864c3c8323842.woff2" type="font/woff2" crossorigin> 43 44 45 46 <link rel="preload" as="font" href="//foveo.run/cdn/fonts/poppins/poppins_n4.0ba78fa5af9b0e1a374041b3ceaadf0a43b41362.woff2" type="font/woff2" crossorigin> 47 �<style> 48 shopify-accelerated-checkout { 49 --shopify-accelerated-checkout-button-block-size: 54px; 50 --shopify-accelerated-checkout-button-border-radius: 32px; 51 --shopify-accelerated-checkout-button-box-shadow: none; 52 --shopify-accelerated-checkout-skeleton-background-color: #dedede; 53 --shopify-accelerated-checkout-skeleton-animation-opacity-start: 1; 54 --shopify-accelerated-checkout-skeleton-animation-opacity-end: 0.5; 55 --shopify-accelerated-checkout-skeleton-animation-duration: 4s; 56 --shopify-accelerated-checkout-skeleton-animation-timing-function: ease; 57 } 58 shopify-accelerated-checkout-cart { 59 --shopify-accelerated-checkout-button-block-size: 54px; 60 --shopify-accelerated-checkout-button-inline-size: 54px; 61 --shopify-accelerated-checkout-button-border-radius: 32px; 62 --shopify-accelerated-checkout-button-box-shadow: none; 63 --shopify-accelerated-checkout-inline-alignment: flex-start; 64 --shopify-accelerated-checkout-row-gap: 16px; 65 --shopify-accelerated-checkout-skeleton-background-color: #dedede; 66 --shopify-accelerated-checkout-skeleton-animation-opacity-start: 1; 67 --shopify-accelerated-checkout-skeleton-animation-opacity-end: 0.5; 68 --shopify-accelerated-checkout-skeleton-animation-duration: 4s; 69 --shopify-accelerated-checkout-skeleton-animation-timing-function: ease; 70 } 71 72 :root { 73 74 --global-container-width: 1432px;
75 --global-border-radius: 16px; 76 --global-gap: 16px; 77 --global-gap-small: 8px; 78 79 80 --loading-image: url(//foveo.run/cdn/shop/t/23/assets/loading.svg?v=139510183042965767481781878678); 81 82 83 --color-black: #000; 84 --color-black-light: rgba(0, 0, 0, 0.7); 85 --color-white: #fff; 86 --color-gray: #757575; 87 --color-light-gray: #E9E9E9; 88 --color-dark-gray: #999999; 89 --color-valencia: #D33636; 90 --color-silver: #C4C4C4; 91 --color-snow: #F8F8F8; 92 --color-whisper: #E6E6E6; 93 --color-chelsea-cucumber: #81B154; 94 --color-fire-bush: #E49D49; 95 --color-green-success: #198754; 96 --color-red-error: #B00020; 97 --color-ghost-white: #F9F9F9; 98 99 100 --color-slider-arrow-background:#fff; 101 --color-slider-arrow-icon:#000; 102 --color-slider-arrow-border:#e9e9e9; 103 104 105 --color-slider-arrow-background-hover:#000000; 106 --color-slider-arrow-icon-hover:#ffffff; 107 --color-slider-arrow-border-hover:#000; 108 109 --color-icon-available:#e3f2e1; 110 --color-icon-out-of-stock:#f6f6f6; 111 112 --color-cart-notification-background:#161E13; 113 --color-cart-notification-text:#FFFFFF; 114 --color-cart-notification-cross:#FFFFFF; 115 116 117 --color-overlay:#000000; 118 119 120 --color-background:#ffffff; 121 --color-background-darken: #f8f8f8; 122 --color-background-secondary: #F6F6F6; 123 --color-img-placeholder-bg: #ededed; 124 --color-background-popup-drawer: #fff; 125 126 127 --color-text-primary:#000000; 128 --color-text-secondary:#535353; 129 --color-text-thirdly:#9D9D9D; 130 --color-heading:#000000; 131 --link-color:#535353; 132 --color-accent:#ffffff; 133 --color-text-attention: #e41616; 134 --color-text-success: #36BA20; 135 --color-sale-label: #FFFFFF; 136 --color-label-base:#000000; 137 --color-label-primary:#ffffff; 138 --color-label-secondary:#FFFFFF; 139 --color-label-sold-out:#000000; 140 141 142 --color-border-primary:#000000; 143 --color-border-secondary:#e9e9e9; 144 --color-border-thirdly:#cdcdcd; 145 146 147 148 149 --button-text-color-primary:#000000; 150 --button-background-color-primary:#ffffff; 151 152 --button-text-color-primary-hover:#000000; 153 --button-background-color-primary-hover:#f9f9f9; 154 155 156 --button-text-color-secondary:#ffffff; 157 --button-background-color-secondary:#000; 158 159 --button-text-color-secondary-hover:#ffffff; 160 --button-background-color-secondary-hover:#292929; 161 162 163 --button-text-color-primary-with-border:#fff; 164 --button-background-color-primary-with-border:transparent; 165 --button-border-color-primary-with-border:#fff; 166 167 --button-text-color-primary-with-border-hover:#000; 168 --button-background-color-primary-with-border-hover:#fff; 169 --button-border-color-primary-with-border-hover:#fff; 170 171 172 --button-text-color-secondary-with-border:#000; 173 --button-background-color-secondary-with-border:transparent; 174 --button-border-color-secondary-with-border:#000; 175 176 --button-text-color-secondary-with-border-hover:#fff; 177 --button-background-color-secondary-with-border-hover:#000; 178 --button-border-color-secondary-with-border-hover:transparent; 179 180 181 --button-icon-color-social:#3d3d3d; 182 --button-background-color-social:#ffffff; 183 --button-border-color-social:#949494; 184 185 186 --button-icon-color-social-hover:#ffffff; 187 --button-background-color-social-hover:#3d3d3d; 188 --button-border-color-social-hover:#3d3d3d; 189 190 191 --product-card-button-text-color:#000000; 192 --product-card-button-background-color:#ffffff; 193 194 195 --product-card-button-text-color-hover:#ffffff; 196 --product-card-button-background-color-hover:#000000; 197 198 199 --product-card-button-border-color:#000000; 200 --product-card-button-border-color-hover:#ffffff; 201 202 203 --color-preloader-primary:#E6E6E6; 204 --color-preloader-secondary:#3d3d3d; 205 --background-color-preloader:rgba(255, 255, 255, 0.35); 206 207 �--color-background-label-base:rgba(255, 255, 255, 0.7); 208 --color-background-label-primary:rgba(250, 0, 0, 0.7); 209 --color-background-label-secondary:rgba(64, 132, 0, 0.7); 210 --color-background-label-sale:#cc0000; 211 --color-background-label-sold-out:rgba(242, 242, 242, 0.7); 212 213 --color-border-label-base:rgba(0,0,0,0); 214 --color-border-label-primary:rgba(0,0,0,0); 215 --color-border-label-secondary:rgba(0,0,0,0); 216 --color-border-label-sold-out:rgba(0,0,0,0); 217 --color-border-label-sale:#E9E9E9; 218 219 --color-background-quick-buttons: #fff; 220 --color-border-quick-buttons: #f6f6f6; 221 --color-text-quick-buttons: #000; 222 --color-compare-sticky-button-bg: #000; 223 --color-compare-sticky-button-color: #fff; 224 --color-pdp-compare-button-bg: #fff; 225 --color-pdp-compare-button-color: #000; 226 --color-pdp-compare-button-border-color: #E9E9E9; 227} 228 229 230 231 232 233 �@font-face { 234 font-family: Poppins; 235 font-weight: 400; 236 font-style: normal; 237 font-display: swap; 238 src: url("//foveo.run/cdn/fonts/poppins/poppins_n4.0ba78fa5af9b0e1a374041b3ceaadf0a43b41362.woff2") format("woff2"), 239 url("//foveo.run/cdn/fonts/poppins/poppins_n4.214741a72ff2596839fc9760ee7a770386cf16ca.woff") format("woff"); 240} 241@font-face { 242 font-family: Poppins; 243 font-weight: 400; 244 font-style: normal; 245 font-display: swap; 246 src: url("//foveo.run/cdn/fonts/poppins/poppins_n4.0ba78fa5af9b0e1a374041b3ceaadf0a43b41362.woff2") format("woff2"), 247 url("//foveo.run/cdn/fonts/poppins/poppins_n4.214741a72ff2596839fc9760ee7a770386cf16ca.woff") format("woff"); 248} 249 250 @font-face { 251 font-family: Poppins; 252 font-weight: 700; 253 font-style: normal; 254 font-display: swap; 255 src: url("//foveo.run/cdn/fonts/poppins/poppins_n7.56758dcf284489feb014a026f3727f2f20a54626.woff2") format("woff2"), 256 url("//foveo.run/cdn/fonts/poppins/poppins_n7.f34f55d9b3d3205d2
256cd6f64955ff4b36f0cfd8da.woff") format("woff"); 257} 258 259 @font-face { 260 font-family: Poppins; 261 font-weight: 400; 262 font-style: italic; 263 font-display: swap; 264 src: url("//foveo.run/cdn/fonts/poppins/poppins_i4.846ad1e22474f856bd6b81ba4585a60799a9f5d2.woff2") format("woff2"), 265 url("//foveo.run/cdn/fonts/poppins/poppins_i4.56b43284e8b52fc64c1fd271f289a39e8477e9ec.woff") format("woff"); 266} 267 268 @font-face { 269 font-family: Poppins; 270 font-weight: 700; 271 font-style: italic; 272 font-display: swap; 273 src: url("//foveo.run/cdn/fonts/poppins/poppins_i7.42fd71da11e9d101e1e6c7932199f925f9eea42d.woff2") format("woff2"), 274 url("//foveo.run/cdn/fonts/poppins/poppins_i7.ec8499dbd7616004e21155106d13837fff4cf556.woff") format("woff"); 275} 276 277 278 279 280 281 282 :root { 283 --body-font-size:16px; 284 --body-font-size-without-unit:16; 285 --heading-font-size:16px; 286 --base-font-family: Poppins, sans-serif; 287 --heading-font-family: Poppins, sans-serif; 288 --heading-font-weight:400; 289 --heading-text-transform:none; 290 --button-font-family: Inter, sans-serif; 291 --button-font-size:16px; 292 --button-text-transform:none; 293 } 294 295 296 297 :root { 298 --product-card-object-fit:contain; 299 } 300 301 302 303 :root { 304 --sticky-sidebar-offset-top: 40px; 305 }@media (-moz-touch-enabled: 0), (hover: hover) { 306 body * { 307 scrollbar-color:rgba(61, 61, 61, 0.2) rgba(61, 61, 61, 0.0); 308 } 309 310 body *::-webkit-scrollbar-track { 311 background-color:rgba(61, 61, 61, 0.0); 312 } 313 314 body *::-webkit-scrollbar-thumb { 315 background-color:rgba(61, 61, 61, 0.2); 316 } 317 } 318</style> 319<link href="//foveo.run/cdn/shop/t/23/assets/custom.css?v=105862713306834232231787025046" rel="stylesheet" type="text/css" media="all" /> 320 321 <link rel="preload" as="style" href="//foveo.run/cdn/shop/t/23/assets/main.build.css?v=124256880893744817131782130480"> 322 323 324 325 326 327 <link href="//foveo.run/cdn/shop/t/23/assets/main.build.css?v=124256880893744817131782130480" rel="stylesheet" type="text/css" media="all" /> 328
329<script> 330 window.themeCore = window.themeCore || {}; 331 window.themeCore.productPlaceholderImage ="https:\/\/foveo.run\/cdn\/shop\/files\/ComingSoon-800x800.png?v=1775244681"; 332 window.themeCore.productPlaceholderImageFocal = "50.0% 50.0%"; 333 </script>
333<script> 334 function themeCoreUnescape(value) { 335 const doc = new DOMParser().parseFromString(value, "text/html"); 336 337 return doc.body.innerHTML; 338 } 339 340 window.themeCore = window.themeCore || {}; 341 window.themeCore.translations = window.themeCore.translations || {}; 342 window.themeCore.translations = { 343 ...window.themeCore.translations, 344 get(name, params = {}) { 345 try { 346 const translation = name.split(".").reduce((translations, key) => { 347 if (translations.hasOwnProperty(key)) { 348 return translations[key]; 349 } 350 351 throw new Error("Translation missed"); 352 }, this.translations); 353 354 return Object.keys(params).reduce((result = "", key) => { 355 let regex = new RegExp(`{{(\\s+)?(${key})(\\s+)?}}`, "gm"); 356 357 return result.replace(regex, params[key]); 358 }, themeCoreUnescape(translation)); 359 } catch (e) {} 360 361 return `"${name}" translation missed`; 362 }, 363 all() { 364 return this.translations; 365 } 366 } 367 </script>
vendor: 2 bytes, line 367
367
368<script> 369 window.themeCore = window.themeCore || {}; 370 window.themeCore.translations = window.themeCore.translations || {} 371 window.themeCore.translations.translations = { 372 "general": { 373 "accessibility": { 374 "error":"Error", 375 "form_error_title":"Please adjust the following:", 376 "skip_to_content":"Skip to content", 377 "close_modal":"Close (esc)", 378 "close_announcement_bar":"Close announcement bar", 379 "video_play":"Play video", 380 "video_pause":"Pause video", 381 "unit_price_separator":"per", 382 "link_messages": { 383 "new_window":"opens a new window", 384 "link_to_home_page":"Link to home page"}, 385 "slider": { 386 "prev_slide_message":"Previous slide", 387 "next_slide_message":"Next slide", 388 "first_slide_message":"This is the first slide", 389 "last_slide_message":"This is the last slide", 390 "slide_label_message":"{{index}} \/ {{slidesLength}}", 391 "pagination_bullet_message":"Go to slide {{index}}"}, 392 "total_reviews":"total reviews", 393 "star_reviews_info":"Product reviews: {{ rating_value }} out of {{ rating_max }} stars", 394 "close":"Close", 395 "full_width":"Full width", 396 "zoom_button":"Zoom", 397 "scroll_to_top":"Scroll to top"}, 398 "meta": { 399 "tags":"Tagged \u0026quot;{{ tags }}\u0026quot;", 400 "page":"Page {{ page }}"}, 401 "pagination": { 402 "label":"Pagination", 403 "page":"Page {{ number }}", 404 "last_page":"Last page, page {{ number }}", 405 "next":"Next page", 406 "previous":"Previous page", 407 "lazy_load":"Load more", 408 "lazy_load_aria":"Load more {{ items }}"}, 409 "password_page": { 410 "opening_soon":"Opening soon", 411 "error_heading":"Wrong password", 412 "close_popup":"Close popup", 413 "footer_text":"\u0026lt;p\u0026gt;Are you the store owner? \u0026lt;a href=\u0026quot;\/admin\u0026quot;\u0026gt;Log in here\u0026lt;\/a\u0026gt;\u0026lt;\/p\u0026gt;", 414 "login_form_submit":"Enter", 415 "header_open_popup_button":"Enter using password", 416 "form_label":"Your password", 417 "form_placeholder":"Enter your password", 418 "content_label":"Enter email address...", 419 "content_success":"Thanks for subscribing", 420 "content_button_label":"Subscribe"}, 421 "social": { 422 "alt_text": { 423 "share_on_facebook":"Share on Facebook", 424 "share_on_twitter":"Share on X (Twitter)", 425 "share_on_instagram":"Share on Instagram", 426 "share_on_pinterest":"Share on Pinterest"}, 427 "social_link_aria_label":"Go to our {{ social }} page. Open in a new window", 428 "share_button":"Share", 429 "share_success":"Link copied!"}, 430 "search": { 431 "no_results":"No results found for â{{ query }}â. Check the spelling or rephrase your query.", 432 "results_with_count": { 433 "one":"{{ count }} result for \u0026quot;{{ terms }}\u0026quot;", 434 "other":"{{ count }} results for \u0026quot;{{ terms }}\u0026quot;"}, 435 "heading": { 436 "one":"Search result", 437 "other":"Search results"}, 438 "breadcrumbs_name":"Search", 439 "search_submit_button":"Search", 440 "search_input_placeholder":"Search", 441 "grid_view_1":"Change grid view to 1 product per row", 442 "grid_view_2":"Change grid view to 2 products per row", 443 "grid_view_3":"Change grid view to 3 products per row", 444 "grid_view_4":"Change grid view to 4 products per row"}, 445 "predictive_search": { 446 "title":"Search", 447 "placeholder":"What are you looking for?", 448 "products":"Products", 449 "articles":"Articles", 450 "pages":"Pages", 451 "no_results":"No results found", 452 "submit":"See all results", 453 "products_aria_label":"Products", 454 "articles_aria_label":"Articles", 455 "pages_aria_label":"Pages", 456 "placeholder_aria_label":"Search", 457 "close_aria_label":"Close search", 458 "submit_query_aria_label":"Submit search query", 459 "reset_aria_label":"Reset search", 460 "comments":"comments {{ count }}", 461 "comments_single":"{{ count }} comment"}, 462 "filters": { 463 "title":"Filters", 464 "active_title":"Active filters", 465 "number_of_products_found":"found {{ number }} products", 466 "number_of_product_found":"found {{ number }} product", 467 "applied_filters":"Applied filters", 468 "open_filter_menu_aria":"Filters and sort (open filter menu)", 469 "close_filter_menu_aria":"Close filter menu", 470 "price_range_placeholder":"Can\u0026#39;t be blank!", 471 "remove_filter_button_aria":"Remove filter by {{ type }}: {{ value }}", 472 "clear_all":"Clear all", 473 "filter_price_from":"Price from...", 474 "filter_price_to":"Price to...", 475 "filter_and_operator_subtitle":"Match all"}, 476 "payment": { 477 "method":"Payment methods"}, 478 "breadcrumbs": { 479 "title":"Breadcrumbs", 480 "home":"Home"}, 481 "localization": { 482 "update_language":"Update language", 483 "update_country":"Update country\/region"} 484 }, 485 "sections": { 486 "grid_images": { 487 "label_placeholder":"Label", 488 "heading_placeholder":"Heading"}, 489 "banner": { 490 "timer_days_label":"Days", 491 "timer_hours_label":"Hours", 492 "timer_minutes_label":"Minutes", 493 "timer_seconds_label":"Seconds"}, 494 "countdown_banner": { 495 "timer_days_label":"Days", 496 "timer_hours_label":"Hours", 497 "timer_minutes_label":"Minutes", 498 "timer_seconds_label":"Seconds"}, 499 "shop_the_look": { 500 "point_button":"Point: {{ title }}", 501 "add_to_cart_disabled":"Choose products", 502 "add_to_cart":"Add to cart", 503 "add_to_cart_sold_out":"Sold out", 504 "subtotal":"Subtotal: ", 505 "open_modal_aria_label":"Open look modal", 506 "close_modal_aria_label":"Close look modal", 507 "open_modal_label":"Buy the Look"}, 508 "collection_list": { 509 "card_title":"Collection title", 510 "one_product":"product", 511 "many_products":"products"}, 512 "product_tabs": { 513 "button_aria":"Open {{ number }} tab"}, 514 "trend_products": { 515 "open_popup":"Product details: {{ title }}"}, 516 "bundle": { 517 "total":"Total: "}, 518 "video": { 519 "button_text":"Play video"}, 520 "search_template": { 521 "products":"Products ({{ count }})", 522 "articles":"Articles ({{ count }})", 523 "pages":"Pages ({{ count }})", 524 "submit_query_aria_label":"Submit search query", 525 "reset_aria_label":"Reset search"} 526 }, 527 "blogs": { 528 "general": { 529 "empty_blog":"No articles find", 530 "lazy_load_button":"Load more"}, 531 "article": { 532 "view_all":"All articles", 533 "learn_more":"Learn More", 534 "back_to_blog":"All {{ title }}", 535 "published_at":"Article published at: ", 536 "author":"Article author: ", 537 "tag":"Article tag: ", 538 "learn_more_link_aria":"Learn more about {{ title }}", 539 "share":"Share:", 540 "comments":"{{ count }} comments", 541 "comments_count":"Article comments count: ", 542 "one_comment":"comment", 543 "many_comments":"comments"}, 544 "comments": { 545 "title":"Leave a comment", 546 "name":"Name", 547 "name_placeholder":"Enter your name", 548 "email":"Email", 549 "email_placeholder":"[email protected]", 550 "message":"Message", 551 "message_placeholder":"Enter your message", 552 "post":"Write a comment", 553 "moderated":"Please note, comments must be approved before they are published", 554 "success_moderated":"Your comment was posted successfully. We will publish it in a little while, as our blog is moderated.", 555 "success":"Your comment was posted successfully! Thank you!"} 556 }, 557 "cart": { 558 "general": { 559 "title":"Shopping cart", 560 "note":"Add a note to your order", 561 "edit_note":"Edit a note to your order", 562 "discount":"Apply a discount code", 563 "discount_accordion_button":"Discount", 564 "discount_placeholder":"Discount code", 565 "remove_discount":"Remove discount {{ code }}", 566 "apply_discount":"Apply", 567 "shipping_discount_error":"Shipping discounts are shown at checkout after adding an address", 568 "discount_code_error":"Discount code cannot be applied to your cart",
569 "discount_applied":"Applied discount code: {{ code }}", 570 "note_placeholder":"Leave a note for seller", 571 "upsell":"Upsell products", 572 "remove":"Remove", 573 "subtotal":"Subtotal", 574 "savings":"You\u0026#39;re saving", 575 "taxes_and_shipping_at_checkout":"Taxes and shipping calculated at checkout", 576 "taxes_and_shipping_policy_at_checkout_html":"Taxes and \u003ca href=\"{{ link }}\"\u003eshipping\u003c\/a\u003e calculated at checkout", 577 "taxes_included_but_shipping_at_checkout":"Tax included and shipping calculated at checkout", 578 "taxes_included_and_shipping_policy_html":"Tax included. \u003ca href=\"{{ link }}\"\u003eShipping\u003c\/a\u003e calculated at checkout.", 579 "checkout":"Checkout", 580 "empty":"Your cart is currently empty.", 581 "edit":"Edit", 582 "continue_shopping":"Continue shopping", 583 "view_quantity_rules":"View quantity rules", 584 "volume_pricing_available":"Volume pricing available"}, 585 "label": { 586 "product":"Product", 587 "price":"Price", 588 "quantity":"Quantity", 589 "total":"Total"}, 590 "shipping_bar": { 591 "progress":"Free shipping progress {{ value }}%"}, 592 "errors": { 593 "quantity":"You can only add {{ count }} of {{ title }} to your cart."}, 594 "notifications": { 595 "view_cart":"View cart", 596 "added_heading":"Added", 597 "error":"Cart Error"}, 598 "reminder": { 599 "accessibility": { 600 "cart":"Cart", 601 "cart_drawer":"Cart drawer", 602 "close_button":"Close notification"} 603 }, 604 "shipping_rates": { 605 "accordion_title":"Calculate shipping rates", 606 "country_label":"Country", 607 "province_label":"Province", 608 "zip_label":"Zip\/Postal Code", 609 "calculate_button":"Calculate", 610 "price_free":"FREE", 611 "no_shipping":"Sorry! We donât ship here."} 612 }, 613 "collections": { 614 "general": { 615 "empty_collection":"No products found", 616 "items_with_count": { 617 "one":"{{ count }} product", 618 "other":"{{ count }} products"}, 619 "filter_and_sort":"Filters and sort", 620 "collection_card_link_aria_label":"Go to collection \u0026#39;{{ title }}\u0026#39; page", 621 "grid_view_1":"Change grid view to 1 product per row", 622 "grid_view_2":"Change grid view to 2 products per row", 623 "grid_view_3":"Change grid view to 3 products per row", 624 "grid_view_4":"Change grid view to 4 products per row"}, 625 "sorting": { 626 "title":"Sort by"} 627 }, 628 "contact": { 629 "form": { 630 "error":"Error:", 631 "success_heading":"Thanks for contacting us. We\u0026#39;ll get back to you as soon as possible!", 632 "error_heading":"The contact form was not submitted due to an error.", 633 "map_link_aria_label":"Open map with location in new window"} 634 }, 635 "customer": { 636 "account": { 637 "title":"Account", 638 "details":"Account details", 639 "view_addresses":"View addresses", 640 "return":"Return to account details", 641 "show_password":"Show password", 642 "shipping_address":"Shipping address:", 643 "subtotal":"Subtotal:"}, 644 "activate_account": { 645 "title":"Activate account", 646 "subtext":"Create your password to activate your account.", 647 "password":"Password", 648 "password_aria_label":"Password", 649 "password_confirm":"Confirm password", 650 "password_confirm_aria_label":"Confirm password", 651 "submit":"Activate account", 652 "submit_aria_label":"Activate account", 653 "cancel":"Decline invitation", 654 "cancel_aria_label":"Decline invitation"}, 655 "addresses": { 656 "title":"Your addresses", 657 "default":"Default", 658 "add_new":"Add a new address", 659 "edit_address":"Edit address", 660 "first_name":"First name", 661 "enter_first_name":"Enter your first name", 662 "last_name":"Last name", 663 "enter_last_name":"Enter your last name", 664 "company":"Company", 665 "enter_company":"Enter your company", 666 "address_1":"Address 1", 667 "enter_address_1":"Enter your address 1", 668 "address_2":"Address 2", 669 "enter_address_2":"Enter your address 2", 670 "city":"City", 671 "enter_city":"Enter your city", 672 "country":"Country", 673 "select_country":"Select country", 674 "province":"Province", 675 "select_province":"Select province", 676 "zip":"Postal\/Zip Code", 677 "enter_zip":"Enter your postal\/zip code", 678 "phone":"Phone", 679 "enter_phone":"Enter your phone", 680 "set_default":"Set as default address", 681 "add":"Add address", 682 "add_address":"Add address", 683 "update":"Update address", 684 "update_address":"Update address", 685 "cancel":"Cancel", 686 "cancel_addresses":"Cancel", 687 "edit":"Edit", 688 "delete":"Delete", 689 "delete_confirm":"Are you sure you wish to delete this address?"}, 690 "login": { 691 "title":"Login", 692 "email":"Email", 693 "email_placeholder":"[email protected]", 694 "email_aria_label":"Enter email", 695 "password":"Password", 696 "password_placeholder":"Enter your password", 697 "recover_password":"Forgot your password?", 698 "sign_in":"Sign in", 699 "signup":"Create an account", 700 "password_aria_label":"Enter password", 701 "recover_aria_label":"Recover password", 702 "new_customer":"New customer?", 703 "sign_in_aria_label":"Sign in", 704 "sign_up_aria_label":"Signup"}, 705 "orders": { 706 "title":"Order history", 707 "order_number":"Order", 708 "date":"Order date", 709 "payment_status":"Status", 710 "total":"Total", 711 "none":"You haven\u0026#39;t placed any orders yet.", 712 "quantity":"Quantity", 713 "show_order":"Show order"}, 714 "order": { 715 "title":"Order {{ name }}", 716 "date":"Placed on {{ date }}", 717 "cancelled":"Order cancelled on {{ date }}", 718 "cancelled_reason":"Reason: {{ reason }}", 719 "billing_address":"Billing address", 720 "payment_status":"Payment status", 721 "shipping_address":"Shipping address", 722 "fulfillment_status":"Fulfillment status", 723 "discount":"Discount:", 724 "shipping":"Shipping", 725 "tax":"Tax", 726 "product":"Product", 727 "sku":"SKU", 728 "price":"Price per unit", 729 "quantity":"Quantity", 730 "total":"Total", 731 "fulfilled_at":"Fulfilled", 732 "subtotal":"Subtotal:", 733 "track_shipment":"Track shipment", 734 "view_order":"View order"}, 735 "recover_password": { 736 "title":"Reset your password", 737 "submit":"Submit", 738 "button_aria_label":"Submit", 739 "cancel":"Cancel", 740 "cancel_aria_label":"Cancel", 741 "subtext":"We will send you an email to reset your password.", 742 "success":"We\u0026#39;ve sent you an email with a link to update your password."}, 743 "reset_password": { 744 "title":"Reset account", 745 "subtext":"Enter a new password for account.", 746 "password":"Password", 747 "reset_password_aria_label":"Password", 748 "password_confirm":"Confirm password", 749 "password_confirm_aria_label":"Confirm password", 750 "submit":"Reset password", 751 "submit_aria_label":"Reset password"}, 752 "register": { 753 "title":"Create account", 754 "first_name":"First name", 755 "last_name":"Last name", 756 "email":"Email", 757 "password":"Password", 758 "first_name_placeholder":"Enter your first name", 759 "last_name_placeholder":"Enter your last name", 760 "email_placeholder":"[email protected]", 761 "password_placeholder":"Enter your password", 762 "submit":"Create account", 763 "sign_in":"Login", 764 "have_account":"I have an account", 765 "password_not_match":"Confirmation password does not match your password", 766 "first_name_aria_label":"Enter first name", 767 "last_name_aria_label":"Enter last name", 768 "email_aria_label":"Enter email", 769 "password_aria_label":"Enter password", 770 "submit_aria_label":"Signup", 771 "sign_in_aria_label":"Sign in"} 772 }, 773 "layout": { 774 "navigation": { 775 "search":"Search", 776 "main_menu":"Main navigation", 777 "open_drawer_menu":"Open drawer menu", 778 "close_drawer_menu":"Close drawer menu", 779 "drawer_menu":"Drawer menu", 780 "mega_menu":"Mega menu"}, 781 "cart": { 782 "items_count": { 783 "one":"Item", 784 "other":"Items"} 785 }, 786 "customer": { 787 "account":"Account", 788 "log_out":"Log out", 789 "log_in":"Log in"}, 790 "header": { 791 "labels": { 792 "store_logo":"Store logo", 793 "home_page_link":"Go to home page", 794 "cart":"Cart", 795 "cart_drawer":"Cart drawer", 796 "cart_item_count":"Cart item count"} 797 } 798 }, 799 "products": { 800 "product": { 801 "regular_price":"Regular price", 802 "sold_out":"Sold out", 803 "sale":"Sale", 804 "unavailable":"Unavailable", 805 "sale_price":"Sale price", 806 "quantity":"Quantity", 807 "quantity_in_cart":"(In cart: {{quantity}})", 808 "increments_of":"Increments of {{number}}", 809 "minimum_of":"Minimum of {{number}}", 810 "maximum_of":"Maximum of {{number}}", 811 "add_to_cart":"Add to cart", 812 "pre_order":"Pre-order", 813 "choose_an_option":"Choose an option", 814 "pickup_availability": { 815 "view_store_info":"View store information", 816 "check_other_stores":"Check availability at other stores", 817 "pick_up_available":"Pickup available", 818 "pick_up_unavailable":"Pickup currently unavailable", 819 "pick_up_available_at_html":"Pickup available at \u003cspan class=\"color-foreground\"\u003e{{ location_name }}\u003c\/span\u003e", 820 "pick_up_unavailable_at_html":"Pickup currently unavailable at \u003cspan class=\"color-foreground\"\u003e{{ location_name }}\u003c\/span\u003e", 821 "unavailable":"Couldn\u0026#39;t load pickup availability", 822 "refresh":"Refresh"}, 823 "volume_pricing": { 824 "title":"Volume Pricing", 825 "note":"Volume pricing available", 826 "price_range":"{{ minimum }} - {{ maximum }}", 827 "price_at_each":"at {{ price }}\/ea", 828 "each":"{{ price }}\/ea", 829 "show_more":"Show more"}, 830 "custom_fields_errors": { 831 "input_error":"The field must not be blank", 832 "checkbox_error":"Checkbox must be checked"}, 833 "price": { 834 "from_price_html":"From {{ price }}", 835 "regular_price":"Regular price", 836 "sale_price":"Sale price", 837 "unit_price":"Unit price", 838 "taxes_included":"Tax included.", 839 "shipping_policy_html":"\u003ca href=\"{{ link }}\"\u003eShipping\u003c\/a\u003e calculated at checkout."}, 840 "product_labels":"Product labels", 841 "product_label":"Product label", 842 "share_label":"Share:", 843 "product_variants":"Product variants", 844 "option_swatch_select":"Choose {{name}}:", 845 "option_select":"-- Select {{name}} --", 846 "option_select_small":"Select {{name}}", 847 "timer": { 848 "timer_days_label":"Day", 849 "timer_hours_label":"Hour", 850 "timer_minutes_label":"Min", 851 "timer_seconds_label":"Sec"}, 852 "ar_button":"View AR model", 853 "xr_button":"View in your space", 854 "xr_button_label":"View in your space, loads item in augmented reality window", 855 "product_notify_me_message":"Please notify me when {{ product_title }} becomes available", 856 "recipient": { 857 "form": { 858 "checkbox":"I want to send this as a gift", 859 "email_label":"Recipient email", 860 "email_label_optional_for_no_js_behavior":"Recipient email (optional)", 861 "email":"Email", 862 "name_label":"Recipient name (optional)", 863 "name":"Name", 864 "message_label":"Message (optional)", 865 "message":"Message", 866 "max_characters":"{{ max_chars }} characters max", 867 "send_on":"YYYY-MM-DD", 868 "send_on_label":"Send on (optional)"} 869 }, 870 "ask_question_form": { 871 "email":"Email", 872 "name":"Name"} 873 }, 874 "product_card": { 875 "product_title":"Product title", 876 "swatch_color":"Color option: {{ swatch }}", 877 "open_quick_view":"Quick view", 878 "add_to_cart":"Add to cart", 879 "quick_view_no_js":"Visit product", 880 "product_labels":"Product labels", 881 "product_label":"Product label", 882 "product_vendor":"Vendor: ", 883 "product_swatches_overlimit_label": { 884 "one":"The product has {{ count }} additional color", 885 "other":"The product has {{ count }} additional colors"}, 886 "product_swatches_overlimit":"+{{ count }}"}, 887 "product_card_with_form": {
888 "unselected_variant_button":"Choose options first"}, 889 "quantity": { 890 "label":"Quantity", 891 "input_label":"Quantity for {{ product }}", 892 "increase":"Increase quantity for {{ product }}", 893 "decrease":"Decrease quantity for {{ product }}"}, 894 "quick_view": { 895 "visit_product_page":"Visit product page", 896 "close_popup":"Close popup"}, 897 "compare_products": { 898 "popup_button":"Open compare products popup", 899 "product_button_add":"Add \u0026#39;{{ product }}\u0026#39; to compare list", 900 "product_button_remove":"Remove \u0026#39;{{ product }}\u0026#39; from compare list", 901 "quantity_error_heading":"Compare list error: ", 902 "quantity_error":"You can\u0026#39;t add more than 6 product to compare list", 903 "clear_all":"Clear all", 904 "available":"Available", 905 "in_stock":"Available", 906 "out_of_stock":"Out of stock", 907 "vendor":"Vendor", 908 "type":"Type", 909 "option":"Option {{ number }}", 910 "empty_value":"-", 911 "link":"More details"}, 912 "best_sellers": { 913 "product_title":"Product title"}, 914 "discount": { 915 "copied":"Copied"}, 916 "drawers": { 917 "size_guide":"Size guide"} 918 }, 919 "gift_cards": { 920 "issued": { 921 "title":"Here\u0026#39;s your {{ value }} gift card for {{ shop }}!", 922 "title_html":"Here's your {{ value }} gift card for {{ shop }}!", 923 "subtext":"Your gift card", 924 "gift_card_code":"Gift card code", 925 "disabled":"Disabled", 926 "expired":"Expired on {{ expiry }}", 927 "active":"Expires on {{ expiry }}", 928 "redeem_html":"Use this code at checkout to redeem your {{ value }} gift card", 929 "shop_link":"Start shopping", 930 "print":"Print this gift card", 931 "remaining_html":"{{ balance }} left", 932 "add_to_apple_wallet":"Add to Apple Wallet", 933 "qr_image_alt":"QR code â scan to redeem gift card", 934 "copy_code":"Copy code", 935 "copy_code_success":"Code copied successfully"} 936 }, 937 "newsletter": { 938 "label":"Email", 939 "success":"Thanks for subscribing", 940 "button_label":"Subscribe"}, 941 "newsletter_popup": { 942 "label":"Email", 943 "success":"Thanks for subscribing", 944 "button_label":"Subscribe"}, 945 "product_promo": { 946 "button_aria":"Quick view for {{ product_title }}", 947 "add_to_cart":"Add to cart", 948 "sold_out":"Sold out"}, 949 "promo_banner": { 950 "open_link":"Open link", 951 "open_popup":"Open a promotion products popup"} 952}; 953</script>
953<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
953<meta name="facebook-domain-verification" content="r3dwuafl86spg41zfap7fxav4vtykb"> 954<meta name="google-site-verification" content="IKI9-jGIFp8o1MBP5RKKC6R3YyLJSc-knFmYgt0WjsU"> 955<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/69969084727/digital_wallets/dialog"> 956<meta id="in-context-paypal-metadata" data-shop-id="69969084727" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="CAD"> 957<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
957<script async="async" src="/checkouts/internal/preloads.js?locale=en-CA"></script>
957 958<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
959<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-CA&shop_id=69969084727" crossorigin="anonymous"></script>
vendor: 1 bytes, line 959
959
960<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":69969084727,"countryCode":"CA","currencyCode":"CAD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/69969084727","merchantName":"Foveo Running","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","discover","interac"],"total":{"type":"pending","label":"Foveo Running","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 960
960
961<script id="shopify-features" type="application/json">{"accessToken":"0c2389f834fc854ad775da3959c2634e","betas":["rich-media-storefront-analytics"],"domain":"foveo.run","predictiveSearch":true,"shopId":69969084727,"locale":"en"}</script>
vendor: 1 bytes, line 961
961
962<script>var Shopify = Shopify || {}; 963Shopify.shop = "foveorun.myshopify.com"; 964Shopify.locale = "en"; 965Shopify.currency = {"active":"CAD","rate":"1.0"}; 966Shopify.country = "CA"; 967Shopify.theme = {"name":"Boutique - June 19 2026 Update","id":187609841975,"schema_name":"Boutique","schema_version":"2.2.2","theme_store_id":3051,"role":"main"}; 968Shopify.theme.handle = "null"; 969Shopify.theme.style = {"id":null,"handle":null}; 970Shopify.cdnHost = "foveo.run/cdn"; 971Shopify.routes = Shopify.routes || {}; 972Shopify.routes.root = "/"; 973Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 974Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 975Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 976Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 976
976
977<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 977
977
978<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 978
978
979<script> 980 window.ShopifyPay = window.ShopifyPay || {}; 981 window.ShopifyPay.apiHost = "shop.app\/pay"; 982 window.ShopifyPay.redirectState = null; 983</script>
vendor: 1 bytes, line 983
983
984<script> 985 window.Shopify = window.Shopify || {}; 986 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 987 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 988 window.Shopify.SignInWithShop.eligible = true; 989</script>
vendor: 1 bytes, line 989
989
990<script id="shop-js-analytics" type="application/json">{"pageType":"search"}</script>
vendor: 1 bytes, line 990
990
991<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 991
991
992<script type="module"> 993 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 994 995 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 996 997</script>
vendor: 1 bytes, line 997
997
998<script> 999 window.Shopify = window.Shopify || {}; 1000 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 1001 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"]}; 1002</script>
vendor: 1 bytes, line 1002
1002
1003<script>(function() { 1004 var isLoaded = false; 1005 function asyncLoad() { 1006 if (isLoaded) return; 1007 isLoaded = true; 1008 var urls = ["https:\/\/chimpstatic.com\/mcjs-connected\/js\/users\/7763c51fd87ebeacfd99fe13d\/5393d787792fadc2268ccb5ac.js?shop=foveorun.myshopify.com"]; 1009 for (var i = 0; i < urls.length; i++) { 1010 var s = document.createElement('script'); 1011 s.type = 'text/javascript'; 1012 s.async = true; 1013 s.src = urls[i]; 1014 var x = document.getElementsByTagName('script')[0]; 1015 x.parentNode.insertBefore(s, x); 1016 } 1017 }; 1018 if(window.attachEvent) { 1019 window.attachEvent('onload', asyncLoad); 1020 } else { 1021 window.addEventListener('load', asyncLoad, false); 1022 } 1023})();</script>
vendor: 1 bytes, line 1023
1023
1024<script id="__st">var __st={"a":69969084727,"offset":-25200,"reqid":"954d6789-17e7-426d-992f-4a451391e36a-1791063147","pageurl":"foveo.run\/search","u":"89e44d6ffe3f","p":"searchresults"};</script>
vendor: 1 bytes, line 1024
1024
1025<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 1025
1025
1026<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 1026
1026
1027<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//foveo.run/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 1027
1027
1028<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 = "//foveo.run/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>
1028<script crossorigin="anonymous" defer="defer" src="//foveo.run/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 1028
1028
1029<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 1029
1029
1030<script> 1031 window.Shopify = window.Shopify || {}; 1032 window.Shopify.MCP = window.Shopify.MCP || {}; 1033 window.Shopify.MCP.enabled = true; 1034 window.Shopify.MCP.shop = "foveorun.myshopify.com"; 1035 window.Shopify.MCP.mcpEndpoint = "https:\/\/foveo.run\/api\/mcp"; 1036 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 1037</script>
vendor: 1 bytes, line 1037
1037
1038<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("\/\/foveo.run\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 1039</script>
vendor: 1 bytes, line 1039
1039
1040<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://foveo.run/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 1041</script>
vendor: 1 bytes, line 1041
1041
1042<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 1043 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); 1044</script>
vendor: 1 bytes, line 1044
1044
1045<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})}})); 1046</script>
1046 1047<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://foveo.run/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 1048<style id="shopify-accelerated-checkout-cart"> 1049 #shopify-buyer-consent { 1050 margin-top: 1em; 1051 display: inline-block; 1052 width: 100%; 1053} 1054 1055#shopify-buyer-consent.hidden { 1056 display: none; 1057} 1058 1059#shopify-subscription-policy-button { 1060 background: none; 1061 border: none; 1062 padding: 0; 1063 text-decoration: underline; 1064 font-size: inherit; 1065 cursor: pointer; 1066} 1067 1068#shopify-subscription-policy-button::before { 1069 box-shadow: none; 1070} 1071 1072 </style> 1073
1074<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
1074 1075 1076
1076<script> 1077 document.querySelector("html").classList.remove("no-js"); 1078 </script>
1078 1079 <!-- BEGIN app block: shopify://apps/selly-promotion-pricing/blocks/app-embed-block/351afe80-738d-4417-9b66-e345ff249052 -->
1079<script>window.nfecShopVersion = '1791030069';window.nfecJsVersion = '449695';window.nfecCVersion = 77556</script>
1079 <!-- For special customization -->
1080<script id="tdf_pxrscript" class="tdf_script5" data-c="/fe\/loader_2.js"> 1081Shopify = window.Shopify || {}; 1082Shopify.shop = Shopify.shop || 'foveorun.myshopify.com'; 1083Shopify.SMCPP = {};Shopify.SMCPP.cer = '1.424950'; 1084</script>
vendor: 1 bytes, line 1084
1084
1085<script src="https://d5zu2f4xvqanl.cloudfront.net/42/fe/loader_2.js?shop=foveorun.myshopify.com" async data-cookieconsent="ignore"></script>
vendor: 1 bytes, line 1085
1085
1086<script> 1087!function(t){var e=function(e){var n,a;(n=t.createElement("script")).type="text/javascript",n.async=!0,n.src=e,(a=t.getElementsByTagName("script")[0]).parentNode.insertBefore(n,a)};setTimeout(function(){window.tdfInited||(window.altcdn=1,e("https://cdn.shopify.com/s/files/1/0013/1642/1703/t/1/assets/loader_2.js?shop=foveorun.myshopify.com&v=45"))},2689)}(document); 1088</script>
1088 1089<!-- END app block --><!-- BEGIN app block: shopify://apps/savedby-package-protection/blocks/savedby-storefront-widget/6d4bce9c-696c-4f95-8a15-0cc2b2b9e839 --><!-- START SAVEDBY EXTENSION --> 1090<link rel="preconnect" href="https://cdn.shopify.com" crossorigin> 1091<link rel="preconnect" href="https://cdn.shopifycdn.net" crossorigin> 1092<link rel="preconnect" href="https://cdn.savedby.io" crossorigin> 1093
1094<script> 1095 (() => { 1096 const widgetConfig = {"checkout":{"autoOptIn":false,"hidePrice":false,"popup":{},"textContent":"","title":"","variant":"LOWPRO"},"currentPlan":{"id":"sdABBd2DKLhu5LbuVGbH","isOrderSatisfaction":false},"enableConditions":{"checkout":[],"storefront":[]},"excludedProducts":[],"feeTiers":[{"max":30,"price":1.47,"variantId":52710948176183},{"max":70,"price":2.47,"variantId":52710948208951},{"max":100,"price":3.47,"variantId":52710948241719},{"max":150,"price":5.47,"variantId":52710948274487},{"max":200,"price":7.47,"variantId":52710948307255},{"max":250,"price":9.47,"variantId":52710948340023},{"max":300,"price":11.47,"variantId":52710948372791},{"max":350,"price":13.47,"variantId":52710948405559},{"max":400,"price":15.47,"variantId":52710948438327},{"max":450,"price":17.47,"variantId":52710948471095},{"max":500,"price":19.47,"variantId":52710948503863},{"max":550,"price":21.47,"variantId":52710948536631},{"max":600,"price":23.47,"variantId":52710948569399},{"max":650,"price":25.47,"variantId":52710948602167},{"max":700,"price":27.47,"variantId":52710948634935},{"max":750,"price":29.47,"variantId":52710948667703},{"max":800,"price":31.47,"variantId":52710948700471},{"max":850,"price":33.47,"variantId":52710948733239},{"max":900,"price":35.47,"variantId":52710948766007},{"max":950,"price":37.47,"variantId":52710948798775},{"max":1000,"price":39.47,"variantId":52710948831543},{"max":1050,"price":41.47,"variantId":52710948864311},{"max":1100,"price":43.47,"variantId":52710948897079},{"max":1150,"price":45.47,"variantId":52710948929847},{"max":1200,"price":47.47,"variantId":52729597952311}],"nonCoveredProducts":[],"storefront":{"autoOptIn":false,"checkoutButtonExclusions":{"attributes":[],"classNames":[]},"checkoutText":"Checkout With Protection | ${totalPriceWithFee}","customCSS":"div.sb__info-wrapper {\n margin-bottom: 10px;\n margin-top: 0px;\n}\ndiv.sb__info-container {\n border-radius: 50px;\n}\ndiv.sb__info-logo-container>img {\n height: 20px;\n}\ndiv.sb__checkout-container {\n gap: 10px;\n}\na.sb__non-covered-link {\n align-items: center;\n border: 2px solid rgb(0, 0, 0);\n border-radius: 32px;\n box-sizing: border-box;\n color: white;\n background-color: black;\n display: inline-flex;\n font-family: Inter, sans-serif;\n font-size: 16px;\n font-weight: 500;\n justify-content: center;\n letter-spacing: normal;\n line-height: 1.5;\n min-height: 54px;\n opacity: unset;\n padding: 0 6px;\n text-decoration: none;\n text-transform: capitalize;\n transition: opacity .2s linear;\n width: 100%;\n}\na.sb__non-covered-link:hover {\n opacity: .8;\n}\ndiv.sb__checkout-container {\n flex-direction: column-reverse;\n}\n\n","info":{"description":"Package Protection","title":"SavedBy"},"optOutText":"Checkout Without Protection | ${totalPrice}","useOnlyAjaxToRemove":false,"variant":"BASIC","version":"v7.0.0-beta.41"},"widgetExcludedProducts":[]}; 1097 1098 1099 window.SavedBy = { 1100 cart: {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"CAD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}, 1101 countryCode: "CA", 1102 1103 customer: null, 1104 1105 settings: {"useDefaultFontFamily":true,"fontFamily":{"error":"json not allowed for this object"},"hideSubtotal":true,"showCartTotal":true,"showCompareAtPrice":false,"showInlineCartButton":false,"swapButtonOrder":false,"parentMarginBottom":4,"infoIconUrl":"https:\/\/cdn.savedby.io\/logos\/savedby\/SavedByLogo-small.png","infoBGColor":"#f5f5f5","infoTextColor":"#000000","infoVariant":"SIMPLE","continueTextColor":"#000000","continueFontSize":15,"continueButtonLocation":"END","disclaimerLocation":"bottom","disclaimer":"","customCheckoutSelector":"","customCSS":":host {\n --container-max-width: inherit;\n \n --info-bg-color: inherit;\n --info-border-radius: inherit;\n --info-text-color: inherit;\n --info-font-family: inherit;\n --info-font-size: inherit;\n --info-title-text-color: inherit;\n --info-title-font-size: inherit;\n --info-desc-text-color: inherit;\n --info-desc-font-size: inherit;\n --info-fee-text-color: inherit;\n --info-fee-font-size: inherit;\n --info-help-color: inherit;\n \n --info-help-size: inherit;\n --btn-cart-bg-color: inherit;\n --btn-cart-text-color: inherit;\n \n --continue-text-color: inherit;\n --continue-font-size: inherit;\n --continue-font-family: inherit;\n --continue-text-decoration: inherit;\n \n --disclaimer-text-color: inherit;\n --disclaimer-font-size: inherit;\n --disclaimer-font-family: inherit;\n --disclaimer-text-decoration: inherit;\n --disclaimer-font-style: inherit;\n}","customJS":"document.head.insertAdjacentHTML(\"beforeend\", `\u003cstyle\u003e\n [slot=\"savedby-checkout-button\"] .cart-footer__button-label {\n padding-inline-end: 0 !important;\n margin-inline-end: 0 !important;\n border-inline-end: 0 !important;\n }\n [slot=\"savedby-checkout-button\"] .cart-footer__subtotal-value {display: none;}\n [slot=\"savedby-checkout-button\"].button.button--secondary::after {\n display: none !important;\n }\n\n button[slot=\"savedby-checkout-button\"] {\n background-color: #f5f5f5 !important;\n color: black !important;\n transition: background-color .2s linear;\n }\n\n button[slot=\"savedby-checkout-button\"]:hover {\n background-color: #dedede !important;\n }\n\u003c\/style\u003e`);","popupOverride":""}, 1106 shop: "foveo.run", 1107 config: widgetConfig, 1108 subMap: {}, 1109 status: "ACTIVE", 1110 exchangeRate: {"amount":"100.0","currency_code":"CAD"}, 1111 protectionProduct: "gid://shopify/Product/10886990364983", 1112 1113 }; 1114 1115 if (!window.SavedBy?.config?.storefront?.version) console.error('[SAVEDBY] Missing SFW version'); 1116 1117 // DEV OVERRIDE VERSION 1118 const devVersion = localStorage.getItem('SAVEDBY_DEV_VERSION'); 1119 if (devVersion?.match(/^v\d+\.\d+\.\d+-beta\.\d+$/)) window.SavedBy.config.storefront.version = devVersion; 1120 1121 // CHECK IF SAVEDBY SHOULD RUN 1122 1123 // STOP IF NOT ACTIVE AND NOT IN DEV MODE 1124 if (window.SavedBy.status !== "ACTIVE" && !localStorage.getItem('SAVEDBY_DEV')) { 1125 console.warn("[SAVEDBY] status", window.SavedBy.status) 1126 return 1127 } 1128 1129 1130 1131 const assetUrl = "https://cdn.shopify.com/extensions/01a0fe97-9fe3-702b-91e2-233814efb9ab/savedby-1-487/assets/VERSION.js"; 1132 1133 fetch('/products/savedby-package-protection.json') 1134 .then((r) => r.json()) 1135 .then((data) =>{ 1136 window.SavedBy.product = data.product; 1137 }); 1138 1139 const cart = {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"CAD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}; 1140 const savedByLineItem = cart.items.find((item) => item.vendor === 'SavedBy'); 1141 1142 // if (savedByLineItem || '_SavedBy-internal' in cart.attributes) { 1143 if (savedByLineItem) { 1144 let savedByRemovedCount = localStorage.getItem('savedByRemovedCount'); 1145 1146 if (!widgetConfig?.storefront?.useOnlyAjaxToRemove && (savedByRemovedCount || 0) < 3) { 1147 // USE REDIRECT TO REMOVE SAVEDBY FROM CART 1148 const { origin, pathname, search, protocol }
1148 = window.location; 1149 const url = new URL(origin + `/cart/update`); 1150 if (!savedByLineItem) return; 1151 url.searchParams.append(`updates[${savedByLineItem.id}]`, '0'); 1152 1153 // if ('_SavedBy-internal' in cart.attributes) { 1154 // url.searchParams.append(`attributes[_SavedBy-internal]`, ''); 1155 // } 1156 1157 url.searchParams.append('return_to', pathname + search); 1158 const savedByRemovedCount = +(localStorage.getItem('savedByRemovedCount') || 0); 1159 localStorage.setItem('savedByRemovedCount', (+savedByRemovedCount || 0) + 1); 1160 1161 window.location.href = url.toString(); 1162 } else { 1163 // USE AJAX TO REMOVE SAVEDBY FROM CART & RELOAD PAGE 1164 const body = {}; 1165 if (savedByLineItem) body.updates = { [savedByLineItem.id]: 0 }; 1166 // if ('_SavedBy-internal' in cart.attributes) body.attributes = { '_SavedBy-internal': null }; // TODO -- remove? 1167 1168 fetch('/cart/update.js', { 1169 method: 'POST', 1170 headers: { 'Content-Type': 'application/json' }, 1171 body: JSON.stringify(body), 1172 }).then(() => { 1173 const currentCount = +(localStorage.getItem('savedByRemovedCount') || 0); 1174 localStorage.setItem('savedByRemovedCount', currentCount + 1); 1175 1176 if (currentCount < 2) window.location.reload(); 1177 }); 1178 } 1179 } else { 1180 localStorage.removeItem('savedByRemovedCount'); 1181 // BFCACHE REFRESH IF NEEDED 1182 if (window.performance?.getEntriesByType('navigation')?.[0]?.type === 'back_forward') { 1183 window.location.reload(); 1184 } else { 1185 window.addEventListener('pageshow', (event) => { 1186 if (event.persisted) window.location.reload(); 1187 }); 1188 } 1189 } 1190 1191 safeIdleCallback(() => { 1192 const script = Object.assign(document.createElement('script'), { 1193 type: "module", 1194 async: true, 1195 src: assetUrl.replace('VERSION', window.SavedBy.config.storefront.version), 1196 // onerror: (...e) => loadWidgetAsync("https://cdn.shopify.com/extensions/01a0fe97-9fe3-702b-91e2-233814efb9ab/savedby-1-487/assets/latest.js") 1197 }) 1198 document.head.appendChild(script); 1199 }); 1200 1201 function safeIdleCallback(cb, timeout = 2000) { 1202 let called = false; 1203 1204 const invoke = () => { 1205 if (called) return; 1206 called = true; 1207 cb(); 1208 }; 1209 1210 if ('requestIdleCallback' in window) { 1211 window.requestIdleCallback(invoke); 1212 } else { 1213 // Fallback if not supported (Safari, etc.) 1214 setTimeout(() => { 1215 invoke(); 1216 }, 1); 1217 } 1218 1219 // Guarantee execution even if idle never comes 1220 setTimeout(() => { 1221 invoke(); 1222 }, timeout); 1223 } 1224 })(); 1225</script>
1225 1226 1227<style data-shopify> 1228 1229 savedby-checkout-plus { 1230 font-family: inherit; 1231 } 1232 1233 1234 savedby-checkout-plus { 1235 width: 100%; 1236 } 1237 1238 [savedby-hidden]:not(savedby-checkout-plus [savedby-hidden]) { 1239 display: none !important; 1240 } 1241</style> 1242 1243 1244 1245<!-- END SAVEDBY EXTENSION --> 1246<!-- END app block --><!-- BEGIN app block: shopify://apps/judge-me-reviews/blocks/judgeme_core/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8 --><!-- Start of Judge.me Core --> 1247 1248 1249 1250 1251 1252 1253 1254<link rel="dns-prefetch" href="https://cdn.judge.me"> 1255<link rel="dns-prefetch" href="https://cdn1.judge.me"> 1256<link rel="dns-prefetch" href="https://api.judge.me"> 1257
1258<script data-cfasync='false' class='jdgm-settings-script'>window.jdgmSettings={"pagination":5,"disable_web_reviews":false,"coupon_receiving_condition":"any_review","coupon_value_type":"percentage","coupon_value_percentage":10,"coupon_value_fixed_amount":0,"coupon_discount_type":"single","coupon_tier_text_enabled":false,"coupon_tier_text_percentage":10,"coupon_tier_text_fixed_amount":0,"coupon_tier_photo_enabled":false,"coupon_tier_photo_percentage":10,"coupon_tier_photo_fixed_amount":0,"coupon_tier_video_enabled":false,"coupon_tier_video_percentage":10,"coupon_tier_video_fixed_amount":0,"enable_coupons":false,"badge_no_review_text":"No reviews","badge_n_reviews_text":"{{ n }} review/reviews","hide_badge_preview_if_no_reviews":true,"badge_hide_text":false,"enforce_center_preview_badge":false,"widget_title":"Customer Reviews","widget_open_form_text":"Write a review","widget_close_form_text":"Cancel review","widget_refresh_page_text":"Refresh page","widget_summary_text":"Based on {{ number_of_reviews }} review/reviews","widget_no_review_text":"Be the first to write a review","widget_name_field_text":"Display name","widget_verified_name_field_text":"Verified Name (public)","widget_name_placeholder_text":"Display name","widget_required_field_error_text":"This field is required.","widget_email_field_text":"Email address","widget_verified_email_field_text":"Verified Email (private, can not be edited)","widget_email_placeholder_text":"Your email address","widget_email_field_error_text":"Please enter a valid email address.","widget_rating_field_text":"Rating","widget_review_title_field_text":"Review Title","widget_review_title_placeholder_text":"Give your review a title","widget_review_body_field_text":"Review content","widget_review_body_placeholder_text":"Start writing here...","widget_pictures_field_text":"Picture/Video (optional)","widget_submit_review_text":"Submit Review","widget_submit_verified_review_text":"Submit Verified Review","widget_submit_success_msg_with_auto_publish":"Thank y
1258ou! Please refresh the page in a few moments to see your review. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_submit_success_msg_no_auto_publish":"Thank you! Your review will be published as soon as it is approved by the shop admin. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_show_default_reviews_out_of_total_text":"Showing {{ n_reviews_shown }} out of {{ n_reviews }} reviews.","widget_show_all_link_text":"Show all","widget_show_less_link_text":"Show less","widget_author_said_text":"{{ reviewer_name }} said:","widget_days_text":"{{ n }} days ago","widget_weeks_text":"{{ n }} week/weeks ago","widget_months_text":"{{ n }} month/months ago","widget_years_text":"{{ n }} year/years ago","widget_yesterday_text":"Yesterday","widget_today_text":"Today","widget_replied_text":"\u003e\u003e {{ shop_name }} replied:","widget_read_more_text":"Read more","widget_reviewer_name_as_initial":"","widget_rating_filter_color":"#fbcd0a","widget_rating_filter_see_all_text":"See all reviews","widget_sorting_most_recent_text":"Most Recent","widget_sorting_highest_rating_text":"Highest Rating","widget_sorting_lowest_rating_text":"Lowest Rating","widget_sorting_with_pictures_text":"Only Pictures","widget_sorting_most_helpful_text":"Most Helpful","widget_open_question_form_text":"Ask a question","widget_reviews_subtab_text":"Reviews","widget_questions_subtab_text":"Questions","widget_question_label_text":"Question","widget_answer_label_text":"Answer","widget_question_placeholder_text":"Write your question here","widget_submit_question_text":"Submit Question","widget_question_submit_success_text":"Thank you for your question! We will notify you once it gets answered.","verified_badge_text":"Verified","verified_badge_bg_color":"","verified_badge_text_color":"","verified_badge_placement":"left-of-reviewer-name","widget_review_max_height":"","widget_hide_border":false,"widget_social_share":false,"widget_thumb":false,"widget_review_location_show":false,"widget_location_format":"","all_reviews_include_out_of_store_products":true,"all_reviews_out_of_store_text":"(out of store)","all_reviews_pagination":100,"all_reviews_product_name_prefix_text":"about","enable_review_pictures":true,"enable_question_anwser":false,"widget_theme":"default","review_date_format":"mm/dd/yyyy","default_sort_method":"most-recent","enable_ai_review_visibility":true,"widget_product_reviews_subtab_text":"Product Reviews","widget_shop_reviews_subtab_text":"Shop Reviews","widget_other_products_reviews_text":"Reviews for other products","widget_store_reviews_subtab_text":"Store reviews","widget_product_variant_reference_text":"Review for","widget_no_store_reviews_text":"This store hasn't received any reviews yet","widget_web_restriction_product_reviews_text":"This product hasn't received any reviews yet","widget_no_items_text":"No items found","widget_show_more_text":"Show more","widget_write_a_store_review_text":"Write a Store Review","widget_product_and_store_reviews_text":"Product and store reviews","widget_reviews_in_collection_text":"Reviews in this collection","widget_other_languages_heading":"Reviews in Other Languages","widget_translate_review_text":"Translate review to {{ language }}","widget_translating_review_text":"Translating...","widget_show_original_translation_text":"Show original ({{ language }})","widget_translate_review_failed_text":"Review couldn't be translated.","widget_translate_review_retry_text":"Retry","widget_translate_review_try_again_later_text":"Try again later","show_product_url_for_grouped_product":false,"widget_sorting_pictures_first_text":"Pictures First","show_pictures_on_all_rev_page_mobile":false,"show_pictures_on_all_rev_page_desktop":false,"floating_tab_hide_mobile_install_preference":false,"floating_tab_button_name":"â
Reviews","floating_tab_title":"Let customers speak for us","floating_tab_button_color":"","floating_tab_button_background_color":"","floating_tab_url":"","floating_tab_url_enabled":false,"floating_tab_tab_style":"text","all_reviews_text_badge_text":"Customers rate us {{ shop.metafields.judgeme.all_reviews_rating | round: 1 }}/5 based on {{ shop.metafields.judgeme.all_reviews_count }} reviews.","all_reviews_text_badge_text_branded_style":"{{ shop.metafields.judgeme.all_reviews_rating | round: 1 }} out of 5 stars based on {{ shop.metafields.judgeme.all_reviews_count }} reviews","is_all_reviews_text_badge_a_link":false,"show_stars_for_all_reviews_text_badge":false,"all_reviews_text_badge_url":"","all_reviews_text_style":"branded","all_reviews_text_color_style":"judgeme_brand_color","all_reviews_text_color":"#108474","all_reviews_text_show_jm_brand":true,"featured_carousel_show_header":true,"featured_carousel_title":"Let customers speak for us","testimonials_carousel_title":"Customers are saying","videos_carousel_title":"Real customer stories","cards_carousel_title":"Customers are saying","featured_carousel_count_text":"from {{ n }} reviews","featured_carousel_add_link_to_all_reviews_page":false,"featured_carousel_url":"","featured_carousel_show_images":true,"featured_carousel_autoslide_interval":5,"featured_carousel_arrows_on_the_sides":false,"featured_carousel_height":250,"featured_carousel_width":80,"featured_carousel_image_size":0,"featured_carousel_image_height":250,"featured_carousel_arrow_color":"#eeeeee","verified_count_badge_style":"branded","verified_count_badge_orientation":"horizontal","verified_count_badge_color_style":"judgeme_brand_color","verified_count_badge_color":"#108474","is_verified_count_badge_a_link":false,"verified_count_badge_url":"","verified_count_badge_show_jm_brand":true,"widget_rating_preset_default":5,"widget_first_sub_tab":"product-reviews","widget_show_histogram":true,"widget_histogram_use_custom_color":false,"widget_pagination_use_custom_color":false,"widget_star_use_custom_color":false,"widget_verified_badge_use_custom_color":false,"widget_write_review_use_custom_color":false,"picture_reminder_submit_button":"Upload Pictures","enable_review_videos":false,"mute_video_by_default":false,"widget_sorting_videos_first_text":"Videos First","widget_review_pending_text":"Pending","featured_carousel_items_for_large_screen":3,"social_share_options_order":"Facebook,Twitter","remove_microdata_snippet":true,"disable_json_ld":false,"enable_json_ld_products":false,"preview_badge_show_question_text":false,"preview_badge_no_question_text":"No questions","preview_badge_n_question_text":"{{ number_of_questions }} question/questions","qa_badge_show_icon":false,"qa_badge_position":"same-row","remove_judgeme_branding":true,"widget_add_search_bar":false,"widget_search_bar_placeholder":"Search","widget_sorting_verified_only_text":"Verified only","widget_sorting_most_relevant_text":"Most Relevant","featured_carousel_theme":"default","featured_carousel_show_rating":true,"featured_carousel_show_title":true,"featured_carousel_show_body":true,"featured_carousel_show_date":false,"featured_carousel_show_reviewer":true,"featured_carousel_show_product":false,"featured_carousel_header_background_color":"#108474","featured_carousel_header_text_color":"#ffffff","featured_carousel_name_product_separator":"reviewed","featured_carousel_full_star_background":"#108474","featured_carousel_empty_star_background":"#dadada","featured_carousel_vertical_theme_background":"#f9fafb","featured_carousel_verified_badge_enable":true,"featured_carousel_verified_badge_color":"#108474","featured_carousel_border_style":"round","featured_carousel_review_line_length_limit":3,"featured_carousel_more_reviews_button_text":"Read more reviews","featured_carousel_view_product_button_text":"View product","all_reviews_page_load_reviews_on":"scroll","all_reviews_page_load_more_text":"Load More Reviews","disable_fb_tab_reviews":false,"enable_ajax_cdn_cache":false,"widget_advanced_speed_features":5,"widget_public_name_text":"displayed publicly like","default_reviewer_name":"John Smith","default_reviewer_name_has_non_latin":true,"widget_reviewer_anonymous":"Anonymous","medals_widget_title":"Judge.me Review Medals","medals_widget_background_color":"#f9fafb","medals_widget_position":"footer_all_pages","medals_widget_border_color":"#f9fafb","medals_widget_verified_text_position":"left","medals_widget_use_monochromatic_version":false,"medals_widget_elements_color":"#108474","show_reviewer_avatar":true,"widget_invalid_yt_video_url_error_text":"Not a YouTube video URL","widget_max_length_field_error_text":"Please enter no more than {0} characters.","widget_show_country_flag":false,"widget_show_collected_via_shop_app":true,"widget_verified_by_shop_badge_style":"light","widget_verified_by_shop_text":"Verified by Shop","widget_show_photo_gallery":false,"widget_load_with_code_splitting":true,"widget_ugc_install_preference":false,"widget_ugc_title":"Made by us, Shared by you","widget_ugc_subt
1258itle":"Tag us to see your picture featured in our page","widget_ugc_arrows_color":"#ffffff","widget_ugc_primary_button_text":"Buy Now","widget_ugc_primary_button_background_color":"#108474","widget_ugc_primary_button_text_color":"#ffffff","widget_ugc_primary_button_border_width":"0","widget_ugc_primary_button_border_style":"none","widget_ugc_primary_button_border_color":"#108474","widget_ugc_primary_button_border_radius":"25","widget_ugc_secondary_button_text":"Load More","widget_ugc_secondary_button_background_color":"#ffffff","widget_ugc_secondary_button_text_color":"#108474","widget_ugc_secondary_button_border_width":"2","widget_ugc_secondary_button_border_style":"solid","widget_ugc_secondary_button_border_color":"#108474","widget_ugc_secondary_button_border_radius":"25","widget_ugc_reviews_button_text":"View Reviews","widget_ugc_reviews_button_background_color":"#ffffff","widget_ugc_reviews_button_text_color":"#108474","widget_ugc_reviews_button_border_width":"2","widget_ugc_reviews_button_border_style":"solid","widget_ugc_reviews_button_border_color":"#108474","widget_ugc_reviews_button_border_radius":"25","widget_ugc_reviews_button_link_to":"judgeme-reviews-page","widget_ugc_show_post_date":true,"widget_ugc_max_width":"800","widget_rating_metafield_value_type":true,"widget_primary_color":"#108474","widget_enable_secondary_color":false,"widget_secondary_color":"#edf5f5","widget_summary_average_rating_text":"{{ average_rating }} out of 5","widget_media_grid_title":"Customer photos \u0026 videos","widget_media_grid_see_more_text":"See more","widget_round_style":false,"widget_show_product_medals":true,"widget_verified_by_judgeme_text":"Verified by Judge.me","widget_show_store_medals":true,"widget_verified_by_judgeme_text_in_store_medals":"Verified by Judge.me","widget_media_field_exceed_quantity_message":"Sorry, we can only accept {{ max_media }} for one review.","widget_media_field_exceed_limit_message":"{{ file_name }} is too large, please select a {{ media_type }} less than {{ size_limit }}MB.","widget_review_submitted_text":"Review Submitted!","widget_question_submitted_text":"Question Submitted!","widget_close_form_text_question":"Cancel","widget_write_your_answer_here_text":"Write your answer here","widget_enabled_branded_link":true,"widget_show_collected_by_judgeme":true,"widget_reviewer_name_color":"","widget_write_review_text_color":"","widget_write_review_bg_color":"","widget_collected_by_judgeme_text":"collected by Judge.me","widget_pagination_type":"standard","widget_load_more_text":"Load More","widget_load_more_color":"#108474","widget_full_review_text":"Full Review","widget_read_more_reviews_text":"Read More Reviews","widget_read_questions_text":"Read Questions","widget_questions_and_answers_text":"Questions \u0026 Answers","widget_verified_by_text":"Verified by","widget_verified_text":"Verified","widget_number_of_reviews_text":"{{ number_of_reviews }} reviews","widget_back_button_text":"Back","widget_next_button_text":"Next","widget_custom_forms_filter_button":"Filters","custom_forms_style":"horizontal","widget_show_review_information":false,"how_reviews_are_collected":"How reviews are collected?","widget_show_review_keywords":false,"widget_gdpr_statement":"How we use your data: We'll only contact you about the review you left, and only if necessary. By submitting your review, you agree to Judge.me's \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms\u003c/a\u003e, \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy\u003c/a\u003e and \u003ca href='https://judge.me/content-policy' target='_blank' rel='nofollow noopener'\u003econtent\u003c/a\u003e policies.","widget_multilingual_sorting_enabled":false,"widget_translate_review_content_enabled":false,"widget_translate_review_content_method":"manual","popup_widget_review_selection":"automatically_with_pictures","popup_widget_round_border_style":true,"popup_widget_show_title":true,"popup_widget_show_body":true,"popup_widget_show_reviewer":false,"popup_widget_show_product":true,"popup_widget_show_pictures":true,"popup_widget_use_review_picture":true,"popup_widget_show_on_home_page":true,"popup_widget_show_on_product_page":true,"popup_widget_show_on_collection_page":true,"popup_widget_show_on_cart_page":true,"popup_widget_position":"bottom_left","popup_widget_first_review_delay":5,"popup_widget_duration":5,"popup_widget_interval":5,"popup_widget_review_count":5,"popup_widget_hide_on_mobile":true,"popup_widget_source_mode":"auto","popup_widget_page_product":"current_product","popup_widget_page_collection":"current_collection","popup_widget_page_cart":"cart_mode","popup_widget_page_home":"all","popup_widget_star_rating":"all","popup_widget_review_type":"all","popup_widget_top_up_thin_pages":true,"popup_widget_corner_styling":"soft","review_snippet_widget_round_border_style":true,"review_snippet_widget_card_color":"#FFFFFF","review_snippet_widget_text_color":"#000000","review_snippet_widget_lighter_text_color":"#7B7B7B","review_snippet_widget_slider_arrows_background_color":"#FFFFFF","review_snippet_widget_slider_arrows_color":"#000000","review_snippet_widget_star_color":"#108474","show_product_variant":false,"all_reviews_product_variant_label_text":"Variant: ","widget_show_verified_branding":false,"widget_ai_summary_title":"Customers say","widget_ai_summary_disclaimer":"Summarized and selected by AI from recent customer reviews","widget_show_ai_summary":false,"widget_show_ai_summary_bg":false,"write_review_button_visibility":"everyone","store_summary_widget_heading":"Customers rate this store","store_summary_widget_button_text":"View customer reviews","store_summary_widget_button_theme_text":"See AI reviews summary","widget_show_review_title_input":true,"widget_autofill_review_title":true,"redirect_reviewers_invited_via_email":"external_form","request_store_review_after_product_review":true,"request_review_other_products_in_order":true,"review_form_color_scheme":"default","review_form_corner_style":"square","review_form_star_color":"#108474","review_form_text_color":"#333333","review_form_background_color":"#ffffff","review_form_field_background_color":"#fafafa","review_form_button_color":"#108474","review_form_button_text_color":"#ffffff","review_form_modal_overlay_color":"#000000","review_form_theme":"multi_step","review_form_location":"in_store_popup","review_form_external_page_background_color":"#C5F7F0","review_content_screen_title_text":"How would you rate this product?","review_content_introduction_text":"We would love it if you would share a bit about your experience.","store_review_form_title_text":"How would you rate this store?","store_review_form_introduction_text":"We would love it if you would share a bit about your experience.","show_review_guidance_text":true,"one_star_review_guidance_text":"Poor","five_star_review_guidance_text":"Great","customer_information_screen_title_text":"About you","customer_information_introduction_text":"Please tell us more about you.","custom_questions_screen_title_text":"Your experience in more detail","custom_questions_introduction_text":"Here are a few questions to help us understand more about your experience.","review_submitted_screen_title_text":"Thanks for your review!","review_submitted_screen_thank_you_text":"We are processing it and it will appear on the store soon.","review_submitted_screen_email_verification_text":"Please confirm your email by clicking the link we just sent you. This helps us keep reviews authentic.","confirm_email_screen_title_text":"Confirm your email","confirm_email_screen_message_text":"To help keep reviews authentic, we'll send you a secure link to continue writing your review. It only takes a moment.","check_email_screen_title_text":"Check your email","check_email_screen_message_text":"We sent you an email to {{ email }}. Click the button on the email to continue.","check_email_screen_resend_message_text":"Email resent!","check_email_resend_hint_text":"Didn't get the email? Check your spam folder or [resend the email].","verification_email_rate_limit_error_text":"You've reached the limit for review attempts on this product. Please check your inbox or try again later.","review_submitted_request_store_review_text":"Would you like to share your experience of shopping with us?","review_submitted_review_other_products_text":"Would you like to review these products?","store_review_screen_title_text":"Would you like to share your experience of shopping with us?","store_review_introduction_text":"We value your feedback and use it to improve. Please share any thoughts or suggestions you have.","reviewer_media_screen_title_picture_text":"Share a picture","reviewer_media_introduction_picture_text":"Upload a photo to support your review.","reviewer_media_screen_title_video_text":"Share a video","reviewer_media_introduction_video_text":"Upload a video to support your review.","reviewer_media_screen_title_picture_or_video_text":"Share a picture or video","reviewer_media_introduction_picture_or_video_text":"Upload a photo or video to support your review.","reviewer_media_
1258youtube_url_text":"Paste your Youtube URL here","advanced_settings_next_step_button_text":"Next","advanced_settings_close_review_button_text":"Close","modal_write_review_flow":true,"write_review_flow_required_text":"Required","write_review_flow_privacy_message_text":"We respect your privacy.","write_review_flow_anonymous_text":"Post review as anonymous","write_review_flow_visibility_text":"This won't be visible to other customers.","write_review_flow_multiple_selection_help_text":"Select as many as you like","write_review_flow_single_selection_help_text":"Select one option","write_review_flow_required_field_error_text":"This field is required","write_review_flow_invalid_email_error_text":"Please enter a valid email address","write_review_flow_max_length_error_text":"Max. {{ max_length }} characters.","write_review_flow_media_upload_text":"\u003cb\u003eClick to upload\u003c/b\u003e or drag and drop","write_review_flow_gdpr_statement":"We'll only contact you about your review if necessary. By submitting your review, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","rating_only_reviews_enabled":false,"show_negative_reviews_help_screen":false,"new_review_flow_help_screen_rating_threshold":3,"negative_review_resolution_screen_title_text":"Tell us more","negative_review_resolution_text":"Your experience matters to us. If there were issues with your purchase, we're here to help. Feel free to reach out to us, we'd love the opportunity to make things right.","negative_review_resolution_button_text":"Contact us","negative_review_resolution_proceed_with_review_text":"Leave a review","negative_review_resolution_subject":"Issue with purchase from {{ shop_name }}.{{ order_name }}","coupon_promo_intro_any_review_text":"Write a review and get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_photo_text":"Write a review and add a photo or video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_video_text":"Write a review and add a video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_up_to_any_review_text":"Write a review and get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_up_to_with_photo_text":"Write a review and add a photo or video to get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_external_text":"Write a review and get a reward for your next purchase","coupon_promo_intro_external_with_photo_text":"Write a review and add a photo or video to get a reward for your next purchase","coupon_promo_intro_external_with_video_text":"Write a review and add a video to get a reward for your next purchase","coupon_promo_media_photo_text":"Add a photo or video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_photo_only_text":"Add a photo and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_video_text":"Add a video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_external_photo_text":"Add a photo or video and get a reward for your next purchase","coupon_promo_media_external_photo_only_text":"Add a photo and get a reward for your next purchase","coupon_promo_media_external_video_text":"Add a video and get a reward for your next purchase","coupon_promo_success_text":"You've got a coupon for your next purchase at {{ shop_name }}!","coupon_promo_success_subtext":"You'll receive your coupon email within the hour.","preview_badge_collection_page_install_status":false,"widget_review_custom_css":"","preview_badge_custom_css":"","preview_badge_stars_count":"5-stars","featured_carousel_custom_css":"","floating_tab_custom_css":"","all_reviews_widget_custom_css":"","medals_widget_custom_css":"","verified_badge_custom_css":"","all_reviews_text_custom_css":"","transparency_badges_collected_via_store_invite":false,"transparency_badges_from_another_provider":false,"transparency_badges_collected_from_store_visitor":false,"transparency_badges_collected_by_verified_review_provider":true,"transparency_badges_earned_reward":false,"transparency_badges_collected_via_store_invite_text":"Review collected via store invitation","transparency_badges_from_another_provider_text":"Review collected from another provider","transparency_badges_collected_from_store_visitor_text":"Review collected from a store visitor","transparency_badges_written_in_google_text":"Review written in Google","transparency_badges_written_in_etsy_text":"Review written in Etsy","transparency_badges_written_in_shop_app_text":"Review written in Shop App","transparency_badges_earned_reward_text":"Review earned a reward for future purchase","product_review_widget_per_page":10,"widget_other_languages_reviews_per_page":3,"widget_store_review_label_text":"Review about the store","widget_cart_mode_aggregate_heading_text":"Customers rate this store","checkout_comment_extension_title_on_product_page":"Customer Comments","checkout_comment_extension_num_latest_comment_show":5,"checkout_comment_extension_format":"name_and_timestamp","checkout_comment_customer_name":"last_initial","checkout_comment_comment_notification":true,"preview_badge_collection_page_install_preference":false,"preview_badge_home_page_install_preference":false,"preview_badge_product_page_install_preference":false,"review_widget_install_preference":"","review_carousel_install_preference":false,"floating_reviews_tab_install_preference":"none","verified_reviews_count_badge_install_preference":false,"all_reviews_text_install_preference":false,"review_widget_best_location":false,"judgeme_medals_install_preference":false,"review_widget_revamp_enabled":false,"review_widget_qna_enabled":false,"review_widget_header_theme":"minimal","review_widget_widget_title_enabled":true,"review_widget_header_text_size":"medium","review_widget_header_text_weight":"regular","review_widget_average_rating_style":"compact","review_widget_bar_chart_enabled":true,"review_widget_bar_chart_type":"numbers","review_widget_bar_chart_style":"standard","review_widget_expanded_media_gallery_enabled":false,"review_widget_show_review_highlights":false,"review_widget_show_review_keywords_in_gray":false,"review_widget_reviews_section_theme":"standard","review_widget_image_style":"thumbnails","review_widget_review_image_ratio":"square","review_widget_stars_size":"medium","review_widget_verified_badge":"standard_text","review_widget_review_title_text_size":"medium","review_widget_review_text_size":"medium","review_widget_review_text_length":"medium","review_widget_number_of_columns_desktop":3,"review_widget_carousel_transition_speed":5,"review_widget_custom_questions_answers_display":"always","review_widget_card_section_size":"small","review_widget_button_text_color":"#FFFFFF","review_widget_text_color":"#000000","review_widget_lighter_text_color":"#7B7B7B","review_widget_corner_styling":"soft","review_widget_review_word_singular":"review","review_widget_review_word_plural"
1258:"reviews","review_widget_voting_label":"Helpful?","review_widget_shop_reply_label":"Reply from {{ shop_name }}:","review_widget_filters_title":"Filters","review_widget_filter_rating_title":"Rating","review_widget_filter_keyword_title":"Keyword","review_widget_clear_filters_text":"Clear filters","review_widget_expand_more_text":"More","review_widget_review_highlights_title":"Review highlights","qna_widget_question_word_singular":"Question","qna_widget_question_word_plural":"Questions","qna_widget_answer_reply_label":"Answer from {{ answerer_name }}:","qna_content_screen_title_text":"Ask a question about this product","qna_widget_question_required_field_error_text":"Please enter your question.","qna_widget_flow_gdpr_statement":"We'll only contact you about your question if necessary. By submitting your question, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","qna_widget_question_submitted_text":"Thanks for your question!","qna_widget_close_form_text_question":"Close","qna_widget_question_submit_success_text":"Weâll notify you by email when your question is answered.","all_reviews_widget_v2025_enabled":true,"all_reviews_widget_v2025_header_theme":"default","all_reviews_widget_v2025_widget_title_enabled":true,"all_reviews_widget_v2025_header_text_size":"medium","all_reviews_widget_v2025_header_text_weight":"regular","all_reviews_widget_v2025_average_rating_style":"compact","all_reviews_widget_v2025_bar_chart_enabled":true,"all_reviews_widget_v2025_bar_chart_type":"numbers","all_reviews_widget_v2025_bar_chart_style":"standard","all_reviews_widget_v2025_expanded_media_gallery_enabled":false,"all_reviews_widget_v2025_show_store_medals":true,"all_reviews_widget_v2025_show_photo_gallery":true,"all_reviews_widget_v2025_show_review_keywords":false,"all_reviews_widget_v2025_show_ai_summary":false,"all_reviews_widget_v2025_show_ai_summary_bg":false,"all_reviews_widget_v2025_show_review_highlights":false,"all_reviews_widget_v2025_show_review_keywords_in_gray":false,"all_reviews_widget_v2025_add_search_bar":false,"all_reviews_widget_v2025_default_sort_method":"most-recent","all_reviews_widget_v2025_reviews_per_page":10,"all_reviews_widget_v2025_reviews_section_theme":"default","all_reviews_widget_v2025_image_style":"thumbnails","all_reviews_widget_v2025_review_image_ratio":"square","all_reviews_widget_v2025_stars_size":"medium","all_reviews_widget_v2025_verified_badge":"standard_text","all_reviews_widget_v2025_review_title_text_size":"medium","all_reviews_widget_v2025_review_text_size":"medium","all_reviews_widget_v2025_review_text_length":"medium","all_reviews_widget_v2025_number_of_columns_desktop":3,"all_reviews_widget_v2025_carousel_transition_speed":5,"all_reviews_widget_v2025_custom_questions_answers_display":"always","all_reviews_widget_v2025_review_dates":false,"all_reviews_widget_v2025_card_section_size":"small","all_reviews_widget_v2025_show_product_variant":false,"all_reviews_widget_v2025_show_reviewer_avatar":true,"all_reviews_widget_v2025_reviewer_name_as_initial":"","all_reviews_widget_v2025_review_location_show":false,"all_reviews_widget_v2025_location_format":"","all_reviews_widget_v2025_show_country_flag":false,"all_reviews_widget_v2025_widget_thumb":false,"all_reviews_widget_v2025_verified_by_shop_badge_style":"light","all_reviews_widget_v2025_social_share":false,"all_reviews_widget_v2025_social_share_options_order":"Facebook,Twitter,LinkedIn,Pinterest","all_reviews_widget_v2025_pagination_type":"standard","all_reviews_widget_v2025_button_text_color":"#FFFFFF","all_reviews_widget_v2025_text_color":"#000000","all_reviews_widget_v2025_lighter_text_color":"#7B7B7B","all_reviews_widget_v2025_corner_styling":"soft","all_reviews_widget_v2025_title":"Customer reviews","all_reviews_widget_v2025_ai_summary_title":"Customers say about this store","all_reviews_widget_v2025_no_review_text":"Be the first to write a review","all_reviews_widget_v2025_review_highlights_title":"Review highlights","reviews_grid_widget_show_sample_reviews":false,"reviews_grid_widget_review_selection":"all","reviews_grid_widget_select_products":[],"reviews_grid_widget_show_media_only":false,"reviews_grid_widget_display_order":"media_first","reviews_grid_widget_card_grouping":"per_media","reviews_grid_widget_columns_desktop":3,"reviews_grid_widget_rows_desktop":3,"reviews_grid_widget_columns_mobile":2,"reviews_grid_widget_rows_mobile":6,"reviews_grid_widget_show_stars":true,"reviews_grid_widget_show_reviewer_name":true,"reviews_grid_widget_show_review_title_on_hover_desktop":true,"reviews_grid_widget_corner_styling":"soft","reviews_grid_widget_card_spacing":"medium","reviews_grid_widget_header_text_color":"#000000","reviews_grid_widget_star_and_reviewer_name_color":"#F9F9F9","reviews_grid_widget_overlay_and_background_color":"#000000","reviews_grid_widget_content_color":"#F9F9F9","reviews_grid_widget_header_text":"From our customers","reviews_grid_widget_show_average_rating":true,"trust_badge_enabled":false,"trust_badge_structure":"outline","trust_badge_color":"black","trust_badge_star":"black","trust_badge_rating_display_default":"show_avg_text","platform":"shopify","branding_url":"https://app.judge.me/reviews/stores/foveo.run","branding_text":"Powered by Judge.me","locale":"en","reply_name":"Foveo Running","shop_currency":"CAD","widget_version":"3.0","footer":true,"autopublish":true,"review_dates":true,"enable_custom_form":false,"shop_use_review_site":true,"shop_locale":"en","enable_multi_locales_translations":true,"show_review_title_input":true,"autofill_review_title":true,"review_verification_email_status":"never","require_verification_before_submit":false,"sign_in_with_
1258shop_enabled":false,"customer_account_validation_enabled":true,"most_relevant_sort_enabled":false,"coupon_promo_invited_eligible":true,"coupon_promo_web_eligible":false,"uses_coupon_integration":true,"uses_external_coupon":false,"can_be_branded":true,"rtl_stars_enabled_ar":true,"rtl_stars_enabled_he":true,"reply_name_text":"Foveo Running"};</script>
1258 <style class='jdgm-settings-style'>.jdgm-xx{left:0}:root{--jdgm-primary-color: #108474;--jdgm-secondary-color: rgba(16,132,116,0.1);--jdgm-star-color: #108474;--jdgm-write-review-text-color: white;--jdgm-write-review-bg-color: #108474;--jdgm-paginate-color: #108474;--jdgm-border-radius: 0;--jdgm-reviewer-name-color: #108474}.jdgm-histogram__bar-content{background-color:#108474}.jdgm-rev[data-verified-buyer=true] .jdgm-rev__icon.jdgm-rev__icon:after,.jdgm-rev__buyer-badge.jdgm-rev__buyer-badge{color:white;background-color:#108474}.jdgm-review-widget--small .jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}@media only screen and (min-width: 768px){.jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}}.jdgm-prev-badge[data-average-rating='0.00']{display:none !important}.jdgm-author-all-initials{display:none !important}.jdgm-author-last-initial{display:none !important}.jdgm-rev-widg__title{visibility:hidden}.jdgm-rev-widg__summary-text{visibility:hidden}.jdgm-prev-badge__text{visibility:hidden}.jdgm-rev__prod-link-prefix:before{content:'about'}.jdgm-rev__variant-label:before{content:'Variant: '}.jdgm-rev__out-of-store-text:before{content:'(out of store)'}@media only screen and (min-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}@media only screen and (max-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}.jdgm-preview-badge[data-template="product"]{display:none !important}.jdgm-preview-badge[data-template="collection"]{display:none !important}.jdgm-preview-badge[data-template="index"]{display:none !important}.jdgm-review-widget[data-from-snippet="true"]{display:none !important}.jdgm-verified-count-badget[data-from-snippet="true"]{display:none !important}.jdgm-carousel-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-all-reviews-text[data-from-snippet="true"]{display:none !important}.jdgm-medals-section[data-from-snippet="true"]{display:none !important}.jdgm-ugc-media-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_via_store_invitation"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_another_provider"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_store_visitor"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_earned_for_future_purchase"]{display:none !important}.jdgm-review-snippet-widget{--jdgm-snippet-card-color: #fff;--jdgm-snippet-text-color: #000;--jdgm-snippet-lighter-text-color: #7B7B7B;--jdgm-snippet-star-color: #108474;--jdgm-snippet-border-radius: 8px;--jdgm-snippet-arrows-bg-color: #fff;--jdgm-snippet-arrows-color: #000}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card{border-radius:8px;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card__rev-rating .jdgm-star{color:#108474}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn{border-radius:50%;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn>svg,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn>svg{fill:#000}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jm-mfp-content,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__icon,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__pic-img,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__reply{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev[data-verified-buyer="true"] .jdgm-full-rev__icon::after{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-rev__buyer-badge{border-radius:calc( 8px / 2 )}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__replier::before{content:'Foveo Running'}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__product-button{border-radius:calc( 8px * 6 )} 1259</style> <style class='jdgm-settings-style'></style> 1260 1261 1262 1263 1264 <style class='jdgm-miracle-styles'> 1265 @-webkit-keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@font-face{font-family:'JudgemeStar';src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAScAA0AAAAABrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEgAAAABoAAAAcbyQ+3kdERUYAAARgAAAAHgAAACAAMwAGT1MvMgAAAZgAAABGAAAAVi+vS9xjbWFwAAAB8AAAAEAAAAFKwBMjvmdhc3AAAARYAAAACAAAAAj//wADZ2x5ZgAAAkAAAAEJAAABdH33LXtoZWFkAAABMAAAAC0AAAA2BroQKWhoZWEAAAFgAAAAHAAAACQD5QHQaG10eAAAAeAAAAAPAAAAFAYAAABsb2NhAAACMAAAAA4AAAAOAO4AeG1heHAAAAF8AAAAHAAAACAASgAvbmFtZQAAA0wAAADeAAABkorWfVZwb3N0AAAELAAAACkAAABEp3ubLXgBY2BkYADhPPP4OfH8Nl8ZuJkYQODS2fRrCPr/aSYGxq1ALgcDWBoAO60LkwAAAHgBY2BkYGDc+v80gx4TAwgASaAICmABAFB+Arl4AWNgZGBgYGPQYWBiAAIwyQgWc2AAAwAHVQB6eAFjYGRiYJzAwMrAwejDmMbAwOAOpb8ySDK0MDAwMbByMsCBAAMCBKS5pjA4PGB4wMR44P8BBj3GrQymQGFGkBwAjtgK
1265/gAAeAFjYoAAEA1jAwAAZAAHAHgB3crBCcAwDEPRZydkih567CDdf4ZskmLwFBV8xBfCaC4BXkOUmx4sU0h2ngNb9V0vQCxaRKIAevT7fGWuBrEAAAAAAAAAAAA0AHgAugAAeAF9z79Kw1AUx/FzTm7un6QmJtwmQ5Bg1abgEGr/BAqlU6Gju+Cgg1MkQ/sA7Vj7BOnmO/gUvo2Lo14NqIO6/IazfD8HEODtmQCfoANwNsyp2/GJt3WKQrd1NLiYYWx2PBqOsmJMEOznPOTzfSCrhAtbbLdmeFLJV9eKd63WLrZcIcuaEVdssWCKM6pLCfTVOYbz/0pNSMSZKLIZpvh78sAUH6PlMrreTCabP9r+Z/puPZ2ur/RqpQHgh+MIegCnXeM4MRAPjYN//5tj4ZtTjkFqEdmeMShlEJ7tVAly2TAkx6R68Fl4E/aVvn8JqHFQ4JS1434gXKcuL31dDhzs3YbsEOAd/IU88gAAAHgBfY4xTgMxEEVfkk0AgRCioKFxQYd2ZRtpixxgRU2RfhU5q5VWseQ4JdfgAJyBlmNwAM7ABRhZQ0ORwp7nr+eZAa54YwYg9zm3ynPOeFRe8MCrciXOh/KSS76UV5L/iDmrLiS5AeU519wrL3jmSbkS5115yR2fyivJv9kx0ZMZ2RLZw27q87iNQi8EBo5FSPIMw3HqBboi5lKTGAGDp8FKXWP+t9TU01Lj5His1Ba6uM9dTEMwvrFmbf5GC/q2drW3ruXUhhsCiQOjznFlCzYhHUZp4xp76vsvQh89CQAAeAFjYGJABowM6IANLMrEyMTIzMjCXpyRWJBqZshWXJJYBKOMAFHFBucAAAAAAAAB//8AAngBY2BkYGDgA2IJBhBgAvKZGViBJAuYxwAABJsAOgAAeAFjYGBgZACCk535hiD60tn0azAaAEqpB6wAAA==") format("woff");font-weight:normal;font-style:normal}.jdgm-star{font-family:'JudgemeStar';display:inline !important;text-decoration:none !important;padding:0 4px 0 0 !important;margin:0 !important;font-weight:bold;opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jdgm-star:hover{opacity:1}.jdgm-star:last-of-type{padding:0 !important}.jdgm-star.jdgm--on:before{content:"\e000"}.jdgm-star.jdgm--off:before{content:"\e001"}.jdgm-star.jdgm--half:before{content:"\e002"}.jdgm-widget *{margin:0;line-height:1.4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch}.jdgm-hidden{display:none !important;visibility:hidden !important}.jdgm-temp-hidden{display:none}.jdgm-spinner{width:40px;height:40px;margin:auto;border-radius:50%;border-top:2px solid #eee;border-right:2px solid #eee;border-bottom:2px solid #eee;border-left:2px solid #ccc;-webkit-animation:jdgm-spin 0.8s infinite linear;animation:jdgm-spin 0.8s infinite linear}.jdgm-spinner:empty{display:block}.jdgm-prev-badge{display:block !important} 1266 1267</style> 1268 1269 1270 1271 1272 1273 1274 1275 1276
1277<script data-cfasync='false' class='jdgm-script'> 1278!function(e){window.jdgm=window.jdgm||{}; 1279/* INF-1976 */ 1280var _jdgmBlocked=function(){var raw=(window.jdgmSettings||{}).hostname_allowlist;var list=(raw==null?"":""+raw).split(/[\s,]+/).map(function(h){return h.trim().toLowerCase().replace(/\.$/,"");}).filter(function(h){return h;});if(!list.length)return false;var host=(e.location.hostname||"").toLowerCase().replace(/\.$/,"");if(/(^|\.)shopifypreview\.com$/.test(host))return false;var bare=host.replace(/^www\./,"");for(var i=0;i<list.length;i++){var en=list[i];if(en.indexOf("*.")===0){var b=en.slice(2);if(host===b||host.slice(-(b.length+1))==="."+b)return false;}else if(bare===en.replace(/^www\./,""))return false;}return true;}(); 1281if(_jdgmBlocked){jdgm._loaderExecuted=true;jdgm._blocked=true;var _jdgmS=e.createElement("style");_jdgmS.textContent='[class^="jdgm-"],[class*=" jdgm-"]{display:none !important}';(e.head||e.documentElement).appendChild(_jdgmS);return;} 1282jdgm.CDN_HOST="https://cdnwidget.judge.me/",jdgm.CDN_HOST_ALT="https://cdn2.judge.me/cdn/widget_frontend/",jdgm.API_HOST="https://api.judge.me/",jdgm.CDN_BASE_URL="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/",jdgm.CDN_API_HOST="https://cdn.judge.me/", 1283jdgm.docReady=function(d){(e.attachEvent?"complete"===e.readyState:"loading"!==e.readyState)? 1284setTimeout(d,0):e.addEventListener("DOMContentLoaded",d)},jdgm.loadCSS=function(d,t,o,a){ 1285!o&&jdgm.loadCSS.requestedUrls.indexOf(d)>=0||(jdgm.loadCSS.requestedUrls.push(d), 1286(a=e.createElement("link")).rel="stylesheet",a.class="jdgm-stylesheet",a.media="nope!", 1287a.href=d,a.onload=function(){this.media="all",t&&setTimeout(t)},e.body.appendChild(a))}, 1288jdgm.loadCSS.requestedUrls=[],jdgm.loadJS=function(e,d){var t=new XMLHttpRequest; 1289t.onreadystatechange=function(){4===t.readyState&&t.status>=200&&t.status<300&&(Function(t.response)(),d&&d(t.response))}, 1290t.open("GET",e),t.onerror=function(){if(e.indexOf(jdgm.CDN_HOST)===0&&jdgm.CDN_HOST_ALT!==jdgm.CDN_HOST){var f=e.replace(jdgm.CDN_HOST,jdgm.CDN_HOST_ALT);jdgm.loadJS(f,d)}},t.send()},jdgm.docReady((function(){(window.jdgmLoadCSS||e.querySelectorAll( 1291".jdgm-widget, .jdgm-all-reviews-page").length>0)&&(jdgmSettings.widget_load_with_code_splitting? 1292parseFloat(jdgmSettings.widget_version)>=3?jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_v3_base.css"): 1293jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_base.css"):jdgm.loadCSS(jdgm.CDN_BASE_URL+"shopify_v2.css") 1294)}))}(document); 1295</script>
1295 1296<noscript><link rel="stylesheet" type="text/css" media="all" href="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/shopify_v2.css"></noscript> 1297 1298<!-- BEGIN app snippet: theme_fix_tags -->
1298<script> 1299 (function() { 1300 var jdgmThemeFixes = {"187609841975":{"html":"","css":".jdgm-rev-snippet-card__product {\n display: none !important;\n}","js":""}}; 1301 if (!jdgmThemeFixes) return; 1302 1303 // "All themes" fix: CSS and JS applied on every theme. CSS is injected 1304 // before the per-theme fix so the theme-specific CSS wins the cascade. 1305 // HTML is never applied globally (too risky). 1306 var allThemesFix = jdgmThemeFixes['all']; 1307 if (allThemesFix && allThemesFix.css) { 1308 var allStyleTag = document.createElement('style'); 1309 allStyleTag.classList.add('jdgm-theme-fix-style-all'); 1310 allStyleTag.innerHTML = allThemesFix.css; 1311 document.head.append(allStyleTag); 1312 }; 1313 1314 if (allThemesFix && allThemesFix.js) { 1315 var allScriptTag = document.createElement('script'); 1316 allScriptTag.classList.add('jdgm-theme-fix-script-all'); 1317 allScriptTag.innerHTML = allThemesFix.js; 1318 document.head.append(allScriptTag); 1319 }; 1320 1321 var thisThemeFix = jdgmThemeFixes[Shopify.theme.id]; 1322 if (!thisThemeFix) return; 1323 1324 if (thisThemeFix.html) { 1325 document.addEventListener("DOMContentLoaded", function() { 1326 var htmlDiv = document.createElement('div'); 1327 htmlDiv.classList.add('jdgm-theme-fix-html'); 1328 htmlDiv.innerHTML = thisThemeFix.html; 1329 document.body.append(htmlDiv); 1330 }); 1331 }; 1332 1333 if (thisThemeFix.css) { 1334 var styleTag = document.createElement('style'); 1335 styleTag.classList.add('jdgm-theme-fix-style'); 1336 styleTag.innerHTML = thisThemeFix.css; 1337 document.head.append(styleTag); 1338 }; 1339 1340 if (thisThemeFix.js) { 1341 var scriptTag = document.createElement('script'); 1342 scriptTag.classList.add('jdgm-theme-fix-script'); 1343 scriptTag.innerHTML = thisThemeFix.js; 1344 document.head.append(scriptTag); 1345 }; 1346 })(); 1347</script>
1347 1348<!-- END app snippet --> 1349<!-- End of Judge.me Core --> 1350 1351 1352 1353<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366
1366<script async src="https://static.klaviyo.com/onsite/js/Ti5LQ4/klaviyo.js?company_id=Ti5LQ4"></script>
1366 1367
1367<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
1367 1368 1369 1370 1371 1372 1373 1374
1374<script> 1375 window.klaviyoReviewsProductDesignMode = false 1376 </script>
1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386<!-- END app block -->
1386<script src="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/loader.js" type="text/javascript" defer="defer"></script>
1386 1387<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1388<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: 69969084727,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "search"};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 1388
1388
1389<script> 1390 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1391</script>
vendor: 1 bytes, line 1391
1391
1392<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}
1392).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: 69969084727,storefrontBaseUrl: "https://foveo.run",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://foveo.run/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2808643895","configuration":"{\"accountID\":\"Ti5LQ4\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"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":"2693824823","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
1392,"dataSharingState":"unrestricted"},{"id":"2353561911","configuration":"{\"subdomain\":\"foveorun\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"42cd9b1f0fb7c1cae5cd21175cef6782","type":"APP","apiClientId":1615517,"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":"2318336311","configuration":"{\"mailchimp_store_id\":\"store_kmb76hlos5pirdeyl47w\", \"mailchimp_user_id\":\"198387682\",\"mailchimp_list_id\":\"9a500de58a\"}","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":"1647444279","configuration":"{\"accountID\":\"foveorun\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"4f82d0323b06a4642fbff9b42c9979eb","type":"APP","apiClientId":12388204545,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"825852215","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"AW-11222486238\\\",\\\"GT-NGJF67T\\\"],\\\"target_country\\\":\\\"CA\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"AW-11222486238\\\",\\\"AW-11222486238\\\/lbGxCKPXpMwYEN6Zpucp\\\",\\\"G-D9X1ELGTM4\\\"]},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"AW-11222486238\\\",\\\"AW-11222486238\\\/3cOdCKnXpMwYEN6Zpucp\\\",\\\"G-D9X1ELGTM4\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"AW-11222486238\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"AW-11222486238\\\",\\\"AW-11222486238\\\/wg6mCKDXpMwYEN6Zpucp\\\",\\\"MC-LV6H5KFKR6\\\",\\\"G-D9X1ELGTM4\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"AW-11222486238\\\",\\\"AW-11222486238\\\/9zi9CJrXpMwYEN6Zpucp\\\",\\\"MC-LV6H5KFKR6\\\",\\\"G-D9X1ELGTM4\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"AW-11222486238\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"AW-11222486238\\\",\\\"AW-11222486238\\\/tPBHCJ3XpMwYEN6Zpucp\\\",\\\"MC-LV6H5KFKR6\\\",\\\"G-D9X1ELGTM4\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"AW-11222486238\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"AW-11222486238\\\",\\\"AW-11222486238\\\/HR42CKzXpMwYEN6Zpucp\\\",\\\"G-D9X1ELGTM4\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"AW-11222486238\\\",\\\"AW-11222486238\\\/HOhcCKbXpMwYEN6Zpucp\\\",\\\"G-D9X1ELGTM4\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"AW-11222486238\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"391577911","configuration":"{\"pixel_id\":\"3280612225527097\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"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":"Foveo Running","paymentSettings":{"currencyCode":"CAD"},"myshopifyDomain":"foveorun.myshopify.com","countryCode":"CA","storefrontUrl":"https:\/\/foveo.run"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://foveo.run/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"187609841975","themeStoreId":"3051","themePublished":"true","eventMetadataId":"c20b9
1392128-cf5b-4dc5-8576-21ce244bb14a","pageType":"searchresults","shopId":"69969084727","storefrontBaseUrl":"https:\/\/foveo.run","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}],[\"search_submitted\",{\"searchResult\":{\"query\":\"\",\"productVariants\":[]}}]]"});})();</script>
1392<script> 1393 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1394 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1395 window.ShopifyAnalytics.meta.currency = 'CAD'; 1396 var meta = {"products":[],"page":{"pageType":"searchresults","requestId":"954d6789-17e7-426d-992f-4a451391e36a-1791063147"}}; 1397 for (var attr in meta) { 1398 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1399 } 1400</script>
vendor: 1 bytes, line 1400
1400
1401<script class="analytics"> 1402 (function () { 1403 var customDocumentWrite = function(content) { 1404 var jquery = null; 1405 1406 if (window.jQuery) { 1407 jquery = window.jQuery; 1408 } else if (window.Checkout && window.Checkout.$) { 1409 jquery = window.Checkout.$; 1410 } 1411 1412 if (jquery) { 1413 jquery('body').append(content); 1414 } 1415 }; 1416 1417 var hasLoggedConversion = function(token) { 1418 if (token) { 1419 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 1420 } 1421 return false; 1422 } 1423 1424 var setCookieIfConversion = function(token) { 1425 if (token) { 1426 var twoMonthsFromNow = new Date(Date.now()); 1427 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 1428 1429 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 1430 } 1431 } 1432 1433 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 1434 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 1435 if (trekkie.integrations) { 1436 return; 1437 } 1438 trekkie.methods = [ 1439 'identify', 1440 'page', 1441 'ready', 1442 'track', 1443 'trackForm', 1444 'trackLink' 1445 ]; 1446 trekkie.factory = function(method) { 1447 return function() { 1448 var args = Array.prototype.slice.call(arguments); 1449 args.unshift(method); 1450 trekkie.push(args); 1451 if (method == 'track' || method == 'page') { 1452 var pageUrl; 1453 try { 1454 pageUrl = window.location.href; 1455 } catch (e) {} 1456 var pageReferrer; 1457 try { 1458 pageReferrer = document.referrer; 1459 } catch (e) {} 1460 try { 1461 if (window.__TREKKIE_SHIM_QUEUE == null) { 1462 window.__TREKKIE_SHIM_QUEUE = []; 1463 } 1464 window.__TREKKIE_SHIM_QUEUE.push({ 1465 from: 'trekkie-stub', 1466 method: method, 1467 args: args.slice(1), 1468 pageContext: { 1469 url: pageUrl, 1470 referrer: pageReferrer 1471 } 1472 }); 1473 } catch (e) { 1474 // no-op 1475 } 1476 } 1477 return trekkie; 1478 }; 1479 }; 1480 for (var i = 0; i < trekkie.methods.length; i++) { 1481 var key = trekkie.methods[i]; 1482 trekkie[key] = trekkie.factory(key); 1483 } 1484 trekkie.load = function(config) { 1485 trekkie.config = config || {}; 1486 trekkie.config.initialDocumentCookie = document.cookie; 1487 var first = document.getElementsByTagName('script')[0]; 1488var script = document.createElement('script'); 1489script.type = 'text/javascript'; 1490script.onerror = function(e) { 1491 var scriptFallback = document.createElement('script'); 1492 scriptFallback.type = 'text/javascript'; 1493 scriptFallback.onerror = function(error) { 1494 var Monorail = { 1495 produce: function produce(monorailDomain, schemaId, payload) { 1496 var currentMs = new Date().getTime(); 1497 var event = { 1498 schema_id: schemaId, 1499 payload: payload, 1500 metadata: { 1501 event_created_at_ms: currentMs, 1502 event_sent_at_ms: currentMs 1503 } 1504 }; 1505 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1506 }, 1507 sendRequest: function sendRequest(endpointUrl, payload) { 1508 // Try the sendBeacon API 1509 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1510 var blobData = new window.Blob([payload], { 1511 type: 'text/plain' 1512 }); 1513 1514 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1515 return true; 1516 } // sendBeacon was not successful 1517 1518 } // XHR beacon 1519 1520 var xhr = new XMLHttpRequest(); 1521 1522 try { 1523 xhr.open('POST', endpointUrl); 1524 xhr.setRequestHeader('Content-Type', 'text/plain'); 1525 xhr.send(payload); 1526 } catch (e) { 1527 console.log(e); 1528 } 1529 1530 return false; 1531 }, 1532 isIos12: function isIos12() { 1533 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1534 } 1535 }; 1536 Monorail.produce('monorail-edge.shopifysvc.com', 1537 'trekkie_storefront_load_errors/1.1', 1538 {shop_id: 69969084727, 1539 theme_id: 187609841975, 1540 app_name: "storefront", 1541 context_url: window.location.href, 1542 source_url: "//foveo.run/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 1543 1544 }; 1545 scriptFallback.async = true; 1546 scriptFallback.src = '//foveo.run/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1547 first.parentNode.insertBefore(scriptFallback, first); 1548}; 1549script.async = true; 1550script.src = '//foveo.run/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1551first.parentNode.insertBefore(script, first); 1552 1553 }; 1554 trekkie.load( 1555 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":69969084727,"isMerchantRequest":null,"themeId":187609841975,"themeCityHash":"5667015597752215466","contentLanguage":"en","currency":"CAD","eventMetadataId":"c20b9
1555128-cf5b-4dc5-8576-21ce244bb14a"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1556 ); 1557 1558 var loaded = false; 1559 trekkie.ready(function() { 1560 if (loaded) return; 1561 loaded = true; 1562 1563 window.ShopifyAnalytics.lib = window.trekkie; 1564 1565 var originalDocumentWrite = document.write; 1566 document.write = customDocumentWrite; 1567 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1568 document.write = originalDocumentWrite; 1569 1570 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1571 var token = match? match[1]: undefined; 1572 if (!hasLoggedConversion(token)) { 1573 setCookieIfConversion(token); 1574 window.ShopifyAnalytics.lib.track("Performed Search",{"query":null},undefined,undefined,{"shopifyEmitted":true}); 1575 } 1576 }); 1577 1578 window.ShopifyAnalytics.lib.page(null,{"pageType":"searchresults","requestId":"954d6789-17e7-426d-992f-4a451391e36a-1791063147","shopifyEmitted":true}); 1579 1580 var eventsListenerScript = document.createElement('script'); 1581 eventsListenerScript.async = true; 1582 eventsListenerScript.src = "//foveo.run/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1583 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1584})();</script>
vendor: 1 bytes, line 1584
1584
1585<script 1586 defer 1587 src="https://foveo.run/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 1588 data-application="storefront-renderer" 1589 data-shop-id="69969084727" 1590 data-render-region="gcp-us-central1" 1591 data-page-type="search" 1592 data-theme-instance-id="187609841975" 1593 data-theme-name="Boutique" 1594 data-theme-version="2.2.2" 1595 data-monorail-region="shop_domain" 1596 data-resource-timing-sampling-rate="10" 1597 data-shs="true" 1598 data-shs-beacon="true" 1599 data-shs-export-with-fetch="true" 1600 data-shs-logs-sample-rate="1" 1601 data-shs-beacon-endpoint="https://foveo.run/api/collect" 1602></script>
1602 1603<meta name="shopify-y" content="a1c4ee63-33e5-4055-a80c-33f3e1ab87f2" data-expiration="1822620747000"><meta name="shopify-s" content="2996acfb-4727-48e9-bf45-dfd89f9d007d" data-expiration="1791064947000"><meta name="new-cookie-storage-activated" content="t"> 1604</head><body class="template-search"> 1605 <a 1606 href="#MainContent" 1607 class="skip-content-link visually-hidden" 1608 >Skip to content</a><!-- BEGIN sections: header-group-with-cart-drawer --> 1609<div id="shopify-section-sections--27075726999863__announcement-bar" class="shopify-section shopify-section-group-header-group-with-cart-drawer"> 1610 1611� 1612 <style> 1613 .announcement-bar { 1614 display: flex; 1615 width: 100%; 1616 --animateEnd: -50%; 1617 } 1618 1619 .announcement-bar.is-hidden { 1620 display: none; 1621 } 1622 .announcement-bar__container { 1623 position: relative; 1624 min-height: 48px; 1625 display: flex; 1626 width: 100%; 1627 padding: 12px 0; 1628 background-color: var(--background-color); 1629 } 1630 .announcement-bar__container.announcement-bar__container--with-image { 1631 background-image: var(--bg-image); 1632 background-position: var(--bg-image-pos); 1633 } 1634 .announcement-bar__container.announcement-bar__container--bg-repeat { 1635 background-repeat: repeat; 1636 } 1637 .announcement-bar__container.announcement-bar__container--bg-cover { 1638 background-repeat: no-repeat; 1639 background-size: cover; 1640 } 1641 1642 .announcement-bar .announcement-bar__content { 1643 position: relative; 1644 display: flex; 1645 justify-content: center; 1646 align-items: center; 1647 column-gap: 16px; 1648 row-gap: 12px; 1649 width: 100%; 1650 padding-left: 56px; 1651 padding-right: 56px; 1652 } 1653 .announcement-bar .announcement-bar__content.announcement-bar__content--no-close-btn { 1654 padding-left: 16px; 1655 padding-right: 16px; 1656 } 1657 1658 .announcement-bar .announcement-bar__ticker { 1659 width: calc(100% + 56px * 2); 1660 position: relative; 1661 display: flex; 1662 justify-content: flex-start; 1663 align-items: center; 1664 overflow: hidden; 1665 margin-left: -56px; 1666 margin-right: -56px; 1667 } 1668 1669 .announcement-bar .announcement-bar__ticker:not(.is-loading) .announcement-bar__ticker-item { 1670 opacity: 1; 1671 animation-name: animate; 1672 animation-duration: var(--mobile-movement-speed); 1673 animation-timing-function: linear; 1674 animation-delay: var(--timing-base); 1675 animation-iteration-count: infinite; 1676 } 1677 1678 .announcement-bar .announcement-bar__ticker.announcement-bar__ticker--small-offset { 1679 width: calc(100% + 16px * 2); 1680 margin-left: -16px; 1681 margin-right: -16px; 1682 } 1683 1684 .announcement-bar .announcement-bar__content.announcement-bar__content--grid { 1685 flex-direction: column; 1686 } 1687 1688 .announcement-bar .announcement-bar__text-content-wrapper { 1689 display: flex; 1690 flex-wrap: wrap; 1691 justify-content: center; 1692 align-items: center; 1693 column-gap: 16px; 1694 row-gap: 8px; 1695 text-align: center; 1696 } 1697 .announcement-bar .announcement-bar__slider-wrapper { 1698 position: relative; 1699 width: 100%; 1700 max-width: 600px; 1701 min-width: 0; 1702 padding: 0 25px; 1703 } 1704 1705 .announcement-bar .announcement-bar__slider { 1706 text-align: center; 1707 margin: -6px 0; 1708 } 1709 1710 .announcement-bar .announcement-bar__slider:not(.swiper-initialized) { 1711 width: 100%; 1712 overflow: hidden; 1713 } 1714 .announcement-bar .announcement-bar__slider:not(.swiper-initialized) .swiper-wrapper { 1715 display: flex; 1716 align-items: center; 1717 outline: 1px solid red; 1718 } 1719 .announcement-bar .announcement-bar__slider:not(.swiper-initialized) .swiper-slide { 1720 flex-shrink: 0; 1721 width: 100%; 1722 height: 100%; 1723 position: relative; 1724 transition-property: transform; 1725 display: block; 1726 } 1727 1728 .announcement-bar .announcement-bar__slider.announcement-bar__slider--gradient::before { 1729 content: ""; 1730 position: absolute; 1731 top: 0; 1732 left: 0; 1733 right: 0; 1734 height: 6px; 1735 z-index: 2; 1736 background: linear-gradient(360deg, rgba(255,255,255,0) 0%, var(--background-color) 100%); 1737 transition-property: top, opacity; 1738 transition-duration: 0.2s; 1739 } 1740 1741 .announcement-bar .announcement-bar__slider.announcement-bar__slider--gradient::after { 1742 content: ""; 1743 position: absolute; 1744 bottom: 0; 1745 left: 0; 1746 right: 0; 1747 height: 6px; 1748 z-index: 2; 1749 background: linear-gradient(180deg, rgba(255,255,255,0) 0%, var(--background-color) 100%);R 1750 transition-property: bottom, opacity; 1751 transition-duration: 0.2s; 1752 1753 } 1754 1755 .announcement-bar .announcement-bar__slide-container { 1756 padding: 6px 10px; 1757 display: flex; 1758 flex-direction: column; 1759 height: 100%; 1760 justify-content: center; 1761 } 1762 1763 .announcement-bar .swiper-button-prev, 1764 .announcement-bar .swiper-button-next { 1765 width: 24px; 1766 height: 24px; 1767 margin: 0; 1768 padding: 0; 1769 transform: translateY(-50%); 1770 color: var(--text-color); 1771 } 1772 1773 .announcement-bar .swiper-button-prev:focus-visible, 1774 .announcement-bar .swiper-button-next:focus-visible { 1775 outline: 2px solid currentColor; 1776 } 1777 1778 .announcement-bar .swiper-button-prev::after, 1779 .announcement-bar .swiper-button-next::after { 1780 display: none; 1781 } 1782 .announcement-bar .swiper-button-prev { 1783 inset-inline-start: 0; 1784 inset-inline-end: auto; 1785 } 1786 .announcement-bar .swiper-button-next { 1787 inset-inline-start: auto; 1788 inset-inline-end: 0; 1789 } 1790 .announcement-bar .announcement-bar__text { 1791 font-size: calc(var(--body-font-size) * 0.875); 1792 font-weight: 500; 1793 line-height: 1.28; 1794 text-align: center; 1795 color: var(--text-color, #000000); 1796 } 1797 1798 .announcement-bar .announcement-bar__text.announcement-bar__text--timer { 1799 font-weight: 400;
1800 color: var(--text-timer-color, #535353); 1801 } 1802 1803 .announcement-bar .announcement-bar__text p { 1804 word-break: break-word; 1805 } 1806 .announcement-bar .announcement-bar__text p + * { 1807 margin-top: 5px; 1808 } 1809 .announcement-bar .announcement-bar__text a { 1810 color: var(--bar-link-color, #000000); 1811 } 1812 .announcement-bar .announcement-bar__text a:focus-visible { 1813 outline: 2px solid var(--bar-link-color, #000000); 1814 } 1815 .announcement-bar .announcement-bar__text.announcement-bar__text--desktop { 1816 display: none; 1817 } 1818 .announcement-bar .announcement-bar__timer { 1819 flex-shrink: 0; 1820 font-size: calc(var(--body-font-size) * 0.875); 1821 font-weight: 500; 1822 line-height: 1.28; 1823 color: var(--text-color, #000000); 1824 } 1825 .announcement-bar .announcement-bar__timer-value { 1826 display: inline-block; 1827 min-width: 0.7em; 1828 } 1829 .announcement-bar .announcement-bar__timer-value.is-hidden { 1830 display: none; 1831 } 1832 .announcement-bar .announcement-bar__link { 1833 display: inline-block; 1834 flex-shrink: 0; 1835 padding: 7px 15px; 1836 border: 1px solid var(--button-border, #000000); 1837 background-color: var(--button-background, #000000); 1838 font-size: calc(var(--body-font-size) * 0.875); 1839 line-height: 1.28; 1840 text-decoration: none; 1841 color: var(--button-color, #ffffff); 1842 min-width: 80px; 1843 } 1844 1845 .announcement-bar .announcement-bar__link::after { 1846 background-color: var(--button-background-hover, #757575); 1847 } 1848 @media (-moz-touch-enabled: 0), (hover: hover), (pointer: fine) { 1849 .announcement-bar .announcement-bar__link:hover { 1850 border-color: var(--button-border-hover, #757575); 1851 color: var(--button-color-hover, #000000); 1852 } 1853 } 1854 .announcement-bar .announcement-bar__menu { 1855 display: flex; 1856 justify-content: center; 1857 flex-wrap: wrap; 1858 column-gap: 16px; 1859 row-gap: 6px; 1860 } 1861 .announcement-bar .announcement-bar__menu-link { 1862 font-size: calc(var(--body-font-size) * 0.875); 1863 font-weight: 500; 1864 line-height: 1.28; 1865 -webkit-text-decoration-color: transparent; 1866 text-decoration-color: transparent; 1867 color: var(--bar-link-color, #000000); 1868 transition-property: -webkit-text-decoration-color; 1869 transition-property: text-decoration-color; 1870 transition-duration: var(--timing-base); 1871 } 1872 .announcement-bar .announcement-bar__menu-link:focus-visible { 1873 outline: 2px solid var(--bar-link-color, #000000); 1874 } 1875 @media (-moz-touch-enabled: 0), (hover: hover), (pointer: fine) { 1876 .announcement-bar .announcement-bar__menu-link:hover { 1877 -webkit-text-decoration-color: var(--bar-link-color, #000000); 1878 text-decoration-color: var(--bar-link-color, #000000); 1879 } 1880 } 1881 .announcement-bar .announcement-bar__button-close { 1882 position: absolute; 1883 top: 50%; 1884 inset-inline-end: 16px; 1885 width: 24px; 1886 height: 24px; 1887 margin: 0; 1888 padding: 0; 1889 color: var(--button-cross-color, #000000); 1890 transform: translateY(-50%); 1891 transition-property: color; 1892 transition-duration: var(--timing-short); 1893 } 1894 1895 .announcement-bar .announcement-bar__button-close .icon { 1896 width: 100%; 1897 height: 100%; 1898 fill: var(--background-color); 1899 } 1900 1901 .announcement-bar .announcement-bar__button-close:focus-visible { 1902 outline: 2px solid var(--button-cross-color, #000000); 1903 outline-offset: 2px; 1904 } 1905 1906 .announcement-bar .announcement-bar__button-close:hover { 1907 color: var(--button-cross-hover); 1908 } 1909 1910 .announcement-bar .announcement-bar__ticker-item { 1911 display: inline-flex; 1912 align-items: center; 1913 white-space: nowrap; 1914 will-change: transform; 1915 opacity: 0; 1916 transition-property: opacity; 1917 transition-duration: var(--timing-base); 1918 } 1919 1920 .announcement-bar .announcement-bar__ticker-item p, 1921 .announcement-bar .announcement-bar__ticker-item ol, 1922 .announcement-bar .announcement-bar__ticker-item ul, 1923 .announcement-bar .announcement-bar__ticker-item h1, 1924 .announcement-bar .announcement-bar__ticker-item h2, 1925 .announcement-bar .announcement-bar__ticker-item h3, 1926 .announcement-bar .announcement-bar__ticker-item h4, 1927 .announcement-bar .announcement-bar__ticker-item h5, 1928 .announcement-bar .announcement-bar__ticker-item h6 { 1929 position: relative; 1930 display: inline-flex; 1931 gap: 0.3em; 1932 margin: 0; 1933 padding: 0 16px; 1934 } 1935 1936 .announcement-bar .announcement-bar__ticker-item p::after, 1937 .announcement-bar .announcement-bar__ticker-item ol::after, 1938 .announcement-bar .announcement-bar__ticker-item ul::after, 1939 .announcement-bar .announcement-bar__ticker-item h1::after, 1940 .announcement-bar .announcement-bar__ticker-item h2::after, 1941 .announcement-bar .announcement-bar__ticker-item h3::after, 1942 .announcement-bar .announcement-bar__ticker-item h4::after, 1943 .announcement-bar .announcement-bar__ticker-item h5::after, 1944 .announcement-bar .announcement-bar__ticker-item h6::after { 1945 content: ""; 1946 position: absolute; 1947 top: 50%; 1948 inset-inline-end: 0; 1949 display: block; 1950 width: 4px; 1951 height: 4px; 1952 border-radius: 50%; 1953 background-color: var(--text-color); 1954 transform: translate(50%, -50%); 1955 } 1956 1957 .announcement-bar .announcement-bar__ticker-item.announcement-bar__ticker-item--hide-bullets p::after, 1958 .announcement-bar .announcement-bar__ticker-item.announcement-bar__ticker-item--hide-bullets ol::after, 1959 .announcement-bar .announcement-bar__ticker-item.announcement-bar__ticker-item--hide-bullets ul::after, 1960 .announcement-bar .announcement-bar__ticker-item.announcement-bar__ticker-item--hide-bullets h1::after, 1961 .announcement-bar .announcement-bar__ticker-item.announcement-bar__ticker-item--hide-bullets h2::after, 1962 .announcement-bar .announcement-bar__ticker-item.announcement-bar__ticker-item--hide-bullets h3::after, 1963 .announcement-bar .announcement-bar__ticker-item.announcement-bar__ticker-item--hide-bullets h4::after, 1964 .announcement-bar .announcement-bar__ticker-item.announcement-bar__ticker-item--hide-bullets h5::after, 1965 .announcement-bar .announcement-bar__ticker-item.announcement-bar__ticker-item--hide-bullets h6::after { 1966 display: none; 1967 } 1968 1969 .announcement-bar .announcement-bar__ticker-item.after-hidden p:last-child::after, 1970 .announcement-bar .announcement-bar__ticker-item.after-hidden ul:last-child::after { 1971 display: none; 1972 } 1973 1974 .announcement-bar__ticker-item:focus-within { 1975 animation-play-state: paused; 1976 } 1977 1978 .announcement-bar .announcement-bar__column.announcement-bar__column-content { 1979 display: flex; 1980 justify-content: center; 1981 width: 100%; 1982 min-width: 0; 1983 } 1984 1985 .announcement-bar .announcement-bar__column.announcement-bar__column--contact { 1986 text-align: center; 1987 } 1988 1989 .announcement-bar .announcement-bar__column.announcement-bar__column--contact:not(:has(.announcement-bar__contact)) { 1990 display: none; 1991 } 1992 1993 .announcement-bar .announcement-bar__contact { 1994 display: flex; 1995 align-items: center; 1996 gap: 12px; 1997 } 1998 1999 .announcement-bar .announcement-bar__contact-icon { 2000 display: flex;
2001 color: var(--text-color, #000000); 2002 } 2003 2004 .announcement-bar .announcement-bar__contact-text { 2005 font-size: calc(var(--body-font-size) * 0.875); 2006 color: var(--text-color, #000000); 2007 font-weight: 500; 2008 line-height: 1.28; 2009 word-break: break-word; 2010 } 2011 2012 @media (-moz-touch-enabled: 0), (hover: hover), (pointer: fine) { 2013 .announcement-bar .announcement-bar__contact-text a:hover { 2014 -webkit-text-decoration-color: var(--bar-link-color, #000000); 2015 text-decoration-color: var(--bar-link-color, #000000); 2016 } 2017 } 2018 2019 @media (min-width: 768px) { 2020 .announcement-bar .announcement-bar__content { 2021 justify-content: center; 2022 } 2023 .announcement-bar .announcement-bar__text-content-wrapper { 2024 flex-direction: row; 2025 align-items: center; 2026 } 2027 2028 .announcement-bar .announcement-bar__menu { 2029 column-gap: 32px; 2030 row-gap: 8px; 2031 } 2032 } 2033 2034 @media (min-width: 1200px) { 2035 .announcement-bar__container { 2036 width: calc(100% - 32px); 2037 margin-top: 16px; 2038 margin-left: auto; 2039 margin-right: auto; 2040 border-radius: var(--global-border-radius); 2041 } 2042 2043 .announcement-bar .announcement-bar__content.announcement-bar__content--grid { 2044 flex-direction: row; 2045 } 2046 2047 .announcement-bar .announcement-bar__text.announcement-bar__text--desktop { 2048 display: block; 2049 } 2050 .announcement-bar .announcement-bar__text.announcement-bar__text--mobile { 2051 display: none; 2052 } 2053 2054 .announcement-bar .announcement-bar__contact-text a { 2055 font-size: calc(var(--body-font-size) * 0.875); 2056 color: var(--text-color, #000000); 2057 font-weight: 500; 2058 line-height: 1.28; 2059 word-break: break-word; 2060 -webkit-text-decoration-color: transparent; 2061 text-decoration-color: transparent; 2062 color: var(--bar-link-color, #000000); 2063 transition-property: -webkit-text-decoration-color; 2064 transition-property: text-decoration-color; 2065 transition-duration: var(--timing-base); 2066 } 2067 2068 .announcement-bar .announcement-bar__contact-text a:focus-visible { 2069 outline: 2px solid var(--bar-link-color, #000000); 2070 } 2071 2072 .announcement-bar .announcement-bar__column.announcement-bar__column--contact { 2073 display: flex; 2074 flex: 1 0 272px; 2075 } 2076 2077 .announcement-bar .announcement-bar__column.announcement-bar__column--contact:not(:has(.announcement-bar__contact)) { 2078 display: flex; 2079 } 2080 2081 .announcement-bar .announcement-bar__column.announcement-bar__column--contact-start { 2082 justify-content: flex-start; 2083 text-align: start; 2084 } 2085 2086 .announcement-bar .announcement-bar__column.announcement-bar__column--contact-end { 2087 justify-content: flex-end; 2088 text-align: end; 2089 } 2090 2091 .announcement-bar .announcement-bar__ticker:not(.is-loading) .announcement-bar__ticker-item { 2092 animation-duration: var(--desktop-movement-speed); 2093 } 2094 2095 .announcement-bar .announcement-bar__ticker.announcement-bar__ticker--incomplete-width { 2096 width: 100%; 2097 margin-left: 0; 2098 margin-right: 0; 2099 } 2100 2101 .announcement-bar .announcement-bar__ticker.announcement-bar__ticker--gradient::after { 2102 content: ""; 2103 position: absolute; 2104 top: 0; 2105 left: 0; 2106 bottom: 0; 2107 width: 30px; 2108 z-index: 1; 2109 background: linear-gradient(270deg, rgba(255,255,255,0) 0%, var(--background-color) 100%); 2110 } 2111 2112 .announcement-bar .announcement-bar__ticker.announcement-bar__ticker--gradient::before { 2113 content: ""; 2114 position: absolute; 2115 top: 0; 2116 inset-inline-start: 0; 2117 bottom: 0; 2118 width: 30px; 2119 z-index: 1; 2120 background: linear-gradient(90deg, rgba(255,255,255,0) 0%, var(--background-color) 100%); 2121 } 2122 } 2123 2124 @media (-moz-touch-enabled: 0), (hover: hover), (pointer: fine) { 2125 .announcement-bar__ticker:hover .announcement-bar__ticker-item { 2126 animation-play-state: paused; 2127 } 2128 } 2129 2130 body.rtl .announcement-bar { 2131 --animateEnd: 50%; 2132 } 2133 2134 @keyframes animate { 2135 0% { 2136 transform: translateX(0%); 2137 } 2138 2139 100% { 2140 transform: translateX(var(--animateEnd)); 2141 } 2142 } 2143 2144 </style> 2145 2146 <section class="announcement-bar js-announcement-bar is-hidden" style="--background-color:#00837b;--text-color:#ffffff;--text-timer-color:#535353;--bar-link-color:#000000;--button-color:#ffffff;--button-background:#000000;--button-border:#000000;--button-cross-color:#000000;--button-color-hover:#000000;--button-background-hover:#757575;--button-border-hover:#757575;--button-cross-hover:#757575;--desktop-movement-speed:50s;--mobile-movement-speed:35s;"> 2147 <div class="announcement-bar__container announcement-bar__container--bg-cover "> 2148 <div class=" 2149 announcement-bar__content 2150 2151 2152 "> 2153 <div class="announcement-bar__column announcement-bar__column-content"><div class="announcement-bar__text announcement-bar__text--desktop rte"><p>FAST SAME OR NEXT BUSINESS DAY SHIPPING FREE WITH ORDERS OVER $100</p><p></p></div> 2154 2155 <div class="announcement-bar__text announcement-bar__text--mobile rte"><p>FAST SAME OR NEXT BUSINESS DAY SHIPPING FREE WITH ORDERS OVER $100</p></div></div> 2156 � 2157 <button class="announcement-bar__button-close js-bar-closer" 2158 aria-label="Close announcement bar" 2159 type="button"> 2160 2161 2162 <svg class="icon" width="24" height="24" aria-hidden="true" focusable="false" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2163 <path d="M12 22C17.5 22 22 17.5 22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 2164 <path d="M9.16992 14.8299L14.8299 9.16992" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 2165 <path d="M14.8299 14.8299L9.16992 9.16992" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 2166 </svg> 2167 2168 2169 </button> 2170 2171 </div> 2172 </div> 2173 </section> 2174 2175
2175<script> 2176 (function() { 2177 const section = document.querySelector(".js-announcement-bar"); 2178 2179 if (checkIsBarAllowedToShow()) { 2180 section.classList.remove("is-hidden"); 2181 } 2182 2183 const observer = new IntersectionObserver((entries) => { 2184 for (const entry of entries) { 2185 const bounds = entry.boundingClientRect; 2186 2187 changeCssVariable('--announcement-bar-height', ` ${bounds.height}px`); 2188 } 2189 2190 observer.disconnect(); 2191 }); 2192 2193 observer.observe(section); 2194 2195 function changeCssVariable(variable, value) { 2196 requestAnimationFrame(() => { 2197 document.documentElement.style.setProperty(variable, value); 2198 }); 2199 } 2200 2201 function checkIsBarAllowedToShow() { 2202 const sessionShowBar = JSON.parse(sessionStorage.getItem("showAnnouncementBar")); 2203 return sessionShowBar === null; 2204 } 2205 })(); 2206 </script>
2206 2207 2208 2209 2210 2211 2212 <link rel="modulepreload" href="//foveo.run/cdn/shop/t/23/assets/section-announcement-bar.build.min.js?v=56003267070835897191781878711" as="script" crossorigin="anonymous"> 2213
2213<script src="//foveo.run/cdn/shop/t/23/assets/section-announcement-bar.build.min.js?v=56003267070835897191781878711" type="module" crossorigin="anonymous"></script>
2213 2214 <link rel="modulepreload" href="//foveo.run/cdn/shop/t/23/assets/ticker-5f728d7f.js?v=44680634301155148621781878762" as="script" crossorigin="anonymous"> 2215 2216</div><div id="shopify-section-sections--27075726999863__header" class="shopify-section shopify-section-group-header-group-with-cart-drawer header-section"> 2217�<style> 2218 :root { 2219 --header-position: static; 2220 --header-background: #f9f3df; 2221 --header-background-transparent: rgba(0, 0, 0, 0.1); 2222 --header-background-blur: 4px; 2223 --header-mobile-menu-bg: #f9f3df; 2224 --header-text-color: #101010; 2225 --header-main-mega-menu-text-color: #535353; 2226 --header-main-mega-menu-background-color: #ffffff; 2227 --header-main-mega-menu-text-color-selected: #000000; 2228 --header-main-mega-menu-background-color-selected: #ffffff; 2229 --header-transparent-text-color: #ffffff; 2230 --header-text-color-half: rgba(16, 16, 16, 0.55); 2231 --header-icon-color: #101010; 2232 --header-transparent-icon-color: #ffffff; 2233 --header-count-text-color: #ffffff; 2234 --header-transparent-count-text-color: #1d1d1d; 2235 --header-count-text-bg: #480c14; 2236 --header-transparent-count-text-bg: #ffffff; 2237 --header-megamenu-overlay: ; 2238 --header-megamenu-image-text: #ffffff; 2239 --header-height-sticky: 0px; 2240 --header-box-shadow:0px 4px 11px 0px rgb(0 0 0 / 10%);; 2241 } 2242</style><header 2243 class="header header--menu-bottom� js-header" 2244 data-open-menu-type="hover" 2245 2246 2247 data-static-header 2248 2249 2250 2251 2252><div 2253 class="header__container" 2254 data-header-container 2255 2256 > 2257 2258 <div class="header__top-container"> 2259 <div class="header__top-left-col"></div><div class="header__logo"> 2260 <span class="visually-hidden"> 2261 Store logo" 2262 </span><a 2263 href="/" 2264 class="header__heading-link" 2265 aria-label="Foveo Running" 2266 ><img 2267 srcset="//foveo.run/cdn/shop/files/FoveoRunning_HorzLogo_FullColour-01_208dc146-b47c-4426-a066-c47d29b35a33.png?v=1778368870&width=250 1x, //foveo.run/cdn/shop/files/FoveoRunning_HorzLogo_FullColour-01_208dc146-b47c-4426-a066-c47d29b35a33.png?v=1778368870&width=500 2x" 2268 src="//foveo.run/cdn/shop/files/FoveoRunning_HorzLogo_FullColour-01_208dc146-b47c-4426-a066-c47d29b35a33.png?v=1778368870&width=250" 2269 alt="foveo" 2270 class="header__heading-logo" 2271 height="39" 2272 width="250" 2273 style="--img-desktop-pos: 50.0% 50.0%;" 2274 /></a></div><div class="header__utils-top"> 2275 <div class="header__icons"><button 2276 type="button" 2277 class="header__icon header__icon--search" 2278 data-target="headerDrawerSearch" 2279 data-js-toggle="searchToggleDrawer" 2280 aria-expanded="false" 2281 aria-controls="headerDrawerSearch" 2282 aria-label="Search" 2283 > 2284 2285 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2286 <path d="M17.1218 17.122L21.9998 22M10.8498 2C13.2938 2 15.5068 2.99 17.1078 4.592C18.5556 6.03977 19.4567 7.94476 19.6574 9.98239C19.8581 12.02 19.3461 14.0642 18.2086 15.7667C17.0711 17.4691 15.3785 18.7245 13.4192 19.3189C11.4599 19.9133 9.35508 19.8099 7.46343 19.0264C5.57178 18.2429 4.01032 16.8277 3.0451 15.022C2.07988 13.2163 1.77062 11.1318 2.17003 9.12364C2.56943 7.11548 3.65277 5.30794 5.23548 4.00899C6.81818 2.71003 8.80231 2.00005 10.8498 2Z" stroke="currentColor" stroke-width="1.5"/> 2287 </svg> 2288 2289</button> 2290 2291 <a 2292 href="/search" 2293 class="header__icon header__icon--search no-js" 2294 aria-label="Search" 2295 > 2296 2297 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2298 <path d="M17.1218 17.122L21.9998 22M10.8498 2C13.2938 2 15.5068 2.99 17.1078 4.592C18.5556 6.03977 19.4567 7.94476 19.6574 9.98239C19.8581 12.02 19.3461 14.0642 18.2086 15.7667C17.0711 17.4691 15.3785 18.7245 13.4192 19.3189C11.4599 19.9133 9.35508 19.8099 7.46343 19.0264C5.57178 18.2429 4.01032 16.8277 3.0451 15.022C2.07988 13.2163 1.77062 11.1318 2.17003 9.12364C2.56943 7.11548 3.65277 5.30794 5.23548 4.00899C6.81818 2.71003 8.80231 2.00005 10.8498 2Z" stroke="currentColor" stroke-width="1.5"/> 2299 </svg> 2300 2301</a><a 2302 href="https://foveo.run/customer_authentication/redirect?locale=en®ion_country=CA" 2303 class="header__icon header__icon--account" 2304 2305 aria-label="Log in" 2306 2307 > 2308 2309 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2310 <path d="M12 2C6.477 2 2 6.477 2 12C2 17.523 6.477 22 12 22C17.523 22 22 17.523 22 12C22 6.477 17.523 2 12 2Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2311 <path d="M4.27148 18.346C4.27148 18.346 6.50048 15.5 12.0005 15.5C17.5005 15.5 19.7305 18.346 19.7305 18.346M12.0005 12C12.7961 12 13.5592 11.6839 14.1218 11.1213C14.6844 10.5587 15.0005 9.79565 15.0005 9C15.0005 8.20435 14.6844 7.44129 14.1218 6.87868C13.5592 6.31607 12.7961 6 12.0005 6C11.2048 6 10.4418 6.31607 9.87916 6.87868C9.31655 7.44129 9.00048 8.20435 9.00048 9C9.00048 9.79565 9.31655 10.5587 9.87916 11.1213C10.4418 11.6839 11.2048 12 12.0005 12Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2312 </svg> 2313 2314</a><a href="/cart" class="header__icon header__icon--cart no-js"> 2315 2316 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2317 <path d="M14.0003 5C14.0003 4.46957 13.7896 3.96086 13.4145 3.58579C13.0395 3.21071 12.5308 3 12.0003 3C11.4699 3 10.9612 3.21071 10.5861 3.58579C10.211 3.96086 10.0003 4.46957 10.0003 5M19.2603 9.696L20.6453 18.696C20.6891 18.9808 20.6709 19.2718 20.5917 19.5489C20.5126 19.8261 20.3746 20.0828 20.187 20.3016C19.9995 20.5204 19.7668 20.6961 19.505 20.8167C19.2433 20.9372 18.9585 20.9997 18.6703 21H5.33032C5.04195 21 4.75699 20.9377 4.49496 20.8173C4.23294 20.6969 4.00005 20.5212 3.81226 20.3024C3.62448 20.0836 3.48624 19.8267 3.40702 19.5494C3.32781 19.2721 3.30949 18.981 3.35332 18.696L4.73832 9.696C4.81097 9.22359 5.0504 8.79282 5.41324 8.4817C5.77609 8.17059 6.23835 7.9997 6.71632 8H17.2843C17.7621 7.99994 18.2241 8.17094 18.5868 8.48203C18.9494 8.79312 19.1877 9.22376 19.2603 9.696Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2318 </svg> 2319 2320<span class="visually-hidden">Cart drawer. 2321 </span> 2322 2323 <span 2324 class="header__cart-count" 2325 data-cart-count="0" 2326 > 2327 <span class="visually-hidden"> 2328 Cart item count" 2329 </span> 2330 2331 <span>0</span> 2332 </span> 2333 </a><button 2334 type="button" 2335 class="header__icon header__icon--cart" 2336 data-target="CartDrawer" 2337 data-js-toggle="CartDrawer" 2338 aria-expanded="false" 2339 aria-controls="CartDrawer" 2340 > 2341 2342 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2343 <path d="M14.0003 5C14.0003 4.46957 13.7896 3.96086 13.4145 3.58579C13.0395 3.21071 12.5308 3 12.0003 3C11.4699 3 10.9612 3.21071 10.5861 3.58579C10.211 3.96086 10.0003 4.46957 10.0003 5M19.2603 9.696L20.6453 18.696C20.6891 18.9808 20.6709 19.2718 20.5917 19.5489C20.5126 19.8261 20.3746 20.0828 20.187 20.3016C19.9995 20.5204 19.7668 20.6961 19.505 20.8167C19.2433 20.9372 18.9585 20.9997 18.6703 21H5.33032C5.04195 21 4.75699 20.9377 4.49496 20.8173C4.23294 20.6969 4.00005 20.5212 3.81226 20.3024C3.62448 20.0836 3.48624 19.8267 3.40702 19.5494C3.32781 19.2721 3.30949 18.981 3.35332 18.696L4.73832 9.696C4.81097 9.22359 5.0504 8.79282 5.41324 8.4817C5.77609 8.17059 6.23835 7.9997 6.71632 8H17.2843C17.7621 7.99994 18.2241 8.17094 18.5868 8.48203C18.9494 8.79312 19.1877 9.22376 19.2603 9.696Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2344 </svg> 2345 2346<span class="visually-hidden">Cart drawer. 2347 </span> 2348 2349 <span 2350 class="header__cart-count js-header-cart-item-count-wrapper" 2351 data-cart-count="0" 2352 > 2353 <span class="visually-hidden"> 2354 Cart item count" 2355 </span> 2356 2357 <span class="js-header-cart-item-count">0</span> 2358 </span> 2359 </button></div> 2360 </div> 2361 </div> 2362 2363
2364 <div class="header__burger-menu-button-wrapper"> 2365 <button 2366 class="header__burger-menu-button js-header-drawer-toggler js-main-menu-toggler" 2367 type="button" 2368 data-target="headerDrawerMenu" 2369 data-js-toggle="headerToggleMenuDrawer" 2370 aria-expanded="false" 2371 aria-controls="headerDrawerMenu" 2372 aria-label="Open drawer menu" 2373 > 2374 2375 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2376 <path d="M3 7H21" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/> 2377 <path d="M3 12H21" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/> 2378 <path d="M3 17H21" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/> 2379 </svg> 2380 2381</button> 2382 </div><div class="header__menu"><nav class="header-menu" aria-label="Main navigation"> 2383 <ul class="header-menu__list header-menu__list--main"><li class="js-header-dropdown-menu-element"><a 2384 class="header-menu__item header-menu__item--first-level no-js" 2385 href="/collections/footwear" 2386 2387 > 2388 <span class="header-menu__item-text"> 2389 FOOTWEAR 2390 </span> 2391 </a> 2392 <a 2393 href="/collections/footwear" 2394 class="header-menu__item header-menu__item--first-level js-header-mega-menu-toggler" 2395 data-target="headerMegaMenu:footwear" 2396 aria-controls="headerMegaMenu:footwear" 2397 aria-expanded="false" 2398 style="--highlight-color: #000000; --highlight-background-color: rgba(0,0,0,0); --highlight-color-transparent: #ffffff; --highlight-background-color-transparent: rgba(0,0,0,0);" 2399 ><span 2400 class="header-menu__item-text" 2401 > 2402 FOOTWEAR 2403 </span><span class="header-menu__item-toggle-icon"> 2404 2405 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2406 <path d="M19.9201 8.9502L13.4001 15.4702C12.6301 16.2402 11.3701 16.2402 10.6001 15.4702L4.08008 8.9502" stroke="currentColor" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 2407 </svg> 2408 2409</span></a> 2410 �<div 2411 id="headerMegaMenu:footwear" 2412 class="header-mega-menu is-hidden js-header-mega-menu" 2413> 2414 <span class="visually-hidden">Mega menu</span> 2415 2416 <div class="header-mega-menu__container js-header-mega-menu-content"> 2417 <div class="header-mega-menu__block header-mega-menu__block--menu header-mega-menu__block--menu-rows"> 2418 <ul class="header-mega-menu__menu"> 2419 � 2420 2421 <li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent need-animate" style="transition-delay: 0.2s;"><a 2422 href="/collections/footwear/women" 2423 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 2424 2425 > 2426 �<span class="header-mega-menu__menu-item-text">Women's Footwear</span> 2427 </a> 2428 2429 <ul 2430 class="header-mega-menu__menu header-mega-menu__menu--nested
2430is-active" 2431 ><li class="header-mega-menu__menu-item-wrapper"> 2432 <a 2433 class="header-mega-menu__menu-item" 2434 href="/collections/trail-shoes/women" 2435 2436 > 2437 �<span class="header-mega-menu__menu-item-text">Trail</span> 2438 </a> 2439 </li><li class="header-mega-menu__menu-item-wrapper"> 2440 <a 2441 class="header-mega-menu__menu-item" 2442 href="/collections/road-shoes/women" 2443 2444 > 2445 �<span class="header-mega-menu__menu-item-text">Road</span> 2446 </a> 2447 </li><li class="header-mega-menu__menu-item-wrapper"> 2448 <a 2449 class="header-mega-menu__menu-item" 2450 href="/collections/gym-shoes/women" 2451 2452 > 2453 �<span class="header-mega-menu__menu-item-text">Gym</span> 2454 </a> 2455 </li><li class="header-mega-menu__menu-item-wrapper"> 2456 <a 2457 class="header-mega-menu__menu-item" 2458 href="/collections/recovery/women" 2459 2460 > 2461 �<span class="header-mega-menu__menu-item-text">Recovery</span> 2462 </a> 2463 </li><li class="header-mega-menu__menu-item-wrapper"> 2464 <a 2465 class="header-mega-menu__menu-item" 2466 href="/collections/hike/women" 2467 2468 > 2469 �<span class="header-mega-menu__menu-item-text">Hike</span> 2470 </a> 2471 </li></ul></li> 2472 2473 <li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent need-animate" style="transition-delay: 0.4s;"><a 2474 href="/collections/footwear/men" 2475 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 2476 2477 > 2478 �<span class="header-mega-menu__menu-item-text">Men's Footwear</span> 2479 </a> 2480 2481 <ul 2482 class="header-mega-menu__menu header-mega-menu__menu--nested
2482is-active" 2483 ><li class="header-mega-menu__menu-item-wrapper"> 2484 <a 2485 class="header-mega-menu__menu-item" 2486 href="/collections/trail-shoes/men" 2487 2488 > 2489 �<span class="header-mega-menu__menu-item-text">Trail</span> 2490 </a> 2491 </li><li class="header-mega-menu__menu-item-wrapper"> 2492 <a 2493 class="header-mega-menu__menu-item" 2494 href="/collections/road-shoes/men" 2495 2496 > 2497 �<span class="header-mega-menu__menu-item-text">Road</span> 2498 </a> 2499 </li><li class="header-mega-menu__menu-item-wrapper"> 2500 <a 2501 class="header-mega-menu__menu-item" 2502 href="/collections/gym-shoes/men" 2503 2504 > 2505 �<span class="header-mega-menu__menu-item-text">Gym</span> 2506 </a> 2507 </li><li class="header-mega-menu__menu-item-wrapper"> 2508 <a 2509 class="header-mega-menu__menu-item" 2510 href="/collections/recovery/men" 2511 2512 > 2513 �<span class="header-mega-menu__menu-item-text">Recovery</span> 2514 </a> 2515 </li><li class="header-mega-menu__menu-item-wrapper"> 2516 <a 2517 class="header-mega-menu__menu-item" 2518 href="/collections/hike/men" 2519 2520 > 2521 �<span class="header-mega-menu__menu-item-text">Hike</span> 2522 </a> 2523 </li></ul></li> 2524 2525 <li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent need-animate" style="transition-delay: 0.6s;"><h3 2526 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 2527 > 2528 �<span class="header-mega-menu__menu-item-text">Footwear Brands</span> 2529 </h3> 2530 2531 2532 <ul 2533 class="header-mega-menu__menu header-mega-menu__menu--nested
2533is-active" 2534 ><li class="header-mega-menu__menu-item-wrapper"> 2535 <a 2536 class="header-mega-menu__menu-item" 2537 href="/collections/altra" 2538 2539 > 2540 �<span class="header-mega-menu__menu-item-text">Altra</span> 2541 </a> 2542 </li><li class="header-mega-menu__menu-item-wrapper"> 2543 <a 2544 class="header-mega-menu__menu-item" 2545 href="/collections/inov8" 2546 2547 > 2548 �<span class="header-mega-menu__menu-item-text">Inov8</span> 2549 </a> 2550 </li><li class="header-mega-menu__menu-item-wrapper"> 2551 <a 2552 class="header-mega-menu__menu-item" 2553 href="/collections/la-sportiva" 2554 2555 > 2556 �<span class="header-mega-menu__menu-item-text">La Sportiva</span> 2557 </a> 2558 </li><li class="header-mega-menu__menu-item-wrapper"> 2559 <a 2560 class="header-mega-menu__menu-item" 2561 href="/collections/nnormal" 2562 2563 > 2564 �<span class="header-mega-menu__menu-item-text">Nnormal</span> 2565 </a> 2566 </li><li class="header-mega-menu__menu-item-wrapper"> 2567 <a 2568 class="header-mega-menu__menu-item" 2569 href="/collections/norda" 2570 2571 > 2572 �<span class="header-mega-menu__menu-item-text">Norda</span> 2573 </a> 2574 </li><li class="header-mega-menu__menu-item-wrapper"> 2575 <a 2576 class="header-mega-menu__menu-item" 2577 href="/collections/oofos" 2578 2579 > 2580 �<span class="header-mega-menu__menu-item-text">Oofos</span> 2581 </a> 2582 </li><li class="header-mega-menu__menu-item-wrapper"> 2583 <a 2584 class="header-mega-menu__menu-item" 2585 href="/collections/saucony" 2586 2587 > 2588 �<span class="header-mega-menu__menu-item-text">Saucony</span> 2589 </a> 2590 </li><li class="header-mega-menu__menu-item-wrapper"> 2591 <a 2592 class="header-mega-menu__menu-item" 2593 href="/collections/topo" 2594 2595 > 2596 �<span class="header-mega-menu__menu-item-text">Topo</span> 2597 </a> 2598 </li></ul></li></ul> 2599 </div><div class="header-mega-menu__block header-mega-menu__block--images"><div class="header-mega-menu__block header-mega-menu__block--image header-mega-menu__block--image-multiple"><a href="/products/endorphin-speed-5-men" class="header-mega-menu__image-wrapper header-mega-menu__image-wrapper--hover" style="transition-delay: 0.5s"><picture class="lazy"> 2600 <source 2601 data-srcset="//foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_298x.jpg?v=1778373925 1x, //foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_596x.jpg?v=1778373925 2x" 2602 srcset="//foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_10x.jpg?v=1778373925 1x, //foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_20x.jpg?v=1778373925 2x" 2603 media="(max-width: 1500px)" 2604 width="298" 2605 height="429" 2606 /> 2607 2608 <img 2609 class="header-mega-menu__image" 2610 data-src="//foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_390x.jpg?v=1778373925" 2611 data-srcset="//foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_390x.jpg?v=1778373925 1x, //foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_780x.jpg?v=1778373925 2x" 2612 src="//foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_10x.jpg?v=1778373925" 2613 srcset="//foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_10x.jpg?v=1778373925 1x, //foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_20x.jpg?v=1778373925 2x" 2614 alt="" 2615 style="--img-desktop-pos: 50.0% 50.0%;" 2616 width="390" 2617 height="480" 2618 > 2619 </picture> 2620 2621 <div class="header-mega-menu__image-overlay"></div><div class="header-mega-menu__image-text-content"><div class="header-mega-menu__image-heading">MEN'S SAUCONY SPEED 5</div><p class="header-mega-menu__image-subheading">Built for speed</p></div></a></div><div class="header-mega-menu__block header-mega-menu__block--image header-mega-menu__block--image-multiple"><a href="/products/cadi-women" class="header-mega-menu__image-wrapper header-mega-menu__image-wrapper--hover" style="transition-delay: 0.25s;"><picture class="lazy"> 2622 <source 2623 data-srcset="//foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_298x.jpg?v=1778373930 1x, //foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_596x.jpg?v=1778373930 2x" 2624 srcset="//foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_10x.jpg?v=1778373930 1x, //foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_20x.jpg?v=1778373930 2x" 2625 media="(max-width: 1500px)" 2626 width="298" 2627 height="429" 2628 /> 2629 2630 <img 2631 class="header-mega-menu__image" 2632 data-src="//foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_390x.jpg?v=1778373930" 2633 data-srcset="//foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_390x.jpg?v=1778373930 1x, //foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_780x.jpg?v=1778373930 2x" 2634 src="//foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_10x.jpg?v=1778373930" 2635 srcset="//foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_10x.jpg?v=1778373930 1x, //foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_20x.jpg?v=1778373930 2x" 2636 alt="" 2637 style="--img-desktop-pos: 50.0% 50.0%;" 2638 width="390" 2639 height="480" 2640 > 2641 </picture> 2642 2643 <div class="header-mega-menu__image-overlay"></div><div class="header-mega-menu__image-text-content"><div class="header-mega-menu__image-heading">WOMEN'S NNORMAL CADI</div><p class="header-mega-menu__image-subheading">Tackle any terrain</p></div></a></div></div></div> 2644</div> 2645</li><li class="js-header-dropdown-menu-element"><a 2646 class="header-menu__item header-menu__item--first-level no-js" 2647 href="/collections/apparel" 2648 2649 > 2650 <span class="header-menu__item-text"> 2651 APPAREL 2652 </span> 2653 </a> 2654 <a 2655 href="/collections/apparel" 2656 class="header-menu__item header-menu__item--first-level js-header-mega-menu-toggler" 2657 data-target="headerMegaMenu:apparel" 2658 aria-controls="headerMegaMenu:apparel" 2659 aria-expanded="false" 2660 style="--highlight-color: #000000; --highlight-background-color: rgba(0,0,0,0); --highlight-color-transparent: #ffffff; --highlight-background-color-transparent: rgba(0,0,0,0);" 2661 ><span 2662 class="header-menu__item-text" 2663 > 2664 APPAREL 2665 </span><span class="header-menu__item-toggle-icon"> 2666 2667 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2668 <path d="M19.9201 8.9502L13.4001 15.4702C12.6301 16.2402 11.3701 16.2402 10.6001 15.4702L4.08008 8.9502" stroke="currentColor" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 2669 </svg> 2670 2671</span></a> 2672 �<div 2673 id="headerMegaMenu:apparel" 2674 class="header-mega-menu is-hidden js-header-mega-menu" 2675> 2676 <span class="visually-hidden">
2676Mega menu</span> 2677 2678 <div class="header-mega-menu__container js-header-mega-menu-content"> 2679 <div class="header-mega-menu__block header-mega-menu__block--menu header-mega-menu__block--menu-rows"> 2680 <ul class="header-mega-menu__menu"> 2681 � 2682 2683 <li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent need-animate" style="transition-delay: 0.2s;"><a 2684 href="/collections/apparel/women" 2685 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 2686 2687 > 2688 �<span class="header-mega-menu__menu-item-text">Women's Apparel</span> 2689 </a> 2690 2691 <ul 2692 class="header-mega-menu__menu header-mega-menu__menu--nested is-active" 2693 ><li class="header-mega-menu__menu-item-wrapper"> 2694 <a 2695 class="header-mega-menu__menu-item" 2696 href="/collections/headwear" 2697 2698 > 2699 �<span class="header-mega-menu__menu-item-text">Headwear</span> 2700 </a> 2701 </li><li class="header-mega-menu__menu-item-wrapper"> 2702 <a 2703 class="header-mega-menu__menu-item" 2704 href="/collections/tops/women" 2705 2706 > 2707 �<span class="header-mega-menu__menu-item-text">Tops</span> 2708 </a> 2709 </li><li class="header-mega-menu__menu-item-wrapper"> 2710 <a 2711 class="header-mega-menu__menu-item" 2712 href="/collections/jackets/women" 2713 2714 > 2715 �<span class="header-mega-menu__menu-item-text">Jackets</span> 2716 </a> 2717 </li><li class="header-mega-menu__menu-item-wrapper"> 2718 <a 2719 class="header-mega-menu__menu-item" 2720 href="/collections/bottoms/women" 2721 2722 > 2723 �<span class="header-mega-menu__menu-item-text">Bottoms</span> 2724 </a> 2725 </li><li class="header-mega-menu__menu-item-wrapper"> 2726 <a 2727 class="header-mega-menu__menu-item" 2728 href="/collections/socks" 2729 2730 > 2731 �<span class="header-mega-menu__menu-item-text">Socks</span> 2732 </a> 2733 </li><li class="header-mega-menu__menu-item-wrapper"> 2734 <a 2735 class="header-mega-menu__menu-item" 2736 href="/collections/gloves" 2737 2738 > 2739 �<span class="header-mega-menu__menu-item-text">Gloves</span> 2740 </a> 2741 </li></ul></li> 2742 2743 <li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent need-animate" style="transition-delay: 0.4s;"><a 2744 href="/collections/apparel/men" 2745 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 2746 2747 > 2748 �<span class="header-mega-menu__menu-item-text">Men's Apparel</span> 2749 </a> 2750 2751 <ul 2752 class="header-mega-menu__menu header-mega-menu__menu--nested
2752is-active" 2753 ><li class="header-mega-menu__menu-item-wrapper"> 2754 <a 2755 class="header-mega-menu__menu-item" 2756 href="/collections/headwear" 2757 2758 > 2759 �<span class="header-mega-menu__menu-item-text">Headwear</span> 2760 </a> 2761 </li><li class="header-mega-menu__menu-item-wrapper"> 2762 <a 2763 class="header-mega-menu__menu-item" 2764 href="/collections/tops/men" 2765 2766 > 2767 �<span class="header-mega-menu__menu-item-text">Tops</span> 2768 </a> 2769 </li><li class="header-mega-menu__menu-item-wrapper"> 2770 <a 2771 class="header-mega-menu__menu-item" 2772 href="/collections/jackets/men" 2773 2774 > 2775 �<span class="header-mega-menu__menu-item-text">Jackets</span> 2776 </a> 2777 </li><li class="header-mega-menu__menu-item-wrapper"> 2778 <a 2779 class="header-mega-menu__menu-item" 2780 href="/collections/bottoms/men" 2781 2782 > 2783 �<span class="header-mega-menu__menu-item-text">Bottoms</span> 2784 </a> 2785 </li><li class="header-mega-menu__menu-item-wrapper"> 2786 <a 2787 class="header-mega-menu__menu-item" 2788 href="/collections/socks" 2789 2790 > 2791 �<span class="header-mega-menu__menu-item-text">Socks</span> 2792 </a> 2793 </li><li class="header-mega-menu__menu-item-wrapper"> 2794 <a 2795 class="header-mega-menu__menu-item" 2796 href="/collections/gloves" 2797 2798 > 2799 �<span class="header-mega-menu__menu-item-text">Gloves</span> 2800 </a> 2801 </li></ul></li> 2802 2803 <li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent need-animate" style="transition-delay: 0.6s;"><h3 2804 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 2805 > 2806 �<span class="header-mega-menu__menu-item-text">Apparel Brands</span> 2807 </h3> 2808 2809 2810 <ul 2811 class="header-mega-menu__menu header-mega-menu__menu--nested
2811is-active" 2812 ><li class="header-mega-menu__menu-item-wrapper"> 2813 <a 2814 class="header-mega-menu__menu-item" 2815 href="/collections/ciele" 2816 2817 > 2818 �<span class="header-mega-menu__menu-item-text">Ciele</span> 2819 </a> 2820 </li><li class="header-mega-menu__menu-item-wrapper"> 2821 <a 2822 class="header-mega-menu__menu-item" 2823 href="/collections/craft" 2824 2825 > 2826 �<span class="header-mega-menu__menu-item-text">Craft</span> 2827 </a> 2828 </li><li class="header-mega-menu__menu-item-wrapper"> 2829 <a 2830 class="header-mega-menu__menu-item" 2831 href="/collections/foveo-running" 2832 2833 > 2834 �<span class="header-mega-menu__menu-item-text">Foveo Running</span> 2835 </a> 2836 </li><li class="header-mega-menu__menu-item-wrapper"> 2837 <a 2838 class="header-mega-menu__menu-item" 2839 href="/collections/outdoor-research" 2840 2841 > 2842 �<span class="header-mega-menu__menu-item-text">Outdoor Research</span> 2843 </a> 2844 </li><li class="header-mega-menu__menu-item-wrapper"> 2845 <a 2846 class="header-mega-menu__menu-item" 2847 href="/collections/rabbit" 2848 2849 > 2850 �<span class="header-mega-menu__menu-item-text">Rabbit</span> 2851 </a> 2852 </li><li class="header-mega-menu__menu-item-wrapper"> 2853 <a 2854 class="header-mega-menu__menu-item" 2855 href="/collections/raide-research" 2856 2857 > 2858 �<span class="header-mega-menu__menu-item-text">Raide Research</span> 2859 </a> 2860 </li></ul></li></ul> 2861 </div><div class="header-mega-menu__block header-mega-menu__block--images"><div class="header-mega-menu__block header-mega-menu__block--image header-mega-menu__block--image-multiple"><a href="/collections/craft" class="header-mega-menu__image-wrapper header-mega-menu__image-wrapper--hover" style="transition-delay: 0.5s"><picture class="lazy"> 2862 <source 2863 data-srcset="//foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_298x.jpg?v=1778373698 1x, //foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_596x.jpg?v=1778373698 2x" 2864 srcset="//foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_10x.jpg?v=1778373698 1x, //foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_20x.jpg?v=1778373698 2x" 2865 media="(max-width: 1500px)" 2866 width="298" 2867 height="429" 2868 /> 2869 2870 <img 2871 class="header-mega-menu__image" 2872 data-src="//foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_390x.jpg?v=1778373698" 2873 data-srcset="//foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_390x.jpg?v=1778373698 1x, //foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_780x.jpg?v=1778373698 2x" 2874 src="//foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_10x.jpg?v=1778373698" 2875 srcset="//foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_10x.jpg?v=1778373698 1x, //foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_20x.jpg?v=1778373698 2x" 2876 alt="" 2877 style="--img-desktop-pos: 50.0% 50.0%;" 2878 width="390" 2879 height="480" 2880 > 2881 </picture> 2882 2883 <div class="header-mega-menu__image-overlay"></div><div class="header-mega-menu__image-text-content"><div class="header-mega-menu__image-heading">Craft Apparel</div><p class="header-mega-menu__image-subheading">Summer 2027 has arrived</p></div></a></div><div class="header-mega-menu__block header-mega-menu__block--image header-mega-menu__block--image-multiple"><a href="/collections/rabbit" class="header-mega-menu__image-wrapper header-mega-menu__image-wrapper--hover" style="transition-delay: 0.25s;"><picture class="lazy"> 2884 <source 2885 data-srcset="//foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_298x.jpg?v=1778373701 1x, //foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_596x.jpg?v=1778373701 2x" 2886 srcset="//foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_10x.jpg?v=1778373701 1
2886x, //foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_20x.jpg?v=1778373701 2x" 2887 media="(max-width: 1500px)" 2888 width="298" 2889 height="429" 2890 /> 2891 2892 <img 2893 class="header-mega-menu__image" 2894 data-src="//foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_390x.jpg?v=1778373701" 2895 data-srcset="//foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_390x.jpg?v=1778373701 1x, //foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_780x.jpg?v=1778373701 2x" 2896 src="//foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_10x.jpg?v=1778373701" 2897 srcset="//foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_10x.jpg?v=1778373701 1x, //foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_20x.jpg?v=1778373701 2x" 2898 alt="" 2899 style="--img-desktop-pos: 50.0% 50.0%;" 2900 width="390" 2901 height="480" 2902 > 2903 </picture> 2904 2905 <div class="header-mega-menu__image-overlay"></div><div class="header-mega-menu__image-text-content"><div class="header-mega-menu__image-heading">Rabbit</div><p class="header-mega-menu__image-subheading">Uncompromising running gear</p></div></a></div></div></div> 2906</div> 2907</li><li ><a 2908 class="header-menu__item header-menu__item--first-level" 2909 href="/collections/nutrition" 2910 2911 > 2912 <span class="header-menu__item-text"> 2913 NUTRITION 2914 </span> 2915 </a></li><li class="js-header-dropdown-menu-element"><a 2916 class="header-menu__item header-menu__item--first-level no-js" 2917 href="/collections/accessories" 2918 2919 > 2920 <span class="header-menu__item-text"> 2921 ACCESSORIES 2922 </span> 2923 </a> 2924 <a 2925 href="/collections/accessories" 2926 class="header-menu__item header-menu__item--first-level js-header-mega-menu-toggler" 2927 data-target="headerMegaMenu:accessories" 2928 aria-controls="headerMegaMenu:accessories" 2929 aria-expanded="false" 2930 style="--highlight-color: #000000; --highlight-background-color: rgba(0,0,0,0); --highlight-color-transparent: #ffffff; --highlight-background-color-transparent: rgba(0,0,0,0);" 2931 ><span 2932 class="header-menu__item-text" 2933 > 2934 ACCESSORIES 2935 </span><span class="header-menu__item-toggle-icon"> 2936 2937 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 2938 <path d="M19.9201 8.9502L13.4001 15.4702C12.6301 16.2402 11.3701 16.2402 10.6001 15.4702L4.08008 8.9502" stroke="currentColor" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 2939 </svg> 2940 2941</span></a> 2942 �<div 2943 id="headerMegaMenu:accessories" 2944 class="header-mega-menu is-hidden js-header-mega-menu" 2945> 2946 <span class="visually-hidden">Mega menu</span> 2947 2948 <div class="header-mega-menu__container js-header-mega-menu-content"> 2949 <div class="header-mega-menu__block header-mega-menu__block--menu header-mega-menu__block--menu-rows"> 2950 <ul class="header-mega-menu__menu"> 2951 � 2952 2953 <li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent need-animate" style="transition-delay: 0.2s;"><a 2954 href="/collections/accessories" 2955 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 2956 2957 > 2958 �<span class="header-mega-menu__menu-item-text">Accessories</span> 2959 </a> 2960 2961 <ul 2962 class="header-mega-menu__menu header-mega-menu__menu--nested
2962is-active" 2963 ><li class="header-mega-menu__menu-item-wrapper"> 2964 <a 2965 class="header-mega-menu__menu-item" 2966 href="/products/foveo-running-gift-card" 2967 2968 > 2969 �<span class="header-mega-menu__menu-item-text">Gift Cards</span> 2970 </a> 2971 </li><li class="header-mega-menu__menu-item-wrapper"> 2972 <a 2973 class="header-mega-menu__menu-item" 2974 href="/collections/body-care" 2975 2976 > 2977 �<span class="header-mega-menu__menu-item-text">Body Care</span> 2978 </a> 2979 </li><li class="header-mega-menu__menu-item-wrapper"> 2980 <a 2981 class="header-mega-menu__menu-item" 2982 href="/collections/gaiters" 2983 2984 > 2985 �<span class="header-mega-menu__menu-item-text">Gaiters</span> 2986 </a> 2987 </li><li class="header-mega-menu__menu-item-wrapper"> 2988 <a 2989 class="header-mega-menu__menu-item" 2990 href="/collections/glasses" 2991 2992 > 2993 �<span class="header-mega-menu__menu-item-text">Glasses</span> 2994 </a> 2995 </li><li class="header-mega-menu__menu-item-wrapper"> 2996 <a 2997 class="header-mega-menu__menu-item" 2998 href="/collections/gloves" 2999 3000 > 3001 �<span class="header-mega-menu__menu-item-text">Gloves</span> 3002 </a> 3003 </li><li class="header-mega-menu__menu-item-wrapper"> 3004 <a 3005 class="header-mega-menu__menu-item" 3006 href="/collections/headwear" 3007 3008 > 3009 �<span class="header-mega-menu__menu-item-text">Headwear</span> 3010 </a> 3011 </li><li class="header-mega-menu__menu-item-wrapper"> 3012 <a 3013 class="header-mega-menu__menu-item" 3014 href="/collections/insoles" 3015 3016 > 3017 �<span class="header-mega-menu__menu-item-text">Insoles</span> 3018 </a> 3019 </li><li class="header-mega-menu__menu-item-wrapper"> 3020 <a 3021 class="header-mega-menu__menu-item" 3022 href="/collections/poles" 3023 3024 > 3025 �<span class="header-mega-menu__menu-item-text">Poles</span> 3026 </a> 3027 </li><li class="header-mega-menu__menu-item-wrapper"> 3028 <a 3029 class="header-mega-menu__menu-item" 3030 href="/collections/socks" 3031 3032 > 3033 �<span class="header-mega-menu__menu-item-text">Socks</span> 3034 </a> 3035 </li></ul></li> 3036 3037 <li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent need-animate" style="transition-delay: 0.4s;"><h3 3038 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 3039 > 3040 �<span class="header-mega-menu__menu-item-text">Hydration & Storage</span> 3041 </h3> 3042 3043 3044 <ul 3045 class="header-mega-menu__menu header-mega-menu__menu--nested
3045is-active" 3046 ><li class="header-mega-menu__menu-item-wrapper"> 3047 <a 3048 class="header-mega-menu__menu-item" 3049 href="/collections/packs" 3050 3051 > 3052 �<span class="header-mega-menu__menu-item-text">Running Vests / Belts / Packs</span> 3053 </a> 3054 </li><li class="header-mega-menu__menu-item-wrapper"> 3055 <a 3056 class="header-mega-menu__menu-item" 3057 href="/collections/hydration" 3058 3059 > 3060 �<span class="header-mega-menu__menu-item-text">Hydration Storage</span> 3061 </a> 3062 </li></ul></li> 3063 3064 <li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent need-animate" style="transition-delay: 0.6s;"><h3 3065 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 3066 > 3067 �<span class="header-mega-menu__menu-item-text">Electronics</span> 3068 </h3> 3069 3070 3071 <ul 3072 class="header-mega-menu__menu header-mega-menu__menu--nested
3072is-active" 3073 ><li class="header-mega-menu__menu-item-wrapper"> 3074 <a 3075 class="header-mega-menu__menu-item" 3076 href="/collections/watches" 3077 3078 > 3079 �<span class="header-mega-menu__menu-item-text">Watches</span> 3080 </a> 3081 </li><li class="header-mega-menu__menu-item-wrapper"> 3082 <a 3083 class="header-mega-menu__menu-item" 3084 href="/collections/lights" 3085 3086 > 3087 �<span class="header-mega-menu__menu-item-text">Lighting / Safety</span> 3088 </a> 3089 </li><li class="header-mega-menu__menu-item-wrapper"> 3090 <a 3091 class="header-mega-menu__menu-item" 3092 href="/collections/headphones" 3093 3094 > 3095 �<span class="header-mega-menu__menu-item-text">Headphones</span> 3096 </a> 3097 </li></ul></li></ul> 3098 </div><div class="header-mega-menu__block header-mega-menu__block--images"><div class="header-mega-menu__block header-mega-menu__block--image"><a href="/products/lf-2l-running-belt" class="header-mega-menu__image-wrapper header-mega-menu__image-wrapper--hover" style="transition-delay: 0.5s"><picture class="lazy"> 3099 <source 3100 data-srcset="//foveo.run/cdn/shop/files/Accessories_norda_raide_620x.jpg?v=1778372899 1x, //foveo.run/cdn/shop/files/Accessories_norda_raide_1240x.jpg?v=1778372899 2x" 3101 srcset="//foveo.run/cdn/shop/files/Accessories_norda_raide_10x.jpg?v=1778372899 1x, //foveo.run/cdn/shop/files/Accessories_norda_raide_20x.jpg?v=1778372899 2x" 3102 media="(max-width: 1500px)" 3103 width="620" 3104 height="429" 3105 /> 3106 3107 <img 3108 class="header-mega-menu__image" 3109 data-src="//foveo.run/cdn/shop/files/Accessories_norda_raide_804x.jpg?v=1778372899" 3110 data-srcset="//foveo.run/cdn/shop/files/Accessories_norda_raide_804x.jpg?v=1778372899 1x, //foveo.run/cdn/shop/files/Accessories_norda_raide_1608x.jpg?v=1778372899 2x" 3111 src="//foveo.run/cdn/shop/files/Accessories_norda_raide_10x.jpg?v=1778372899" 3112 srcset="//foveo.run/cdn/shop/files/Accessories_norda_raide_10x.jpg?v=1778372899 1x, //foveo.run/cdn/shop/files/Accessories_norda_raide_20x.jpg?v=1778372899 2x" 3113 alt="" 3114 style="--img-desktop-pos: 50.0% 50.0%;" 3115 width="804" 3116 height="460" 3117 > 3118 </picture> 3119 3120 <div class="header-mega-menu__image-overlay"></div><div class="header-mega-menu__image-text-content"><div class="header-mega-menu__image-heading">Raide Research</div><p class="header-mega-menu__image-subheading">2L LF Running Belt</p></div></a></div></div></div> 3121</div> 3122</li><li ><a 3123 class="header-menu__item header-menu__item--first-level" 3124 href="/collections/on-sale" 3125 3126 > 3127 <span class="header-menu__item-text"> 3128 SALE 3129 </span> 3130 </a></li><li ><a 3131 class="header-menu__item header-menu__item--first-level" 3132 href="/pages/sweat-testing" 3133 3134 > 3135 <span class="header-menu__item-text"> 3136 SWEAT TESTING 3137 </span> 3138 </a></li><li class="js-header-dropdown-menu-element"><a 3139 class="header-menu__item header-menu__item--first-level no-js" 3140 href="#" 3141 3142 > 3143 <span class="header-menu__item-text"> 3144 EVENTS 3145 </span> 3146 </a> 3147 <button 3148 class="header-menu__item header-menu__item--first-level js-header-mega-menu-toggler" 3149 type="button" 3150 data-target="headerMegaMenu:events" 3151 aria-controls="headerMegaMenu:events" 3152 aria-expanded="false" 3153 style="--highlight-color: #000000; --highlight-background-color: rgba(0,0,0,0); --highlight-color-transparent: #ffffff; --highlight-background-color-transparent: rgba(0,0,0,0);" 3154 ><span 3155 class="header-menu__item-text" 3156 > 3157 EVENTS 3158 </span><span class="header-menu__item-toggle-icon"> 3159 3160 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3161 <path d="M19.9201 8.9502L13.4001 15.4702C12.6301 16.2402 11.3701 16.2402 10.6001 15.4702L4.08008 8.9502" stroke="currentColor" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 3162 </svg> 3163 3164</span></button> 3165 �<div 3166 id="headerMegaMenu:events" 3167 class="header-mega-menu is-hidden js-header-mega-menu" 3168> 3169 <span class="visually-hidden">
3169Mega menu</span> 3170 3171 <div class="header-mega-menu__container js-header-mega-menu-content"> 3172 <div class="header-mega-menu__block header-mega-menu__block--menu header-mega-menu__block--menu-rows header-mega-menu__block--menu-rows-no-image"> 3173 <ul class="header-mega-menu__menu"> 3174 � 3175 3176 <li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent need-animate" style="transition-delay: 0.2s;"><a 3177 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 3178 href="/pages/events-calendar" 3179 3180 > 3181 �<span class="header-mega-menu__menu-item-text">Events Calendar</span> 3182 </a></li> 3183 3184 <li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent need-animate" style="transition-delay: 0.4s;"><a 3185 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 3186 href="/pages/group-runs" 3187 3188 > 3189 �<span class="header-mega-menu__menu-item-text">Local Run Clubs</span> 3190 </a></li> 3191 3192 <li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent need-animate" style="transition-delay: 0.6s;"><a 3193 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 3194 href="/pages/races" 3195 3196 > 3197 �<span class="header-mega-menu__menu-item-text">Local Races</span> 3198 </a></li></ul> 3199 </div></div> 3200</div> 3201</li></ul> 3202</nav> 3203</div><div class="header__logo"> 3204 <span class="visually-hidden"> 3205 Store logo" 3206 </span><a 3207 href="/" 3208 class="header__heading-link" 3209 aria-label="Foveo Running" 3210 ><img 3211 srcset="//foveo.run/cdn/shop/files/FoveoRunning_HorzLogo_FullColour-01_208dc146-b47c-4426-a066-c47d29b35a33.png?v=1778368870&width=250 1x, //foveo.run/cdn/shop/files/FoveoRunning_HorzLogo_FullColour-01_208dc146-b47c-4426-a066-c47d29b35a33.png?v=1778368870&width=500 2x" 3212 src="//foveo.run/cdn/shop/files/FoveoRunning_HorzLogo_FullColour-01_208dc146-b47c-4426-a066-c47d29b35a33.png?v=1778368870&width=250" 3213 alt="foveo" 3214 class="header__heading-logo" 3215 height="39" 3216 width="250" 3217 style="--img-desktop-pos: 50.0% 50.0%;" 3218 /></a></div><div class="header__utils"><div class="header__icons"><button 3219 type="button" 3220 class="header__icon header__icon--search js-header-drawer-toggler" 3221 data-target="headerDrawerSearch" 3222 data-js-toggle="searchToggleDrawer" 3223 aria-expanded="false" 3224 aria-controls="headerDrawerSearch" 3225 aria-label="Search" 3226 > 3227 3228 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3229 <path d="M17.1218 17.122L21.9998 22M10.8498 2C13.2938 2 15.5068 2.99 17.1078 4.592C18.5556 6.03977 19.4567 7.94476 19.6574 9.98239C19.8581 12.02 19.3461 14.0642 18.2086 15.7667C17.0711 17.4691 15.3785 18.7245 13.4192 19.3189C11.4599 19.9133 9.35508 19.8099 7.46343 19.0264C5.57178 18.2429 4.01032 16.8277 3.0451 15.022C2.07988 13.2163 1.77062 11.1318 2.17003 9.12364C2.56943 7.11548 3.65277 5.30794 5.23548 4.00899C6.81818 2.71003 8.80231 2.00005 10.8498 2Z" stroke="currentColor" stroke-width="1.5"/> 3230 </svg> 3231 3232</button> 3233 3234 <a 3235 href="/search" 3236 class="header__icon header__icon--search no-js" 3237 aria-label="Search" 3238 > 3239 3240 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3241 <path d="M17.1218 17.122L21.9998 22M10.8498 2C13.2938 2 15.5068 2.99 17.1078 4.592C18.5556 6.03977 19.4567 7.94476 19.6574 9.98239C19.8581 12.02 19.3461 14.0642 18.2086 15.7667C17.0711 17.4691 15.3785 18.7245 13.4192 19.3189C11.4599 19.9133 9.35508 19.8099 7.46343 19.0264C5.57178 18.2429 4.01032 16.8277 3.0451 15.022C2.07988 13.2163 1.77062 11.1318 2.17003 9.12364C2.56943 7.11548 3.65277 5.30794 5.23548 4.00899C6.81818 2.71003 8.80231 2.00005 10.8498 2Z" stroke="currentColor" stroke-width="1.5"/> 3242 </svg> 3243 3244</a><a 3245 href="https://foveo.run/customer_authentication/redirect?locale=en®ion_country=CA" 3246 class="header__icon header__icon--account" 3247 3248 aria-label="Log in" 3249 3250 > 3251 3252 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3253 <path d="M12 2C6.477 2 2 6.477 2 12C2 17.523 6.477 22 12 22C17.523 22 22 17.523 22 12C22 6.477 17.523 2 12 2Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 3254 <path d="M4.27148 18.346C4.27148 18.346 6.50048 15.5 12.0005 15.5C17.5005 15.5 19.7305 18.346 19.7305 18.346M12.0005 12C12.7961 12 13.5592 11.6839 14.1218 11.1213C14.6844 10.5587 15.0005 9.79565 15.0005 9C15.0005 8.20435 14.6844 7.44129 14.1218 6.87868C13.5592 6.31607 12.7961 6 12.0005 6C11.2048 6 10.4418 6.31607 9.87916 6.87868C9.31655 7.44129 9.00048 8.20435 9.00048 9C9.00048 9.79565 9.31655 10.5587 9.87916 11.1213C10.4418 11.6839 11.2048 12 12.0005 12Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 3255 </svg> 3256 3257</a><a href="/cart" class="header__icon header__icon--cart no-js"> 3258 3259 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3260 <path d="M14.0003 5C14.0003 4.46957 13.7896 3.96086 13.4145 3.58579C13.0395 3.21071 12.5308 3 12.0003 3C11.4699 3 10.9612 3.21071 10.5861 3.58579C10.211 3.96086 10.0003 4.46957 10.0003 5M19.2603 9.696L20.6453 18.696C20.6891 18.9808 20.6709 19.2718 20.5917 19.5489C20.5126 19.8261 20.3746 20.0828 20.187 20.3016C19.9995 20.5204 19.7668 20.6961 19.505 20.8167C19.2433 20.9372 18.9585 20.9997 18.6703 21H5.33032C5.04195 21 4.75699 20.9377 4.49496 20.8173C4.23294 20.6969 4.00005 20.5212 3.81226 20.3024C3.62448 20.0836 3.48624 19.8267 3.40702 19.5494C3.32781 19.2721 3.30949 18.981 3.35332 18.696L4.73832 9.696C4.81097 9.22359 5.0504 8.79282 5.41324 8.4817C5.77609 8.17059 6.23835 7.9997 6.71632 8H17.2843C17.7621 7.99994 18.2241 8.17094 18.5868 8.48203C18.9494 8.79312 19.1877 9.22376 19.2603 9.696Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 3261 </svg> 3262 3263<span class="visually-hidden">Cart drawer. 3264 </span> 3265 3266 <span 3267 class="header__cart-count" 3268 data-cart-count="0" 3269 > 3270 <span class="visually-hidden"> 3271 Cart item count" 3272 </span> 3273 3274 <span>0</span> 3275 </span> 3276 </a><button 3277 type="button" 3278 class="header__icon header__icon--cart" 3279 data-target="CartDrawer" 3280 data-js-toggle="CartDrawer" 3281 aria-expanded="false" 3282 aria-controls="CartDrawer" 3283 > 3284 3285 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3286 <path d="M14.0003 5C14.0003 4.46957 13.7896 3.96086 13.4145 3.58579C13.0395 3.21071 12.5308 3 12.0003 3C11.4699 3 10.9612 3.21071 10.5861 3.58579C10.211 3.96086 10.0003 4.46957 10.0003 5M19.2603 9.696L20.6453 18.696C20.6891 18.9808 20.6709 19.2718 20.5917 19.5489C20.5126 19.8261 20.3746 20.0828 20.187 20.3016C19.9995 20.5204 19.7668 20.6961 19.505 20.8167C19.2433 20.9372 18.9585 20.9997 18.6703 21H5.33032C5.04195 21 4.75699 20.9377 4.49496 20.8173C4.23294 20.6969 4.00005 20.5212 3.81226 20.3024C3.62448 20.0836 3.48624 19.8267 3.40702 19.5494C3.32781 19.2721 3.30949 18.981 3.35332 18.696L4.73832 9.696C4.81097 9.22359 5.0504 8.79282 5.41324 8.4817C5.77609 8.17059 6.23835 7.9997 6.71632 8H17.2843C17.7621 7.99994 18.2241 8.17094 18.5868 8.48203C18.9494 8.79312 19.1877 9.22376 19.2603 9.696Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 3287 </svg> 3288 3289<span class="visually-hidden">Cart drawer. 3290 </span> 3291 3292 <span 3293 class="header__cart-count js-header-cart-item-count-wrapper" 3294 data-cart-count="0" 3295 > 3296 <span class="visually-hidden"> 3297 Cart item count" 3298 </span> 3299 3300 <span class="js-header-cart-item-count">0</span> 3301 </span> 3302 </button></div> 3303 </div> 3304 </div> 3305 3306 3307 3308 <link href="//foveo.run/cdn/shop/t/23/assets/cart-notification.build.css?v=1731340567281779551781878629" rel="stylesheet" type="text/css" media="all" /> 3309 3310 3311 3312 3313 3314 <link rel="modulepreload" href="//foveo.run/cdn/shop/t/23/assets/cart-notification-error.build.min.js?v=174353460387662643671781878629" as="script" crossorigin="anonymous"> 3315
3315<script src="//foveo.run/cdn/shop/t/23/assets/cart-notification-error.build.min.js?v=174353460387662643671781878629" type="module" crossorigin="anonymous"></script>
3315 3316 3317<div class="cart-notification error js-cart-notification-error"> 3318 <div class="cart-notification__container js-cart-notification-modal" aria-modal="true" role="dialog" tabindex="-1"> 3319 <div class="cart-notification__header"> 3320 <h2 class="cart-notification__heading"> 3321 3322 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3323 <path d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 3324 <path d="M12 16V12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 3325 <path d="M12 8H12.01" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 3326 </svg> 3327 3328<span class="js-notification-error-heading">Cart Error</span> 3329 </h2> 3330 3331 <button 3332 type="button" 3333 class="focus-visible-outline cart-notification__close" 3334 data-notification-close 3335 aria-label="Close (esc)" 3336 > 3337 3338 3339 <svg class="icon" width="16" height="16" aria-hidden="true" focusable="false" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 3340 <path d="M12 4L4 12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 3341 <path d="M4 4L12 12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 3342 </svg> 3343 3344 3345 </button>
3346 </div> 3347 3348 <div class="cart-notification__body js-cart-notification-content"></div> 3349 </div> 3350</div> 3351</header> 3352
3353<script> 3354 (function() { 3355 const selectors = { 3356 header: ".header-section", 3357 headerContent: ".js-header" 3358 } 3359 3360 const cssVariables = { 3361 headerHeight: "--header-height", 3362 headerHeightStatic: "--header-height-static", 3363 headerOffsetTop: "--header-offset-top", 3364 headerOffsetTopStatic: "--header-offset-top-static", 3365 pageHeight: "--page-height", 3366 } 3367 3368 const header = document.querySelector(selectors.header); 3369 const headerContent = document.querySelector(selectors.headerContent); 3370 3371 if (headerContent.hasAttribute("data-header-transparent")) { 3372 header.classList.add("no-top-transition"); 3373 header.classList.add("header-section--transparent", "header-section--top-position"); 3374 3375 if (headerContent.hasAttribute("data-header-transparent-mobile")) { 3376 header.classList.add("header-section--transparent-mobile"); 3377 } 3378 } 3379 3380 const observer = new IntersectionObserver((entries) => { 3381 for (const entry of entries) { 3382 const bounds = entry.boundingClientRect; 3383 3384 let offsetTopValue = headerContent.hasAttribute("data-static-header") ? 0 : bounds.top; 3385 3386 changeCssVariable(cssVariables.headerHeight, ` ${bounds.height}px`); 3387 changeCssVariable(cssVariables.headerHeightStatic, ` ${bounds.height}px`); 3388 changeCssVariable(cssVariables.headerOffsetTop, ` ${offsetTopValue}px`); 3389 changeCssVariable(cssVariables.headerOffsetTopStatic, ` ${offsetTopValue}px`); 3390 } 3391 3392 observer.disconnect(); 3393 }); 3394 3395 observer.observe(header); 3396 3397 requestAnimationFrame(() => { 3398 setHeaderVariables(); 3399 }); 3400 3401 document.addEventListener("DOMContentLoaded", () => { 3402 let condition = window.scrollY <= 0; 3403 3404 if (condition && !header.classList.contains("header-section--top-position")) { 3405 header.classList.add("header-section--top-position"); 3406 } else if (!condition && header.classList.contains("header-section--top-position")) { 3407 header.classList.remove("header-section--top-position"); 3408 } 3409 3410 header.classList.remove("no-top-transition"); 3411 }); 3412 3413 function changeCssVariable(variable, value) { 3414 requestAnimationFrame(() => { 3415 document.documentElement.style.setProperty(variable, value); 3416 }); 3417 } 3418 3419 function setHeaderVariables() { 3420 changeCssVariable(cssVariables.pageHeight, ` ${window.innerHeight}px`); 3421 } 3422 })(); 3423</script>
3423<div 3424 id="headerDrawerMenu" 3425 class="drawer drawer--left header-mobile" 3426 data-menu-type="main" 3427 role="dialog" 3428 aria-labelledby="headerDrawerMenuTitle" 3429> 3430 <p class="is-hidden" id="headerDrawerMenuTitle">Drawer menu</p> 3431 3432 <nav class="drawer__body header-mobile__menu js-mobile-header-main-menu" aria-label="Drawer menu"> 3433 <div class="header-mobile__menu-close-button-wrapper"> 3434 <button 3435 class="header-mobile__menu-close-button js-header-drawer-close-button" 3436 type="button" 3437 aria-expanded="false" 3438 aria-controls="headerDrawerMenu" 3439 aria-label="Close drawer menu" 3440 > 3441 3442 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3443 <path d="M18 6L6 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 3444 <path d="M6 6L18 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 3445 </svg> 3446 3447</button> 3448 </div> 3449 3450 <ul class="header-mobile__menu-list">�<li><button 3451 class="header-mobile__menu-item js-mobile-header-menu-toggler" 3452 type="button" 3453 data-target="headerMobileMenu:footwear" 3454 aria-controls="headerMobileMenu:footwear" 3455 aria-expanded="false" 3456 style="--highlight-color: #000000; --highlight-background-color: rgba(0,0,0,0);" 3457 > 3458 3459 �<span class="header-mobile__menu-item-text">FOOTWEAR</span> 3460 3461 <span class="header-mobile__menu-item-toggle-icon"> 3462 3463 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3464 <path d="M19.9201 8.9502L13.4001 15.4702C12.6301 16.2402 11.3701 16.2402 10.6001 15.4702L4.08008 8.9502" stroke="currentColor" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 3465 </svg> 3466 3467</span> 3468 </button> 3469 3470 <div 3471 id="headerMobileMenu:footwear" 3472 data-menu-type="nested" 3473 class="header-mobile__menu-list-wrapper header-mobile__menu-list-wrapper--nested js-mobile-header-menu is-hidden" 3474 > 3475 <ul class="header-mobile__menu-list header-mobile__menu-list--nested"> 3476 <li> 3477 <button 3478 class="header-mobile__menu-item header-mobile__menu-item--back js-mobile-header-menu-toggler" 3479 type="button" 3480 data-target="headerMobileMenu:footwear" 3481 aria-controls="headerMobileMenu:footwear" 3482 aria-expanded="false" 3483 > 3484 <span class="header-mobile__menu-item-icon-back"> 3485 3486 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3487 <path d="M18.0697 9.57L11.9997 3.5L5.92969 9.57" stroke="currentColor" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 3488 <path d="M12 20.4999V3.66992" stroke="currentColor" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 3489 </svg> 3490 3491</span> 3492 3493 <span class="header-mobile__menu-item-text">FOOTWEAR</span> 3494 </button> 3495 </li><li><div class="header-mega-menu"> 3496 <div class="header-mega-menu__container"> 3497 <div class="header-mega-menu__block header-mega-menu__block--menu header-mega-menu__block--menu-rows"> 3498 <ul class="header-mega-menu__menu"><li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent"><a 3499 href="/collections/footwear/women" 3500 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 3501 3502 > 3503 �<span class="header-mega-menu__menu-item-text">Women's Footwear</span> 3504 </a> 3505 3506 <ul 3507 class="header-mega-menu__menu header-mega-menu__menu--nested
3507is-active" 3508 ><li class="header-mega-menu__menu-item-wrapper"> 3509 <a 3510 class="header-mega-menu__menu-item" 3511 href="/collections/trail-shoes/women" 3512 3513 > 3514 �<span class="header-mega-menu__menu-item-text">Trail</span> 3515 </a> 3516 </li><li class="header-mega-menu__menu-item-wrapper"> 3517 <a 3518 class="header-mega-menu__menu-item" 3519 href="/collections/road-shoes/women" 3520 3521 > 3522 �<span class="header-mega-menu__menu-item-text">Road</span> 3523 </a> 3524 </li><li class="header-mega-menu__menu-item-wrapper"> 3525 <a 3526 class="header-mega-menu__menu-item" 3527 href="/collections/gym-shoes/women" 3528 3529 > 3530 �<span class="header-mega-menu__menu-item-text">Gym</span> 3531 </a> 3532 </li><li class="header-mega-menu__menu-item-wrapper"> 3533 <a 3534 class="header-mega-menu__menu-item" 3535 href="/collections/recovery/women" 3536 3537 > 3538 �<span class="header-mega-menu__menu-item-text">Recovery</span> 3539 </a> 3540 </li><li class="header-mega-menu__menu-item-wrapper"> 3541 <a 3542 class="header-mega-menu__menu-item" 3543 href="/collections/hike/women" 3544 3545 > 3546 �<span class="header-mega-menu__menu-item-text">Hike</span> 3547 </a> 3548 </li></ul></li><li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent"><a 3549 href="/collections/footwear/men" 3550 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 3551 3552 > 3553 �<span class="header-mega-menu__menu-item-text">Men's Footwear</span> 3554 </a> 3555 3556 <ul 3557 class="header-mega-menu__menu header-mega-menu__menu--nested
3557is-active" 3558 ><li class="header-mega-menu__menu-item-wrapper"> 3559 <a 3560 class="header-mega-menu__menu-item" 3561 href="/collections/trail-shoes/men" 3562 3563 > 3564 �<span class="header-mega-menu__menu-item-text">Trail</span> 3565 </a> 3566 </li><li class="header-mega-menu__menu-item-wrapper"> 3567 <a 3568 class="header-mega-menu__menu-item" 3569 href="/collections/road-shoes/men" 3570 3571 > 3572 �<span class="header-mega-menu__menu-item-text">Road</span> 3573 </a> 3574 </li><li class="header-mega-menu__menu-item-wrapper"> 3575 <a 3576 class="header-mega-menu__menu-item" 3577 href="/collections/gym-shoes/men" 3578 3579 > 3580 �<span class="header-mega-menu__menu-item-text">Gym</span> 3581 </a> 3582 </li><li class="header-mega-menu__menu-item-wrapper"> 3583 <a 3584 class="header-mega-menu__menu-item" 3585 href="/collections/recovery/men" 3586 3587 > 3588 �<span class="header-mega-menu__menu-item-text">Recovery</span> 3589 </a> 3590 </li><li class="header-mega-menu__menu-item-wrapper"> 3591 <a 3592 class="header-mega-menu__menu-item" 3593 href="/collections/hike/men" 3594 3595 > 3596 �<span class="header-mega-menu__menu-item-text">Hike</span> 3597 </a> 3598 </li></ul></li><li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent"><h3 3599 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 3600 > 3601 �<span class="header-mega-menu__menu-item-text">Footwear Brands</span> 3602 </h3> 3603 3604 3605 <ul 3606 class="header-mega-menu__menu header-mega-menu__menu--nested
3606is-active" 3607 ><li class="header-mega-menu__menu-item-wrapper"> 3608 <a 3609 class="header-mega-menu__menu-item" 3610 href="/collections/altra" 3611 3612 > 3613 �<span class="header-mega-menu__menu-item-text">Altra</span> 3614 </a> 3615 </li><li class="header-mega-menu__menu-item-wrapper"> 3616 <a 3617 class="header-mega-menu__menu-item" 3618 href="/collections/inov8" 3619 3620 > 3621 �<span class="header-mega-menu__menu-item-text">Inov8</span> 3622 </a> 3623 </li><li class="header-mega-menu__menu-item-wrapper"> 3624 <a 3625 class="header-mega-menu__menu-item" 3626 href="/collections/la-sportiva" 3627 3628 > 3629 �<span class="header-mega-menu__menu-item-text">La Sportiva</span> 3630 </a> 3631 </li><li class="header-mega-menu__menu-item-wrapper"> 3632 <a 3633 class="header-mega-menu__menu-item" 3634 href="/collections/nnormal" 3635 3636 > 3637 �<span class="header-mega-menu__menu-item-text">Nnormal</span> 3638 </a> 3639 </li><li class="header-mega-menu__menu-item-wrapper"> 3640 <a 3641 class="header-mega-menu__menu-item" 3642 href="/collections/norda" 3643 3644 > 3645 �<span class="header-mega-menu__menu-item-text">Norda</span> 3646 </a> 3647 </li><li class="header-mega-menu__menu-item-wrapper"> 3648 <a 3649 class="header-mega-menu__menu-item" 3650 href="/collections/oofos" 3651 3652 > 3653 �<span class="header-mega-menu__menu-item-text">Oofos</span> 3654 </a> 3655 </li><li class="header-mega-menu__menu-item-wrapper"> 3656 <a 3657 class="header-mega-menu__menu-item" 3658 href="/collections/saucony" 3659 3660 > 3661 �<span class="header-mega-menu__menu-item-text">Saucony</span> 3662 </a> 3663 </li><li class="header-mega-menu__menu-item-wrapper"> 3664 <a 3665 class="header-mega-menu__menu-item" 3666 href="/collections/topo" 3667 3668 > 3669 �<span class="header-mega-menu__menu-item-text">Topo</span> 3670 </a> 3671 </li></ul></li></ul> 3672 </div><div class="header-mega-menu__block header-mega-menu__block--images"><div class="header-mega-menu__block header-mega-menu__block--image header-mega-menu__block--image-multiple"><a href="/products/endorphin-speed-5-men" class="header-mega-menu__image-wrapper header-mega-menu__image-wrapper--hover"><picture class="lazy"> 3673 <source 3674 data-srcset="//foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_164x.jpg?v=1778373925 1x, //foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_328x.jpg?v=1778373925 2x" 3675 srcset="//foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_10x.jpg?v=1778373925 1x, //foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_20x.jpg?v=1778373925 2x" 3676 media="(max-width: 375px)" 3677 width="164" 3678 height="250" 3679 /> 3680 3681 <source 3682 data-srcset="//foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_186x.jpg?v=1778373925 1x, //foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_372x.jpg?v=1778373925 2x" 3683 srcset="//foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_10x.jpg?v=1778373925 1x, //foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_20x.jpg?v=1778373925 2x" 3684 media="(max-width: 991px)" 3685 width="186" 3686 height="285" 3687 /> 3688 3689 <img 3690 class="header-mega-menu__image" 3691 data-src="//foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_216x.jpg?v=1778373925" 3692 data-srcset="//foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_216x.jpg?v=1778373925 1x, //foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_432x.jpg?v=1778373925 2x" 3693 src="//foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_10x.jpg?v=1778373925" 3694 srcset="//foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_10x.jpg?v=1778373925 1x, //foveo.run/cdn/shop/files/Footwear_2026-01-21-780x960_20x.jpg?v=1778373925 2x" 3695 alt="" 3696 style="--img-desktop-pos: 50.0% 50.0%;" 3697 width="216" 3698 height="330" 3699 > 3700 </picture><div class="header-mega-menu__image-text-content"><div class="header-mega-menu__image-heading">MEN'S SAUCONY SPEED 5</div><p class="header-mega-menu__image-subheading">Built for speed</p></div></a></div><div class="header-mega-menu__block header-mega-menu__block--image header-mega-menu__block--image-multiple"><a href="/products/cadi-women" class="header-mega-menu__image-wrapper header-mega-menu__image-wrapper--hover"><picture class="lazy"> 3701 <source 3702 data-srcset="//foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_164x.jpg?v=1778373930 1x, //foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_328x.jpg?v=1778373930 2x" 3703 srcset="//foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_10x.jpg?v=1778373930 1x, //foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_20x.jpg?v=1778373930 2x" 3704 media="(max-width: 375px)" 3705 width="164" 3706 height="250" 3707 /> 3708 3709 <source 3710 data-srcset="//foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_186x.jpg?v=1778373930 1x, //foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_372x.jpg?v=1778373930 2x" 3711 srcset="//foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_10x.jpg?v=1778373930 1x, //foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_20x.jpg?v=1778373930 2x" 3712 media="(max-width: 991px)" 3713 width="186" 3714 height="285" 3715 /> 3716 3717 <img 3718 class="header-mega-menu__image" 3719 data-src="//foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_216x.jpg?v=1778373930" 3720 data-srcset="//foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_216x.jpg?v=1778373930 1x, //foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_432x.jpg?v=1778373930 2x" 3721 src="//foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_10x.jpg?v=1778373930" 3722 srcset="//foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_10x.jpg?v=1778373930 1x, //foveo.run/cdn/shop/files/Footwear_2026-03-04-780x960_20x.jpg?v=1778373930 2x" 3723 alt="" 3724 style="--img-desktop-pos: 50.0% 50.0%;" 3725 width="216" 3726 height="330" 3727 > 3728 </picture><div class="header-mega-menu__image-text-content"><div class="header-mega-menu__image-heading">WOMEN'S NNORMAL CADI</div><p class="header-mega-menu__image-subheading">Tackle any terrain</p></div></a></div></div></div> 3729</div> 3730</li></ul> 3731 </div></li>�<li><button 3732 class="header-mobile__menu-item js-mobile-header-menu-toggler" 3733 type="button" 3734 data-target="headerMobileMenu:apparel" 3735 aria-controls="headerMobileMenu:apparel" 3736 aria-expanded="false" 3737 style="--highlight-color: #000000; --highlight-background-color: rgba(0,0,0,0);" 3738 > 3739 3740 �<span class="header-mobile__menu-item-text">APPAREL</span> 3741 3742 <span class="header-mobile__menu-item-toggle-icon"> 3743 3744 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3745 <path d="M19.9201 8.9502L13.4001 15.4702C12.6301 16.2402 11.3701 16.2402 10.6001 15.4702L4.08008 8.9502" stroke="currentColor" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 3746 </svg> 3747 3748</span> 3749 </button> 3750 3751 <div 3752 id="headerMobileMenu:apparel" 3753 data-menu-type="nested" 3754 class="header-mobile__menu-list-wrapper header-mobile__menu-list-wrapper--nested js-mobile-header-menu is-hidden" 3755 > 3756 <ul class="header-mobile__menu-list header-mobile__menu-list--nested"> 3757 <li> 3758 <button 3759 class="header-mobile__menu-item header-mobile__menu-item--back js-mobile-header-menu-toggler" 3760 type="button" 3761 data-target="headerMobileMenu:apparel" 3762 aria-controls="headerMobileMenu:apparel" 3763 aria-expanded="false" 3764 > 3765 <span class="header-mobile__menu-item-icon-back"> 3766 3767 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3768 <path d="M18.0697 9.57L11.9997 3.5L5.92969 9.57" stroke="currentColor" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 3769 <path d="M12 20.4999V3.66992" stroke="currentColor" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 3770 </svg> 3771 3772</span> 3773 3774 <span class="header-mobile__menu-item-text">APPAREL</span> 3775 </button> 3776 </li><li><div class="header-mega-menu"> 3777 <div class="header-mega-menu__container"> 3778 <div class="header-mega-menu__block header-mega-menu__block--menu header-mega-menu__block--menu-rows"> 3779 <ul class="header-mega-menu__menu"><li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent"><a 3780 href="/collections/apparel/women" 3781 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 3782 3783 > 3784 �<span class="header-mega-menu__menu-item-text">Women's Apparel</span> 3785 </a> 3786 3787 <ul 3788 class="header-mega-menu__menu header-mega-menu__menu--nested
3788is-active" 3789 ><li class="header-mega-menu__menu-item-wrapper"> 3790 <a 3791 class="header-mega-menu__menu-item" 3792 href="/collections/headwear" 3793 3794 > 3795 �<span class="header-mega-menu__menu-item-text">Headwear</span> 3796 </a> 3797 </li><li class="header-mega-menu__menu-item-wrapper"> 3798 <a 3799 class="header-mega-menu__menu-item" 3800 href="/collections/tops/women" 3801 3802 > 3803 �<span class="header-mega-menu__menu-item-text">Tops</span> 3804 </a> 3805 </li><li class="header-mega-menu__menu-item-wrapper"> 3806 <a 3807 class="header-mega-menu__menu-item" 3808 href="/collections/jackets/women" 3809 3810 > 3811 �<span class="header-mega-menu__menu-item-text">Jackets</span> 3812 </a> 3813 </li><li class="header-mega-menu__menu-item-wrapper"> 3814 <a 3815 class="header-mega-menu__menu-item" 3816 href="/collections/bottoms/women" 3817 3818 > 3819 �<span class="header-mega-menu__menu-item-text">Bottoms</span> 3820 </a> 3821 </li><li class="header-mega-menu__menu-item-wrapper"> 3822 <a 3823 class="header-mega-menu__menu-item" 3824 href="/collections/socks" 3825 3826 > 3827 �<span class="header-mega-menu__menu-item-text">Socks</span> 3828 </a> 3829 </li><li class="header-mega-menu__menu-item-wrapper"> 3830 <a 3831 class="header-mega-menu__menu-item" 3832 href="/collections/gloves" 3833 3834 > 3835 �<span class="header-mega-menu__menu-item-text">Gloves</span> 3836 </a> 3837 </li></ul></li><li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent"><a 3838 href="/collections/apparel/men" 3839 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 3840 3841 > 3842 �<span class="header-mega-menu__menu-item-text">Men's Apparel</span> 3843 </a> 3844 3845 <ul 3846 class="header-mega-menu__menu header-mega-menu__menu--nested
3846is-active" 3847 ><li class="header-mega-menu__menu-item-wrapper"> 3848 <a 3849 class="header-mega-menu__menu-item" 3850 href="/collections/headwear" 3851 3852 > 3853 �<span class="header-mega-menu__menu-item-text">Headwear</span> 3854 </a> 3855 </li><li class="header-mega-menu__menu-item-wrapper"> 3856 <a 3857 class="header-mega-menu__menu-item" 3858 href="/collections/tops/men" 3859 3860 > 3861 �<span class="header-mega-menu__menu-item-text">Tops</span> 3862 </a> 3863 </li><li class="header-mega-menu__menu-item-wrapper"> 3864 <a 3865 class="header-mega-menu__menu-item" 3866 href="/collections/jackets/men" 3867 3868 > 3869 �<span class="header-mega-menu__menu-item-text">Jackets</span> 3870 </a> 3871 </li><li class="header-mega-menu__menu-item-wrapper"> 3872 <a 3873 class="header-mega-menu__menu-item" 3874 href="/collections/bottoms/men" 3875 3876 > 3877 �<span class="header-mega-menu__menu-item-text">Bottoms</span> 3878 </a> 3879 </li><li class="header-mega-menu__menu-item-wrapper"> 3880 <a 3881 class="header-mega-menu__menu-item" 3882 href="/collections/socks" 3883 3884 > 3885 �<span class="header-mega-menu__menu-item-text">Socks</span> 3886 </a> 3887 </li><li class="header-mega-menu__menu-item-wrapper"> 3888 <a 3889 class="header-mega-menu__menu-item" 3890 href="/collections/gloves" 3891 3892 > 3893 �<span class="header-mega-menu__menu-item-text">Gloves</span> 3894 </a> 3895 </li></ul></li><li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent"><h3 3896 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 3897 > 3898 �<span class="header-mega-menu__menu-item-text">Apparel Brands</span> 3899 </h3> 3900 3901 3902 <ul 3903 class="header-mega-menu__menu header-mega-menu__menu--nested
3903is-active" 3904 ><li class="header-mega-menu__menu-item-wrapper"> 3905 <a 3906 class="header-mega-menu__menu-item" 3907 href="/collections/ciele" 3908 3909 > 3910 �<span class="header-mega-menu__menu-item-text">Ciele</span> 3911 </a> 3912 </li><li class="header-mega-menu__menu-item-wrapper"> 3913 <a 3914 class="header-mega-menu__menu-item" 3915 href="/collections/craft" 3916 3917 > 3918 �<span class="header-mega-menu__menu-item-text">Craft</span> 3919 </a> 3920 </li><li class="header-mega-menu__menu-item-wrapper"> 3921 <a 3922 class="header-mega-menu__menu-item" 3923 href="/collections/foveo-running" 3924 3925 > 3926 �<span class="header-mega-menu__menu-item-text">Foveo Running</span> 3927 </a> 3928 </li><li class="header-mega-menu__menu-item-wrapper"> 3929 <a 3930 class="header-mega-menu__menu-item" 3931 href="/collections/outdoor-research" 3932 3933 > 3934 �<span class="header-mega-menu__menu-item-text">Outdoor Research</span> 3935 </a> 3936 </li><li class="header-mega-menu__menu-item-wrapper"> 3937 <a 3938 class="header-mega-menu__menu-item" 3939 href="/collections/rabbit" 3940 3941 > 3942 �<span class="header-mega-menu__menu-item-text">Rabbit</span> 3943 </a> 3944 </li><li class="header-mega-menu__menu-item-wrapper"> 3945 <a 3946 class="header-mega-menu__menu-item" 3947 href="/collections/raide-research" 3948 3949 > 3950 �<span class="header-mega-menu__menu-item-text">Raide Research</span> 3951 </a> 3952 </li></ul></li></ul> 3953 </div><div class="header-mega-menu__block header-mega-menu__block--images"><div class="header-mega-menu__block header-mega-menu__block--image header-mega-menu__block--image-multiple"><a href="/collections/craft" class="header-mega-menu__image-wrapper header-mega-menu__image-wrapper--hover"><picture class="lazy"> 3954 <source 3955 data-srcset="//foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_164x.jpg?v=1778373698 1x, //foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_328x.jpg?v=1778373698 2x" 3956 srcset="//foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_10x.jpg?v=1778373698 1x, //foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_20x.jpg?v=1778373698 2x" 3957 media="(max-width: 375px)" 3958 width="164" 3959 height="250" 3960 /> 3961 3962 <source 3963 data-srcset="//foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_186x.jpg?v=1778373698 1x, //foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_372x.jpg?v=1778373698 2x" 3964 srcset="//foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_10x.jpg?v=1778373698 1x, //foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_20x.jpg?v=1778373698 2x" 3965 media="(max-width: 991px)" 3966 width="186" 3967 height="285" 3968 /> 3969 3970 <img 3971 class="header-mega-menu__image" 3972 data-src="//foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_216x.jpg?v=1778373698" 3973 data-srcset="//foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_216x.jpg?v=1778373698 1x, //foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_432x.jpg?v=1778373698 2x" 3974 src="//foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_10x.jpg?v=1778373698" 3975 srcset="//foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_10x.jpg?v=1778373698 1x, //foveo.run/cdn/shop/files/Apparel-2026-03-01-780x960_20x.jpg?v=1778373698 2x" 3976 alt="" 3977 style="--img-desktop-pos: 50.0% 50.0%;" 3978 width="216" 3979 height="330" 3980 > 3981 </picture><div class="header-mega-menu__image-text-content"><div class="header-mega-menu__image-heading">Craft Apparel</div><p class="header-mega-menu__image-subheading">Summer 2027 has arrived</p></div></a></div><div class="header-mega-menu__block header-mega-menu__block--image header-mega-menu__block--image-multiple"><a href="/collections/rabbit" class="header-mega-menu__image-wrapper header-mega-menu__image-wrapper--hover"><picture class="lazy"> 3982 <source 3983 data-srcset="//foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_164x.jpg?v=1778373701 1
3983x, //foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_328x.jpg?v=1778373701 2x" 3984 srcset="//foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_10x.jpg?v=1778373701 1x, //foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_20x.jpg?v=1778373701 2x" 3985 media="(max-width: 375px)" 3986 width="164" 3987 height="250" 3988 /> 3989 3990 <source 3991 data-srcset="//foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_186x.jpg?v=1778373701 1x, //foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_372x.jpg?v=1778373701 2x" 3992 srcset="//foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_10x.jpg?v=1778373701 1x, //foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_20x.jpg?v=1778373701 2x" 3993 media="(max-width: 991px)" 3994 width="186" 3995 height="285" 3996 /> 3997 3998 <img 3999 class="header-mega-menu__image" 4000 data-src="//foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_216x.jpg?v=1778373701" 4001 data-srcset="//foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_216x.jpg?v=1778373701 1x, //foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_432x.jpg?v=1778373701 2x" 4002 src="//foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_10x.jpg?v=1778373701" 4003 srcset="//foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_10x.jpg?v=1778373701 1x, //foveo.run/cdn/shop/files/Apparel-2024-03-16-780x960_20x.jpg?v=1778373701 2x" 4004 alt="" 4005 style="--img-desktop-pos: 50.0% 50.0%;" 4006 width="216" 4007 height="330" 4008 > 4009 </picture><div class="header-mega-menu__image-text-content"><div class="header-mega-menu__image-heading">Rabbit</div><p class="header-mega-menu__image-subheading">Uncompromising running gear</p></div></a></div></div></div> 4010</div> 4011</li></ul> 4012 </div></li><li><a 4013 class="header-mobile__menu-item header-mobile__menu-item-link" 4014 href="/collections/nutrition" 4015 > 4016 �<span class="header-mobile__menu-item-text">NUTRITION</span> 4017 </a></li>�<li><button 4018 class="header-mobile__menu-item js-mobile-header-menu-toggler" 4019 type="button" 4020 data-target="headerMobileMenu:accessories" 4021 aria-controls="headerMobileMenu:accessories" 4022 aria-expanded="false" 4023 style="--highlight-color: #000000; --highlight-background-color: rgba(0,0,0,0);" 4024 > 4025 4026 �<span class="header-mobile__menu-item-text">ACCESSORIES</span> 4027 4028 <span class="header-mobile__menu-item-toggle-icon"> 4029 4030 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4031 <path d="M19.9201 8.9502L13.4001 15.4702C12.6301 16.2402 11.3701 16.2402 10.6001 15.4702L4.08008 8.9502" stroke="currentColor" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 4032 </svg> 4033 4034</span> 4035 </button> 4036 4037 <div 4038 id="headerMobileMenu:accessories" 4039 data-menu-type="nested" 4040 class="header-mobile__menu-list-wrapper header-mobile__menu-list-wrapper--nested js-mobile-header-menu is-hidden" 4041 > 4042 <ul class="header-mobile__menu-list header-mobile__menu-list--nested"> 4043 <li> 4044 <button 4045 class="header-mobile__menu-item header-mobile__menu-item--back js-mobile-header-menu-toggler" 4046 type="button" 4047 data-target="headerMobileMenu:accessories" 4048 aria-controls="headerMobileMenu:accessories" 4049 aria-expanded="false" 4050 > 4051 <span class="header-mobile__menu-item-icon-back"> 4052 4053 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4054 <path d="M18.0697 9.57L11.9997 3.5L5.92969 9.57" stroke="currentColor" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 4055 <path d="M12 20.4999V3.66992" stroke="currentColor" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 4056 </svg> 4057 4058</span> 4059 4060 <span class="header-mobile__menu-item-text">ACCESSORIES</span> 4061 </button> 4062 </li><li><div class="header-mega-menu"> 4063 <div class="header-mega-menu__container"> 4064 <div class="header-mega-menu__block header-mega-menu__block--menu header-mega-menu__block--menu-rows"> 4065 <ul class="header-mega-menu__menu"><li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent"><a 4066 href="/collections/accessories" 4067 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 4068 4069 > 4070 �<span class="header-mega-menu__menu-item-text">Accessories</span> 4071 </a> 4072 4073 <ul 4074 class="header-mega-menu__menu header-mega-menu__menu--nested
4074is-active" 4075 ><li class="header-mega-menu__menu-item-wrapper"> 4076 <a 4077 class="header-mega-menu__menu-item" 4078 href="/products/foveo-running-gift-card" 4079 4080 > 4081 �<span class="header-mega-menu__menu-item-text">Gift Cards</span> 4082 </a> 4083 </li><li class="header-mega-menu__menu-item-wrapper"> 4084 <a 4085 class="header-mega-menu__menu-item" 4086 href="/collections/body-care" 4087 4088 > 4089 �<span class="header-mega-menu__menu-item-text">Body Care</span> 4090 </a> 4091 </li><li class="header-mega-menu__menu-item-wrapper"> 4092 <a 4093 class="header-mega-menu__menu-item" 4094 href="/collections/gaiters" 4095 4096 > 4097 �<span class="header-mega-menu__menu-item-text">Gaiters</span> 4098 </a> 4099 </li><li class="header-mega-menu__menu-item-wrapper"> 4100 <a 4101 class="header-mega-menu__menu-item" 4102 href="/collections/glasses" 4103 4104 > 4105 �<span class="header-mega-menu__menu-item-text">Glasses</span> 4106 </a> 4107 </li><li class="header-mega-menu__menu-item-wrapper"> 4108 <a 4109 class="header-mega-menu__menu-item" 4110 href="/collections/gloves" 4111 4112 > 4113 �<span class="header-mega-menu__menu-item-text">Gloves</span> 4114 </a> 4115 </li><li class="header-mega-menu__menu-item-wrapper"> 4116 <a 4117 class="header-mega-menu__menu-item" 4118 href="/collections/headwear" 4119 4120 > 4121 �<span class="header-mega-menu__menu-item-text">Headwear</span> 4122 </a> 4123 </li><li class="header-mega-menu__menu-item-wrapper"> 4124 <a 4125 class="header-mega-menu__menu-item" 4126 href="/collections/insoles" 4127 4128 > 4129 �<span class="header-mega-menu__menu-item-text">Insoles</span> 4130 </a> 4131 </li><li class="header-mega-menu__menu-item-wrapper"> 4132 <a 4133 class="header-mega-menu__menu-item" 4134 href="/collections/poles" 4135 4136 > 4137 �<span class="header-mega-menu__menu-item-text">Poles</span> 4138 </a> 4139 </li><li class="header-mega-menu__menu-item-wrapper"> 4140 <a 4141 class="header-mega-menu__menu-item" 4142 href="/collections/socks" 4143 4144 > 4145 �<span class="header-mega-menu__menu-item-text">Socks</span> 4146 </a> 4147 </li></ul></li><li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent"><h3 4148 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 4149 > 4150 �<span class="header-mega-menu__menu-item-text">Hydration & Storage</span> 4151 </h3> 4152 4153 4154 <ul 4155 class="header-mega-menu__menu header-mega-menu__menu--nested
4155is-active" 4156 ><li class="header-mega-menu__menu-item-wrapper"> 4157 <a 4158 class="header-mega-menu__menu-item" 4159 href="/collections/packs" 4160 4161 > 4162 �<span class="header-mega-menu__menu-item-text">Running Vests / Belts / Packs</span> 4163 </a> 4164 </li><li class="header-mega-menu__menu-item-wrapper"> 4165 <a 4166 class="header-mega-menu__menu-item" 4167 href="/collections/hydration" 4168 4169 > 4170 �<span class="header-mega-menu__menu-item-text">Hydration Storage</span> 4171 </a> 4172 </li></ul></li><li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent"><h3 4173 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 4174 > 4175 �<span class="header-mega-menu__menu-item-text">Electronics</span> 4176 </h3> 4177 4178 4179 <ul 4180 class="header-mega-menu__menu header-mega-menu__menu--nested is-active" 4181 ><li class="header-mega-menu__menu-item-wrapper"> 4182 <a 4183 class="header-mega-menu__menu-item" 4184 href="/collections/watches" 4185 4186 > 4187 �<span class="header-mega-menu__menu-item-text">Watches</span> 4188 </a> 4189 </li><li class="header-mega-menu__menu-item-wrapper"> 4190 <a 4191 class="header-mega-menu__menu-item" 4192 href="/collections/lights" 4193 4194 > 4195 �<span class="header-mega-menu__menu-item-text">Lighting / Safety</span> 4196 </a> 4197 </li><li class="header-mega-menu__menu-item-wrapper"> 4198 <a 4199 class="header-mega-menu__menu-item" 4200 href="/collections/headphones" 4201 4202 > 4203 �<span class="header-mega-menu__menu-item-text">Headphones</span> 4204 </a> 4205 </li></ul></li></ul> 4206 </div><div class="header-mega-menu__block header-mega-menu__block--images"><div class="header-mega-menu__block header-mega-menu__block--image"><a href="/products/lf-2l-running-belt" class="header-mega-menu__image-wrapper header-mega-menu__image-wrapper--hover"><picture class="lazy"> 4207 <source 4208 data-srcset="//foveo.run/cdn/shop/files/Accessories_norda_raide_343x.jpg?v=1778372899 1x, //foveo.run/cdn/shop/files/Accessories_norda_raide_686x.jpg?v=1778372899 2x" 4209 srcset="//foveo.run/cdn/shop/files/Accessories_norda_raide_10x.jpg?v=1778372899 1x, //foveo.run/cdn/shop/files/Accessories_norda_raide_20x.jpg?v=1778372899 2x" 4210 media="(max-width: 375px)" 4211 width="343" 4212 height="250" 4213 /> 4214 4215 <source 4216 data-srcset="//foveo.run/cdn/shop/files/Accessories_norda_raide_388x.jpg?v=1778372899 1x, //foveo.run/cdn/shop/files/Accessories_norda_raide_776x.jpg?v=1778372899 2x" 4217 srcset="//foveo.run/cdn/shop/files/Accessories_norda_raide_10x.jpg?v=1778372899 1x, //foveo.run/cdn/shop/files/Accessories_norda_raide_20x.jpg?v=1778372899 2x" 4218 media="(max-width: 991px)" 4219 width="388" 4220 height="283" 4221 /> 4222 4223 <img 4224 class="header-mega-menu__image" 4225 data-src="//foveo.run/cdn/shop/files/Accessories_norda_raide_448x.jpg?v=1778372899" 4226 data-srcset="//foveo.run/cdn/shop/files/Accessories_norda_raide_448x.jpg?v=1778372899 1x, //foveo.run/cdn/shop/files/Accessories_norda_raide_896x.jpg?v=1778372899 2x" 4227 src="//foveo.run/cdn/shop/files/Accessories_norda_raide_10x.jpg?v=1778372899" 4228 srcset="//foveo.run/cdn/shop/files/Accessories_norda_raide_10x.jpg?v=1778372899 1x, //foveo.run/cdn/shop/files/Accessories_norda_raide_20x.jpg?v=1778372899 2x" 4229 alt="" 4230 style="--img-desktop-pos: 50.0% 50.0%;" 4231 width="448" 4232 height="327" 4233 > 4234 </picture><div class="header-mega-menu__image-text-content"><div class="header-mega-menu__image-heading">Raide Research</div><p class="header-mega-menu__image-subheading">2L LF Running Belt</p></div></a></div></div></div> 4235</div> 4236</li></ul> 4237 </div></li><li><a 4238 class="header-mobile__menu-item header-mobile__menu-item-link" 4239 href="/collections/on-sale" 4240 > 4241 �<span class="header-mobile__menu-item-text">SALE</span> 4242 </a></li><li><a 4243 class="header-mobile__menu-item header-mobile__menu-item-link" 4244 href="/pages/sweat-testing" 4245 > 4246 �<span class="header-mobile__menu-item-text">SWEAT TESTING</span> 4247 </a></li>�<li><button 4248 class="header-mobile__menu-item js-mobile-header-menu-toggler" 4249 type="button" 4250 data-target="headerMobileMenu:events" 4251 aria-controls="headerMobileMenu:events" 4252 aria-expanded="false" 4253 style="--highlight-color: #000000; --highlight-background-color: rgba(0,0,0,0);" 4254 > 4255 4256 �<span class="header-mobile__menu-item-text">EVENTS</span> 4257 4258 <span class="header-mobile__menu-item-toggle-icon"> 4259 4260 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4261 <path d="M19.9201 8.9502L13.4001 15.4702C12.6301 16.2402 11.3701 16.2402 10.6001 15.4702L4.08008 8.9502" stroke="currentColor" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 4262 </svg> 4263 4264</span> 4265 </button> 4266 4267 <div 4268 id="headerMobileMenu:events" 4269 data-menu-type="nested" 4270 class="header-mobile__menu-list-wrapper header-mobile__menu-list-wrapper--nested js-mobile-header-menu is-hidden" 4271 > 4272 <ul class="header-mobile__menu-list header-mobile__menu-list--nested"> 4273 <li> 4274 <button 4275 class="header-mobile__menu-item header-mobile__menu-item--back js-mobile-header-menu-toggler" 4276 type="button" 4277 data-target="headerMobileMenu:events" 4278 aria-controls="headerMobileMenu:events" 4279 aria-expanded="false" 4280 > 4281 <span class="header-mobile__menu-item-icon-back"> 4282 4283 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4284 <path d="M18.0697 9.57L11.9997 3.5L5.92969 9.57" stroke="currentColor" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 4285 <path d="M12 20.4999V3.66992" stroke="currentColor" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 4286 </svg> 4287 4288</span> 4289 4290 <span class="header-mobile__menu-item-text">EVENTS</span> 4291 </button> 4292 </li><li><div class="header-mega-menu"> 4293 <div class="header-mega-menu__container"> 4294 <div class="header-mega-menu__block header-mega-menu__block--menu header-mega-menu__block--menu-rows"> 4295 <ul class="header-mega-menu__menu"><li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent"><a 4296 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 4297 href="/pages/events-calendar" 4298 4299 > 4300 �<span class="header-mega-menu__menu-item-text">Events Calendar</span> 4301 </a></li><li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent"><a 4302 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 4303 href="/pages/group-runs" 4304 4305 > 4306 �<span class="header-mega-menu__menu-item-text">Local Run Clubs</span> 4307 </a></li><li class="header-mega-menu__menu-item-wrapper header-mega-menu__menu-item-wrapper--parent"><a 4308 class="header-mega-menu__menu-item header-mega-menu__menu-item--parent" 4309 href="/pages/races" 4310 4311 > 4312 �<span class="header-mega-menu__menu-item-text">Local Races</span> 4313 </a></li></ul> 4314 </div></div> 4315</div> 4316</li></ul> 4317 </div></li></ul> 4318 4319 <ul class="header-mobile__additional-menu"><li> 4320 <a href="https://foveo.run/customer_authentication/redirect?locale=en®ion_country=CA" class="header-mobile__menu-item header-mobile__menu-item-link"> 4321 4322 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4323 <path d="M12 2C6.477 2 2 6.477 2 12C2 17.523 6.477 22 12 22C17.523 22 22 17.523 22 12C22 6.477 17.523 2 12 2Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4324 <path d="M4.27148 18.346C4.27148 18.346 6.50048 15.5 12.0005 15.5C17.5005 15.5 19.7305 18.346 19.7305 18.346M12.0005 12C12.7961 12 13.5592 11.6839 14.1218 11.1213C14.6844 10.5587 15.0005 9.79565 15.0005 9C15.0005 8.20435 14.6844 7.44129 14.1218 6.87868C13.5592 6.31607 12.7961 6 12.0005 6C11.2048 6 10.4418 6.31607 9.87916 6.87868C9.31655 7.44129 9.00048 8.20435 9.00048 9C9.00048 9.79565 9.31655 10.5587 9.87916 11.1213C10.4418 11.6839 11.2048 12 12.0005 12Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4325 </svg> 4326 4327<span class="header-mobile__menu-item-text"> 4328 Login�</span> 4329 </a> 4330 </li></ul> 4331 </nav> 4332</div> 4333 4334 4335 4336 4337 <link rel="modulepreload" href="//foveo.run/cdn/shop/t/23/assets/section-header.build.min.js?v=161089647991506929621781878723" as="script" crossorigin="anonymous"> 4338
4338<script src="//foveo.run/cdn/shop/t/23/assets/section-header.build.min.js?v=161089647991506929621781878723" type="module" crossorigin="anonymous"></script>
4338 4339 4340 4341<style> #shopify-section-sections--27075726999863__header .header-mega-menu__container {width: 80%; margin: 0 auto;} </style></div><div id="shopify-section-sections--27075726999863__cart-drawer" class="shopify-section shopify-section-group-header-group-with-cart-drawer"> 4342 4343 4344 4345 <link href="//foveo.run/cdn/shop/t/23/assets/cart.build.css?v=173237046420511981601784799672" rel="stylesheet" type="text/css" media="all" /> 4346 4347<section 4348 id="CartDrawer" 4349 class="drawer drawer--right cart-drawer is-empty" 4350 data-section-type="cart-template" 4351 data-section-modification="drawer" 4352 data-section-id="sections--27075726999863__cart-drawer" 4353 role="dialog" 4354 aria-labelledby="CartDrawer-your-cart-0" 4355> 4356 <div class="drawer__body cart-drawer__container js-cart-container" data-scrollable> 4357 <div class="cart-drawer__content js-cart-content"> 4358 <div class="drawer__header cart-drawer__heading"> 4359 <h2 class="drawer__title" id="CartDrawer-your-cart-0">Your cart (0)</h2> 4360 4361 <button 4362 class="drawer__close focus-visible-outline cart-drawer__close js-cart-close-button" 4363 data-target="CartDrawer" 4364 data-js-toggle="CartDrawer" 4365 aria-label="Close (esc)" 4366 > 4367 4368 4369 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4370 <path d="M18 6L6 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4371 <path d="M6 6L18 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4372 </svg> 4373 4374 4375 </button> 4376 </div> 4377 4378<div class="cart-empty"> 4379 <form id="cart-sections--27075726999863__cart-drawer" class="is-hidden"></form> 4380 4381 <h3 class="cart-empty__heading">Your cart is empty</h3> 4382 4383 4384 <div class="cart-empty__text rte"><p>Tax included and shipping calculated at checkout</p></div> 4385 �</div> 4386</div><div class="drawer__footer cart-drawer__footer">�<div class="cart-footer" style="--minimum-order-amount-message:#CC0000;--minimum-order-amount-reached-message:#000000;"> 4387 <div class="cart-footer__summary">���<div class="cart-block cart-block--accordion-container js-accordion-container"> 4388 <div class="cart-block__accordion js-accordion-item"> 4389 <button 4390 class="cart-block__header focus-visible-outline js-accordion-control" 4391 aria-controls="cart-note" 4392 aria-expanded="false" 4393 > 4394 <span class="cart-block__icon cart-block__icon-plus"> 4395 4396 4397 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4398 <path d="M6 12H18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4399 <path d="M12 18V6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4400 </svg> 4401 4402 4403 </span> 4404 4405 <span class="cart-block__icon cart-block__icon-minus"> 4406 4407 4408 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4409 <path d="M6 12H18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4410 </svg> 4411 4412 4413 </span> 4414 4415 <span class="cart-block__text js-cart-note-control-text">Add a note to your order</span> 4416 </button> 4417 4418 <div 4419 id="cart-note" 4420 class="cart-block__content js-accordion-content" 4421 style="height: 0;" 4422 > 4423 <div class="cart-block__wrapper js-accordion-inner"> 4424 <label for="note" class="visually-hidden">Add a note to your order</label> 4425 4426 <textarea 4427 id="note" 4428 name="note" 4429 form="cart-sections--27075726999863__cart-drawer" 4430 class="textarea cart-block__field js-cart-notes-field" 4431 aria-label="Add a note to your order" 4432 placeholder="Leave a note for seller" 4433 ></textarea> 4434 </div> 4435 </div> 4436 4437 </div> 4438 </div><div class="cart-footer__subtotal-block js-cart-subtotal"><p class="cart-footer__subtotal"> 4439 <span class="cart-footer__subtotal-label">Subtotal:</span> 4440 4441 <span class="cart-footer__subtotal-value">$0.00</span> 4442 </p> 4443 </div> 4444 </div> 4445 4446 <div class="cart-footer__main"><small class="rte cart-footer__tax">Taxes and <a href="/policies/shipping-policy">shipping</a> calculated at checkout�</small><div class="cart-footer__ctas">�<div class="js-cart-footer-button"> 4447 <button 4448 type="submit" 4449 class="cart-footer__button button button--secondary button--block js-cart-button" 4450 name="checkout"
4451 form="cart-sections--27075726999863__cart-drawer" 4452 ><span class="cart-footer__button-label">Check out</span> 4453 4454 <span class="cart-footer__subtotal-value">$0.00</span></button> 4455 </div></div><div class="additional-checkout-buttons cart-footer__ctas cart-footer__ctas--additional js-cart-footer-additional-buttons"> 4456 <div class="dynamic-checkout__content" id="dynamic-checkout-cart" data-shopify="dynamic-checkout-cart"> <shopify-accelerated-checkout-cart wallet-configs="[{"supports_subs":true,"supports_def_opts":false,"name":"shop_pay","wallet_params":{"shopId":69969084727,"merchantName":"Foveo Running","personalized":true}},{"supports_subs":true,"supports_def_opts":false,"name":"paypal","wallet_params":{"shopId":69969084727,"countryCode":"CA","merchantName":"Foveo Running","phoneRequired":false,"companyRequired":false,"shippingType":"shipping","shopifyPaymentsEnabled":true,"hasManagedSellingPlanState":false,"requiresBillingAgreement":false,"gatewayType":"CONNECTED","merchantId":"6VSTRT8TQRLSQ","sdkUrl":"https://www.paypal.com/sdk/js?components=buttons\u0026commit=false\u0026currency=CAD\u0026locale=en_US\u0026client-id=AexZEtAxk09Ncgj6FSWFFyGKbxxAZ_LTyJ2DPdJWl1YUlecinmc5AfIaRF2qYjWlusWahlzz6SVkY5Ci\u0026merchant-id=6VSTRT8TQRLSQ\u0026intent=authorize","serviceableCountryCodes":["AE","AT","AU","BE","CA","CH","CZ","DE","DK","ES","FI","FR","GB","HK","IE","IL","IT","JP","KR","MY","NL","NO","NZ","PL","PT","SE","SG","US"]}}]" access-token="0c2389f834fc854ad775da3959c2634e" buyer-country="CA" buyer-locale="en" buyer-currency="CAD" shop-id="69969084727" cart-id="13ed32cde876a78a83152565ee5c7031" enabled-flags="["1172c16a","a1d1f9a1","f5afabb3","370070f3"]" > <div class="wallet-button-wrapper"> <ul class='wallet-cart-grid wallet-cart-grid--skeleton' role="list" data-shopify-buttoncontainer="true"> <li data-testid='grid-cell' class='wallet-cart-button-container'><div class='wallet-cart-button wallet-cart-button__skeleton' role='button' disabled aria-hidden='true'> </div></li><li data-testid='grid-cell' class='wallet-cart-button-container'><div class='wallet-cart-button wallet-cart-button__skeleton' role='button' disabled aria-hidden='true'> </div></li> </ul> </div> </shopify-accelerated-checkout-cart> </div> 4457 </div></div> 4458 </div></div></div>�<link href="//foveo.run/cdn/shop/t/23/assets/preloader.build.css?v=26563976012491606881781878693" rel="stylesheet" type="text/css" media="all" /><div class="preloader-wrapper js-preloader"> 4459 <div class="preloader"></div> 4460</div> 4461 4462</section> 4463 4464 4465 4466 <link rel="modulepreload" href="//foveo.run/cdn/shop/t/23/assets/cart-drawer.build.min.js?v=120082528387300658081781878627" as="script" crossorigin="anonymous"> 4467
4467<script src="//foveo.run/cdn/shop/t/23/assets/cart-drawer.build.min.js?v=120082528387300658081781878627" type="module" crossorigin="anonymous"></script>
4467 4468 <link rel="modulepreload" href="//foveo.run/cdn/shop/t/23/assets/cart-33639c07.js?v=158305272294380774601781878626" as="script" crossorigin="anonymous"> 4469 4470 4471</div> 4472<!-- END sections: header-group-with-cart-drawer --><!-- BEGIN sections: popup-group --> 4473 4474<!-- END sections: popup-group --> 4475 4476 4477 4478 <link rel="modulepreload" href="//foveo.run/cdn/shop/t/23/assets/component-predictive-search.build.min.js?v=92444193958754786821781878648" as="script" crossorigin="anonymous"> 4479
4479<script src="//foveo.run/cdn/shop/t/23/assets/component-predictive-search.build.min.js?v=92444193958754786821781878648" type="module" crossorigin="anonymous"></script>
4479 4480 4481<div 4482 class="predictive-search modal js-predictive-search" 4483 id="headerDrawerSearch" 4484 role="dialog" 4485 aria-labelledby="headerDrawerSearchTitle" 4486> 4487 <form 4488 class="predictive-search__form js-predictive-search-form" 4489 action="/search/suggest" 4490 method="get" 4491 role="search" 4492 > 4493 <div class="predictive-search__header"> 4494 <h2 class="predictive-search__title" id="headerDrawerSearchTitle">Search</h2> 4495 4496 <button 4497 class="predictive-search__close js-header-drawer-toggler" 4498 type="button" 4499 aria-label="Close search" 4500 data-target="headerDrawerSearch" 4501 data-js-toggle="searchToggleDrawer" 4502 > 4503 4504 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4505 <path d="M18 6L6 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4506 <path d="M6 6L18 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4507 </svg> 4508 4509</button> 4510 </div> 4511 4512 <div class="predictive-search__search"> 4513 <div class="input-wrapper predictive-search__input-wrapper"> 4514 <button 4515 class="focus-visible-outline predictive-search__submit" 4516 type="submit" 4517 aria-label="Submit search query" 4518 > 4519 4520 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4521 <path d="M17.1218 17.122L21.9998 22M10.8498 2C13.2938 2 15.5068 2.99 17.1078 4.592C18.5556 6.03977 19.4567 7.94476 19.6574 9.98239C19.8581 12.02 19.3461 14.0642 18.2086 15.7667C17.0711 17.4691 15.3785 18.7245 13.4192 19.3189C11.4599 19.9133 9.35508 19.8099 7.46343 19.0264C5.57178 18.2429 4.01032 16.8277 3.0451 15.022C2.07988 13.2163 1.77062 11.1318 2.17003 9.12364C2.56943 7.11548 3.65277 5.30794 5.23548 4.00899C6.81818 2.71003 8.80231 2.00005 10.8498 2Z" stroke="currentColor" stroke-width="1.5"/> 4522 </svg> 4523 4524</button> 4525 4526 <input 4527 class="input predictive-search__input js-predictive-search-input" 4528 type="text" 4529 name="q" 4530 id="Search" 4531 placeholder="What are you looking for?" 4532 aria-label="Search" 4533 autocomplete="off" 4534 autocapitalize="off" 4535 spellcheck="false" 4536 required 4537 /> 4538 4539 <button 4540 class="focus-visible-outline predictive-search__reset" 4541 type="reset" 4542 aria-label="Reset search" 4543 > 4544 4545 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4546 <path d="M18 6L6 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4547 <path d="M6 6L18 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4548 </svg> 4549 4550</button> 4551 </div> 4552 </div> 4553 4554 <div class="predictive-search__result js-predictive-search-result"><div class="predictive-search__featured-items-container"><h3 class="predictive-search__featured-items-title">Most searched</h3></div></div> 4555 4556 <div class="predictive-search__footer is-hidden js-predictive-search-footer"> 4557 <button 4558 class="focus-visible-outline button predictive-search__apply button--secondary button--block js-predictive-search-apply-button" 4559 tabindex="0" 4560 type="submit" 4561 aria-label="Submit search query" 4562 aria-hidden="true" 4563 disabled 4564 >See all results</button>
4565 </div> 4566 4567 <input type="hidden" name="type" value="product,article,page" /> 4568 </form>�<link href="//foveo.run/cdn/shop/t/23/assets/preloader.build.css?v=26563976012491606881781878693" rel="stylesheet" type="text/css" media="all" /><div class="preloader-wrapper js-preloader"> 4569 <div class="preloader"></div> 4570</div> 4571</div> 4572<main id="MainContent" class="content" role="main" tabindex="-1"> 4573 4574 4575 4576 4577 4578 4579 4580 <link href="//foveo.run/cdn/shop/t/23/assets/breadcrumbs.build.css?v=49547434090873909921781878624" rel="stylesheet" type="text/css" media="all" /> 4581 4582<style data-shopify> 4583 .breadcrumb { 4584 padding-top:16px; 4585 padding-bottom:0px; 4586 } 4587 4588 @media screen and (min-width: 992px) { 4589 .breadcrumb { 4590 padding-top:32px; 4591 padding-bottom:0px; 4592 } 4593 } 4594 </style> 4595 4596 <nav 4597 class="breadcrumb " 4598 aria-label="Breadcrumbs" 4599 > 4600 <div class="breadcrumb__container"> 4601 <a 4602 class="breadcrumb__link" 4603 href="/" 4604 title="Home" 4605 > 4606 Home 4607 </a> 4608 4609 4610 4611 <span aria-hidden="true" class="breadcrumb__separator">/</span> 4612 4613 <span class="breadcrumb__item">Search</span> 4614 </div> 4615 </nav> 4616 4617<div id="shopify-section-template--27075726901559__search-template" class="shopify-section"> 4618 4619 4620 4621 <link href="//foveo.run/cdn/shop/t/23/assets/search.build.css?v=44986222694131329811781878708" rel="stylesheet" type="text/css" media="all" /> 4622 4623 4624 4625 4626 4627 <link href="//foveo.run/cdn/shop/t/23/assets/tabs-ui.build.css?v=14862495455039467731781878754" rel="stylesheet" type="text/css" media="all" /> 4628 4629<style data-shopify>#shopify-section-template--27075726901559__search-template{ 4630 padding-top:14px; 4631 padding-bottom:52px; 4632 } 4633 4634 @media screen and (min-width: 768px) { 4635 #shopify-section-template--27075726901559__search-template{ 4636 padding-top:22px; 4637 padding-bottom:60px; 4638 } 4639 }</style>�<section class="search js-search" id="template--27075726901559__search-template" style="--container-width: 1952px;"> 4640 <div class="search__container"> 4641 <div class="search__header"> 4642 <h1 class="h1 search__title">Search Results</h1><div class="search__header-content"><form class="search__form" action="/search" method="get" role="search"> 4643 <div class="input-wrapper search__input-wrapper"> 4644 <div class="input-wrapper search__input-wrapper"> 4645 <input 4646 class="input search__input js-search-input" 4647 type="search" 4648 id="Search-form-input" 4649 placeholder="Search" 4650 name="q" 4651 value="" 4652 autocomplete="off" 4653 autocapitalize="off" 4654 spellcheck="false" 4655 required 4656 /> 4657 4658 <button 4659 class="popup-close-icon-button focus-visible-outline search__reset js-search-reset" 4660 type="reset" 4661 aria-label="Reset search" 4662 > 4663 4664 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4665 <path d="M18 6L6 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4666 <path d="M6 6L18 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4667 </svg> 4668 4669</button> 4670 4671 <button 4672 class="focus-visible-outline search__submit" 4673 type="submit" 4674 aria-label="Submit search query" 4675 > 4676 4677 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4678 <path d="M17.1218 17.122L21.9998 22M10.8498 2C13.2938 2 15.5068 2.99 17.1078 4.592C18.5556 6.03977 19.4567 7.94476 19.6574 9.98239C19.8581 12.02 19.3461 14.0642 18.2086 15.7667C17.0711 17.4691 15.3785 18.7245 13.4192 19.3189C11.4599 19.9133 9.35508 19.8099 7.46343 19.0264C5.57178 18.2429 4.01032 16.8277 3.0451 15.022C2.07988 13.2163 1.77062 11.1318 2.17003 9.12364C2.56943 7.11548 3.65277 5.30794 5.23548 4.00899C6.81818 2.71003 8.80231 2.00005 10.8498 2Z" stroke="currentColor" stroke-width="1.5"/> 4679 </svg> 4680 4681</button> 4682 </div> 4683 </div> 4684 4685 <input name="options[prefix]" type="hidden" value="last"> 4686 <input class="js-search-types" type="hidden" name="type" value="product,article,page" /> 4687 </form> 4688 </div><div class="search__header-row is-hidden js-product-filters"> 4689 <div class="search__header-col"> 4690 <div class="search__grid-buttons js-grid-view-buttons animated"> 4691 <button 4692 class="search__grid-button is-active js-grid-view-btn" 4693 data-grid-cols="4" 4694 > 4695 <span class="search__grid-button-icon-desktop"> 4696 <span class="visually-hidden">Change grid view to 4 products per row</span> 4697 4698 4699 4700 <svg class="icon" aria-hidden="true" focusable="false" width="16" height="16" viewB
4700ox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 4701 <path d="M2.42423 0H0.484845C0.217211 0 0 0.217211 0 0.484845V2.42423C0 2.69186 0.217211 2.90907 0.484845 2.90907H2.42423C2.69186 2.90907 2.90907 2.69186 2.90907 2.42423V0.484845C2.90907 0.217211 2.69186 0 2.42423 0Z" fill="currentColor"/> 4702 <path d="M2.42423 4.36328H0.484845C0.217211 4.36328 0 4.58049 0 4.84813V6.78751C0 7.05514 0.217211 7.27235 0.484845 7.27235H2.42423C2.69186 7.27235 2.90907 7.05514 2.90907 6.78751V4.84813C2.90907 4.58049 2.69186 4.36328 2.42423 4.36328Z" fill="currentColor"/> 4703 <path d="M2.42423 8.72754H0.484845C0.217211 8.72754 0 8.94475 0 9.21238V11.1518C0 11.4194 0.217211 11.6366 0.484845 11.6366H2.42423C2.69186 11.6366 2.90907 11.4194 2.90907 11.1518V9.21238C2.90907 8.94475 2.69186 8.72754 2.42423 8.72754Z" fill="currentColor"/> 4704 <path d="M2.42423 13.0908H0.484845C0.217211 13.0908 0 13.308 0 13.5757V15.515C0 15.7827 0.217211 15.9999 0.484845 15.9999H2.42423C2.69186 15.9999 2.90907 15.7827 2.90907 15.515V13.5757C2.90907 13.308 2.69186 13.0908 2.42423 13.0908Z" fill="currentColor"/> 4705 <path d="M6.78751 0H4.84813C4.58049 0 4.36328 0.217211 4.36328 0.484845V2.42423C4.36328 2.69186 4.58049 2.90907 4.84813 2.90907H6.78751C7.05514 2.90907 7.27235 2.69186 7.27235 2.42423V0.484845C7.27235 0.217211 7.05514 0 6.78751 0Z" fill="currentColor"/> 4706 <path d="M6.78751 4.36328H4.84813C4.58049 4.36328 4.36328 4.58049 4.36328 4.84813V6.78751C4.36328 7.05514 4.58049 7.27235 4.84813 7.27235H6.78751C7.05514 7.27235 7.27235 7.05514 7.27235 6.78751V4.84813C7.27235 4.58049 7.05514 4.36328 6.78751 4.36328Z" fill="currentColor"/> 4707 <path d="M6.78751 8.72754H4.84813C4.58049 8.72754 4.36328 8.94475 4.36328 9.21238V11.1518C4.36328 11.4194 4.58049 11.6366 4.84813 11.6366H6.78751C7.05514 11.6366 7.27235 11.4194 7.27235 11.1518V9.21238C7.27235 8.94475 7.05514 8.72754 6.78751 8.72754Z" fill="currentColor"/> 4708 <path d="M6.78751 13.0908H4.84813C4.58049 13.0908 4.36328 13.308 4.36328 13.5757V15.515C4.36328 15.7827 4.58049 15.9999 4.84813 15.9999H6.78751C7.05514 15.9999 7.27235 15.7827 7.27235 15.515V13.5757C7.27235 13.308 7.05514 13.0908 6.78751 13.0908Z" fill="currentColor"/> 4709 <path d="M11.1508 0H9.21141C8.94377 0 8.72656 0.217211 8.72656 0.484845V2.42423C8.72656 2.69186 8.94377 2.90907 9.21141 2.90907H11.1508C11.4184 2.90907 11.6356 2.69186 11.6356 2.42423V0.484845C11.6356 0.217211 11.4184 0 11.1508 0Z" fill="currentColor"/> 4710 <path d="M11.1508 4.36328H9.21141C8.94377 4.36328 8.72656 4.58049 8.72656 4.84813V6.78751C8.72656 7.05514 8.94377 7.27235 9.21141 7.27235H11.1508C11.4184 7.27235 11.6356 7.05514 11.6356 6.78751V4.84813C11.6356 4.58049 11.4184 4.36328 11.1508 4.36328Z" fill="currentColor"/> 4711 <path d="M11.1508 8.72754H9.21141C8.94377 8.72754 8.72656 8.94475 8.72656 9.21238V11.1518C8.72656 11.4194 8.94377 11.6366 9.21141 11.6366H11.1508C11.4184 11.6366 11.6356 11.4194 11.6356 11.1518V9.21238C11.6356 8.94475 11.4184 8.72754 11.1508 8.72754Z" fill="currentColor"/> 4712 <path d="M11.1508 13.0908H9.21141C8.94377 13.0908 8.72656 13.308 8.72656 13.5757V15.515C8.72656 15.7827 8.94377 15.9999 9.21141 15.9999H11.1508C11.4184 15.9999 11.6356 15.7827 11.6356 15.515V13.5757C11.6356 13.308 11.4184 13.0908 11.1508 13.0908Z" fill="currentColor"/> 4713 <path d="M15.516 0H13.5766C13.309 0 13.0918 0.217211 13.0918 0.484845V2.42423C13.0918 2.69186 13.309 2.90907 13.5766 2.90907H15.516C15.7837 2.90907 16.0009 2.69186 16.0009 2.42423V0.484845C16.0009 0.217211 15.7837 0 15.516 0Z" fill="currentColor"/> 4714 <path d="M15.516 4.36328H13.5766C13.309 4.36328 13.0918 4.58049 13.0918 4.84813V6.78751C13.0918 7.05514 13.309 7.27235 13.5766 7.27235H15.516C15.7837 7.27235 16.0009 7.05514 16.0009 6.78751V4.84813C16.0009 4.58049 15.7837 4.36328 15.516 4.36328Z" fill="currentColor"/> 4715 <path d="M15.516 8.72754H13.5766C13.309 8.72754 13.0918 8.94475 13.0918 9.21238V11.1518C13.0918 11.4194 13.309 11.6366 13.5766 11.6366H15.516C15.7837 11.6366 16.0009 11.4194 16.0009 11.1518V9.21238C16.0009 8.94475 15.7837 8.72754 15.516 8.72754Z" fill="currentColor"/>
4716 <path d="M15.516 13.0908H13.5766C13.309 13.0908 13.0918 13.308 13.0918 13.5757V15.515C13.0918 15.7827 13.309 15.9999 13.5766 15.9999H15.516C15.7837 15.9999 16.0009 15.7827 16.0009 15.515V13.5757C16.0009 13.308 15.7837 13.0908 15.516 13.0908Z" fill="currentColor"/> 4717 </svg> 4718 4719 4720 </span> 4721 4722 <span class="search__grid-button-icon-mobile"> 4723 <span class="visually-hidden">Change grid view to 2 products per row</span> 4724 4725 4726 4727 <svg class="icon" aria-hidden="true" focusable="false" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 4728 <rect width="7.11107" height="7.11107" rx="1" fill="currentColor"/> 4729 <rect y="8.88867" width="7.11107" height="7.11107" rx="1" fill="currentColor"/> 4730 <rect x="8.88867" width="7.11107" height="7.11107" rx="1" fill="currentColor"/> 4731 <rect x="8.88867" y="8.88867" width="7.11107" height="7.11107" rx="1" fill="currentColor"/> 4732 </svg> 4733 4734 4735 </span> 4736 </button> 4737 4738 <button 4739 class="search__grid-button
4739js-grid-view-btn" 4740 data-grid-cols="3" 4741 > 4742 <span class="search__grid-button-icon-desktop"> 4743 <span class="visually-hidden">Change grid view to 3 products per row</span> 4744 4745 4746 4747 <svg class="icon" aria-hidden="true" focusable="false" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 4748 <path d="M3.50877 0H0.701754C0.314386 0 0 0.298667 0 0.666667V3.33333C0 3.70133 0.314386 4 0.701754 4H3.50877C3.89614 4 4.21053 3.70133 4.21053 3.33333V0.666667C4.21053 0.298667 3.89614 0 3.50877 0Z" fill="currentColor"/> 4749 <path d="M9.4033 0H6.59629C6.20892 0 5.89453 0.298667 5.89453 0.666667V3.33333C5.89453 3.70133 6.20892 4 6.59629 4H9.4033C9.79067 4 10.1051 3.70133 10.1051 3.33333V0.666667C10.1051 0.298667 9.79067 0 9.4033 0Z" fill="currentColor"/> 4750 <path d="M15.2978 0H12.4908C12.1034 0 11.7891 0.298667 11.7891 0.666667V3.33333C11.7891 3.70133 12.1034 4 12.4908 4H15.2978C15.6852 4 15.9996 3.70133 15.9996 3.33333V0.666667C15.9996 0.298667 15.6852 0 15.2978 0Z" fill="currentColor"/> 4751 <path d="M3.50877 6H0.701754C0.314386 6 0 6.29867 0 6.66667V9.33333C0 9.70133 0.314386 10 0.701754 10H3.50877C3.89614 10 4.21053 9.70133 4.21053 9.33333V6.66667C4.21053 6.29867 3.89614 6 3.50877 6Z" fill="currentColor"/> 4752 <path d="M9.4033 6H6.59629C6.20892 6 5.89453 6.29867 5.89453 6.66667V9.33333C5.89453 9.70133 6.20892 10 6.59629 10H9.4033C9.79067 10 10.1051 9.70133 10.1051 9.33333V6.66667C10.1051 6.29867 9.79067 6 9.4033 6Z" fill="currentColor"/> 4753 <path d="M15.2978 6H12.4908C12.1034 6 11.7891 6.29867 11.7891 6.66667V9.33333C11.7891 9.70133 12.1034 10 12.4908 10H15.2978C15.6852 10 15.9996 9.70133 15.9996 9.33333V6.66667C15.9996 6.29867 15.6852 6 15.2978 6Z" fill="currentColor"/> 4754 <path d="M3.50877 12H0.701754C0.314386 12 0 12.2987 0 12.6667V15.3333C0 15.7013 0.314386 16 0.701754 16H3.50877C3.89614 16 4.21053 15.7013 4.21053 15.3333V12.6667C4.21053 12.2987 3.89614 12 3.50877 12Z" fill="currentColor"/> 4755 <path d="M9.4033 12H6.59629C6.20892 12 5.89453 12.2987 5.89453 12.6667V15.3333C5.89453 15.7013 6.20892 16 6.59629 16H9.4033C9.79067 16 10.1051 15.7013 10.1051 15.3333V12.6667C10.1051 12.2987 9.79067 12 9.4033 12Z" fill="currentColor"/> 4756 <path d="M15.2978 12H12.4908C12.1034 12 11.7891 12.2987 11.7891 12.6667V15.3333C11.7891 15.7013 12.1034 16 12.4908 16H15.2978C15.6852 16 15.9996 15.7013 15.9996 15.3333V12.6667C15.9996 12.2987 15.6852 12 15.2978 12Z" fill="currentColor"/> 4757 </svg> 4758 4759 4760 </span> 4761 4762 <span class="search__grid-button-icon-mobile"> 4763 <span class="visually-hidden">Change grid view to 1 product per row</span> 4764 4765 4766 4767 <svg class="icon" aria-hidden="true" focusable="false" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 4768 <rect x="2" y="2" width="12" height="12" rx="1" fill="currentColor"/> 4769 </svg> 4770 4771 4772 </span> 4773 </button> 4774 </div> 4775 </div> 4776 4777 </div></div> 4778 4779 4780 4781 <link rel="modulepreload" href="//foveo.run/cdn/shop/t/23/assets/component-product-filters.build.min.js?v=55963052306881215041781878654" as="script" crossorigin="anonymous"> 4782
4782<script src="//foveo.run/cdn/shop/t/23/assets/component-product-filters.build.min.js?v=55963052306881215041781878654" type="module" crossorigin="anonymous"></script>
4782 4783 4784 4785 4786 4787 4788 <link rel="modulepreload" href="//foveo.run/cdn/shop/t/23/assets/search-template.build.min.js?v=76132768365795471481781878708" as="script" crossorigin="anonymous"> 4789
4789<script src="//foveo.run/cdn/shop/t/23/assets/search-template.build.min.js?v=76132768365795471481781878708" type="module" crossorigin="anonymous"></script>
4789 4790 4791</div> 4792</section></div> 4793 </main><!-- BEGIN sections: footer-group --> 4794<div id="shopify-section-sections--27075726934327__footer" class="shopify-section shopify-section-group-footer-group"> 4795 4796 4797 4798 <link href="//foveo.run/cdn/shop/t/23/assets/footer.build.css?v=70150356320783671981781878668" rel="stylesheet" type="text/css" media="all" /> 4799 4800<footer class="footer need-animate js-animate" style="--logo-image-width: 100px; 4801 --section-background: #00837b; 4802 --text-color: #fffcfc; 4803 --copyright-text-color: ; 4804 --menu-headings-color: #f9f3df; 4805 --footer-link-color: #ffffff; 4806 --footer-link-hover-color: #ea6852; 4807 --input-background: #ffffff; 4808 --input-border: #000000; 4809 --input-color: #000000; 4810 --button-icon-color-social: #ffffff; 4811 --button-background-color-social: rgba(0,0,0,0); 4812 --button-border-color-social: #ffffff; 4813 --button-icon-color-social-hover: #480c14; 4814 --button-background-color-social-hover: #ffffff; 4815 --button-border-color-social-hover: #ffffff; 4816 --border-color: #ffffff; 4817 --button-top-color: #ffffff; 4818 --button-top-background: rgba(0,0,0,0); 4819 --button-top-border: #ffffff; 4820 --button-top-color-hover: #480c14; 4821 --button-top-background-hover: #ffffff; 4822 --button-top-border-hover: rgba(0,0,0,0);"> 4823 <div class="footer__main-content"><div class="footer__navigation-item"><h2 class="footer__navigation-heading"> 4824 Contact 4825 </h2><div class="footer__about-rte rte"><p>A-442 Duncan Ave<br/>Courtenay, BC V9N 7J5</p><p>Monday - Saturday 10:00-5:30<br/>Sunday 11:00-3:00<br/>Closed Most Statutory Holidays<br/>Check Google for Updates: <a href="https://share.google/q5LIcUpE8ewUsgu6I" target="_blank" title="https://share.google/q5LIcUpE8ewUsgu6I">Google Hours</a></p></div>� 4826 4827 4828 4829 <link href="//foveo.run/cdn/shop/t/23/assets/social-links.build.css?v=160938632893327729561781878750" rel="stylesheet" type="text/css" media="all" /> 4830 4831<div class="social-links"> 4832 <ul class="social-links__list"><li class="social-links__item"> 4833 <a 4834 class="button-social" 4835 href="https://www.facebook.com/foveo.run" 4836 target="_blank" 4837 rel="nofollow" 4838 aria-label="Go to our facebook page. Open in a new window" 4839 > 4840 4841 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4842 <path fill="currentColor" d="M15.1194 5.32003H16.9994V2.14003C16.0891 2.04538 15.1745 1.99865 14.2594 2.00003C11.5394 2.00003 9.67938 3.66003 9.67938 6.70003V9.32003H6.60938V12.88H9.67938V22H13.3594V12.88H16.4194L16.8794 9.32003H13.3594V7.05003C13.3594 6.00003 13.6394 5.32003 15.1194 5.32003Z"/> 4843 </svg> 4844 4845</a> 4846 </li><li class="social-links__item"> 4847 <a 4848 class="button-social" 4849 href="https://www.instagram.com/foveo.run/" 4850 target="_blank" 4851 rel="nofollow" 4852 aria-label="Go to our instagram page. Open in a new window" 4853 > 4854 4855 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4856 <path fill="currentColor" d="M17.34 5.46C17.1027 5.46 16.8707 5.53038 16.6733 5.66224C16.476 5.79409 16.3222 5.98151 16.2313 6.20078C16.1405 6.42005 16.1168 6.66133 16.1631 6.89411C16.2094 7.12689 16.3236 7.34071 16.4915 7.50853C16.6593 7.67635 16.8731 7.79064 17.1059 7.83694C17.3387 7.88324 17.5799 7.85948 17.7992 7.76866C18.0185 7.67783 18.2059 7.52402 18.3378 7.32668C18.4696 7.12935 18.54 6.89734 18.54 6.66C18.54 6.34174 18.4136 6.03652 18.1885 5.81147C17.9635 5.58643 17.6583 5.46 17.34 5.46ZM21.94 7.88C21.9206 7.0503 21.7652 6.2294 21.48 5.45C21.2257 4.78313 20.83 4.17928 20.32 3.68C19.8248 3.16743 19.2196 2.77418 18.55 2.53C17.7727 2.23616 16.9508 2.07721 16.12 2.06C15.06 2 14.72 2 12 2C9.28 2 8.94 2 7.88 2.06C7.04915 2.07721 6.22734 2.23616 5.45 2.53C4.78168 2.77665 4.17693 3.16956 3.68 3.68C3.16743 4.17518 2.77418 4.78044 2.53 5.45C2.23616 6.22734 2.07721 7.04915 2.06 7.88C2 8.94 2 9.28 2 12C2 14.72 2 15.06 2.06 16.12C2.07721 16.9508 2.23616 17.7727 2.53 18.55C2.77418 19.2196 3.16743 19.8248 3.68 20.32C4.17693 20.8304 4.78168 21.2234 5.45 21.47C6.22734 21.7638 7.04915 21.9228 7.88 21.94C8.94 22 9.28 22 12 22C14.72 22 15.06 22 16.12 21.94C16.9508 21.9228 17.7727 21.7638 18.55 21.47C19.2196 21.2258 19.8248 20.8326 20.32 20.32C20.8322 19.8226 21.2283 19.2182 21.48 18.55C21.7652 17.7706 21.9206 16.9497 21.94 16.12C21.94 15.06 22 14.72 22 12C22 9.28 22 8.94 21.94 7.88ZM20.14 16C20.1327 16.6348 20.0178 17.2637 19.8 17.86C19.6403 18.2952 19.3839 18.6884 19.05 19.01C18.7256 19.3405 18.3332 19.5964 17.9 19.76C17.3037 19.9778 16.6748 20.0927 16.04 20.1C15.04 20.15 14.67 20.16 12.04 20.16C9.41 20.16 9.04 20.16 8.04 20.1C7.38089 20.1123 6.72459 20.0109 6.1 19.8C5.68578 19.6281 5.31136 19.3728 5 19.05C4.66809 18.7287 4.41484 18.3352 4.26 17.9C4.01586 17.2952 3.88044 16.6519 3.86 16C3.86 15 3.8 14.63 3.8 12C3.8 9.37 3.8 9 3.86 8C3.86448 7.35106 3.98295 6.70795 4.21 6.1C4.38605 5.67791 4.65627 5.30166 5 5C5.30381 4.65617 5.67929 4.3831 6.1 4.2C6.70955 3.98004 7.352 3.86508 8 3.86C9 3.86 9.37 3.8 12 3.8C14.63 3.8 15 3.8 16 3.86C16.6348 3.86728 17.2637 3.98225 17.86 4.2C18.3144 4.36865 18.7223 4.64285 19.05 5C19.3777 5.30718 19.6338 5.68273 19.8 6.1C20.0223 6.70893 20.1373 7.35178 20.14 8C20.19 9 20.2 9.37 20.2 12C20.2 14.63 20.19 15 20.14 16ZM12 6.87C10.9858 6.87198 9.99496 7.17453 9.15265 7.73942C8.31035 8.30431 7.65438 9.1062 7.26763 10.0438C6.88089 10.9813 6.78072 12.0125 6.97979 13.0069C7.17886 14.0014 7.66824 14.9145 8.38608 15.631C9.10392 16.3474 10.018 16.835 11.0129 17.0321C12.0077 17.2293 13.0387 17.1271 13.9755 16.7385C14.9123 16.35 15.7129 15.6924 16.2761 14.849C16.8394 14.0056 17.14 13.0142 17.14 12C17.1413 11.3251 17.0092 10.6566 16.7512 10.033C16.4933 9.40931 16.1146 8.84281 15.6369 8.36605C15.1592 7.88929 14.5919 7.51168 13.9678 7.25493C13.3436 6.99818 12.6749 6.86736 12 6.87ZM12 15.33C11.3414 15.33 10.6976 15.1347 10.15 14.7688C9.60234 14.4029 9.17552 13.8828 8.92348 13.2743C8.67144 12.6659 8.6055 11.9963 8.73398 11.3503C8.86247 10.7044 9.17963 10.111 9.64533 9.64533C10.111 9.17963 10.7044 8.86247 11.3503 8.73398C11.9963 8.6055 12.6659 8.67144 13.2743 8.92348C13.8828 9.17552 14.4029 9.60234 14.7688 10.15C15.1347 10.6976 15.33 11.3414 15.33 12C15.33 12.4373 15.2439 12.8703 15.0765 13.2743C14.9092 13.6784 14.6639 14.0454 14.3547 14.3547C14.0454 14.6639 13.6784 14.9092 13.2743 15.0765C12.8703 15.2439 12.4373 15.33 12 15.33Z"/> 4857 </svg> 4858 4859</a> 4860 </li><li class="social-links__item"> 4861 <a 4862 class="button-social" 4863 href="https://www.tiktok.com/@foveo.run" 4864 target="_blank" 4865 rel="nofollow" 4866 aria-label="Go to our tiktok page. Open in a new window" 4867 > 4868 4869 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
4870 <path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M16.2095 1.01848C16.2108 1.35406 16.3088 6.20393 21.3985 6.50643C21.3985 7.90505 21.4002 8.91911 21.4002 10.2537C21.0148 10.2761 18.0495 10.0608 16.204 8.41466L16.1984 15.7099C16.2684 20.7733 12.5421 23.8546 7.67155 22.7902C-0.72723 20.2779 2.06363 7.82127 10.4968 9.15458C10.4968 13.176 10.4989 9.15329 10.4989 13.176C7.01498 12.6634 5.84965 15.5616 6.77564 17.6366C7.61783 19.5259 11.0867 19.9354 12.2968 17.2701C12.4338 16.7484 12.5022 16.1537 12.5022 15.486V1L16.2095 1.01848Z"/> 4871 </svg> 4872 4873</a> 4874 </li> 4875 </ul> 4876 </div> 4877 </div>���<div class="footer__navigation-item"><h2 class="footer__navigation-heading"> 4878 Shopping Experience 4879 </h2> 4880 4881 <ul class="footer__navigation-list"><li class="footer__navigation-list-item"> 4882 <a href="/policies/privacy-policy" class="footer__navigation-list-link"> 4883 Privacy Policy 4884 </a> 4885 </li><li class="footer__navigation-list-item"> 4886 <a href="/policies/refund-policy" class="footer__navigation-list-link"> 4887 Refund Policy 4888 </a> 4889 </li><li class="footer__navigation-list-item"> 4890 <a href="/policies/terms-of-service" class="footer__navigation-list-link"> 4891 Terms of Service 4892 </a> 4893 </li><li class="footer__navigation-list-item"> 4894 <a href="/policies/shipping-policy" class="footer__navigation-list-link"> 4895 Shipping Policy (*Free Shipping Rules) 4896 </a> 4897 </li></ul> 4898 </div>��<div class="footer__navigation-item"><h2 class="footer__navigation-heading"> 4899 Foveo & Community 4900 </h2> 4901 4902 <ul class="footer__navigation-list"><li class="footer__navigation-list-item"> 4903 <a href="/pages/about-foveo" class="footer__navigation-list-link"> 4904 About Us 4905 </a> 4906 </li><li class="footer__navigation-list-item"> 4907 <a href="/pages/careers" class="footer__navigation-list-link"> 4908 Careers 4909 </a> 4910 </li><li class="footer__navigation-list-item"> 4911 <a href="/pages/races" class="footer__navigation-list-link"> 4912 Local Races 4913 </a> 4914 </li><li class="footer__navigation-list-item"> 4915 <a href="/pages/group-runs" class="footer__navigation-list-link"> 4916 Local Run Clubs 4917 </a> 4918 </li><li class="footer__navigation-list-item"> 4919 <a href="https://docs.google.com/forms/d/e/1FAIpQLSfy3FJlkR4Nkod1VGY4QQ1ilSlHMPwgSnfjIyaj0DX-nt4Trw/viewform?usp=send_form" class="footer__navigation-list-link"> 4920 Sponsorship Requests 4921 </a> 4922 </li></ul> 4923 </div>�</div> 4924 4925 <div class="footer__newsletter"><a 4926 href="/" 4927 class="footer__logo-container" 4928 aria-label="Link to home page" 4929 > 4930 <picture> 4931 <img 4932 class="footer__logo" 4933 src="//foveo.run/cdn/shop/files/FoveoRunning_BadgeLogo_Plain_FullColour-01.png?v=1674090012&width=100" 4934 srcset="//foveo.run/cdn/shop/files/FoveoRunning_BadgeLogo_Plain_FullColour-01.png?v=1674090012&width=100 1x, 4935 //foveo.run/cdn/shop/files/FoveoRunning_BadgeLogo_Plain_FullColour-01.png?v=1674090012&width=200 2x" 4936 alt="" 4937 width="100" 4938 height="100" 4939 style="--img-desktop-pos: 50.0% 50.0%;" 4940 loading="lazy" 4941 /> 4942 </picture> 4943 </a><div class="footer__newsletter-rte rte"><p>Stay up to date on everything Foveo Running</p></div><form method="post" action="/contact#footerForm--sections--27075726934327__footer" id="footerForm--sections--27075726934327__footer" accept-charset="UTF-8" class="footer-form js-newsletter-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /> 4944 <input type="hidden" name="contact[tags]" value="newsletter"/> 4945 4946 <div class="footer-form__field"> 4947 <label class="visually-hidden" for="NewsletterForm--sections--27075726934327__footer">Enter email address...</label> 4948 4949 <input 4950 id="NewsletterForm--sections--27075726934327__footer" 4951 type="email" 4952 name="contact[email]" 4953 class="footer-form__input js-newsletter-input" 4954 value="" 4955 aria-required="true" 4956 autocapitalize="off" 4957 autocomplete="email" 4958 4959 placeholder="Enter email address..." 4960 required 4961 /> 4962 4963 <button 4964 type="submit" 4965 class="button button--small button--secondary footer-form__button" 4966 name="commit" 4967 >Subscribe</button> 4968 </div> 4969 </form>�</div> 4970 4971 <div class="footer__bottom-content"> 4972 <div class="footer__bottom-left-col">
4972<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.shop-follow-button.en.esm.js"></script>
vendor: 1 bytes, line 4972
4972
4973<script type="module"> 4974 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.shop-follow-button.en.esm.js"); 4975 4976 4977</script>
4977 4978 4979<shop-follow-button ux-mode="windoid" return-uri="https://foveo.run/account/redirect" proxy="true"></shop-follow-button> 4980�<div class="footer__selectors"> 4981 4982 4983 4984 <link href="//foveo.run/cdn/shop/t/23/assets/localization-form.build.css?v=34476234462232484831781878678" rel="stylesheet" type="text/css" media="all" /> 4985 4986 4987 4988 4989<div class="footer__country-selector"> 4990 <noscript><form method="post" action="/localization" id="FooterCountryFormNoScript" accept-charset="UTF-8" class="shopify-localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/search" /><div class="disclosure localization-form__select"> 4991 <select 4992 class="localization-select" 4993 name="country_code" 4994 ><option 4995 class="localization-option" 4996 value="AU" 4997 > 4998 AUD $ 4999 </option><option 5000 class="localization-option" 5001 value="AT" 5002 > 5003 EUR ⬠5004 </option><option 5005 class="localization-option" 5006 value="BE" 5007 > 5008 EUR ⬠5009 </option><option 5010 class="localization-option" 5011 value="CA" selected 5012 > 5013 CAD $ 5014 </option><option 5015 class="localization-option" 5016 value="CZ" 5017 > 5018 CZK KÄ 5019 </option><option 5020 class="localization-option" 5021 value="DK" 5022 > 5023 DKK kr. 5024 </option><option 5025 class="localization-option" 5026 value="FI" 5027 > 5028 EUR ⬠5029 </option><option 5030 class="localization-option" 5031 value="FR" 5032 > 5033 EUR ⬠5034 </option><option 5035 class="localization-option" 5036 value="DE" 5037 > 5038 EUR ⬠5039 </option><option 5040 class="localization-option" 5041 value="HK" 5042 > 5043 HKD $ 5044 </option><option 5045 class="localization-option" 5046 value="IE" 5047 > 5048 EUR ⬠5049 </option><option 5050 class="localization-option" 5051 value="IL" 5052 > 5053 ILS ⪠5054 </option><option 5055 class="localization-option" 5056 value="IT" 5057 > 5058 EUR ⬠5059 </option><option 5060 class="localization-option" 5061 value="JP" 5062 > 5063 JPY Â¥ 5064 </option><option 5065 class="localization-option" 5066 value="MY" 5067 > 5068 MYR RM 5069 </option><option 5070 class="localization-option" 5071 value="NL" 5072 > 5073 EUR ⬠5074 </option><option 5075 class="localization-option" 5076 value="NZ" 5077 > 5078 NZD $ 5079 </option><option 5080 class="localization-option" 5081 value="NO" 5082 > 5083 CAD $ 5084 </option><option 5085 class="localization-option" 5086 value="PL" 5087 > 5088 PLN zÅ 5089 </option><option 5090 class="localization-option" 5091 value="PT" 5092 > 5093 EUR ⬠5094 </option><option 5095 class="localization-option" 5096 value="SG" 5097 > 5098 SGD $ 5099 </option><option 5100 class="localization-option" 5101 value="KR" 5102 > 5103 KRW â© 5104 </option><option 5105 class="localization-option" 5106 value="ES" 5107 > 5108 EUR ⬠5109 </option><option 5110 class="localization-option" 5111 value="SE" 5112 > 5113 SEK kr 5114 </option><option 5115 class="localization-option" 5116 value="CH" 5117 > 5118 CHF CHF 5119 </option><option 5120 class="localization-option" 5121 value="AE" 5122 > 5123 AED د.Ø¥ 5124 </option><option 5125 class="localization-option" 5126 value="GB" 5127 > 5128 GBP £ 5129 </option></select> 5130 5131 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 5132 <path d="M19.9201 8.9502L13.4001 15.4702C12.6301 16.2402 11.3701 16.2402 10.6001 15.4702L4.08008 8.9502" stroke="currentColor" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 5133 </svg> 5134 5135</div> 5136 5137 <button class="localization-button">Update country/region</button></form></noscript> 5138 5139 <localization-form><form method="post" action="/localization" id="FooterCountryForm" accept-charset="UTF-8" class="no-js-hidden js-localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/search" /><div class="disclosure"> 5140 <button 5141 type="button"
5142 class="disclosure__button footer__country-button js-disclosure__button" 5143 aria-expanded="false" 5144 aria-controls="CountryList-footer" 5145 >Canada (CAD $) 5146 5147 <svg class="icon" aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 5148 <path d="M19.9201 8.9502L13.4001 15.4702C12.6301 16.2402 11.3701 16.2402 10.6001 15.4702L4.08008 8.9502" stroke="currentColor" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 5149 </svg> 5150 5151</button> 5152 5153 <ul 5154 id="CountryList-footer" 5155 role="list" 5156 class="disclosure__list footer__country-list js-disclosure-list" 5157 hidden 5158 ><li class="disclosure__item footer__country-item" tabindex="-1"> 5159 <a 5160 class="disclosure__link js-disclosure__link" 5161 href="#" 5162 5163 data-value="AU" 5164 aria-label="" 5165 > 5166 <span class="disclosure__item-text footer__country-item-text">Australia (AUD $) 5167 5168 <span class="disclosure__item-underline footer__country-item-underline"></span> 5169 </span> 5170 </a> 5171 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5172 <a 5173 class="disclosure__link js-disclosure__link" 5174 href="#" 5175 5176 data-value="AT" 5177 aria-label="" 5178 > 5179 <span class="disclosure__item-text footer__country-item-text">Austria (EUR â¬) 5180 5181 <span class="disclosure__item-underline footer__country-item-underline"></span> 5182 </span> 5183 </a> 5184 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5185 <a 5186 class="disclosure__link js-disclosure__link" 5187 href="#" 5188 5189 data-value="BE" 5190 aria-label="" 5191 > 5192 <span class="disclosure__item-text footer__country-item-text">Belgium (EUR â¬) 5193 5194 <span class="disclosure__item-underline footer__country-item-underline"></span> 5195 </span> 5196 </a> 5197 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5198 <a 5199 class="disclosure__link js-disclosure__link" 5200 href="#" 5201 5202 aria-current="true" 5203 5204 data-value="CA" 5205 aria-label="" 5206 > 5207 <span class="disclosure__item-text footer__country-item-text">Canada (CAD $) 5208 5209 <span class="disclosure__item-underline footer__country-item-underline"></span> 5210 </span> 5211 </a> 5212 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5213 <a 5214 class="disclosure__link js-disclosure__link" 5215 href="#" 5216 5217 data-value="CZ" 5218 aria-label="" 5219 > 5220 <span class="disclosure__item-text footer__country-item-text">Czechia (CZK KÄ) 5221 5222 <span class="disclosure__item-underline footer__country-item-underline"></span> 5223 </span> 5224 </a> 5225 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5226 <a 5227 class="disclosure__link js-disclosure__link" 5228 href="#" 5229 5230 data-value="DK" 5231 aria-label="" 5232 > 5233 <span class="disclosure__item-text footer__country-item-text">Denmark (DKK kr.) 5234 5235 <span class="disclosure__item-underline footer__country-item-underline"></span> 5236 </span> 5237 </a> 5238 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5239 <a 5240 class="disclosure__link js-disclosure__link" 5241 href="#" 5242 5243 data-value="FI" 5244 aria-label="" 5245 > 5246 <span class="disclosure__item-text footer__country-item-text">Finland (EUR â¬) 5247 5248 <span class="disclosure__item-underline footer__country-item-underline"></span> 5249 </span> 5250 </a> 5251 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5252 <a 5253 class="disclosure__link js-disclosure__link" 5254 href="#" 5255 5256 data-value="FR" 5257 aria-label="" 5258 >
5259 <span class="disclosure__item-text footer__country-item-text">France (EUR â¬) 5260 5261 <span class="disclosure__item-underline footer__country-item-underline"></span> 5262 </span> 5263 </a> 5264 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5265 <a 5266 class="disclosure__link js-disclosure__link" 5267 href="#" 5268 5269 data-value="DE" 5270 aria-label="" 5271 > 5272 <span class="disclosure__item-text footer__country-item-text">Germany (EUR â¬) 5273 5274 <span class="disclosure__item-underline footer__country-item-underline"></span> 5275 </span> 5276 </a> 5277 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5278 <a 5279 class="disclosure__link js-disclosure__link" 5280 href="#" 5281 5282 data-value="HK" 5283 aria-label="" 5284 > 5285 <span class="disclosure__item-text footer__country-item-text">Hong Kong SAR (HKD $) 5286 5287 <span class="disclosure__item-underline footer__country-item-underline"></span> 5288 </span> 5289 </a> 5290 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5291 <a 5292 class="disclosure__link js-disclosure__link" 5293 href="#" 5294 5295 data-value="IE" 5296 aria-label="" 5297 > 5298 <span class="disclosure__item-text footer__country-item-text">Ireland (EUR â¬) 5299 5300 <span class="disclosure__item-underline footer__country-item-underline"></span> 5301 </span> 5302 </a> 5303 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5304 <a 5305 class="disclosure__link js-disclosure__link" 5306 href="#" 5307 5308 data-value="IL" 5309 aria-label="" 5310 > 5311 <span class="disclosure__item-text footer__country-item-text">Israel (ILS âª) 5312 5313 <span class="disclosure__item-underline footer__country-item-underline"></span> 5314 </span> 5315 </a> 5316 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5317 <a 5318 class="disclosure__link js-disclosure__link" 5319 href="#" 5320 5321 data-value="IT" 5322 aria-label="" 5323 > 5324 <span class="disclosure__item-text footer__country-item-text">Italy (EUR â¬) 5325 5326 <span class="disclosure__item-underline footer__country-item-underline"></span> 5327 </span> 5328 </a> 5329 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5330 <a 5331 class="disclosure__link js-disclosure__link" 5332 href="#" 5333 5334 data-value="JP" 5335 aria-label="" 5336 > 5337 <span class="disclosure__item-text footer__country-item-text">Japan (JPY Â¥) 5338 5339 <span class="disclosure__item-underline footer__country-item-underline"></span> 5340 </span> 5341 </a> 5342 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5343 <a 5344 class="disclosure__link js-disclosure__link" 5345 href="#" 5346 5347 data-value="MY" 5348 aria-label="" 5349 > 5350 <span class="disclosure__item-text footer__country-item-text">Malaysia (MYR RM) 5351 5352 <span class="disclosure__item-underline footer__country-item-underline"></span> 5353 </span> 5354 </a> 5355 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5356 <a 5357 class="disclosure__link js-disclosure__link" 5358 href="#" 5359 5360 data-value="NL" 5361 aria-label="" 5362 > 5363 <span class="disclosure__item-text footer__country-item-text">Netherlands (EUR â¬) 5364 5365 <span class="disclosure__item-underline footer__country-item-underline"></span> 5366 </span> 5367 </a> 5368 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5369 <a 5370 class="disclosure__link js-disclosure__link" 5371 href="#" 5372 5373 data-value="NZ" 5374 aria-label="" 5375 > 5376 <span class="disclosure__item-text footer__country-item-text">New Zealand (NZD $) 5377
5378 <span class="disclosure__item-underline footer__country-item-underline"></span> 5379 </span> 5380 </a> 5381 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5382 <a 5383 class="disclosure__link js-disclosure__link" 5384 href="#" 5385 5386 data-value="NO" 5387 aria-label="" 5388 > 5389 <span class="disclosure__item-text footer__country-item-text">Norway (CAD $) 5390 5391 <span class="disclosure__item-underline footer__country-item-underline"></span> 5392 </span> 5393 </a> 5394 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5395 <a 5396 class="disclosure__link js-disclosure__link" 5397 href="#" 5398 5399 data-value="PL" 5400 aria-label="" 5401 > 5402 <span class="disclosure__item-text footer__country-item-text">Poland (PLN zÅ) 5403 5404 <span class="disclosure__item-underline footer__country-item-underline"></span> 5405 </span> 5406 </a> 5407 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5408 <a 5409 class="disclosure__link js-disclosure__link" 5410 href="#" 5411 5412 data-value="PT" 5413 aria-label="" 5414 > 5415 <span class="disclosure__item-text footer__country-item-text">Portugal (EUR â¬) 5416 5417 <span class="disclosure__item-underline footer__country-item-underline"></span> 5418 </span> 5419 </a> 5420 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5421 <a 5422 class="disclosure__link js-disclosure__link" 5423 href="#" 5424 5425 data-value="SG" 5426 aria-label="" 5427 > 5428 <span class="disclosure__item-text footer__country-item-text">Singapore (SGD $) 5429 5430 <span class="disclosure__item-underline footer__country-item-underline"></span> 5431 </span> 5432 </a> 5433 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5434 <a 5435 class="disclosure__link js-disclosure__link" 5436 href="#" 5437 5438 data-value="KR" 5439 aria-label="" 5440 > 5441 <span class="disclosure__item-text footer__country-item-text">South Korea (KRW â©) 5442 5443 <span class="disclosure__item-underline footer__country-item-underline"></span> 5444 </span> 5445 </a> 5446 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5447 <a 5448 class="disclosure__link js-disclosure__link" 5449 href="#" 5450 5451 data-value="ES" 5452 aria-label="" 5453 > 5454 <span class="disclosure__item-text footer__country-item-text">Spain (EUR â¬) 5455 5456 <span class="disclosure__item-underline footer__country-item-underline"></span> 5457 </span> 5458 </a> 5459 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5460 <a 5461 class="disclosure__link js-disclosure__link" 5462 href="#" 5463 5464 data-value="SE" 5465 aria-label="" 5466 > 5467 <span class="disclosure__item-text footer__country-item-text">Sweden (SEK kr) 5468 5469 <span class="disclosure__item-underline footer__country-item-underline"></span> 5470 </span> 5471 </a> 5472 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5473 <a 5474 class="disclosure__link js-disclosure__link" 5475 href="#" 5476 5477 data-value="CH" 5478 aria-label="" 5479 > 5480 <span class="disclosure__item-text footer__country-item-text">Switzerland (CHF CHF) 5481 5482 <span class="disclosure__item-underline footer__country-item-underline"></span> 5483 </span> 5484 </a> 5485 </li><li class="disclosure__item footer__country-item" tabindex="-1"> 5486 <a 5487 class="disclosure__link js-disclosure__link" 5488 href="#" 5489 5490 data-value="AE" 5491 aria-label="" 5492 > 5493 <span class="disclosure__item-text footer__country-item-text">United Arab Emirates (AED د.Ø¥) 5494 5495 <span class="disclosure__item-underline footer__country-item-underline"></span> 5496 </span> 5497 </a> 5498 </li>
5498<li class="disclosure__item footer__country-item" tabindex="-1"> 5499 <a 5500 class="disclosure__link js-disclosure__link" 5501 href="#" 5502 5503 data-value="GB" 5504 aria-label="" 5505 > 5506 <span class="disclosure__item-text footer__country-item-text">United Kingdom (GBP £) 5507 5508 <span class="disclosure__item-underline footer__country-item-underline"></span> 5509 </span> 5510 </a> 5511 </li></ul> 5512 5513 <input type="hidden" name="country_code" value="CA"> 5514 </div></form></localization-form> 5515</div> 5516</div></div> 5517 5518 5519 5520 <div class="footer__bottom-right-col"> 5521 <p class="footer__copyright"> 5522 Copyright © 2026. | Photo Credit <a href="https://photos.lorenzjimenez.com/"> Jimenez Photography</a> & <a href="https://www.instagram.com/roballenphotography/">Rob Allen Photography</a> 5523 </p></div> 5524 </div> 5525 5526</footer> 5527 5528 5529</div> 5530<!-- END sections: footer-group --><link href="//foveo.run/cdn/shop/t/23/assets/page-preloader.build.css?v=57005717277887484421781878688" rel="stylesheet" type="text/css" media="all" /><div class="page-preloader-wrapper js-page-preloader"> 5531 <div class="page-preloader"></div> 5532</div>
5533<script> 5534 window.themeCore = window.themeCore || {}; 5535 window.themeCore.objects = { 5536 "shop": { 5537 "currency":"CAD", 5538 "money_format":"${{amount}}", 5539 "money_with_currency_format":"${{amount}} CAD"}, 5540 "currency": { 5541 "cart":{"error":"json not allowed for this object"}}, 5542 "settings": {"base_font":{"error":"json not allowed for this object"},"heading_font":{"error":"json not allowed for this object"},"uppercase":false,"base_font_size":115,"heading_font_size":115,"color_text_primary":"#000000","color_text_secondary":"#535353","color_text_thirdly":"#9D9D9D","color_text_heading":"#000000","color_accent":"#ffffff","color_link":"#535353","color_background":"#ffffff","color_background_secondary":"#F6F6F6","color_background_popup_drawer":"#fff","color_border_primary":"#000000","color_border_secondary":"#e9e9e9","color_border_thirdly":"#cdcdcd","color_support_attention":"#e41616","color_support_success":"#36BA20","color_overlay":"#000000","button_icon_color_social":"#3d3d3d","button_background_color_social":"#ffffff","button_border_color_social":"#949494","button_icon_color_social_hover":"#ffffff","button_background_color_social_hover":"#3d3d3d","button_border_color_social_hover":"#3d3d3d","color_loader_circle":"#E6E6E6","color_loader_item":"#3d3d3d","color_loader_overlay":"#ffffff","color_scroll_thumb":"#3d3d3d","color_scroll_track":"#3d3d3d","color_scroll_thumb_opacity":20,"color_scroll_track_opacity":0,"color_slider_arrow_background":"#fff","color_slider_arrow_icon":"#000","color_slider_arrow_border":"#e9e9e9","color_slider_arrow_background_hover":"#000000","color_slider_arrow_icon_hover":"#ffffff","color_slider_arrow_border_hover":"#000","color_icon_available":"#e3f2e1","color_icon_out_of_stock":"#f6f6f6","button_font_family":{"error":"json not allowed for this object"},"button_font_size":115,"button_font_uppercase":false,"button_text_color_primary":"#000000","button_background_color_primary":"#ffffff","button_text_color_primary_hover":"#000000","button_background_color_primary_hover":"#f9f9f9","button_text_color_secondary":"#ffffff","button_background_color_secondary":"#000","button_text_color_secondary_hover":"#ffffff","button_background_color_secondary_hover":"#292929","button_text_color_primary_with_border":"#fff","button_background_color_primary_with_border":"transparent","button_border_color_primary_with_border":"#fff","button_text_color_primary_with_border_hover":"#000","button_background_color_primary_with_border_hover":"#fff","button_border_color_primary_with_border_hover":"#fff","button_text_color_secondary_with_border":"#000","button_background_color_secondary_with_border":"transparent","button_border_color_secondary_with_border":"#000","button_text_color_secondary_with_border_hover":"#fff","button_background_color_secondary_with_border_hover":"#000","button_border_color_secondary_with_border_hover":"transparent","favicon":"\/\/foveo.run\/cdn\/shop\/files\/FoveoRunning_BadgeLogo_Plain_FullColour-01_favicon_96x96_7e118953-7313-4f4f-8dd6-a1959f49d1f7.png?v=1781457313","container_width":"1432px","cart_type":"drawer","show_vendor":false,"show_cart_discounts":false,"show_cart_note":true,"show_tax_and_shipping":true,"show_additional_checkout_buttons":true,"show_shipping_rates_calculator":false,"show_compare_at_price_in_cart":true,"cart_checkout_button":"Check out","terms_and_conditions_text":"","show_cart_notification":false,"cart_notification_background_color":"#161E13","cart_notification_text_color":"#FFFFFF","cart_notification_cross_color":"#FFFFFF","empty_cart_heading":"Your cart is empty","empty_cart_text":"\u003cp\u003eTax included and shipping calculated at checkout\u003c\/p\u003e","enable_minimum_order_amount":false,"minimum_order_amount_goal":100,"minimum_order_amount_goal_message":"You still haven't reached the minimum order amount. Add {rest} to proceed.","minimum_order_amount_goal_reached_message":"You reached the minimum order amount.","minimum_order_amount_goal_message_color":"#CC0000","minimum_order_amount_goal_reached_message_color":"#000000","is_color_swatches_enabled":true,"color_swatches_option":"","product_default_image":"\/\/foveo.run\/cdn\/shop\/files\/ComingSoon-800x800.png?v=1775244681","is_show_first_media_image":false,"is_show_unit_price":true,"is_labels_enabled":true,"is_sale_label_enabled":false,"color_label_sale":"#FFFFFF","color_label_sale_background":"#CC0000","color_label_sale_border":"#E9E9E9","color_label_sale_opacity":100,"color_label_primary":"#ffffff","color_label_primary_background":"#fa0000","color_label_primary_border":"rgba(0,0,0,0)","color_label_primary_opacity":70,"color_label_secondary":"#FFFFFF","color_label_secondary_background":"#408400","color_label_secondary_border":"rgba(0,0,0,0)","color_label_secondary_opacity":70,"color_label_base":"#000000","color_label_base_background":"#ffffff","color_label_base_border":"rgba(0,0,0,0)","color_label_base_opacity":70,"color_label_sold_out":"#000000","color_label_sold_out_background":"#F2F2F2","color_label_sold_out_border":"rgba(0,0,0,0)","color_label_sold_out_opacity":70,"is_show_vendor":true,"product_card_buttons_type":"icon","is_currency_code_enabled":false,"is_image_on_hover_enabled":true,"product_card_text_alignment":"center","product_card_img_aspect_ratio":"square","image_object_fit":"contain","swatch_size":"big","bg_quick_buttons":"#fff","border_color_quick_buttons":"#f6f6f6","color_quick_buttons":"#000","product_card_button_text_color":"#000000","product_card_button_background_color":"#ffffff","product_card_button_border_color":"#000000","product_card_button_text_color_hover":"#ffffff","product_card_button_background_color_hover":"#000000","product_card_button_border_color_hover":"#ffffff","enable_compare_products":false,"compare_products_heading":"Compare products","compare_sticky_button_bg":"#000","compare_sticky_button_color":"#fff","compare_button_bg":"#fff","compare_button_color":"#000","compare_button_border":"#E9E9E9","article_read_more_label":"Read more","show_date":true,"show_author":true,"show_tag":true,"is_strip_title":false,"is_strip_content":true,"show_comments_count":true,"is_quick_view_enabled":true,"quick_view_enable_buy_it_now":true,"quick_view_button_type":"secondary-border","quick_view_button_buy_it_type":"secondary-border","quick_view_variant_picker":"radio","media_layout":"stacked","quick_view_color_swatch_type":"square-with-label","quick_view_enable_swatch_preview":false,"quick_view_enable_swatch_max_height":false,"quick_view_image_fit":"quick-view__image-wrapper--contain","quick_view_timer_show":false,"quick_view_timer_text":"Sale ends in:","quick_view_timer_text_color":"#000000","quick_view_timer_text_color_timer":"#ffffff","quick_view_timer_background_color":"#000000","enable_search":true,"predictive_search_heading":"Search","predictive_search_articles":true,"predictive_search_pages":true,"predictive_search_no_result":"No results found","predictive_search_most_searched_heading":"Most searched","social_twitter_link":"","social_facebook_link":"https:\/\/www.facebook.com\/foveo.run","social_pinterest_link":"","social_instagram_link":"https:\/\/www.instagram.com\/foveo.run\/","social_tumblr_link":"","social_youtube_link":"","social_tiktok_link":"https:\/\/www.tiktok.com\/@foveo.run","social_linkedin_link":"","cart_reminder_enable":false,"cart_reminder_cookie_time":"10","cart_reminder_display_frequency":"one_time","cart_reminder_text":"Check Your Cart","cart_reminder_color_text":"#000000","cart_reminder_color_bg":"#f6f6f6","cart_reminder_color_icon":"#000000","cart_reminder_color_button_close"
5542:"#000000","gift_wrap_button_label":"Add gift-box","show_breadcrumbs":true,"show_collection_on_pdp":false,"breadcrumbs_offset_top_desktop":32,"breadcrumbs_offset_bottom_desktop":0,"breadcrumbs_offset_top_mobile":16,"breadcrumbs_offset_bottom_mobile":0,"hide_search_engine":false,"checkout_logo_position":"left","checkout_logo_size":"medium","checkout_body_background_color":"#fff","checkout_input_background_color_mode":"white","checkout_sidebar_background_color":"#fafafa","checkout_heading_font":"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'","checkout_body_font":"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'","checkout_accent_color":"#1878b9","checkout_button_color":"#1878b9","checkout_error_color":"#e22120","button_text_color_play":"#000000","button_background_color_play":"#ffffff","button_text_color_play_hover":"#ffffff","button_background_color_play_hover":"#000000","cookie_bar_show_shadow":false,"cookie_bar_background_color":"#F6F6F6","cookie_bar_text_color":"#000000","cookie_bar_button_close_color":"#000000","cookie_bar_button_background_color":"#000000","cookie_bar_button_border_color":"rgba(0,0,0,0)","cookie_bar_button_label_color":"#ffffff","cookie_bar_button_background_hover_color":"rgba(0,0,0,0)","cookie_bar_button_border_hover_color":"#000000","product_promo_background_color":"#f6f6f6","product_promo_text_color":"#000000","product_promo_button_close_color":"#000000","product_promo_button_background_color":"#000000","product_promo_button_label_color":"#ffffff","product_promo_button_border_color":"rgba(0,0,0,0)","product_promo_button_background_hover_color":"rgba(0,0,0,0)","product_promo_button_label_hover_color":"#161E13","product_promo_button_border_hover_color":"#000000","promo_banner_background":"#f6f6f6","promo_banner_text":"#000000","promo_button_close":"#000000","promo_banner_button_background_color":"#000000","promo_banner_button_text_color":"#ffffff","promo_banner_button_border_color":"rgba(0,0,0,0)","promo_banner_button_background_hover_color":"rgba(0,0,0,0)","promo_banner_button_text_hover_color":"#000000","promo_banner_button_border_hover_color":"#000000","customer_layout":"customer_area"}, 5543 "routes": { 5544 "root_url":"\/", 5545 "account_url ":"\/account", 5546 "account_login_url":"https:\/\/foveo.run\/customer_authentication\/redirect?locale=en\u0026region_country=CA", 5547 "account_logout_url":"\/account\/logout", 5548 "account_register_url":"https:\/\/account.foveo.run?locale=en\u0026region_country=CA\u0026buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJmb3Zlb3J1bi5teXNob3BpZnkuY29tIiwiZmxhZ3MiOltdLCJleHAiOjE3OTE2Njc5NDcsIm5iZiI6MTc5MTA2MzE0N30.zATJBwtG1HiJmQxuF9mCC3bAfJnk9PcjyTTrOXunB30", 5549 "account_addresses_url":"\/account\/addresses", 5550 "collections_url":"\/collections", 5551 "all_products_collection_url":"\/collections\/all", 5552 "search_url":"\/search", 5553 "cart_url":"\/cart", 5554 "cart_add_url":"\/cart\/add", 5555 "cart_change_url":"\/cart\/change", 5556 "cart_clear_url":"\/cart\/clear", 5557 "product_recommendations_url":"\/recommendations\/products", 5558 "checkout": "/checkout" 5559 }, 5560 "customer":null, 5561 "request": { 5562 "design_mode":false, 5563 "host ":"foveo.run", 5564 "locale":{"shop_locale":{"locale":"en","enabled":true,"primary":true,"published":true}}, 5565 "path":"\/search"} 5566 }; 5567 5568 window.themeCore.cartObject = {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"CAD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}; 5569</script>
5569 5570 5571 5572 5573 5574 <link href="//foveo.run/cdn/shop/t/23/assets/carousel.build.css?v=67418041895868689811781878625" rel="stylesheet" type="text/css" media="all" /> 5575 5576 5577 5578 5579 5580 <link href="//foveo.run/cdn/shop/t/23/assets/deferred-main.build.css?v=128845282529882656041781878658" rel="stylesheet" type="text/css" media="all" /> 5581
5582<script> 5583 initAnimateObserver(); 5584 5585 window.themeCore = window.themeCore || {}; 5586 window.themeCore.initAnimateObserver = initAnimateObserver; 5587 5588 function initAnimateObserver() { 5589 const intersectionObserver = new IntersectionObserver( 5590 (entries, observer) => { 5591 entries.forEach((entry) => { 5592 if (entry.isIntersecting) { 5593 const element = entry.target; 5594 element.classList.add("animated"); 5595 5596 observer.unobserve(entry.target); 5597 } 5598 }); 5599 }, 5600 {rootMargin: "-70px", threshold: 0} 5601 ); 5602 5603 const elements = [...document.querySelectorAll(".js-animate")]; 5604 5605 elements.forEach((element) => intersectionObserver.observe(element)); 5606 } 5607</script>
5607 5608 5609 5610 5611 5612 <link rel="modulepreload" href="//foveo.run/cdn/shop/t/23/assets/main.build.min.js?v=100840904088871015061781878681" as="script" crossorigin="anonymous"> 5613
5613<script src="//foveo.run/cdn/shop/t/23/assets/main.build.min.js?v=100840904088871015061781878681" type="module" crossorigin="anonymous"></script>
5613 5614 <link rel="modulepreload" href="//foveo.run/cdn/shop/t/23/assets/disableTabulationOnNotActiveSlidesWithModel-5413c83c.js?v=39839034932476486091781878659" as="script" crossorigin="anonymous"> 5615 <link rel="modulepreload" href="//foveo.run/cdn/shop/t/23/assets/product-countdown-timer-3c18cb9f.js?v=23951155435287855101781878698" as="script" crossorigin="anonymous"> 5616 <link rel="modulepreload" href="//foveo.run/cdn/shop/t/23/assets/mousewheel-125fd006.js?v=65780068270571274451781878682" as="script" crossorigin="anonymous"> 5617 5618 5619 5620 5621 5622 5623 5624 <link rel="modulepreload" href="//foveo.run/cdn/shop/t/23/assets/component-ar-model.build.min.js?v=60548116314674625271781878643" as="script" crossorigin="anonymous"> 5625
5625<script src="//foveo.run/cdn/shop/t/23/assets/component-ar-model.build.min.js?v=60548116314674625271781878643" type="module" crossorigin="anonymous"></script>
5625 5626 5627<style> .radio-container:has(label.is-disabled) {display: none;} </style> 5628<div id="shopify-block-ARTg3djF4REhDLzg1M__16237003337219470499" class="shopify-block shopify-app-block"> 5629 5630 5631 5632 5633
5634<script> 5635 var _ALConfig = _ALConfig || {}; 5636 _ALConfig = { 5637 'shop_name': '', 5638 'public_domain': null, 5639 'proxy_path_prefix': 'apps/loyalty', 5640 'widgetJsPath': 'https://loyalty-admin.appstle.com/app/loyalty-widget.bundle.js', 5641 'widgetCssPath': 'https://loyalty-admin.appstle.com/content/loyalty-widget.css', 5642 'pointEarnRules': [], 5643 'pointRedeemRules': [], 5644 'widget_setting': null, 5645 'product': null, 5646 'productCollections': [], 5647 'shop_labels': null, 5648 'pointRoundType': 'NO_ROUND' 5649 }; 5650 5651 // Shopify's market-aware account routes. Emitted from the Liquid `routes` object so links keep 5652 // the customer's current market/language prefix (e.g. /en-eu/account/login) instead of a 5653 // hard-coded /account/login, which Shopify resolves against the shop's primary market. 5654 _ALConfig.routes = { 5655 'root_url': "\/", 5656 'account_url': "\/account", 5657 'account_login_url': "https:\/\/foveo.run\/customer_authentication\/redirect?locale=en\u0026region_country=CA", 5658 'account_register_url': "https:\/\/account.foveo.run?locale=en\u0026region_country=CA\u0026buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJmb3Zlb3J1bi5teXNob3BpZnkuY29tIiwiZmxhZ3MiOltdLCJleHAiOjE3OTE2Njc5NDcsIm5iZiI6MTc5MTA2MzE0N30.zATJBwtG1HiJmQxuF9mCC3bAfJnk9PcjyTTrOXunB30", 5659 'account_logout_url': "\/account\/logout" 5660 }; 5661 5662 5663 _ALConfig.shop_name = "Foveo Running"; 5664 5665 5666 5667 _ALConfig.proxy_path_prefix = "apps\/loyalty"; 5668 5669 5670 5671 _ALConfig.currency = "CAD"; 5672 5673 5674 5675 _ALConfig.storeCurrency = "CAD"; 5676 5677 5678 5679 _ALConfig.pointRoundType = "ROUND_DOWN"; 5680 5681 5682 5683 _ALConfig.public_domain = "foveo.run"; 5684 5685 5686 5687 _ALConfig.widgetJsPath = "https:\/\/loyalty-admin.appstle.com\/app\/loyalty-widget.bundle.js?v=1786705557939"; 5688 5689 5690 5691 _ALConfig.widgetCssPath = "https:\/\/loyalty-admin.appstle.com\/content\/loyalty-widget.css?v=1786705557939"; 5692 5693 5694 5695 _ALConfig.referralEnabled = true; 5696 5697 5698 5699 _ALConfig.vipTierEnabled = false; 5700 5701 5702 5703 _ALConfig.vipTierSetting = {"id":1708,"shop":"foveorun.myshopify.com","type":"POINTS_EARNED","amountOfTimeToAchieveTier":"CUSTOM","startAt":"2023-06-13T07:00:00Z","createAt":"2023-06-03T07:49:09.260238Z","updateAt":"2023-06-03T07:49:09.260242Z","isRunning":true,"vipIntervalType":null,"vipInterval":1,"expiredAt":null,"allowedCustomerTags":null,"restrictCustomersWithTags":null}; 5704 5705 5706 5707 _ALConfig.vipTiers = [{"id":5332,"shop":"foveorun.myshopify.com","name":"Gold","milestone":2000.0,"imageUrl":"https:\/\/cdn.sweettooth.io\/v1\/images\/vip_tiers\/vip-tier-1.svg?color=%236568FE\u0026theme=light","createAt":"2023-06-03T07:49:09.289722Z","updateAt":"2023-06-03T07:49:09.289723Z","allowedCustomerTags":null,"vipIntervalType":null,"vipInterval":null,"expiredAt":null,"amountOfTimeToAchieveTier":"LIFETIME","restrictCustomersWithTags":null,"status":true,"serial":null},{"id":5331,"shop":"foveorun.myshopify.com","name":"Silver","milestone":1500.0,"imageUrl":"https:\/\/cdn.sweettooth.io\/v1\/images\/vip_tiers\/vip-tier-1.svg?color=%236568FE\u0026theme=light","createAt":"2023-06-03T07:49:09.28972Z","updateAt":"2023-06-03T07:49:09.289721Z","allowedCustomerTags":null,"vipIntervalType":null,"vipInterval":null,"expiredAt":null,"amountOfTimeToAchieveTier":"LIFETIME","restrictCustomersWithTags":null,"status":true,"serial":null},{"id":5330,"shop":"foveorun.myshopify.com","name":"Bronze","milestone":500.0,"imageUrl":"https:\/\/cdn.sweettooth.io\/v1\/images\/vip_tiers\/vip-tier-1.svg?color=%236568FE\u0026theme=light","createAt":"2023-06-03T07:49:09.289711Z","updateAt":"2023-10-22T04:32:49.367693Z","allowedCustomerTags":null,"vipIntervalType":null,"vipInterval":2,"expiredAt":null,"amountOfTimeToAchieveTier":"CUSTOM","restrictCustomersWithTags":null,"status":true,"serial":null}]; 5708 5709 5710 5711 _ALConfig.pointEarnRules = [{"id":3668,"shop":"foveorun.myshopify.com","type":"BIRTHDAY","status":"ACTIVE","historicPurchaseDuration":"NONE","basePoints":100.0,"includeSubtotal":false,"includeTax":false,"excludeCollections":null,"name":"Birthday","customerNotification":"{{points}} points added for customer birthday","createAt":"2023-06-14T06:01:47.99919Z","updateAt":"2023-06-30T13:58:00.087293Z","rewardInterval":"DAY","productId":null,"collectionId":null,"variantId":null,"productData":null,"collectionData":null,"customerFacingLabel":"Get 100 points every year on birthday","socialUrl":null,"disableForOnSellProduct":false,"autoApprovalDays":0,"enableInterval":false,"earnLimit":1,"activityType":"REGULAR","allowedCustomerTags":null,"includeShippingPoints":false,"eligibleForFirstOrder":false,"maximumPoints":null,"restrictCustomerTags":null,"customerFacingIconUrl":null,"serial":null,"excludeOrderTags":null,"pointBasedOn":null,"excludeProducts":null,"givePointsToGuestCustomers":true,"allowedProductTags":null,"restrictProductTags":null,"rollBackPointsOnUnsubscribe":false,"addAdditionalPoints":false,"additionalPoints":null,"addAdditionalPhotoPoints":false,"additionalPhotoPoints":null,"addAdditionalVideoPoints":false,"additionalVideoPoints":null,"refundNotificationLabel":null,"disablePointsForDiscountedProduct":false,"platformType":"BOTH","vipTierId":null,"earnType":"POINTS","minimumOrderValue":null,"allowedOrderTags":null,"excludeVariantIds":null,"rewardA
5711ssignType":"DYNAMIC","applyOnImportedCustomer":false,"enableBirthdayPromo":false,"promoPointsMultiplier":null,"ruleStartDate":null,"ruleEndDate":null,"translations":null,"appliesOn":null,"manuallyApprovePoints":null,"showReviewProductDetails":true},{"id":3667,"shop":"foveorun.myshopify.com","type":"TIKTOK","status":"ACTIVE","historicPurchaseDuration":"NONE","basePoints":50.0,"includeSubtotal":false,"includeTax":false,"excludeCollections":null,"name":"Follow us on Tiktok","customerNotification":"{{points}} points added for following tiktok","createAt":"2023-06-14T06:00:28.66754Z","updateAt":"2023-08-05T14:43:52.992959Z","rewardInterval":"DAY","productId":null,"collectionId":null,"variantId":null,"productData":null,"collectionData":null,"customerFacingLabel":"Follow us on tiktok and get 50 points","socialUrl":"https:\/\/www.tiktok.com\/@foveo.run","disableForOnSellProduct":false,"autoApprovalDays":0,"enableInterval":false,"earnLimit":1,"activityType":"REGULAR","allowedCustomerTags":null,"includeShippingPoints":false,"eligibleForFirstOrder":false,"maximumPoints":null,"restrictCustomerTags":null,"customerFacingIconUrl":null,"serial":null,"excludeOrderTags":null,"pointBasedOn":null,"excludeProducts":null,"givePointsToGuestCustomers":true,"allowedProductTags":null,"restrictProductTags":null,"rollBackPointsOnUnsubscribe":false,"addAdditionalPoints":false,"additionalPoints":null,"addAdditionalPhotoPoints":false,"additionalPhotoPoints":null,"addAdditionalVideoPoints":false,"additionalVideoPoints":null,"refundNotificationLabel":null,"disablePointsForDiscountedProduct":false,"platformType":"BOTH","vipTierId":null,"earnType":"POINTS","minimumOrderValue":null,"allowedOrderTags":null,"excludeVariantIds":null,"rewardAssignType":"DYNAMIC","applyOnImportedCustomer":false,"enableBirthdayPromo":false,"promoPointsMultiplier":null,"ruleStartDate":null,"ruleEndDate":null,"translations":null,"appliesOn":null,"manuallyApprovePoints":null,"showReviewProductDetails":true},{"id":3666,"shop":"foveorun.myshopify.com","type":"FACEBOOK_PAGE_LIKE","status":"ACTIVE","historicPurchaseDuration":"NONE","basePoints":50.0,"includeSubtotal":false,"includeTax":false,"excludeCollections":null,"name":"Like Us on Facebook","customerNotification":"{{points}} points added for like facebook page","createAt":"2023-06-14T05:58:49.103094Z","updateAt":"2023-08-05T14:44:05.417769Z","rewardInterval":"DAY","productId":null,"collectionId":null,"variantId":null,"productData":null,"collectionData":null,"customerFacingLabel":"Like us on facebook and get 50 points","socialUrl":"https:\/\/www.facebook.com\/foveo.run?mibextid=LQQJ4d","disableForOnSellProduct":false,"autoApprovalDays":0,"enableInterval":false,"earnLimit":1,"activityType":"REGULAR","allowedCustomerTags":null,"includeShippingPoints":false,"eligibleForFirstOrder":false,"maximumPoints":null,"restrictCustomerTags":null,"customerFacingIconUrl":null,"serial":null,"excludeOrderTags":null,"pointBasedOn":null,"excludeProducts":null,"givePointsToGuestCustomers":true,"allowedProductTags":null,"restrictProductTags":null,"rollBackPointsOnUnsubscribe":false,"addAdditionalPoints":false,"additionalPoints":null,"addAdditionalPhotoPoints":false,"additionalPhotoPoints":null,"addAdditionalVideoPoints":false,"additionalVideoPoints":null,"refundNotificationLabel":null,"disablePointsForDiscountedProduct":false,"platformType":"BOTH","vipTierId":null,"earnType":"POINTS","minimumOrderValue":null,"allowedOrderTags":null,"excludeVariantIds":null,"rewardAssignType":"DYNAMIC","applyOnImportedCustomer":false,"enableBirthdayPromo":false,"promoPointsMultiplier":null,"ruleStartDate":null,"ruleEndDate":null,"translations":null,"appliesOn":null,"manuallyApprovePoints":null,"showReviewProductDetails":true},{"id":3665,"shop":"foveorun.myshopify.com","type":"FOLLOW_INSTAGRAM","status":"ACTIVE","historicPurchaseDuration":"NONE","basePoints":50.0,"includeSubtotal":false,"includeTax":false,"excludeCollections":null,"name":"Follow us on Instagram","customerNotification":"{{points}} points added for following instagram","createAt":"2023-06-14T05:57:50.867708Z","updateAt":"2023-06-30T13:58:20.956819Z","rewardInterval":"DAY","productId":null,"collectionId":null,"variantId":null,"productData":null,"collectionData":null,"customerFacingLabel":"Follow us on instagram and get 50 points","socialUrl":"https:\/\/instagram.com\/foveo.run","disableForOnSellProduct":false,"autoApprovalDays":0,"enableInterval":false,"earnLimit":1,"activityType":"REGULAR","allowedCustomerTags":null,"includeShippingPoints":false,"eligibleForFirstOrder":false,"maximumPoints":null,"restrictCustomerTags":null,"customerFacingIconUrl":null,"serial":null,"excludeOrderTags":null,"pointBasedOn":null,"excludeProducts":null,"givePointsToGuestCustomers":true,"allowedProductTags":null,"restrictProductTags":null,"rollBackPointsOnUnsubscribe":false,"addAdditionalPoints":false,"additionalPoints":null,"addAdditionalPhotoPoints":false,"additionalPhotoPoints":null,"addAdditionalVideoPoints":false,"additionalVideoPoints":null,"refundNotificationLabel":null,"disablePointsForDiscountedProduct":false,"platformType":"BOTH","vipTierId":null,"earnType":"POINTS","minimumOrderValue":null,"allowedOrderTags":null,"excludeVariantIds":null,"rewardA
5711ssignType":"DYNAMIC","applyOnImportedCustomer":false,"enableBirthdayPromo":false,"promoPointsMultiplier":null,"ruleStartDate":null,"ruleEndDate":null,"translations":null,"appliesOn":null,"manuallyApprovePoints":null,"showReviewProductDetails":true},{"id":3664,"shop":"foveorun.myshopify.com","type":"PURCHASE","status":"ACTIVE","historicPurchaseDuration":"NONE","basePoints":1.0,"includeSubtotal":false,"includeTax":false,"excludeCollections":null,"name":"Purchase Product","customerNotification":"{{points}} points added for purchase product","createAt":"2023-06-14T05:56:17.684807Z","updateAt":"2023-12-29T07:39:37.059251Z","rewardInterval":"DAY","productId":null,"collectionId":null,"variantId":null,"productData":null,"collectionData":null,"customerFacingLabel":"Get 1 points for each $1 spent","socialUrl":null,"disableForOnSellProduct":true,"autoApprovalDays":0,"enableInterval":false,"earnLimit":1,"activityType":"REGULAR","allowedCustomerTags":null,"includeShippingPoints":false,"eligibleForFirstOrder":false,"maximumPoints":null,"restrictCustomerTags":null,"customerFacingIconUrl":null,"serial":null,"excludeOrderTags":null,"pointBasedOn":null,"excludeProducts":null,"givePointsToGuestCustomers":true,"allowedProductTags":null,"restrictProductTags":null,"rollBackPointsOnUnsubscribe":false,"addAdditionalPoints":false,"additionalPoints":null,"addAdditionalPhotoPoints":false,"additionalPhotoPoints":null,"addAdditionalVideoPoints":false,"additionalVideoPoints":null,"refundNotificationLabel":null,"disablePointsForDiscountedProduct":true,"platformType":"BOTH","vipTierId":null,"earnType":"POINTS","minimumOrderValue":null,"allowedOrderTags":null,"excludeVariantIds":null,"rewardAssignType":"DYNAMIC","applyOnImportedCustomer":false,"enableBirthdayPromo":false,"promoPointsMultiplier":null,"ruleStartDate":null,"ruleEndDate":null,"translations":null,"appliesOn":null,"manuallyApprovePoints":null,"showReviewProductDetails":true}]; 5712 5713 5714 5715 _ALConfig.pointRedeemRules = [{"id":5478,"shop":"foveorun.myshopify.com","name":"Discount on order","type":"DISCOUNT_CODE","referralType":null,"status":"ACTIVE","redeemPoints":100.0,"discountType":"FIXED","discount":5.0,"minimumPurchaseAmount":5.0,"createAt":"2023-07-05T12:48:28.289611Z","updateAt":"2025-03-10T02:22:08.366601Z","maximumShippingRate":0.0,"productId":null,"variantId":null,"productData":null,"collectionId":null,"collectionData":null,"customerFacingLabel":"Redeem 100 points to get $5.00 discount on your next order","restrictCustomers":null,"restrictCustomersWithTags":null,"rewardInterval":"DAY","appliesOn":"ONE_TIME","combinedWithProductDiscount":true,"combinedWithShippingDiscount":true,"combinedWithOrderDiscount":true,"enableInterval":false,"redeemLimit":1,"enableNumberOfUsagesLimit":false,"numberOfUsagesLimit":1,"allowedCustomerTags":null,"earnRuleId":null,"vipTierId":null,"redeemLabel":"{{discount}} discount on entire order","customerFacingIconUrl":null,"serial":0,"discountCodeForAllCustomer":false,"allowedCountries":null,"showInPosOnly":false,"redeemAllPoints":false,"enableMinimumPointsToRedeem":false,"requiredMinimumPointsToRedeem":null,"enableMaximumPointsToRedeem":false,"requiredMaximumPointsToRedeem":null,"enablePOS":true,"minimumPointsLabel":"Add minimum {{points}} points to redeem","maximumPointsLabel":"Maximum {{points}} points can be redeemed","applyDiscountOnce":true,"enableDiscountPrefix":false,"discountPrefixText":null,"discountCodeNodeId":null,"translations":null,"quantity":null,"applyToEachItem":null},{"id":10111,"shop":"foveorun.myshopify.com","name":"Discount on order","type":"DISCOUNT_CODE","referralType":null,"status":"ACTIVE","redeemPoints":200.0,"discountType":"FIXED","discount":10.0,"minimumPurchaseAmount":10.0,"createAt":"2023-12-23T23:23:04.318334Z","updateAt":"2025-03-10T02:22:18.047319Z","maximumShippingRate":0.0,"productId":null,"variantId":null,"productData":null,"collectionId":null,"collectionData":null,"customerFacingLabel":"Redeem 200 points to get $10.00 discount","restrictCustomers":null,"restrictCustomersWithTags":null,"rewardInterval":"DAY","appliesOn":"ONE_TIME","combinedWithProductDiscount":true,"combinedWithShippingDiscount":true,"combinedWithOrderDiscount":true,"enableInterval":false,"redeemLimit":1,"enableNumberOfUsagesLimit":false,"numberOfUsagesLimit":null,"allowedCustomerTags":null,"earnRuleId":null,"vipTierId":null,"redeemLabel":"{{discount}} discount on entire order on minimum spend amount {{min_spend_amount}}","customerFacingIconUrl":null,"serial":1,"discountCodeForAllCustomer":false,"allowedCountries":null,"showInPosOnly":false,"redeemAllPoints":false,"enableMinimumPointsToRedeem":false,"requiredMinimumPointsToRedeem":null,"enableMaximumPointsToRedeem":false,"requiredMaximumPointsToRedeem":null,"enablePOS":true,"minimumPointsLabel":"Add minimum {{points}} points to redeem","maximumPointsLabel":"Maximum {{points}}
5715 points can be redeemed","applyDiscountOnce":true,"enableDiscountPrefix":false,"discountPrefixText":null,"discountCodeNodeId":null,"translations":null,"quantity":null,"applyToEachItem":null},{"id":5479,"shop":"foveorun.myshopify.com","name":"Discount on order","type":"DISCOUNT_CODE","referralType":null,"status":"ACTIVE","redeemPoints":400.0,"discountType":"FIXED","discount":20.0,"minimumPurchaseAmount":20.0,"createAt":"2023-07-05T12:57:10.542361Z","updateAt":"2025-03-10T02:22:28.432719Z","maximumShippingRate":0.0,"productId":null,"variantId":null,"productData":null,"collectionId":null,"collectionData":null,"customerFacingLabel":"Redeem 400 points to get $20.00 discount","restrictCustomers":null,"restrictCustomersWithTags":null,"rewardInterval":"DAY","appliesOn":"ONE_TIME","combinedWithProductDiscount":true,"combinedWithShippingDiscount":true,"combinedWithOrderDiscount":true,"enableInterval":false,"redeemLimit":1,"enableNumberOfUsagesLimit":false,"numberOfUsagesLimit":1,"allowedCustomerTags":null,"earnRuleId":null,"vipTierId":null,"redeemLabel":"{{discount}} discount on entire order","customerFacingIconUrl":null,"serial":2,"discountCodeForAllCustomer":false,"allowedCountries":null,"showInPosOnly":false,"redeemAllPoints":false,"enableMinimumPointsToRedeem":false,"requiredMinimumPointsToRedeem":null,"enableMaximumPointsToRedeem":false,"requiredMaximumPointsToRedeem":null,"enablePOS":true,"minimumPointsLabel":"Add minimum {{points}} points to redeem","maximumPointsLabel":"Maximum {{points}} points can be redeemed","applyDiscountOnce":true,"enableDiscountPrefix":false,"discountPrefixText":null,"discountCodeNodeId":null,"translations":null,"quantity":null,"applyToEachItem":null},{"id":9033,"shop":"foveorun.myshopify.com","name":"Discount on order","type":"DISCOUNT_CODE","referralType":null,"status":"ACTIVE","redeemPoints":1000.0,"discountType":"FIXED","discount":50.0,"minimumPurchaseAmount":50.0,"createAt":"2023-10-22T04:15:18.611347Z","updateAt":"2025-03-10T02:22:49.48159Z","maximumShippingRate":0.0,"productId":null,"variantId":null,"productData":null,"collectionId":null,"collectionData":null,"customerFacingLabel":"Redeem 1,000 points to get $50.00 discount","restrictCustomers":null,"restrictCustomersWithTags":null,"rewardInterval":"DAY","appliesOn":"ONE_TIME","combinedWithProductDiscount":true,"combinedWithShippingDiscount":true,"combinedWithOrderDiscount":true,"enableInterval":false,"redeemLimit":1,"enableNumberOfUsagesLimit":false,"numberOfUsagesLimit":1,"allowedCustomerTags":null,"earnRuleId":null,"vipTierId":null,"redeemLabel":"{{discount}} discount on entire order on minimum spend amount {{min_spend_amount}}","customerFacingIconUrl":null,"serial":3,"discountCodeForAllCustomer":false,"allowedCountries":null,"showInPosOnly":false,"redeemAllPoints":false,"enableMinimumPointsToRedeem":false,"requiredMinimumPointsToRedeem":null,"enableMaximumPointsToRedeem":false,"requiredMaximumPointsToRedeem":null,"enablePOS":true,"minimumPointsLabel":"Add minimum {{points}} points to redeem","maximumPointsLabel":"Maximum {{points}} points can be redeemed","applyDiscountOnce":true,"enableDiscountPrefix":false,"discountPrefixText":null,"discountCodeNodeId":null,"translations":null,"quantity":null,"applyToEachItem":null},{"id":11676,"shop":"foveorun.myshopify.com","name":"Discount Reward","type":"DISCOUNT_CODE","referralType":null,"status":"ACTIVE","redeemPoints":2000.0,"discountType":"FIXED","discount":100.0,"minimumPurchaseAmount":100.0,"createAt":"2024-03-03T16:48:02.836631Z","updateAt":"2025-03-10T02:23:00.742876Z","maximumShippingRate":0.0,"productId":null,"variantId":null,"productData":null,"collectionId":null,"collectionData":null,"customerFacingLabel":"Redeem 2,000 points to get $100.00 discount","restrictCustomers":null,"restrictCustomersWithTags":null,"rewardInterval":"DAY","appliesOn":"ONE_TIME","combinedWithProductDiscount":true,"combinedWithShippingDiscount":true,"combinedWithOrderDiscount":true,"enableInterval":false,"redeemLimit":1,"enableNumberOfUsagesLimit":false,"numberOfUsagesLimit":null,"allowedCustomerTags":null,"earnRuleId":null,"vipTierId":null,"redeemLabel":"{{discount}} discount on entire order on minimum spend amount {{min_spend_amount}}","customerFacingIconUrl":null,"serial":4,"discountCodeForAllCustomer":true,"allowedCountries":null,"showInPosOnly":false,"redeemAllPoints":false,"enableMinimumPointsToRedeem":false,"requiredMinimumPointsToRedeem":null,"enableMaximumPointsToRedeem":false,"requiredMaximumPointsToRedeem":null,"enablePOS":true,"minimumPointsLabel":"Add minimum {{points}} points to redeem","maximumPointsLabel":"Maximum {{points}}
5715 points can be redeemed","applyDiscountOnce":true,"enableDiscountPrefix":false,"discountPrefixText":null,"discountCodeNodeId":null,"translations":null,"quantity":null,"applyToEachItem":null},{"id":6351,"shop":"foveorun.myshopify.com","name":"Free Fove\\u014D Ciele Hat","type":"PRODUCT_DISCOUNT","referralType":null,"status":"ACTIVE","redeemPoints":900.0,"discountType":"PERCENTAGE","discount":100.0,"minimumPurchaseAmount":0.0,"createAt":"2023-08-03T01:29:23.358992Z","updateAt":"2025-03-10T02:21:42.445603Z","maximumShippingRate":0.0,"productId":null,"variantId":null,"productData":"[{\"id\":8210233688375,\"type\":\"PRODUCT\",\"productId\":8210233688375,\"title\":\"FoveÅ Running CLB Cap by Ciele Athletics\",\"imageSrc\":\"https:\/\/cdn.shopify.com\/s\/files\/1\/0699\/6908\/4727\/products\/ScreenShot2023-03-11at10.03.45AM.png?v=1678557970\",\"productHandle\":\"foveo-running-clb-cap-by-ciele-athletics\",\"variant\":false}]","collectionId":null,"collectionData":null,"customerFacingLabel":"Redeem 900 points to get a free Fove\\u014D Ciele hat","restrictCustomers":null,"restrictCustomersWithTags":null,"rewardInterval":"DAY","appliesOn":"ONE_TIME","combinedWithProductDiscount":true,"combinedWithShippingDiscount":true,"combinedWithOrderDiscount":true,"enableInterval":false,"redeemLimit":1,"enableNumberOfUsagesLimit":false,"numberOfUsagesLimit":1,"allowedCustomerTags":null,"earnRuleId":null,"vipTierId":null,"redeemLabel":"Free Fove\\u014D Ciele Hat","customerFacingIconUrl":null,"serial":5,"discountCodeForAllCustomer":false,"allowedCountries":null,"showInPosOnly":false,"redeemAllPoints":false,"enableMinimumPointsToRedeem":false,"requiredMinimumPointsToRedeem":null,"enableMaximumPointsToRedeem":false,"requiredMaximumPointsToRedeem":null,"enablePOS":true,"minimumPointsLabel":"Add minimum {{points}} points to redeem","maximumPointsLabel":"Maximum {{points}} points can be redeemed","applyDiscountOnce":true,"enableDiscountPrefix":false,"discountPrefixText":null,"discountCodeNodeId":null,"translations":null,"quantity":null,"applyToEachItem":null},{"id":4684,"shop":"foveorun.myshopify.com","name":"Free Shipping","type":"FREE_SHIPPING","referralType":null,"status":"ACTIVE","redeemPoints":300.0,"discountType":"FIXED","discount":0.0,"minimumPurchaseAmount":0.0,"createAt":"2023-06-14T06:08:19.462483Z","updateAt":"2024-02-27T07:54:20.330733Z","maximumShippingRate":20.0,"productId":null,"variantId":null,"productData":null,"collectionId":null,"collectionData":null,"customerFacingLabel":"Redeem 300 points to get free shipping on max shipping amount $20.00","restrictCustomers":null,"restrictCustomersWithTags":null,"rewardInterval":"DAY","appliesOn":"ONE_TIME","combinedWithProductDiscount":true,"combinedWithShippingDiscount":false,"combinedWithOrderDiscount":true,"enableInterval":false,"redeemLimit":1,"enableNumberOfUsagesLimit":false,"numberOfUsagesLimit":1,"allowedCustomerTags":null,"earnRuleId":null,"vipTierId":null,"redeemLabel":"Free shipping up to {{max_shipping_amount}}","customerFacingIconUrl":null,"serial":6,"discountCodeForAllCustomer":false,"allowedCountries":null,"showInPosOnly":false,"redeemAllPoints":false,"enableMinimumPointsToRedeem":false,"requiredMinimumPointsToRedeem":null,"enableMaximumPointsToRedeem":false,"requiredMaximumPointsToRedeem":null,"enablePOS":true,"minimumPointsLabel":"Add minimum {{points}} points to redeem","maximumPointsLabel":"Maximum {{points}} points can be redeemed","applyDiscountOnce":true,"enableDiscountPrefix":false,"discountPrefixText":null,"discountCodeNodeId":null,"translations":null,"quantity":null,"applyToEachItem":null}]; 5716 5717 5718 5719 _ALConfig.vipRewards = [{"id":9036,"shop":"foveorun.myshopify.com","name":"VIP Discount Reward","type":"DISCOUNT_CODE","referralType":"VIP","status":"ACTIVE","redeemPoints":0.0,"discountType":"PERCENTAGE","discount":25.0,"minimumPurchaseAmount":0.0,"createAt":"2023-10-22T04:36:51.274339Z","updateAt":"2023-10-22T04:43:50.919926Z","maximumShippingRate":0.0,"productId":null,"variantId":null,"productData":null,"collectionId":null,"collectionData":null,"customerFacingLabel":"Get 25% discount on any product","restrictCustomers":null,"restrictCustomersWithTags":null,"rewardInterval":"DAY","appliesOn":"ONE_TIME","combinedWithProductDiscount":false,"combinedWithShippingDiscount":false,"combinedWithOrderDiscount":false,"enableInterval":false,"redeemLimit":1,"enableNumberOfUsagesLimit":true,"numberOfUsagesLimit":1,"allowedCustomerTags":null,"earnRuleId":null,"vipTierId":5332,"redeemLabel":"{{discount}} discount on entire order on minimum spend amount {{min_spend_amount}}","customerFacingIconUrl":null,"serial":0,"discountCodeForAllCustomer":false,"allowedCountries":null,"showInPosOnly":false,"redeemAllPoints":false,"enableMinimumPointsToRedeem":false,"requiredMinimumPointsToRedeem":null,"enableMaximumPointsToRedeem":false,"requiredMaximumPointsToRedeem":null,"enablePOS":true,"minimumPointsLabel":"Add minimum {{points}} points to redeem","maximumPointsLabel":"Maximum {{points}}
5719 points can be redeemed","applyDiscountOnce":true,"enableDiscountPrefix":false,"discountPrefixText":null,"discountCodeNodeId":null,"translations":null,"quantity":null},{"id":9035,"shop":"foveorun.myshopify.com","name":"VIP Discount Reward","type":"DISCOUNT_CODE","referralType":"VIP","status":"ACTIVE","redeemPoints":0.0,"discountType":"PERCENTAGE","discount":20.0,"minimumPurchaseAmount":0.0,"createAt":"2023-10-22T04:33:28.852391Z","updateAt":"2023-10-22T04:43:34.529006Z","maximumShippingRate":0.0,"productId":null,"variantId":null,"productData":null,"collectionId":null,"collectionData":null,"customerFacingLabel":"Get 20% discount on any product","restrictCustomers":null,"restrictCustomersWithTags":null,"rewardInterval":"DAY","appliesOn":"ONE_TIME","combinedWithProductDiscount":false,"combinedWithShippingDiscount":false,"combinedWithOrderDiscount":false,"enableInterval":false,"redeemLimit":1,"enableNumberOfUsagesLimit":true,"numberOfUsagesLimit":1,"allowedCustomerTags":null,"earnRuleId":null,"vipTierId":5331,"redeemLabel":"{{discount}} discount on entire order on minimum spend amount {{min_spend_amount}}","customerFacingIconUrl":null,"serial":0,"discountCodeForAllCustomer":false,"allowedCountries":null,"showInPosOnly":false,"redeemAllPoints":false,"enableMinimumPointsToRedeem":false,"requiredMinimumPointsToRedeem":null,"enableMaximumPointsToRedeem":false,"requiredMaximumPointsToRedeem":null,"enablePOS":true,"minimumPointsLabel":"Add minimum {{points}} points to redeem","maximumPointsLabel":"Maximum {{points}} points can be redeemed","applyDiscountOnce":true,"enableDiscountPrefix":false,"discountPrefixText":null,"discountCodeNodeId":null,"translations":null,"quantity":null},{"id":9034,"shop":"foveorun.myshopify.com","name":"VIP Discount Reward","type":"DISCOUNT_CODE","referralType":"VIP","status":"ACTIVE","redeemPoints":0.0,"discountType":"PERCENTAGE","discount":15.0,"minimumPurchaseAmount":0.0,"createAt":"2023-10-22T04:31:09.805646Z","updateAt":"2023-10-22T04:44:07.28648Z","maximumShippingRate":0.0,"productId":null,"variantId":null,"productData":null,"collectionId":null,"collectionData":null,"customerFacingLabel":"Get 15% discount on any product","restrictCustomers":null,"restrictCustomersWithTags":null,"rewardInterval":"DAY","appliesOn":"ONE_TIME","combinedWithProductDiscount":false,"combinedWithShippingDiscount":false,"combinedWithOrderDiscount":false,"enableInterval":false,"redeemLimit":1,"enableNumberOfUsagesLimit":true,"numberOfUsagesLimit":1,"allowedCustomerTags":null,"earnRuleId":null,"vipTierId":5330,"redeemLabel":"{{discount}} discount on entire order on minimum spend amount {{min_spend_amount}}","customerFacingIconUrl":null,"serial":0,"discountCodeForAllCustomer":false,"allowedCountries":null,"showInPosOnly":false,"redeemAllPoints":false,"enableMinimumPointsToRedeem":false,"requiredMinimumPointsToRedeem":null,"enableMaximumPointsToRedeem":false,"requiredMaximumPointsToRedeem":null,"enablePOS":true,"minimumPointsLabel":"Add minimum {{points}} points to redeem","maximumPointsLabel":"Maximum {{points}} points can be redeemed","applyDiscountOnce":true,"enableDiscountPrefix":false,"discountPrefixText":null,"discountCodeNodeId":null,"translations":null,"quantity":null}]; 5720 5721 5722 5723 _ALConfig.vipPointRewards = []; 5724 5725 5726 5727 _ALConfig.widget_setting = {"id":1814,"shop":"foveorun.myshopify.com","themePrimaryColor":null,"themeSecondaryColor":null,"widgetPosition":"LEFT","showWidget":true,"widgetBackgroundColor":"#10cfc9","widgetTextColor":"#000000","faq":null,"popupHeaderColor":"#10cfc9","popupTilesColor":"#f7f7f7","popupButtonColor":"#000000","popupIconColor":"#000000","popupLinksColor":"#1d4ed8","homeGreetings":"Welcome, {{customer_first_name}}","homeSignup":"Sign up to \u003cstrong\u003e{{site_name}}'s store\u003c\/strong\u003e to start earning rewards","popupButtonTextColor":"#ffffff","popupTilesTextColor":"#212121","popupDiscountCodeGenerated":"Use the below coupon to get your discount.","popupCopyDiscount":"Copy Discount","popupCopiedDiscount":"Copied","widgetTitle":null,"customCss":".al-text-indigo-500 {\n color: #222222\n}\n.al-bg-blue-700 {\n background-color: #222222;\n}\n.al-bg-blue-700:hover {\n background-color: #FE877B;\n}\n.al-text-indigo-400 {\n color: #222222\n}\n.appstle-loyalty-redeem-widget-block {\n width: 100% !important;\n border: none !important;\n margin: 0 !important;\n padding: 0 !important;\n}\n\n.appstle_loyalty_cart_widget_wrapper {\n width: 100% !important;\n border: none !important;\n margin: 0 !important;\n padding: 10px !important;\n display: flex !important;\n justify-content: center !important;\n align-items: center !important;\n \/\/flex-direction: column !important;\n}\n\n.loyalty-cart-widget-button {\n display: flex !important;\n justify-content: center !important;\n \/\/width: 100% !important;\n border: none !important;\n margin: 0 !important;\n \/\/ flex-direction: column !important;\n align-items: center !important;\n}\n\n.loyalty-cart-widget-points-store-credits-info {\n border: none !important;\n width: 100% !important;\n text-align: center !important;\n}\n\n.loyalty-cart-widget-rewards-btn {\n margin: 0 !important;\n}\n\n.loyalty-cart-widget-icon {\n display: none !important;\n}
5727","widgetCounterBackgroundColor":"#00837b","widgetCounterTextColor":"#ffffff","logoUrl":null,"notificationToastBackgroundColor":"#f9f3df","notificationToastTextColor":"#000000","acquirePointsBackgroundColor":"#3b82f6","acquirePointsTextColor":"#fff","pointsBalanceBackgroundColor":"inherit","pointsBalanceTextColor":"#000000","allowedCustomersTag":null,"widgetSettingJson":"{\"widgetDateTimeFormat\":\"MMM D, YYYY, h:mm A\",\"showVIPSection\":true,\"dedicatedPageType\":\"DEDICATED_PAGE_V2\",\"checkoutTotalAcquirePointsDescription\":\"Use your points to redeem a discount on your next order.\",\"referralRedirectUrl\":\"\",\"popupDiscountCodeGenerated\":\"Use the below coupon to get your discount.\",\"showLoyaltyOptOut\":true,\"cartWidgetSelector\":\"\",\"toastPosition\":\"bottom-center\",\"primaryDedicatedPageSectionBackgroundColor\":\"#F2F8FF\",\"availablePoints\":\"Available points {{ points }}\",\"reachVipMileStoneType\":\"TOTAL_AMOUNT\",\"popupCopiedDiscount\":\"Copied\",\"historyDate\":\"Date\",\"cartDrawerWidgetPlacement\":\"AFTER\",\"refreshOnAddToCart\":false,\"selectApplyRewardsDefault\":false,\"dateLocalFormat\":\"DEFAULT\",\"enableMetaTagForNoIndexing\":true,\"checkoutRedeemLoginDescription\":\"to check your points balance and explore the exciting rewards available for redemption.\",\"enrollLoyaltyProgramTitle\":\"Enroll Loyalty Program\",\"hideAppstleLoaderIcon\":false,\"showRedeemSection\":true,\"loadScriptOnlyOnDedicatedPage\":false,\"hideRedeemRuleSectionOnEmpty\":true,\"vipTierBadgeBackgroun
5727dColor\":\"inherit\",\"popupCopyDiscount\":\"Copy Discount\",\"enableEnhancedV2Styling\":true,\"showCustomerHistoryDescriptionToolTip\":false,\"secondaryDedicatedPageBackgroundColor\":\"#ffffff\",\"launcherDataType\":\"POINTS\",\"checkoutTotalStoreCreditAcquirePoints\":\"Complete this purchase to earn up to {{totalStoreCreditPoints}} store credits.\",\"titleCount\":60,\"hideCheckoutBlockLoggedOutCustomers\":false,\"vipTierBadgeTextColor\":\"#000000\",\"popupButtonHoverColor\":\"#1A1DFF\",\"freeProductRewardAddedSuccessMessage\":\"Added to cart\",\"rewardsDetailsExpireDate\":\"Expires at: {{expire_date}}\",\"cartWidgetPlacement\":\"AFTER\",\"showRewardSection\":true,\"enrollLoyaltyProgramDescription\":\"Enroll our loyalty program to get rewards and incentives.\",\"primaryDedicatedPageBackgroundColor\":\"#1d4ed8\",\"showHowItWorksSection\":false,\"visitedIcon\":\"\",\"afterCopiedDiscountRedirectUrl\":\"\",\"showVipTierBadge\":false,\"vipTierBenefits\":\"Benefits\",\"loggedOutFlagAcquirePoints\":false,\"historyStatus\":\"Status\",\"hideRulesForLoggedOutCustomer\":false,\"hideStoreCreditsBalance\":false,\"showReferralSection\":true,\"cartWidgetRewardIcon\":\"\",\"toastErrorMsg\":\"Something went wrong\",\"hideEarnRuleSectionOnEmpty\":true,\"primaryDedicatedPageTextColor\":\"#818cf8\",\"showFAQSection\":true,\"showRangeForRedeemPoints\":false,\"secondaryDedicatedPageSectionBackgroundColor\":\"#FFFFFF\",\"applyDiscountCodeOnRedeem\":false,\"vipTierBadgeSelector\":\"\",\"loyaltyOptoutActive\":\"Active\",\"freeProductRewardAddToCart\":\"Add to cart\",\"disableRuleCollapsible\":false,\"showEarnSection\":true,\"cartDrawerRedeemWidgetSelector\":\".cart-block--accordion-container\",\"checkoutRedeemLoginURL\":\"\",\"hidePointsBalance\":false,\"descriptionCount\":0,\"loyaltyOptoutInactive\":\"Inactive\",\"customFontUrl\":\"\",\"hideFreeProductDropdownProductTitle\":false,\"historyPointsAdjustment\":\"Points\",\"historyActivityDetails\":\"Activity Details\",\"showCartRedeemWidget\":true,\"enableAcquirePointsQuantitySelector\":false,\"showPoweredBy\":false,\"hideVipTierName\":false,\"showTransactionHistory\":true,\"secondaryDedicatedPageTextColor\":\"#4b5563\",\"programUpdateMessage\":\"Process initiated. Please wait for the page to reload\",\"enrolledSuccessMessage\":\"Enrolled Successfully\",\"checkoutTotalAcquirePoints\":\"Complete this purchase to earn up to {{totalAcquiredPoints}} points\"}","widgetButtonLogoUrl":null,"showReferralSocialMedia":false,"referralSocialMediaInfo":"[{\"socialMedia\":\"INSTAGRAM\",\"socialMediaLink\":\"https:\/\/instagram.com\/foveo.run\",\"socialMediaIconURL\":\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/9\/95\/Instagram_logo_2022.svg\/640px-Instagram_logo_2022.svg.png\"},{\"socialMedia\":\"FACEBOOK\",\"socialMediaLink\":\"https:\/\/www.facebook.com\/foveo.run\",\"socialMediaIconURL\":\"https:\/\/cdn-icons-png.flaticon.com\/512\/124\/124010.png\"}]","restrictedCustomersTag":null,"blockWidgetOnPages":"\/homepage","colorSettingsJson":"{\"popupLinksColor\":\"#1d4ed8\",\"popupHeaderColor\":\"#10cfc9\",\"popupIconColor\":\"#000000\",\"acquirePointsBackgroundColor\":\"#3b82f6\",\"pointsBalanceBackgroundColor\":\"inherit\",\"pointsBalanceTextColor\":\"#000000\",\"widgetCounterBackgroundColor\":\"#00837b\",\"popupButtonColor\":\"#000000\",\"popupTilesColor\":\"#f7f7f7\",\"widgetBackgroundColor\":\"#10cfc9\",\"notificationToastTextColor\":\"#000000\",\"widgetCounterTextColor\":\"#ffffff\",\"notificationToastBackgroundColor\":\"#f9f3df\",\"popupTilesTextColor\":\"#212121\",\"popupButtonTextColor\":\"#ffffff\",\"widgetTextColor\":\"#000000\",\"acquirePointsTextColor\":\"#fff\"}","widgetType":"DEDICATED_PAGE","imageLinksJson":"{}","customerGreetingsIcon":null,"heroBackgroundImage":null,"referralReferenceImage":null,"referralBackgroundImage":null,"purchaseRuleImage":null,"subscriptionRuleImage":null,"createAccountRuleImage":null,"visitShopRuleImage":null,"birthdayRuleImage":null,"buyProductRuleImage":null,"buyProductFromCollectionRuleImage":null,"facebookRuleImage":null,"pinterestRuleImage":null,"instagramRuleImage":null,"tiktokRuleImage":null,"youtubeRuleImage":null,"twitterRuleImage":null,"stampedIoReviewRuleImage":null,"looxIoReviewRuleImage":null,"judgeMeReviewRuleImage":null,"productReviewRuleImage":null,"okendoReviewRuleImage":null,"discountRuleImage":null,"freeShippingRuleImage":null,"freeProductRuleImage":null,"productDiscountRuleImage":null,"collectionDiscountRuleImage":null,"dynamicDiscountRuleImage":null,"birthdayDiscountRuleImage":null,"availableRewardsImage":null,"vipTierImage":null,"faqBackgroun
5727dImage":null,"showAcquirePoints":false,"acquirePointsSelector":null,"showPointsBalance":null,"pointsBalanceSelector":null,"showPoweredBy":false,"forceRedirectDedicatedPage":null,"historyDate":"Date","historyActivityDetails":"Activity Details","historyPointsAdjustment":"Points","historyStatus":"Status","afterCopiedDiscountRedirectUrl":"","showVipTierBadge":false,"vipTierBadgeSelector":"","vipTierBadgeBackgroundColor":"inherit","vipTierBadgeTextColor":"#000000","faqIconImage":null,"descriptionCount":0,"customHtmlInject":null,"availablePoints":"Available points {{ points }}","showTransactionHistory":true,"showLoyaltyOptOut":true,"loyaltyOptoutActive":"Active","loyaltyOptoutInactive":"Inactive","createAccountLink":null,"showReferralSection":true,"showRewardSection":true,"showRedeemSection":true,"showEarnSection":true,"showFAQSection":true,"showVIPSection":true,"showHowItWorksSection":false,"vipTierBenefits":"Benefits","enrollLoyaltyProgramTitle":"Enroll Loyalty Program","enrollLoyaltyProgramDescription":"Enroll our loyalty program to get rewards and incentives.","freeProductRewardAddToCart":"Add to cart","freeProductRewardAddedSuccessMessage":"Added to cart","enrolledSuccessMessage":"Enrolled Successfully","customFontUrl":"","visitedIcon":"","allowWidgetOnSpecificPages":null,"referralRedirectUrl":"","showRangeForRedeemPoints":false,"hideAppstleLoaderIcon":false,"hideFreeProductDropdownProductTitle":false,"showToLoggedInCustomerOnly":false,"enableMetaTagForNoIndexing":true,"waysToEarnIcon":null,"waysToRedeemIcon":null,"loaderIcon":null,"toastPosition":"bottom-center","widgetDateTimeFormat":"MMM D, YYYY, h:mm A","toastErrorMsg":"Something went wrong","primaryDedicatedPageBackgroundColor":"#1d4ed8","secondaryDedicatedPageBackgroundColor":"#ffffff","titleCount":60,"programUpdateMessage":"Process initiated. Please wait for the page to reload","primaryDedicatedPageSectionBackgroundColor":"#F2F8FF","secondaryDedicatedPageSectionBackgroundColor":"#FFFFFF","primaryDedicatedPageV2SectionBackgroundColor":null,"secondaryDedicatedPageV2SectionBackgroundColor":null,"primaryDedicatedPageV2BackgroundColor":null,"secondaryDedicatedPageV2BackgroundColor":null,"primaryDedicatedPageV2TextColor":null,"secondaryDedicatedPageV2TextColor":null,"dedicatedPageV2BorderColor":null,"dedicatedPageV2BorderRadius":null,"dedicatedPageV2CardGap":null,"dedicatedPageV2SectionPadding":null,"refreshOnAddToCart":false,"showTierName":null,"customSignInLink":null,"checkoutRedeemLoginDescription":"to check your points balance and explore the exciting rewards available for redemption.","checkoutRedeemLoginURL":"","checkoutTotalAcquirePoints":"Complete this purchase to earn up to {{totalAcquiredPoints}} points","checkoutTotalAcquirePointsDescription":"Use your points to redeem a discount on your next order.","reachVipMileStoneType":"TOTAL_AMOUNT","showCustomerHistoryDescriptionToolTip":false,"checkoutTotalStoreCreditAcquirePoints":"Complete this purchase to earn up to {{totalStoreCreditPoints}} store credits.","hideRulesForLoggedOutCustomer":false,"hideCheckoutBlockLoggedOutCustomers":false,"checkoutAllowedCustomerTags":null,"checkoutRe
5727strictCustomerTags":null,"hideWidgetLauncherOnMobile":null,"referringCustomerRewardIcon":null,"referredCustomerRewardIcon":null,"referralClaimGiftIcon":null,"hideToastNotification":null,"dateLocalFormat":"DEFAULT","manageLoyaltyButtonUrl":null,"rewardsDetailsExpireDate":"Expires at: {{expire_date}}","hideEarnRuleSectionOnEmpty":true,"hideRedeemRuleSectionOnEmpty":true,"hideStoreCreditsBalance":false,"hidePointsBalance":false,"popupButtonHoverColor":"#1A1DFF","headerTextColor":null,"subheadingTextColor":null,"bodyTextColor":null,"footerTextColor":null,"hideWidgetOnScroll":null,"loyaltyPageMetaTitle":null,"loyaltyPageMetaDescription":null,"hideExpirationDate":null,"disableLoyaltyBlocks":null,"loadScriptOnlyOnDedicatedPage":false,"excludedPaths":null,"hideFaqSection":null,"enableAcquirePointsQuantitySelector":false,"showCartRedeemWidget":true,"cartWidgetSelector":"","cartDrawerRedeemWidgetSelector":".cart-block--accordion-container","cartWidgetPlacement":"AFTER","cartWidgetRewardIcon":"","cartDrawerWidgetPlacement":"AFTER","dedicatedPageType":"DEDICATED_PAGE_V2","secondaryDedicatedPageTextColor":"#4b5563","primaryDedicatedPageTextColor":"#818cf8","displayMethod":null,"launcherDataType":"POINTS","widgetBackgroundImage":null,"hideVipTierName":false,"enableEnhancedV2Styling":true,"applyDiscountCodeOnRedeem":false,"dedicatedPageSectionOrders":"[\n {\n \"i
5727d\": \"hero\",\n \"title\": \"Hero\",\n \"visible\": true\n },\n {\n \"id\": \"howItWorks\",\n \"title\": \"How It Works\",\n \"visible\": true\n },\n {\n \"id\": \"rewards\",\n \"title\": \"Rewards\",\n \"visible\": true\n },\n {\n \"id\": \"waysToEarn\",\n \"title\": \"Ways To Earn\",\n \"visible\": true\n },\n {\n \"id\": \"waysToRedeem\",\n \"title\": \"Ways To Redeem\",\n \"visible\": true\n },\n {\n \"id\": \"vipProgram\",\n \"title\": \"Vip Program\",\n \"visible\": true\n },\n {\n \"id\": \"referralProgram\",\n \"title\": \"Referral Program\",\n \"visible\": true\n },\n {\n \"id\": \"transactionHistory\",\n \"title\": \"Transaction History\",\n \"visible\": true\n },\n {\n \"id\": \"faqs\",\n \"title\": \"Faqs\",\n \"visible\": true\n }\n]","disableRuleCollapsible":false,"referralCustomRedirectUrl":null,"selectApplyRewardsDefault":false,"exploreButtonCustomRedirect":null,"heroBackgroundMobileImage":null,"loggedOutFlagAcquirePoints":false,"taxesIncluded":false,"taxShipping":true}; 5728 5729 5730 5731 _ALConfig.referralLoyalty = {"referralType":"PURCHASE","referralRestrictedCustomerTags":"","referralGet":"25 points after their 1st purchase","referredGet":"25 points","referralAllowedCustomerTags":""}; 5732 5733 5734 5735 5736 _ALConfig.assetRev = "5d48dbb4e9911383572804c952a06a37"; 5737 5738 _ALConfig.storeFrontApiVersion = "2026-01"; 5739 _ALConfig.__appstleLoyaltyNativeFetch = window.fetch.bind(window); 5740 5741 5742 _ALConfig.pointsExpirationSetting = {"expirationInterval":2,"expirationIntervalType":"YEAR"}; 5743 5744 5745 5746 5747 5748 5749 _ALConfig.showStoreCreditRewards = false; 5750 5751 5752 5753 _ALConfig.customerId = null; 5754 _ALConfig.customerName = ''; 5755 _ALConfig.customerEmail = null; 5756 _ALConfig.customerStoreCreditBalance = null; 5757 _ALConfig.customerStoreCreditCurrency = null; 5758 _ALConfig.customerTags = []; 5759 _ALConfig.customerLoyalty = null; 5760 5761 5762 5763 _ALConfig.shop = "foveorun.myshopify.com"; 5764 _ALConfig.shopMoneyFormat = "${{amount}}"; 5765 _ALConfig.shopMoneyFormatWithCurrencyFormat = "${{amount}} CAD"; 5766 5767 5768 5769 5770 _ALConfig.enableInactiveCustomer = true; 5771 5772 5773 5774 _ALConfig.allowCustomerOptIn = false; 5775 5776 5777 5778 _ALConfig.enableDiscountToApplyAutomatically = true; 5779 5780 5781 5782 _ALConfig.hasDedicatedPageAccess = true; 5783 5784 5785 5786 _ALConfig.themeEditorMode = false; 5787 5788 5789 5790 _ALConfig.shop_labels = {"popupRewardsDetailsHeadingText":"Your Rewards","rewardsExpirationLabel":"{{day}}d","acquirePointsLabel":"Acquire Points: {{totalPoints}}","checkoutPendingPointsLabel":"with {{pendingPoints}} pending points.","homeSignup":"Sign up to \u003cstrong\u003e{{site_name}}'s store\u003c\/strong\u003e to start earning rewards","vipSpentAmountLabel":"Spent {{amount}}","minimumPointsForRedeemText":"Minimum {{points}} points required for point redemption","checkoutAcquiredPointsLabel":"You have acquired {{acquiredPoints}} points from this order","cartWidgetLoginMessageLabel":"Log in to redeem your points for rewards.","popupDiscountCodeGenerated":"Use the below coupon to get your discount.","checkoutDiscountCodeApplyButtonLabel":"Apply","loyaltyPageHeroV2Heading":"Exclusive Rewards for Our Valued Members","availablePoints":"Available points {{ points }}","currentVipTierBadgeLabel":"You are a {{current_tier}} member","checkoutAvailableRewardsLabel":"Your Rewards","popupCopiedDiscount":"Copied","referralFriendGetText":"They will receive","cartWidgetRewardsButtonLabel":"Redeem","popupReferralContentText":"Refer your friends and you both earn points after their first purchase! \u003cbr\u003eSimply send them the link below. ","storeCreditApplyGuideLabel":"Your Store Credit is ready at checkoutâmake sure the 'Apply store credit' checkbox is checked and verify the amount you're using.","storeCreditBalanceLabel":"Your Store Credits","faq":"[{\"title\":\"Our Loyalty Program\",\"content\":\"\u003cp\u003eWe wanted to show our appreciation to you with our exclusive rewards program. By creating an Foveo Rewards account, you'll earn points for activities on our site, like referrals and purchases. You can use them to earn discounts off purchases, so the more you collect the more you save.\u003c\/p\u003e\"},{\"title\":\"Terms \u0026amp; Conditions\",\"content\":\"\u003cp\u003eUpdated Feb 2, 2024\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cul\u003e\u003cli\u003e\u003cstrong\u003eCash Value\u003c\/strong\u003e: Points do not have any cash value and cannot be redeemed for monetary value (i.e. cash, credit card, gift card, store-credit, etc.).\u003c\/li\u003e\u003cli\u003e\u003cstrong\u003eSingle-use\u003c\/strong\u003e: Points are single-use and will \u003cu\u003enot\u003c\/u\u003e returned for any part of a transaction that is returned or exch
5790anged.\u003c\/li\u003e\u003cli\u003e\u003cstrong\u003eOn-Sale Items\u003c\/strong\u003e: Points are not accumulated for on-sale, discounted or promotional items.\u003c\/li\u003e\u003cli\u003e\u003cstrong\u003ePoint \u0026amp; Reward Value\u003c\/strong\u003e: One point is earned for every dollar, before tax, on regular priced products only. Rewards available to customers are based on points, vary in value and are subject to change any time. To see a list of rewards available, you can view on foveo.run when logged in or ask in-store.\u003c\/li\u003e\u003cli\u003e\u003cstrong\u003eData Collection and Account Deletion\u003c\/strong\u003e: All customers on foveo.run website and in-store when customer information is provided, will automatically be enrolled in the loyalty program. You can request to have your customer account deleted by emailing [email protected].\u003c\/li\u003e\u003cli\u003e\u003cstrong\u003eDispute Resolution\u003c\/strong\u003e: Please contact [email protected] with any disputes about our loyalty program.\u003c\/li\u003e\u003cli\u003e\u003cstrong\u003eNot Transferrable\u003c\/strong\u003e: Points cannot be transferred to any other person at any time including at the time of the sale (i.e. purchasing a product but having someone else earn points)\u003c\/li\u003e\u003cli\u003e\u003cstrong\u003ePoints Expiry\u003c\/strong\u003e: Points will expire 365 days from the date they are earned if not used. \u003c\/li\u003e\u003c\/ul\u003e\"},{\"title\":\"How do I earn points?\",\"content\":\"\u003cp\u003eYou can earn points for all sorts of activities, including referring friends, and making purchases. To see all the ways you can earn points click the *Earn Points* tab in the menu.\u003c\/p\u003e\"},{\"title\":\"How do I redeem points?\",\"content\":\"\u003cp\u003eSelect the tab called *Redeem Points*. Here you'll see all the rewards we offer. If you have enough points, you can redeem them for a reward.\u003c\/p\u003e\"},{\"title\":\"What do the 'approved', 'pending' and 'cancelled' statuses mean?\",\"content\":\"\u003cp\u003e\u003cstrong\u003eApproved\u003c\/strong\u003e: These points can be redeemed on rewards immediately.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003ePending\u003c\/strong\u003e: These points need to be verified before you can redeem them. This typically applies to purchases and referrals.\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eCancelled\u003c\/strong\u003e: These points will not be added to your account. For example, this will happen if you cancel a purchase (the points will change from pending to cancelled)\u003c\/p\u003e\"}]","dynamicPointsLabel":"Enter Points","loyaltyOptOutLabel":"Loyalty Program Updated","enrollLoyaltyProgramTitle":"Enroll Loyalty Program","rewardDetailsHelpLabel":"Use the below coupon at check out to get your discount","popupCopyDiscount":"Copy Discount","vipStatusLabel":"VIP Status","pendingStatusLabel":"Pending","checkoutTotalStoreCreditAcquirePoints":"Complete this purchase to earn up to {{totalStoreCreditPoints}} store credits.","acquirePointsLoggedOutText":"","sendEmailHeadingText":"Send Referral Link","enrollLoyaltyProgramActionLabel":"Enroll Now","freeProductRewardAddedSuccessMessage":"Added to cart","cartWidgetLoginLinkLabel":"Log in","popupFAQHeadingText":"FAQ, Terms \u0026 Conditions","widgetTitle":"FoveÅ Rewards","claimReferralEmailFieldHintText":"Note: To redeem your reward, please create an account using the same email address.","checkoutToggleRedeemButtonLabel":"Redeem Rewards","rejectedStatusLabel":"Rejected","checkoutViewMoreDiscountCodeButtonLabel":"View More","perTransactionLimitExceedText":"Per transaction limit exceed. Cannot redeem more then {{shop_redeem_limit}} points","pointsBalanceLabel":"Your point balance: {{points}}","vipTierBenefits":"Benefits","popupRedeemRewardsHeadingText":"Redeem Rewards","vipRewardLabel":"Rewards","sendEmailButtonText":"Send Email","cartWidgetAvailableBalanceLabel":"Your Loyalty Rewards Balance: {{available_points}}","checkoutRedeemLabel":"Redeem your Points","referredByText":"Referred by {{customer_first_name}}","birthdayActionLabel":"Submit","popupReferralTitleText":"Referrals","popupEarnRewardsHeadingText":"Earn Rewards","popupAvailableRewardsContentText":"You have {{rewards}} rewards ready to use\u003cbr\u003eScroll down to redeem points for more rewards","claimedStatusLabel":"Claimed","loyaltyOptoutActive":"Active","redeemActionLabel":"Redeem","checkoutRedeemLoginLabel":"Log in","createAccountLabel":"Create an account","rewardDetail
5790sTitleLabel":"Spend {{spend_amount}} and , get {{discount_amount}} {{discount_type}} discount","claimGiftHeaderText":"Claim Your Welcome Points","yourReferralsHeadingLabel":"Your Referrals","loyaltyOptoutInactive":"Inactive","noRefferralAvailableText":"No Referrals reward available","popupCardActionText":"Sign In","popupFAQAskedQuestionHeadingText":"Frequently Asked Questions","popupEarnTilesText":"See ways to earn points","minimumAmountSpentForRedeemText":"Minimum {{amount_spent}} spent amount required for point redemption","birthdayUpdatedToastLabel":"Birthday Updated","historyPointsAdjustment":"Points","referButtonLabel":"Refer Now","claimReferralGiftButtonText":"Join now","historyActivityDetails":"Activity Details","widgetCopiedLabel":"Copied","sentDiscountCodeToEmailText":"We sent the discount code to your email.","referralCustomerGetText":"You will receive","popupRemainingPointsHeadingText":"Your points","referralLinkSentLabel":"Referral Link Sent","birthdayTitleLabel":"Enter your birthday","checkoutSelectRedeemRuleDropdownLabel":"Select Redeem Rule","noRedeemRulesLabel":"No Redeem Rules Found","minimumOrderCountForRedeemText":"Minimum {{order_count}} orders required for point redemption","enrolledSuccessMessage":"Enrolled Successfully","customerHistoryLabel":"Transaction history","redeemLimitExceedText":"Redeem Limit Exceed. Cannot redeem more then {{redeem_limit}} times per {{reward_interval}}","widgetDateTimeFormat":"MMM D, YYYY, h:mm A","pointExpirationDateLabel":"Expiration date: {{expiration_date}}","popupRedeemTilesText":"See rewards available to you","loyaltyOptOutSettingsLabel":"Settings","alreadyHaveAnAccountLabel":"Already have an account?","checkoutTotalAcquirePointsDescription":"Use your points to redeem a discount on your next order.","checkoutEmptyRewardsLabel":"You don't have any rewards available.","popupRewardPointContentText":"Earn Reward Points and turn them into awesome rewards!","noEarnRulesLabel":"No Earn Rules Found","emailValidationLabel":"Please provide a valid email","historyDate":"Date","popupAvailableRewardsHeadingText":"Your rewards ready to use","customerHistoryDescriptionLabel":"See the list of your point earn and redeem activity","totalAcquiredStoreCreditsLabel":"You have earned {{currency}}{{totalStoreCreditPoints}} store credits on this order","claimReferralEmailFieldText":"Your email","subscribeRuleRedirectActionLabel":"Subscribe","checkoutRedeemLoginDescription":"to check your points balance and explore the exciting rewards available for redemption.","loyaltyStatusLabel":"Opt Out \/ Opt In of Loyalty Program","vipEarnPointLabel":"Earn {{points}} Points","vipCurrentTierLabel":"Your Current Tier","storeOnSaleForRedeemText":"Store on sale, to redeem point please try after {{shop_on_sale_end_date}}","popupCardHeadingText":"Access your rewards","loyaltyPageHeroV2SubHeading":"Become a member and earn points, store credits \u0026 exclusive rewards every time you shop.","checkoutToggleAvailableRewardsButtonLabel":"Available Discounts","manageLoyaltyButtonLabel":"Manage Your Rewards","shareReferralLinkLabel":"Share Your Unique Link","popupWelcomeText":"Welcome {{customer_first_name}}","referYourFriendContentText":"Share this URL to give your friends the reward {{rewards}} off coupon","vipAchievableTierLabel":"{{milestone_type}} {{milestone}} to reach {{achievable_tier}}","shareSocialMediaLabel":"Share directly on your favorite platform:","homeGreetings":"Welcome, {{customer_first_name}}","loyaltyOptOutActiveLabel":"Loyalty program {{active_status}}.","dailyLimitExceedText":"Daily limit exceed. Cannot redeem more than {{redeem_limit}} points per day","popupCardContentText":"Sign in to \u003cstrong\u003e{{site_name}}'s store\u003c\/strong\u003e to start earning rewards","rewardsDetailsExpireDate":"Expires at: {{expire_date}}","enrollLoyaltyProgramDescription":"Enroll our loyalty program to get rewards and incentives.","loyaltyPageHeroV2AuthenticatedHeading":"Hi, {{customer_first_name}}, you have {{points}} points and {{store_credits}} store credits","minimumRedeemRequiredPointsLabel":"","vipTierDetailsText":"Your all access pass to exclusive rewards. Reach higher tiers for more exclusive perks.","membershipRewardTitleLabel":"Appstle Membership","historyStatus":"Status","approvedStatusLabel":"Approved","acquireStoreCreditLabel":"Acquire Store Credits: {{totalStoreCreditPoints}}","toastErrorMsg":"Something went wrong","checkThankYouAcquiredPointsHeadingLabel":"Congratulations","popupCommunityContentText":"Earn rewards when shopping with us","currentVipTierText":"Your Current Tier","popupRewardPointTitleText":"Reward Points","socialMediaActionLabel":"Claim","noCustomerHistoryLabel":"No History Found","freeProductRewardAddToCart":"Add to cart","creditRe
5790wardDetailsHelpLabel":"Use these credits to get a discount on your order.","shareReferralEmailFieldText":"Enter your friend's email","vipTierTitleLabel":"VIP","referralCompletedText":"{{total_count}} referrals completed","reviewRuleRedirectActionLabel":"Review","referYourFriendTitleText":"Refer your friends","popupEarnPointDescriptionText":"Earn more points, and turn those points into awesome rewards!","popupCommunityHeadingText":"FoveÅ Running","claimReferralGiftDescriptionText":"{{customer_first_name}} is enrolled in our loyalty program. Enter your email to join and you will both receive referral points. ","programUpdateMessage":"Process initiated. Please wait for the page to reload","dynamicPointsHelpText":"Spend {{points}} points to get {{discount}} discount","totalAcquiredPointsLabel":"You have earned {{totalAcquiredPoints}} points on this order","checkoutTotalAcquirePoints":"Complete this purchase to earn up to {{totalAcquiredPoints}} points"}; 5791 5792 5793 var loyaltyGlobalStyles = `<style> 5794body { 5795margin: 0 5796} 5797.appstle-loyalty-hidden { 5798display: none !important; 5799visibility: hidden !important; 5800} 5801</style>` 5802 document.querySelector('body').insertAdjacentHTML('beforeend', loyaltyGlobalStyles); 5803 5804 window.addEventListener('message', appstleLoyaltyIframeListener, false); 5805 window.addEventListener('kp_user_logged_out', function() { window.location.reload(); }); 5806 const removeFirstSlashFromURL = (url) => url ? url?.replace(/\\\//g, "/")?.replace(/^\/+/, "") : url; 5807 5808 5809 function applyDiscount(discountCode, shouldReload = false) { 5810 const encodedDiscountCode = encodeURIComponent(discountCode?.trim()); 5811 const discountURL = `${location?.origin}/discount/${encodedDiscountCode}`; 5812 fetch(discountURL).then(res => { 5813 if (res.ok) { 5814 console.log('Discount Code Applied'); 5815 const discountDetails = window?._ALConfig?.customerLoyalty?.rewards?.find((item) => item?.discountCode === discountCode) || null; 5816 if (discountCode && discountDetails) { 5817 const discountData = {discountCode: discountCode || discountDetails?.discountCode, description: discountDetails?.description, customerId: discountDetails?.customerId} 5818 document.dispatchEvent(new CustomEvent('AppstleLoyalty:AppliedDiscountCode', { detail: discountData })); 5819 window.dispatchEvent(new CustomEvent('AppstleLoyalty:AppliedDiscountCode', { detail: discountData })); 5820 } 5821 if (shouldReload) { 5822 window.location.reload(); 5823 } 5824 } else { 5825 console.log('Discount Code NOT Applied'); 5826 } 5827 }); 5828 } 5829 const applyDiscountAutomatically = (discountCode, shouldReload = false) => { 5830 (async () => { 5831 const encodedDiscountCode = encodeURIComponent(discountCode?.trim()); 5832 const discountURL = `${location.origin}/checkout?discount=${encodedDiscountCode}`; 5833 const cartURL = `${location.origin}/cart.js`; 5834 try { 5835 const discountRes = await fetch(discountURL); 5836 if(discountRes) { 5837 const cartRes = await fetch(cartURL); 5838 if (!cartRes.ok) return; 5839 const cart = await cartRes.json(); 5840 const discount_codes = cart && Array.isArray(cart?.['discount_codes']) ? cart?.['discount_codes'] : []; 5841 const hasDiscount = discount_codes.some(d => (d?.code || "").toLowerCase() === String(discountCode).toLowerCase()); 5842 if (hasDiscount && shouldReload) { 5843 window.location.reload(); 5844 } 5845 } 5846 } catch (err) { 5847 console.error("Error applying discount:", err); 5848 } 5849 })(); 5850 }; 5851 5852 const unescapeWidgetString = (str) => { 5853 if (!str || typeof str !== 'string') return ''; 5854 return str?.replace(/\\\//g, '/')?.replace(/\\\\/g, '\\'); 5855 }; 5856 // Resolves a market-aware account URL. Prefers the routes published above so the customer keeps 5857 // their market/language prefix; the shop root fallback keeps that prefix too when a single route 5858 // entry is blank. Safe to assign to location.href as-is - with new customer accounts Shopify 5859 // returns an absolute URL here, so never prefix an origin. 5860 const loyaltyAccountRoute = (key, fallbackPath) => { 5861 const route = _ALConfig?.routes?.[key]; 5862 if (route) return route; 5863 const shopRoot = _ALConfig?.routes?.root_url || window?.Shopify?.routes?.root || '/'; 5864 return (shopRoot?.replace(/\/+$/, '') ?? '') + fallbackPath; 5865 }; 5866 5867 // Shopify's /customer_authentication/login answers 400 Bad Request unless return_to is a 5868 // store-relative path with one leading slash, so coerce `return_to=apps/loyalty`, 5869 // `return_to=collections/all` or a same-store absolute URL into that shape. 5870 const normalizeLoyaltyReturnTo = (link) => { 5871 const match = /([?&]return_to=)([^&#]*)/i.exec(link || ''); 5872 // Only Shopify's own login route on this store - a third-party login app may legitimately want an absolute return_to. 5873 if (!match || !/(^|\/)customer_authentication\//i.test(link.slice(0, match.index))) return link; 5874 if (/^(https?:)?\/\//i.test(link)) { 5875 try { 5876 if (new URL(link, window.location.origin).host !== window.location.host) return link; 5877 } catch (e) { 5878 return link; 5879 } 5880 } 5881 let value = match[2]; 5882 try { 5883 for (let i = 0; i < 2 && /%[0-9a-f]{2}/i.test(value); i++) value = decodeURIComponent(value); 5884 } catch (e) { 5885 return link; 5886 } 5887 value = value.trim(); 5888 if (/^(https?:)?\/\//i.test(value)) { 5889 try { 5890 const parsed = new URL(value, window.location.origin); 5891 if (parsed.host !== window.location.host) return link; 5892 value = parsed.pathname + parsed.search + parsed.hash; 5893 } catch (e) { 5894 return link; 5895 } 5896 } 5897 value = '/' + value.replace(/^\/+/, ''); 5898 return link.slice(0, match.index) + match[1] + encodeURIComponent(value) + link.slice(match.index + match[0].length); 5899 }; 5900 5901 const formatUrlByLoyalty = (link) => { 5902 if (!link) return ''; 5903 const decodedLink = decodeURIComponent(link); 5904 const loyaltyPagePath = '/' + (_ALConfig?.hasDedicatedPageAccess ? _ALConfig?.proxy_path_prefix || 'apps/loyalty' : ''); 5905 let l = decodedLink?.replace("{{proxy_path_prefix}}", loyaltyPagePath)?.trim()?.replace(/\\\//g, '/')?.replace(/^\/+/, '') || ''; 5906 l = normalizeLoyaltyReturnTo(l?.replace(/([^:]\/)\/+/g, '$1') ?? ''); 5907 if (/^(https?:\/\/|\/\/|www\.)/i.test(l)) { 5908 return /^www\./i.test(l) ? 'https://' + l : l; 5909 } 5910 const shopRoot = window?.Shopify?.routes?.root ?? '/'; 5911 return (shopRoot?.replace(/\/+$/, '') ?? '') + '/' + l; 5912 }; 5913 5914 function isAppstleLoyaltyMessage(event) { 5915 if (event.origin !== window.location.origin) return false;
5916 return event.source === window || ['appstle_loyalty_iframe', 'appstle_loyalty_cart_widget_iframe'].some(id => { 5917 const frame = document.getElementById(id); 5918 return frame && event.source === frame.contentWindow; 5919 }); 5920 } 5921 5922 const loyaltyLabelHtmlPolicy = { 5923 ALLOWED_TAGS: ['a', 'b', 'blockquote', 'br', 'button', 'center', 'div', 'em', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'li', 'ol', 'p', 's', 'small', 'span', 'strong', 'sub', 'sup', 'u', 'ul'], 5924 ALLOWED_ATTR: ['alt', 'class', 'height', 'href', 'loading', 'rel', 'src', 'style', 'target', 'title', 'width'], 5925 ALLOW_DATA_ATTR: false, 5926 ALLOW_ARIA_ATTR: false 5927 }; 5928 const escapeLoyaltyAttribute = value => String(value ?? '').replace(/[&<>"']/g, char => ({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[char])); 5929 const loyaltyNavigationUrl = value => { 5930 if (typeof value !== 'string' || !value.trim()) return null; 5931 try { 5932 const url = new URL(value, window.location.href); 5933 return ['https:', 'http:'].includes(url.protocol) && !url.username && !url.password ? url : null; 5934 } catch { 5935 return null; 5936 } 5937 }; 5938 // Follow the Bundles rich-label declaration filter, preserving native storefront layout 5939 // (relative offsets, negative margins and transforms) that the merchant already configures. 5940 const sanitizeLoyaltyLabelStyle = styleText => { 5941 const allowedProperty = /^(?:color|opacity|visibility|cursor|display|order|columns|aspect-ratio|box-shadow|box-sizing|line-height|letter-spacing|white-space|vertical-align|accent-color|caret-color|appearance|width|height|position|top|right|bottom|left|transform|(?:background|border(?!-image)|outline|font|text|margin|padding|flex|align|justify|place|grid|gap|row-gap|column|overflow|transition|list-style|word|min|max|object)(?:-[a-z]+)*)$/; 5942 const unsafeValue = /[{}<>\\]|\b(?:url|attr|env|image|image-set|element|src|expression)\s*\(/i; 5943 return String(styleText ?? '').split(';').filter(declaration => { 5944 const separator = declaration.indexOf(':'); 5945 if (separator < 0) return false; 5946 const property = declaration.slice(0, separator).trim().toLowerCase(); 5947 const value = declaration.slice(separator + 1).trim(); 5948 return (allowedProperty.test(property) || /^--[a-z0-9_-]+$/i.test(property)) && value && !unsafeValue.test(value) 5949 && (property !== 'position' || /^(?:relative|static)$/i.test(value)); 5950 }).join(';'); 5951 }; 5952 const sanitizeLoyaltyLabel = (value, purifier, allowLinks = true) => { 5953 if (!purifier) return escapeLoyaltyAttribute(value); 5954 const fragment = purifier.sanitize(String(value ?? ''), { 5955 ...loyaltyLabelHtmlPolicy, 5956 FORBID_TAGS: allowLinks ? [] : ['a', 'button'], 5957 RETURN_DOM_FRAGMENT: true 5958 }); 5959 fragment.querySelectorAll('[href], [src]').forEach(element => { 5960 for (const attribute of ['href', 'src']) { 5961 if (element.hasAttribute(attribute) && !loyaltyNavigationUrl(element.getAttribute(attribute))) element.removeAttribute(attribute); 5962 } 5963 }); 5964 fragment.querySelectorAll('[style]').forEach(element => { 5965 const style = sanitizeLoyaltyLabelStyle(element.getAttribute('style')); 5966 if (style) element.setAttribute('style', style); 5967 else element.removeAttribute('style'); 5968 }); 5969 fragment.querySelectorAll('[target]').forEach(element => { 5970 if (element.tagName !== 'A' || !['_blank', '_self'].includes(element.getAttribute('target'))) element.removeAttribute('target'); 5971 else if (element.getAttribute('target') === '_blank') { 5972 const rel = new Set((element.getAttribute('rel') || '').split(/\s+/).filter(Boolean)); 5973 rel.add('noopener'); 5974 element.setAttribute('rel', [...rel].join(' ')); 5975 } 5976 }); 5977 fragment.querySelectorAll('button').forEach(button => button.setAttribute('type', 'button')); 5978 const container = document.createElement('div'); 5979 container.appendChild(fragment); 5980 return container.innerHTML; 5981 }; 5982 let loyaltyHtmlSanitizer; 5983 window.appstleLoyaltyLoadSanitizer = () => loyaltyHtmlSanitizer ||= new Promise(resolve => { 5984 if (window.DOMPurify) return resolve(window.DOMPurify); 5985 const script = document.createElement('script'); 5986 script.src = 'https://cdn.jsdelivr.net/npm/[email protected]/dist/purify.min.js'; 5987 script.integrity = 'sha384-46dPGH1XlTmj7bc50bqLjTdORXs/3EP2QpA/6EWbelYWOY9VGp+87RT61S3Mcslb'; 5988 script.crossOrigin = 'anonymous'; 5989 const settle = purifier => { 5990 clearTimeout(timeout); 5991 resolve(purifier); 5992 }; 5993 const timeout = setTimeout(() => settle(null), 8000); 5994 script.onload = () => settle(window.DOMPurify); 5995 script.onerror = () => settle(null); 5996 document.head.appendChild(script); 5997 }); 5998 5999 function appstleLoyaltyIframeListener(event) { 6000 if (!isAppstleLoyaltyMessage(event)) return; 6001 const redirect = (link, fallback) => { 6002 try { 6003 const destination = link ? formatUrlByLoyalty(link) : fallback; 6004 const url = new URL(destination, window.location.origin); 6005 if (!['http:', 'https:'].includes(url.protocol) || url.username || url.password) return; 6006 window.location.href = destination; 6007 } catch (e) {} 6008 }; 6009 if (event.data === 'appstle_loyalty_message_to_redirect_to_account') { 6010 if (!_ALConfig?.widget_setting?.customSignInLink && typeof kpHandleLogin === 'function') { 6011 kpHandleLogin(window.location.href); 6012 } else { 6013 redirect(_ALConfig?.widget_setting?.customSignInLink, loyaltyAccountRoute('account_url', '/account')); 6014 } 6015 } else if (event.data === 'appstle_message_to_redirect_to_signup') { 6016 if (typeof kpHandleLogin === 'function') { 6017 kpHandleLogin(window.location.href); 6018 } else { 6019 redirect(null, loyaltyAccountRoute('account_register_url', '/account/register')); 6020 } 6021 } else if (event?.data && event?.data?.type === 'appstle_message_to_redirect_to_after_copied_discount_redirect_url' && typeof event?.data?.value === 'string') { 6022 try { 6023 const redirectUrl = new URL(event.data.value, window.location.origin); 6024 if (redirectUrl.origin !== window.location.origin || !['http:', 'https:'].includes(redirectUrl.protocol) || redirectUrl.username || redirectUrl.password) return; 6025 window.location.href = redirectUrl.href; 6026 } catch (e) { 6027 return; 6028 } 6029 } else if (event.data === 'appstle_message_to_redirect_to_custom_url') { 6030 redirect(_ALConfig?.widget_setting?.createAccountLink, loyaltyAccountRoute('account_register_url', '/account/register')); 6031 } else if (typeof event.data === 'string') { 6032 const parts = event.data.split('|'); 6033 if (parts.length !== 2 || !parts[1].trim()) return; 6034 const [command, discountCode] = parts; 6035 if (command === 'appstle_message_to_apply_discount_and_reload') applyDiscount(discountCode, true); 6036 else if (command === 'appstle_message_to_apply_discount') applyDiscount(discountCode, false); 6037 else if (command === 'appstle_message_to_automatic_apply_discount_and_refresh') applyDiscountAutomatically(discountCode, true); 6038 else if (command === 'appstle_message_to_automatic_apply_discount') applyDiscountAutomatically(discountCode, false); 6039 } 6040 } 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 <!-- BEGIN app snippet: loyalty-snackbar --> 6052 const snackBarStyles = ` 6053#snackbar { 6054visibility: hidden; 6055min-width: 250px; 6056text-align: center; 6057position: fixed; 6058z-index: 9999999; 6059bottom: 90px; 6060font-size: 15px; 6061 6062} 6063 6064.left_snackbar { 6065left: 30px; 6066} 6067 6068#snackbar .icon { 6069display: flex 6070} 6071 6072#snackbar.show { 6073visibility: visible; 6074-webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s; 6075animation: fadein 0.5s, fadeout 0.5s 2.5s; 6076} 6077 6078#snackbar .arrow_icon { 6079font-size: 25px; 6080} 6081 6082div.snackElement { 6083background-color: ${_ALConfig?.widget_setting?.notificationToastBackgroun
6083dColor || '#4EC33D'}; 6084color: ${_ALConfig?.widget_setting?.notificationToastTextColor || 'white'}; 6085border-radius: 16px; 6086width: 350px; 6087height: 94px; 6088position: relative; 6089overflow: hidden; 6090padding: 0; 6091margin-bottom: 10px; 6092text-align: left; 6093} 6094 6095svg.appstle-green-bubble { 6096position: absolute; 6097bottom: 0; 6098left: 0; 6099z-index: 0; 6100} 6101 6102svg.closeSnackBar { 6103position: absolute; 6104right: 16px; 6105top: 16px; 6106cursor: pointer; 6107} 6108 6109#snackbar .message { 6110padding-left: 74px; 6111font-size: 20px; 6112padding-top: 10px; 6113padding-right: 46px; 6114font-weight: bold; 6115} 6116 6117#snackbar .description { 6118width: 100%; 6119height: 100%; 6120display: flex; 6121justify-content: center; 6122align-items: center; 6123padding: 0 65px; 6124font-weight: 400; 6125line-height: 1; 6126font-size: 14px; 6127} 6128 6129@-webkit-keyframes fadein { 6130from { 6131bottom: 0; 6132opacity: 0; 6133} 6134to { 6135bottom: 30px; 6136opacity: 1; 6137} 6138} 6139 6140@keyframes fadein { 6141from { 6142bottom: 0; 6143opacity: 0; 6144} 6145to { 6146bottom: 30px; 6147opacity: 1; 6148} 6149} 6150 6151@-webkit-keyframes fadeout { 6152from { 6153bottom: 30px; 6154opacity: 1; 6155} 6156to { 6157bottom: 0; 6158opacity: 0; 6159} 6160} 6161 6162@keyframes fadeout { 6163from { 6164bottom: 30px; 6165opacity: 1; 6166} 6167to { 6168bottom: 0; 6169opacity: 0; 6170} 6171} 6172`; 6173 const snackBarStyle = document.createElement('style'); 6174 snackBarStyle.textContent = snackBarStyles; 6175 document.body.appendChild(snackBarStyle); 6176 const snackBarHtml = `<div id="snackbar"></div>`; 6177 document.querySelector('body').insertAdjacentHTML('beforeend', snackBarHtml); 6178 6179 window.addEventListener('message', toasterEventListener, false); 6180 6181 function toasterEventListener(event) { 6182 if (!isAppstleLoyaltyMessage(event)) return; 6183 if (typeof event.data === 'string' && event.data.startsWith('appstle_message_for_notification|')) { 6184 var message = event?.data?.split('|')[1]; 6185 showAppstleLoyaltyToaster(message); 6186 } 6187 } 6188 6189 let snackBarIndex = 0; 6190 async function showAppstleLoyaltyToaster(msg) { 6191 const purifier = await window.appstleLoyaltyLoadSanitizer(); 6192 var snackBar = document.getElementById('snackbar'); 6193 snackBar.classList.add('show'); 6194 snackBar.insertAdjacentHTML('beforeend', ` 6195 <div class="snackElement" id="elem${snackBarIndex}"> 6196 <div class="description"></div> 6197 <svg class="appstle-green-bubble" xmlns="http://www.w3.org/2000/svg" width="50" height="45" viewBox="0 0 84 75" fill="none"> 6198 <circle cx="20.6075" cy="9.29547" r="9.29547" fill="#2C7721"/> 6199 <circle cx="80.0986" cy="47.7167" r="3.71819" fill="#2C7721"/> 6200 <path d="M79.4438 11.0253C82.4971 18.5483 78.8737 27.1221 71.3507 30.1754C70.5208 30.5122 69.6781 30.7678 68.8315 30.9458C64.1204 31.9366 58.8591 33.2841 56.3382 37.3855C53.3951 42.1741 55.0036 48.3927 59.3496 51.9571C68.015 59.0642 75.0268 68.4315 79.3829 79.6187C92.9059 114.348 75.7149 153.464 40.9856 166.987C6.25636 180.51 -32.8599 163.319 -46.3829 128.59C-59.9059 93.8607 -42.7149 54.7445 -7.98562 41.2214C7.18342 35.3148 23.1894 35.2678 37.5341 39.9824C42.7299 41.69 48.6536 40.072 51.5174 35.4125L52.5823 33.68C54.694 30.2441 53.7172 25.8191 52.2006 22.0823C49.1473 14.5592 52.7707 5.98544 60.2937 2.93215C67.8167 -0.121136 76.3906 3.5023 79.4438 11.0253Z" fill="#2C7721"/> 6201 </svg> 6202 <svg class="closeSnackBar" onclick="closeSnackBar('elem${snackBarIndex}')" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none"> 6203 <path d="M2.93934 18.9393C2.35355 19.5251 2.35355 20.4749 2.93934 21.0607C3.52513 21.6464 4.47487 21.6464 5.06066 21.0607L12 14.1213L18.9393 21.0607C19.5251 21.6465 20.4749 21.6465 21.0607 21.0607C21.6464 20.4749 21.6464 19.5251 21.0607 18.9393L14.1213 12L21.0607 5.06066C21.6464 4.47487 21.6464 3.52513 21.0607 2.93934C20.4749 2.35355 19.5251 2.35355 18.9393 2.93934L12 9.87868L5.06066 2.93934C4.47487 2.35356 3.52513 2.35356 2.93934 2.93934C2.35355 3.52513 2.35355 4.47488 2.93934 5.06066L9.87868 12L2.93934 18.9393Z" fill="white"/> 6204 </svg> 6205 </div>`); 6206 const description = document.getElementById(`elem${snackBarIndex}`).querySelector('.description'); 6207 if (purifier) description.innerHTML = purifier.sanitize(String(msg), { 6208 ALLOWED_TAGS: ['a', 'b', 'br', 'em', 'i', 'span', 'strong'], 6209 ALLOWED_ATTR: ['href', 'title', 'class'], 6210 }); 6211 else description.textContent = String(msg); 6212 const el = snackBarIndex; 6213 setTimeout(function() { 6214 if (document.getElementById(`elem${el}`)) 6215 document.getElementById(`elem${el}`).remove(); 6216 }, 5000); 6217 snackBarIndex++; 6218 6219 } 6220 6221 const closeSnackBar = (el) => document.getElementById(el).remove(); 6222 6223 document.addEventListener('DOMContentLoaded', () => { 6224 6225 }); 6226 6227<!-- END app snippet --> 6228 6229 6230 const executeLoyaltyWidget = () => { 6231 <!-- BEGIN app snippet: loyalty-widget --> 6232 const parseHtmlStringContent = (content) => { 6233 if (typeof content !== 'string') return content; 6234 try { 6235 const htmlDecoded = content?.replace(/\\\//g, '/'); 6236 return JSON.parse(`"${htmlDecoded}"`); 6237 } catch (error) { 6238 console.error('Error parsing content:', error); 6239 return content; 6240 } 6241 }; 6242 6243 const formatNumberByPointRoundType = num => { 6244 if (typeof num !== 'number') return num; 6245 const roundType = _ALConfig?.pointRoundType || "NO_ROUND"; 6246 const rounded = roundType === 'ROUND_UP' ? Math.ceil(num) : roundType === 'ROUND_DOWN' ? Math.floor(num) : num; 6247 return (Number.isInteger(rounded) || rounded % 1 === 0) ? rounded.toFixed(0) : rounded.toFixed(2); 6248 }; 6249 6250 const formatStoreCreditAmount = value => { 6251 try { 6252 const num = Number(value); 6253 const safe = Number.isFinite(num) ? num : 0; 6254 const format = (_ALConfig?.shopMoneyFormat || '')?.replace(/</g, '<')?.replace(/>/g, '>')?.replace(/<[^>]*>/g, ''); 6255 const tokenMatch = String(format)?.match?.(/\{\{\s*(amount[a-z_]*)\s*\}\}/i); 6256 const token = (tokenMatch?.[1] || 'amount')?.toLowerCase?.() || 'amount'; 6257 const decimals = token?.includes?.('no_decimals') ? 0 : 2; 6258 let thousands = ',', decimal = '.'; 6259 if (token?.includes?.('comma_separator')) { thousands = '.'; decimal = ','; } 6260 else if (token?.includes?.('space_separator')) { thousands = ' '; } 6261 else if (token?.includes?.('apostrophe_separator')) { thousands = "'"; } 6262 const sign = safe < 0 ? '-' : ''; 6263 const parts = Math.abs(safe)?.toFixed?.(decimals)?.split?.('.') || []; 6264 const intPart = (parts?.[0] || '0')?.replace?.(/\B(?=(\d{3})+(?!\d))/g, thousands) || '0'; 6265 const amount = decimals === 0 ? sign + intPart : sign + intPart + decimal + (parts?.[1] || '00'); 6266 return tokenMatch ? format?.replace(/\{\{\s*amount[a-z_]*\s*\}\}/gi, amount)?.trim() : amount; 6267 } catch (e) { 6268 return String(value ?? '0'); 6269 } 6270 }; 6271 6272 6273 const loyaltyWidgetStyles = ` 6274.appstle-loyalty-widget-close-icon { 6275width: 28px; 6276height: 28px; 6277opacity: 0; 6278position: absolute; 6279top: 50%; 6280left: 50%; 6281transform: translate(-50%, -50%); 6282transition: opacity 0.2s; 6283} 6284 6285.appstle-loyalty-button { 6286bottom: 24px; 6287z-index: 999; 6288border-radius: 12px; 6289position: fixed; 6290border: none; 6291transition: max-width 1s; 6292padding: 0 19px; 6293overflow: hidden; 6294height: 56px; 6295transform-origin: left; 6296max-width: 300px;
6297background-color: ${_ALConfig?.widget_setting?.widgetBackgroundColor || 'rgb(29, 78, 216)'}; 6298color: ${_ALConfig?.widget_setting?.widgetTextColor || 'white'}; 6299} 6300 6301.appstle-loyalty-right { 6302right: 40px; 6303} 6304 6305.appstle-loyalty-left { 6306left: 40px; 6307} 6308 6309#appstle_loyalty_iframe { 6310width: 1px; 6311min-width: 400px; 6312border: none; 6313height: 516px; 6314position: fixed; 6315bottom: 100px; 6316z-index: 1234567; 6317box-shadow: 0 4px 6px -1px rgb(0 0 0 / 10%), 0 2px 4px -2px rgb(0 0 0 / 10%); 6318background-color: white; 6319border-radius: 12px; 6320max-height: calc(100vh - 120px); 6321transform: scale(0) !important; 6322transition: all 0.5s; 6323transform-origin: bottom left ; 6324max-width: 80vw; 6325} 6326 6327@media screen and (max-width: 800px) { 6328#appstle_loyalty_iframe { 6329left: 0; 6330height: 100vh; 6331top: 0; 6332min-width: 100%; 6333} 6334 6335#appstle_loyalty_iframe.open + .appstle-loyalty-button { 6336left: 50%; 6337transform: translateX(-50%); 6338} 6339 6340.appstle-loyalty-button { 6341transition: all 0.5s; 6342} 6343} 6344 6345#appstle_loyalty_iframe.open { 6346transform: scale(1) !important; 6347} 6348 6349#appstle_loyalty_iframe.open.show-close-icon + button .appstle-loyalty-widget-close-icon { 6350opacity: 1; 6351} 6352 6353#appstle_loyalty_iframe.open + button .appstle_loyalty_widget_button_wrapper { 6354color: transparent; 6355} 6356 6357.appstle_loyalty_widget_button_wrapper { 6358height: 100%; 6359width: 100%; 6360display: flex; 6361flex-wrap: nowrap; 6362align-items: center; 6363gap: 10px; 6364} 6365 6366.appstle-loyalty-widget-button-text { 6367flex-shrink: 0; 6368} 6369 6370.loyalty_widget_available_points { 6371display: none; 6372height: 100%; 6373width: auto; 6374flex-shrink: 0; 6375} 6376 6377.appstle_show_points .loyalty_widget_available_points { 6378display: flex; 6379align-items: center; 6380padding: 0 8px; 6381margin-right: -14px; 6382background-color: ${_ALConfig?.widget_setting?.widgetCounterBackgroundColor || 'rgba(29, 78, 216, 0.8)'}; 6383color: ${_ALConfig?.widget_setting?.widgetCounterTextColor || 'white'}; 6384} 6385 6386#appstle_loyalty_iframe.open.show-close-icon + button { 6387background-color: ${_ALConfig?.widget_setting?.widgetBackgroundColor || 'rgb(29, 78, 216)'}; 6388} 6389 6390#appstle_loyalty_iframe.open.show-close-icon + button .appstle-loyalty-widget-button-text-wrapper, 6391#appstle_loyalty_iframe.open.show-close-icon + button .loyalty_widget_available_points { 6392opacity: 0; 6393} 6394 6395#appstle_loyalty_iframe.open + button { 6396max-width: 56px; 6397} 6398 6399.loyalty-widget-buttonImage { 6400height: 24px; 6401width: 24px; 6402} 6403 6404.appstle-loyalty-widget-button-text-wrapper { 6405height: 100%; 6406display: flex; 6407gap: 4px; 6408align-items: center; 6409} 6410 6411.right_snackbar { 6412right: 30px; 6413} 6414 6415 6416`; 6417 const launcherStyles = document.createElement('style'); 6418 launcherStyles.id = 'appstle-loyalty-launcher-styles'; 6419 launcherStyles.textContent = loyaltyWidgetStyles; 6420 const customStyles = document.getElementById('appstle-loyalty-custom-styles'); 6421 if (customStyles) { 6422 customStyles.before(launcherStyles); 6423 } else { 6424 document.body.appendChild(launcherStyles); 6425 } 6426 const mainHTMLString = ` 6427<iframe id="appstle_loyalty_iframe" class="appslte-iframe" title="Appstle Loyalty Widget"></iframe> 6428<button id="appstle-loyalty-button" 6429 class="appstle-loyalty-button appstle-loyalty-hidden ${_ALConfig?.customerId ? `logged-in-customer-loyalty-button` : `logged-out-customer-loyalty-button`}" 6430 style="${_ALConfig.widget_setting.showWidget && _ALConfig.widget_setting.widgetType === 'LAUNCHER' ? `` : `display: none !important;`}"> 6431 <div class="appstle_loyalty_widget_button_wrapper"> 6432 <div class="appstle-loyalty-widget-button-text-wrapper"> 6433 6434 <span id="loyalty-widget-title" class="appstle-loyalty-widget-button-text"></span> 6435 </div> 6436 <div class="loyalty_widget_available_points"></div> 6437 </div> 6438 <svg class="appstle-loyalty-widget-close-icon" xmlns="http://www.w3.org/2000/svg" fill="none"
6439 viewBox="0 0 24 24" 6440 stroke-width="1.5" stroke="currentColor"> 6441 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 6442 </svg> 6443</button>`; 6444 document.querySelector('body').insertAdjacentHTML('beforeend', mainHTMLString); 6445 const launcherLogo = document.querySelector('.loyalty-widget-buttonImage'); 6446 if (launcherLogo) launcherLogo.src = parseHtmlStringContent(_ALConfig?.widget_setting?.widgetButtonLogoUrl); 6447 window.addEventListener('message', widgetEventListener, false); 6448 6449 function widgetEventListener(event) { 6450 if (event.origin !== window.location.origin || 6451 (event.source !== window && event.source !== document.getElementById('appstle_loyalty_iframe')?.contentWindow)) return; 6452 if (event.data === 'appstle_message_for_showWidget') { 6453 } else if (event.data === 'appstle_widget_showHide') { 6454 toggleWidget(); 6455 } else if (event.data === 'refresh_appstle_loyalty_widget' && _ALConfig?.widget_setting?.widgetType === 'LAUNCHER') { 6456 loadAppstleLoyaltyWidget(); 6457 console.log('REFRESH WIDGET'); 6458 } else if (event.data === 'show_appstle_loyalty_widget') { 6459 loadAppstleLoyaltyWidget(); 6460 enableWidget(); 6461 } 6462 } 6463 6464 function removeAppstleLoyaltyWidget() { 6465 document.querySelector('#appstle-loyalty-button')?.classList?.add('appstle-loyalty-hidden'); 6466 document.querySelector('#appstle_loyalty_iframe')?.classList?.add('appstle-loyalty-hidden'); 6467 } 6468 6469 (function checkForWidgetRestrictions() {
6470 let isShowWidget = true; 6471 6472 if (_ALConfig?.customerLoyalty?.customerStatus === 'EXCLUDED') { 6473 isShowWidget = false; 6474 } 6475 if (!_ALConfig?.customerId) { 6476 isShowWidget = !(_ALConfig?.widget_setting?.restrictedCustomersTag || _ALConfig?.widget_setting?.allowedCustomersTag); 6477 } 6478 if (_ALConfig?.widget_setting?.allowedCustomersTag?.length && isShowWidget) { 6479 let allowedTags = _ALConfig?.widget_setting?.allowedCustomersTag.split(','); 6480 if (allowedTags?.length > 0 && !_ALConfig?.customerTags?.some((tag) => allowedTags?.some((allowedTag) => allowedTag?.trim()?.toLowerCase() === tag?.trim()?.toLowerCase()))) { 6481 isShowWidget = false; 6482 } 6483 } 6484 if (_ALConfig?.widget_setting?.restrictedCustomersTag?.length && isShowWidget) { 6485 let restrictedTags = _ALConfig?.widget_setting?.restrictedCustomersTag?.split(','); 6486 if (restrictedTags?.length > 0 && _ALConfig?.customerTags?.some((tag) => restrictedTags?.some((restrictedTag) => restrictedTag?.trim()?.toLowerCase() === tag?.trim()?.toLowerCase()))) { 6487 isShowWidget = false; 6488 } 6489 } 6490 if (_ALConfig?.widget_setting?.blockWidgetOnPages?.length && isShowWidget) { 6491 let restrictedPages = _ALConfig?.widget_setting?.blockWidgetOnPages?.split(','); 6492 const currentPage = window?.location?.pathname; 6493 if (restrictedPages?.length > 0) { 6494 if (restrictedPages?.includes('/homepage') && currentPage === '/') { 6495 isShowWidget = false; 6496 } else if (restrictedPages?.some((page) => currentPage?.includes(page))) { 6497 isShowWidget = false; 6498 } 6499 } 6500 } 6501 if (_ALConfig?.widget_setting?.allowWidgetOnSpecificPages?.length && isShowWidget) { 6502 let allowedPages = _ALConfig?.widget_setting?.allowWidgetOnSpecificPages?.split(','); 6503 const currentPage = window?.location?.pathname; 6504 if (allowedPages?.length > 0) { 6505 if (allowedPages?.includes('/homepage') && currentPage === '/') { 6506 isShowWidget = true; 6507 } else if (allowedPages?.some((page) => currentPage?.includes(page))) { 6508 isShowWidget = true; 6509 } else { 6510 isShowWidget = false; 6511 } 6512 } 6513 } 6514 if (!_ALConfig?.customerId && _ALConfig?.widget_setting?.showToLoggedInCustomerOnly) { 6515 isShowWidget = false; 6516 } 6517 window.__APPSTLE_LOYALTY_LAUNCHER_ALLOWED = !!isShowWidget; 6518 if (isShowWidget) { 6519 showAppstleLoyaltyWidget(); 6520 } else { 6521 removeAppstleLoyaltyWidget(); 6522 } 6523 })(); 6524 6525 function enableWidget() { 6526 document.querySelector('#appstle_loyalty_iframe')?.classList?.add('open'); 6527 document.querySelector('#appstle_loyalty_iframe')?.classList?.remove('appstle-loyalty-hidden'); 6528 setTimeout(function() { 6529 document.querySelector('#appstle_loyalty_iframe')?.classList?.toggle('show-close-icon'); 6530 }, 900); 6531 } 6532 6533 function showAppstleLoyaltyWidget() { 6534 const launcherAllowed = window?.['__APPSTLE_LOYALTY_LAUNCHER_ALLOWED'] !== false; 6535 document.querySelector('#appstle_loyalty_iframe')?.classList?.remove('appstle-loyalty-hidden'); 6536 const btn = document.querySelector('#appstle-loyalty-button'); 6537 if (!btn) return; 6538 if (launcherAllowed) { 6539 btn.classList.remove('appstle-loyalty-hidden'); 6540 } else { 6541 btn.classList.add('appstle-loyalty-hidden'); 6542 } 6543 } 6544 6545 6546 document.querySelector('.appstle-loyalty-button').addEventListener('click', toggleWidget); 6547 6548 if (_ALConfig?.widget_setting?.widgetPosition === 'LEFT') { 6549 document.getElementById('appstle_loyalty_iframe')?.classList?.add('appstle-loyalty-left'); 6550 document.querySelector('.appstle-loyalty-button')?.classList?.add('appstle-loyalty-left'); 6551 document.getElementById('appstle_loyalty_iframe')?.classList?.add('appstle-loyalty-left'); 6552 document.getElementById('snackbar')?.classList?.add('left_snackbar'); 6553 6554 } else { 6555 document.getElementById('appstle_loyalty_iframe')?.classList?.add('appstle-loyalty-right'); 6556 document.querySelector('.appstle-loyalty-button')?.classList?.add('appstle-loyalty-right'); 6557 document.getElementById('snackbar')?.classList?.add('right_snackbar'); 6558 } 6559 6560 6561 const alIframeSrc = `\x3chtml> 6562\x3chead> 6563 \x3cscript> 6564 window["isAppstleLoyaltyCustomerPortal"] = true; 6565 \x3c/script> 6566 <link rel="stylesheet" href="${escapeLoyaltyAttribute(_ALConfig.widgetCssPath)}"> 6567 \x3cscript defer type="text/javascript" src="${escapeLoyaltyAttribute(_ALConfig.widgetJsPath)}">\x3c/script> 6568 <style> 6569 #loyalty_spinner_container { 6570 position: absolute; 6571 top: 0; 6572 right: 0; 6573 bottom: 0; 6574 left: 0; 6575 display: flex; 6576 justify-content: center; 6577 align-items: center; 6578 height: 100%; 6579 width: 100%; 6580 z-index: 9999999999999999999999999; 6581 } 6582 #loyalty_spinner { 6583 height: 32px; 6584 width: 32px; 6585 animation: spin 1s linear infinite; 6586 border-radius: 9999px; 6587 border-width: 1px; 6588 border-style: solid; 6589 border-color: rgb(107 114 128); 6590 border-top-color: transparent; 6591 } 6592 @keyframes spin { 6593 100% { 6594 transform: rotate(360deg); 6595 } 6596 } 6597 </style> 6598 \x3c/head> 6599 \x3cbody> 6600 <div style="overflow: auto;" id="appstleLoyaltyWidget"> 6601 <div id="loyalty_spinner_container"> 6602 <div id="loyalty_spinner"></div> 6603 </div> 6604 </div> 6605 \x3c/body> 6606 \x3c/html>`; 6607 6608 6609 function toggleWidget() { 6610 loadAppstleLoyaltyWidget(); 6611 if (_ALConfig?.widget_setting?.widgetType?.toUpperCase() === 'LAUNCHER' && _ALConfig?.widget_setting?.forceRedirectDedicatedPage === true) { 6612 window.open(`/${_ALConfig?.proxy_path_prefix}`); 6613 } else {
6614 const isWidgetOpen = document.querySelector('#appstle_loyalty_iframe')?.classList?.toggle('open'); 6615 if (isWidgetOpen === false) { 6616 clearLoyaltyDeepLinkHash(); 6617 } 6618 showAppstleLoyaltyWidget(); 6619 setTimeout(function() { 6620 document.querySelector('#appstle_loyalty_iframe')?.classList?.toggle('show-close-icon'); 6621 }, 900); 6622 } 6623 } 6624 6625 const loadAppstleLoyaltyWidget = () => { 6626 var iframe = document.querySelectorAll('#appstle_loyalty_iframe'); 6627 iframe.forEach(function(item) { 6628 item.contentWindow.document.open('text/html', 'replace'); 6629 item.contentWindow._ALConfig = _ALConfig; 6630 item.contentWindow.__st = window.__st; 6631 item.contentWindow.Shopify = { shop: location.host }; 6632 item.contentWindow.appstle_public_domain = location.host; 6633 item.contentWindow.document.write(alIframeSrc); 6634 item.contentWindow.document.close(); 6635 }); 6636 }; 6637 6638 const launcherDataType = _ALConfig?.widget_setting?.launcherDataType || 'POINTS'; 6639 6640 const loyaltyButtonTitle = document.getElementById('loyalty-widget-title'); 6641 if (_ALConfig?.shop_labels?.widgetTitle) { 6642 const title = parseHtmlStringContent(_ALConfig?.shop_labels?.widgetTitle); 6643 loyaltyButtonTitle.textContent = title; 6644 window.appstleLoyaltyLoadSanitizer().then(purifier => { 6645 if (purifier) loyaltyButtonTitle.innerHTML = sanitizeLoyaltyLabel(title, purifier, false); 6646 }); 6647 } 6648 6649 (function() { 6650 const { customerLoyalty, widget_setting } = _ALConfig || {}; 6651 if (!customerLoyalty && !(launcherDataType === 'STORE_CREDITS' && _ALConfig?.customerId)) return; 6652 6653 const showTier = widget_setting?.showTierName; 6654 const launcherButtonElement = document.querySelector('#appstle-loyalty-button'); 6655 const pointsEl = document.querySelector('.loyalty_widget_available_points'); 6656 if (!pointsEl) return; 6657 6658 const fmt = new Intl.NumberFormat(); 6659 const { storeCreditBalance = 0, availablePoints = 0, currentVipTier = '' } = customerLoyalty || {}; 6660 6661 let displayValue; 6662 if (launcherDataType === 'STORE_CREDITS') { 6663 displayValue = formatStoreCreditAmount(_ALConfig?.customerStoreCreditBalance || storeCreditBalance || 0); 6664 } else if ((launcherDataType === 'VIP_TIER') && currentVipTier) { 6665 displayValue = String(currentVipTier); 6666 } else { 6667 const n = Number(availablePoints) || 0; 6668 displayValue = fmt.format(formatNumberByPointRoundType(n)); 6669 } 6670 pointsEl.textContent = displayValue; 6671 launcherButtonElement?.classList.add('appstle_show_points'); 6672 })(); 6673 6674 6675 const loyaltyDeepLinks = [ 6676 '#appstle-loyalty', 6677 '#appstle-refer', 6678 '#appstle-loyalty-earn-rewards', 6679 '#appstle-loyalty-redeem-rewards', 6680 '#appstle-loyalty-referrals', 6681 '#appstle-loyalty-vip-program' 6682 ]; 6683 6684 let lastLoyaltyWidgetUrl = location.href; 6685 6686 function hasLoyaltyDeepLink() { 6687 return loyaltyDeepLinks.some(hash => location?.hash?.includes(hash)); 6688 } 6689 6690 function clearLoyaltyDeepLinkHash() { 6691 if (!hasLoyaltyDeepLink()) { 6692 return; 6693 } 6694 window.history.replaceState({}, document.title, window.location.pathname + window.location.search); 6695 lastLoyaltyWidgetUrl = location.href; 6696 } 6697 6698 function handleDeepLink() { 6699 if (!_ALConfig?.widget_setting?.showWidget || !hasLoyaltyDeepLink()) { 6700 return; 6701 } 6702 loadAppstleLoyaltyWidget(); 6703 enableWidget(); 6704 setTimeout(() => { 6705 document.querySelector('#appstle_loyalty_iframe')?.classList?.add('show-close-icon'); 6706 }, 900); 6707 } 6708 6709 handleDeepLink(); 6710 6711 const widgetReferralUrl = new URL(window.location.href); 6712 if (_ALConfig?.referralEnabled && widgetReferralUrl?.searchParams.get('appstle_referral') && _ALConfig?.widget_setting?.widgetType === 'LAUNCHER') { 6713 const referralUrlObj = loyaltyNavigationUrl(_ALConfig?.widget_setting?.referralRedirectUrl); 6714 if (referralUrlObj) { 6715 let referralPath = referralUrlObj.pathname.replace(/\/+$/, ''); 6716 let currentPath = window.location.pathname.replace(/\/+$/, ''); 6717 if (referralPath && (referralUrlObj.origin !== window.location.origin || currentPath !== referralPath)) {
6718 widgetReferralUrl.searchParams.forEach((value, key) => referralUrlObj.searchParams.set(key, value)); 6719 window.open(referralUrlObj.href, '_self'); 6720 } 6721 } 6722 setTimeout(() => { 6723 loadAppstleLoyaltyWidget(); 6724 enableWidget(); 6725 }, 200); 6726 } 6727 6728 6729 (function observeURLChanges() { 6730 const handleUrlChange = () => { 6731 if (location.href !== lastLoyaltyWidgetUrl) { 6732 lastLoyaltyWidgetUrl = location.href; 6733 handleDeepLink(); 6734 } 6735 }; 6736 new MutationObserver(handleUrlChange).observe(document.body, { subtree: true, childList: true }); 6737 window.addEventListener('popstate', handleUrlChange); 6738 window.addEventListener('hashchange', handleUrlChange); 6739 })(); 6740 6741 const alDOMObserver = new MutationObserver(function(mutations_list) { 6742 mutations_list.forEach(function(mutation) { 6743 mutation.addedNodes.forEach(function(added_node) { 6744 if (added_node.id === 'appstle_loyalty_iframe') { 6745 var iframe = document.querySelectorAll('#appstle_loyalty_iframe'); 6746 iframe.forEach(function(item) { 6747 item.contentWindow.document.open('text/html', 'replace'); 6748 item.contentWindow._ALConfig = _ALConfig; 6749 item.contentWindow.__st = window.__st; 6750 item.contentWindow.Shopify = { shop: location.host }; 6751 item.contentWindow.appstle_public_domain = location.host; 6752 item.contentWindow.document.write(alIframeSrc); 6753 item.contentWindow.document.close(); 6754 }); 6755 alDOMObserver.disconnect(); 6756 } 6757 }); 6758 }); 6759 }); 6760 alDOMObserver.observe(document.querySelector('body'), { subtree: true, childList: true }); 6761 6762 6763 6764 6765<!-- END app snippet --> 6766 } 6767 6768 6769 6770 const storeCreditMismatch = _ALConfig?.customerId && _ALConfig?.customerStoreCreditBalance >= 0 && _ALConfig?.customerLoyalty?.storeCreditBalance >= 0 && _ALConfig?.customerLoyalty?.storeCreditBalance !== _ALConfig?.customerStoreCreditBalance; 6771 if (storeCreditMismatch && _ALConfig.shop === 'olineloyalty27.myshopify.com') { 6772 const updateCustomerUrl = `/${_ALConfig?.proxy_path_prefix || 'apps/loyalty'}/cp/api/update-customer`; 6773 try { 6774 fetch(updateCustomerUrl, { method: 'POST', headers: { 'X-Requested-With': 'XMLHttpRequest' } }) 6775 .then((response) => { 6776 if(response.ok) {} 6777 }) 6778 .catch(() => {}); 6779 } catch (err) {} 6780 } 6781 6782 <!-- BEGIN app snippet: loyalty-dedicated-page --> 6783 const dedicatedPageURL = new URL(window.location.href); 6784 const decodeUrl = (content) => { 6785 if (typeof content !== 'string') return content; 6786 try { 6787 const htmlDecoded = content?.replace(/\\\//g, '/'); 6788 return JSON.parse(`"${htmlDecoded}"`); 6789 } catch (error) { 6790 console.error('Error parsing content:', error); 6791 return content; 6792 } 6793 }; 6794 6795 if (dedicatedPageURL?.searchParams?.get('appstle_referral') && _ALConfig?.widget_setting?.widgetType === 'DEDICATED_PAGE') { 6796 const customUrl = decodeUrl(_ALConfig?.widget_setting?.referralCustomRedirectUrl); 6797 if (customUrl) { 6798 const normalizedCustomPath = customUrl.startsWith('/') ? customUrl : `/${customUrl}`; 6799 if (window.location.pathname !== normalizedCustomPath) { 6800 const redirectUrl = new URL(window.location.href); 6801 redirectUrl.pathname = normalizedCustomPath; 6802 window.open(redirectUrl.toString(), '_self'); 6803 } 6804 } 6805 else if (dedicatedPageURL?.searchParams?.get('appstle_referral') && _ALConfig?.widget_setting?.widgetType === 'DEDICATED_PAGE' && !window.location.href.includes(_ALConfig?.proxy_path_prefix)) { 6806 window.open(`${window.location.origin}/${_ALConfig?.proxy_path_prefix}${window.location.search}`, '_self'); 6807 } 6808 } 6809 6810 6811 const dedicatedPageEventListener = (event) => { 6812 if (event.origin !== window.location.origin || event.source !== window) return; 6813 if (event.data === 'refresh_appstle_loyalty_page') { 6814 initiateAppstleLoyaltyPage(); 6815 console.log('REFRESH PAGE'); 6816 } 6817 }; 6818 window.addEventListener('message', dedicatedPageEventListener, false); 6819 6820 function initiateAppstleLoyaltyPage() {
6821 if (document.querySelector('#appstleLoyaltyPage')) { 6822 const appstleLoyaltyPageElement = document.getElementById('appstleLoyaltyPage'); 6823 while (appstleLoyaltyPageElement.firstChild) { 6824 appstleLoyaltyPageElement.firstChild.remove(); 6825 } 6826 6827 6828 const meta = document.createElement('meta'); 6829 meta.name = 'robots'; 6830 meta.content = 'noindex,nofollow,noarchive'; 6831 document.head.appendChild(meta); 6832 6833 6834 6835 6836 6837 6838 if (appstleLoyaltyPageElement) { 6839 6840 const loadDedicatedPageAsset = (createAsset, attempt, onSettle) => { 6841 const asset = createAsset(); 6842 let settled = false; 6843 const settle = () => { 6844 if (settled) return; 6845 settled = true; 6846 if (typeof onSettle === 'function') { 6847 onSettle(); 6848 } 6849 }; 6850 asset.onload = settle; 6851 asset.onerror = () => { 6852 asset.remove(); 6853 if (attempt < 4) { 6854 setTimeout(() => loadDedicatedPageAsset(createAsset, attempt + 1, onSettle), 1000 * Math.pow(2, attempt - 1)); 6855 } else { 6856 settle(); 6857 } 6858 }; 6859 } 6860 6861 const appendDedicatedPageWidgetScript = () => { 6862 loadDedicatedPageAsset(() => { 6863 const s = document.createElement('script'); 6864 s.setAttribute('src', _ALConfig?.widgetJsPath); 6865 s.async = false; 6866 document.body.appendChild(s); 6867 return s; 6868 }, 1); 6869 } 6870 6871 const executeDedicatedPageScript = () => { 6872 let widgetScriptAppended = false; 6873 const appendWidgetScriptOnce = () => { 6874 if (widgetScriptAppended) return; 6875 widgetScriptAppended = true; 6876 appendDedicatedPageWidgetScript(); 6877 }; 6878 try { 6879 const preload = document.createElement('link'); 6880 preload.rel = 'preload'; 6881 preload.as = 'script'; 6882 preload.href = _ALConfig?.widgetJsPath; 6883 document.head.appendChild(preload); 6884 } catch (e) {} 6885 loadDedicatedPageAsset(() => { 6886 const link = document.createElement('link'); 6887 link.type = 'text/css'; 6888 link.rel = 'stylesheet'; 6889 link.href = _ALConfig?.widgetCssPath; 6890 document.head.appendChild(link); 6891 return link; 6892 }, 1, appendWidgetScriptOnce); 6893 setTimeout(appendWidgetScriptOnce, 8000); 6894 } 6895 6896 try { 6897 const versionUrl = `${location.origin}/${_ALConfig?.proxy_path_prefix || 'apps/loyalty'}/app-loyalty-version`; 6898 fetch(versionUrl).then(res => res.json()).then(data => { 6899 if (data) { 6900 const widgetJsUrl = new URL(_ALConfig.widgetJsPath); 6901 const widgetCssUrl = new URL(_ALConfig.widgetCssPath); 6902 widgetJsUrl.searchParams.set('v', data); 6903 widgetCssUrl.searchParams.set('v', data); 6904 _ALConfig.widgetJsPath = widgetJsUrl.toString(); 6905 _ALConfig.widgetCssPath = widgetCssUrl.toString(); 6906 } 6907 }).catch(() => {}).finally(() => { 6908 executeDedicatedPageScript(); 6909 }); 6910 } catch (err) { 6911 executeDedicatedPageScript(); 6912 } 6913 6914 6915 } 6916 6917 } else { 6918 setTimeout(() => { 6919 initiateAppstleLoyaltyPage(); 6920 }, 2000); 6921 } 6922 } 6923 6924 const dedicatedPageReferralUrl = new URL(window.location.href)?.searchParams.get('appstle_referral'); 6925 6926 if (_ALConfig?.widget_setting?.showWidget === true) { 6927 initiateAppstleLoyaltyPage(); 6928 } 6929 6930 6931<!-- END app snippet --> 6932 6933 6934 <!-- BEGIN app snippet: loyalty-visit-shop --> 6935 (async function() { 6936 const isAvailableVisitShop = _ALConfig?.pointEarnRules?.length > 0 && _ALConfig?.pointEarnRules?.find((rule) => rule?.type === 'VISIT_SHOP' && rule?.status === 'ACTIVE'); 6937 if (_ALConfig?.customerId && isAvailableVisitShop) { 6938 if (!sessionStorage.getItem('syncVisitStore') && ((_ALConfig?.customerId && isAvailableVisitShop && isAvailableVisitShop?.id) || (_ALConfig?.referralEnabled && _ALConfig?.referralLoyalty?.referralType === 'VISIT_SHOP'))) { 6939 try { 6940 const response = await fetch(`/${_ALConfig?.proxy_path_prefix || 'apps/loyalty'}/cp/api/customer-visit-store`, { method: 'POST', headers: {'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest'}, }); 6941 if (response?.ok) { 6942 sessionStorage.setItem('syncVisitStore', 'true'); 6943 } 6944 } catch (error) { 6945 console.error('Error:', error); 6946 } 6947 } 6948 } 6949 })(); 6950 6951<!-- END app snippet --> 6952 <!-- BEGIN app snippet: loyalty-custom-styles --> 6953 const loyaltyCustomStyles = document.createElement('style'); 6954 loyaltyCustomStyles.id = 'appstle-loyalty-custom-styles'; 6955 loyaltyCustomStyles.textContent = _ALConfig?.widget_setting?.customCss || ''; 6956 document.body.appendChild(loyaltyCustomStyles); 6957 6958<!-- END app snippet --> 6959 6960</script>
6960 6961 6962 6963
6963<script src="https://cdn.shopify.com/extensions/01a1013f-f11e-7ab3-8e03-558ce2a98cb1/appstle-loyalty-1456/assets/appstle-loyalty.js" defer></script>
6963 6964 <style> 6965.acquire-points-badge { 6966display: flex; 6967flex-direction: column; 6968max-width: max-content; 6969font-size: 14px; 6970font-weight: 500; 6971letter-spacing: 0.05em; 6972border-radius: 3px; 6973padding: 10px; 6974} 6975.loyalty-acquire-points-badge sup { 6976font-size: 10px; 6977margin-left: 3px; 6978} 6979.loyalty-point-balance { 6980font-size: 16px; 6981font-weight: 500; 6982letter-spacing: 0.05em; 6983max-width: max-content; 6984} 6985.loyalty-current-vip-tier-badge { 6986font-size: 16px; 6987font-weight: 500; 6988letter-spacing: 0.05em; 6989max-width: max-content; 6990} 6991.loyalty-acquire-points-logged-out-label, 6992.loyalty-acquire-earn-points-label, 6993.loyalty-acquire-store-credit-label { 6994color: inherit; 6995background-color: inherit; 6996} 6997 6998 6999.appstle_loyalty_cart_widget_wrapper { 7000position: relative !important; 7001max-width: 400px !important; 7002margin-left: auto !important; 7003} 7004@media screen and (max-width: 749px) { 7005.appstle_loyalty_cart_widget_wrapper { 7006position: relative !important; 7007max-width: 100% !important; 7008} 7009} 7010#appstle_loyalty_cart_widget_iframe { 7011display: none !important; 7012} 7013#appstle_loyalty_cart_widget_iframe.open { 7014display: block !important; 7015position: fixed !important; 7016top: 0 !important; 7017left: 0 !important; 7018width: 100% !important; 7019height: 100% !important; 7020border: none !important; 7021z-index: 99999999999999999999 !important; 7022} 7023.appstle_loyalty_cart_widget_wrapper { 7024margin-bottom: 12px !important; 7025} 7026.loyalty-cart-widget-button { 7027display: flex !important; 7028align-items: center !important; 7029justify-content: space-between !important; 7030flex-wrap: nowrap !important; 7031background-color: white !important; 7032gap: 1rem !important; 7033border-radius: 8px !important; 7034padding: 10px !important; 7035width: 100% !important; 7036border: 1px solid #e5e7eb !important; 7037} 7038.loyalty-cart-widget-points-store-credits-info { 7039display: flex !important; 7040align-items: center !important; 7041gap: 12px !important; 7042} 7043.loyalty-cart-widget-icon { 7044display: flex !important; 7045align-items: center !important; 7046justify-content: center !important; 7047width: 32px !important; 7048height: 32px !important; 7049background-color: #10cfc9 !important; 7050border-radius: 6px !important; 7051} 7052.loyalty-cart-widget-icon-image { 7053width: 20px !important; 7054height: 20px !important; 7055} 7056.loyalty-cart-widget-icon-svg { 7057fill: white !important; 7058} 7059.loyalty-cart-widget-available-balance-label { 7060font-size: 16px !important; 7061font-weight: 500 !important; 7062color: #1f2937 !important; 7063} 7064.loyalty-cart-widget-rewards-btn { 7065background-color: #10cfc9 !important; 7066color: #000000 !important; 7067border: none !important; 7068min-width: 82px !important; 7069border-radius: 4px !important; 7070padding: 6px 12px !important; 7071font-size: 14px !important; 7072font-weight: 600 !important; 7073cursor: pointer !important; 7074transition: background-color 0.15s !important; 7075} 7076.loyalty-cart-widget-rewards-btn-disabled { 7077opacity: 0.5 !important; 7078pointer-events: none !important;
7079cursor: not-allowed !important; 7080} 7081</style> 7082 7083 7084 7085 7086</div><div id="shopify-block-AaFI1R0pkYmFqemtUS__2858414731233960599" class="shopify-block shopify-app-block">
7086<script translate="no"> 7087 if( typeof SmartifyAppDECO === 'undefined'){ 7088 var SmartifyAppDECO = SmartifyAppDECO || {}; 7089 } 7090 7091 if (typeof SmartifyAppDECO.products_has_gift === 'undefined') { 7092 SmartifyAppDECO.products_has_gift = {}; 7093 } 7094 7095 7096 SmartifyAppDECO.timeSleep = 1; 7097 7098 7099 7100 SmartifyAppDECO.searchDepthLimit = 7; 7101 7102 7103 7104 7105 SmartifyAppDECO.bannerClsReserve = false; 7106 7107 7108 SmartifyAppDECO.badges = []; 7109 7110 7111 7112 7113 7114 SmartifyAppDECO.badges = SmartifyAppDECO.badges.concat(JSON.parse("[{\"id\":15522,\"name\":\"Final Sale\",\"language\":[\"global\"],\"priority\":0,\"status\":true,\"image\":null,\"hide\":false,\"text\":\"FINAL SALE\",\"styles\":\"\",\"text_styles\":\"\",\"position\":\"below_price\",\"predefined_position\":\"left\",\"badge_width\":100,\"badge_height\":25,\"badge_width_mobile\":null,\"badge_height_mobile\":null,\"badge_width_product\":null,\"badge_height_product\":null,\"badge_width_product_mobile\":null,\"badge_height_product_mobile\":null,\"fixed_size\":true,\"page\":[\"product\"],\"device\":[\"desktop\",\"mobile\"],\"ignore_page\":null,\"badge_type\":1,\"margin\":{\"top\":0,\"bottom\":0,\"left\":0,\"right\":0},\"rotate\":0,\"opacity\":1,\"link\":null,\"alt\":null,\"animation\":\"none\",\"tooltip\":null,\"auto_responsive\":false,\"responsive_ratio\":0.7,\"ratio_size\":true,\"all_image\":false,\"conditions\":{\"id\":77643,\"badge_id\":15522,\"variant_apply\":\"matching_and_variants\",\"section\":[],\"include_sections\":\"\",\"ignore_sections\":\"\",\"exclude_variants\":[],\"include_variants\":[],\"exclude_products\":[],\"include_products\":[],\"is_new\":\"any\",\"is_on_sale\":\"yes\",\"collections\":[],\"exclude_collections\":[],\"tags\":[],\"tag_logic\":\"any\",\"exclude_tags\":[],\"exclude_tag_logic\":\"any\",\"stock_status\":\"any\",\"use_price\":false,\"from_price\":null,\"to_price\":null,\"use_weight\":false,\"from_weight\":null,\"to_weight\":null,\"use_time\":false,\"starts_at\":\"\",\"ends_at\":\"\",\"discount_from\":35,\"discount_to\":1000,\"discount_fixed\":35,\"discount_by\":\"percentage\",\"discount_type\":\"range\",\"stock_from\":0,\"stock_to\":10,\"new_date_from\":null,\"new_date_to\":null,\"new_days_threshold\":10,\"low_stock_threshold\":1,\"product_stock_computation\":\"per_variant\",\"product_discount_computation\":\"per_variant\",\"title\":null,\"title_type\":\"product\",\"title_operator\":\"equal\",\"include_pages\":null,\"review_app\":null,\"review_app_handle\":null,\"review_metafields\":null,\"review_option_selected\":\"star_rating\",\"review_condition\":\"greater_than\",\"review_star_rating\":4,\"review_num_review\":10,\"free_gift_app\":null,\"free_gift_app_handle\":null,\"free_gift_offers\":[],\"customer_tags\":[],\"customer_tag_status\":\"include\",\"customer_login\":\"logged\",\"customer_status\":\"all\",\"condition_logic\":\"all\",\"country_status\":\"include\",\"countries\":[\"all\"],\"discount_id\":null,\"discount_bxgy_apply\":[\"buy\"],\"deco_discount_id\":null},\"design\":{\"id\":62749,\"label_id\":null,\"border_radius\":12,\"border\":{\"style\":\"none\",\"size\":0,\"color\":\"#000000\"},\"shape_color\":\"#000000\",\"text_color\":\"#FFFFFF\",\"font_family\":\"Alata\",\"font_size\":14,\"font_size_mobile\":null,\"font_size_product\":12,\"font_size_product_mobile\":null,\"font_style\":{\"weight\":\"bold\",\"style\":\"normal\",\"decoration\":\"none\"},\"letter_spacing\":1,\"shape_class\":\"pl-text-rectangle\",\"shape_start_color\":\"#B9B9B9\",\"shape_ending_color\":\"#E5E5E5\",\"shape_gradient_direction\":90},\"discount\":[],\"deco_discount\":[],\"metafields\":[],\"group_ids\":[],\"updated_at\":\"2026-05-26T16:12:55.000000Z\",\"badge_text_type\":0,\"translation\":[]},{\"id\":15524,\"name\":\"No free ship\",\"language\":[\"global\"],\"priority\":0,\"status\":true,\"image\":null,\"hide\":false,\"text\":\"This item not eligible for free shipping\",\"styles\":\"\",\"text_styles\":\"\",\"position\":\"below_price\",\"predefined_position\":\"left\",\"badge_width\":150,\"badge_height\":40,\"badge_width_mobile\":null,\"badge_height_mobile\":null,\"badge_width_product\":150,\"badge_height_product\":null,\"badge_width_product_mobile\":null,\"badge_height_product_mobile\":null,\"fixed_size\":true,\"page\":[\"product\"],\"device\":[\"de
7114sktop\",\"mobile\"],\"ignore_page\":null,\"badge_type\":1,\"margin\":{\"top\":0,\"bottom\":\"10\",\"left\":0,\"right\":0},\"rotate\":0,\"opacity\":1,\"link\":null,\"alt\":null,\"animation\":\"none\",\"tooltip\":null,\"auto_responsive\":false,\"responsive_ratio\":0.9,\"ratio_size\":true,\"all_image\":false,\"conditions\":{\"id\":77645,\"badge_id\":15524,\"variant_apply\":\"matching_and_variants\",\"section\":[],\"include_sections\":\"\",\"ignore_sections\":\"\",\"exclude_variants\":[],\"include_variants\":[],\"exclude_products\":[],\"include_products\":[],\"is_new\":\"any\",\"is_on_sale\":\"any\",\"collections\":[\"515774578999\"],\"exclude_collections\":[],\"tags\":[],\"tag_logic\":\"any\",\"exclude_tags\":[],\"exclude_tag_logic\":\"any\",\"stock_status\":\"any\",\"use_price\":false,\"from_price\":null,\"to_price\":null,\"use_weight\":false,\"from_weight\":null,\"to_weight\":null,\"use_time\":false,\"starts_at\":\"\",\"ends_at\":\"\",\"discount_from\":0,\"discount_to\":10,\"discount_fixed\":0,\"discount_by\":\"percentage\",\"discount_type\":\"fixed\",\"stock_from\":0,\"stock_to\":10,\"new_date_from\":null,\"new_date_to\":null,\"new_days_threshold\":10,\"low_stock_threshold\":1,\"product_stock_computation\":\"per_variant\",\"product_discount_computation\":\"per_variant\",\"title\":null,\"title_type\":\"product\",\"title_operator\":\"equal\",\"include_pages\":null,\"review_app\":null,\"review_app_handle\":null,\"review_metafields\":null,\"review_option_selected\":\"star_rating\",\"review_condition\":\"greater_than\",\"review_star_rating\":4,\"review_num_review\":10,\"free_gift_app\":null,\"free_gift_app_handle\":null,\"free_gift_offers\":[],\"customer_tags\":[],\"customer_tag_status\":\"include\",\"customer_login\":\"logged\",\"customer_status\":\"all\",\"condition_logic\":\"all\",\"country_status\":\"include\",\"countries\":[\"all\"],\"discount_id\":null,\"discount_bxgy_apply\":[\"buy\"],\"deco_discount_id\":null},\"design\":{\"id\":62751,\"label_id\":null,\"border_radius\":0,\"border\":{\"style\":\"none\",\"size\":0,\"color\":\"#000000\"},\"shape_color\":\"#E9E9E9\",\"text_color\":\"#000000\",\"font_family\":\"Alata\",\"font_size\":12,\"font_size_mobile\":null,\"font_size_product\":12,\"font_size_product_mobile\":10,\"font_style\":{\"weight\":\"normal\",\"style\":\"normal\",\"decoration\":\"none\"},\"letter_spacing\":1,\"shape_class\":\"pl-text-rectangle\",\"shape_start_color\":\"#B9B9B9\",\"shape_ending_color\":\"#E5E5E5\",\"shape_gradient_direction\":90},\"discount\":[],\"deco_discount\":[],\"metafields\":[],\"group_ids\":[],\"updated_at\":\"2026-05-26T16:15:07.000000Z\",\"badge_text_type\":0,\"translation\":[]}]")); 7115 7116 7117 7118 7119 SmartifyAppDECO.labels = []; 7120 7121 7122 7123 7124 7125 SmartifyAppDECO.labels = SmartifyAppDECO.labels.concat(JSON.parse("[{\"id\":89056,\"name\":\"SALE BADGE NOT PRODUCT PAGE\",\"language\":[\"global\"],\"priority\":0,\"status\":true,\"image\":null,\"hide\":false,\"text\":\"SALE\",\"styles\":\"\",\"text_styles\":\"\",\"position\":\"top_left\",\"label_width\":40,\"label_height\":20,\"label_width_mobile\":null,\"label_height_mobile\":null,\"label_width_product\":null,\"label_height_product\":null,\"label_width_product_mobile\":null,\"label_height_product_mobile\":null,\"fixed_size\":true,\"page\":[\"collection\",\"home\",\"search\"],\"device\":[\"desktop\",\"mobile\"],\"ignore_page\":null,\"label_type\":1,\"top\":5,\"left\":5,\"customize_position\":true,\"margin\":{\"top\":0,\"bottom\":0,\"left\":0,\"right\":0},\"rotate\":0,\"opacity\":1,\"link\":null,\"alt\":null,\"animation\":\"none\",\"tooltip\":null,\"auto_responsive\":true,\"responsive_ratio\":0.6,\"ratio_size\":true,\"all_image\":false,\"conditions\":{\"id\":88995,\"label_id\":89056,\"variant_apply\":\"matching_and_variants\",\"section\":[],\"include_sections\":\"\",\"ignore_sections\":\"\",\"variants\":null,\"exclude_variants\":[],\"include_variants\":[],\"exclude_products\":[],\"include_products\":[],\"from_time\":null,\"to_time\":null,\"is_new\":\"any\",\"is_on_sale\":\"yes\",\"collections\":[\"440375345463\"],\"exclude_collections\":[],\"tags\":[],\"tag_logic\":\"any\",\"exclude_tags\":[],\"exclude_tag_logic\":\"any\",\"stock_status\":\"any\",\"use_price\":false,\"by_price\":\"base_price\",\"from_price\":null,\"to_price\":null,\"use_weight\":false,\"from_weight\":null,\"to_weight\":null,\"use_time\":false,\"starts_at\":\"\",\"ends_at\":\"\",\"discount_from\":0,\"discount_to\":1000,\"discount_fixed\":0,\"discount_by\":\"percentage\",\"discount_type\":\"range\",\"stock_from\":0,\"stock_to\":10,\"new_date_from\":null,\"new_date_to\":null,\"new_days_threshold\":10,\"low_stock_threshold\":1,\"product_stock_computation\":\"per_variant\",\"product_discount_computation\":\"per_product\",\"title\":null,\"title_type\":\"product\",\"title_operator\":\"equal\",\"include_pages\":null,\"review_app\":null,\"review_app_handle\":null,\"review_metafields\":null,\"review_option_selected\":\"star_rating\",\"review_condition\":\"greater_than\",\"review_star_rating\":4,\"review_num_review\":10,\"free_gift_app\":null,\"free_gift_app_handle\":null,\"free_gift_offers\":[],\"customer_tags\":[],\"customer_tag_status\":\"include\",\"customer_login\":\"logged\",\"customer_status\":\"all\",\"condition_logic\":\"all\",\"country_status\":\"include\",\"countries\":[\"all\"],\"discount_id\":null,\"discount_bxgy_apply\":[\"buy\"],\"deco_discount_id\":null},\"design\":{\"id\":74106,\"label_id\":89056,\"border_radius\":12,\"border\":{\"style\":\"none\",\"size\":0,\"color\":\"#000000\"},\"shape_color\":\"#ea6852\",\"text_color\":\"#000000\",\"font_family\":\"Alata\",\"font_size\":12,\"font_size_mobile\":null,\"font_size_product\":null,\"font_size_product_mobile\":null,\"font_style\":{\"weight\":\"normal\",\"style\":\"normal\",\"decoration\":\"none\"},\"letter_spacing\":1,\"shape_class\":\"pl-text-rectangle\",\"font_size_ratio\":0,\"shape_start_color\":\"#B9B9B9\",\"shape_ending_color\":\"#E5E5E5\",\"shape_gradient_direction\":90},\"discount\":[],\"deco_discount\":[],\"metafields\":[],\"group_ids\":[],\"updated_at\":\"2026-01-28T00:25:38.000000Z\",\"label_text_type\":0,\"translation\":[]},{\"id\":89057,\"name\":\"SALE BADGE PRODUCT PAGE\",\"language\":[\"global\"],\"priority\":0,\"status\":true,\"image\":null,\"hide\":false,\"text\":\"SALE\",\"styles\":\"\",\"text_styles\":\"\",\"position\":\"top_left\",\"label_width\":40,\"label_height\"
7125:20,\"label_width_mobile\":null,\"label_height_mobile\":null,\"label_width_product\":80,\"label_height_product\":40,\"label_width_product_mobile\":null,\"label_height_product_mobile\":null,\"fixed_size\":true,\"page\":[\"product\",\"cart\"],\"device\":[\"desktop\",\"mobile\"],\"ignore_page\":null,\"label_type\":1,\"top\":5,\"left\":5,\"customize_position\":true,\"margin\":{\"top\":0,\"bottom\":0,\"left\":0,\"right\":0},\"rotate\":0,\"opacity\":1,\"link\":null,\"alt\":null,\"animation\":\"none\",\"tooltip\":null,\"auto_responsive\":false,\"responsive_ratio\":0.6,\"ratio_size\":true,\"all_image\":false,\"conditions\":{\"id\":88996,\"label_id\":89057,\"variant_apply\":\"matching_and_variants\",\"section\":[],\"include_sections\":\"\",\"ignore_sections\":\"\",\"variants\":null,\"exclude_variants\":[],\"include_variants\":[],\"exclude_products\":[],\"include_products\":[],\"from_time\":null,\"to_time\":null,\"is_new\":\"any\",\"is_on_sale\":\"yes\",\"collections\":[],\"exclude_collections\":[],\"tags\":[],\"tag_logic\":\"any\",\"exclude_tags\":[],\"exclude_tag_logic\":\"any\",\"stock_status\":\"any\",\"use_price\":false,\"by_price\":\"base_price\",\"from_price\":null,\"to_price\":null,\"use_weight\":false,\"from_weight\":null,\"to_weight\":null,\"use_time\":false,\"starts_at\":\"\",\"ends_at\":\"\",\"discount_from\":0,\"discount_to\":1000,\"discount_fixed\":0,\"discount_by\":\"percentage\",\"discount_type\":\"range\",\"stock_from\":0,\"stock_to\":10,\"new_date_from\":null,\"new_date_to\":null,\"new_days_threshold\":10,\"low_stock_threshold\":1,\"product_stock_computation\":\"per_variant\",\"product_discount_computation\":\"per_variant\",\"title\":null,\"title_type\":\"product\",\"title_operator\":\"equal\",\"include_pages\":null,\"review_app\":null,\"review_app_handle\":null,\"review_metafields\":null,\"review_option_selected\":\"star_rating\",\"review_condition\":\"greater_than\",\"review_star_rating\":4,\"review_num_review\":10,\"free_gift_app\":null,\"free_gift_app_handle\":null,\"free_gift_offers\":[],\"customer_tags\":[],\"customer_tag_status\":\"include\",\"customer_login\":\"logged\",\"customer_status\":\"all\",\"condition_logic\":\"all\",\"country_status\":\"include\",\"countries\":[\"all\"],\"discount_id\":null,\"discount_bxgy_apply\":[\"buy\"],\"deco_discount_id\":null},\"design\":{\"id\":74107,\"label_id\":89057,\"border_radius\":12,\"border\":{\"style\":\"none\",\"size\":0,\"color\":\"#000000\"},\"shape_color\":\"#ea6852\",\"text_color\":\"#000000\",\"font_family\":\"Alata\",\"font_size\":12,\"font_size_mobile\":null,\"font_size_product\":16,\"font_size_product_mobile\":null,\"font_style\":{\"weight\":\"normal\",\"style\":\"normal\",\"decoration\":\"none\"},\"letter_spacing\":2,\"shape_class\":\"pl-text-rectangle\",\"font_size_ratio\":0,\"shape_start_color\":\"#B9B9B9\",\"shape_ending_color\":\"#E5E5E5\",\"shape_gradient_direction\":90},\"discount\":[],\"deco_discount\":[],\"metafields\":[],\"group_ids\":[],\"updated_at\":\"2026-01-30T03:26:49.000000Z\",\"label_text_type\":0,\"translation\":[]},{\"id\":89457,\"name\":\"Deco Badge\",\"language\":[\"global\"],\"priority\":0,\"status\":true,\"image\":null,\"hide\":false,\"text\":\"\\ud83c\\udde8\\ud83c\\udde6\",\"styles\":\"\",\"text_styles\":\"\",\"position\":\"bottom_left\",\"label_width\":20,\"label_height\":20,\"label_width_mobile\":20,\"label_height_mobile\":20,\"label_width_product\":20,\"label_height_product\":20,\"label_width_product_mobile\":20,\"label_height_product_mobile\":20,\"fixed_size\":false,\"page\":[\"product\",\"collection\",\"home\",\"search\"],\"device\":[\"desktop\",\"mobile\"],\"ignore_page\":null,\"label_type\":1,\"top\":0,\"left\":0,\"customize_position\":false,\"margin\":{\"top\":\"0\",\"bottom\":\"10\",\"left\":\"0\",\"right\":0},\"rotate\":0,\"opacity\":1,\"link\":null,\"alt\":null,\"animation\":\"none\",\"tooltip\":null,\"auto_responsive\":false,\"responsive_ratio\":0.6,\"ratio_size\":true,\"all_image\":false,\"conditions\":{\"id\":89396,\"label_id\":89457,\"variant_apply\":\"matching_and_variants\",\"section\":[],\"include_sections\":\"\",\"ignore_sections\":\"\",\"variants\":null,\"exclude_variants\":[],\"include_variants\":[],\"exclude_products\":[],\"include_products\":[],\"from_time\":null,\"to_time\":null,\"is_new\":\"any\",\"is_on_sale\":\"any\",\"collections\":[],\"exclude_collections\":[],\"tags\":[\"canada-based\"],\"tag_logic\":\"any\",\"exclude_tags\":[],\"exclude_tag_logic\":\"any\",\"stock_status\":\"any\",\"use_price\":false,\"by_price\":\"base_price\",\"from_price\":null,\"to_price\":null,\"use_weight\":false,\"from_weight\":null,\"to_weight\":null,\"use_time\":false,\"starts_at\":\"\",\"ends_at\":\"\",\"discount_from\":0,\"discount_to\":10,\"discount_fixed\":0,\"discount_by\":\"percentage\",\"discount_type\":\"fixed\",\"stock_from\":0,\"stock_to\":10,\"new_date_from\":null,\"new_date_to\":null,\"new_days_threshold\":10,\"low_stock_threshold\":1,\"product_stock_computation\":\"per_variant\",\"product_discount_computation\":\"per_variant\",\"title\":null,\"title_type\":\"product\",\"title_operator\":\"equal\",\"include_pages\":null,\"review_app\":null,\"review_app_handle\":null,\"review_metafields\":null,\"review_option_selected\":\"star_rating\",\"review_condition\":\"greater_than\",\"review_star_rating\":4,\"review_num_review\":10,\"free_gift_app\":null,\"free_gift_app_handle\":null,\"free_gift_offers\":[],\"customer_tags\":[],\"customer_tag_status\":\"include\",\"customer_login\":\"logged\",\"customer_status\":\"all\",\"condition_logic\":\"all\",\"country_status\":\"include\",\"countries\":[\"all\"],\"discount_id\":null,\"discount_bxgy_apply\":[\"buy\"],\"deco_discount_id\":null},\"design\":{\"id\":74507,\"label_id\":89457,\"border_radius\":0,\"border\":{\"style\":\"none\",\"size\":0,\"color\":\"#000000\"},\"shape_color\":\"#\",\"text_color\":\"#ffffff\",\"font_family\":\"Alata\",\"font_size\":30,\"font_size_mobile\":40,\"font_size_product\":50,\"font_size_product_mobile\":50,\"font_style\":{\"weight\":\"normal\",\"style\":\"normal\",\"decoration\":\"none\"},\"letter_spacing\":2,\"shape_class\":\"pl-text-rectangle\",\"font_size_ratio\":0,\"shape_start_color\":\"#B9B9B9\",\"shape_ending_color\":\"#E5E5E5\",\"shape_gradient_direction\":90},\"discount\":[],\"deco_discount\":[],\"metafields\":[],\"group_ids\":[],\"updated_at\":\"2026-01-30T03:36:24.000000Z\",\"label_text_type\":0,\"translation\":[]},{\"id\":89461,\"name\":\"NEW BADGE NOT PRODUCT PAGE\",\"language\":[\"global\"],\"priority\":0,\"status\":true,\"image\":null,\"hide\":false,\"text\":\"NEW\",\"styles\":\"\",\"text_styles\":\"\",\"position\":\"top_left\",\"label_width\":40,\"label_height\"
7125:20,\"label_width_mobile\":40,\"label_height_mobile\":20,\"label_width_product\":40,\"label_height_product\":20,\"label_width_product_mobile\":40,\"label_height_product_mobile\":20,\"fixed_size\":true,\"page\":[\"collection\",\"home\",\"search\"],\"device\":[\"desktop\",\"mobile\"],\"ignore_page\":null,\"label_type\":1,\"top\":5,\"left\":81,\"customize_position\":false,\"margin\":{\"top\":\"10\",\"bottom\":0,\"left\":\"10\",\"right\":\"10\"},\"rotate\":0,\"opacity\":1,\"link\":null,\"alt\":null,\"animation\":\"none\",\"tooltip\":null,\"auto_responsive\":true,\"responsive_ratio\":0.6,\"ratio_size\":true,\"all_image\":false,\"conditions\":{\"id\":89400,\"label_id\":89461,\"variant_apply\":\"matching_and_variants\",\"section\":[],\"include_sections\":\"\",\"ignore_sections\":\"\",\"variants\":null,\"exclude_variants\":[],\"include_variants\":[],\"exclude_products\":[],\"include_products\":[],\"from_time\":null,\"to_time\":null,\"is_new\":\"any\",\"is_on_sale\":\"any\",\"collections\":[],\"exclude_collections\":[],\"tags\":[\"new\"],\"tag_logic\":\"any\",\"exclude_tags\":[],\"exclude_tag_logic\":\"any\",\"stock_status\":\"any\",\"use_price\":false,\"by_price\":\"base_price\",\"from_price\":null,\"to_price\":null,\"use_weight\":false,\"from_weight\":null,\"to_weight\":null,\"use_time\":false,\"starts_at\":\"\",\"ends_at\":\"\",\"discount_from\":0,\"discount_to\":1000,\"discount_fixed\":0,\"discount_by\":\"percentage\",\"discount_type\":\"range\",\"stock_from\":0,\"stock_to\":10,\"new_date_from\":null,\"new_date_to\":null,\"new_days_threshold\":30,\"low_stock_threshold\":1,\"product_stock_computation\":\"per_variant\",\"product_discount_computation\":\"per_product\",\"title\":null,\"title_type\":\"product\",\"title_operator\":\"equal\",\"include_pages\":null,\"review_app\":null,\"review_app_handle\":null,\"review_metafields\":null,\"review_option_selected\":\"star_rating\",\"review_condition\":\"greater_than\",\"review_star_rating\":4,\"review_num_review\":10,\"free_gift_app\":null,\"free_gift_app_handle\":null,\"free_gift_offers\":[],\"customer_tags\":[],\"customer_tag_status\":\"include\",\"customer_login\":\"logged\",\"customer_status\":\"all\",\"condition_logic\":\"all\",\"country_status\":\"include\",\"countries\":[\"all\"],\"discount_id\":null,\"discount_bxgy_apply\":[\"buy\"],\"deco_discount_id\":null},\"design\":{\"id\":74511,\"label_id\":89461,\"border_radius\":12,\"border\":{\"style\":\"none\",\"size\":0,\"color\":\"#000000\"},\"shape_color\":\"#10cfc9\",\"text_color\":\"#000000\",\"font_family\":\"Alata\",\"font_size\":12,\"font_size_mobile\":12,\"font_size_product\":12,\"font_size_product_mobile\":12,\"font_style\":{\"weight\":\"normal\",\"style\":\"normal\",\"decoration\":\"none\"},\"letter_spacing\":1,\"shape_class\":\"pl-text-rectangle\",\"font_size_ratio\":0,\"shape_start_color\":\"#B9B9B9\",\"shape_ending_color\":\"#E5E5E5\",\"shape_gradient_direction\":90},\"discount\":[],\"deco_discount\":[],\"metafields\":[],\"group_ids\":[],\"updated_at\":\"2026-02-22T05:38:56.000000Z\",\"label_text_type\":0,\"translation\":[]},{\"id\":89462,\"name\":\"SALE BADGE PRODUCT PAGE\",\"language\":[\"global\"],\"priority\":0,\"status\":true,\"image\":null,\"hide\":false,\"text\":\"NEW\",\"styles\":\"\",\"text_styles\":\"\",\"position\":\"top_left\",\"label_width\":40,\"label_height\":20,\"label_width_mobile\":null,\"label_height_mobile\":null,\"label_width_product\":80,\"label_height_product\":40,\"label_width_product_mobile\":null,\"label_height_product_mobile\":null,\"fixed_size\":true,\"page\":[\"product\",\"cart\"],\"device\":[\"desktop\",\"mobile\"],\"ignore_page\":null,\"label_type\":1,\"top\":5,\"left\":5,\"customize_position\":false,\"margin\":{\"top\":\"10\",\"bottom\":0,\"left\":\"10\",\"right\":\"10\"},\"rotate\":0,\"opacity\":1,\"link\":null,\"alt\":null,\"animation\":\"none\",\"tooltip\":null,\"auto_responsive\":false,\"responsive_ratio\":0.6,\"ratio_size\":true,\"all_image\":false,\"conditions\":{\"id\":89401,\"label_id\":89462,\"variant_apply\":\"matching_and_variants\",\"section\":[],\"include_sections\":\"\",\"ignore_sections\":\"\",\"variants\":null,\"exclude_variants\":[],\"include_variants\":[],\"exclude_products\":[],\"include_products\":[],\"from_time\":null,\"to_time\":null,\"is_new\":\"any\",\"is_on_sale\":\"any\",\"collections\":[],\"exclude_collections\":[],\"tags\":[\"new\"],\"tag_logic\":\"any\",\"exclude_tags\":[],\"exclude_tag_logic\":\"any\",\"stock_status\":\"any\",\"use_price\":false,\"by_price\":\"base_price\",\"from_price\":null,\"to_price\":null,\"use_weight\":false,\"from_weight\":null,\"to_weight\":null,\"use_time\":false,\"starts_at\":\"\",\"ends_at\":\"\",\"discount_from\":0,\"discount_to\":1000,\"discount_fixed\":0,\"discount_by\":\"percentage\",\"discount_type\":\"range\",\"stock_from\":0,\"stock_to\":10,\"new_date_from\":null,\"new_date_to\":null,\"new_days_threshold\":30,\"low_stock_threshold\":1,\"product_stock_computation\":\"per_variant\",\"product_discount_computation\":\"per_variant\",\"title\":null,\"title_type\":\"product\",\"title_operator\":\"equal\",\"include_pages\":null,\"review_app\":null,\"review_app_handle\":null,\"review_metafields\":null,\"review_option_selected\":\"star_rating\",\"review_condition\":\"greater_than\",\"review_star_rating\":4,\"review_num_review\":10,\"free_gift_app\":null,\"free_gift_app_handle\":null,\"free_gift_offers\":[],\"customer_tags\":[],\"customer_tag_status\":\"include\",\"customer_login\":\"logged\",\"customer_status\":\"all\",\"condition_logic\":\"all\",\"country_status\":\"include\",\"countries\":[\"all\"],\"discount_id\":null,\"discount_bxgy_apply\":[\"buy\"],\"deco_discount_id\":null},\"design\":{\"id\":74512,\"label_id\":89462,\"border_radius\":12,\"border\":{\"style\":\"none\",\"size\":0,\"color\":\"#000000\"},\"shape_color\":\"#10cfc9\",\"text_color\":\"#000000\",\"font_family\":\"Alata\",\"font_size\":12,\"font_size_mobile\":null,\"font_size_product\":16,\"font_size_product_mobile\":null,\"font_style\":{\"weight\":\"normal\",\"style\":\"normal\",\"decoration\":\"none\"},\"letter_spacing\":2,\"shape_class\":\"pl-text-rectangle\",\"font_size_ratio\":0,\"shape_start_color\":\"#B9B9B9\",\"shape_ending_color\":\"#E5E5E5\",\"shape_gradient_direction\":90},\"discount\":[],\"deco_discount\":[],\"metafields\":[],\"group_ids\":[],\"updated_at\":\"2026-02-22T05:39:06.000000Z\",\"label_text_type\":0,\"translation\":[]}]")); 7126 7127 7128 7129 7130 SmartifyAppDECO.groups = []; 7131 7132 7133 7134 7135 7136 SmartifyAppDECO.groups = SmartifyAppDECO.groups.concat(JSON.parse("[]")); 7137 7138 7139 7140 7141 SmartifyAppDECO.banners = []; 7142 7143 SmartifyAppDECO.banners = JSON.parse("[]"); 7144 7145 7146 SmartifyAppDECO.trustBadges = []; 7147 7148 SmartifyAppDECO.trustBadges = JSON.parse("[]"); 7149 7150 7151 SmartifyAppDECO.discounts = []; 7152 7153 SmartifyAppDECO.discounts = JSON.parse("[]"); 7154 � 7155 SmartifyAppDECO.atc = JSON.parse("{}"); 7156 7157 7158 7159 7160 SmartifyAppDECO.badgeHorizontal = "0"; 7161 7162 7163 SmartifyAppDECO.linkTarget = "0"; 7164 7165 7166 SmartifyAppDECO.searchProxy = "0"; 7167 7168 7169 � 7170 SmartifyAppDECO.svgLabelBadge = false; 7171 7172 SmartifyAppDECO.remove_watermark = true; 7173 7174 7175 7176 7177 7178 SmartifyAppDECO.regex = JSON.parse("{\"pisRegex\":\".product-card .product-card__main a\",\"lpsPath\":\".product-card .product-card__main\",\"pistRegex\":\".product-card .product-card__title\",\"pispRegex\":\".product-card .product-card__price\",\"piRegex\":\".swiper-slide.product-media__slider-slide.swiper-slide-active img\",\"lpPath\":\".swiper-slide.product-media__slider-slide.swiper-slide-active\",\"pitRegex\":\"form .product-title-wrapper\",\"pipRegex\":\"form .h4.price\",\"pibRegex\":null,\"trustRegex\":\"form .product-add-to-cart\",\"style\":\".product-recommendations .pl-badge-image{display:none!important}\",\"script\":null,\"productDiscountRegex\":null,\"collectionDiscountRegex\":null}"); 7179 7180 7181 if (SmartifyAppDECO.regex) { 7182 const _r = SmartifyAppDECO.regex; 7183 if (_r.piRegex != null) SmartifyAppDECO.piRegex = _r.piRegex; 7184 if (_r.lpPath != null) SmartifyAppDECO.lpPath = _r.lpPath; 7185 if (_r.pisRegex != null) SmartifyAppDECO.pisRegex = _r.pisRegex; 7186 if (_r.lpsPath != null) SmartifyAppDECO.lpsPath = _r.lpsPath; 7187 if (_r.pistRegex != null) SmartifyAppDECO.pistRegex = _r.pistRegex; 7188 if (_r.pispRegex != null) SmartifyAppDECO.pispRegex = _r.pispRegex;
7189 if (_r.pipRegex != null) SmartifyAppDECO.pipRegex = _r.pipRegex; 7190 if (_r.pitRegex != null) SmartifyAppDECO.pitRegex = _r.pitRegex; 7191 if (_r.pibRegex != null) SmartifyAppDECO.pibRegex = _r.pibRegex; 7192 if (_r.trustRegex != null) SmartifyAppDECO.trustRegex = _r.trustRegex; 7193 if (_r.productDiscountRegex != null) SmartifyAppDECO.productDiscountRegex = _r.productDiscountRegex; 7194 if (_r.collectionDiscountRegex != null) SmartifyAppDECO.collectionDiscountRegex = _r.collectionDiscountRegex; 7195 } 7196 7197 7198 7199 7200 SmartifyAppDECO.page = 'search'; 7201 7202 7203 7204 if (SmartifyAppDECO.regex?.style) { 7205 let style = document.createElement('style'); 7206 style.innerText = SmartifyAppDECO.regex.style; 7207 document.body.append(style); 7208 } 7209 let decoCheckComplete = setInterval(function () { 7210 if (document.readyState == 'complete') { 7211 clearInterval(decoCheckComplete); 7212 if (typeof SmartifyAppDECO !== 'undefined' && SmartifyAppDECO.regex?.script) { 7213 let script = document.createElement('script'); 7214 script.innerText = SmartifyAppDECO.regex.script; 7215 document.body.append(script); 7216 } 7217 } 7218 }, 100); 7219 7220 7221 7222 SmartifyAppDECO.customer={} 7223 �SmartifyAppDECO.__configReady = true; 7224 try { 7225 document.dispatchEvent(new CustomEvent('deco:config-ready')); 7226 } catch (e) {} 7227 7228</script>
7228 7229 7230 7231 <!-- BEGIN app snippet: deco-search-product -->
7232<script type="application/json" id="deco-search-product" style="display: none;"> 7233 #bGV1IGxldSBoZSBoZSBoZQ== 7234 7235 7236 7237 7238{ 7239 7240} 7241 7242 7243 7244 #bGV1IGxldSBoZSBoZSBoZQ== 7245</script>
7245 7246<!-- END app snippet --> 7247 7248 7249<div id="deco-main-label"> 7250</div> 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 <!-- BEGIN app snippet: deco-chunk-tag --> 7273 7274 7275 <link rel="modulepreload" href="https://cdn.shopify.com/extensions/01a0f554-5044-71cd-be85-8b7ed0bb4ebe/deco-labels-badges-634/assets/label-CPfrufQQ.js" crossorigin="anonymous"> 7276 <link rel="modulepreload" href="https://cdn.shopify.com/extensions/01a0f554-5044-71cd-be85-8b7ed0bb4ebe/deco-labels-badges-634/assets/coreApi-B-CuTw2b.js" crossorigin="anonymous"> 7277 7278<!-- END app snippet --> 7279 7280 <!-- BEGIN app snippet: deco-chunk-tag --> 7281 7282 7283 <link rel="modulepreload" href="https://cdn.shopify.com/extensions/01a0f554-5044-71cd-be85-8b7ed0bb4ebe/deco-labels-badges-634/assets/badge-DP812GR3.js" crossorigin="anonymous"> 7284 <link rel="modulepreload" href="https://cdn.shopify.com/extensions/01a0f554-5044-71cd-be85-8b7ed0bb4ebe/deco-labels-badges-634/assets/coreApi-B-CuTw2b.js" crossorigin="anonymous"> 7285 7286<!-- END app snippet --> 7287 7288 <!-- BEGIN app snippet: vite-tag --> 7289 7290 7291
7291<script src="https://cdn.shopify.com/extensions/01a0f554-5044-71cd-be85-8b7ed0bb4ebe/deco-labels-badges-634/assets/theme-CDkKpyRK.js" type="module" crossorigin="anonymous"></script>
7291 7292 7293<!-- END app snippet --> 7294 7295 <!-- BEGIN app snippet: vite-tag --> 7296 7297 7298 <link href="//cdn.shopify.com/extensions/01a0f554-5044-71cd-be85-8b7ed0bb4ebe/deco-labels-badges-634/assets/banner-k3JszawN.css" rel="stylesheet" type="text/css" media="all" /> 7299 7300<!-- END app snippet --> 7301 7302 <!-- BEGIN app snippet: vite-tag --> 7303 7304 7305 <link href="//cdn.shopify.com/extensions/01a0f554-5044-71cd-be85-8b7ed0bb4ebe/deco-labels-badges-634/assets/label-badge-DQ3WDNKN.css" rel="stylesheet" type="text/css" media="all" /> 7306 7307<!-- END app snippet --> 7308 7309 <!-- BEGIN app snippet: vite-tag --> 7310 7311 7312 <link href="//cdn.shopify.com/extensions/01a0f554-5044-71cd-be85-8b7ed0bb4ebe/deco-labels-badges-634/assets/trust-badge-BO30rkyO.css" rel="stylesheet" type="text/css" media="all" /> 7313 7314<!-- END app snippet --> 7315 7316 <!-- BEGIN app snippet: vite-tag --> 7317 7318 7319 <link href="//cdn.shopify.com/extensions/01a0f554-5044-71cd-be85-8b7ed0bb4ebe/deco-labels-badges-634/assets/countdown-BJods4g9.css" rel="stylesheet" type="text/css" media="all" /> 7320 7321<!-- END app snippet --> 7322 7323 7324 7325 7326 7327 7328 7329</div><div id="shopify-block-AaUY3TDlOK3J2UVAyQ__4015264832934714879" class="shopify-block shopify-app-block"><!-- BEGIN app snippet: ecomsend-app -->
7329<script type="text/javascript"> 7330 //SendWILL APPS COMMON JS CODE 7331 window.EcomSendApps = window.EcomSendApps || {} 7332 7333 window.EcomSendApps.design_mode = false 7334 7335 7336 window.EcomSendApps.common = window.EcomSendApps.common || {} 7337 window.EcomSendApps.common.shop = { 7338 permanent_domain: 'foveorun.myshopify.com', 7339 currency: "CAD", 7340 money_format: "${{amount}}", 7341 id: 69969084727, 7342 } 7343 7344 7345 7346 window.EcomSendApps.common.customer = { 7347 id: null, 7348 tags: null, 7349 email: null, 7350 accepts_marketing: null, 7351 first_name: null, 7352 } 7353 7354 7355 7356 window.EcomSendApps.common.template = 'search' 7357</script>
7357 7358<!-- END app snippet --> 7359
7360<script> 7361 window.EcomSendApps = window.EcomSendApps || {} 7362 /** @description shared localStorage key used by web-pixel sandbox to read storefront GDPR mode */ 7363 const ECOMSEND_GDPR_ENABLED_STORAGE_KEY = "ECOMSEND:GDPR_ENABLED" 7364 /** @description storefront main bundle asset url */ 7365 const ECOMSEND_MAIN_SCRIPT_URL = 'https://cdn.shopify.com/extensions/01a0f197-ce1f-7a19-8adb-6b78fec4702f/ecomsend-209/assets/ecomsend.js' 7366 /** @description storefront style asset url */ 7367 const ECOMSEND_MAIN_STYLE_URL = 'https://cdn.shopify.com/extensions/01a0f197-ce1f-7a19-8adb-6b78fec4702f/ecomsend-209/assets/style.css' 7368 /** @description storefront wasm asset url for runtime signature module */ 7369 const ECOMSEND_WASM_ASSET_URL = 'https://cdn.shopify.com/extensions/01a0f197-ce1f-7a19-8adb-6b78fec4702f/ecomsend-209/assets/client_safe.wasm' 7370 /** @description fallback delay when requestIdleCallback is unavailable */ 7371 const ECOMSEND_IDLE_TIMEOUT_MS = 800 7372 /** @description user interaction events used to trigger lazy init earlier */ 7373 const ECOMSEND_INTERACTION_EVENTS = ["pointerdown", "keydown", "touchstart"] 7374 /** @description global flag key for emergency immediate loading */ 7375 const ECOMSEND_FORCE_IMMEDIATE_FLAG = window.EcomSendApps?.forceImmediateLoad === true 7376 /** @description default GDPR mode comes from block setting and can be overridden on window.EcomSendApps.GDPR */ 7377 const ECOMSEND_DEFAULT_GDPR_FLAG = false 7378 /** @description default CWTracks mode comes from block setting and can be overridden on window.EcomSendApps.CWTracksEnabled */ 7379 const ECOMSEND_DEFAULT_CWTRACKS_ENABLED = false 7380 7381 /** @description normalize merchant-provided GDPR switch into a strict boolean value */ 7382 function normalizeEcomsendBooleanFlag(rawValue) { 7383 if (typeof rawValue === "boolean") { 7384 return rawValue 7385 } 7386 if (typeof rawValue === "number") { 7387 return rawValue === 1 7388 } 7389 if (typeof rawValue === "string") { 7390 const normalizedValue = rawValue.trim().toLowerCase() 7391 return normalizedValue === "true" || normalizedValue === "1" || normalizedValue === "yes" 7392 } 7393 return false 7394 } 7395 7396 /** @description lock runtime switch value on EcomSendApps to reduce accidental console overwrite. */ 7397 function lockEcomsendReadonlyFlag(flagName, flagValue) { 7398 try { 7399 Object.defineProperty(window.EcomSendApps, flagName, { 7400 value: flagValue, 7401 writable: false, 7402 configurable: false, 7403 enumerable: true, 7404 }) 7405 return 7406 } catch (error) {} 7407 window.EcomSendApps[flagName] = flagValue 7408 } 7409 7410 /** @description resolve storefront GDPR mode from merchant theme override */ 7411 function resolveEcomsendGdprMode() { 7412 if (typeof window.EcomSendApps.GDPR === "undefined") { 7413 window.EcomSendApps.GDPR = ECOMSEND_DEFAULT_GDPR_FLAG 7414 } 7415 const gdprEnabled = normalizeEcomsendBooleanFlag(window.EcomSendApps.GDPR) 7416 window.EcomSendApps.GDPR = gdprEnabled 7417 return gdprEnabled 7418 } 7419 7420 /** @description resolve storefront CWTracks mode from merchant theme block setting and runtime override */ 7421 function resolveEcomsendCwTracksMode() { 7422 if (typeof window.EcomSendApps.CWTracksEnabled === "undefined") { 7423 window.EcomSendApps.CWTracksEnabled = ECOMSEND_DEFAULT_CWTRACKS_ENABLED 7424 } 7425 const cwTracksEnabled = normalizeEcomsendBooleanFlag(window.EcomSendApps.CWTracksEnabled) 7426 window.EcomSendApps.CWTracksEnabled = cwTracksEnabled 7427 return cwTracksEnabled 7428 } 7429 7430 /** @description persist storefront GDPR mode so web-pixel sandbox can consume the same switch */ 7431 function syncEcomsendGdprModeToStorage(gdprEnabled) { 7432 if (!window.localStorage) { 7433 return 7434 } 7435 if (gdprEnabled) { 7436 window.localStorage.setItem(ECOMSEND_GDPR_ENABLED_STORAGE_KEY, "true") 7437 return 7438 } 7439 window.localStorage.removeItem(ECOMSEND_GDPR_ENABLED_STORAGE_KEY) 7440 } 7441 7442 /** @description enable GDPR gating only when merchant explicitly turns on storefront GDPR mode */ 7443 const ECOMSEND_GDPR_ENABLED = resolveEcomsendGdprMode() 7444 /** @description enable CWTracks callback/event emit only when merchant turns on CWTracks mode. */ 7445 const ECOMSEND_CWTRACKS_ENABLED = resolveEcomsendCwTracksMode() 7446 lockEcomsendReadonlyFlag("GDPR", ECOMSEND_GDPR_ENABLED) 7447 lockEcomsendReadonlyFlag("CWTracksEnabled", ECOMSEND_CWTRACKS_ENABLED) 7448 7449 try { 7450 syncEcomsendGdprModeToStorage(ECOMSEND_GDPR_ENABLED) 7451 } catch (error) {} 7452 7453 /** @description create main stylesheet node for storefront runtime */ 7454 function createEcomSendMainStyleEle() { 7455 const ecomsendMainStyleEle = document.createElement("link") 7456 ecomsendMainStyleEle.rel = "stylesheet" 7457 ecomsendMainStyleEle.href = ECOMSEND_MAIN_STYLE_URL 7458 ecomsendMainStyleEle.dataset.ecomsendTag = "main-style" 7459 return ecomsendMainStyleEle 7460 } 7461 7462 /** @description append runtime stylesheet exactly once */ 7463 function ensureEcomSendMainStyleLoaded() { 7464 if (document.querySelector('link[data-ecomsend-tag="main-style"]')) { 7465 return 7466 } 7467 const ecomsendMainStyleEle = createEcomSendMainStyleEle() 7468 document.head.appendChild(ecomsendMainStyleEle) 7469 } 7470 7471 /** @description remove interaction listeners after first lazy-init trigger */ 7472 function clearInteractionListeners() {
7473 ECOMSEND_INTERACTION_EVENTS.forEach((eventName) => { 7474 window.removeEventListener(eventName, scheduleMainBundleLoad) 7475 }) 7476 } 7477 7478 /** @description run low-priority task via idle callback with timeout fallback */ 7479 function scheduleLowPriorityTask(taskRunner, timeoutMs) { 7480 if (window.requestIdleCallback) { 7481 window.requestIdleCallback(() => { 7482 taskRunner() 7483 }, { timeout: timeoutMs }) 7484 return 7485 } 7486 window.setTimeout(() => { 7487 taskRunner() 7488 }, timeoutMs) 7489 } 7490 7491 /** @description load main storefront bundle once and keep rollback override */ 7492 function loadEcomsendMainBundle() { 7493 if (window.__ecomsendMainBundleLoaded) { 7494 return 7495 } 7496 window.__ecomsendMainBundleLoaded = true 7497 clearInteractionListeners() 7498 /** @description ensure storefront runtime css is loaded together with main bundle */ 7499 ensureEcomSendMainStyleLoaded() 7500 const ecomsendMainScriptEle = document.createElement("script") 7501 ecomsendMainScriptEle.src = ECOMSEND_MAIN_SCRIPT_URL 7502 ecomsendMainScriptEle.async = true 7503 ecomsendMainScriptEle.dataset.ecomsendTag = "main-script" 7504 document.body.appendChild(ecomsendMainScriptEle) 7505 } 7506 7507 /** @description schedule heavy bundle with idle-first strategy to reduce main-thread contention */ 7508 function scheduleMainBundleLoad() { 7509 if (window.__ecomsendMainBundleLoadScheduled) { 7510 return 7511 } 7512 /** @description dedupe idle scheduling from DOMContentLoaded and first interactions */ 7513 window.__ecomsendMainBundleLoadScheduled = true 7514 if (ECOMSEND_FORCE_IMMEDIATE_FLAG) { 7515 loadEcomsendMainBundle() 7516 return 7517 } 7518 scheduleLowPriorityTask(loadEcomsendMainBundle, ECOMSEND_IDLE_TIMEOUT_MS) 7519 } 7520 7521 /** @description cache marketing params for pixel/report flows before heavy bundle starts */ 7522 function cacheMarketingParams() { 7523 const urlParams = new URLSearchParams(window.location.search) 7524 const marketingId = urlParams.get("ec_marketing_id") 7525 const ecEmailId = urlParams.get("ec_email_id") 7526 const ecMarketingSign = urlParams.get("ec_marketing_sign") 7527 7528 if (marketingId && window.localStorage) { 7529 window.localStorage.setItem("ec_marketing_id", marketingId) 7530 } 7531 if (ecEmailId && window.localStorage) { 7532 window.localStorage.setItem("ec_email_id", ecEmailId) 7533 } 7534 if (ecMarketingSign && window.localStorage) { 7535 window.localStorage.setItem("ec_marketing_sign", ecMarketingSign) 7536 } 7537 } 7538 7539 /** @description check whether marketing storage is allowed under Shopify customer privacy state */ 7540 function isMarketingStorageAllowedByCustomerPrivacy() { 7541 const customerPrivacy = window?.Shopify?.customerPrivacy 7542 if (!customerPrivacy) { 7543 return false 7544 } 7545 const marketingAllowed = typeof customerPrivacy.marketingAllowed === "function" && customerPrivacy.marketingAllowed() 7546 if (marketingAllowed) { 7547 return true 7548 } 7549 if (typeof customerPrivacy.currentVisitorConsent === "function") { 7550 const consent = customerPrivacy.currentVisitorConsent() 7551 return consent?.marketing === "yes" 7552 } 7553 return false 7554 } 7555 7556 /** @description check whether analytics storage is allowed under Shopify customer privacy state */ 7557 function isAnalyticsStorageAllowedByCustomerPrivacy() { 7558 const customerPrivacy = window?.Shopify?.customerPrivacy 7559 if (!customerPrivacy) { 7560 return false 7561 } 7562 const analyticsAllowed = typeof customerPrivacy.analyticsProcessingAllowed === "function" && customerPrivacy.analyticsProcessingAllowed() 7563 if (analyticsAllowed) { 7564 return true 7565 } 7566 if (typeof customerPrivacy.currentVisitorConsent === "function") { 7567 const consent = customerPrivacy.currentVisitorConsent() 7568 return consent?.analytics === "yes" 7569 } 7570 return false 7571 } 7572 7573 /** @description execute marketing param caching with GDPR guard: functional off when GDPR disabled */ 7574 function cacheMarketingParamsWithGdprGuard() { 7575 if (!ECOMSEND_GDPR_ENABLED) { 7576 cacheMarketingParams() 7577 return 7578 } 7579 if (isMarketingStorageAllowedByCustomerPrivacy()) { 7580 cacheMarketingParams() 7581 } 7582 } 7583 7584 /** @description cache shop id used by pixel report branches */ 7585 function cacheShopIdForPixel() { 7586 if (!window.EcomSendApps?.common?.shop?.id || !window.localStorage) { 7587 return 7588 } 7589 window.localStorage.setItem("ECOMSEND:ES_SHOP_ID", window.EcomSendApps.common.shop.id) 7590 } 7591 7592 /** 7593 * Flow client config (e.g. browserStaySeconds) is fetched by the main ecomsend.js bundle: 7594 * bootstrapFlowClientConfig â POST /api/automation/v2/clientFlowConfig (API Sign) 7595 * â localStorage ECOMSEND:FLOW_CLIENT_CONFIG.byEventId â read by web-pixel. 7596 * Keep new C-end Flow config on this path; do not scatter fetches in liquid. 7597 */ 7598 7599 /** @description execute shop id caching with GDPR guard and shared consent policy */ 7600 function cacheShopIdWithGdprGuard() { 7601 if (!ECOMSEND_GDPR_ENABLED) { 7602 cacheShopIdForPixel() 7603 return 7604 } 7605 if (isAnalyticsStorageAllowedByCustomerPrivacy()) { 7606 cacheShopIdForPixel() 7607 } 7608 } 7609 7610 /** @description load Shopify consent-tracking API before GDPR-gated cache writes */ 7611 function withCustomerPrivacyApiReady(onReady) { 7612 if (!ECOMSEND_GDPR_ENABLED) { 7613 onReady() 7614 return 7615 } 7616 if (window?.Shopify?.customerPrivacy) { 7617 onReady() 7618 return 7619 } 7620 if (typeof window?.Shopify?.loadFeatures !== "function") { 7621 return 7622 } 7623 window.Shopify.loadFeatures( 7624 [{ name: "consent-tracking-api", version: "0.1" }], 7625 (error) => { 7626 if (error) { 7627 return 7628 } 7629 onReady() 7630 } 7631 ) 7632 } 7633 7634 try { 7635 withCustomerPrivacyApiReady(() => { 7636 cacheMarketingParamsWithGdprGuard() 7637 cacheShopIdWithGdprGuard() 7638 }) 7639 if (ECOMSEND_GDPR_ENABLED) { 7640 document.addEventListener("visitorConsentCollected", () => { 7641 cacheMarketingParamsWithGdprGuard() 7642 cacheShopIdWithGdprGuard() 7643 }) 7644 } 7645 } catch (e) {} 7646 7647 /** @description inject wasm asset url into shared namespace before main bundle executes */ 7648 window.EcomSendApps.wasmURL = ECOMSEND_WASM_ASSET_URL 7649
7650 ECOMSEND_INTERACTION_EVENTS.forEach((eventName) => { 7651 window.addEventListener(eventName, scheduleMainBundleLoad, { once: true, passive: true }) 7652 }) 7653 7654 if (document.readyState === "loading") { 7655 document.addEventListener("DOMContentLoaded", scheduleMainBundleLoad, { once: true }) 7656 } else { 7657 scheduleMainBundleLoad() 7658 } 7659</script>
7659 7660 7661<style id="ecomsend-custom-style"></style> 7662
7663<script>window.shopLocale = 'en'</script>
7663 7664
7665<script> 7666 /** @description timeout used for deferred discount request scheduling */ 7667 const ECOMSEND_DISCOUNT_IDLE_TIMEOUT_MS = 1500 7668 7669 /** @description apply discount code from url query only when parameter exists */ 7670 function applyWillDiscountCode() { 7671 const urlParams = new URLSearchParams(window.location.search) 7672 const willDiscountCode = urlParams.get("willDiscountCode") 7673 if (!willDiscountCode || /[\u0000-\u001F\u007F]/.test(willDiscountCode)) { 7674 return 7675 } 7676 fetch("/cart/update.js", { 7677 method: "POST", 7678 headers: { 7679 "Content-Type": "application/json", 7680 }, 7681 body: JSON.stringify({ 7682 discount: willDiscountCode, 7683 }), 7684 }) 7685 } 7686 7687 try { 7688 if (!window.__ecomsendDeferredTasksScheduled) { 7689 /** @description global guard to avoid duplicate deferred task scheduling */ 7690 window.__ecomsendDeferredTasksScheduled = true 7691 if (window.requestIdleCallback) { 7692 window.requestIdleCallback(() => { 7693 applyWillDiscountCode() 7694 }, { timeout: ECOMSEND_DISCOUNT_IDLE_TIMEOUT_MS }) 7695 } else { 7696 window.setTimeout(() => { 7697 applyWillDiscountCode() 7698 }, ECOMSEND_DISCOUNT_IDLE_TIMEOUT_MS) 7699 } 7700 } 7701 } catch (error) {} 7702</script>
7702 7703 7704 7705 7706</div>
7706<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
7706 7707</body> 7708</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.