1<!doctype html> 2<html class="no-js " lang="en"> 3 <head> 4 <!-- Start of TrueVault Code Block -->
5<script> 6 window.polarisOptions = {hideCookieButton: true}; 7</script>
7 8
8<script src="https://polaris.truevaultcdn.com/static/pc/MPB7VLTCT/polaris.js"> 9</script>
9 10<!-- End of TrueVault Code Block --> 11 <meta charset="utf-8"> 12 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 13 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 14 <link rel="preload" href="//calistatools.com/cdn/shop/t/144/assets/helveticaneue-regular.woff2?v=10634716634017319331782709393" as="font" type="font/woff2" crossorigin="anonymous" fetchpriority="high"> 15<link rel="preload" href="//calistatools.com/cdn/shop/t/144/assets/helveticaneue-medium.woff2?v=61111921842405311921782709412" as="font" type="font/woff2" crossorigin="anonymous"> 16<link rel="preload" href="//calistatools.com/cdn/shop/t/144/assets/helveticaneue-mediumcondensed.woff2?v=66957520220898995211782709418" as="font" type="font/woff2" crossorigin="anonymous"> 17 18<style> 19 /* ââ @font-face ââ 20 Same family name with non-overlapping weight RANGES so the browser always 21 resolves to a real file and never synthesizes (faux-bolds) a missing weight. 22 <=450 -> Regular, >=451 -> Medium. */ 23 @font-face { 24 font-family: 'Helvetica Neue'; 25 src: url('//calistatools.com/cdn/shop/t/144/assets/helveticaneue-regular.woff2?v=10634716634017319331782709393') format('woff2'); 26 font-weight: 1 450; 27 font-style: normal; 28 font-display: swap; 29 } 30 @font-face { 31 font-family: 'Helvetica Neue'; 32 src: url('//calistatools.com/cdn/shop/t/144/assets/helveticaneue-medium.woff2?v=61111921842405311921782709412') format('woff2'); 33 font-weight: 451 1000; 34 font-style: normal; 35 font-display: swap; 36 } 37 @font-face { 38 font-family: 'Helvetica Neue Cond'; 39 src: url('//calistatools.com/cdn/shop/t/144/assets/helveticaneue-mediumcondensed.woff2?v=66957520220898995211782709418') format('woff2'); 40 font-weight: 1 1000; 41 font-style: normal; 42 font-display: swap; 43 } 44 45 /* ââ Metric-matched fallback ââ 46 Tuned to Helvetica Neue Regular's real metrics (upm 1000: asc 952 / desc 213 / 47 gap 28; size-adjust from avg advance vs Arial). Makes the system fallback occupy 48 the exact same space as HN, so the swap causes no layout shift (protects CLS). */ 49 @font-face { 50 font-family: 'HN Fallback'; 51 src: local('Arial'), local('Helvetica Neue'), local('Helvetica'), local('Arimo'); 52 ascent-override: 94.01%; 53 descent-override: 21.03%; 54 line-gap-override: 2.76%; 55 size-adjust: 101.27%; 56 } 57 58 /* ââ Repoint Eurus's global font variables ââ 59 The whole theme reads from these two custom properties, so this swaps fonts 60 site-wide with no fork. !important on a custom property wins regardless of 61 where this snippet renders relative to the theme's own variable block. */ 62 :root { 63 --font-body-family: 'Helvetica Neue', 'HN Fallback', Arial, sans-serif !important; 64 --font-heading-family: 'Helvetica Neue', 'HN Fallback', Arial, sans-serif !important; 65 } 66 67 /* ââ Large headlines -> condensed face ââ 68 Targets the heading element directly (the theme sets font-family on .h1/.h2, 69 so the wrapper alone won't win). Comment out any binding that over-applies, 70 and use .headline-condensed to add the condensed face anywhere else. */ 71 .x-container-slideshow .h1, 72 .x-container-slideshow .h2, 73 .collection-title .h1, 74 .collection-title h1, 75 .headline-condensed { 76 font-family: 'Helvetica Neue Cond', 'Arial Narrow', Arial, sans-serif !important; 77 font-weight: 500 !important; 78 letter-spacing: 0 !important; 79 } 80 81 /* End: Calista Self-hosted Helvetica Neue */ 82</style> 83 84 <meta name="theme-color" content=""> 85 86 <link rel="canonical" href="https://calistatools.com/"> 87 88<link rel="icon" type="image/png" href="//calistatools.com/cdn/shop/files/calista-favicon-black.png?crop=center&height=32&v=1776903326&width=32"><title> 89 Calista Tools: Transformative Hair Tools & Styling Products 90</title> 91
91<script type="application/ld+json"> 92 { 93 "@context": "http://schema.org", 94 "@type": "OnlineStore", 95 "name": "", 96 "description": "Best store for Heath and beauty products", 97 98 "telephone": "", 99 "address": [{ 100 "@type": "PostalAddress", 101 "streetAddress": "", 102 "addressLocality": "", 103 "addressRegion": "", 104 "postalCode": "", 105 "addressCountry": "" 106 },{ 107 "streetAddress": "", 108 "addressLocality": "", 109 "addressRegion": "", 110 "postalCode": "", 111 "addressCountry": "" 112 }], 113 "email": "" 114 } 115 </script>
115 116 117 <meta name="description" content="Products and tools that empower transformation to make you brave about your beauty. #BeautyBrave"> 118 119 <link href="//calistatools.com/cdn/shop/t/144/assets/theme.css?v=5702437124814258051782330849" rel="stylesheet" type="text/css" media="all" /> 120 121 122 <link rel="preload" href="//calistatools.com/cdn/shop/t/144/assets/secondary-css.css?v=124842348671814217191782330849" as="style" onload="this.onload=null;this.rel='stylesheet'"> 123 <noscript> 124 <link rel="stylesheet" href="//calistatools.com/cdn/shop/t/144/assets/secondary-css.css?v=124842348671814217191782330849"> 125 </noscript> 126 <link rel="preload" href="//calistatools.com/cdn/shop/t/144/assets/theme-md.css?v=151260671671375736911782330849" as="style" media="(min-width: 768px)"> 127 <link rel="stylesheet" href="//calistatools.com/cdn/shop/t/144/assets/theme-md.css?v=151260671671375736911782330849" type="text/css" media="(min-width: 768px)"> 128 <link rel="preload" href="//calistatools.com/cdn/shop/t/144/assets/theme-lg.css?v=86808408100825652321782330849" as="style" media="(min-width: 1024px)"> 129 <link rel="stylesheet" href="//calistatools.com/cdn/shop/t/144/assets/theme-lg.css?v=86808408100825652321782330849" type="text/css" media="(min-width: 1024px)"> 130 <link rel="preload" href="//calistatools.com/cdn/shop/t/144/assets/theme-xl.css?v=32779135562416466511782330849" as="style" media="(min-width: 1280px)"> 131 <link rel="stylesheet" href="//calistatools.com/cdn/shop/t/144/assets/theme-xl.css?v=32779135562416466511782330849" type="text/css" media="(min-width: 1280px)"> 132 133 134 135<link rel="preload" href="" as="font" type="font/woff2" crossorigin="anonymous" fetchpriority="high" /> 136 137 138 139 140<meta property="og:site_name" content="Calista Tools"> 141<meta property="og:url" content="https://calistatools.com/"> 142<meta property="og:title" content="Calista Tools: Transformative Hair Tools & Styling Products"> 143<meta property="og:type" content="website"> 144<meta property="og:description" content="Products and tools that empower transformation to make you brave about your beauty. #BeautyBrave"><meta name="twitter:card" content="summary_large_image"> 145<meta name="twitter:title" content="Calista Tools: Transformative Hair Tools & Styling Products"> 146<meta name="twitter:description" content="Products and tools that empower transformation to make you brave about your beauty. #BeautyBrave"> 147<style data-shopify> 148 149 150 151 152 153 154 155 156 �</style> 157<style data-shopify>:root, 158 *:before { 159 --base-font-size: 0.875rem; 160 --font-size-medium-mobile: 0.9rem; 161 --font-size-medium: 1.0rem; 162 --font-size-small: 0.625rem; 163 --font-size-small-mobile: 0.5625rem; 164 --font-size-normal: 0.75rem; 165 --font-size-normal-mobile: 0.675rem; 166 --font-size-large: 1.25rem; 167 --font-size-large-mobile: 1.125rem; 168 --heading-highlight-font-size: 100%; 169 --h1-font-size: 3.825rem; 170 --h2-font-size: 2.25rem; 171 --h3-font-size: 1.35rem; 172 --h4-font-size: 1.2375rem; 173 --h5-font-size: 1.125rem; 174 --h6-font-size: 1.0125rem; 175 --base-font-size-mobile: 0.7875rem; 176 --h1-font-size-mobile: 1.9125rem; 177 --h2-font-size-mobile: 1.35rem; 178 --h3-font-size-mobile: 0.945rem; 179 --h4-font-size-mobile: 0.86625rem; 180 --h5-font-size-mobile: 0.7875rem; 181 --h6-font-size-mobile: 0.70875rem; 182 --rating-star-size: 0.7rem; 183 --border-radius: 0; 184 --page-width: 1400px; 185 --width-countdown: 7.875rem; 186 --font-menu: Helvetica, Arial, sans-serif; 187 --font-menu-weight: 400; 188 --font-menu-style: normal; 189 --font-button: Helvetica, Arial, sans-serif; 190 --font-button-weight: 400; 191 --font-button-style: normal; 192 --font-body-family: Helvetica, Arial, sans-serif; 193 --font-body-style: normal; 194 --font-body-weight: 400; 195 --font-heading-family: Helvetica, Arial, sans-serif; 196 --font-heading-highlight: Helvetica, Arial, sans-serif; 197 --font-heading-highlight-style: normal; 198 --font-heading-highlight-weight: 400; 199 --font-heading-style: normal; 200 --font-heading-weight: 700; 201 --heading-text-tranform: none; 202 --advanced-sections-spacing: 0px; 203 --divider-spacing: -0; 204 205 --colors-pulse-speech: 166, 88, 107; 206 --image-treatment-overlay: 0, 0, 0; 207 --image-treatment-text: 255, 255, 255; 208 --colors-line-and-border: 225, 227, 225; 209 --colors-line-and-border-base: 225, 227, 225; 210 --colors-line-header: 225, 227, 225; 211 --colors-line-footer: 52, 54, 52; 212 --colors-background: 255, 255, 255; 213 --colors-text: 51, 50, 46; 214 --colors-text-base: 51, 50, 46; 215 --colors-heading: 51, 50, 46; 216 --colors-heading-base: 51, 50, 46; 217 --colors-background-secondary: 253, 241, 237; 218 --colors-text-secondary: 51, 50, 46; 219 --colors-heading-secondary: 51, 50, 46; 220 --colors-text-link: 51, 50, 46; 221 --background-color: 255, 255, 255; 222 --background-color-base: 255, 255, 255; 223 --background-color-header: 255, 255, 255; 224 --colors-text-header: 51, 50, 46; 225 --background-color-footer: 51, 50, 46; 226 --colors-text-footer: 208, 208, 208; 227 --colors-heading-footer: 255, 255, 255; 228 --colors-text-link-footer: 255, 255, 255; 229 --color-error: 169, 0, 51; 230 --color-success: 96, 107, 87; 231 --colors-price: 51, 50, 46; 232 --colors-price-sale: 166, 88, 107; 233 --colors-button-text: 255, 255, 255; 234 --colors-button: 51, 50, 46; 235 --colors-button-text-hover: 255, 255, 255; 236 --colors-secondary-button: 51, 50, 46; 237 --colors-button-hover: rgb(16, 16, 16); 238 --colors-cart: 166, 88, 107; 239 --colors-cart-text: 255, 255, 255; 240 --colors-icon-rating: 51, 50, 46; 241 --colors-transition-arrows: 0, 0, 0; 242 --color-highlight: rgb(51, 50, 46);
243 --background-pagination-slideshow: 40, 41, 40; 244 --text-color-pagination-slideshow: 255, 255, 255; 245 246 --background-secondary-button: transparent; 247 --colors-line-secondary-button: 51, 50, 46; 248 249 250 --button-width: 120%; 251 --button-height: 100%; 252 --button-transform: rotate3d(0,0,1,10deg) translate3d(-1.2em,110%,0); 253 --button-transform-origin: 0% 100%; 254 255 256 --height-parallax: 100%; 257 258 259 --image-zoom: 1.05; 260 261 --card-product-bg: rgba(0,0,0,0); 262 --card-product-padding: 20px; 263 --card-product-padding-mobile: 3px; 264 --card-product-alignment: left; 265 266 --width-scrollbar: 0; 267 --card-product-ratio: 100.0%; 268 --card-product-img-position: absolute; 269 --card-product-img-height: 0; 270 --card-product-img-zoom: scale(1.1); 271 --height-header: 0px; 272 --transition-card-loading: 500ms; 273 --transition-card-image-hover: 400ms; 274 --transition-slideshow: 500ms; 275 --transition-image-hover: 500ms; 276 } 277 .dark, 278 .dark *:before { 279 --image-treatment-overlay: 0, 0, 0; 280 --image-treatment-text: 255, 255, 255; 281 --colors-line-and-border: 49, 49, 49; 282 --colors-line-and-border-base: 49, 49, 49; 283 --colors-line-header: 52, 54, 52; 284 --colors-line-footer: 52, 54, 52; 285 --colors-background: 40, 41, 40; 286 --colors-text: 225, 227, 225; 287 --colors-text-base: 225, 227, 225; 288 --colors-heading: 255, 255, 255; 289 --colors-heading-base: 255, 255, 255; 290 --background-color: 40, 41, 40; 291 --background-color-base: 40, 41, 40; 292 --colors-text-link: 145, 180, 116; 293 --color-error: 229, 105, 15; 294 --color-success: 145, 180, 116; 295 --background-color-header: 40, 41, 40; 296 --colors-text-header: 255, 255, 255; 297 --background-color-footer: 40, 41, 40; 298 --colors-text-footer: 225, 227, 225; 299 --colors-heading-footer: 255, 255, 255; 300 --colors-text-link-footer: 145, 180, 116; 301 --colors-price: 250, 250, 250; 302 --colors-price-sale: 229, 105, 15; 303 --colors-button-text: 40, 41, 40; 304 --colors-button: 255, 255, 255; 305 --colors-button-text-hover: 40, 41, 40; 306 --colors-secondary-button: 255, 255, 255; 307 --colors-button-hover: rgb(255, 255, 255); 308 --colors-cart: 145, 180, 116; 309 --colors-cart-text: 250, 250, 250; 310 --colors-background-secondary: 47, 48, 47; 311 --colors-text-secondary: 225, 227, 225; 312 --colors-heading-secondary: 255, 255, 255; 313 --colors-icon-rating: 229, 105, 15; 314 --colors-pulse-speech: 166, 88, 107; 315 --colors-transition-arrows: 0, 0, 0; 316 --color-highlight: rgb(145, 180, 116); 317 318 --background-secondary-button: transparent; 319 --colors-line-secondary-button: 255, 255, 255; 320 321 --card-product-bg: rgba(0,0,0,0); 322 } 323 shopify-accelerated-checkout { 324 --shopify-accelerated-checkout-button-border-radius: 0; 325 } 326 shopify-accelerated-checkout-cart { 327 --shopify-accelerated-checkout-button-border-radius: 0; 328 --shopify-accelerated-checkout-inline-alignment: end; 329 --shopify-accelerated-checkout-button-block-size: 48px; 330 --shopify-accelerated-checkout-button-inline-size: 48px; 331 } 332 shopify-account { 333 --shopify-account-color-accent: rgba(var(--colors-button)); 334 --shopify-account-color-accent-text: rgb(var(--colors-button-text)); 335 --shopify-account-color-background: rgb(var(--background-color-base)); 336 --shopify-account-color-background-subdued: rgba(var(--colors-text-base), .3); 337 --shopify-account-color-text-subdued: rgba(var(--colors-text-base), 1); 338 --shopify-account-radius-button-small: 9999px; 339 --shopify-account-color-control-text: rgba(var(--colors-text-base), 1); 340 --shopify-account-color-border: rgba(var(--colors-line-and-border-base), 1); 341 --shopify-account-color-control-background: rgb(var(--background-color-base)); 342 --shopify-account-color-text: rgba(var(--colors-text-base), 1); 343 --shopify-account-color-text-subdued: rgba(var(--colors-text-base), 1); 344 --shopify-account-dialog-position-top: 30px; 345 --shopify-account-font-body: var(--font-body-family); 346 --shopify-account-font-body-weight: var(--font-body-weight); 347 --shopify-account-font-heading: var(--font-heading-family); 348 --shopify-account-font-heading-weight: var(--font-heading-weight); 349 --shopify-account-radius-base: 0px; 350 --shopify-account-radius-button: 0; 351 --shopify-account-radius-dialog: 0px; 352 --shopify-account-radius-input: 0px; 353 --shopify-account-signed-in-avatar-color-background: rgba(var(--colors-text), 1); 354 --shopify-account-signed-in-avatar-color-text: rgb(var(--background-color)); 355 } 356 357 [role="button"], 358 [type="button"], 359 .button { 360 color: rgb(var(--colors-button-text)); 361 } 362 button.button-solid, 363 .button.button-solid { 364 border: none; 365 background-color: rgba(var(--colors-button)); 366 } 367 button.button-disable-effect, 368 .button.button-disable-effect { 369 color: rgb(var(--colors-button-text)); 370 background-color: rgba(var(--colors-button)); 371 } 372 .button-action { 373 border: none; 374 color: rgb(var(--colors-button-text)); 375 background-color: rgba(var(--colors-button)); 376 } 377 378 .header, .header *::before { 379 --colors-text: var(--colors-text-header); 380 --colors-heading: var(--colors-text-header); 381 --colors-price: var(--colors-text-header); 382 --colors-line-and-border: var(--colors-line-header); 383 } 384 #sticky-header-content .divider { 385 --colors-line-and-border: var(--colors-line-header); 386 } 387 .paginate-slide-image {
388 background: rgba(var(--background-pagination-slideshow)); 389 color: rgba(var(--text-color-pagination-slideshow)); 390 } 391 body { 392 touch-action: manipulation; 393 } 394 @media (min-width: 1024px) { 395 .paginate-slide-image { 396 color: rgba(var(--text-color-pagination-slideshow)); 397 } 398 .paginate-slide-image:hover { 399 color: rgba(var(--text-color-pagination-slideshow)); 400 } 401 } 402 403 .section-quick-links, 404 .section-quick-links *::before, 405 .section-footer, 406 .section-footer *::before { 407 --colors-text: var(--colors-text-footer); 408 --colors-heading: var(--colors-heading-footer); 409 --colors-text-link: var(--colors-text-link-footer); 410 --colors-line-and-border: var(--colors-line-footer); 411 } 412 .sticky-header { 413 --font-body-weight: 700; 414 } 415 416 .scrollbar-horizontal { 417 position: relative; 418 -ms-overflow-style: none; 419 } 420 .scrollbar-horizontal::-webkit-scrollbar-track { 421 background-color: #ececec; 422 } 423 .scrollbar-horizontal::-webkit-scrollbar { 424 height: 3px; 425 } 426 427 .scrollbar-horizontal::-webkit-scrollbar-track { 428 -webkit-box-shadow: inset 0 0 0px rgba(0, 0, 0, 0); 429 } 430 431 .scrollbar-horizontal::-webkit-scrollbar-thumb { 432 visibility: visible; 433 background-color: #747474; 434 } 435 436 .scrollbar-horizontal::-webkit-scrollbar-thumb:hover { 437 background-color: #747474; 438 } 439 body.scrollbar-body::-webkit-scrollbar{ 440 width: 5px; 441 } 442 .scrollbar-body::-webkit-scrollbar-track{ 443 background: #ececec; 444 } 445 .scrollbar-horizontal { 446 position: relative; 447 -ms-overflow-style: none; 448 } 449 .scrollbar-horizontal::-webkit-scrollbar-track { 450 background-color: #ececec; 451 } 452 .scrollbar-horizontal::-webkit-scrollbar {
453 height: 3px; 454 } 455 456 .scrollbar-horizontal::-webkit-scrollbar-track { 457 -webkit-box-shadow: inset 0 0 0px rgba(0, 0, 0, 0); 458 } 459 460 .scrollbar-horizontal::-webkit-scrollbar-thumb { 461 visibility: visible; 462 background-color: #747474; 463 } 464 465 .scrollbar-horizontal::-webkit-scrollbar-thumb:hover { 466 background-color: #747474; 467 } 468 .scrollbar-body::-webkit-scrollbar{ 469 width: 3px; 470 } 471 .scrollbar-body::-webkit-scrollbar-track{ 472 background: #ececec; 473 } 474 .scrollbar-body.scrollbar-visible:active::-webkit-scrollbar-thumb, 475 .scrollbar-body.scrollbar-visible:focus::-webkit-scrollbar-thumb, 476 .scrollbar-body.scrollbar-visible:hover::-webkit-scrollbar-thumb { 477 background: #747474; 478 visibility: visible; 479 } 480 .scrollbar-body.scrollbar-visible::-webkit-scrollbar-track{ 481 background: transparent; 482 } 483 .scrollbar-body.scrollbar-visible::-webkit-scrollbar-thumb{ 484 background: transparent; 485 visibility: visible; 486 } 487 .scrollbar-body::-webkit-scrollbar-thumb{ 488 background: #747474; 489 } 490 .animate-scroll-banner { 491 animation: scrollX var(--duration, 10s) linear infinite var(--play-state, running) var(--direction); 492 } 493 .padding-scrollbar, .padding-scrollbar-header { 494 padding-right: min(var(--width-scrollbar), 20px); 495 } 496 497 498 .des-block iframe { 499 width: 100%; 500 height: 100%; 501 } 502 .toggle-compare + label span:first-child, 503 .toggle-compare:checked + label span:last-child { 504 display: block 505 } 506 .toggle-compare + label span:last-child, 507 .toggle-compare:checked + label span:first-child { 508 display: none; 509 } 510 .card-product:not(.recommendations) {} 511 .dark .card-product:not(.recommendations) {background: transparent;} 512 .card-product:not(.recommendations) .card-info, 513 .card-product:not(.recommendations) .x-variants-data { 514 padding-left: 3px; 515 padding-right: 3px; 516 } 517 .card-product:not(.recommendations) .x-variants-separator::before { 518 content: var(--tw-content); 519 position: absolute; 520 width: calc(100% - 2 * 3px); 521 top: 0; 522 left: 0; 523 margin-left: 3px; 524 margin-right: 3px; 525 } 526 .card-product:not(.recommendations) .card-info .x-variants-data 527 { 528 padding-left: 0; 529 padding-right: 0; 530 } 531 .card-product:not(.recommendations) .card-info .x-variants-separator::before { 532 width: 100%; 533 margin-left: 0; 534 margin-right: 0; 535 } 536 .card-product-slideshow { 537 background: rgb(253, 241, 237);} 538 .dark .card-product-slideshow { 539 background: rgb(47, 48, 47);} 540 button.shopify-payment-button__more-options { 541 color: rgba(var(--colors-text)); 542 } 543 .group-discount:before,.group-discount:after { 544 background-color: rgba(var(--colors-price-sale), 5%); 545 content: ""; 546 position: absolute; 547 right: 100%; 548 height: 100%; 549 top: 0; 550 width: 1.25rem; 551 } 552 .shipping_insurance.group-discount:before,.shipping_insurance.group-discount:after { 553 background-color: rgb(var(--colors-background-secondary)); 554 } 555 .group-discount:after { 556 left: 100%; 557 right: auto; 558 } 559 @media (min-width: 768px){ 560 .list-layout .card-product:not(.recommendations) { 561 padding-bottom: 0; 562 } 563 .list-layout .card-product:not(.recommendations) .card-info, 564 .list-layout .card-product:not(.recommendations) .x-variants-data{ 565 padding-left: 0; 566 padding-right: 0; 567 } 568 .list-layout .card-product:not(.recommendations) .x-variants-separator::before { 569 width: 100%; 570 margin-left: 0; 571 margin-right: 0; 572 } 573 shopify-accelerated-checkout-cart { 574 --shopify-accelerated-checkout-button-block-size: 46px; 575 --shopify-accelerated-checkout-button-inline-size: 46px; 576 } 577 } 578 @media (min-width: 1024px){ 579 .group-discount:before,.group-discount:after { 580 width: 0; 581 } 582 .card-product:not(.recommendations) .card-info, 583 .card-product:not(.recommendations) .x-variants-data { 584 padding-left: 20px; 585 padding-right: 20px; 586 } 587 .card-product:not(.recommendations) .x-variants-separator::before { 588 width: calc(100% - 2 * 20px); 589 margin-left: 20px; 590 margin-right: 20px; 591 } 592 [role="button"], 593 [type="button"], 594 .button { 595 color: rgba(var(--colors-button-text)); 596 } 597 button.button-solid, 598 .button.button-solid { 599 border: none; 600 box-shadow: none; 601 color: rgb(var(--colors-button-text)); 602 background-color: rgba(var(--colors-button)); 603 overflow: hidden; 604 background-origin: border-box; 605 } 606 button.button-solid:hover, 607 .button.button-solid:hover { 608 609 transition-delay: 0.5s; 610 611 transition-property: background-color; 612 background-color: var(--colors-button-hover); 613 color: rgba(var(--colors-button-text-hover)); 614 background-origin: border-box; 615 } 616 .button-action { 617 border: none; 618 color: rgba(var(--colors-button-text-hover)); 619 background-color: var(--colors-button-hover); 620 } 621 button.button-disable-effect, 622 .button.button-disable-effect { 623 color: rgb(var(--colors-button-text)); 624 background-color: rgba(var(--colors-button)); 625 } 626 button.button-disable-effect:hover, 627 .button.button-disable-effect:hover { 628 color: rgba(var(--colors-button-text-hover)); 629 background-color: var(--colors-button-hover); 630 } 631 632 button.button-solid:before, 633 .button.button-solid:before { 634 content: ""; 635 z-index: -1; 636 position: absolute; 637 top: 0; 638 right: 0; 639 bottom: 0; 640 left: 0; 641 width: var(--button-width); 642 height: var(--button-height); 643 background-color: var(--colors-button-hover); 644 backface-visibility: hidden; 645 will-change: transform; 646 transform: var(--button-transform); 647 transform-origin: var(--button-transform-origin); 648 transition: transform 0.5s ease; 649 } 650 button.button-solid:hover:before, 651 .button.button-solid:hover:before {
652 transform: rotate3d(0,0,1,0) translateZ(0); 653 } 654 655 656 } 657 .inventory-low-stock-status { 658 659 --stock-color: rgba(166, 88, 107); 660 661 color: var(--stock-color); 662 } 663 .dark .inventory-low-stock-status { 664 665 --stock-color: rgba(191, 18, 42); 666 667 } 668 .inventory-in-stock-status { 669 670 --stock-color: rgba(51, 50, 46); 671 672 color: var(--stock-color); 673 } 674 .dark .inventory-in-stock-status { 675 676 --stock-color: rgba(133, 143, 77); 677 678 } 679 .inventory-out-of-stock-status { 680 681 --stock-color: rgba(166, 88, 107); 682 683 color: var(--stock-color); 684 } 685 .dark .inventory-out-of-stock-status { 686 687 --stock-color: rgba(134, 127, 127); 688 689 } 690 .inventory-status { 691 background-color: var(--stock-color); 692 } 693 .card-testimonial { 694 background: #FDF1ED;} 695 .dark .card-testimonial { 696 background: #2f302f;} 697 /* App Shopify Subscription */ 698 .shopify_subscriptions_app_policy a { 699 position: relative; 700 margin-top: .5rem; 701 margin-bottom: .5rem; 702 color: rgba(var(--colors-text-link)) !important; 703 text-decoration-thickness: 1px; 704 background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0)), linear-gradient(to right, rgba(var(--colors-text-link), 1), rgba(var(--colors-text-link), 1), rgba(var(--colors-text-link), 1)); 705 background-size: 100% 0.1em, 0 0.1em; 706 background-position: 100% 100%,100% 100%; 707 background-repeat: no-repeat; 708 transition: background-size 250ms; 709 } 710 .shopify_subscriptions_app_policy:after { 711 clear: both; 712 content: var(--tw-content); 713 display: block; 714 } 715 @media (min-width: 1024px) { 716 .shopify_subscriptions_app_policy a:hover { 717 background-size: 0 .1em, 100% .1em; 718 background-position: 100% 100%, 0% 100%; 719 } 720 } 721 722 /* Recurpay Subscription App */ 723 #recurpay-account-widget { 724 margin-top: 1rem; 725 } 726 727 /* Seal Subscriptions */ 728 .sls-widget-branding { 729 z-index: 20 !important; 730 } 731 .card .sealsubs-target-element, .card-product-fbt .sealsubs-target-element { 732 display: none !important; 733 } 734 .seal-portal-link a { 735 position: relative; 736 margin-top: .5rem; 737 margin-bottom: .5rem; 738 color: rgba(var(--colors-text-link)) !important; 739 text-decoration-thickness: 1px; 740 background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0)), linear-gradient(to right, rgba(var(--colors-text-link), 1), rgba(var(--colors-text-link), 1), rgba(var(--colors-text-link), 1)); 741 background-size: 100% 0.1em, 0 0.1em; 742 background-position: 100% 100%,100% 100%; 743 background-repeat: no-repeat; 744 transition: background-size 250ms; 745 } 746 .seal-portal-link:after { 747 clear: both; 748 content: var(--tw-content); 749 display: block; 750 } 751 @media (min-width: 1024px) { 752 .seal-portal-link a:hover { 753 background-size: 0 .1em, 100% .1em; 754 background-position: 100% 100%, 0% 100%; 755 } 756 } 757 .x-card-title { 758 font-size: 0.81rem; 759 font-family: var(--font-heading-family); 760 font-weight: var(--font-heading-weight); 761 } 762 .x-card-price, .x-card-price-init { 763 font-size: 0.72rem; 764 font-family: var(--font-body-family); 765 font-weight: var(--font-body-weight); 766 } 767 @media (min-width: 768px) { 768 .x-card-title { 769 font-size: 0.9rem; 770 } 771 .x-card-price, .x-card-price-init { 772 font-size: 0.8rem; 773 } 774 } 775 .dbtap-overlay{ 776 display: none 777 } 778 @media (max-width: 1024px) and (pointer: coarse) and (hover: none) { 779 .dbtap-overlay{ 780 display: block 781 } 782 } 783 .swatch-count-small { 784 min-height: 28px; 785 min-width: 28px; 786 } 787 .swatch-count-medium { 788 min-height: 32px; 789 min-width: 32px; 790 } 791 .swatch-count-large { 792 min-height: 38px; 793 min-width: 38px; 794 } 795 .paginate-testimonial { 796 background: rgba(16, 16, 16, 0.2); 797 } 798 .dark .paginate-testimonial { 799 background: rgba(255, 255, 255, 0.2); 800 }</style><style data-shopify> 801 802.card-product .yotpo-sr-bottom-line-summary { 803 display: block !important; 804 } 805 .card-product .yotpo-sr-bottom-line-summary > div { 806 float: left !important; 807 } 808 .card-product .yotpo-sr-vertical-border { 809 margin-top: 10px !important; 810 }</style><style data-shopify> 811 .body-text-base-size { 812 font-size: 0.7875rem; 813 } 814 .text-pickup-availability { 815 font-size: 0.875rem; 816 } 817 .text-result-filter { 818 font-size: 0.9625rem; 819 } 820 .text-filter { 821 font-size: 0.70875rem; 822 } 823 .heading-text-base-h3 { 824 font-size: 1.125rem; 825 } 826 .heading-text-base-h2 { 827 font-size: 1.35rem; 828 } 829 .text-suggest-search { 830 font-size: 0.875rem; 831 } 832 .text-review-count { 833 font-size: 0.7rem; 834 } 835 @media (min-width: 768px) { 836 .body-text-base-size { 837 font-size: 0.875rem; 838 } 839 .text-pickup-availability { 840 font-size: 0.9625rem; 841 } 842 .text-filter { 843 font-size: 0.7875rem; 844 } 845 .heading-text-base-h3 { 846 font-size: 1.35rem; 847 } 848 .heading-text-base-h2 { 849 font-size: 2.25rem; 850 } 851 .text-suggest-search { 852 font-size: 1.0rem; 853 } 854 } 855</style> 856 857
857<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
857<meta name="google-site-verification" content="bwUbnF8vyr8XHHzgl9wrAa_VBenL3RNOsoX-Hqr8i6s"> 858<meta name="google-site-verification" content="bwUbnF8vyr8XHHzgl9wrAa_VBenL3RNOsoX-Hqr8i6s"> 859<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/6764757061/digital_wallets/dialog"> 860<meta id="in-context-paypal-metadata" data-shop-id="6764757061" data-venmo-supported="true" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 861<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
861<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=4598333750"></script>
861 862<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
863<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=4598333750&shop_id=6764757061" crossorigin="anonymous"></script>
vendor: 1 bytes, line 863
863
864<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":6764757061,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/6764757061","merchantName":"Calista Tools","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Calista Tools","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 864
864
865<script id="shopify-features" type="application/json">{"accessToken":"87592d3b1453bad22f1334cf22031e32","betas":["rich-media-storefront-analytics"],"domain":"calistatools.com","predictiveSearch":true,"shopId":6764757061,"locale":"en"}</script>
vendor: 1 bytes, line 865
865
866<script>var Shopify = Shopify || {}; 867Shopify.shop = "calista-tools.myshopify.com"; 868Shopify.locale = "en"; 869Shopify.currency = {"active":"USD","rate":"1.0"}; 870Shopify.country = "US"; 871Shopify.theme = {"name":"[Loop Checkout+ v2] v10 Eurus","id":186329760054,"schema_name":"Eurus","schema_version":"10.0.0","theme_store_id":2048,"role":"main"}; 872Shopify.theme.handle = "null"; 873Shopify.theme.style = {"id":null,"handle":null}; 874Shopify.cdnHost = "calistatools.com/cdn"; 875Shopify.routes = Shopify.routes || {}; 876Shopify.routes.root = "/"; 877Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 878Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 879Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 880Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 880
880
881<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 881
881
882<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 882
882
883<script> 884 window.ShopifyPay = window.ShopifyPay || {}; 885 window.ShopifyPay.apiHost = "shop.app\/pay"; 886 window.ShopifyPay.redirectState = null; 887</script>
vendor: 1 bytes, line 887
887
888<script> 889 window.Shopify = window.Shopify || {}; 890 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 891 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 892 window.Shopify.SignInWithShop.eligible = true; 893</script>
vendor: 1 bytes, line 893
893
894<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
vendor: 1 bytes, line 894
894
895<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 895
895
896<script type="module"> 897 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 898 899 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 900 901</script>
vendor: 1 bytes, line 901
901
902<script> 903 window.Shopify = window.Shopify || {}; 904 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 905 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"]}; 906</script>
vendor: 1 bytes, line 906
906
907<script>(function() { 908 var isLoaded = false; 909 function asyncLoad() { 910 if (isLoaded) return; 911 isLoaded = true; 912 var urls = ["https:\/\/services.nofraud.com\/js\/device.js?shop=calista-tools.myshopify.com","https:\/\/static-us.afterpay.com\/shopify\/afterpay-attract\/afterpay-attract-widget.js?shop=calista-tools.myshopify.com","https:\/\/cdn.attn.tv\/calista\/dtag.js?shop=calista-tools.myshopify.com","https:\/\/static.rechargecdn.com\/assets\/js\/widget.min.js?shop=calista-tools.myshopify.com","\/\/backinstock.useamp.com\/widget\/18675_1787667501.js?category=bis\u0026v=6\u0026shop=calista-tools.myshopify.com"]; 913 for (var i = 0; i < urls.length; i++) { 914 var s = document.createElement('script'); 915 s.type = 'text/javascript'; 916 s.async = true; 917 s.src = urls[i]; 918 var x = document.getElementsByTagName('script')[0]; 919 x.parentNode.insertBefore(s, x); 920 } 921 }; 922 if(window.attachEvent) { 923 window.attachEvent('onload', asyncLoad); 924 } else { 925 window.addEventListener('load', asyncLoad, false); 926 } 927})();</script>
vendor: 1 bytes, line 927
927
928<script id="__st">var __st={"a":6764757061,"offset":-14400,"reqid":"c9c760c5-5422-4fb3-8c20-0b366ebd0c49-1791062263","pageurl":"calistatools.com\/","u":"92bbcf7aaa69","p":"home"};</script>
vendor: 1 bytes, line 928
928
929<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 929
929
930<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 930
930
931<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//calistatools.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 931
931
932<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 = "//calistatools.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
932<script crossorigin="anonymous" defer="defer" src="//calistatools.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 932
932
933<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 933
933
934<script> 935 window.Shopify = window.Shopify || {}; 936 window.Shopify.MCP = window.Shopify.MCP || {}; 937 window.Shopify.MCP.enabled = true; 938 window.Shopify.MCP.shop = "calista-tools.myshopify.com"; 939 window.Shopify.MCP.mcpEndpoint = "https:\/\/calistatools.com\/api\/mcp"; 940 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"]}}]; 941</script>
vendor: 1 bytes, line 941
941
942<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("\/\/calistatools.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 943</script>
vendor: 1 bytes, line 943
943
944<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://calistatools.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 945</script>
vendor: 1 bytes, line 945
945
946<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 947 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); 948</script>
vendor: 1 bytes, line 948
948
949<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})}})); 950</script>
950 951<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://calistatools.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 952<style id="shopify-accelerated-checkout-cart"> 953 #shopify-buyer-consent { 954 margin-top: 1em; 955 display: inline-block; 956 width: 100%; 957} 958 959#shopify-buyer-consent.hidden { 960 display: none; 961} 962 963#shopify-subscription-policy-button { 964 background: none; 965 border: none; 966 padding: 0; 967 text-decoration: underline; 968 font-size: inherit; 969 cursor: pointer; 970} 971 972#shopify-subscription-policy-button::before { 973 box-shadow: none; 974} 975 976 </style> 977
978<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
978 979 980 <!-- BEGIN app block: shopify://apps/intelligems-a-b-testing/blocks/intelligems-script/fa83b64c-0c77-4c0c-b4b2-b94b42f5ef19 -->
980<script> 981 window._template = { 982 directory: "", 983 name: "index", 984 suffix: "" 985 }; 986 window.__productIdFromTemplate = null; 987 window.__plpCollectionIdFromTemplate = null; 988 window.igProductData = (function() { 989 const data = {};return data; 990 })(); 991</script>
991 992
993<script type="module" blocking="render" fetchpriority="high" src="https://cdn.intelligems.io/esm/28cfea53e3b0/bundle.js" data-em-disable async></script>
993 994 995 996<!-- END app block --><!-- BEGIN app block: shopify://apps/ignite-formerly-fueled/blocks/fueled-embed/b7733e10-32a6-41fd-a62d-3195dc211aa9 --><!-- BEGIN app snippet: index -->
996<script type="module" src="/apps/fueled/client.js?track=true&rand=1"></script>
996 997
998<script> 999 { 1000 const getPage = () => "index"; 1001 const getSearchTerms = () => ""; 1002 const getCart = () => ({"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":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}); 1003 1004 const getCollection = () => ({ 1005 list_id: "", 1006 category: null || null, 1007 currency: "USD", 1008 }); 1009 1010 const getCustomer = () => ({ 1011 name: [null, null].filter(Boolean).join(" ") || null, 1012 externalCustomerId: "", 1013 email: "", 1014 phone: "", 1015 firstName: null, 1016 lastName: null, 1017 lifetimeValue: null, 1018 orderCount: null, 1019 address: { 1020 street: null, 1021 city: null, 1022 state: null, 1023 stateCode: null, 1024 postalCode: "", 1025 country: "", 1026 province: "", 1027 countryCode: "", 1028 } 1029 }); 1030 1031 const getProduct = () => ({ 1032 productId: "", 1033 variant: "", 1034 variantId: "", 1035 variantName: null, 1036 sku: null, 1037 brand: null, 1038 category: null || null || null, 1039 name: null, 1040 price: 0.0, 1041 url: "", 1042 1043 currency: "USD", 1044 collections: [], 1045 tags: null 1046 }); 1047 1048 const getProducts = () => { 1049 1050 }; 1051 window.addEventListener('fueled-load', () => { 1052 window.Fueled.setDataLayerItem('page', getPage()); 1053 1054 window.Fueled.setDataLayerItem('cart', getCart()); 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 }); 1066 } 1067</script>
1067 1068<!-- END app snippet --> 1069 1070 1071<!-- END app block --><!-- BEGIN app block: shopify://apps/attentive/blocks/attn-tag/8df62c72-8fe4-407e-a5b3-72132be30a0d -->
1071<script type="text/javascript" src="https://cdn.attn.tv/calista/dtag.js?source=app-embed" defer="defer"></script>
1071 1072 1073 1074<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087
1087<script async src="https://static.klaviyo.com/onsite/js/RfeaaG/klaviyo.js?company_id=RfeaaG"></script>
1087 1088
1088<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>
1088 1089 1090 1091 1092 1093 1094 1095
1095<script> 1096 window.klaviyoReviewsProductDesignMode = false 1097 </script>
1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107<!-- END app block --><!-- BEGIN app block: shopify://apps/yotpo-product-reviews/blocks/settings/eb7dfd7d-db44-4334-bc49-c893b51b36cf --> 1108 1109 1110
1110<script type="text/javascript" src="https://cdn-widgetsrepository.yotpo.com/v1/loader/MomWoy2px304xCd0DXnL78lDcNDRxS7bv5Ok7bW8?languageCode=en" async></script>
1110 1111 1112 1113 1114 1115<!-- END app block --><!-- BEGIN app block: shopify://apps/microsoft-clarity/blocks/clarity_js/31c3d126-8116-4b4a-8ba1-baeda7c4aeea -->
1116<script type="text/javascript"> 1117 (function (c, l, a, r, i, t, y) { 1118 c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments); }; 1119 t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i + "?ref=shopify"; 1120 y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y); 1121 1122 c.Shopify.loadFeatures([{ name: "consent-tracking-api", version: "0.1" }], error => { 1123 if (error) { 1124 console.error("Error loading Shopify features:", error); 1125 return; 1126 } 1127 1128 c[a]('consentv2', { 1129 ad_Storage: c.Shopify.customerPrivacy.marketingAllowed() ? "granted" : "denied", 1130 analytics_Storage: c.Shopify.customerPrivacy.analyticsProcessingAllowed() ? "granted" : "denied", 1131 source: 101, 1132 }); 1133 }); 1134 1135 l.addEventListener("visitorConsentCollected", function (e) { 1136 c[a]('consentv2', { 1137 ad_Storage: e.detail.marketingAllowed ? "granted" : "denied", 1138 analytics_Storage: e.detail.analyticsAllowed ? "granted" : "denied", 1139 source: 101, 1140 }); 1141 }); 1142 })(window, document, "clarity", "script", "v40vh3q5cb"); 1143</script>
1143 1144 1145 1146 1147<!-- END app block --><!-- BEGIN app block: shopify://apps/gorgias-live-chat-helpdesk/blocks/gorgias/a66db725-7b96-4e3f-916e-6c8e6f87aaaa -->
1148<script defer data-gorgias-loader-chat src="https://config.gorgias.chat/bundle-loader/shopify/calista-tools.myshopify.com"></script>
1148 1149 1150
1151<script defer data-gorgias-loader-convert src="https://content.9gtb.com/loader.js"></script>
1151 1152 1153
1154<script defer data-gorgias-loader-mailto-replace src="https://config.gorgias.help/api/contact-forms/replace-mailto-script.js?shopName=calista-tools"></script>
1154 1155 1156 1157<!-- END app block --><!-- BEGIN app block: shopify://apps/xo-insert-code/blocks/insert-code-header/72017b12-3679-442e-b23c-5c62460717f5 --><!-- XO-InsertCode Header --> 1158 1159 1160<style> 1161/* ============================================================ 1162 calista-custom.css - Calista global override stylesheet 1163 Single source of truth for ALL CSS overrides (Layer 2). 1164 Loaded via XO Insert Code (head) or settings.additional_head. 1165 NEVER edit native Eurus files - override them here. 1166 1167 House style: 1168 - Each block opens with a descriptive comment and closes with an END comment. 1169 - Use [id^="..."] / [class*="..."] + !important to beat Eurus 1170 per-section inline style blocks (dynamic IDs). 1171 - Group by surface: GLOBAL | PDP | COLLECTION | CARDS | FOOTER 1172 ============================================================ */ 1173 1174 1175/* ============================================================ 1176 PDP 1177 ============================================================ */ 1178 1179.x-announcement-bar-block-data { 1180 font-size: 12px; 1181} 1182 1183/* -- PDP Desktop Media/Content Split 60/40 -- */ 1184@media (min-width: 768px) { 1185 .product-media-container.md\:w-1\/2 { 1186 width: 60% !important; 1187 } 1188 .product-content-container.md\:w-1\/2 { 1189 width: 40% !important; 1190 } 1191} 1192/* -- END PDP Desktop Media/Content Split 60/40 -- */ 1193 1194/* -- PDP Section Top Padding -- */ 1195@media (min-width: 768px) { 1196 [class*="section-padding-"].flex { 1197 padding-top: 0px !important; 1198 } 1199} 1200/* -- END PDP Section Top Padding -- */ 1201 1202/* -- PDP Media Column Alignment -- */ 1203@media (min-width: 768px) { 1204 .product-media-container, 1205 .product-media-container .splide-image, 1206 .product-media-container [id^="x-product-thumbnail-"] { 1207 margin-top: 0 !important; 1208 padding-top: 0 !important; 1209 } 1210} 1211/* -- END PDP Media Column Alignment -- */ 1212 1213/* -- PDP Mobile refinements (media gap / swatch->buy gap) -- 1214 Mobile-only layout settings. Shop Pay sizing is handled separately in 1215 the installment block below; do not reintroduce transform: scale(). */ 1216@media (max-width: 767px) { 1217 /* Tighten the gap between the product image and the content below it. */ 1218 .product-media-container { 1219 padding-bottom: 12px !important; 1220 } 1221 .product-content-container { 1222 padding-top: 0 !important; 1223 } 1224 1225 /* Preserve the existing gap above the quantity/buy row. */ 1226 .x-variant-picker + .x-block-buy-buttons { 1227 margin-top: 24px !important; 1228 } 1229} 1230/* -- END PDP Mobile refinements -- */ 1231 1232/* -- PDP Benefit Bullets: product metaobject + summary fallback -- 1233 V6: add a NEW native HTML block in place of the top summary Text block. 1234 Product metafield: custom.pdp_benefit_set (ONE metaobject reference). 1235 Metaobject type: pdp_benefit_set. 1236 Fields: internal_name (admin label), bullets (list of single-line text). 1237 The HTML block falls back to custom.pdp_product_snippet for products that 1238 do not yet have usable bullets. Hide the old summary Text block in the 1239 editor, but keep its metafield data and the lower Description accordion. 1240 No changes to Shop Pay, trust messages, videos, tabs, or native theme files. */ 1241 1242/* Match the old top summary's 16px bottom gap, without double spacing. */ 1243.product-content-container .custom-html:has(.calista-pdp-benefits) { 1244 box-sizing: border-box; 1245 width: 100%; 1246 min-width: 0; 1247 margin: 0 0 16px !important; 1248 padding: 0 !important; 1249} 1250 1251/* Hide the native wrapper as well when neither bullets nor a summary exist. */ 1252.product-content-container .custom-html:has(.calista-pdp-benefits[hidden]), 1253.product-content-container .calista-pdp-benefits[hidden] { 1254 display: none !important; 1255} 1256 1257.product-content-container .calista-pdp-benefits { 1258 box-sizing: border-box; 1259 width: 100%; 1260 min-width: 0; 1261 margin: 0 !important; 1262 padding: 0 !important; 1263 font-family: var(--font-body-family, 'Helvetica Neue', 'HN Fallback', Arial, sans-serif) !important; 1264 font-size: var(--base-font-size-mobile, 0.7875rem); 1265 font-weight: 400 !important; 1266 line-height: 1.5; 1267 letter-spacing: 0; 1268 text-transform: none; 1269 text-align: left !important; 1270 color: #33322E; 1271} 1272 1273/* Remove Eurus's native .custom-html ul disc styling for this list only. */ 1274.product-content-container .calista-pdp-benefits .calista-pdp-benefits__list { 1275 display: grid; 1276 grid-template-columns: minmax(0, 1fr); 1277 row-gap: 6px; 1278 width: 100%; 1279 margin: 0 !important; 1280 padding: 0 !important; 1281 list-style: none !important; 1282} 1283 1284/* Keep wrapped lines aligned with their text, not beneath the checkmark. */ 1285.product-content-container .calista-pdp-benefits .calista-pdp-benefits__item { 1286 box-sizing: border-box; 1287 display: grid; 1288 grid-template-columns: 16px minmax(0, 1fr); 1289 column-gap: 8px; 1290 align-items: start; 1291 min-width: 0; 1292 margin: 0 !important; 1293 padding: 0 !important; 1294 border: 0; 1295 list-style: none !important; 1296 font: inherit; 1297 color: inherit; 1298 text-align: left !important; 1299} 1300 1301/* Decorative SVG: not a checkbox, link, or additional focus target. */ 1302.product-content-container .calista-pdp-benefits .calista-pdp-benefits__check { 1303 display: block !important; 1304 width: 16px !important; 1305 height: 16px !important; 1306 margin: 0.15em 0 0; 1307 padding: 0; 1308 color: inherit; 1309 fill: none; 1310} 1311 1312.product-content-container .calista-pdp-benefits .calista-pdp-benefits__text { 1313 display: block; 1314 min-width: 0; 1315 font: inherit; 1316 font-weight: 400 !important; 1317 color: inherit; 1318 white-space: normal;
1319 overflow-wrap: anywhere; 1320} 1321 1322/* The fallback reuses the existing summary data, not newly written copy. */ 1323.product-content-container .calista-pdp-benefits .calista-pdp-benefits__fallback { 1324 margin: 0; 1325 padding: 0; 1326 font: inherit; 1327 color: inherit; 1328} 1329.product-content-container .calista-pdp-benefits .calista-pdp-benefits__fallback > :first-child, 1330.product-content-container .calista-pdp-benefits .calista-pdp-benefits__fallback p:first-child { 1331 margin-top: 0; 1332} 1333.product-content-container .calista-pdp-benefits .calista-pdp-benefits__fallback > :last-child, 1334.product-content-container .calista-pdp-benefits .calista-pdp-benefits__fallback p:last-child { 1335 margin-bottom: 0; 1336} 1337 1338@media (min-width: 768px) { 1339 .product-content-container .calista-pdp-benefits { 1340 font-size: var(--base-font-size, 0.875rem); 1341 } 1342} 1343/* -- END PDP Benefit Bullets -- */ 1344 1345/* -- Product Title -- */ 1346/* Casing rule: never force uppercase. Titles render as authored 1347 (title case). text-transform:none neutralizes any theme default. */ 1348.product__title, 1349.product-title { 1350 text-transform: none !important; 1351 letter-spacing: 0; 1352 font-size: 1.1rem !important; 1353} 1354@media (min-width: 768px) { 1355 .product__title, 1356 .product-title { 1357 font-size: 1.4rem !important; 1358 } 1359} 1360/* -- END Product Title -- */ 1361 1362/* -- Price -- */ 1363[id^="price-"].flex { 1364 font-size: 0.9rem !important; 1365} 1366@media (min-width: 768px) { 1367 [id^="price-"].flex { 1368 font-size: 1.25rem !important; 1369 } 1370} 1371/* -- END Price -- */ 1372 1373/* -- Shop Pay installments: centered full-width text + compact trust spacing -- 1374 The existing calista-custom.js moves this node below Buy buttons. 1375 Keep Shopify's original payment component, wording, logo, and disclosure. 1376 1377 Replace the old visual scale(0.85) with real font sizing. A transform 1378 shrinks an already-laid-out box: it does not give the words more room 1379 to fit on one line and leaves the original layout height behind. 1380 1381 The HTML block emits a <style> element BEFORE its .custom-html wrapper. 1382 The trust-spacing selector must therefore tolerate an intervening style 1383 node. Use a following-sibling match, not an immediate + match. 1384 1385 Center the wrapper, installment form, and component host on ALL screen sizes. 1386 The center reference is the full purchase column, including the quantity control. 1387 Typography: 12px desktop, 11px mobile. Leave natural wrapping enabled for 1388 longer Shopify messages and accessibility rather than clipping text. */ 1389.product-content-container .shopify-payment-terms { 1390 --cal-installment-font-size: 12px; 1391 --cal-installment-line-height: 1.4; 1392 box-sizing: border-box; 1393 display: block !important; 1394 flex: 0 0 100% !important; 1395 width: 100% !important; 1396 max-width: 100% !important; 1397 min-width: 0 !important; 1398 height: auto !important; 1399 min-height: 0 !important; 1400 padding: 0 !important; 1401 transform: none !important; 1402 scale: none !important; 1403 font-family: inherit !important; 1404 font-size: var(--cal-installment-font-size) !important; 1405 font-weight: 400 !important; 1406 line-height: var(--cal-installment-line-height) !important; 1407 letter-spacing: 0 !important; 1408 text-transform: none !important; 1409 text-align: center !important; 1410 white-space: normal !important; 1411 overflow: visible !important; 1412} 1413 1414/* Remove both the product form's and the component host's outside spacing. 1415 Font sizing on the host can inherit into the payment component's shadow 1416 DOM; no private shadow selectors, content rewriting, or custom logo. */ 1417.product-content-container .shopify-payment-terms .installment, 1418.product-content-container .shopify-payment-terms shopify-payment-terms { 1419 box-sizing: border-box; 1420 display: block; 1421 width: 100% !important; 1422 max-width: 100% !important; 1423 min-width: 0 !important; 1424 height: auto !important; 1425 min-height: 0 !important; 1426 margin: 0 !important; 1427 padding: 0 !important; 1428 transform: none !important; 1429 scale: none !important; 1430 font-family: inherit !important; 1431 font-size: var(--cal-installment-font-size) !important; 1432 font-weight: 400 !important; 1433 line-height: var(--cal-installment-line-height) !important; 1434 letter-spacing: 0 !important; 1435 text-transform: none !important; 1436 text-align: center !important; 1437 white-space: normal !important; 1438 overflow: visible !important; 1439} 1440 1441/* Respect Shopify's explicit hidden state. */ 1442.product-content-container .shopify-payment-terms shopify-payment-terms[hidden], 1443.product-content-container .shopify-payment-terms[hidden] { 1444 display: none !important; 1445} 1446 1447.product-content-container .x-block-buy-buttons:has(+ .shopify-payment-terms) { 1448 margin-bottom: 0 !important; 1449} 1450 1451.product-content-container .x-block-buy-buttons + .shopify-payment-terms { 1452 margin-top: 4px !important; 1453 margin-bottom: 44px !important; /* preserve pages WITHOUT the new trust line */ 1454} 1455 1456/* The trust component supplies the ONLY gap below installments (8px). 1457 ~ still matches when Eurus inserts a <style> tag between these blocks. */ 1458.product-content-container .shopify-payment-terms:has(~ .custom-html .calista-pdp-trust:not([hidden])) { 1459 margin-bottom: 0 !important; 1460 padding-bottom: 0 !important; 1461} 1462 1463@media (max-width: 767px) { 1464 .product-content-container .shopify-payment-terms { 1465 --cal-installment-font-size: 11px; 1466 } 1467} 1468/* -- END Shop Pay installments -- */ 1469 1470/* -- PDP Trust Messages: native HTML block + product metaobjects -- 1471 Data: custom.pdp_trust_messages (list of PDP Trust Message references). 1472 Visible field: short_label. 1473 Add a NEW HTML block immediately after Buy buttons on each used PDP 1474 template. Its Custom HTML setting supports Liquid in this Eurus export. 1475 Keep the existing Best for HTML block unchanged. 1476
1477 All selectors are scoped to the new trust component or its immediate 1478 neighbors. They do not resize product-feature icons or alter checkout. 1479 The existing Shop Pay script can continue inserting installments between 1480 Buy buttons and this native HTML block. No new JavaScript is required. */ 1481 1482/* Remove the native HTML block's mb-4 / md:mb-6 spacing for THIS block only. */ 1483.product-content-container .custom-html:has(.calista-pdp-trust) { 1484 width: 100% !important; 1485 min-width: 0; 1486 margin: 0 !important; 1487 padding: 0 !important; 1488} 1489 1490/* Hide the native wrapper too when no accessible, nonblank labels exist. */ 1491.product-content-container .custom-html:has(.calista-pdp-trust[hidden]), 1492.product-content-container .calista-pdp-trust[hidden] { 1493 display: none !important; 1494} 1495 1496/* Typography and spacing knobs for this component only. 1497 V3: regular 400 weight (previously 500); centered at every breakpoint. */ 1498.product-content-container .calista-pdp-trust { 1499 --cal-trust-font-size: 13px; 1500 --cal-trust-font-weight: 400; 1501 --cal-trust-gap-top: 8px; 1502 --cal-trust-gap-bottom: 16px; 1503 --cal-trust-item-padding: 10px; 1504 box-sizing: border-box; 1505 width: 100%; 1506 margin: 0; 1507 padding: var(--cal-trust-gap-top) 0 var(--cal-trust-gap-bottom); 1508 font-family: inherit; 1509 font-size: var(--cal-trust-font-size); 1510 font-weight: var(--cal-trust-font-weight) !important; 1511 line-height: 1.45; 1512 letter-spacing: 0; 1513 text-transform: none; 1514 text-align: center !important; 1515 color: #33322E; 1516} 1517 1518/* Override Eurus's native '.custom-html ul { list-style: disc; }'. 1519 Keep entries on one row; individual labels can wrap at narrow widths. */ 1520.product-content-container .calista-pdp-trust .calista-pdp-trust__list { 1521 display: flex; 1522 align-items: center; 1523 justify-content: center !important; 1524 flex-wrap: nowrap; 1525 gap: 0; 1526 width: 100%; 1527 margin: 0 !important; 1528 padding: 0 !important; 1529 list-style: none !important; 1530} 1531 1532.product-content-container .calista-pdp-trust .calista-pdp-trust__item { 1533 box-sizing: border-box; 1534 display: block; 1535 flex: 0 1 auto; 1536 min-width: 0; 1537 max-width: 100%; 1538 margin: 0 !important; 1539 padding: 0 var(--cal-trust-item-padding) !important; 1540 list-style: none !important; 1541 font: inherit; 1542 font-weight: var(--cal-trust-font-weight) !important; 1543 color: inherit; 1544 white-space: normal; 1545 overflow-wrap: anywhere; 1546 text-align: center !important; 1547} 1548 1549/* Borders separate the actual rendered labels, with no dangling pipes. */ 1550.product-content-container .calista-pdp-trust .calista-pdp-trust__item + .calista-pdp-trust__item { 1551 border-inline-start: 1px solid rgba(51, 50, 46, 0.3); 1552} 1553 1554/* Also handle a PDP with no installment node between Buy buttons and trust. 1555 Match through the HTML block's preceding inline <style> element. */ 1556.product-content-container .x-block-buy-buttons:has(~ .custom-html .calista-pdp-trust:not([hidden])) { 1557 margin-bottom: 0 !important; 1558} 1559 1560/* Prevent the existing negative mobile feature-icon margin pulling the next 1561 icon block upward into the trust text. Tolerate the theme's style node. */ 1562.product-content-container .custom-html:has(.calista-pdp-trust:not([hidden])) + .x-block-feature-icons, 1563.product-content-container .custom-html:has(.calista-pdp-trust:not([hidden])) + style + .x-block-feature-icons { 1564 margin-top: 0 !important; 1565} 1566 1567@media (max-width: 767px) { 1568 .product-content-container .calista-pdp-trust { 1569 --cal-trust-font-size: 12px; 1570 --cal-trust-gap-top: 8px; 1571 --cal-trust-gap-bottom: 14px; 1572 --cal-trust-item-padding: 6px; 1573 } 1574} 1575/* -- END PDP Trust Messages -- */ 1576 1577 1578/* -- Breadcrumbs -- */ 1579.x-block-breadcrumb { 1580 font-size: 12px; 1581 font-weight: 400; 1582 text-transform: none; 1583 letter-spacing: 0; 1584} 1585.x-block-breadcrumb .nav-link { 1586 color: #6b6960 !important; 1587} 1588.x-block-breadcrumb .nav-link:hover { 1589 color: #33322E !important; 1590} 1591.x-block-breadcrumb .breadcrumb__divider { 1592 color: #6b6960 !important; 1593} 1594/* Shorten: drop Home (+divider) and the trailing product name (+divider), 1595 leaving "All products > [Collection]". Position-based so it holds whether 1596 the collection crumb is native (collection entry) or injected by 1597 calista-custom.js -> injectBreadcrumbCollection (direct/homepage entry). */ 1598.x-block-breadcrumb > :first-child, /* Home link */ 1599.x-block-breadcrumb >
1599 :nth-child(2), /* divider after Home */ 1600.x-block-breadcrumb > :nth-last-child(2), /* divider before product title */ 1601.x-block-breadcrumb > :last-child { /* current product title */ 1602 display: none !important; 1603} 1604/* -- END Breadcrumbs -- */ 1605 1606/* -- Sticky ATC (full-width bar): white bar, charcoal button -- 1607 Inverted from the prior charcoal/pink treatment. Native bar background is 1608 --background-color; pinned to white with a thin brand divider on top so it 1609 separates cleanly over page content (the native drop shadow stays). Text = 1610 charcoal. Variant <select> = charcoal text on a sharp, divider-bordered field 1611 (Fenty-style). Button = charcoal fill / white label, sharp; the native 1612 button-solid animated fill overlay (::before + .button-text::after) is 1613 disabled so the flat charcoal fill + white label render cleanly (same pattern 1614 as the cards / comparison table). */ 1615[id^="sticky-add-to-cart-"] { 1616 background: #FFFFFF !important; 1617 border-top: 1px solid #e9e8e8 !important; /* brand divider (knob) */ 1618} 1619[id^="sticky-add-to-cart-"] .h6, 1620[id^="sticky-add-to-cart-"] p, 1621[id^="sticky-add-to-cart-"] .pricearea { 1622 color: #33322E !important; 1623} 1624/* Variant dropdown(s) -> sharp, charcoal (native selector, styled) */ 1625[id^="sticky-add-to-cart-"] select { 1626 border-radius: 0 !important; 1627 border-color: #c4c3c0 !important; 1628 color: #33322E !important; 1629 background: transparent !important; 1630} 1631[id^="sticky-add-to-cart-"] select:focus { 1632 border-color: #33322E !important; 1633} 1634[id^="sticky-add-to-cart-"] .select span { 1635 color: #33322E !important; /* caret glyph in the select */ 1636} 1637/* ATC button -> charcoal fill, white label, sharp */ 1638[id^="sticky-add-to-cart-"] .add_to_cart_button { 1639 border-radius: 0 !important; 1640 background: #33322E !important; 1641 letter-spacing: 0.02em; 1642 text-transform: none; 1643 font-size: 11px; 1644 font-weight: 500; 1645} 1646[id^="sticky-add-to-cart-"] .add_to_cart_button, 1647[id^="sticky-add-to-cart-"] .add_to_cart_button .x-atc-text, 1648[id^="sticky-add-to-cart-"] .add_to_cart_button .button-text { 1649 color: #FFFFFF !important; 1650} 1651[id^="sticky-add-to-cart-"] .add_to_cart_button:hover { 1652 background: #45433E !important; /* slightly lifted charcoal */ 1653 color: #FFFFFF !important; 1654} 1655/* kill the native button-solid animated fill overlay so the flat fill shows */ 1656[id^="sticky-add-to-cart-"] .add_to_cart_button.button-solid::before, 1657[id^="sticky-add-to-cart-"] .add_to_cart_button.button-solid .button-text::after { 1658 display: none !important; 1659} 1660/* -- END Sticky ATC (full-width bar) -- */ 1661 1662/* -- Sticky ATC: star rating (desktop only) -- 1663 Rendered inside the bar by the product-template.liquid fork (grep marker 1664 "Calista: sticky ATC rating"), via {% render 'review-product' %} placed 1665 OUTSIDE the product link (mirrors card-product-list-layout -> no nested 1666 anchors). The injected wrapper carries `hidden md:flex`, so it is desktop 1667 only. It sits inline to the right of the title/price and hugs that cluster; 1668 margin-right:auto pushes the variant dropdown to the far right. The review 1669 widget's default block margin/width are neutralized so it centers in the bar. */ 1670.x-sticky-rating-calista { 1671 margin-left: 20px !important; 1672 margin-right: auto !important; 1673} 1674.x-sticky-rating-calista .x-review-product { 1675 width: auto !important; 1676 margin: 0 !important; 1677} 1678/* -- END Sticky ATC: star rating -- */ 1679 1680/* -- Sticky ATC: sibling selector (native product_sibling, forced dropdown) -- 1681 The bar reuses the native sibling engine as a dropdown via the 1682 product-template.liquid fork (PDP keeps its button swatches). This strips the 1683 native block's big margins + full width, hides its "Option: value" label (the 1684 <select> already shows the current value), and caps the width so long shade 1685 names truncate cleanly. The <select> itself inherits the sharp/charcoal field 1686 styling from the [id^="sticky-add-to-cart-"] select rules above. Shows on both 1687 breakpoints (matches the native variant dropdown), unlike the desktop-only 1688 rating. */ 1689.x-sticky-sibling-calista { 1690 display: flex; 1691 align-items: center; 1692} 1693@media (min-width: 768px) { 1694 .x-sticky-sibling-calista { margin-right: 12px; } /* gap to the variant dropdown */ 1695} 1696.x-sticky-sibling-calista .x-block-product-sibling { 1697 margin: 0 !important; 1698 width: auto !important; 1699} 1700.x-sticky-sibling-calista .x-block-product-sibling > p { /* "Shade: â¦" label */ 1701 display: none !important; 1702} 1703.x-sticky-sibling-calista .x-block-product-sibling > div { 1704 margin-top: 0 !important; 1705} 1706.x-sticky-sibling-calista .x-block-product-sibling select { 1707 margin: 0 !important; 1708 width: 100% !important; 1709 min-width: 120px !important; 1710 max-width: 200px !important; 1711 text-overflow: ellipsis; 1712} 1713/* -- END Sticky ATC: sibling selector -- */ 1714 1715/* -- Sticky ATC: hide the mobile detail toggle caret -- 1716 openDetailOnMobile now defaults ON (sticky-atc.js fork), so the detail area 1717 (title/price + sibling/variant dropdowns) is always shown on mobile and the 1718 tap-to-expand caret is unnecessary. Hide ONLY that toggle - it's a direct 1719 child of the bar's row wrapper - so the dropdown carets deeper inside (also 1720 span.absolute) are untouched. */ 1721[id^="sticky-add-to-cart-"] > div > span.absolute { 1722 display: none !important; 1723} 1724/* -- END Sticky ATC: hide toggle caret -- */ 1725 1726/* -- Sticky ATC Mobile: dropdown(s) + button only (no image/title/price) -- 1727 Spec: mobile bar shows NO product image, title, or price. If the product has 1728 no variants and no siblings, show just the Add-to-cart button; if it has a 1729 variant or sibling selector, show the dropdown(s) + button on one row. 1730 1731 Detection: the ONLY <select> elements in the bar are the variant/sibling 1732 dropdowns (quantity is a number input), so :has(select) distinguishes the two 1733 cases with no per-product logic. 1734 1735 Structure: the bar is [id] > div (row A) > { .grow (detail B) , xProductCart 1736 (button C) }. B holds the product link (image+title+price) + rating + 1737 dropdown(s); we hide the link + rating on mobile so B carries only dropdowns. */ 1738@media (max-width: 767px) { 1739 /* Remove image / title / price everywhere in the mobile bar */ 1740 [id^="sticky-add-to-cart-"] a[href] { 1741 display: none !important;
1741 /* product link = image + title + price */ 1742 } 1743 [id^="sticky-add-to-cart-"] .product_form [id^="price-sticky-"] { 1744 display: none !important; /* price rendered next to the button */ 1745 } 1746 1747 /* ---- CASE 1: no variants & no siblings (no <select>) -> button only ---- */ 1748 [id^="sticky-add-to-cart-"]:not(:has(select)) .add_to_cart_button, 1749 [id^="sticky-add-to-cart-"]:not(:has(select)) [id^="x-atc-button-sticky-"], 1750 [id^="sticky-add-to-cart-"]:not(:has(select)) .product_form, 1751 [id^="sticky-add-to-cart-"]:not(:has(select)) .sticky_add_to_cart form { 1752 width: 100% !important; 1753 } 1754 1755 /* ---- CASE 2: has a variant or sibling -> dropdown(s) + button, one row ---- */ 1756 /* row-align the bar (native is flex-col on mobile) */ 1757 [id^="sticky-add-to-cart-"]:has(select) > div { 1758 flex-direction: row !important; 1759 align-items: center !important; 1760 gap: 10px !important; 1761 } 1762 /* detail wrapper (now just the dropdowns) grows; lay dropdowns in a wrapping row */ 1763 [id^="sticky-add-to-cart-"]:has(select) > div > .grow { 1764 flex: 1 1 auto !important; 1765 min-width: 0 !important; 1766 display: flex !important; 1767 flex-direction: row !important; 1768 flex-wrap: wrap !important; 1769 align-items: center !important; 1770 gap: 8px !important; 1771 } 1772 /* sibling cell stretches to fill; its select goes full-width */ 1773 [id^="sticky-add-to-cart-"]:has(select) > div > .grow > .x-sticky-sibling-calista { 1774 flex: 1 1 auto !important; 1775 min-width: 0 !important; 1776 margin: 0 !important; 1777 } 1778 .x-sticky-sibling-calista .x-block-product-sibling, 1779 .x-sticky-sibling-calista .x-block-product-sibling select { 1780 width: 100% !important; 1781 max-width: none !important; 1782 } 1783 /* button stays compact on the right */ 1784 [id^="sticky-add-to-cart-"]:has(select) .product_form, 1785 [id^="sticky-add-to-cart-"]:has(select) .sticky_add_to_cart form { 1786 width: auto !important; 1787 flex: 0 0 auto !important; 1788 flex-grow: 0 !important; 1789 } 1790 [id^="sticky-add-to-cart-"]:has(select) .add_to_cart_button, 1791 [id^="sticky-add-to-cart-"]:has(select) [id^="x-atc-button-sticky-"] { 1792 width: auto !important; 1793 min-width: 120px !important; 1794 } 1795} 1796/* -- END Sticky ATC Mobile -- */ 1797 1798/* -- Yotpo Rating Block -- */ 1799.star-container.yotpo-sr-star-full, 1800.star-container.yotpo-sr-star-half, 1801.star-container.yotpo-sr-star-empty { 1802 width: 12px !important; 1803 height: 12px !important; 1804} 1805.yotpo-sr-bottom-line-button span[style*="height: 28px"] { 1806 height: 18px !important; 1807} 1808.yotpo-sr-bottom-line-text { 1809 font-size: 12px !important; 1810 line-height: 18px !important; 1811 font-family: 'Barlow', Helvetica, Arial, sans-serif !important; 1812} 1813/* -- END Yotpo Rating Block -- */ 1814 1815/* -- Sibling Best For -- */ 1816.x-sibling-best-for { 1817 font-size: 11px; 1818 font-weight: 400; 1819 color: #33322E; 1820 margin-top: -8px; 1821} 1822@media (min-width: 768px) { 1823 .x-sibling-best-for { 1824 font-size: 12px; 1825 margin-top: -16px; 1826 } 1827} 1828/* -- END Sibling Best For -- */ 1829 1830/* -- Sibling Color Swatches - full bleed -- */ 1831.color-watches.swatch-medium { 1832 border: 2px solid transparent !important; 1833 box-shadow: none !important; 1834 padding: 0 !important; 1835} 1836.color-watches.swatch-medium::before { 1837 inset: 0 !important; 1838 border-radius: 50% !important; 1839 border: none !important; 1840} 1841.input-radio:checked + .color-watches.swatch-medium { 1842 border-color: #33322E !important; 1843 outline: none !important; 1844} 1845/* -- END Sibling Color Swatches -- */ 1846 1847/* -- Mobile Gallery: hide arrows, show dots -- */ 1848@media (max-width: 767px) { 1849 .product-media-container .splide__arrows { 1850 display: none !important; 1851 } 1852 .product-media-container .splide__pagination { 1853 display: flex !important; 1854 } 1855} 1856/* -- END Mobile Gallery -- */ 1857 1858/* -- Mobile Gallery Pagination Dots -- */ 1859/* (dot DOM is built by calista-custom.js - see that file) */ 1860@media (max-width: 767px) { 1861 .product-media-container { 1862 position: relative !important; 1863 } 1864 .x-calista-dots { 1865 position: absolute !important; 1866 bottom: 48px !important; 1867 left: 50% !important; 1868 transform: translateX(-50%) !important; 1869 top: auto !important; 1870 display: flex !important; 1871 justify-content: center;
1872 align-items: center; 1873 gap: 6px; 1874 z-index: 10; 1875 pointer-events: none; 1876 } 1877 .x-calista-dot { 1878 width: 6px; 1879 height: 6px; 1880 border-radius: 50%; 1881 background: rgba(51,50,46,0.4); 1882 border: none; 1883 padding: 0; 1884 cursor: pointer; 1885 pointer-events: auto; 1886 transition: background 0.2s ease; 1887 } 1888 .x-calista-dot.is-active { 1889 background: #33322E; 1890 } 1891} 1892/* -- END Mobile Gallery Pagination Dots -- */ 1893 1894/* -- Feature Icons - shared wrapper + padding -- */ 1895.x-block-feature-icons { 1896 border-top: 1px solid var(--light); 1897 border-bottom: 1px solid var(--light); 1898 padding: 12px 0 !important; 1899 margin-top: -12px !important; 1900 margin-bottom: 12px !important; 1901} 1902@media (min-width: 768px) { 1903 .x-block-feature-icons { 1904 margin-top: 4px !important; 1905 } 1906} 1907.feature-icon-item .pl-3, 1908.feature-icon-item .pr-3, 1909.feature-icon-item .pt-3, 1910.feature-icon-item .pb-3 { 1911 padding: 4px 6px !important; 1912} 1913/* -- END Feature Icons - shared -- */ 1914 1915/* -- Feature Icons - mobile spacing -- 1916 On mobile the badges stretch to fill the row (native .feature-icon-item has 1917 flex-1), so shrinking the gap alone does nothing - the items just re-expand to 1918 fill the freed space. Stop them stretching so they size to their content; the 1919 row is already justify-center on mobile, so they pack to the middle and the 1920 column-gap below then controls the actual space between badges. */ 1921@media (max-width: 767px) { 1922 .x-block-feature-icons .feature-icon-item { 1923 flex: 0 0 auto !important; /* stop each badge filling the row */ 1924 width: auto !important; 1925 min-width: 0 !important; 1926 } 1927 .x-block-feature-icons { 1928 column-gap: 4px !important; /* <- space between badges on mobile */ 1929 row-gap: 10px !important; /* <- space if they wrap to a 2nd row */ 1930 } 1931} 1932/* -- END Feature Icons - mobile spacing -- */ 1933 1934/* -- Trust Strip - icon-bearing items only -- 1935 :has() scopes this to items that actually contain an icon, so the 1936 text-only attribute columns (BENEFITS / SKIN TYPES / SCENT PROFILE) 1937 in the same block stay left-aligned and untouched. Matches the 1938 warranty / returns / shipping design: centered, charcoal, 40px. */ 1939.feature-icon-item:has([class*="size-icon-"]) { 1940 text-align: center !important; 1941} 1942.feature-icon-item:has([class*="size-icon-"]) .flex.justify-start { 1943 justify-content: center !important; 1944} 1945.feature-icon-item [class*="size-icon-"] { 1946 color: #33322E !important; 1947} 1948.feature-icon-item:has([class*="size-icon-"]) [class*="title--"] { 1949 font-size: 14px !important; 1950 font-weight: 500 !important; 1951 line-height: 1.3 !important; 1952 letter-spacing: 0 !important; 1953 color: #33322E !important; 1954 text-align: center !important; 1955 margin-top: 6px !important; 1956} 1957/* -- END Trust Strip - icon-bearing items -- */ 1958 1959 1960/* -- PDP Video Shopping: block heading size -- 1961 Match the Description / Benefits / Features tab headers using Eurus's 1962 existing responsive body-size variables, not the previous fixed 16px. 1963 With the exported text_base_size setting of 100: 12.6px mobile, 14px desktop 1964 at the standard 16px browser root size. Respects changes to theme text size. 1965 Scope to the Video shopping block inside Product information only. 1966 Keep the existing brand font, weight, color, alignment, and spacing. 1967 Does not change tab headers, captions, popup headings, or other sections. */ 1968.product-content-container .x-block-shoppable-video > .x-block-heading { 1969 font-size: var(--base-font-size-mobile, 0.7875rem) !important; 1970} 1971@media (min-width: 768px) { 1972 .product-content-container .x-block-shoppable-video > .x-block-heading { 1973 font-size: var(--base-font-size, 0.875rem) !important; 1974 } 1975} 1976/* -- END PDP Video Shopping: block heading size -- */ 1977 1978/* -- PDP Video Shopping: per-video caption -- 1979 Visible label injected below each shoppable video by calista-custom.js 1980 (sourced from the block's "Video alt text" field). */ 1981.x-video-caption { 1982 margin-top: 8px; 1983 text-align: center; 1984 font-size: 13px; 1985 font-weight: 500; 1986 line-height: 1.3; 1987 color: #33322E; 1988 text-transform: none; 1989} 1990/* -- END PDP Video Shopping: per-video caption -- */ 1991 1992/* ============================================================ 1993 COLLECTION 1994 ============================================================ */ 1995
1996/* -- Mobile: page gutter 8px (Eurus default ~20px) -- 1997 NOTE: .x-pgw.page-width is SITEWIDE - this narrows the mobile gutter 1998 on every page. The collection grid gets a wider 16px gutter via the 1999 override block below (full-bleed was retired with the Shop Now button). */ 2000@media screen and (max-width: 767px) { 2001 .x-pgw.page-width { 2002 padding-left: 8px; 2003 padding-right: 8px; 2004 } 2005} 2006/* -- END Mobile: page gutter 8px -- */ 2007 2008/* -- Mobile: collection grid gutter 16px -- 2009 With full-bleed removed, the grid would inherit the sitewide 8px gutter; 2010 bump only the collection grid wrapper to 16px for the clean, inset Fenty 2011 look (cards inset from the edge with a gap between columns). Other pages 2012 keep 8px. */ 2013@media screen and (max-width: 767px) { 2014 .x-pgw.page-width:has(#items-grid) { 2015 padding-left: 16px !important; 2016 padding-right: 16px !important; 2017 } 2018} 2019/* -- END Mobile: collection grid gutter 16px -- */ 2020 2021/* -- Collection filter/sort bar: drop top border (de-bar) -- 2022 Eurus boxes the toolbar in border-y; drop the top so only the bottom 2023 line remains, reading as a divider above the grid. */ 2024#FacetsWrapperDesktop { 2025 border-top: 0 !important; 2026} 2027/* -- END Collection filter/sort bar -- */ 2028 2029/* -- Hide list/grid view toggle -- */ 2030button[aria-label="list layout"], 2031button[aria-label="grid layout"] { 2032 display: none !important; 2033} 2034/* -- END Hide list/grid view toggle -- */ 2035 2036/* -- Collection card: hide Yotpo review count (stars only) -- 2037 Spec: card rating shows stars with NO count. Yotpo renders the count 2038 client-side, so this hides just the count text beside the stars on cards. 2039 PDP rating still shows the count (and calista-custom.js still formats its 2040 thousands separator there). */ 2041.card-product .yotpo-sr-bottom-line-text { 2042 display: none !important; 2043} 2044/* -- END Collection card review count -- */ 2045 2046 2047/* ============================================================ 2048 CARDS - Fenty-style clean card. 2049 Order: image -> title -> stars (no count) -> 2050 sibling/variant name -> count line -> price -> 2051 native quick-add button (filled). 2052 Mobile: button full-width at card bottom. 2053 Desktop: button reveals on image hover. 2054 ============================================================ */ 2055 2056/* -- Card: consistent text color (charcoal across the whole card) -- 2057 Title, rating, name/count lines, and price all render in charcoal; the 2058 title's native hover->link-color is overridden so color stays uniform. */ 2059.card-product .x-card-title, 2060.card-product .x-card-title:hover, 2061.card-product .x-review-product, 2062.card-product .cal-card-variant-name, 2063.card-product .cal-card-variant-count, 2064.card-product .x-card-price, 2065.card-product .x-card-price * { 2066 color: #33322E !important; 2067} 2068/* -- END Card: consistent text color -- */ 2069 2070/* -- Card: sibling/variant name + count lines (Fenty-style) -- 2071 Rendered by snippets/card-sibling-swatch-calista.liquid between the rating 2072 and price. Charcoal, sentence case, tight. Count line ("4 Colors") sits just 2073 under the value name ("Floral"). Single-option products emit nothing. */ 2074.card-product .cal-card-variant { 2075 margin: 0 0 8px; 2076 line-height: 1.3; 2077} 2078.card-product .cal-card-variant-name { 2079 font-size: 13px; 2080 color: #33322E; 2081} 2082.card-product .cal-card-variant-count { 2083 font-size: 13px; 2084 color: #33322E; 2085} 2086/* -- END Card: sibling/variant name + count lines -- */ 2087 2088/* -- Card: native quick-add button -> Calista filled CTA -- 2089 Replaces the retired .x-shop-now. Native Quick View settings drive 2090 placement: quickadd_mobile_position=bottom (full-width under the card on 2091 mobile) + quickadd_position=image (slides up on image hover on desktop). 2092 This styles BOTH the mobile bottom button (.card-info.bottom_atc) and the 2093 desktop on-image button (.quick-view-container) - both use .button--quickview: 2094 charcoal fill, white text, 1px radius, sentence case. The visible label is 2095 forced to a uniform "Shop Now" via font-size:0 + ::after (structure-agnostic); 2096 the button keeps its native aria-label for assistive tech. We also neutralize 2097 the button-solid ::before / .button-text::after fill overlay (same pattern as 2098 the comparison table) so the fill + swapped label render cleanly. */ 2099.card-product .button--quickview.button-solid { 2100 background: #33322E !important; 2101 color: #FFFFFF !important; 2102 border: 1px solid #33322E !important; 2103 border-radius: 1px !important; 2104 text-transform: none !important; 2105 letter-spacing: 0.04em !important; 2106 font-weight: 400 !important; 2107 width: 100% !important; 2108 height: auto !important; /* defeat h-full so it doesn't stretch tall */ 2109 min-height: 0 !important; 2110 line-height: 1.2 !important; /* tighten so the fill hugs the label */ 2111 padding-top: 7px !important; /* compact internal padding (was pt-2.5 ~10px) */ 2112 padding-bottom: 7px !important; 2113 font-size: 0 !important; /* blank native label text; ::after supplies ours */ 2114} 2115.card-product .button--quickview.button-solid:hover, 2116.card-product .button--quickview.button-solid:focus { 2117 background: #45433E !important; /* slightly lifted charcoal */ 2118 color: #FFFFFF !important; 2119} 2120.card-product .button--quickview.button-solid::before, 2121.card-product .button--quickview.button-solid .button-text::after { 2122 display: none !important; /* kill the animated fill overlay */ 2123} 2124.card-product .button--quickview.button-solid::after {
2125 content: "SHOP NOW"; 2126 font-size: 11px; 2127 font-weight: 400; 2128 letter-spacing: 0.04em; 2129} 2130/* keep the bottom button's form/wrapper from forcing height (tall-button fix) */ 2131.card-product .card-info.bottom_atc, 2132.card-product .card-info.bottom_atc .form, 2133.card-product .card-info.bottom_atc form { 2134 height: auto !important; 2135} 2136/* -- END Card: native quick-add button -- */ 2137 2138/* -- Card: hide the native quick-VIEW launcher (magnifier) -- 2139 Spec 5/6: no magnifier icon on the image, desktop or mobile - the Shop Now 2140 quick-add already covers it. The launcher is distinguished by 2141 .label-btn-quickview (the quick-add Shop Now button uses .button-solid, which 2142 is why the styling above is scoped to .button-solid only). You can also set 2143 the Quick View section's "Enable quick view" OFF natively; this CSS guarantees 2144 it regardless of that toggle. */ 2145.card-product .label-btn-quickview { 2146 display: none !important; 2147} 2148/* -- END Card: hide quick-view launcher -- */ 2149 2150/* -- Card: equal height + pin Shop Now to the bottom (collection grid) -- 2151 The list-layout snippet (used by the collection grid) builds .card-product as 2152 TWO wrappers: an upper one (image + title/rating/price) and a lower 2153 #x-product-template-... one whose LAST child is the mobile Shop Now button 2154 (it is NOT a .bottom_atc element, which is why margin-auto on that class did 2155 nothing here). So: stretch each .grid-item to the row height, let .card-product 2156 fill it as a flex column, let the lower #x-product-template wrapper grow as a 2157 flex column, and push its last child (the button) down with margin-top:auto. 2158 Buttons then line up across the row no matter which cards have the sibling/count 2159 line. Scoped to #items-grid so other surfaces and list view are untouched. */ 2160#items-grid { 2161 align-items: stretch !important; 2162} 2163#items-grid .grid-item { 2164 display: flex !important; 2165 flex-direction: column !important; 2166} 2167#items-grid .grid-item > .card-product { 2168 flex: 1 1 auto !important; 2169 display: flex !important; 2170 flex-direction: column !important; 2171} 2172#items-grid .grid-item > .card-product > [id^="x-product-template-"] { 2173 flex: 1 1 auto !important; 2174 display: flex !important; 2175 flex-direction: column !important; 2176} 2177#items-grid .grid-item > .card-product > [id^="x-product-template-"] > div:last-child { 2178 margin-top: auto !important; /* the Shop Now button block -> pinned to bottom */ 2179} 2180/* -- END Card: equal height + pin Shop Now to the bottom -- */ 2181 2182/* -- Featured Collection (homepage): pin Shop Now to card bottom (mobile) -- 2183 The homepage Featured Collection renders cards via card-product.liquid inside 2184 a .splide__list slider (section root .x-container-featured-collection) - NOT 2185 #items-grid, so the collection-grid anchor block above doesn't reach it. The 2186 slider already stretches slides to equal height, but the card's detail wrapper 2187 doesn't grow, so the mobile Shop Now (.card-info.bottom_atc, the last child of 2188 #x-product-template) floats up under the price on shorter cards (e.g. ones 2189 without a "3 Sizes" line). Make the card a flex column, let the detail wrapper 2190 grow, and push the Shop Now button down with margin-top:auto. Scoped to this 2191 section + mobile so other card-product carousels (recommendations, etc.) and 2192 desktop are untouched. */ 2193@media (max-width: 767px) { 2194 .x-container-featured-collection .splide__list { 2195 align-items: stretch !important; /* equal-height slides (insurance) */ 2196 } 2197 .x-container-featured-collection .card-product { 2198 display: flex !important; 2199 flex-direction: column !important; 2200 } 2201 .x-container-featured-collection .card-product > [id^="x-product-template-"] { 2202 flex: 1 1 auto !important; 2203 display: flex !important; 2204 flex-direction: column !important; 2205 } 2206 .x-container-featured-collection .card-product .card-info.bottom_atc { 2207 margin-top: auto !important; /* pin Shop Now to the card bottom */ 2208 } 2209} 2210/* -- END Featured Collection: pin Shop Now to card bottom -- */ 2211 2212/* -- Card: align media + copy to a shared left edge -- 2213 The native card insets the copy (.card-info gets pl-5/pr-5 when full-width) 2214 while the image (.x-labels-data) is flush, so they don't share a left edge. 2215 Zero the horizontal padding on both within the collection grid so image, title, 2216 rating, name/count, price, and the Shop Now button all line up to the card edge 2217 (the grid's own gutter provides the margin from the screen). */ 2218#items-grid .card-product .x-labels-data, 2219#items-grid .card-product .card-info { 2220 padding-left: 0 !important; 2221 padding-right: 0 !important; 2222} 2223/* -- END Card: align media + copy -- */ 2224 2225/* -- Featured Collection (homepage): align media + copy to a shared left edge -- 2226 Same misalignment as the collection grid above, but on the full-width homepage 2227 Featured Collection slider (section root .x-container-featured-collection; cards 2228 render via card-product.liquid inside a .splide__list - NOT #items-grid, so the 2229 grid block above doesn't reach it). The image (.x-labels-data) bleeds to the card 2230 edge while the copy (.card-info) keeps its pl-5/pr-5 gutter, so title/rating/
2231 name-count/price sit ~20px in from the image on desktop. Zero the horizontal 2232 padding on both so they share one left edge, mirroring the grid fix. No media 2233 query: keeps image + copy moving together on mobile too. */ 2234.x-container-featured-collection .card-product .x-labels-data, 2235.x-container-featured-collection .card-product .card-info { 2236 padding-left: 0 !important; 2237 padding-right: 0 !important; 2238} 2239/* -- END Featured Collection: align media + copy -- */ 2240 2241/* -- Card: condense vertical spacing (Fenty-style) -- 2242 Eurus spaces every card element with mb-2.5 (~10px) and the info block with 2243 pt-5 (~20px), which reads loose next to the Fenty reference. Tighten the 2244 image->title gap and the gaps between title / rating / sibling-count / price 2245 so the stack is denser. Price bottom margin is 0 because the gap below it (to 2246 the bottom-anchored Shop Now) is handled by the flex anchor, not margin. */ 2247#items-grid .grid-item > .card-product > div:first-child > .card-info { 2248 padding-top: 12px !important; /* image -> title (was pt-5 ~20px) */ 2249} 2250#items-grid .card-product .card__heading, 2251#items-grid .card-product .x-review-product, 2252#items-grid .card-product .cal-card-variant { 2253 margin-bottom: 6px !important; 2254} 2255#items-grid .card-product .cal-card-variant { 2256 margin-top: 0 !important; 2257} 2258#items-grid .card-product .x-card-price { 2259 margin-bottom: 0 !important; 2260} 2261/* -- END Card: condense vertical spacing -- */ 2262 2263/* -- Card image rounding (design system: 1px on card media) -- */ 2264.card-product img, 2265.card-product .splide, 2266.card-product .splide__track, 2267.card-product picture { 2268 border-radius: 1px !important; 2269} 2270/* -- END Card image rounding -- */ 2271 2272 2273/* ============================================================ 2274 COMPARISON TABLE (native product-comparison-table, styled) 2275 Rebuilt on the NATIVE v10 section - no fork. The section handles 2276 the Calista palette via its own color settings (background / 2277 criteria / heading / text / line-border), horizontal scroll, and 2278 object-cover images. This pass adds only the polish native config 2279 can't reach: sharp media, the Calista button, title casing, and 2280 typography sizing. 2281 ============================================================ */ 2282 2283/* Sharp media (design system: 1px radius on card-style images) */ 2284#product-comparison-table .preview-img, 2285#product-comparison-table picture, 2286.section-product-comparison-tablet .preview-img, 2287.section-product-comparison-tablet picture { 2288 border-radius: 1px !important; 2289} 2290 2291/* Product title: never force uppercase; Calista sizing */ 2292#product-comparison-table .product-title, 2293.section-product-comparison-tablet .product-title { 2294 text-transform: none !important; 2295 letter-spacing: 0 !important; 2296 font-size: 13px !important; 2297 line-height: 1.3 !important; 2298} 2299 2300/* Price */ 2301#product-comparison-table .price, 2302.section-product-comparison-tablet .price { 2303 font-size: 13px !important; 2304 font-weight: 500 !important; 2305} 2306 2307/* Criteria (row-label) cells: medium weight, sentence case */ 2308.compare-block [class*="bg-col-"] { 2309 font-weight: 500 !important; 2310 text-transform: none !important; 2311 letter-spacing: 0 !important; 2312} 2313 2314/* "View detail" button -> Calista card-ATC aesthetic: 2315 charcoal fill, white text, sharp, sentence case, compact (not full width). */ 2316.compare-button-block .button, 2317.button-block a.button { 2318 display: inline-block !important; 2319 width: auto !important; 2320 background: #33322E !important; 2321 color: #FFFFFF !important; 2322 border: 1px solid #33322E !important; 2323 border-radius: 1px !important; 2324 text-transform: none !important; 2325 letter-spacing: 0.02em !important; 2326 font-size: 12px !important; 2327 font-weight: 500 !important; 2328 padding: 9px 22px !important; 2329 transition: background-color 0.15s ease, color 0.15s ease !important; 2330} 2331/* Eurus fills button-solid hover via an animated ::before overlay (+ a 2332 .button-text::after), which sits on top of the <a> - so a plain 2333 background:hover never shows (the label recolors, the fill doesn't). 2334 Disable that animation on these buttons (mirrors .disable-btn-animation) 2335 so the brand hover colors apply directly. */ 2336#product-comparison-table .compare-button-block .button.button-solid::before, 2337#product-comparison-table .button-block .button.button-solid::before, 2338.compare-button-block .button.button-solid::before, 2339.button-block .button.button-solid::before { 2340 display: none !important; 2341} 2342#product-comparison-table .compare-button-block .button.button-solid:hover .button-text::after, 2343#product-comparison-table .button-block .button.button-solid:hover .button-text::after, 2344.compare-button-block .button.button-solid:hover .button-text::after, 2345.button-block .button.button-solid:hover .button-text::after { 2346 display: none !important; 2347} 2348#product-comparison-table .compare-button-block .button:hover, 2349#product-comparison-table .button-block a.button:hover, 2350.compare-button-block .button:hover, 2351.button-block a.button:hover { 2352 background: #FADCD4 !important; 2353 color: #33322E !important; 2354} 2355#product-comparison-table .compare-button-block .button:hover *, 2356#product-comparison-table .button-block a.button:hover *, 2357.compare-button-block .button:hover *, 2358.button-block a.button:hover * { 2359 color: #33322E !important; 2360} 2361 2362/* Image-metafield rows: rendered as <img class="x-compare-img"> by the 2363 forked card-product-compare.liquid (native emits the raw GID). Tidy tile. */ 2364.metafield-block .x-compare-img { 2365 display: block; 2366 margin: 0 auto; 2367 width: 100%; 2368 max-width: 160px; 2369 height: auto; 2370 border-radius: 1px; 2371} 2372 2373/* Row labels injected into each cell for the mobile column layout (below). 2374 Hidden by default - on desktop the row structure supplies the labels. */ 2375.x-compare-m-label { 2376 display: none; 2377} 2378 2379/* Mobile: rebuild as 9.10-style stacked COLUMNS instead of the native rows. 2380 Native renders per-product source columns (.section-product-comparison-tablet, 2381 each a full vertical stack) as siblings of the row structure inside 2382 #product-comparison-table, and only copies their HTML into the rows - the 2383 columns survive intact. We hide the row structure + native accordion and 2384 reveal the source columns side by side (2-up, horizontal scroll).
2385 Flush dividers are handled by a shared min-height on wrap-prone cells 2386 (NOT subgrid - subgrid reordered the cells because the parent rows 2387 aren't explicitly defined). */ 2388@media (max-width: 1023px) { 2389 .x-container-product-comparison-table .product-recommendations.hidden { 2390 display: block !important; 2391 } 2392 .x-container-product-comparison-table #product-comparison-table-mobile { 2393 display: none !important; 2394 } 2395 #product-comparison-table { 2396 display: flex !important; 2397 gap: 12px; 2398 overflow-x: auto; 2399 scroll-snap-type: x proximity; 2400 text-align: left; 2401 } 2402 /* hide the native row structure (label rows + scattered value cells) */ 2403 #product-comparison-table > .compare-block { 2404 display: none !important; 2405 } 2406 /* reveal each product's source column: 2 visible, scroll for the rest */ 2407 #product-comparison-table > .section-product-comparison-tablet { 2408 display: block !important; 2409 flex: 0 0 calc(50% - 6px); 2410 scroll-snap-align: start; 2411 min-width: 0; 2412 } 2413 /* cells fill the column width */ 2414 #product-comparison-table .section-product-comparison-tablet .content-tablet > div { 2415 width: 100% !important; 2416 } 2417 /* show the per-value row labels inside each column */ 2418 .section-product-comparison-tablet .x-compare-m-label { 2419 display: block; 2420 font-weight: 600; 2421 font-size: 12px; 2422 letter-spacing: 0; 2423 color: #33322E; 2424 margin-bottom: 2px; 2425 } 2426 /* button fills its cell */ 2427 .section-product-comparison-tablet .button-block .button { 2428 width: 100% !important; 2429 } 2430 /* Flush rows without subgrid: floor wrap-prone cells at a shared height so 2431 a 1-line and a 2-line value occupy the same height across columns, landing 2432 their dividers level. Tune to just above your tallest value per row type. */ 2433 .section-product-comparison-tablet .metafield-block { 2434 min-height: 92px; 2435 } 2436} 2437/* End: COMPARISON TABLE */ 2438 2439 2440/* ============================================================ 2441 HOMEPAGE 2442 ============================================================ */ 2443 2444/* -- Trust Strip (native Multicolumn / text-with-icon columns) -- 2445 This is the live trust row (Free Shipping / 30-Day Returns / 1-Year Warranty 2446 / Stylist-Created). It is the native MULTICOLUMN section's column blocks - 2447 NOT the PDP feature_icon block (.feature-icon-item) up in the PDP group. 2448 Live hooks (per rendered DOM): .text-with-icon-item (the column), an mb-2 2449 icon row stacked above a pt-2 text wrapper (the icon->text gap), and .rte 2450 (the subtext). 2451 2452 Native already covers, set these in the theme editor (no CSS): 2453 - Icon size -> the section's "Icon size" slider 2454 - Headline -> each column's "Heading size" slider 2455 No native setting exists for the icon->text gap or the subtext size, so the 2456 two knobs below handle those. 2457 2458 SCOPE NOTE: targets .text-with-icon-item, i.e. every Multicolumn "text with 2459 icon" column site-wide. If you add other Multicolumn sections you don't want 2460 touched, say so and I'll scope this to just this section. */ 2461 2462/* KNOB 1 - icon -> headline gap. 2463 Native stacks an mb-2 (~8px) icon row above a pt-2 (~8px) text wrapper 2464 (~16px total). Zero the icon row's bottom margin and drive the whole gap 2465 from the text wrapper's padding-top here. Lower = tighter, raise = looser. */ 2466.text-with-icon-item div:has(> span[class*="size-icon-"]) { 2467 margin-bottom: 0 !important; 2468} 2469.text-with-icon-item div:has(> [class*="heading-"]) { 2470 padding-top: 4px !important; /* <- icon-to-text spacing */ 2471} 2472 2473/* KNOB 2 - subtext size ("On orders $75+", etc.). 2474 The column's native "Heading size" slider sizes the headline; the subtext 2475 (.rte) has no native size control, so set it here. Targets the inner <p> too 2476 so it beats the theme's .rte p rule. */ 2477.text-with-icon-item .rte, 2478.text-with-icon-item .rte p { 2479 font-size: 13px !important; /* <- subtext size */ 2480} 2481/* -- END Trust Strip (Multicolumn) -- */ 2482 2483/* -- Image with text: condense the feature checklist + one-line labels -- 2484 The native columns blocks wrap each item in pt-5 pb-5 pl-5 pr-5 (20px every 2485 side) plus a pl-2.5/pr-2.5 text wrapper, and the icon defaults large â so rows 2486 sit far apart (mobile) and labels wrap to two lines in the narrow 2-col grid 2487 (desktop). None of that padding is a native setting, so: trim the item padding 2488 (condenses the row gap on mobile AND desktop), trim the text wrapper's side 2489 padding, tighten the grid row gap, cap the icon, and keep the label on one 2490 line. Pair with the native Icon size set to ~30. Scoped to .image-with-text so 2491 no other multicolumn surface is affected. */ 2492.image-with-text .x-block-columns { 2493 padding: 4px 0 !important; /* was pt-5 pb-5 pl-5 pr-5 (~20px each) */ 2494} 2495.image-with-text .x-block-columns-container { 2496 margin-top: 0 !important; 2497 gap: 12px 16px !important; /* row-gap 12, column-gap 16 */ 2498} 2499.image-with-text .x-block-columns > div { 2500 padding-left: 10px !important; /* small gap between icon and label */ 2501 padding-right: 0 !important; 2502} 2503.image-with-text .x-block-columns [class*="icon--"] { 2504 width: 28px !important; 2505 height: 28px !important; 2506 min-width: 28px !important; 2507 min-height: 28px !important; 2508} 2509.image-with-text .x-block-columns [class*="heading-"] { 2510 white-space: nowrap !important;
2510 /* one line per label on desktop */ 2511} 2512/* Mobile: force a true single column with tight rows (defeats the 2-col 2513 columns_mobile span that leaves the rows loose). */ 2514@media (max-width: 767px) { 2515 .image-with-text .x-block-columns-container { 2516 grid-template-columns: 1fr !important; 2517 gap: 6px !important; 2518 } 2519 .image-with-text .x-block-columns { 2520 grid-column: auto !important; /* ignore any mobile col-span */ 2521 padding: 2px 0 !important; 2522 min-height: 0 !important; 2523 } 2524} 2525/* -- END Image with text: feature checklist -- */ 2526 2527/* -- Video looping: show full 9:16 frame (no crop) -- 2528 The card container is already locked to aspect-[9/16], but the native 2529 <video> (and its poster .img-thumbnail) use object-cover, which crops a 2530 source that isn't exactly 9:16. Switch to object-contain so the FULL 2531 frame shows inside the 9:16 card. Any letterbox gap (when a clip isn't 2532 exactly 9:16) is filled with the brand background so it reads as 2533 intentional rather than a gap. Cleanest long-term fix is exporting the 2534 source clips at true 9:16 - then there's zero letterbox and the fill 2535 never shows; this CSS works either way. 2536 Scoped to .x-container-video-looping (section root) so it can't bleed 2537 onto .video / .img-thumbnail / .external-video used by other sections. */ 2538.x-container-video-looping .video, 2539.x-container-video-looping .img-thumbnail { 2540 object-fit: contain !important; 2541} 2542.x-container-video-looping .external-video { 2543 background-color: #f7f6f4; 2544} 2545/* -- END Video looping: show full 9:16 frame -- */ 2546 2547/* -- Video looping: hide quickview icon -- 2548 The search-quickview magnifier button (renders when product card 2549 position = "on" and autoplay is off) is the only element in the section 2550 carrying the mobile-device-class markup class - a safe, scoped target. 2551 Removing it also removes that tap-to-open-product affordance on the 2552 videos; revisit if those cards still need to be shoppable. */ 2553.x-container-video-looping .mobile-device-class { 2554 display: none !important; 2555} 2556/* -- END Video looping: hide quickview icon -- */ 2557 2558/* -- Testimonial + product showcase (Tatcha-style) -- 2559 Built on the NATIVE "Testimonials with card" section - no fork. Each block 2560 supplies a quote (Text), a lifestyle image (Image), and a Product (the chip). 2561 The section auto-rotates. This restyles the native split slide into the 2562 reference: quote on a plain panel left, full-bleed image right, product chip 2563 pinned to the image's top-left corner. 2564 2565 Native settings to set in the editor (no CSS): 2566 - Section > Auto rotate ON (+ speed); Make section full width ON 2567 - Colors: Background #f7f6f4 | Item background + Item border = transparent 2568 (alpha 0) | Heading/Text #33322E 2569 Per block: Text = quote (include the curly quote marks), Image = lifestyle 2570 photo, Product = the product to feature. Leave Title/Author blank, Show 2571 author image OFF. Add 2+ blocks so it rotates. 2572 Scope: .x-container-testimonials-with-card (every instance of this section); 2573 say the word to lock it to one section id instead. */ 2574 2575/* Anchor for the product-chip overlay */ 2576.x-container-testimonials-with-card .scale-item { 2577 position: relative; 2578} 2579 2580/* De-card the content side (belt-and-suspenders with the transparent item colors) */ 2581.x-container-testimonials-with-card .x-testimonial-content > div { 2582 border: 0 !important; 2583 background: transparent !important; 2584} 2585 2586/* Hide the author row for the clean quote look (delete to show author/avatar). 2587 Stars ARE shown - pick the count per block (block > "Number of stars") and the 2588 star color follows the theme's rating color (Colors > Star rating icon). */ 2589.x-container-testimonials-with-card .x-testimonial-author-container { 2590 display: none !important; 2591} 2592 2593/* Quote: drop the native scroll cap, go large + charcoal */ 2594.x-container-testimonials-with-card .x-testimonial-main-content { 2595 max-height: none !important; 2596 overflow: visible !important; 2597} 2598/* === Quote font size (knobs) === 2599 Change these two numbers to resize the quote text everywhere. */ 2600.x-container-testimonials-with-card { 2601 --cal-quote-size-mobile: 22px; /* viewports < 768px */ 2602 --cal-quote-size: 30px; /* viewports >= 768px */ 2603} 2604.x-container-testimonials-with-card .x-content-text, 2605.x-container-testimonials-with-card .x-content-text * { 2606 font-family: 'Helvetica Neue', 'HN Fallback', Arial, sans-serif !important; 2607 font-weight: 400 !important; /* 400 = Regular; 500+ selects the Medium cut */ 2608 font-size: var(--cal-quote-size-mobile) !important; 2609 line-height: 1.35 !important; 2610 color: #33322E !important; 2611} 2612 2613/* Product chip -> clean white pill */ 2614.x-container-testimonials-with-card .x-testimonial-product-card { 2615 margin: 0 !important; 2616 padding: 0 !important; 2617} 2618.x-container-testimonials-with-card .card-testimonial { 2619 background: #FFFFFF !important; 2620 border-radius: 1px !important; 2621 box-shadow: 0 2px 14px rgba(51,50,46,0.12) !important; 2622 padding: 12px 16px !important; 2623} 2624.x-container-testimonials-with-card .card-testimonial p, 2625.x-container-testimonials-with-card .card-testimonial .price { 2626 color: #33322E !important; 2627} 2628 2629/* Image fills its half */ 2630.x-container-testimonials-with-card .x-testimonial-image img { 2631 width: 100% !important; 2632 height: 100% !important; 2633 object-fit: cover !important; 2634} 2635 2636@media (min-width: 768px) { 2637 /* Seamless 50/50 split, quote LEFT / image RIGHT, real height */ 2638 .x-container-testimonials-with-card .scale-item { 2639 gap: 0 !important; 2640 min-height: 520px; 2641 align-items: stretch !important; 2642 } 2643 .x-container-testimonials-with-card .x-testimonial-image { order: 2; } 2644 .x-container-testimonials-with-card .x-testimonial-content { 2645 order: 1; 2646 justify-content: center !important; 2647 padding: 0 48px 0 8px; 2648 } 2649 .x-container-testimonials-with-card .x-content-text, 2650 .x-container-testimonials-with-card .x-content-text * { 2651 font-size: var(--cal-quote-size) !important; 2652 } 2653 2654 /* Chip pinned to the image's top-left corner (image is the right half) */ 2655 .x-container-testimonials-with-card .x-testimonial-product-card { 2656 position: absolute !important; 2657 top: 24px; 2658 left: calc(50% + 24px); 2659 width: auto !important; 2660 z-index: 5; 2661 } 2662 .x-container-testimonials-with-card .card-testimonial { 2663 width: max-content; 2664 max-width: 320px; 2665 } 2666} 2667/* -- END Testimonial + product showcase -- */ 2668 2669 2670/* -- Footer: newsletter position -- 2671 Handled natively by block ORDER (newsletter placed first = left on 2672 desktop, top on mobile). No CSS needed - intentionally left empty so 2673 we don't fight the native layout or the mobile accordions. */ 2674/* -- END Footer: newsletter position -- */ 2675 2676/* -- Footer: newsletter submit as text label -- 2677 v10 ships an arrow icon; restore a "Subscribe" text label. */ 2678.footer__newsletter button[type="submit"] { 2679 width: auto !important; 2680 padding: 0 14px !important; 2681 white-space: nowrap; 2682} 2683.footer__newsletter button[type="submit"] span { 2684 display: none !important; /* hide arrow icon */ 2685} 2686.footer__newsletter button[type="submit"]::after {
2687 content: "Subscribe"; 2688 font-size: 13px; 2689 font-weight: 500; 2690 text-transform: none; /* no forced uppercase */ 2691 color: currentColor; 2692} 2693/* -- END Footer: newsletter submit -- */ 2694 2695/* -- Footer: typography (light Inter weights) -- 2696 Starting values - fine-tune after first look. Uses the 200/300 2697 weights loaded by the font-face Custom Liquid block. */ 2698.section-footer .h6 { 2699 font-weight: 300 !important; 2700 font-size: 14px !important; 2701 letter-spacing: 0.02em !important; 2702 text-transform: none !important; 2703} 2704.section-footer ul a, 2705.section-footer .footer-col--1 a, 2706.section-footer [class*="footer-col--"] a { 2707 font-weight: 300 !important; 2708 font-size: 13px !important; 2709} 2710/* -- END Footer: typography -- */ 2711 2712/* -- Footer: copyright + newsletter subtext (match footer body) -- */ 2713/* Center the copyright row and bring it to footer weight/size. */ 2714.section-footer .additional-footer, 2715.section-footer .additional-footer > div { 2716 justify-content: center !important; 2717 text-align: center !important; 2718} 2719.section-footer .additional-footer .base-link, 2720.section-footer .additional-footer .base-link p, 2721.section-footer .additional-footer p { 2722 text-align: center !important; 2723 font-weight: 300 !important; 2724 font-size: 13px !important; 2725} 2726/* Newsletter sub-text ("Plus get 15% off...") to match footer body. */ 2727.section-footer .x-block-email .rte { 2728 font-weight: 300 !important; 2729 font-size: 13px !important; 2730} 2731/* -- END Footer: copyright + newsletter subtext -- */ 2732 2733/* -- Footer: policy links bar (standalone Custom Liquid section) -- 2734 The footer has no Custom Liquid block, so the menu-driven bar lives in 2735 its own section below the footer. Match the footer's background + text 2736 color (via the theme's footer vars) so it reads as one unit, and pull 2737 it flush. Wrap the menu loop in <span class="cal-footer-policy">. */ 2738.shopify-section:has(.cal-footer-policy), 2739.shopify-section:has(.cal-footer-policy) > div { 2740 background: rgb(var(--background-color-footer)) !important; 2741} 2742.shopify-section:has(.cal-footer-policy) { 2743 margin-top: 0 !important; 2744 padding-top: 0 !important; 2745} 2746.cal-footer-policy { 2747 display: block; 2748 text-align: center; 2749 font-size: 12px; 2750 font-weight: 300; 2751 color: rgb(var(--colors-text-footer)); 2752 padding-bottom: 16px; 2753} 2754.cal-footer-policy a { 2755 color: rgb(var(--colors-text-footer)) !important; 2756 text-decoration: none; 2757 font-size: 12px; 2758 font-weight: 300; 2759} 2760.cal-footer-policy a:hover { 2761 text-decoration: underline; 2762} 2763/* -- END Footer: policy links bar -- */ 2764 2765 2766/* ============================================================ 2767 HEADER / NAV 2768 ============================================================ */ 2769 2770/* -- Menu: charcoal highlight for active items, NO underline -- 2771 The open/current top-level item ("Shop") and the active dropdown parents 2772 (Product Type / Hair Concern / Collections) are highlighted natively via 2773 .effect-inline / .link-active, which the theme colors with the mauve Text 2774 link variable, plus a Tailwind border-b on active child links. 2775 2776 Design decision: keep the charcoal highlight, remove ALL underlines in the 2777 menu (the .rte a paragraph-copy underline in the GLOBAL block is a separate, 2778 intentional treatment and is untouched). 2779 2780 Step 1 - colour: redefine --colors-text-link inside the header so highlighted 2781 items read charcoal instead of mauve (rest of the site keeps its mauve links; 2782 sale price / cart dot / low-stock are separate settings, unaffected). 2783 Step 2 - no static underline: this block previously ADDED a text-decoration 2784 underline on active items; that is now removed (was the visible line under 2785 Shop / Product Type / Hair Concern / Collections). 2786 Step 3 - no hover underline: suppress the theme's animated ::after underline 2787 on every header nav link so hover can't reintroduce a line. 2788 Step 4 - no border line: zero the native Tailwind border-b (a 1px 2789 --colors-line-and-border line) the theme puts on active/current child links. */ 2790.section-header { 2791 --colors-text-link: 51, 50, 46; /* #33322E charcoal (R, G, B triplet) */ 2792} 2793/* Step 2 - kill the static underline on highlighted items */ 2794.section-header .effect-inline, 2795.section-header .link-active { 2796 text-decoration: none !important; 2797} 2798/* Step 3 - kill the theme's animated hover underline on menu links */
2799.section-header a.nav-link::after, 2800.section-header a.effect-inline::after { 2801 display: none !important; 2802} 2803/* Step 4 - kill the native border-b line on active/current child links */ 2804.section-header a.nav-link.effect-inline, 2805.section-header a.nav-link.link-active, 2806.section-header a.nav-link.border-b { 2807 border-bottom: 0 !important; 2808} 2809/* -- END Menu: charcoal highlight, no underline -- */ 2810 2811 2812/* ============================================================ 2813 GLOBAL 2814 ============================================================ */ 2815 2816/* -- Content links: consistent thin underline (RTE / product descriptions) -- 2817 Eurus draws rich-text links (.rte a) with an animated gradient underline that 2818 only grows in on hover, so body links read inconsistently. Swap it for a 2819 clean, always-on 1px underline that matches the thin-line treatment used in 2820 the menu. The link keeps its own color (mauve, site-wide) and the underline 2821 follows it via currentColor - set text-decoration-color to #33322E instead if 2822 you'd rather the line be charcoal. Thickness + offset are the knobs. 2823 Scope: .rte a (rich-text content). Button-style links (.button-link) keep 2824 their own treatment - say the word to bring them in too. */ 2825.rte a { 2826 background-image: none !important; /* remove the gradient underline */ 2827 text-decoration: underline !important; 2828 text-decoration-thickness: 1px !important; /* thin */ 2829 text-underline-offset: 2px !important; 2830 text-decoration-color: currentColor !important; 2831} 2832/* -- END Content links: consistent thin underline -- */ 2833 2834 2835/* End: calista-custom.css */ 2836</style> 2837 2838 2839 2840<!-- End: XO-InsertCode Header --> 2841 2842 2843<!-- END app block -->
2843<script src="https://cdn.shopify.com/extensions/01a0fd28-d85d-7cb1-8bb9-fbf695683afb/loop-returns-506/assets/order-protection-storefront.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 2843
2843
2844<script src="https://cdn.shopify.com/extensions/01a101d9-652a-7b73-904c-cf9ed89a9db5/2026-10-03-12-58-30-UTC--0fc6178/assets/smile-loader.js" type="text/javascript" defer="defer"></script>
2844 2845<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
2846<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: 6764757061,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "index"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 2846
2846
2847<script> 2848 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 2849</script>
vendor: 1 bytes, line 2849
2849
2850<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}
2850).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: 6764757061,storefrontBaseUrl: "https://calistatools.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://calistatools.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2875785526","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"GT-5MGPZG6\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":\\\"MC-R5SG38PSX8\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":\\\"MC-R5SG38PSX8\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":\\\"MC-R5SG38PSX8\\\"}],\\\"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":"2803597622","configuration":"{\"store_id\":\"91634\",\"environment\":\"prod\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"10c4f173702937db6fa4bf871600cafd","type":"APP","apiClientId":294517,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
2850,"dataSharingState":"unrestricted"},{"id":"2321514806","configuration":"{\"debug\":\"false\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"a9a83cf44fb282052ff936f7ab101058","type":"APP","apiClientId":4539653,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2192605494","configuration":"{\"projectId\":\"v40vh3q5cb\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d8a2bb2ccbb513dc8e8b6937f4b8033e","type":"APP","apiClientId":240074326017,"privacyPurposes":[],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1835598134","configuration":"{\"accountID\":\"RfeaaG\",\"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":"1196327222","configuration":"{\"shopId\":\"calista-tools.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"31536d5a2ef62c1887054e49fd58dba0","type":"APP","apiClientId":4845829,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1090650422","configuration":"{\"yotpoStoreId\":\"MomWoy2px304xCd0DXnL78lDcNDRxS7bv5Ok7bW8\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c5c2579aac465eb24ca7bc0501a6000d","type":"APP","apiClientId":70132,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"857211190","configuration":"{\"ti\":\"211052367\",\"endpoint\":\"https:\/\/bat.bing.com\/action\/0\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"5ee93563fe31b11d2d65e2f09a5229dc","type":"APP","apiClientId":2997493,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"444170550","configuration":"{\"tagID\":\"2612999592956\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7ae565e198624b39e0856d352b9a6b4c","type":"APP","apiClientId":3009811,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"278855990","configuration":"{\"env\":\"prod\"}","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"8a9a175b11d15038a70fe78d09c59720","type":"APP","apiClientId":3977633,"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"]}
2850,{"id":"137396534","configuration":"{\"accountID\":\"3931\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"5257eba551dec701a89c7ebf33f9b427","type":"APP","apiClientId":5043673,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"154927414","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"ShareaSale"},{"id":"173572406","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Fueled v2 Pixel"},{"id":"173703478","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Fueled - AdWords Supplemental "},{"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":"Calista Tools","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"calista-tools.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/calistatools.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"1797342068805","handle":"gogo-mini-round-brush","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53297881514294","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10821877694774","handle":"embellish-finishing-spray-7oz","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54455626301750","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10837665906998","handle":"perfecter-pro-heated-round-brush-1-gen-4","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54522340442422","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10603065803062","handle":"eliteair-multi-style-dryer-gen-2","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53708547391798","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10192339075382","handle":"gloss-restorative-shine-serum","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51863312466230","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10847775850806","handle":"gloss-caramel-color-enhancement","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54557956276534","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10521272713526","handle":"ion-hot-rollers-long-set-gen-2","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53470087971126","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"6917843583036","handle":"jousse-vitality-heat-protectant-spray","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"40150874292284","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10521160843574","handle":"ion-hot-rollers-short-set-gen-2","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53469608313142","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
2850,{"id":"10837713879350","handle":"75-perfecter-pro-heated-round-brush-gen-4","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54522982662454","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10837728395574","handle":"1-5-perfecter-pro-heated-round-brush-gen-4","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54523081359670","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15401658646838","handle":"bewitching-blowout","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"67610215448886","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8689389175094","handle":"bodywaver-large-wave-hair-styler","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51167307628854","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15402465689910","handle":"boo-tifully-big-hair","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"67614439637302","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8014509867318","handle":"calista-beauty-case","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44012747522358","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9571056910646","handle":"calista-claw-clip","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"49557389181238","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9940586463542","handle":"calista-refillable-travel-bottle-set","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51219341115702","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
2850,{"id":"15401665888566","handle":"drop-dead-gorgeous-hair","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"67610239205686","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9942042837302","handle":"microfiber-hair-towel","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51220885995830","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8272124412214","handle":"embellish-flex-spray","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45037774209334","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10215685914934","handle":"embellish-root-touch-up-black","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52121008013622","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10215685554486","handle":"embellish-root-touch-up-blonde","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52121007653174","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10215685685558","handle":"embellish-root-touch-up-dark-brown","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52121007784246","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10215685587254","handle":"embellish-root-touch-up-light-blonde","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52121007685942","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10215685718326","handle":"embellish-root-touch-up-light-brown","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52121007817014","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10215685620022","handle":"embellish-root-touch-up-medium-blonde","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52121007751478","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10215685751094","handle":"embellish-root-touch-up-medium-brown","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52121007849782","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10215685521718","handle":"embellish-root-touch-up-salt-and-pepper","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52121007620406","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10215685816630","handle":"embellish-root-touch-up-white-platinum","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52121007915318","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8952529518902","handle":"embellish-styling-cream","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47568607248694","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10563106832694","handle":"embellish-texturizing-definer-copy","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53594437189942","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"4498254659644","handle":"embellish-foam","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"31961628835900","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
2850,{"id":"10179463053622","handle":"fauxblo-thermal-blowout-brush-mid-length-hair","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51817318351158","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10179463643446","handle":"fauxblo-thermal-blowout-brush-long-hair","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54393777193270","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9592776589622","handle":"flipclip-hair-clip","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"50412568346934","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15402467721526","handle":"frightfully-fabulous-hair","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"67614442160438","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10465332592950","handle":"gloss-clear-color-enhancement","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53389850607926","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10192307224886","handle":"gloss-purple-color-enhancement","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51863232545078","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8113641423158","handle":"gogo-mini-hair-dryer","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47552034210102","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10360453038390","handle":"smoothie-original-mini-duo","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53099948278070","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10188305695030","handle":"ion-hot-rollers-replacement-pack-long","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51849359556918","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10188305662262","handle":"ion-hot-rollers-replacement-pack-medium","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51849359524150","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10188305727798","handle":"ion-hot-rollers-replacement-pack-short","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"51849359589686","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10188303860022","handle":"ion-hot-rollers-short-set","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52380554232118","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10661051957558","handle":"essential-minis","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53892332847414","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10420701397302","handle":"jousse-cleanse-8oz","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53301618311478","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"3927326818373","handle":"jousse-duo-honeymint-8oz","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"39842465611836","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
2850,{"id":"10420904263990","handle":"jousse-cleanse-condition-duo-1","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53301903655222","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"4706727100476","handle":"jousse-condition-32-oz","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"39844872388668","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10420571078966","handle":"jousse-condition-8oz","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53301458731318","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"2010003734597","handle":"jousse-mend-masque","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"19066768851013","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://calistatools.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"186329760054","themeStoreId":"2048","themePublished":"true","eventMetadataId":"495a53ca-eb80-42bd-8f7c-a33dcef8a10d","pageType":"home","shopId":"6764757061","storefrontBaseUrl":"https:\/\/calistatools.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
2850<script> 2851 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 2852 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 2853 window.ShopifyAnalytics.meta.currency = 'USD'; 2854 var meta = {"page":{"pageType":"home","requestId":"c9c760c5-5422-4fb3-8c20-0b366ebd0c49-1791062263"}}; 2855 for (var attr in meta) { 2856 window.ShopifyAnalytics.meta[attr] = meta[attr]; 2857 } 2858</script>
vendor: 1 bytes, line 2858
2858
2859<script class="analytics"> 2860 (function () { 2861 var customDocumentWrite = function(content) { 2862 var jquery = null; 2863 2864 if (window.jQuery) { 2865 jquery = window.jQuery; 2866 } else if (window.Checkout && window.Checkout.$) { 2867 jquery = window.Checkout.$; 2868 } 2869 2870 if (jquery) { 2871 jquery('body').append(content); 2872 } 2873 }; 2874 2875 var hasLoggedConversion = function(token) { 2876 if (token) { 2877 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 2878 } 2879 return false; 2880 } 2881 2882 var setCookieIfConversion = function(token) { 2883 if (token) { 2884 var twoMonthsFromNow = new Date(Date.now()); 2885 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 2886 2887 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 2888 } 2889 } 2890 2891 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 2892 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 2893 if (trekkie.integrations) { 2894 return; 2895 } 2896 trekkie.methods = [ 2897 'identify', 2898 'page', 2899 'ready', 2900 'track', 2901 'trackForm', 2902 'trackLink' 2903 ]; 2904 trekkie.factory = function(method) { 2905 return function() { 2906 var args = Array.prototype.slice.call(arguments); 2907 args.unshift(method); 2908 trekkie.push(args); 2909 if (method == 'track' || method == 'page') { 2910 var pageUrl; 2911 try { 2912 pageUrl = window.location.href; 2913 } catch (e) {} 2914 var pageReferrer; 2915 try { 2916 pageReferrer = document.referrer; 2917 } catch (e) {} 2918 try { 2919 if (window.__TREKKIE_SHIM_QUEUE == null) { 2920 window.__TREKKIE_SHIM_QUEUE = []; 2921 } 2922 window.__TREKKIE_SHIM_QUEUE.push({ 2923 from: 'trekkie-stub', 2924 method: method, 2925 args: args.slice(1), 2926 pageContext: { 2927 url: pageUrl, 2928 referrer: pageReferrer 2929 } 2930 }); 2931 } catch (e) { 2932 // no-op 2933 } 2934 } 2935 return trekkie; 2936 }; 2937 }; 2938 for (var i = 0; i < trekkie.methods.length; i++) { 2939 var key = trekkie.methods[i]; 2940 trekkie[key] = trekkie.factory(key); 2941 } 2942 trekkie.load = function(config) { 2943 trekkie.config = config || {}; 2944 trekkie.config.initialDocumentCookie = document.cookie; 2945 var first = document.getElementsByTagName('script')[0]; 2946var script = document.createElement('script'); 2947script.type = 'text/javascript'; 2948script.onerror = function(e) { 2949 var scriptFallback = document.createElement('script'); 2950 scriptFallback.type = 'text/javascript'; 2951 scriptFallback.onerror = function(error) { 2952 var Monorail = { 2953 produce: function produce(monorailDomain, schemaId, payload) { 2954 var currentMs = new Date().getTime(); 2955 var event = { 2956 schema_id: schemaId, 2957 payload: payload, 2958 metadata: { 2959 event_created_at_ms: currentMs, 2960 event_sent_at_ms: currentMs 2961 } 2962 }; 2963 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 2964 }, 2965 sendRequest: function sendRequest(endpointUrl, payload) { 2966 // Try the sendBeacon API 2967 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 2968 var blobData = new window.Blob([payload], { 2969 type: 'text/plain' 2970 }); 2971 2972 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 2973 return true; 2974 } // sendBeacon was not successful 2975 2976 } // XHR beacon 2977 2978 var xhr = new XMLHttpRequest(); 2979 2980 try { 2981 xhr.open('POST', endpointUrl); 2982 xhr.setRequestHeader('Content-Type', 'text/plain'); 2983 xhr.send(payload); 2984 } catch (e) { 2985 console.log(e); 2986 } 2987 2988 return false; 2989 }, 2990 isIos12: function isIos12() { 2991 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 2992 } 2993 }; 2994 Monorail.produce('monorail-edge.shopifysvc.com', 2995 'trekkie_storefront_load_errors/1.1', 2996 {shop_id: 6764757061, 2997 theme_id: 186329760054, 2998 app_name: "storefront", 2999 context_url: window.location.href, 3000 source_url: "//calistatools.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 3001 3002 }; 3003 scriptFallback.async = true; 3004 scriptFallback.src = '//calistatools.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 3005 first.parentNode.insertBefore(scriptFallback, first); 3006}; 3007script.async = true; 3008script.src = '//calistatools.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 3009first.parentNode.insertBefore(script, first); 3010 3011 }; 3012 trekkie.load( 3013 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":6764757061,"isMerchantRequest":null,"themeId":186329760054,"themeCityHash":"17766827571745324288","contentLanguage":"en","currency":"USD","eventMetadataId":"495a53ca-eb80-42bd-8f7c-a33dcef8a10d"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 3014 ); 3015 3016 var loaded = false;
3017 trekkie.ready(function() { 3018 if (loaded) return; 3019 loaded = true; 3020 3021 window.ShopifyAnalytics.lib = window.trekkie; 3022 3023 var originalDocumentWrite = document.write; 3024 document.write = customDocumentWrite; 3025 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 3026 document.write = originalDocumentWrite; 3027 3028 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 3029 var token = match? match[1]: undefined; 3030 if (!hasLoggedConversion(token)) { 3031 setCookieIfConversion(token); 3032 3033 } 3034 }); 3035 3036 window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"c9c760c5-5422-4fb3-8c20-0b366ebd0c49-1791062263","shopifyEmitted":true}); 3037 3038 var eventsListenerScript = document.createElement('script'); 3039 eventsListenerScript.async = true; 3040 eventsListenerScript.src = "//calistatools.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 3041 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 3042})();</script>
vendor: 1 bytes, line 3042
3042
3043<script 3044 defer 3045 src="https://calistatools.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 3046 data-application="storefront-renderer" 3047 data-shop-id="6764757061" 3048 data-render-region="gcp-us-central1" 3049 data-page-type="index" 3050 data-theme-instance-id="186329760054" 3051 data-theme-name="Eurus" 3052 data-theme-version="10.0.0" 3053 data-monorail-region="shop_domain" 3054 data-resource-timing-sampling-rate="10" 3055 data-shs="true" 3056 data-shs-beacon="true" 3057 data-shs-export-with-fetch="true" 3058 data-shs-logs-sample-rate="1" 3059 data-shs-beacon-endpoint="https://calistatools.com/api/collect" 3060></script>
vendor: 1 bytes, line 3060
3060
3061<script src="https://cdn.shopify.com/storefront/web-components/account.js" type="module" crossorigin fetchpriority="low" async></script>
3061<script id="shopify-customer-account-data" type="application/json">{"customer":null,"shop":{"id":"6764757061","customerAccountTranslations":[{"key":"account_menu.signed_out_state.sheet_title","value":"Sign in or create account"},{"key":"account_menu.signed_out_state.section_divider","value":"More ways to sign in"},{"key":"account_menu.signed_out_state.alternate_divider","value":"OR"},{"key":"account_menu.signed_out_state.email_field_label","value":"Email"},{"key":"account_menu.signed_out_state.orders_button","value":"Orders"},{"key":"account_menu.signed_out_state.profile_button","value":"Profile"},{"key":"account_menu.signed_out_state.shop_login_button","value":"Sign in with Shop"},{"key":"account_menu.signed_out_state.continue_with_google","value":"Continue with Google"},{"key":"account_menu.signed_out_state.continue_with_facebook","value":"Continue with Facebook"},{"key":"account_menu.signed_out_state.marketing_consent_label","value":"Email me with news and offers"},{"key":"account_menu.signed_in_state.greeting_with_name","value":"Hi, {{first_name}}"},{"key":"account_menu.signed_in_state.greeting_without_name","value":"Account"},{"key":"account_menu.signed_in_state.orders_button","value":"Orders"},{"key":"account_menu.signed_in_state.profile_button","value":"Profile"},{"key":"account_menu.location_picker.sheet_title","value":"Locations"},{"key":"account_menu.location_picker.search_field_placeholder","value":"Search"},{"key":"account_menu.aria_labels.close_menu","value":"Close menu"},{"key":"account_menu.aria_labels.back_to_main_menu","value":"Back to main menu from {{title}}"},{"key":"account_menu.aria_labels.open_submenu","value":"{{title}}, opens submenu"},{"key":"account_menu.aria_labels.loading_menu","value":"Loading menu"},{"key":"account_menu.aria_labels.account","value":"Account"},{"key":"account_menu.aria_labels.sign_in_with_email","value":"Sign in with email"},{"key":"account_menu.aria_labels.sign_in","value":"Sign in"}],"socialLoginProviders":[{"handle":"Shop"}],"legacyCustomerAccounts":false,"signInLinksVisible":true,"b2bEnabled":false,"marketingConsentSigninEnabled":true,"marketingConsentPreselected":true},"visitor":{"country":"US","language":"en"}}</script>
3061 3062<meta name="shopify-y" content="5d17ce7f-32f6-4586-8a6a-ccd9a0102b71" data-expiration="1822619863000"><meta name="shopify-s" content="367e154f-1e81-4785-ac22-c207196c0d2f" data-expiration="1791064063000"><meta name="new-cookie-storage-activated" content="t"> 3063</head> 3064 <body 3065 class="gradient scrollbar-body overflow-x-hidden body-text-base-size" 3066 x-data 3067 :class="($store.xPopup.open || $store.xPopup.openVideoShopping) && 'overflow-hidden padding-scrollbar'" 3068 3069 x-intersect.once="$store.xPopup.setWidthScrollbar();" 3070 ><div class="main-container flex flex-col min-h-screen relative"> 3071 <a class="skip-to-content absolute -z-10 button button-solid hidden lg:block pt-2.5 pb-2.5 pl-6 pr-6 lg:pt-3 lg:pb-3 mt-0.5 ml-0.5 leading-normal justify-center cursor-pointer focus-visible:z-60" href="#MainContent"> 3072 Skip to content 3073 </a> 3074 3075 3076 <!-- BEGIN sections: header-group --> 3077<div id="shopify-section-sections--26875466350902__announcement-bar" class="shopify-section shopify-section-group-header-group section-announcement"><style data-shopify> 3078 @media (min-width: 1024px) { 3079 .announcement-bar-toolbar #localization_form button { 3080 padding-bottom: 0.375rem; 3081 padding-top: 0.375rem; 3082 } 3083 .announcement-bar-toolbar #localization_form ul { 3084 z-index: 100; 3085 } 3086 .announcement-bar-right .menu-position-left, 3087 .announcement-bar-left .menu-position-left { 3088 padding-left: 1.25rem; 3089 } 3090 .announcement-bar-right .menu-position-right, 3091 .announcement-bar-left .menu-position-right { 3092 padding-right: 1.25rem; 3093 } 3094 } 3095 .announcement-bar-toolbar #localization_form > .localization-form-child { 3096 width: -moz-max-content; 3097 width: max-content; 3098 } 3099 .announcement-bar-toolbar .social-list a { 3100 height: 1.5rem; 3101 padding-top: 0.125rem; 3102 padding-right: 0.375rem; 3103 padding-left: 0.375rem; 3104 padding-bottom: 0.125rem; 3105 width: 30px; 3106 } 3107 .announcement-bar-toolbar.toolbar-align-left #selector-social { 3108 flex-direction: row-reverse; 3109 } 3110 .announcement-bar-toolbar .social-list { 3111 max-width: 200px; 3112 } 3113 @media (max-width: 767px) { 3114 .announcement-bar-toolbar .social-list { 3115 max-width: unset; 3116 } 3117 } 3118</style> 3119<style data-shopify>#shopify-section-sections--26875466350902__announcement-bar { 3120 contain: style; 3121 } 3122 #x-announcement-bar .arrow { 3123 background: transparent; 3124 border: 0; 3125 box-shadow: none; 3126 color: #ffffff; 3127 } 3128 .dark #x-announcement-bar .arrow { 3129 color: rgba(0,0,0,0); 3130 } 3131 .announcement-bar_container-sections--26875466350902__announcement-bar { 3132 3133 background: #33322e; 3134 3135 3136 } 3137 .dark .announcement-bar_container-sections--26875466350902__announcement-bar { 3138 3139 background: rgba(var(--colors-background-secondary)); 3140 3141 3142 --colors-text-link: 145, 180, 116; 3143 3144 } 3145 .announcement-bar_text { 3146 3147 color: #ffffff; 3148 --colors-line-and-border: 255,255,255; 3149 3150 } 3151 .dark .announcement-bar_text { 3152 3153 color: rgb(var(--colors-text)); 3154 --colors-line-and-border: 225, 227, 225; 3155 3156 } 3157 3158</style><div 3159 id="x-announcement" 3160 class="announcement-bar_container-sections--26875466350902__announcement-bar ltr mr-auto ml-auto flex items-center lg:pl-5 lg:pr-5" 3161 3162 > 3163 3164 <div id="x-slide-announcement-bar" class="disable-effect-hover grow flex-1 x-splide splide cursor-grab lg:pl-12 lg:pr-12 overflow-hidden visible relative"x-intersect.once='$store.xSplide.load($el, { 3165 "type": "loop", 3166 "speed": 1000, 3167 "pagination": false, 3168 "interval": 5000, 3169"autoplay": true, 3170 "classes": { 3171 "arrows" : "block " 3172 } 3173 })'> 3174 <div class="splide__track x-pgw page-width mr-auto ml-auto pl-0 pr-0"> 3175 <div class="splide__list w-full flex "><style data-shopify>.text--announcement_PYDcbn .width-countdown { 3176 width: 6.3rem; 3177 }.text--announcement_PYDcbn, 3178 .btn--announcement_PYDcbn { 3179 font-size: 0.63rem; 3180 } 3181 @media (min-width: 768px) { 3182 .text--announcement_PYDcbn, 3183 .btn--announcement_PYDcbn { 3184 font-size: 0.7rem; 3185 } 3186 }.icon--announcement_PYDcbn { 3187 width: 0.7rem; 3188 height: 0.7rem; 3189 } 3190 .button.text_button_announ--announcement_PYDcbn { 3191 3192 color: rgb(var(--colors-button-text)); 3193 3194 3195 background: rgba(var(--colors-button)); 3196 3197 } 3198 .dark .button.text_button_announ--announcement_PYDcbn { 3199 3200 color: rgb(var(--colors-button-text)); 3201 3202 3203 background: rgba(var(--colors-button)); 3204 3205 } 3206 @media(min-width: 768px){ 3207 .button.text_button_announ--announcement_PYDcbn { 3208 3209 color: rgba(var(--colors-button-text-hover)); 3210 3211 3212 background: rgba(var(--colors-button)); 3213 3214 } 3215 .dark .button.text_button_announ--announcement_PYDcbn { 3216 3217 color: rgba(var(--colors-button-text-hover)); 3218 3219 3220 background: rgba(var(--colors-button)); 3221 3222 } 3223 } 3224 .text-link-with-arrow--announcement_PYDcbn { 3225 3226 color: rgb(var(--colors-text-link)); 3227 3228 } 3229 .dark .text-link-with-arrow--announcement_PYDcbn { 3230 3231 color: rgb(var(--colors-text-link)); 3232 3233 } 3234 .hyperlink-circle-color--announcement_PYDcbn { 3235 3236 background-color: rgba(var(--colors-text-link)); 3237 3238 } 3239 .dark .hyperlink-circle-color--announcement_PYDcbn { 3240 3241 background-color: rgba(var(--colors-button-text-hover)); 3242 3243 }</style><div x-slide-index="0" class="h-auto w-full flex items-center md:flex justify-center splide__slide x-splide-slide gradient text-center pt-3 pb-3 pl-5 pr-5 lg:pr-5 lg:pl-5" ><div 3244 3245 class="flex items-center flex-wrap justify-center gap-x-3 gap-y-2 ltr"> 3246 3247 <div class="text--announcement_PYDcbn announcement-bar_text flex rtl:order-1"> 3248<p> 3249 <a href="/collections/hair-styling-kits-sets" class="button-link relative hover-text-link x-announcement-bar-block-data leading-[initial]" 3250 >EXTRA 10% OFF VALUE SETS</a> 3251 </p></div></div></div><style data-shopify>.text--announcement_KJTazA .width-countdown { 3252 width: 7.0875rem; 3253 }.text--announcement_KJTazA, 3254 .btn--announcement_KJTazA { 3255 font-size: 0.70875rem; 3256 } 3257 @media (min-width: 768px) { 3258 .text--announcement_KJTazA, 3259 .btn--announcement_KJTazA { 3260 font-size: 0.7875rem; 3261 } 3262 }.icon--announcement_KJTazA { 3263 width: 0.7875rem; 3264 height: 0.7875rem; 3265 } 3266 .button.text_button_announ--announcement_KJTazA { 3267 3268 color: rgb(var(--colors-button-text)); 3269 3270 3271 background: rgba(var(--colors-button)); 3272 3273 } 3274 .dark .button.text_button_announ--announcement_KJTazA { 3275 3276 color: rgb(var(--colors-button-text)); 3277 3278 3279 background: rgba(var(--colors-button)); 3280 3281 } 3282 @media(min-width: 768px){ 3283 .button.text_button_announ--announcement_KJTazA { 3284 3285 color: rgba(var(--colors-button-text-hover)); 3286 3287 3288 background: rgba(var(--colors-button)); 3289 3290 } 3291 .dark .button.text_button_announ--announcement_KJTazA { 3292 3293 color: rgba(var(--colors-button-text-hover)); 3294 3295 3296 background: rgba(var(--colors-button)); 3297 3298 } 3299 } 3300 .text-link-with-arrow--announcement_KJTazA { 3301 3302 color: rgb(var(--colors-text-link)); 3303 3304 } 3305 .dark .text-link-with-arrow--announcement_KJTazA { 3306 3307 color: rgb(var(--colors-text-link)); 3308 3309 } 3310 .hyperlink-circle-color--announcement_KJTazA { 3311 3312 background-color: rgba(var(--colors-text-link)); 3313 3314 } 3315 .dark .hyperlink-circle-color--announcement_KJTazA { 3316 3317 background-color: rgba(var(--colors-button-text-hover)); 3318 3319 }</style><div x-slide-index="1" class="h-auto w-full flex items-center md:flex justify-center splide__slide x-splide-slide gradient text-center pt-3 pb-3 pl-5 pr-5 lg:pr-5 lg:pl-5" ><div 3320 3321 class="flex items-center flex-wrap justify-center gap-x-3 gap-y-2 ltr"> 3322 3323 <div class="text--announcement_KJTazA announcement-bar_text flex rtl:order-1"> 3324<p> 3325 <a href="/products/gloss-caramel-color-enhancement" class="button-link relative hover-text-link x-announcement-bar-block-data leading-[initial]" 3326 >NEW: GLOSS COLOR ENHANCEMENT IN CARAMEL</a> 3327 </p></div></div></div><style data-shopify>.text--announcement_TiPcRy .width-countdown { 3328 width: 6.3rem; 3329 }.text--announcement_TiPcRy, 3330 .btn--announcement_TiPcRy { 3331 font-size: 0.63rem; 3332 } 3333 @media (min-width: 768px) { 3334 .text--announcement_TiPcRy, 3335 .btn--announcement_TiPcRy { 3336 font-size: 0.7rem; 3337 } 3338 }.icon--announcement_TiPcRy { 3339 width: 0.7rem; 3340 height: 0.7rem; 3341 } 3342 .button.text_button_announ--announcement_TiPcRy { 3343 3344 color: rgb(var(--colors-button-text)); 3345 3346 3347 background: rgba(var(--colors-button)); 3348 3349 } 3350 .dark .button.text_button_announ--announcement_TiPcRy { 3351 3352 color: rgb(var(--colors-button-text)); 3353 3354 3355 background: rgba(var(--colors-button)); 3356 3357 } 3358 @media(min-width: 768px){ 3359 .button.text_button_announ--announcement_TiPcRy { 3360 3361 color: rgba(var(--colors-button-text-hover)); 3362 3363 3364 background: rgba(var(--colors-button)); 3365 3366 } 3367 .dark .button.text_button_announ--announcement_TiPcRy { 3368 3369 color: rgba(var(--colors-button-text-hover)); 3370 3371 3372 background: rgba(var(--colors-button)); 3373 3374 } 3375 } 3376 .text-link-with-arrow--announcement_TiPcRy { 3377 3378 color: rgb(var(--colors-text-link)); 3379 3380 } 3381 .dark .text-link-with-arrow--announcement_TiPcRy { 3382 3383 color: rgb(var(--colors-text-link)); 3384 3385 } 3386 .hyperlink-circle-color--announcement_TiPcRy { 3387 3388 background-color: rgba(var(--colors-text-link)); 3389 3390 } 3391 .dark .hyperlink-circle-color--announcement_TiPcRy { 3392 3393 background-color: rgba(var(--colors-button-text-hover)); 3394 3395 }</style><div x-slide-index="2" class="h-auto w-full flex items-center md:flex justify-center splide__slide x-splide-slide gradient text-center pt-3 pb-3 pl-5 pr-5 lg:pr-5 lg:pl-5" ><div 3396 3397 class="flex items-center flex-wrap justify-center gap-x-3 gap-y-2 ltr"> 3398 3399 <div class="text--announcement_TiPcRy announcement-bar_text flex rtl:order-1"> 3400<p> 3401 <a href="/collections/hair-products" class="button-link relative hover-text-link x-announcement-bar-block-data leading-[initial]" 3402 >FREE SHIPPING ON ORDERS $75+</a> 3403 </p></div></div></div></div> 3404 </div><div class="hidden lg:block splide__arrows"> 3405 <button class="splide__arrow splide__arrow--prev announcement-bar_text absolute none_border z-10 top-1/2 opacity-70 -translate-y-1/2 rtl:md:right-3 rtl:lg:right-4 rtl:-rotate-90 rtl:left-auto md:left-3 lg:left-4 rotate-90 disabled:cursor-not-allowed bg-none bg-inherit pt-2.5 pr-2.5 pb-2.5 pl-2.5" aria-label="previous slide">
3406 <span class="block w-4 h-4"> 3407 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3408 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 3409 </svg> 3410</span> 3411 </button> 3412 <button class="splide__arrow splide__arrow--next announcement-bar_text absolute none_border z-10 top-1/2 opacity-70 -translate-y-1/2 rtl:md:left-3 rtl:lg:left-4 rtl:rotate-90 rtl:right-auto md:right-3 lg:right-4 -rotate-90 disabled:cursor-not-allowed bg-none bg-inherit pt-2.5 pr-2.5 pb-2.5 pl-2.5" aria-label="next slide"> 3413 <span class="block w-4 h-4"> 3414 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3415 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 3416 </svg> 3417</span> 3418 </button> 3419 </div></div> 3420 3421 3422</div> 3423</div><div id="shopify-section-sections--26875466350902__header" class="shopify-section shopify-section-group-header-group section-header z-50"><style data-shopify> 3424 #x-header-container { 3425 contain: style layout; 3426 } 3427 3428 3429 .w-logo-header { 3430 width: 60px; 3431 min-width: 60px; 3432 } 3433 @media(min-width: 768px) { 3434 .w-logo-header { 3435 width: 90px; 3436 min-width: 90px; 3437 } 3438 } 3439 3440 3441 .section-header.is-sticky { 3442 position: sticky; 3443 z-index: 50; 3444 top: var(--announcement-height); 3445 } 3446 .is-sticky #x-header-container:not(.on-scroll-up-animation) { 3447 box-shadow: 0 5px 15px rgba(var(--colors-text), .1); 3448 } 3449 #x-header-container { 3450 transform: translateY(0); 3451 transition: transform 0.4s ease-in-out 0.1s; 3452 will-change: transform; 3453 } 3454 #x-header-container.on-scroll-up-animation { 3455 transform: translateY(var(--header-sticky-transform)); 3456 } 3457 .section-header:has(#x-header-container.on-scroll-up-animation) { 3458 pointer-events: none 3459 } 3460 3461 @media (min-width: 768px) { 3462 .scroll-sticky-popup-cart { 3463 transform: translateY(0); 3464 transition: transform 0.4s ease-in-out 0.1s; 3465 } 3466 .section-header:has(#x-header-container.on-scroll-up-animation) .scroll-sticky-popup-cart { 3467 transform: translateY(var(--header-sticky-transform)); 3468 } 3469 } 3470 3471 3472.logo-name { 3473 font-size: 1.125rem; 3474 } 3475 header { 3476 grid-template-areas: "drawer heading icons"; 3477 3478 } 3479 @media (min-width: 1024px) { 3480 header { 3481 grid-template-areas: "heading navigation icons" ". . ."; 3482 grid-template-columns: 1fr 4fr 1fr; 3483 } 3484 .logo-name { 3485 font-size: 2.25rem; 3486 } 3487 .pt-header { 3488 padding-top: 24px; 3489 } 3490 .pb-header { 3491 padding-bottom: 24px; 3492 } 3493 } 3494 .h-hamburger { 3495 height: var(--hamburger-menu-height); 3496 } 3497 @media (max-width: 1023px) { 3498 .section-padding-sections--26875466350902__header { 3499 padding-top: 8px; 3500 padding-bottom: 8px; 3501 } 3502 }</style><div x-show="$store.xHeaderMenu.overlay" 3503 x-transition:enter="ease-in-out duration-300" 3504 x-transition:enter-start="opacity-0" 3505 x-transition:enter-end="opacity-100" 3506 x-transition:leave="transition-all ease-in-out duration-300" 3507 x-transition:leave-end="opacity-0" 3508 class="bg-[rgba(0,0,0,0.4)] hidden lg:flex fixed top-0 right-0 bottom-0 left-0" x-cloak></div> 3509<div 3510 id="x-header-container" 3511 class="relative text-[rgb(var(--colors-text-header))] background-header" 3512 3513 3514 data-is-sticky="true" 3515 data-section-index="2" 3516 3517 x-init='() => { 3518 $store.xHeaderMenu.sectionId = "sections--26875466350902__header"; 3519 $store.xHeaderMenu.mobileHeaderLayout = "center-left"; 3520 $store.xHeaderMenu.initSticky($el, "on-scroll-up"); 3521 3522 }' 3523 3524 :class="($store.xMiniCart.open || $store.xHeaderMenu.show) && 'z-[60]'" 3525 3526 @click.away="$store.xHeaderMenu.openHamburgerMenu = false;" 3527 3528> 3529 <div 3530 id="sticky-header-content" 3531 class="sticky-header-content background-header sticky-header-active z-20 w-full top-0 3532 header-full-width" 3533 :class="{ 'padding-scrollbar-header': $store.xHeaderMenu.isSticky && ($store.xPopup.open || $store.xPopup.openVideoShopping), 'static': $store.xHeaderMenu.overlay, 'relative': !$store.xHeaderMenu.overlay}" 3534 3535 > 3536 <header 3537 class="header lg:pb-0 section-padding-sections--26875466350902__header pt-header lg:pb-0 full-width grid lg:mr-auto lg:ml-auto gap-x-2" :class="{ ' lg:pt-5': !$store.xHeaderMenu.isSticky, 'open-menu': $store.xHeaderMenu.overlay }" 3538 x-on:mouseleave="$store.xHeaderMenu.closeMenu()" 3539 > 3540 <div data-breakpoint="tablet" class="x-container-header-mobile-nav [grid-area:drawer] lg:hidden flex items-center w-full"> 3541 3542 3543 <style data-shopify> 3544 3545 .mobile-navigation-modern-icon-bg { 3546 background: rgba(var(--colors-line-header),1); 3547 } 3548 3549 </style> 3550 <div 3551 id="mobile-navigation" 3552 @click="setTimeout(() => { $store.xMobileNav.open() }, 0)" 3553 class="relative pt-2 pb-2 pl-2 pr-2 mobile-navigation-modern-icon-bg rounded-full cursor-pointer " 3554 > 3555 <div class="w-5 h-5">
3556 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3557 <path d="M1 7H23 M1 17H23" stroke="currentColor" stroke-width="2" stroke-linecap="round"/> 3558 </svg> 3559 3560</div> 3561 </div> 3562 </div> 3563 <h1 class="flex logo-name p-break-words lg:order-2 top-4 text-center [grid-area:heading] mr-auto ml-auto justify-center pb-header flex items-center lg:relative lg:left-0 lg:translate-x-0 lg:mt-0 lg:top-0 lg:ml-0 lg:justify-left lg:[grid-area:auto]" 3564 > 3565 3566 3567 3568<div class="flex"> 3569 <a href="/" class="w-logo-header h-auto disable-effect inline-block"><span class="hidden dark:block h-0 dark:h-auto mr-auto ml-auto md:ml-0">Calista Tools</span><img 3570 src="//calistatools.com/cdn/shop/files/Calista_Logo_stacked-butterfly_2025-01.png?v=1780260880&width=525" 3571 alt="Calista Tools" 3572 sizes="(min-width: 768px) 90px, 60px" 3573 srcset="//calistatools.com/cdn/shop/files/Calista_Logo_stacked-butterfly_2025-01.png?v=1780260880&width=50 50w, 3574 //calistatools.com/cdn/shop/files/Calista_Logo_stacked-butterfly_2025-01.png?v=1780260880&width=100 100w, 3575 //calistatools.com/cdn/shop/files/Calista_Logo_stacked-butterfly_2025-01.png?v=1780260880&width=150 150w, 3576 //calistatools.com/cdn/shop/files/Calista_Logo_stacked-butterfly_2025-01.png?v=1780260880&width=200 200w, 3577 //calistatools.com/cdn/shop/files/Calista_Logo_stacked-butterfly_2025-01.png?v=1780260880&width=250 250w, 3578 //calistatools.com/cdn/shop/files/Calista_Logo_stacked-butterfly_2025-01.png?v=1780260880&width=300 300w, 3579 //calistatools.com/cdn/shop/files/Calista_Logo_stacked-butterfly_2025-01.png?v=1780260880&width=400 400w, 3580 //calistatools.com/cdn/shop/files/Calista_Logo_stacked-butterfly_2025-01.png?v=1780260880&width=500 500w, 3581 //calistatools.com/cdn/shop/files/Calista_Logo_stacked-butterfly_2025-01.png?v=1780260880&width=600 600w" 3582 width="525" 3583 height="300" 3584 class="header-logo w-full block dark:hidden dark:absolute mr-auto ml-auto md:ml-0" 3585 loading="lazy" 3586 /></a> 3587</div> 3588</h1> 3589 3590 <div 3591 class="x-container-header-icons justify-end lg:order-4 [grid-area:icons] lg:[grid-area:auto] pb-header flex" 3592 > 3593 <div class="x-header-store-selector-container self-center md:block hidden md:mr-2.5 md:ml-3 empty:hidden"></div> 3594 3595 3596<style data-shopify> 3597 3598 @media (max-width: 767px) { 3599 .mobile-center-left #SearchOpen { 3600 left: 3.5rem; 3601 } 3602 .mobile-center-right #SearchOpen { 3603 right: 3.5rem; 3604 } 3605 } 3606 3607 </style> 3608 <div class="x-header-icon-search flex items-center justify-center mobile-center-left" @init-run.window="$store.xHeaderMenu.renderAjax($el, 'header-search-block', '#ajax-loading-header-search');"> 3609 <a 3610 id="SearchOpen" 3611 href="/search" 3612 aria-label="search" 3613 class="flex items-center cursor-pointer justify-center link focus-inset bg-none" 3614 @click.prevent="setTimeout(() => { $store.xModal.setActiveElement('SearchOpen'); }, 0)"> 3615 <span class="w-11 h-10 pl-3 pr-3 pt-2.5 pb-2"> 3616 <svg class="icon-animation icon-animation" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 24 24" fill="none"> 3617 <path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M11.192 20.223C16.5 20.223 20.803 15.92 20.803 10.612S16.5 1 11.192 1 1.58 5.303 1.58 10.612s4.304 9.611 9.612 9.611 M17.706 18.301 22.405 23"/> 3618 </svg> 3619 3620</span> 3621 </a> 3622 </div><shopify-store store-domain="https://calistatools.com" country="US" language="en"></shopify-store> 3623<shopify-account class="header-icon-account hidden lg:flex relative items-center justify-center" menu="customer-account-main-menu"> 3624 <div slot="signed-out-avatar"> 3625 <span class="w-11 h-10 pl-3 pr-2.5 pt-2.5 pb-2 block"> 3626 3627 <svg class="icon-animation" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewB
3627ox="0 0 24 24" fill="none"> 3628 <path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M21.776 23v-2.444a4.889 4.889 0 0 0-4.889-4.889H7.109a4.889 4.889 0 0 0-4.889 4.889V23 M11.998 10.778a4.889 4.889 0 1 0 0-9.778 4.889 4.889 0 0 0 0 9.778"/> 3629 </svg> 3630 3631 3632 </span> 3633 </div> 3634 </shopify-account><a 3635 id="cart-icon" 3636 href="/cart" 3637 class="relative flex items-center header-icon-cart cursor-pointer" 3638 3639 aria-controls="CartDrawer" 3640 aria-expanded="false" 3641 aria-label="icon-cart" 3642 > 3643 <span class="relative w-11 h-10 md:pl-3 inline-block pl-3 pr-0 md:pr-2.5 pt-2.5 pb-2"> 3644 3645 <svg class="icon-animation" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 24 24" fill="none"> 3646 <path fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M21.912 21.122a2.2 2.2 0 0 1-.423 1.32 2.16 2.16 0 0 1-1.269.558H3.703a2.16 2.16 0 0 1-1.269-.558 2.2 2.2 0 0 1-.423-1.32L3.5 7.77h16.923l1.489 13.353ZM7.731 7.769V5.231a4.23 4.23 0 1 1 8.462 0v2.538"/> 3647 </svg> 3648 3649 <div id="cart-icon-bubble" > 3650 <div 3651 class="count_item absolute text-center place-content-center -top-0.5 -right-1.5 md:right-0 bg-[rgba(var(--colors-cart))] text-[rgba(var(--colors-cart-text))] font-medium h-5 w-5 rounded-full text-[9px] hidden" 3652 data-value="0" 3653 >0</div> 3654 </div> 3655 </span> 3656 </a></div> 3657 3658 3659 3660 3661 3662 3663<style data-shopify> 3664 .svg-highlight-sections--26875466350902__header { 3665 --color-highlight: #aa0167; 3666 } 3667 .dark .svg-highlight-sections--26875466350902__header { 3668 --color-highlight: rgb(145, 180, 116); 3669 } 3670 3671 .x-icon-caret svg { 3672 color: var(--colors-text-header); 3673 --tw-rotate: 0deg; 3674 transform: rotate(var(--tw-rotate)); 3675 transition: transform 0.5s ease 0.1s; 3676 } 3677 .is-focus .x-icon-caret svg { 3678 color: var(--colors-text-link); 3679 --tw-rotate: 180deg; 3680 } 3681</style><nav 3682 x-on:click.away="$store.xHeaderMenu.closeMenu()" 3683 class="x-container-header-nav [grid-area:navigation] w-full order-3 hidden header__inline-menu lg:flex items-center pb-header lg:[grid-area:auto] justify-center" 3684> 3685 <ul class="list-menu inline-flex flex-wrap gap-x-10 items-center justify-center" 3686 > 3687 3688 3689<li 3690 id="tree_menu_CTY9mU" 3691 class="tree-menu " 3692 3693 3694 :class="$store.xHeaderMenu.show === 1 && 'is-focus'" 3695 3696 > 3697 <div class=" relative cursor-pointer tree-menu-item p-break-words inline-block justify-center pt-1 pb-1 relative hover-text-link is-focus:link-active" x-data='{ active: false }' 3698 3699 > 3700 <div class=" flex items-center"> 3701 <div class="relative x-anm"> 3702 <a 3703 href="/collections/best-sellers" 3704 class=" cursor-pointer tree-menu-item p-break-words inline-block justify-center pt-1 pb-1 relative hover-text-link is-focus:link-active" 3705 3706 > 3707 3708 3709 3710 3711 3712 Bestsellers 3713 3714 3715 3716 </a></div> 3717 </div></div></li> 3718<li class="simple_menu has-dropdown" 3719 3720 @mouseover="$store.xHeaderMenu.openMenu(2, true);" 3721 @focusin="$store.xHeaderMenu.openMenu(2, true)" 3722 :class="$store.xHeaderMenu.show === 2 && 'is-focus'" 3723 3724 > 3725 <div class=" simple_menu_item relative cursor-pointer flex items-center p-break-words justify-center pt-1 pb-1 hover-text-link is-focus:link-active" 3726 3727 3728 x-intersect.once="$store.xHeaderMenu.isTouch && $store.xHeaderMenu.touchItem($el, false, 2)" 3729 3730 3731 > 3732 <div class=" flex items-center mr-2"> 3733 <div class="relative x-anm"> 3734 <a href="#" 3735 class=" cursor-pointer flex items-center p-break-words justify-center pt-1 pb-1 hover-text-link
3735is-focus:link-active" 3736 > 3737 3738 3739 3740 3741 3742 Hair Tools 3743 3744 3745 3746 </a> 3747 3748 </div> 3749 </div><span class="x-icon-caret duration-500 w-3"> 3750 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3751 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 3752 </svg> 3753</span></div> 3754 3755<template x-if="!$store.xInit.runDispatch"> 3756 <div 3757 id="menu-2" 3758 :class="{ 'toggle-menu-hidden': $store.xHeaderMenu.show !== 2, 'toggle-menu-show': $store.xHeaderMenu.show === 2, 'active': $store.xHeaderMenu.initIndex.has(2) }" 3759 class="toggle-menu top-full text-[rgba(var(--colors-text))] mega-menu-horizontal main-nav-child-right is-focus:text-[rgba(var(--colors-text))] absolute w-full background-header left-0 z-50 shadow-md ltr" 3760 > 3761 <div class="toggle-menu-child x-pgw page-width mr-auto ml-auto flex promotion-horizontal image-count-2"><ul class="mega-nav md:max-h-[calc(80vh-4rem)] justify-left order-2 scrollbar-body scrollbar-visible flex-wrap relative gap-5 xl:gap-8 flex pt-7 pb-8 flex-row z-50 left-0 right-0 w-1/2 top-full"><style data-shopify> 3762</style><li class="relative w-col-menu"> 3763 <div class="font-semibold"> 3764 3765 3766 <a href="/collections/hair-styling-tools" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block mb-3"> 3767 3768 3769 3770 3771 3772 <span class="p-break-words">Hair Tools</span> 3773 3774 3775 3776 </a> 3777 </div><ul class="list-unstyled" role="list"><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 3778 3779 3780 <span class="flex-1"> 3781 <a href="/collections/hair-curling-irons" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 3782 3783 3784 3785 3786 3787 <span class="p-break-words">Curling Brushes</span> 3788 3789 3790 3791 </a> 3792 </span> 3793 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 3794 3795 3796 <span class="flex-1"> 3797 <a href="/collections/rollers" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 3798 3799 3800 3801 3802 3803 <span class="p-break-words">Hot Rollers</span> 3804 3805 3806 3807 </a> 3808 </span> 3809 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 3810 3811 3812 <span class="flex-1"> 3813 <a href="/collections/hair-straighteners" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 3814 3815 3816 3817 3818
3819 <span class="p-break-words">Straightening Tools</span> 3820 3821 3822 3823 </a> 3824 </span> 3825 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 3826 3827 3828 <span class="flex-1"> 3829 <a href="/collections/hair-dryers" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 3830 3831 3832 3833 3834 3835 <span class="p-break-words">Hair Dryers</span> 3836 3837 3838 3839 </a> 3840 </span> 3841 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 3842 3843 3844 <span class="flex-1"> 3845 <a href="/products/eliteair-multi-style-dryer-gen-2" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 3846 3847 3848 3849 3850 3851 <span class="p-break-words">Multi-Stylers</span> 3852 3853 3854 3855 </a> 3856 </span> 3857 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 3858 3859 3860 <span class="flex-1"> 3861 <a href="/collections/gogo-mini-styling-tools" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 3862 3863 3864 3865 3866 3867 <span class="p-break-words">Travel-Size</span> 3868 3869 3870 3871 </a> 3872 </span> 3873 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 3874 3875 3876 <span class="flex-1"> 3877 <a href="/products/bodywaver-large-wave-hair-styler" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 3878 3879 3880 3881 3882 3883 <span class="p-break-words">Bodywavers</span> 3884 3885 3886 3887 </a> 3888 </span> 3889 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 3890 3891 3892 <span class="flex-1"> 3893 <a href="/collections/vault-tools" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 3894 3895 3896 3897 3898 3899 <span class="p-break-words">Vault Tools</span> 3900 3901 3902 3903 </a> 3904 </span> 3905 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 3906 3907
3908 <span class="flex-1"> 3909 <a href="/collections/refurbished-tools" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 3910 3911 3912 3913 3914 3915 <span class="p-break-words">Refurbished</span> 3916 3917 3918 3919 </a> 3920 </span> 3921 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 3922 3923 3924 <span class="flex-1"> 3925 <a href="/collections/hair-styling-tools" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 3926 3927 3928 3929 3930 3931 <span class="p-break-words">Shop All Tools</span> 3932 3933 3934 3935 </a> 3936 </span> 3937 </li></ul></li><li class="relative w-col-menu"> 3938 <div class="font-semibold"> 3939 3940 3941 <a href="/collections/best-sellers" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block mb-3"> 3942 3943 3944 3945 3946 3947 <span class="p-break-words">Bestsellers</span> 3948 3949 3950 3951 </a> 3952 </div><ul class="list-unstyled" role="list"><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 3953 3954 3955 <span class="flex-1"> 3956 <a href="/collections/perfecters" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 3957 3958 3959 3960 3961 3962 <span class="p-break-words">Perfecter Pro</span> 3963 3964 3965 3966 </a> 3967 </span> 3968 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 3969 3970 3971 <span class="flex-1"> 3972 <a href="/products/ion-hot-rollers-long-set-gen-2" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 3973 3974 3975 3976 3977 3978 <span class="p-break-words">Ion Hot Rollers</span> 3979 3980 3981 3982 </a> 3983 </span> 3984 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 3985 3986 3987 <span class="flex-1">
3988 <a href="/products/gogo-mini-round-brush" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 3989 3990 3991 3992 3993 3994 <span class="p-break-words">GoGo Mini Round Brush</span> 3995 3996 3997 3998 </a> 3999 </span> 4000 </li></ul></li></ul><div class="relative md:max-h-[calc(80vh-4rem)] overflow-hidden float-right md:right-5 lg:right-0 pt-8 pb-8 w-1/2 order-4" 4001 > 4002 <div class="mega-nav-promotions md:max-h-[calc(80vh-6rem)] pb-4 scrollbar-body scrollbar-visible overflow-y-auto flex gap-5"><style data-shopify> 4003 .image-simple_menu_TAHeat-1 { 4004 height: 300px; 4005 } 4006 </style> 4007 4008 <div class="mega-menu-card w-full group relative background-color-simple_menu_TAHeat-1 ltr" 4009 > 4010 4011<div 4012 4013 class="w-full relative z-0 before:h-0 before:block promotion-header image-simple_menu_TAHeat-1 pb-[%] overflow-hidden" 4014 4015 > 4016 4017 4018 <a 4019 aria-label="Image link" 4020 href="/products/eliteair-multi-style-dryer-gen-2" 4021 4022 class="animate_transition_card__image animate-Xpulse skeleton-image w-full h-full top-0 left-0 overflow-hidden absolute md:absolute" 4023 > 4024 4025 <img 4026 srcset="//calistatools.com/cdn/shop/files/eiteair-billie-hpCallout-3x4.webp?v=1782769812&width=225 225w, 4027 //calistatools.com/cdn/shop/files/eiteair-billie-hpCallout-3x4.webp?v=1782769812&width=375 375w, 4028 //calistatools.com/cdn/shop/files/eiteair-billie-hpCallout-3x4.webp?v=1782769812&width=450 450w, 4029 //calistatools.com/cdn/shop/files/eiteair-billie-hpCallout-3x4.webp?v=1782769812&width=750 750w, 4030 //calistatools.com/cdn/shop/files/eiteair-billie-hpCallout-3x4.webp?v=1782769812&width=900 900w, 4031 //calistatools.com/cdn/shop/files/eiteair-billie-hpCallout-3x4.webp?v=1782769812&width=1100 1100w, 4032 //calistatools.com/cdn/shop/files/eiteair-billie-hpCallout-3x4.webp?v=1782769812&width=1500 1500w, 4033 //calistatools.com/cdn/shop/files/eiteair-billie-hpCallout-3x4.webp?v=1782769812&width=1780 1780w" 4034 src="//calistatools.com/cdn/shop/files/eiteair-billie-hpCallout-3x4.webp?v=1782769812&width=1780" 4035 4036 4037 4038 loading="lazy" 4039 4040 4041 4042 sizes="(min-width: 1400px) 350px, (min-width: 768px) calc(100vw/4), 100vw" 4043 alt="" 4044 width="1000" 4045 height="1333" 4046 style="object-position: 31.738% 62.695%;" 4047 class="w-full h-full object-cover z-10 image-hover " 4048 onload="requestAnimationFrame(() => { 4049 this?.classList.add('active'); 4050 this.closest('.animate_transition_card__image')?.classList.remove('animate-Xpulse', 'skeleton-image'); 4051 setTimeout(() => { this.closest('.animate_transition_card__image')?.classList.add('lazy_active', 'active'); }, 250); 4052 });" 4053 /> 4054 </a> 4055 4056 <span class="absolute top-0 left-0 bottom-0 right-0 pointer-events-none image-treatment-overlay opacity-0"></span></div><style data-shopify> 4057.title-color-simple_menu_TAHeat-1 { 4058 color: ; 4059 --colors-heading: , , ; 4060 }.button--simple_menu_TAHeat-1.button-solid, 4061 .button--simple_menu_TAHeat-1.button-solid:before {--colors-line-and-border: var(--colors-button);} 4062 4063 </style> 4064 4065 <a 4066 aria-label="Image link" 4067 href="/products/eliteair-multi-style-dryer-gen-2" 4068 4069 > 4070 4071 <div class="promotion-content background-color-simple_menu_TAHeat-1 text-center rtl:text-center 4072 pt-3 pb-3 pr-4 pl-4 4073 left-0 right-0 grow" 4074 ><style data-shopify> 4075 .text-simple_menu_TAHeat-1 { 4076 font-size: 0.86625rem; 4077 } 4078 @media (min-width: 768px) { 4079 .text-simple_menu_TAHeat-1 { 4080 font-size: 0.9625rem; 4081 } 4082 } 4083 </style> 4084 <div class="mb-1 leading-tight rte text-color-simple_menu_TAHeat-1 text-simple_menu_TAHeat-1 p-break-words pointer-events-auto">EliteAir Multi-Style Dryer</div> 4085 </div> 4086 4087 </a> 4088 4089 4090 4091 </div><style data-shopify> 4092 .image-simple_menu_TAHeat-2 {
4093 height: 300px; 4094 } 4095 </style> 4096 4097 <div class="mega-menu-card w-full group relative background-color-simple_menu_TAHeat-2 ltr" 4098 > 4099 4100<div 4101 4102 class="w-full relative z-0 before:h-0 before:block promotion-header image-simple_menu_TAHeat-2 pb-[%] overflow-hidden" 4103 4104 > 4105 4106 4107 <a 4108 aria-label="Image link" 4109 href="/products/ion-hot-rollers-long-set-gen-2" 4110 4111 class="animate_transition_card__image animate-Xpulse skeleton-image w-full h-full top-0 left-0 overflow-hidden absolute md:absolute" 4112 > 4113 4114 <img 4115 srcset="//calistatools.com/cdn/shop/files/ionRollers-hp-quote-2400x2400.webp?v=1782863005&width=225 225w, 4116 //calistatools.com/cdn/shop/files/ionRollers-hp-quote-2400x2400.webp?v=1782863005&width=375 375w, 4117 //calistatools.com/cdn/shop/files/ionRollers-hp-quote-2400x2400.webp?v=1782863005&width=450 450w, 4118 //calistatools.com/cdn/shop/files/ionRollers-hp-quote-2400x2400.webp?v=1782863005&width=750 750w, 4119 //calistatools.com/cdn/shop/files/ionRollers-hp-quote-2400x2400.webp?v=1782863005&width=900 900w, 4120 //calistatools.com/cdn/shop/files/ionRollers-hp-quote-2400x2400.webp?v=1782863005&width=1100 1100w, 4121 //calistatools.com/cdn/shop/files/ionRollers-hp-quote-2400x2400.webp?v=1782863005&width=1500 1500w, 4122 //calistatools.com/cdn/shop/files/ionRollers-hp-quote-2400x2400.webp?v=1782863005&width=1780 1780w" 4123 src="//calistatools.com/cdn/shop/files/ionRollers-hp-quote-2400x2400.webp?v=1782863005&width=1780" 4124 4125 4126 4127 loading="lazy" 4128 4129 4130 4131 sizes="(min-width: 1400px) 350px, (min-width: 768px) calc(100vw/4), 100vw" 4132 alt="" 4133 width="2400" 4134 height="2400" 4135 style="object-position: 29.297% 75.586%;" 4136 class="w-full h-full object-cover z-10 image-hover " 4137 onload="requestAnimationFrame(() => { 4138 this?.classList.add('active'); 4139 this.closest('.animate_transition_card__image')?.classList.remove('animate-Xpulse', 'skeleton-image'); 4140 setTimeout(() => { this.closest('.animate_transition_card__image')?.classList.add('lazy_active', 'active'); }, 250); 4141 });" 4142 /> 4143 </a> 4144 4145 <span class="absolute top-0 left-0 bottom-0 right-0 pointer-events-none image-treatment-overlay opacity-0"></span></div><style data-shopify> 4146.title-color-simple_menu_TAHeat-2 { 4147 color: ; 4148 --colors-heading: , , ; 4149 }.button--simple_menu_TAHeat-2.button-solid, 4150 .button--simple_menu_TAHeat-2.button-solid:before {--colors-line-and-border: var(--colors-button);} 4151 4152 </style> 4153 4154 <a 4155 aria-label="Image link" 4156 href="/products/ion-hot-rollers-long-set-gen-2" 4157 4158 > 4159 4160 <div class="promotion-content background-color-simple_menu_TAHeat-2 text-center rtl:text-center 4161 pt-3 pb-3 pr-4 pl-4 4162 left-0 right-0 grow" 4163 ><style data-shopify> 4164 .text-simple_menu_TAHeat-2 { 4165 font-size: 0.86625rem; 4166 } 4167 @media (min-width: 768px) { 4168 .text-simple_menu_TAHeat-2 { 4169 font-size: 0.9625rem; 4170 } 4171 } 4172 </style> 4173 <div class="mb-1 leading-tight rte text-color-simple_menu_TAHeat-2 text-simple_menu_TAHeat-2 p-break-words pointer-events-auto">Ion Hot Rollers Gen 2</div> 4174 </div> 4175 4176 </a> 4177 4178 4179 4180 </div></div> 4181 </div></div> 4182 4183 </div> 4184 </template></li> 4185<li class="simple_menu has-dropdown" 4186 4187 @mouseover="$store.xHeaderMenu.openMenu(3, true);" 4188 @focusin="$store.xHeaderMenu.openMenu(3, true)" 4189 :class="$store.xHeaderMenu.show === 3 && 'is-focus'" 4190 4191 > 4192 <div class=" simple_menu_item relative cursor-pointer flex items-center p-break-words justify-center pt-1 pb-1 hover-text-link is-focus:link-active" 4193 4194 4195 x-intersect.once="$store.xHeaderMenu.isTouch && $store.xHeaderMenu.touchItem($el, false, 3)" 4196 4197 4198 > 4199 <div class=" flex items-center mr-2"> 4200 <div class="relative x-anm"> 4201 <a href="#" 4202 class=" cursor-pointer flex items-center p-break-words justify-center pt-1 pb-1 hover-text-link
4202is-focus:link-active" 4203 > 4204 4205 4206 4207 4208 4209 Styling Products 4210 4211 4212 4213 </a> 4214 4215 </div> 4216 </div><span class="x-icon-caret duration-500 w-3"> 4217 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4218 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 4219 </svg> 4220</span></div> 4221 4222<template x-if="!$store.xInit.runDispatch"> 4223 <div 4224 id="menu-3" 4225 :class="{ 'toggle-menu-hidden': $store.xHeaderMenu.show !== 3, 'toggle-menu-show': $store.xHeaderMenu.show === 3, 'active': $store.xHeaderMenu.initIndex.has(3) }" 4226 class="toggle-menu top-full text-[rgba(var(--colors-text))] mega-menu-horizontal main-nav-child-right is-focus:text-[rgba(var(--colors-text))] absolute w-full background-header left-0 z-50 shadow-md ltr" 4227 > 4228 <div class="toggle-menu-child x-pgw page-width mr-auto ml-auto flex promotion-horizontal image-count-2"><ul class="mega-nav md:max-h-[calc(80vh-4rem)] justify-left order-2 scrollbar-body scrollbar-visible flex-wrap relative gap-5 xl:gap-8 flex pt-7 pb-8 flex-row z-50 left-0 right-0 w-1/2 top-full"><style data-shopify> 4229</style><li class="relative w-col-menu"> 4230 <div class="font-semibold"> 4231 4232 4233 <a href="/collections/hair-styling-products" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block mb-3"> 4234 4235 4236 4237 4238 4239 <span class="p-break-words">by Category</span> 4240 4241 4242 4243 </a> 4244 </div><ul class="list-unstyled" role="list"><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4245 4246 4247 <span class="flex-1"> 4248 <a href="/collections/hair-spray" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4249 4250 4251 4252 4253 4254 <span class="p-break-words">Hairsprays</span> 4255 4256 4257 4258 </a> 4259 </span> 4260 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4261 4262 4263 <span class="flex-1"> 4264 <a href="/collections/hair-products-for-texture" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4265 4266 4267 4268 4269 4270 <span class="p-break-words">Texturizers</span> 4271 4272 4273 4274 </a> 4275 </span> 4276 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4277 4278 4279 <span class="flex-1"> 4280 <a href="/collections/hair-treatments" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4281 4282 4283 4284 4285
4286 <span class="p-break-words">Treatments</span> 4287 4288 4289 4290 </a> 4291 </span> 4292 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4293 4294 4295 <span class="flex-1"> 4296 <a href="/products/embellish-root-touch-up-dark-brown" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4297 4298 4299 4300 4301 4302 <span class="p-break-words">Root Touch-Up</span> 4303 4304 4305 4306 </a> 4307 </span> 4308 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4309 4310 4311 <span class="flex-1"> 4312 <a href="/collections/hair-styling-creams-and-paste" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4313 4314 4315 4316 4317 4318 <span class="p-break-words">Creams & Foams</span> 4319 4320 4321 4322 </a> 4323 </span> 4324 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4325 4326 4327 <span class="flex-1"> 4328 <a href="/collections/hair-styling-kits-sets" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4329 4330 4331 4332 4333 4334 <span class="p-break-words">Value Sets</span> 4335 4336 4337 4338 </a> 4339 </span> 4340 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4341 4342 4343 <span class="flex-1"> 4344 <a href="/collections/hair-styling-products" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4345 4346 4347 4348 4349 4350 <span class="p-break-words">All Styling Products</span> 4351 4352 4353 4354 </a> 4355 </span> 4356 </li></ul></li><li class="relative w-col-menu"> 4357 <div class="font-semibold"> 4358 4359 4360 <a href="/collections/hair-styling-products" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block mb-3"> 4361 4362 4363 4364 4365 4366 <span class="p-break-words">by Collection</span> 4367 4368 4369 4370 </a> 4371 </div><ul class="list-unstyled" role="list"><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4372 4373
4374 <span class="flex-1"> 4375 <a href="/collections/embellish-styling-products" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4376 4377 4378 4379 4380 4381 <span class="p-break-words">EMBELLISH</span> 4382 4383 4384 4385 </a> 4386 </span> 4387 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4388 4389 4390 <span class="flex-1"> 4391 <a href="/collections/stratosphere-hair-products" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4392 4393 4394 4395 4396 4397 <span class="p-break-words">STRATOSPHERE</span> 4398 4399 4400 4401 </a> 4402 </span> 4403 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4404 4405 4406 <span class="flex-1"> 4407 <a href="/collections/the-gloss-line" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4408 4409 4410 4411 4412 4413 <span class="p-break-words">GLOSS</span> 4414 4415 4416 4417 </a> 4418 </span> 4419 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4420 4421 4422 <span class="flex-1"> 4423 <a href="/collections/the-jousse-line" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4424 4425 4426 4427 4428 4429 <span class="p-break-words">JOUSSE</span> 4430 4431 4432 4433 </a> 4434 </span> 4435 </li></ul></li></ul><div class="relative md:max-h-[calc(80vh-4rem)] overflow-hidden float-right md:right-5 lg:right-0 pt-8 pb-8 w-1/2 order-4" 4436 > 4437 <div class="mega-nav-promotions md:max-h-[calc(80vh-6rem)] pb-4 scrollbar-body scrollbar-visible overflow-y-auto flex gap-5"><style data-shopify> 4438 .image-simple_menu_nFJmqj-1 { 4439 height: 300px; 4440 } 4441 </style> 4442 4443 <div class="mega-menu-card w-full group relative background-color-simple_menu_nFJmqj-1 ltr" 4444 > 4445 4446<div 4447 4448 class="w-full relative z-0 before:h-0 before:block promotion-header image-simple_menu_nFJmqj-1 pb-[%] overflow-hidden" 4449 4450 > 4451 4452 4453 <a 4454 aria-label="Image link" 4455 href="/products/jousse-vitality-heat-protectant-spray" 4456 4457 class="animate_transition_card__image animate-Xpulse skeleton-image w-full h-full top-0 left-0 overflow-hidden absolute md:absolute" 4458 > 4459 4460 <img 4461 srcset="//calistatools.com/cdn/shop/files/healthy-hair-hp-block-2000x2000.webp?v=1782799154&width=225 225w, 4462 //calistatools.com/cdn/shop/files/healthy-hair-hp-block-2000x2000.webp?v=1782799154&width=375 375w, 4463 //calistatools.com/cdn/shop/files/healthy-hair-hp-block-2000x2000.webp?v=1782799154&width=450 450w, 4464 //calistatools.com/cdn/shop/files/healthy-hair-hp-block-2000x2000.webp?v=1782799154&width=750 750w, 4465 //calistatools.com/cdn/shop/files/healthy-hair-hp-block-2000x2000.webp?v=1782799154&width=900 900w, 4466 //calistatools.com/cdn/shop/files/healthy-hair-hp-block-2000x2000.webp?v=1782799154&width=1100 1100w, 4467 //calistatools.com/cdn/shop/files/healthy-hair-hp-block-2000x2000.webp?v=1782799154&width=1500 1500w, 4468 //calistatools.com/cdn/shop/files/healthy-hair-hp-block-2000x2000.webp?v=1782799154&width=1780 1780w" 4469 src="//calistatools.com/cdn/shop/files/healthy-hair-hp-block-2000x2000.webp?v=1782799154&width=1780" 4470 4471 4472 4473 loading="lazy" 4474 4475 4476 4477 sizes="(min-width: 1400px) 350px, (min-width: 768px) calc(100vw/4), 100vw" 4478 alt="" 4479 width="2000" 4480 height="2000" 4481 style="object-position: 51.66% 21.387%;" 4482 class="w-full h-full object-cover z-10 image-hover " 4483 onload="requestAnimationFrame(() => { 4484 this?.classList.add('active'); 4485 this.closest('.animate_transition_card__image')?.classList.remove('animate-Xpulse', 'skeleton-image'); 4486 setTimeout(() => { this.closest('.animate_transition_card__image')?.classList.add('lazy_active', 'active'); }, 250); 4487 });" 4488 /> 4489 </a> 4490 4491 <span class="absolute top-0 left-0 bottom-0 right-0 pointer-events-none image-treatment-overlay opacity-0"></span></div><style data-shopify> 4492.title-color-simple_menu_nFJmqj-1 { 4493 color: ; 4494 --colors-heading: , , ; 4495 }.button--simple_menu_nFJmqj-1.button-solid, 4496 .button--simple_menu_nFJmqj-1.button-solid:before {--colors-line-and-border: var(--colors-button);} 4497 4498 </style> 4499 4500 <a 4501 aria-label="Image link" 4502 href="/products/jousse-vitality-heat-protectant-spray" 4503 4504 > 4505 4506 <div class="promotion-content background-color-simple_menu_nFJmqj-1 text-center rtl:text-center 4507 pt-3 pb-3 pr-4 pl-4 4508 left-0 right-0 grow" 4509 ><style data-shopify> 4510 .text-simple_menu_nFJmqj-1 { 4511 font-size: 0.86625rem; 4512 } 4513 @media (min-width: 768px) { 4514 .text-simple_menu_nFJmqj-1 { 4515 font-size: 0.9625rem; 4516 } 4517 } 4518 </style> 4519 <div class="mb-1 leading-tight rte text-color-simple_menu_nFJmqj-1 text-simple_menu_nFJmqj-1 p-break-words pointer-events-auto">JOUSSE Vitality Spray</div> 4520 </div> 4521 4522 </a> 4523 4524 4525 4526 </div><style data-shopify> 4527 .image-simple_menu_nFJmqj-2 { 4528 height: 300px; 4529 } 4530 </style> 4531 4532 <div class="mega-menu-card w-full group relative background-color-simple_menu_nFJmqj-2 ltr" 4533 > 4534 4535<div 4536 4537 class="w-full relative z-0 before:h-0 before:block promotion-header image-simple_menu_nFJmqj-2 pb-[%] overflow-hidden" 4538 4539 > 4540 4541 4542 <a 4543 aria-label="Image link" 4544 href="/products/gloss-restorative-shine-serum" 4545 4546 class="animate_transition_card__image animate-Xpulse skeleton-image w-full h-full top-0 left-0 overflow-hidden absolute md:absolute" 4547 > 4548 4549 <img 4550 srcset="//calistatools.com/cdn/shop/files/glossShine-mainNav-promo-1200x1200.webp?v=1783024972&width=225 225w, 4551 //calistatools.com/cdn/shop/files/glossShine-mainNav-promo-1200x1200.webp?v=1783024972&width=375 375w, 4552 //calistatools.com/cdn/shop/files/glossShine-mainNav-promo-1200x1200.webp?v=1783024972&width=450 450w, 4553 //calistatools.com/cdn/shop/files/glossShine-mainNav-promo-1200x1200.webp?v=1783024972&width=750 750w, 4554 //calistatools.com/cdn/shop/files/glossShine-mainNav-promo-1200x1200.webp?v=1783024972&width=900 900w, 4555 //calistatools.com/cdn/shop/files/glossShine-mainNav-promo-1200x1200.webp?v=1783024972&width=1100 1100w, 4556 //calistatools.com/cdn/shop/files/glossShine-mainNav-promo-1200x1200.webp?v=1783024972&width=1500 1500w, 4557 //calistatools.com/cdn/shop/files/glossShine-mainNav-promo-1200x1200.webp?v=1783024972&width=1780 1780w" 4558 src="//calistatools.com/cdn/shop/files/glossShine-mainNav-promo-1200x1200.webp?v=1783024972&width=1780" 4559 4560 4561 4562 loading="lazy" 4563 4564 4565 4566 sizes="(min-width: 1400px) 350px, (min-width: 768px) calc(100vw/4), 100vw" 4567 alt="" 4568 width="1200" 4569 height="1200" 4570 style="object-position: 61.816% 58.691%;" 4571 class="w-full h-full object-cover z-10 image-hover " 4572 onload="requestAnimationFrame(() => { 4573 this?.classList.add('active'); 4574 this.closest('.animate_transition_card__image')?.classList.remove('animate-Xpulse', 'skeleton-image'); 4575 setTimeout(() => { this.closest('.animate_transition_card__image')?.classList.add('lazy_active', 'active'); }, 250); 4576 });" 4577 /> 4578 </a> 4579 4580 <span class="absolute top-0 left-0 bottom-0 right-0 pointer-events-none image-treatment-overlay opacity-0"></span></div><style data-shopify> 4581.title-color-simple_menu_nFJmqj-2 { 4582 color: ; 4583 --colors-heading: , , ; 4584 }.button--simple_menu_nFJmqj-2.button-solid, 4585 .button--simple_menu_nFJmqj-2.button-solid:before {--colors-line-and-border: var(--colors-button);} 4586 4587 </style> 4588 4589 <a 4590 aria-label="Image link" 4591 href="/products/gloss-restorative-shine-serum" 4592 4593 > 4594 4595 <div class="promotion-content background-color-simple_menu_nFJmqj-2 text-center rtl:text-center 4596 pt-3 pb-3 pr-4 pl-4 4597 left-0 right-0 grow" 4598 ><style data-shopify> 4599 .text-simple_menu_nFJmqj-2 { 4600 font-size: 0.86625rem; 4601 } 4602 @media (min-width: 768px) { 4603 .text-simple_menu_nFJmqj-2 { 4604 font-size: 0.9625rem; 4605 } 4606 } 4607 </style> 4608 <div class="mb-1 leading-tight rte text-color-simple_menu_nFJmqj-2 text-simple_menu_nFJmqj-2 p-break-words pointer-events-auto">GLOSS Shine Recovery Serum</div> 4609 </div> 4610 4611 </a> 4612 4613 4614 4615 </div></div> 4616 </div></div> 4617 4618 </div> 4619 </template></li> 4620<li class="simple_menu has-dropdown" 4621 4622 @mouseover="$store.xHeaderMenu.openMenu(4, true);" 4623 @focusin="$store.xHeaderMenu.openMenu(4, true)" 4624 :class="$store.xHeaderMenu.show === 4 && 'is-focus'" 4625 4626 > 4627 <div class=" simple_menu_item relative cursor-pointer flex items-center p-break-words justify-center pt-1 pb-1 hover-text-link
4627is-focus:link-active" 4628 4629 4630 x-intersect.once="$store.xHeaderMenu.isTouch && $store.xHeaderMenu.touchItem($el, false, 4)" 4631 4632 4633 > 4634 <div class=" flex items-center mr-2"> 4635 <div class="relative x-anm"> 4636 <a href="#" 4637 class=" cursor-pointer flex items-center p-break-words justify-center pt-1 pb-1 hover-text-link is-focus:link-active" 4638 > 4639 4640 4641 4642 4643 4644 Shop All 4645 4646 4647 4648 </a> 4649 4650 </div> 4651 </div><span class="x-icon-caret duration-500 w-3"> 4652 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4653 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 4654 </svg> 4655</span></div> 4656 4657<template x-if="!$store.xInit.runDispatch"> 4658 <div 4659 id="menu-4" 4660 :class="{ 'toggle-menu-hidden': $store.xHeaderMenu.show !== 4, 'toggle-menu-show': $store.xHeaderMenu.show === 4, 'active': $store.xHeaderMenu.initIndex.has(4) }" 4661 class="toggle-menu top-full text-[rgba(var(--colors-text))] mega-menu-horizontal is-focus:text-[rgba(var(--colors-text))] absolute w-full background-header left-0 z-50 shadow-md ltr" 4662 > 4663 <div class="toggle-menu-child x-pgw page-width mr-auto ml-auto mega-menu-container"><ul class="mega-nav md:max-h-[calc(80vh-4rem)] justify-left order-2 scrollbar-body scrollbar-visible flex-wrap relative gap-5 xl:gap-8 flex pt-7 pb-8 flex-row z-50 left-0 right-0 w-full top-full"><style data-shopify> 4664</style><li class="relative w-col-menu"> 4665 <div class="font-semibold"> 4666 4667 4668 <a href="/collections/hair-styling-tools" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block mb-3"> 4669 4670 4671 4672 4673 4674 <span class="p-break-words">Hair Tools</span> 4675 4676 4677 4678 </a> 4679 </div><ul class="list-unstyled" role="list"><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4680 4681 4682 <span class="flex-1"> 4683 <a href="/collections/hair-curling-irons" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4684 4685 4686 4687 4688 4689 <span class="p-break-words">Curling Tools</span> 4690 4691 4692 4693 </a> 4694 </span> 4695 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4696 4697 4698 <span class="flex-1"> 4699 <a href="/collections/rollers" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4700 4701 4702 4703 4704 4705 <span class="p-break-words">Hot Rollers</span> 4706 4707 4708 4709 </a> 4710 </span> 4711 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4712 4713
4714 <span class="flex-1"> 4715 <a href="/products/eliteair-multi-style-dryer-gen-2" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4716 4717 4718 4719 4720 4721 <span class="p-break-words">Multi-Stylers</span> 4722 4723 4724 4725 </a> 4726 </span> 4727 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4728 4729 4730 <span class="flex-1"> 4731 <a href="/collections/hair-straighteners" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4732 4733 4734 4735 4736 4737 <span class="p-break-words">Straightening Tools</span> 4738 4739 4740 4741 </a> 4742 </span> 4743 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4744 4745 4746 <span class="flex-1"> 4747 <a href="/collections/hair-dryers" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4748 4749 4750 4751 4752 4753 <span class="p-break-words">Hair Dryers</span> 4754 4755 4756 4757 </a> 4758 </span> 4759 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4760 4761 4762 <span class="flex-1"> 4763 <a href="/collections/gogo-mini-styling-tools" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4764 4765 4766 4767 4768 4769 <span class="p-break-words">Travel-Size</span> 4770 4771 4772 4773 </a> 4774 </span> 4775 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4776 4777 4778 <span class="flex-1"> 4779 <a href="/collections/bodywavers" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4780 4781 4782 4783 4784 4785 <span class="p-break-words">Bodywavers</span> 4786 4787 4788 4789 </a> 4790 </span> 4791 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4792 4793 4794 <span class="flex-1"> 4795 <a href="/collections/hair-styling-tools" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link
4795inline-block"> 4796 4797 4798 4799 4800 4801 <span class="p-break-words">Shop All Tools</span> 4802 4803 4804 4805 </a> 4806 </span> 4807 </li></ul></li><li class="relative w-col-menu"> 4808 <div class="font-semibold"> 4809 4810 4811 <a href="/collections/hair-styling-products" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block mb-3"> 4812 4813 4814 4815 4816 4817 <span class="p-break-words">Styling Products</span> 4818 4819 4820 4821 </a> 4822 </div><ul class="list-unstyled" role="list"><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4823 4824 4825 <span class="flex-1"> 4826 <a href="/collections/hair-spray" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4827 4828 4829 4830 4831 4832 <span class="p-break-words">Hairsprays</span> 4833 4834 4835 4836 </a> 4837 </span> 4838 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4839 4840 4841 <span class="flex-1"> 4842 <a href="/collections/hair-products-for-texture" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4843 4844 4845 4846 4847 4848 <span class="p-break-words">Texturizers</span> 4849 4850 4851 4852 </a> 4853 </span> 4854 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4855 4856 4857 <span class="flex-1"> 4858 <a href="/collections/hair-treatments" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4859 4860 4861 4862 4863 4864 <span class="p-break-words">Treatments</span> 4865 4866 4867 4868 </a> 4869 </span> 4870 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4871 4872 4873 <span class="flex-1"> 4874 <a href="/collections/root-touch-up" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4875 4876 4877 4878 4879 4880 <span class="p-break-words">Root Touch-Up</span> 4881 4882 4883 4884 </a> 4885 </span> 4886 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4887 4888
4889 <span class="flex-1"> 4890 <a href="/collections/hair-styling-creams-and-paste" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4891 4892 4893 4894 4895 4896 <span class="p-break-words">Creams & Foams</span> 4897 4898 4899 4900 </a> 4901 </span> 4902 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4903 4904 4905 <span class="flex-1"> 4906 <a href="/collections/hair-styling-products" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4907 4908 4909 4910 4911 4912 <span class="p-break-words">All Styling Products</span> 4913 4914 4915 4916 </a> 4917 </span> 4918 </li></ul></li><li class="relative w-col-menu"> 4919 <div class="font-semibold"> 4920 4921 4922 <a href="/collections/hair-cleanse-condition-products" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block mb-3"> 4923 4924 4925 4926 4927 4928 <span class="p-break-words">Cleanse & Condition</span> 4929 4930 4931 4932 </a> 4933 </div><ul class="list-unstyled" role="list"><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4934 4935 4936 <span class="flex-1"> 4937 <a href="/collections/hair-cleanse-condition-products" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4938 4939 4940 4941 4942 4943 <span class="p-break-words">Cleanse</span> 4944 4945 4946 4947 </a> 4948 </span> 4949 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4950 4951 4952 <span class="flex-1"> 4953 <a href="/collections/hair-cleanse-condition-products" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4954 4955 4956 4957 4958 4959 <span class="p-break-words">Condition</span> 4960 4961 4962 4963 </a> 4964 </span> 4965 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4966 4967 4968 <span class="flex-1"> 4969 <a href="/collections/hair-cleanse-condition-products" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link
4969inline-block"> 4970 4971 4972 4973 4974 4975 <span class="p-break-words">Sets</span> 4976 4977 4978 4979 </a> 4980 </span> 4981 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 4982 4983 4984 <span class="flex-1"> 4985 <a href="/collections/hair-treatments" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 4986 4987 4988 4989 4990 4991 <span class="p-break-words">Treatments</span> 4992 4993 4994 4995 </a> 4996 </span> 4997 </li></ul></li><li class="relative w-col-menu"> 4998 <div class="font-semibold"> 4999 5000 5001 <a href="/collections/hair-accessories" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block mb-3"> 5002 5003 5004 5005 5006 5007 <span class="p-break-words">Accessories</span> 5008 5009 5010 5011 </a> 5012 </div><ul class="list-unstyled" role="list"><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 5013 5014 5015 <span class="flex-1"> 5016 <a href="/collections/hair-brushes" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 5017 5018 5019 5020 5021 5022 <span class="p-break-words">Hair Brushes</span> 5023 5024 5025 5026 </a> 5027 </span> 5028 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 5029 5030 5031 <span class="flex-1"> 5032 <a href="/collections/hair-brushes" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 5033 5034 5035 5036 5037 5038 <span class="p-break-words">Hair Clips</span> 5039 5040 5041 5042 </a> 5043 </span> 5044 </li></ul></li><li class="relative w-col-menu"> 5045 <div class="font-semibold"> 5046 5047 5048 <a href="/collections/sale" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block mb-3"> 5049 5050 5051 5052 5053 5054 <span class="p-break-words">Sale</span> 5055 5056 5057 5058 </a> 5059 </div><ul class="list-unstyled" role="list"><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 5060 5061
5062 <span class="flex-1"> 5063 <a href="/collections/hair-styling-kits-sets" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 5064 5065 5066 5067 5068 5069 <span class="p-break-words">Value Sets</span> 5070 5071 5072 5073 </a> 5074 </span> 5075 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 5076 5077 5078 <span class="flex-1"> 5079 <a href="/collections/vault-tools" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 5080 5081 5082 5083 5084 5085 <span class="p-break-words">Vault Tools</span> 5086 5087 5088 5089 </a> 5090 </span> 5091 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 5092 5093 5094 <span class="flex-1"> 5095 <a href="/collections/refurbished-tools" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 5096 5097 5098 5099 5100 5101 <span class="p-break-words">Refurbished Tools</span> 5102 5103 5104 5105 </a> 5106 </span> 5107 </li><li class="flex items-center pt-1.5 pb-1.5 relative font-normal font_menu-normal"> 5108 5109 5110 <span class="flex-1"> 5111 <a href="/collections/sale" class="flex flex-wrap gap-2 nav-link relative transition duration-200 p-break-words hover-text-link inline-block"> 5112 5113 5114 5115 5116 5117 <span class="p-break-words">All Sale</span> 5118 5119 5120 5121 </a> 5122 </span> 5123 </li></ul></li></ul></div> 5124 5125 </div> 5126 </template></li> 5127<li 5128 id="tree_menu_xajxHE" 5129 class="tree-menu " 5130 5131 5132 :class="$store.xHeaderMenu.show === 5 && 'is-focus'" 5133 5134 > 5135 <div class=" relative cursor-pointer tree-menu-item p-break-words inline-block justify-center pt-1 pb-1 relative hover-text-link is-focus:link-active" x-data='{ active: false }' 5136 5137 > 5138 <div class=" flex items-center"> 5139 <div class="relative x-anm"> 5140 <a 5141 href="/collections/hair-styling-kits-sets" 5142 class=" cursor-pointer tree-menu-item p-break-words inline-block justify-center pt-1 pb-1 relative hover-text-link is-focus:link-active" 5143 5144 > 5145 5146 5147 5148 5149 5150 Value Sets 5151 5152 5153 5154 </a></div> 5155 </div></div></li> 5156<li 5157 id="tree_menu_LFNyi6" 5158 class="tree-menu " 5159 5160 5161 :class="$store.xHeaderMenu.show === 6 && 'is-focus'" 5162 5163 > 5164 <div class=" relative cursor-pointer tree-menu-item p-break-words inline-block justify-center pt-1 pb-1 relative hover-text-link
5164is-focus:link-active" x-data='{ active: false }' 5165 5166 > 5167 <div class=" flex items-center"> 5168 <div class="relative x-anm"> 5169 <a 5170 href="/pages/hair-quiz" 5171 class=" cursor-pointer tree-menu-item p-break-words inline-block justify-center pt-1 pb-1 relative hover-text-link is-focus:link-active" 5172 5173 > 5174 5175 5176 5177 5178 5179 Hair Quiz 5180 5181 5182 5183 </a></div> 5184 </div></div></li> 5185<li 5186 id="tree_menu_8mNUwp" 5187 class="tree-menu " 5188 5189 5190 :class="$store.xHeaderMenu.show === 7 && 'is-focus'" 5191 5192 > 5193 <div class=" relative cursor-pointer tree-menu-item p-break-words inline-block justify-center pt-1 pb-1 relative hover-text-link is-focus:link-active" x-data='{ active: false }' 5194 5195 > 5196 <div class=" flex items-center"> 5197 <div class="relative x-anm"> 5198 <a 5199 href="#smile-home" 5200 class=" cursor-pointer tree-menu-item p-break-words inline-block justify-center pt-1 pb-1 relative hover-text-link is-focus:link-active" 5201 5202 > 5203 5204 5205 5206 5207 5208 Rewards 5209 5210 5211 5212 </a></div> 5213 </div></div></li></ul> 5214</nav> 5215 5216 </header> 5217 5218</div> 5219</div> 5220
5221<script src="//calistatools.com/cdn/shop/t/144/assets/search-prompts.js?v=181440801706723618771782330849" defer></script>
5221
5222<script type="application/ld+json"> 5223 { 5224 "@context": "http://schema.org", 5225 "@type": "Organization", 5226 "name": "Calista Tools", 5227 5228 "logo": "https:\/\/calistatools.com\/cdn\/shop\/files\/Calista_Logo_stacked-butterfly_2025-01.png?v=1780260880\u0026width=525", 5229 5230 "sameAs": [ 5231 "", 5232 "https:\/\/www.facebook.com\/calistabymariamccool", 5233 "https:\/\/www.pinterest.com\/calistatools\/", 5234 "https:\/\/www.instagram.com\/calistatools\/", 5235 "https:\/\/www.tiktok.com\/@calistatools?lang=en", 5236 "", 5237 "", 5238 "https:\/\/www.youtube.com\/user\/CalistaTools", 5239 "" 5240 ], 5241 "url": "https:\/\/calistatools.com" 5242 } 5243</script>
5243 5244
5244<script type="application/ld+json"> 5245 { 5246 "@context": "http://schema.org", 5247 "@type": "WebSite", 5248 "name": "Calista Tools", 5249 "potentialAction": { 5250 "@type": "SearchAction", 5251 "target": "https:\/\/calistatools.com\/search?q={search_term_string}", 5252 "query-input": "required name=search_term_string" 5253 }, 5254 "url": "https:\/\/calistatools.com" 5255 } 5256 </script>
5256<script src="//calistatools.com/cdn/shop/t/144/assets/store-selector.js?v=69199566774997787001782330849" defer="defer"></script>
5256 5257 5258</div><div id="shopify-section-sections--26875466350902__mobile-navigation" class="shopify-section shopify-section-group-header-group section-mobile-navigation"><style data-shopify>#mobile-navigation { 5259 contain: style layout; 5260 } 5261 #mobile-navigation * {border-color: rgba(var(--colors-line-header));} 5262 .dark #mobile-navigation * {border-color: rgba(var(--colors-line-header));} 5263 #mobile-navigation .text-color, 5264 #mobile-navigation .background-header {background: rgba(var(--background-color-header));--colors-text: 51, 50, 46; 5265 --colors-heading: 51, 50, 46; 5266 --colors-text-link: 51, 50, 46; 5267 5268 } 5269 .dark #mobile-navigation .text-color, 5270 .dark #mobile-navigation .background-header {--colors-text: 225, 227, 225; 5271 --colors-heading: 255, 255, 255; 5272 --colors-text-link: 145, 180, 116; 5273 5274 } 5275 5276 .svg-highlight-sections--26875466350902__mobile-navigation { 5277 5278 --color-highlight: #a6586b; 5279 5280 } 5281 .dark .svg-highlight-sections--26875466350902__mobile-navigation { 5282 5283 --color-highlight: rgb(145, 180, 116); 5284 5285 } 5286 5287 .block-mobile-navigation-after::after { 5288 content: var(--tw-content); 5289 position: absolute; 5290 width: 100%; 5291 left: 0; 5292 border-bottom-width: 1px;border-color: rgba(var(--colors-line-header));} 5293 .dark .block-mobile-navigation-after::after {border-color: rgba(var(--colors-line-header));} 5294 .font-menu-level-0 { 5295 font-size: 1.125rem; 5296 } 5297 .font-menu-level-1 { 5298 font-size: 1.0rem; 5299 } 5300 .font-menu-level-2 { 5301 font-size: 0.875rem; 5302 } 5303 5304 .block-mobile-navigation-menu .font-menu-level-0, 5305 .block-mobile-navigation-menu .font-menu-level-1, 5306 .block-mobile-navigation-menu .font-menu-level-2, 5307 .block-mobile-navigation-carousel_menu .font-menu-level-0, 5308 .block-mobile-navigation-carousel_menu .font-menu-level-2, 5309 .block-mobile-navigation-account .font-menu-level-1, 5310 .block-mobile-navigation-cart .font-menu-level-1 5311 { 5312 font-size: 0.7875rem; 5313 font-weight: var(--font-body-weight); 5314 } 5315 5316</style><div 5317 class="z-[9999] fixed top-0 h-full w-full opacity-60 bg-black" 5318 x-show="$store.xMobileNav.show" 5319 x-cloak 5320 @click="setTimeout(() => { $store.xMobileNav.close() }, 0)" 5321></div> 5322<template x-if="!$store.xInit.runDispatch"> 5323 <div 5324 id="mobile-navigation" 5325 :class="{ 'menu-opening': $store.xMobileNav.show }" 5326 class="menu-drawer fixed z-[9999] top-0 bottom-0 w-[90%] max-w-xl motion-reduce overflow-x-hidden ltr left-0 -translate-x-full" 5327 > 5328 <div class="x-container-mobile-nav background-header gradient menu-drawer duration-300 ease-in-out overflow-hidden h-full flex flex-col"> 5329 <div class="x-block-mobile-nav-close pt-4 pb-4 pl-4 pr-4 w-full flex justify-between items-center" 5330 aria-label="Close" 5331 > 5332 <span class="font-menu-level-2 uppercase">Menu</span> 5333 <span 5334 class="cursor-pointer icon-close-container inline-block group-close-btn rounded-full absolute top-2 right-2 rtl:right-auto rtl:left-2" 5335 @click="setTimeout(() => { $store.xMobileNav.close() }, 0)" 5336 > 5337 <svg class="icon-close-animation" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 5338 <path d="M1 1L23 23M23 1L1 23" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 5339 </svg> 5340</span> 5341 </div> 5342 <div 5343 id="menu-navigation" 5344 class="h-full flex-1 overflow-x-hidden scrollbar-body overflow-y-auto scrollbar-stable" 5345 > 5346 5347 <ul 5348 x-data="{ openCur: 0 }" 5349 id="menu-level-0" 5350 role="list" 5351 class="menu-parent relative h-full w-full" 5352 > 5353 <li class="block-mobile-navigation-menu"> 5354 <span class="flex empty:hidden border-t ml-4 mr-4"></span> 5355 5356 5357 5358<div 5359 class="flex items-center gap-4 pr-4 pl-4 border-b" 5360 ><style data-shopify> 5361 5362</style> 5363 <a href="/pages/hair-quiz" class="flex-1 relative pt-2.5 pb-2.5 gap-4 flex items-center disable-effect"> 5364 5365 5366
5367 <span class="flex flex-wrap gap-x-2"> 5368 <span class="p-break-words font-medium font-menu-level-0"> 5369 5370 5371 5372 5373 <span>Take the Hair Quiz</span> 5374 5375 5376 </span> 5377 5378 5379 </span> 5380 </a> 5381</div><div 5382 class="flex items-center gap-4 pr-4 pl-4 border-b" 5383 ><style data-shopify> 5384 5385</style> 5386 <a href="/collections/best-sellers" class="flex-1 relative pt-2.5 pb-2.5 gap-4 flex items-center disable-effect"> 5387 5388 5389 5390 <span class="flex flex-wrap gap-x-2"> 5391 <span class="p-break-words font-medium font-menu-level-0"> 5392 5393 5394 5395 5396 <span>Best Sellers</span> 5397 5398 5399 </span> 5400 5401 5402 </span> 5403 </a> 5404</div><div @click="$store.xMobileNav.scrollTop($el); $store.xMobileNav.setActiveLink('-3')" 5405 class="flex items-center gap-4 pr-4 pl-4 border-b"x-init="active = true;" 5406 ><style data-shopify> 5407 5408</style> 5409 <span class="flex-1 pt-2.5 pb-2.5 flex gap-4 items-center disable-effect effect-inline active"> 5410 5411 5412 5413 <span class="flex flex-wrap gap-x-2"> 5414 <span class="p-break-words font-medium font-menu-level-0"> 5415 5416 5417 5418 5419 <span>Hair Tools</span> 5420 5421 5422 </span> 5423 5424 5425 </span> 5426 </span> 5427<span 5428 class="icon-caret-mobile h-3 w-3 min-h-3 min-w-[12px] block -rotate-90" 5429 > 5430 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 5431 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 5432 </svg> 5433</span></div><div 5434 class="menu-drawer duration-300 ease-in-out top-0 left-0 fixed background-header w-full h-full z-30 invisible translate-x-full" 5435 :class="{ 'menu-opening': $store.xMobileNav.currentMenuLinks.includes('-3')}" 5436 > 5437 <div class="overflow-x-hidden pb-4 scrollbar-body absolute top-0 z-30 w-full h-full" 5438 :class="$store.xMobileNav.currentMenuLinks.length == 2 ? 'overflow-hidden' : 'overflow-y-auto'" 5439 > 5440 <div class="flex items-center sticky top-0 background-header z-30 pt-4 pb-4 pl-4 pr-4 gap-4 justify-between"> 5441 <div class="flex items-center"> 5442 <span class="w-10 h-10 min-w-[40px] min-h-10 pl-3 pr-3 pt-6 block rotate-90" 5443 @click="$store.xMobileNav.removeActiveLink('-3'); " 5444 > 5445 5446 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 5447 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 5448 </svg> 5449 5450 </span> 5451 <a href="/" class="flex relative flex-wrap gap-x-2 flex-1 font-medium disable-effect active"> 5452 <span class="p-break-words font-menu-level-0"> 5453 5454 5455 5456 5457 <span>Hair Tools</span> 5458 5459 5460 </span> 5461 5462 5463 </a> 5464 </div> 5465 <span 5466 class="cursor-pointer icon-close-container inline-block group-close-btn rounded-full" 5467 @click="setTimeout(() => { $store.xMobileNav.close() }, 0)" 5468 > 5469 <svg class="icon-close-animation" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 5470 <path d="M1 1L23 23M23 1L1 23" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 5471 </svg> 5472</span> 5473 </div> 5474 <ul 5475 id="menu-level-1" 5476 class="background-header w-full" 5477 ><li class="border-b pb-3 pl-4 pr-4 pt-3"> 5478 5479 <div 5480 class="flex items-center justify-between h-full gap-" 5481 5482 > 5483 5484 <a href="/collections/perfecters" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 5485 5486 5487
5488 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 5489 <span class="flex flex-wrap gap-x-2"> 5490 5491 5492 5493 5494 <span>Perfecter Pro</span> 5495 5496 5497 5498 5499 </span> 5500 5501 </span> 5502 </a> 5503</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 5504 5505 <div 5506 class="flex items-center justify-between h-full gap-" 5507 5508 > 5509 5510 <a href="/products/eliteair-multi-style-dryer-gen-2" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 5511 5512 5513 5514 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 5515 <span class="flex flex-wrap gap-x-2"> 5516 5517 5518 5519 5520 <span>EliteAir Multi-Styler</span> 5521 5522 5523 5524 5525 </span> 5526 5527 </span> 5528 </a> 5529</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 5530 5531 <div 5532 class="flex items-center justify-between h-full gap-" 5533 5534 > 5535 5536 <a href="/collections/rollers" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 5537 5538 5539 5540 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 5541 <span class="flex flex-wrap gap-x-2"> 5542 5543 5544 5545 5546 <span>Hot Rollers</span> 5547 5548 5549 5550 5551 </span> 5552 5553 </span> 5554 </a> 5555</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 5556 5557 <div 5558 class="flex items-center justify-between h-full gap-" 5559 5560 > 5561 5562 <a href="/collections/gogo-mini-styling-tools" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 5563 5564 5565 5566 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 5567 <span class="flex flex-wrap gap-x-2"> 5568 5569 5570 5571 5572 <span>GoGo Mini</span> 5573 5574 5575 5576 5577 </span> 5578 5579 </span> 5580 </a> 5581</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 5582 5583 <div 5584 class="flex items-center justify-between h-full gap-" 5585 5586 > 5587 5588 <a href="/products/bodywaver-large-wave-hair-styler" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 5589 5590 5591
5592 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 5593 <span class="flex flex-wrap gap-x-2"> 5594 5595 5596 5597 5598 <span>Bodywaver</span> 5599 5600 5601 5602 5603 </span> 5604 5605 </span> 5606 </a> 5607</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 5608 5609 <div 5610 class="flex items-center justify-between h-full gap-" 5611 5612 > 5613 5614 <a href="/collections/fauxblo-thermal-blowout-brushes" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 5615 5616 5617 5618 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 5619 <span class="flex flex-wrap gap-x-2"> 5620 5621 5622 5623 5624 <span>FAUXblo</span> 5625 5626 5627 5628 5629 </span> 5630 5631 </span> 5632 </a> 5633</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 5634 5635 <div 5636 class="flex items-center justify-between h-full gap-" 5637 5638 > 5639 5640 <a href="/collections/triangl-pro" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 5641 5642 5643 5644 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 5645 <span class="flex flex-wrap gap-x-2"> 5646 5647 5648 5649 5650 <span>Triangl Pro</span> 5651 5652 5653 5654 5655 </span> 5656 5657 </span> 5658 </a> 5659</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 5660 5661 <div 5662 class="flex items-center justify-between h-full gap-" 5663 5664 > 5665 5666 <a href="/collections/hair-styling-tools" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 5667 5668 5669 5670 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 5671 <span class="flex flex-wrap gap-x-2"> 5672 5673 5674 5675 5676 <span>All Hair Tools</span> 5677 5678 5679 5680 5681 </span> 5682 5683 </span> 5684 </a> 5685</div></li></ul> 5686 </div> 5687 </div><div @click="$store.xMobileNav.scrollTop($el); $store.xMobileNav.setActiveLink('-4')" 5688 class="flex items-center gap-4 pr-4 pl-4 border-b" 5689 ><style data-shopify> 5690 5691</style> 5692 <span class="flex-1 pt-2.5 pb-2.5 flex gap-4 items-center disable-effect"> 5693 5694 5695 5696 <span class="flex flex-wrap gap-x-2"> 5697 <span class="p-break-words font-medium font-menu-level-0"> 5698 5699 5700 5701
5702 <span>Shop by Product Type</span> 5703 5704 5705 </span> 5706 5707 5708 </span> 5709 </span> 5710<span 5711 class="icon-caret-mobile h-3 w-3 min-h-3 min-w-[12px] block -rotate-90" 5712 > 5713 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 5714 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 5715 </svg> 5716</span></div><div 5717 class="menu-drawer duration-300 ease-in-out top-0 left-0 fixed background-header w-full h-full z-30 invisible translate-x-full" 5718 :class="{ 'menu-opening': $store.xMobileNav.currentMenuLinks.includes('-4')}" 5719 > 5720 <div class="overflow-x-hidden pb-4 scrollbar-body absolute top-0 z-30 w-full h-full" 5721 :class="$store.xMobileNav.currentMenuLinks.length == 2 ? 'overflow-hidden' : 'overflow-y-auto'" 5722 > 5723 <div class="flex items-center sticky top-0 background-header z-30 pt-4 pb-4 pl-4 pr-4 gap-4 justify-between"> 5724 <div class="flex items-center"> 5725 <span class="w-10 h-10 min-w-[40px] min-h-10 pl-3 pr-3 pt-6 block rotate-90" 5726 @click="$store.xMobileNav.removeActiveLink('-4'); " 5727 > 5728 5729 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 5730 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 5731 </svg> 5732 5733 </span> 5734 <a href="/collections/all-products" class="flex relative flex-wrap gap-x-2 flex-1 font-medium disable-effect"> 5735 <span class="p-break-words font-menu-level-0"> 5736 5737 5738 5739 5740 <span>Shop by Product Type</span> 5741 5742 5743 </span> 5744 5745 5746 </a> 5747 </div> 5748 <span 5749 class="cursor-pointer icon-close-container inline-block group-close-btn rounded-full" 5750 @click="setTimeout(() => { $store.xMobileNav.close() }, 0)" 5751 > 5752 <svg class="icon-close-animation" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 5753 <path d="M1 1L23 23M23 1L1 23" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 5754 </svg> 5755</span> 5756 </div> 5757 <ul 5758 id="menu-level-1" 5759 class="background-header w-full" 5760 ><li class="border-b pb-3 pl-4 pr-4 pt-3"> 5761 5762 <div 5763 class="flex items-center justify-between h-full gap-" 5764 5765 > 5766 5767 <a href="/collections/hair-curling-irons" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 5768 5769 5770 5771 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 5772 <span class="flex flex-wrap gap-x-2"> 5773 5774 5775 5776 5777 <span>Curling Tools</span> 5778 5779 5780 5781 5782 </span> 5783 5784 </span> 5785 </a> 5786</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 5787 5788 <div 5789 class="flex items-center justify-between h-full gap-" 5790 5791 > 5792 5793 <a href="/collections/heated-brushes" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 5794 5795 5796
5797 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 5798 <span class="flex flex-wrap gap-x-2"> 5799 5800 5801 5802 5803 <span>Heated Brushes</span> 5804 5805 5806 5807 5808 </span> 5809 5810 </span> 5811 </a> 5812</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 5813 5814 <div 5815 class="flex items-center justify-between h-full gap-" 5816 5817 > 5818 5819 <a href="/collections/hair-straighteners" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 5820 5821 5822 5823 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 5824 <span class="flex flex-wrap gap-x-2"> 5825 5826 5827 5828 5829 <span>Straightening Tools</span> 5830 5831 5832 5833 5834 </span> 5835 5836 </span> 5837 </a> 5838</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 5839 5840 <div 5841 class="flex items-center justify-between h-full gap-" 5842 5843 > 5844 5845 <a href="/collections/hair-dryers" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 5846 5847 5848 5849 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 5850 <span class="flex flex-wrap gap-x-2"> 5851 5852 5853 5854 5855 <span>Hair Dryers</span> 5856 5857 5858 5859 5860 </span> 5861 5862 </span> 5863 </a> 5864</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 5865 5866 <div 5867 class="flex items-center justify-between h-full gap-" 5868 5869 > 5870 5871 <a href="/collections/hair-spray" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 5872 5873 5874 5875 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 5876 <span class="flex flex-wrap gap-x-2"> 5877 5878 5879 5880 5881 <span>Hairsprays</span> 5882 5883 5884 5885 5886 </span> 5887 5888 </span> 5889 </a> 5890</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 5891 5892 <div 5893 class="flex items-center justify-between h-full gap-" 5894 5895 > 5896 5897 <a href="/collections/hair-products-for-texture" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 5898 5899 5900
5901 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 5902 <span class="flex flex-wrap gap-x-2"> 5903 5904 5905 5906 5907 <span>Texturizers</span> 5908 5909 5910 5911 5912 </span> 5913 5914 </span> 5915 </a> 5916</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 5917 5918 <div 5919 class="flex items-center justify-between h-full gap-" 5920 5921 > 5922 5923 <a href="/collections/hair-cleanse-condition-products" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 5924 5925 5926 5927 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 5928 <span class="flex flex-wrap gap-x-2"> 5929 5930 5931 5932 5933 <span>Shampoo & Conditioner</span> 5934 5935 5936 5937 5938 </span> 5939 5940 </span> 5941 </a> 5942</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 5943 5944 <div 5945 class="flex items-center justify-between h-full gap-" 5946 5947 > 5948 5949 <a href="/collections/hair-styling-creams-and-paste" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 5950 5951 5952 5953 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 5954 <span class="flex flex-wrap gap-x-2"> 5955 5956 5957 5958 5959 <span>Styling Creams & Foams</span> 5960 5961 5962 5963 5964 </span> 5965 5966 </span> 5967 </a> 5968</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 5969 5970 <div 5971 class="flex items-center justify-between h-full gap-" 5972 5973 > 5974 5975 <a href="/collections/hair-brushes" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 5976 5977 5978 5979 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 5980 <span class="flex flex-wrap gap-x-2"> 5981 5982 5983 5984 5985 <span>Brushes & Clips</span> 5986 5987 5988 5989 5990 </span> 5991 5992 </span> 5993 </a> 5994</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 5995 5996 <div 5997 class="flex items-center justify-between h-full gap-" 5998 5999 > 6000 6001 <a href="/collections/hair-treatments" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6002 6003 6004
6005 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6006 <span class="flex flex-wrap gap-x-2"> 6007 6008 6009 6010 6011 <span>Hair Treatments</span> 6012 6013 6014 6015 6016 </span> 6017 6018 </span> 6019 </a> 6020</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 6021 6022 <div 6023 class="flex items-center justify-between h-full gap-" 6024 6025 > 6026 6027 <a href="/collections/all-products" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6028 6029 6030 6031 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6032 <span class="flex flex-wrap gap-x-2"> 6033 6034 6035 6036 6037 <span>Shop All</span> 6038 6039 6040 6041 6042 </span> 6043 6044 </span> 6045 </a> 6046</div></li></ul> 6047 </div> 6048 </div><div @click="$store.xMobileNav.scrollTop($el); $store.xMobileNav.setActiveLink('-5')" 6049 class="flex items-center gap-4 pr-4 pl-4 border-b" 6050 ><style data-shopify> 6051 6052</style> 6053 <span class="flex-1 pt-2.5 pb-2.5 flex gap-4 items-center disable-effect"> 6054 6055 6056 6057 <span class="flex flex-wrap gap-x-2"> 6058 <span class="p-break-words font-medium font-menu-level-0"> 6059 6060 6061 6062 6063 <span>Sale</span> 6064 6065 6066 </span> 6067 6068 6069 </span> 6070 </span> 6071<span 6072 class="icon-caret-mobile h-3 w-3 min-h-3 min-w-[12px] block -rotate-90" 6073 > 6074 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 6075 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 6076 </svg> 6077</span></div><div 6078 class="menu-drawer duration-300 ease-in-out top-0 left-0 fixed background-header w-full h-full z-30 invisible translate-x-full" 6079 :class="{ 'menu-opening': $store.xMobileNav.currentMenuLinks.includes('-5')}" 6080 > 6081 <div class="overflow-x-hidden pb-4 scrollbar-body absolute top-0 z-30 w-full h-full" 6082 :class="$store.xMobileNav.currentMenuLinks.length == 2 ? 'overflow-hidden' : 'overflow-y-auto'" 6083 > 6084 <div class="flex items-center sticky top-0 background-header z-30 pt-4 pb-4 pl-4 pr-4 gap-4 justify-between"> 6085 <div class="flex items-center"> 6086 <span class="w-10 h-10 min-w-[40px] min-h-10 pl-3 pr-3 pt-6 block rotate-90" 6087 @click="$store.xMobileNav.removeActiveLink('-5'); " 6088 > 6089 6090 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 6091 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 6092 </svg> 6093 6094 </span> 6095 <a href="/collections/sale" class="flex relative flex-wrap gap-x-2 flex-1 font-medium disable-effect"> 6096 <span class="p-break-words font-menu-level-0"> 6097 6098 6099 6100 6101 <span>Sale</span> 6102 6103 6104 </span> 6105 6106 6107 </a> 6108 </div>
6109 <span 6110 class="cursor-pointer icon-close-container inline-block group-close-btn rounded-full" 6111 @click="setTimeout(() => { $store.xMobileNav.close() }, 0)" 6112 > 6113 <svg class="icon-close-animation" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 6114 <path d="M1 1L23 23M23 1L1 23" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 6115 </svg> 6116</span> 6117 </div> 6118 <ul 6119 id="menu-level-1" 6120 class="background-header w-full" 6121 ><li class="border-b pb-3 pl-4 pr-4 pt-3"> 6122 6123 <div 6124 class="flex items-center justify-between h-full gap-" 6125 6126 > 6127 6128 <a href="/collections/vault-tools" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6129 6130 6131 6132 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6133 <span class="flex flex-wrap gap-x-2"> 6134 6135 6136 6137 6138 <span>Vault Tools</span> 6139 6140 6141 6142 6143 </span> 6144 6145 </span> 6146 </a> 6147</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 6148 6149 <div 6150 class="flex items-center justify-between h-full gap-" 6151 6152 > 6153 6154 <a href="/collections/refurbished-tools" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6155 6156 6157 6158 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6159 <span class="flex flex-wrap gap-x-2"> 6160 6161 6162 6163 6164 <span>Refurbished Tools</span> 6165 6166 6167 6168 6169 </span> 6170 6171 </span> 6172 </a> 6173</div></li></ul> 6174 </div> 6175 </div><div 6176 class="flex items-center gap-4 pr-4 pl-4 border-b" 6177 ><style data-shopify> 6178 6179</style> 6180 <a href="/collections/hair-styling-kits-sets" class="flex-1 relative pt-2.5 pb-2.5 gap-4 flex items-center disable-effect"> 6181 6182 6183 6184 <span class="flex flex-wrap gap-x-2"> 6185 <span class="p-break-words font-medium font-menu-level-0"> 6186 6187 6188 6189 6190 <span>Value Sets</span> 6191 6192 6193 </span> 6194 6195 6196 </span> 6197 </a> 6198</div><div 6199 class="flex items-center gap-4 pr-4 pl-4 border-b" 6200 ><style data-shopify> 6201 6202</style> 6203 <a href="/blogs/beautybrave" class="flex-1 relative pt-2.5 pb-2.5 gap-4 flex items-center disable-effect"> 6204 6205 6206 6207 <span class="flex flex-wrap gap-x-2"> 6208 <span class="p-break-words font-medium font-menu-level-0"> 6209 6210 6211 6212 6213 <span>Blog</span> 6214 6215 6216 </span> 6217 6218 6219 </span> 6220 </a> 6221</div><div 6222 class="flex items-center gap-4 pr-4 pl-4 border-b" 6223 ><style data-shopify> 6224 6225</style> 6226 <a href="#smile-home" class="flex-1 relative pt-2.5 pb-2.5 gap-4 flex items-center disable-effect"> 6227 6228 6229
6230 <span class="flex flex-wrap gap-x-2"> 6231 <span class="p-break-words font-medium font-menu-level-0"> 6232 6233 6234 6235 6236 <span>Rewards</span> 6237 6238 6239 </span> 6240 6241 6242 </span> 6243 </a> 6244</div><div 6245 class="flex items-center gap-4 pr-4 pl-4 border-b" 6246 ><style data-shopify> 6247 6248</style> 6249 <a href="/pages/our-story" class="flex-1 relative pt-2.5 pb-2.5 gap-4 flex items-center disable-effect"> 6250 6251 6252 6253 <span class="flex flex-wrap gap-x-2"> 6254 <span class="p-break-words font-medium font-menu-level-0"> 6255 6256 6257 6258 6259 <span>About Us</span> 6260 6261 6262 </span> 6263 6264 6265 </span> 6266 </a> 6267</div> 6268</li><li class="x-block-login block-mobile-navigation block-mobile-navigation-account pl-4 pr-4 block-mobile-navigation-after" > 6269 <style data-shopify> 6270 .x-block-login.block-mobile-navigation shopify-account::part(signed-out-avatar):after{ 6271 font-family: var(--font-body-family); 6272 content: 'Log in'; 6273 font-weight: 500; 6274 6275 } 6276 </style> 6277 6278 <div class=" font-medium pt-3.5 pb-3.5 flex items-center disable-effect"> 6279 <shopify-account menu="customer-account-main-menu"> 6280 <div slot="signed-out-avatar"> 6281 <span class="w-6 h-6 mr-2 rtl:mr-0 rtl:ml-2 block"> 6282 6283 <svg class="" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 24 24" fill="none"> 6284 <path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M21.776 23v-2.444a4.889 4.889 0 0 0-4.889-4.889H7.109a4.889 4.889 0 0 0-4.889 4.889V23 M11.998 10.778a4.889 4.889 0 1 0 0-9.778 4.889 4.889 0 0 0 0 9.778"/> 6285 </svg> 6286 6287 6288 </span> 6289 </div> 6290 </shopify-account> 6291 6292 </div> 6293 </li> 6294 </ul> 6295 </div> 6296 6297 <div class="block-mobile-navigation x-header-store-selector-container font-menu-level-2 empty:hidden pl-4 pr-4 flex"></div></div> 6298 </div> 6299</template> 6300</div><div id="shopify-section-sections--26875466350902__menu-drawer" class="shopify-section shopify-section-group-header-group section-menu-drawer"><style data-shopify>#menu-drawer * {border-color: #f2f2f2;} 6301 .dark #menu-drawer * {border-color: #313131;} 6302 #menu-drawer .text-color, 6303 #menu-drawer .background-header {background: #ffffff;--colors-heading: 0, 0, 0; 6304 color: #000000; 6305 --colors-text-header: 0, 0, 0; 6306 --colors-text-link: 51, 50, 46; 6307 6308 } 6309 .dark #menu-drawer .text-color, 6310 .dark #menu-drawer .background-header {background: #202020;--colors-heading: 255, 255, 255; 6311 color: #ffffff; 6312 --colors-text-header: 255, 255, 255; 6313 --colors-text-link: 255, 255, 255; 6314 --colors-text-link: 145, 180, 116; 6315 6316 } 6317 6318 .font-menu-level-0 { 6319 font-size: 1.25rem; 6320 } 6321 .font-menu-level-1 { 6322 font-size: 1.0rem; 6323 } 6324 .font-menu-level-2 { 6325 font-size: 0.875rem; 6326 } 6327 6328 .block-menu-drawer-account .font-menu-level-1, 6329 .block-menu-drawer-cart .font-menu-level-1, 6330 .block-menu-drawer-text .font-menu-level-1, 6331 .block-menu-drawer-button .button-text 6332 { 6333 font-size: 1.0rem; 6334 font-weight: var(--font-body-weight); 6335 } 6336 .block-menu-drawer-after::after { 6337 content: var(--tw-content); 6338 position: absolute; 6339 width: 100%; 6340 left: 0; 6341 border-bottom-width: 1px;border-color: #f2f2f2;} 6342 .dark .block-menu-drawer-after::after {border-color: #313131;} 6343 #menu-drawer #selector-social { 6344 width: 100%; 6345 }</style><div 6346 class="z-[70] fixed top-0 h-full w-full opacity-60 bg-black" 6347 x-show="$store.xMenuDrawer.show" 6348 x-cloak 6349 @click="setTimeout(() => { $store.xMenuDrawer.close() }, 0)" 6350></div>
6351<template x-if="!$store.xInit.runDispatch"> 6352 <div 6353 id="menu-drawer" 6354 :class="{ 'menu-opening': $store.xMenuDrawer.show }" 6355 class="menu-drawer fixed z-[70] top-0 bottom-0 w-full max-w-[480px] motion-reduce overflow-hidden ltr left-0 -translate-x-full" 6356 > 6357 <div class="x-container-draw-menu background-header gradient menu-drawer duration-300 ease-in-out overflow-hidden h-full flex flex-col"> 6358 <div class="x-block-draw-menu-close pt-4 pb-4 pl-4 pr-4 w-full flex justify-between items-center" 6359 aria-label="Close" 6360 > 6361 <span class="font-menu-level-2 uppercase">Menu</span> 6362 <span 6363 class="cursor-pointer icon-close-container inline-block group-close-btn rounded-full absolute top-2 right-2 rtl:right-auto rtl:left-2" 6364 @click="setTimeout(() => { $store.xMenuDrawer.close() }, 0)" 6365 > 6366 <svg class="icon-close-animation" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 6367 <path d="M1 1L23 23M23 1L1 23" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 6368 </svg> 6369</span> 6370 </div> 6371 <div 6372 id="menu-navigation" 6373 class="h-full flex-1 overflow-x-hidden scrollbar-body overflow-y-auto scrollbar-stable" 6374 > 6375 6376 <ul 6377 x-data="{ openCur: 0 }" 6378 id="menu-level-0" 6379 role="list" 6380 class="menu-parent relative h-full w-full" 6381 > 6382 <li class="block-menu-drawer-menu"> 6383 <span class="flex empty:hidden border-t ml-4 mr-4"></span> 6384 6385 6386 6387 6388<div @click="$store.xMenuDrawer.scrollTop($el); $store.xMenuDrawer.setActiveLink('-1')" 6389 class="flex items-center gap-4 pr-4 pl-4 border-b" 6390 ><style data-shopify> 6391 6392 6393</style> 6394 <span class="flex-1 pt-2.5 pb-2.5 flex gap-4 items-center disable-effect"> 6395 6396 6397 6398 <span class="flex flex-wrap gap-x-2"> 6399 <span class="p-break-words font-medium font-menu-level-0"> 6400 6401 6402 <span>BEST FOR</span> 6403 6404 </span> 6405 6406 6407 6408 </span> 6409 </span> 6410<span 6411 class="icon-caret-mobile h-3 w-3 min-h-3 min-w-[12px] block -rotate-90" 6412 > 6413 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 6414 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 6415 </svg> 6416</span></div><div 6417 class="menu-drawer duration-300 ease-in-out top-0 left-0 fixed background-header w-full h-full z-30 invisible -translate-x-full" 6418 :class="{ 'menu-opening': $store.xMenuDrawer.currentMenuLinks.includes('-1')}" 6419 > 6420 <div class="overflow-x-hidden pb-4 scrollbar-body absolute top-0 z-30 w-full h-full" 6421 :class="$store.xMenuDrawer.currentMenuLinks.length == 2 ? 'overflow-hidden' : 'overflow-y-auto'" 6422 > 6423 <div class="flex items-center sticky top-0 background-header z-30 pt-4 pb-4 pl-4 pr-4 gap-4 justify-between"> 6424 <div class="flex items-center"> 6425 <span class="w-10 h-10 min-w-[40px] min-h-10 pl-3 pr-3 pt-6 block rotate-90" 6426 @click="$store.xMenuDrawer.removeActiveLink('-1'); " 6427 > 6428 6429 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 6430 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 6431 </svg> 6432 6433 </span> 6434 <a href="/collections/hair-products" class="flex flex-wrap gap-x-2 flex-1 font-medium disable-effect"> 6435 <span class="p-break-words font-menu-level-0"> 6436 6437 6438 <span>BEST FOR</span> 6439 6440 </span> 6441 6442 6443 6444 </a> 6445 </div>
6446 <span 6447 class="cursor-pointer icon-close-container group-close-btn inline-block rounded-full" 6448 @click="setTimeout(() => { $store.xMenuDrawer.close() }, 0)" 6449 > 6450 <svg class="icon-close-animation" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 6451 <path d="M1 1L23 23M23 1L1 23" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 6452 </svg> 6453</span> 6454 </div> 6455 <ul 6456 id="menu-level-1" 6457 class="background-header w-full" 6458 ><li class="border-b pb-3 pl-4 pr-4 pt-3"> 6459 6460 <div 6461 class="flex items-center justify-between h-full gap-" 6462 6463 > 6464 6465 <a href="/collections/hair-products-for-heat-protection" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6466 6467 6468 6469 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6470 <span class="flex flex-wrap gap-x-2"> 6471 6472 6473 <span>HEAT PROTECTION</span> 6474 6475 6476 6477 6478 </span> 6479 6480 </span> 6481 </a> 6482</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 6483 6484 <div 6485 class="flex items-center justify-between h-full gap-" 6486 6487 > 6488 6489 <a href="/collections/color-maintenance-hair-products" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6490 6491 6492 6493 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6494 <span class="flex flex-wrap gap-x-2"> 6495 6496 6497 <span>COLOR MAINTENANCE</span> 6498 6499 6500 6501 6502 </span> 6503 6504 </span> 6505 </a> 6506</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 6507 6508 <div 6509 class="flex items-center justify-between h-full gap-" 6510 6511 > 6512 6513 <a href="/collections/hair-products-for-volume-and-lift" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6514 6515 6516 6517 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6518 <span class="flex flex-wrap gap-x-2"> 6519 6520 6521 <span>VOLUME + LIFT</span> 6522 6523 6524 6525 6526 </span> 6527 6528 </span> 6529 </a> 6530</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 6531 6532 <div 6533 class="flex items-center justify-between h-full gap-" 6534 6535 > 6536 6537 <a href="/collections/hair-products-for-texture" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6538 6539 6540 6541 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2">
6542 <span class="flex flex-wrap gap-x-2"> 6543 6544 6545 <span>TEXTURE</span> 6546 6547 6548 6549 6550 </span> 6551 6552 </span> 6553 </a> 6554</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 6555 6556 <div 6557 class="flex items-center justify-between h-full gap-" 6558 6559 > 6560 6561 <a href="/collections/hair-products-for-waves-and-curls" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6562 6563 6564 6565 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6566 <span class="flex flex-wrap gap-x-2"> 6567 6568 6569 <span>CURLS + WAVES</span> 6570 6571 6572 6573 6574 </span> 6575 6576 </span> 6577 </a> 6578</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 6579 6580 <div 6581 class="flex items-center justify-between h-full gap-" 6582 6583 > 6584 6585 <a href="/collections/smoothing-and-shiny-hair-products" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6586 6587 6588 6589 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6590 <span class="flex flex-wrap gap-x-2"> 6591 6592 6593 <span>SMOOTHNESS + SHINE</span> 6594 6595 6596 6597 6598 </span> 6599 6600 </span> 6601 </a> 6602</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 6603 6604 <div 6605 class="flex items-center justify-between h-full gap-" 6606 6607 > 6608 6609 <a href="/collections/frizz-control-hair-products" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6610 6611 6612 6613 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6614 <span class="flex flex-wrap gap-x-2"> 6615 6616 6617 <span>FRIZZ CONTROL</span> 6618 6619 6620 6621 6622 </span> 6623 6624 </span> 6625 </a> 6626</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 6627 6628 <div 6629 class="flex items-center justify-between h-full gap-" 6630 6631 > 6632 6633 <a href="/collections/thickening-hair-products" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6634 6635 6636 6637 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6638 <span class="flex flex-wrap gap-x-2"> 6639 6640 6641 <span>THICKENING</span> 6642 6643 6644 6645 6646 </span> 6647 6648 </span> 6649 </a> 6650</div></li>
6650<li class="border-b pb-3 pl-4 pr-4 pt-3"> 6651 6652 <div 6653 class="flex items-center justify-between h-full gap-" 6654 6655 > 6656 6657 <a href="/collections/hair-products-for-scalp-health" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6658 6659 6660 6661 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6662 <span class="flex flex-wrap gap-x-2"> 6663 6664 6665 <span>SCALP HEALTH</span> 6666 6667 6668 6669 6670 </span> 6671 6672 </span> 6673 </a> 6674</div></li></ul> 6675 </div> 6676 </div><div @click="$store.xMenuDrawer.scrollTop($el); $store.xMenuDrawer.setActiveLink('-2')" 6677 class="flex items-center gap-4 pr-4 pl-4 border-b" 6678 ><style data-shopify> 6679 6680 6681</style> 6682 <span class="flex-1 pt-2.5 pb-2.5 flex gap-4 items-center disable-effect"> 6683 6684 6685 6686 <span class="flex flex-wrap gap-x-2"> 6687 <span class="p-break-words font-medium font-menu-level-0"> 6688 6689 6690 <span>CLEANSE + CONDITION </span> 6691 6692 </span> 6693 6694 6695 6696 </span> 6697 </span> 6698<span 6699 class="icon-caret-mobile h-3 w-3 min-h-3 min-w-[12px] block -rotate-90" 6700 > 6701 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 6702 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 6703 </svg> 6704</span></div><div 6705 class="menu-drawer duration-300 ease-in-out top-0 left-0 fixed background-header w-full h-full z-30 invisible -translate-x-full" 6706 :class="{ 'menu-opening': $store.xMenuDrawer.currentMenuLinks.includes('-2')}" 6707 > 6708 <div class="overflow-x-hidden pb-4 scrollbar-body absolute top-0 z-30 w-full h-full" 6709 :class="$store.xMenuDrawer.currentMenuLinks.length == 2 ? 'overflow-hidden' : 'overflow-y-auto'" 6710 > 6711 <div class="flex items-center sticky top-0 background-header z-30 pt-4 pb-4 pl-4 pr-4 gap-4 justify-between"> 6712 <div class="flex items-center"> 6713 <span class="w-10 h-10 min-w-[40px] min-h-10 pl-3 pr-3 pt-6 block rotate-90" 6714 @click="$store.xMenuDrawer.removeActiveLink('-2'); " 6715 > 6716 6717 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 6718 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 6719 </svg> 6720 6721 </span> 6722 <a href="/collections/hair-cleanse-condition-products" class="flex flex-wrap gap-x-2 flex-1 font-medium disable-effect"> 6723 <span class="p-break-words font-menu-level-0"> 6724 6725 6726 <span>CLEANSE + CONDITION </span> 6727 6728 </span> 6729 6730 6731 6732 </a> 6733 </div> 6734 <span 6735 class="cursor-pointer icon-close-container group-close-btn inline-block rounded-full" 6736 @click="setTimeout(() => { $store.xMenuDrawer.close() }, 0)" 6737 > 6738 <svg class="icon-close-animation" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 6739 <path d="M1 1L23 23M23 1L1 23" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 6740 </svg> 6741</span> 6742 </div> 6743 <ul 6744 id="menu-level-1" 6745 class="background-header w-full" 6746 ><li class="border-b pb-3 pl-4 pr-4 pt-3"> 6747 6748 <div 6749 class="flex items-center justify-between h-full gap-" 6750 6751 > 6752 6753 <a href="/collections/hair-care-conditioners" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6754 6755 6756
6757 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6758 <span class="flex flex-wrap gap-x-2"> 6759 6760 6761 <span>CONDITION</span> 6762 6763 6764 6765 6766 </span> 6767 6768 </span> 6769 </a> 6770</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 6771 6772 <div 6773 class="flex items-center justify-between h-full gap-" 6774 6775 > 6776 6777 <a href="/products/day-off-dry-shampoo-7oz" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6778 6779 6780 6781 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6782 <span class="flex flex-wrap gap-x-2"> 6783 6784 6785 <span>DRY SHAMPOO</span> 6786 6787 6788 6789 6790 </span> 6791 6792 </span> 6793 </a> 6794</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 6795 6796 <div 6797 class="flex items-center justify-between h-full gap-" 6798 6799 > 6800 6801 <a href="/collections/color-maintenance-hair-products" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6802 6803 6804 6805 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6806 <span class="flex flex-wrap gap-x-2"> 6807 6808 6809 <span>COLOR PROTECTION</span> 6810 6811 6812 6813 6814 </span> 6815 6816 </span> 6817 </a> 6818</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 6819 6820 <div 6821 class="flex items-center justify-between h-full gap-" 6822 6823 > 6824 6825 <a href="/products/jousse-mend-masque" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6826 6827 6828 6829 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6830 <span class="flex flex-wrap gap-x-2"> 6831 6832 6833 <span>HAIR MASQUES</span> 6834 6835 6836 6837 6838 </span> 6839 6840 </span> 6841 </a> 6842</div></li></ul> 6843 </div> 6844 </div><div @click="$store.xMenuDrawer.scrollTop($el); $store.xMenuDrawer.setActiveLink('-3')" 6845 class="flex items-center gap-4 pr-4 pl-4 border-b" 6846 ><style data-shopify> 6847 6848 6849</style> 6850 <span class="flex-1 pt-2.5 pb-2.5 flex gap-4 items-center disable-effect"> 6851 6852 6853 6854 <span class="flex flex-wrap gap-x-2"> 6855 <span class="p-break-words font-medium font-menu-level-0"> 6856 6857 6858 <span>STYLING </span> 6859 6860 </span> 6861 6862 6863 6864 </span> 6865 </span> 6866<span 6867 class="icon-caret-mobile h-3 w-3 min-h-3 min-w-[12px] block -rotate-90" 6868 >
6869 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 6870 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 6871 </svg> 6872</span></div><div 6873 class="menu-drawer duration-300 ease-in-out top-0 left-0 fixed background-header w-full h-full z-30 invisible -translate-x-full" 6874 :class="{ 'menu-opening': $store.xMenuDrawer.currentMenuLinks.includes('-3')}" 6875 > 6876 <div class="overflow-x-hidden pb-4 scrollbar-body absolute top-0 z-30 w-full h-full" 6877 :class="$store.xMenuDrawer.currentMenuLinks.length == 2 ? 'overflow-hidden' : 'overflow-y-auto'" 6878 > 6879 <div class="flex items-center sticky top-0 background-header z-30 pt-4 pb-4 pl-4 pr-4 gap-4 justify-between"> 6880 <div class="flex items-center"> 6881 <span class="w-10 h-10 min-w-[40px] min-h-10 pl-3 pr-3 pt-6 block rotate-90" 6882 @click="$store.xMenuDrawer.removeActiveLink('-3'); " 6883 > 6884 6885 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 6886 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 6887 </svg> 6888 6889 </span> 6890 <a href="/collections/hair-styling-products" class="flex flex-wrap gap-x-2 flex-1 font-medium disable-effect"> 6891 <span class="p-break-words font-menu-level-0"> 6892 6893 6894 <span>STYLING </span> 6895 6896 </span> 6897 6898 6899 6900 </a> 6901 </div> 6902 <span 6903 class="cursor-pointer icon-close-container group-close-btn inline-block rounded-full" 6904 @click="setTimeout(() => { $store.xMenuDrawer.close() }, 0)" 6905 > 6906 <svg class="icon-close-animation" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 6907 <path d="M1 1L23 23M23 1L1 23" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 6908 </svg> 6909</span> 6910 </div> 6911 <ul 6912 id="menu-level-1" 6913 class="background-header w-full" 6914 ><li class="border-b pb-3 pl-4 pr-4 pt-3"> 6915 6916 <div 6917 class="flex items-center justify-between h-full gap-" 6918 6919 > 6920 6921 <a href="/collections/root-touch-up" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6922 6923 6924 6925 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6926 <span class="flex flex-wrap gap-x-2"> 6927 6928 6929 <span>ROOT TOUCH-UP</span> 6930 6931 6932 6933 6934 </span> 6935 6936 </span> 6937 </a> 6938</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 6939 6940 <div 6941 class="flex items-center justify-between h-full gap-" 6942 6943 > 6944 6945 <a href="/collections/hair-spray" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6946 6947 6948 6949 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6950 <span class="flex flex-wrap gap-x-2"> 6951 6952 6953 <span>HAIRSPRAYS</span> 6954 6955 6956 6957 6958 </span> 6959 6960 </span> 6961 </a> 6962</div></li>
6962<li class="border-b pb-3 pl-4 pr-4 pt-3"> 6963 6964 <div 6965 class="flex items-center justify-between h-full gap-" 6966 6967 > 6968 6969 <a href="/collections/hair-styling-creams-and-paste" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6970 6971 6972 6973 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6974 <span class="flex flex-wrap gap-x-2"> 6975 6976 6977 <span>CREAMS + PASTES</span> 6978 6979 6980 6981 6982 </span> 6983 6984 </span> 6985 </a> 6986</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 6987 6988 <div 6989 class="flex items-center justify-between h-full gap-" 6990 6991 > 6992 6993 <a href="/collections/hair-products-for-texture" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 6994 6995 6996 6997 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 6998 <span class="flex flex-wrap gap-x-2"> 6999 7000 7001 <span>TEXTURIZERS</span> 7002 7003 7004 7005 7006 </span> 7007 7008 </span> 7009 </a> 7010</div></li></ul> 7011 </div> 7012 </div><div @click="$store.xMenuDrawer.scrollTop($el); $store.xMenuDrawer.setActiveLink('-4')" 7013 class="flex items-center gap-4 pr-4 pl-4 border-b" 7014 ><style data-shopify> 7015 7016 7017</style> 7018 <span class="flex-1 pt-2.5 pb-2.5 flex gap-4 items-center disable-effect"> 7019 7020 7021 7022 <span class="flex flex-wrap gap-x-2"> 7023 <span class="p-break-words font-medium font-menu-level-0"> 7024 7025 7026 <span>TOOLS</span> 7027 7028 </span> 7029 7030 7031 7032 </span> 7033 </span> 7034<span 7035 class="icon-caret-mobile h-3 w-3 min-h-3 min-w-[12px] block -rotate-90" 7036 > 7037 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 7038 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 7039 </svg> 7040</span></div><div 7041 class="menu-drawer duration-300 ease-in-out top-0 left-0 fixed background-header w-full h-full z-30 invisible -translate-x-full" 7042 :class="{ 'menu-opening': $store.xMenuDrawer.currentMenuLinks.includes('-4')}" 7043 > 7044 <div class="overflow-x-hidden pb-4 scrollbar-body absolute top-0 z-30 w-full h-full" 7045 :class="$store.xMenuDrawer.currentMenuLinks.length == 2 ? 'overflow-hidden' : 'overflow-y-auto'" 7046 > 7047 <div class="flex items-center sticky top-0 background-header z-30 pt-4 pb-4 pl-4 pr-4 gap-4 justify-between"> 7048 <div class="flex items-center"> 7049 <span class="w-10 h-10 min-w-[40px] min-h-10 pl-3 pr-3 pt-6 block rotate-90" 7050 @click="$store.xMenuDrawer.removeActiveLink('-4'); " 7051 > 7052 7053 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 7054 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 7055 </svg> 7056 7057 </span> 7058 <a href="/collections/hair-styling-tools" class="flex flex-wrap gap-x-2 flex-1 font-medium disable-effect">
7059 <span class="p-break-words font-menu-level-0"> 7060 7061 7062 <span>TOOLS</span> 7063 7064 </span> 7065 7066 7067 7068 </a> 7069 </div> 7070 <span 7071 class="cursor-pointer icon-close-container group-close-btn inline-block rounded-full" 7072 @click="setTimeout(() => { $store.xMenuDrawer.close() }, 0)" 7073 > 7074 <svg class="icon-close-animation" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 7075 <path d="M1 1L23 23M23 1L1 23" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 7076 </svg> 7077</span> 7078 </div> 7079 <ul 7080 id="menu-level-1" 7081 class="background-header w-full" 7082 ><li class="border-b pb-3 pl-4 pr-4 pt-3"> 7083 7084 <div 7085 class="flex items-center justify-between h-full gap-" 7086 7087 > 7088 7089 <a href="/collections/hair-dryers" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 7090 7091 7092 7093 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 7094 <span class="flex flex-wrap gap-x-2"> 7095 7096 7097 <span>DRYERS</span> 7098 7099 7100 7101 7102 </span> 7103 7104 </span> 7105 </a> 7106</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 7107 7108 <div 7109 class="flex items-center justify-between h-full gap-" 7110 7111 > 7112 7113 <a href="/collections/hair-brushes" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 7114 7115 7116 7117 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 7118 <span class="flex flex-wrap gap-x-2"> 7119 7120 7121 <span>BRUSHES</span> 7122 7123 7124 7125 7126 </span> 7127 7128 </span> 7129 </a> 7130</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 7131 7132 <div 7133 class="flex items-center justify-between h-full gap-" 7134 7135 > 7136 7137 <a href="/collections/hair-curling-irons" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 7138 7139 7140 7141 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 7142 <span class="flex flex-wrap gap-x-2"> 7143 7144 7145 <span>CURLING IRONS</span> 7146 7147 7148 7149 7150 </span> 7151 7152 </span> 7153 </a> 7154</div></li><li class="border-b pb-3 pl-4 pr-4 pt-3"> 7155 7156 <div 7157 class="flex items-center justify-between h-full gap-" 7158 7159 > 7160 7161 <a href="/collections/hair-straighteners" class="p-break-words h-full flex gap-3 flex-1 disable-effect items-center"> 7162 7163 7164
7165 <span class="flex justify-between items-center font-medium font-menu-level-1 mt-auto mb-auto w-full gap-2"> 7166 <span class="flex flex-wrap gap-x-2"> 7167 7168 7169 <span>STRAIGHTENERS</span> 7170 7171 7172 7173 7174 </span> 7175 7176 </span> 7177 </a> 7178</div></li></ul> 7179 </div> 7180 </div> 7181</li> 7182 7183 </ul> 7184 </div></div> 7185 </div> 7186</template> 7187 7188
7189<script src="//calistatools.com/cdn/shop/t/144/assets/menu-drawer.js?v=108636980082274135241782330849" defer></script>
7189 7190</div> 7191<!-- END sections: header-group --> 7192 <!-- BEGIN sections: aside-group --> 7193<div id="shopify-section-sections--26875465072950__product-labels-and-badges" class="shopify-section shopify-section-group-aside-group section-product-labels-and-badges"><style data-shopify>.x-badge-product-labels-and-badges-1 .x-badge-content.x-badge-text{ 7194 background-color:#33322e; 7195 color:#ffffff; 7196 7197 } 7198 .dark .x-badge-product-labels-and-badges-1 .x-badge-content.x-badge-text{ 7199 background-color:#33322e; 7200 color:#ffffff; 7201 7202 border-width: 0; 7203 7204 }.x-badge-product-labels-and-badges-1 { 7205 --font-size-scale: 0.6rem; 7206 7207 } 7208 @media (min-width: 768px) { 7209 .x-badge-product-labels-and-badges-1 { 7210 --font-size-scale: 0.6rem; 7211 7212 } 7213 }.x-badge-text_label_kNcNKQ .x-badge-content.x-badge-text{ 7214 background-color:#ffffff; 7215 color:#33322e; 7216 7217 } 7218 .dark .x-badge-text_label_kNcNKQ .x-badge-content.x-badge-text{ 7219 background-color:#101010; 7220 color:#ffffff; 7221 7222 border-width: 0; 7223 7224 }.x-badge-text_label_kNcNKQ { 7225 --font-size-scale: 0.5rem; 7226 7227 } 7228 @media (min-width: 768px) { 7229 .x-badge-text_label_kNcNKQ { 7230 --font-size-scale: 0.6rem; 7231 7232 } 7233 }</style> 7234 <div class="x-badges-block-data" x-badges-block-data='{ 7235 "id": "product-labels-and-badges-1", 7236 "enable": true, 7237 "type": "sold-out-label", 7238 "settings": { 7239 "show_on_product_card": true, 7240 "show_on_product_page": false, 7241 "applied_to": "", 7242 "applied_products": [], 7243 "applied_collections": [], 7244 "content": "Sold Out", 7245 7246 "type": "square", 7247 7248 "background_color": "#33322e", 7249 "text_color": "#ffffff", 7250 "image": null, 7251 "image_alt": "", 7252 "image_aspect_ratio": 0, 7253 "size": 1, 7254 "size_mobile": 1, 7255 "opacity": 100, 7256 "position": "top-left", 7257 "horizontal_position": 6, 7258 "vertical_position": 3, 7259 "schedule_enabled": false, 7260 "reset": false, 7261 "duration": 0, 7262 "timezone": 0, 7263 "start_year": 0, 7264 "start_month": 0, 7265 "start_day": 0, 7266 "start_hour": 0, 7267 "start_minute": 0, 7268 "end_year": 0, 7269 "end_month": 0, 7270 "end_day": 0, 7271 "end_hour": 0, 7272 "end_minute": 0, 7273 "day_since": "none", 7274 "number_show": 30 7275 } 7276 }' x-badges-icon=''></div> 7277 <div class="x-badges-block-data" x-badges-block-data='{ 7278 "id": "text_label_kNcNKQ", 7279 "enable": true, 7280 "type": "text-label", 7281 "settings": { 7282 "show_on_product_card": true, 7283 "show_on_product_page": true, 7284 "applied_to": "", 7285 "applied_products": [10521272713526, 10521160843574, 1797342068805], 7286 "applied_collections": [], 7287 "content": "BEST-SELLER", 7288 7289 "type": "square", 7290 7291 "background_color": "#ffffff", 7292 "text_color": "#33322e", 7293 "image": null, 7294 "image_alt": "", 7295 "image_aspect_ratio": 0, 7296 "size": 1, 7297 "size_mobile": 1, 7298 "opacity": 100, 7299 "position": "custom", 7300 "horizontal_position": 0, 7301 "vertical_position": 3, 7302 "schedule_enabled": false, 7303 "reset": false, 7304 "duration": 604800000, 7305 "timezone": -4, 7306 "start_year": 2023, 7307 "start_month": 1, 7308 "start_day": 1, 7309 "start_hour": 0, 7310 "start_minute": 0, 7311 "end_year": 2023, 7312 "end_month": 1, 7313 "end_day": 1, 7314 "end_hour": 0, 7315 "end_minute": 0, 7316 "day_since": "none", 7317 "number_show": 30 7318 } 7319 }' x-badges-icon=''></div>
7319<script src="//calistatools.com/cdn/shop/t/144/assets/labels-and-badges.js?v=115239190121355418111782330849" defer></script>
7319 7320</div><div id="shopify-section-sections--26875465072950__quick-view" class="shopify-section shopify-section-group-aside-group section-product-info section-quick-view"><style data-shopify> 7321 .button--quickview.button-solid, .button--quickview.button-disable-effect, 7322 .button--quickview.button-solid:before {--colors-line-and-border: var(--colors-button);} 7323 .title-size--sections--26875465072950__quick-view { 7324 font-size: 1.215rem; 7325 } 7326 .dark .button--quickview.button-solid, .dark .button--quickview.button-disable-effect, 7327 .dark .button--quickview.button-solid:before {--colors-line-and-border: var(--colors-button);} 7328 @media (min-width: 768px) { 7329 .title-size--sections--26875465072950__quick-view { 7330 font-size: 2.025rem; 7331 } 7332 } 7333 7334 #QuickView .product-info { 7335 padding: 16px 16px 1px 16px; 7336 } 7337 7338 7339 #QuickView .media-thumbnail.quickview-border { 7340 border-width: 1px; 7341 7342 } 7343 7344</style> 7345 7346<div 7347 id="QuickView" 7348 x-show="$store.xQuickView.show" 7349 :class="{ 'overflow-hidden padding-scrollbar': $store.xPopup.open }" 7350 x-cloak 7351 class="quick_view flex items-end md:items-center fixed top-0 left-0 right-0 bottom-0 z-[90] border" 7352 @keydown.escape="$store.xQuickView.removeFocusQuickView('QuickViewButton'); $store.xQuickView.close()" 7353 @init-run.window="$store.xQuickView.addListener()" 7354 @click="$store.xQuickView.clickInsideQuickView($event)" 7355 x-init="if ( window.location.search.includes('_quick-view') == false ) document.querySelector('.main-container').appendChild($el.parentNode)" 7356> 7357 <div class="x-overlay absolute top-0 left-0 right-0 bottom-0 bg-[#acacac] bg-opacity-30"></div> 7358 <div 7359 role="dialog" 7360 aria-label="Quick view" 7361 aria-modal="true" 7362 x-show="$store.xQuickView.show" 7363 class="x-quickview-modal duration-400 pl-0 pr-0 max-h-[85vh] md:max-h-full md:max-w-[480px] w-screen mr-0 ml-auto rtl:ml-0 rtl:mr-auto h-full" 7364 7365 x-transition:enter="transition-all ease-in-out duration-500" 7366 x-transition:enter-start="opacity-0 transform translate-y-1/3 md:translate-y-0 md:translate-x-1/3" 7367 x-transition:enter-end="opacity-100 transform translate-y-0 md:translate-x-0" 7368 x-transition:leave="transition ease-in-out duration-500" 7369 x-transition:leave-end="opacity-0 transform translate-y-1/3 md:translate-y-0 md:translate-x-1/3" 7370 7371 > 7372 <div class="x-container-quickview-body shadow-popup relative bg-[rgba(var(--background-color),1)] h-full md:h-full md:max-h-[calc(100vh-20px)] md:mt-2.5 md:mb-2.5 md:mr-2.5 md:ml-2.5 pb-5 lg:pb-8 2xl:pb-12 flex flex-col" 7373 @click.away="$store.xQuickView.close()" 7374 @click="$store.xQuickView.clickInsideContentQuickView($event)" 7375 x-intersect.full="$store.xQuickView.focusQuickView('QuickView', 'QuickViewClose')" 7376 > 7377 7378 <div class="x-container-quickview-header pl-4 pr-4 md:pl-5 md:pr-5 pt-5 pb-5 flex items-center justify-between"> 7379 <p class="h4 leading-tight p-break-words w-[calc(100%-40px)]">Quick view</p> 7380 <button aria-label="Close quickview" id="QuickViewClose" class="absolute group-close-btn cursor-pointer top-2 right-2 rtl:right-auto rtl:left-2 icon-close-container w-fit z-10 rounded-full" @click.prevent="$store.xQuickView.close()"> 7381 7382 <svg class="icon-close-animation" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 7383 <path d="M1 1L23 23M23 1L1 23" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 7384 </svg> 7385 7386 </button> 7387 </div> 7388 7389 <div class="x-container-quickview-content pt-2 md:pt-0 md:pl-5 md:pr-5 overflow-y-auto overflow-x-hidden scrollbar-body h-full"> 7390 <div x-show="$store.xQuickView.loading" class="x-container-quickview-placeholder flex gap-x-[4%] flex-wrap animate-Xpulse flex-row-reverse"> 7391 <div class="w-full bg-slate-200 mb-5 pb-[75%]"></div> 7392 <div class="w-full"> 7393 7394 <p class="mb-2 h-4 w-10 bg-slate-200"></p> 7395 7396 <p class="mb-5 h-5 w-3/4 bg-slate-200"></p><div class="h-5 bg-slate-200 w-20 mb-5 rounded"></div><div class="h-5 bg-slate-200 w-1/3 mb-5 rounded"></div><div class="h-5 bg-slate-200 w-20 mb-5 rounded"></div><div class="h-7 bg-slate-200 w-full mb-5 rounded"></div><div class="h-7 bg-slate-200 w-2/3 mb-5 rounded"></div><div class="h-7 bg-slate-200 w-1/3 mb-5 rounded"></div><div class="h-10 bg-slate-200 w-full mb-5 rounded"></div><div class="h-9 bg-slate-200 w-full mb-5 rounded"></div><div class="h-5 bg-slate-200 w-20 mb-5 rounded"></div></div> 7397 </div>
7398 <div id="quickview-product-content" class="quick-view" x-show="!$store.xQuickView.loading"></div> 7399 </div> 7400 </div> 7401 </div> 7402</div> 7403 7404 7405<div class="popup-choose-options-mobile fixed z-[60] left-0 right-0 animate-goleft duration-300" x-show="$store.xQuickView.openPopupMobile" x-cloak> 7406 <div class="bg-[#acacac] opacity-40 block md:hidden fixed top-0 right-0 bottom-0 left-0" @click="$store.xQuickView.closePopupMobile()"></div> 7407 <div 7408 x-show="$store.xQuickView.openPopupMobile" 7409 class="z-30 md:hidden overflow-auto pt-2 pb-2 flex flex-col fixed bottom-0 left-0 md:bottom-auto max-h-[85vh] w-full bg-[rgba(var(--background-color),1)] text-left" 7410 x-transition:enter="transition-all ease-in-out duration-500" 7411 x-transition:enter-start="opacity-0 transform translate-y-1/3" 7412 x-transition:enter-end="opacity-100 transform translate-y-0" 7413 x-transition:leave="transition ease-in-out duration-500" 7414 x-transition:leave-end="opacity-0 transform translate-y-1/3" 7415 > 7416 <button 7417 class="cursor-pointer group-close-btn rounded-full absolute icon-close-container w-fit z-10 right-2 md:right-0 top-2 lg:end-10 rtl:left-2 rtl:md:left-0 rtl:right-auto" 7418 aria-label="Close quickview" 7419 @click="$store.xQuickView.closePopupMobile()" 7420 > 7421 7422 <svg class="icon-close-animation" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 7423 <path d="M1 1L23 23M23 1L1 23" stroke="currentColor" stroke-width="2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 7424 </svg> 7425 7426 </button> 7427 <div :class="$store.xQuickView.loadingChooseOption ? 'block md:hidden' : 'hidden md:hidden'" class="flex gap-x-[4%] flex-wrap animate-Xpulse flex-row-reverse"> 7428 <div class="w-full pl-5 pr-5 pt-7 pb-5"> 7429 <p class="mb-5 h-5 w-3/4 bg-slate-200"></p> 7430 <div class="h-7 bg-slate-200 w-full mb-5 rounded"></div> 7431 <div class="h-5 bg-slate-200 w-1/3 mb-5 rounded"></div> 7432 <div class="h-7 bg-slate-200 w-2/3 mb-5 rounded"></div> 7433 <div class="h-7 bg-slate-200 w-1/3 mb-5 rounded"></div> 7434 <div class="h-7 bg-slate-200 w-1/3 mb-5 rounded"></div> 7435 <div class="flex gap-x-5"> 7436 <div class="h-10 bg-slate-200 flex-1 mb-5 rounded"></div> 7437 <div class="h-10 bg-slate-200 flex-1 mb-5 rounded"></div> 7438 </div> 7439 </div> 7440 </div> 7441 <div class="choose-options-mobile rtl:text-right" id="choose-options-mobile" x-show="!$store.xQuickView.loadingChooseOption"></div> 7442 </div> 7443 </div>
7444<script> 7445window.xQuickView = { 7446 sectionId: 'sections--26875465072950__quick-view', 7447 enabled: true, 7448 show_atc_button: true, 7449 atc_btn_bottom: true, 7450 atc_btn_image_desktop: true, 7451 buttonLabel: 'Quick view' 7452} 7453</script>
vendor: 1 bytes, line 7453
7453
7454<script src="//calistatools.com/cdn/shop/t/144/assets/quick-view.js?v=87789780442713427201782330849" defer></script>
vendor: 1 bytes, line 7454
7454
7455<script src="//calistatools.com/cdn/shop/t/144/assets/payment-button.js?v=19694614378629863991782330849" defer></script>
vendor: 1 bytes, line 7455
7455
7456<script src="//calistatools.com/cdn/shop/t/144/assets/product-media.js?v=178923250894042546431782330849" defer></script>
vendor: 1 bytes, line 7456
7456
7457<script src="//calistatools.com/cdn/shop/t/144/assets/recently-viewed.js?v=93421342682375135181782330849" defer></script>
vendor: 1 bytes, line 7457
7457
7458<script src="//calistatools.com/cdn/shop/t/144/assets/customize-picker.js?v=71491105029373997401782330849" defer></script>
vendor: 1 bytes, line 7458
7458
7459<script src="//calistatools.com/cdn/shop/t/144/assets/variant-select.js?v=28920746821541902741782330849" defer></script>
7459 7460 7461</div> 7462<!-- END sections: aside-group --> 7463 7464 7465 7466 <main id="MainContent" class="content-for-layout focus-none outline-none grow theme-template-index theme-template-suffix-none" role="main" tabindex="-1"> 7467 <section id="shopify-section-template--26875474280758__4c9e1af5-c4c0-48cf-b771-49029eedd24f" class="shopify-section section section-slideshow"><style data-shopify> 7468 .x-splide-slide.is-active .animate_transition_three_fold_text, 7469 .active.animate_transition_three_fold_text, 7470 .disable-animation-slideshow .animate_transition_three_fold_text { 7471 transform: translateY(0); 7472 opacity: 1; 7473 will-change: transform, opacity; 7474 } 7475 .animate_transition_three_fold_text, .animate_transition_three_fold_right { 7476 opacity: 0; 7477 transition-property: transform,opacity; 7478 transition-timing-function: ease-in; 7479 transition-duration: var(--transition-slideshow); 7480 } 7481 .animate_transition_three_fold_text { 7482 transform: translateY(100%); 7483 } 7484 .animate_transition_three_fold_right { 7485 transform: translateX(100%); 7486 } 7487 .disable-animation-slideshow .animate_transition_three_fold_right , 7488 .disable-animation-slideshow .animate_transition_three_fold_left, 7489 .rtl .disable-animation-slideshow .animate_transition_three_fold_right , 7490 .rtl .disable-animation-slideshow .animate_transition_three_fold_left { 7491 transform: translateX(0%); 7492 opacity: 1; 7493 } 7494 .animate_transition_three_fold_left { 7495 opacity: 0; 7496 transform: translateX(-100%); 7497 transition-property: transform,opacity; 7498 transition-timing-function: ease-in;
7499 transition-duration: var(--transition-slideshow); 7500 } 7501 .x-splide-slide.is-active .animate_transition_three_fold_right, 7502 .x-splide-slide.is-active .animate_transition_three_fold_left, 7503 .active.animate_transition_three_fold_right, 7504 .active.animate_transition_three_fold_left { 7505 opacity: 1; 7506 transform: translateX(0%); 7507 will-change: transform, opacity; 7508 } 7509 .animate-paginate-slideshow { 7510 transform: translateY(100%); 7511 transition-property: transform,opacity; 7512 transition-timing-function: ease-in; 7513 transition-duration: 0.4s; 7514 } 7515 .active.animate-paginate-slideshow { 7516 transform: translateY(0); 7517 will-change: transform; 7518 } 7519 .pagination-dots button:after{ 7520 content: ''; 7521 background: rgba(var(--image-treatment-text)); 7522 margin-left:0.375rem; 7523 margin-right:0.375rem; 7524 height:0.5rem; 7525 width:0.5rem; 7526 border-radius:9999px; 7527 opacity:0.5; 7528 } 7529 .pagination-dots button.is-active:after{ 7530 content: ''; 7531 --tw-scale-x:1.5; 7532 --tw-scale-y:1.5; 7533 transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); 7534 opacity:1; 7535 transition-duration:300ms; 7536 } 7537 @media (min-width: 1024px) { 7538 .animate_transition_slide__image_three_fold_right, .animate_transition_slide__image_three_fold_left { 7539 overflow: hidden; 7540 scale: 1.1; 7541 } 7542 .animate_transition_slide__image_three_fold_right { 7543 transform-origin: 0 100%; 7544 transform: rotate(5deg); 7545 } 7546 .animate_transition_slide__image_three_fold_left { 7547 transform-origin: 100% 100%; 7548 transform: rotate(-5deg); 7549 } 7550 .x-splide-slide.is-active .animate_transition_slide__image_three_fold_left, 7551 .x-splide-slide.is-active .animate_transition_slide__image_three_fold_right, 7552 .active.animate_transition_slide__image_three_fold_left, 7553 .active.animate_transition_slide__image_three_fold_right { 7554 scale: 1.1; 7555 } 7556 .pagination-dots button:after{ 7557 height:0.625rem; 7558 width:0.625rem 7559 } 7560 } 7561 @media screen and (max-width: 767px) { 7562 .mobile-template--26875474280758__4c9e1af5-c4c0-48cf-b771-49029eedd24f-natural{ 7563 height: 0; 7564 padding-bottom: 124.97918401332224%; 7565 } 7566 } 7567 @media screen and (min-width: 768px) { 7568 .desktop-template--26875474280758__4c9e1af5-c4c0-48cf-b771-49029eedd24f-natural{ 7569 height: 0; 7570 padding-bottom: 42.20255141890132%; 7571 } 7572 } 7573 .paginate-slide-image--template--26875474280758__4c9e1af5-c4c0-48cf-b771-49029eedd24f { 7574 7575 7576 } 7577 7578 #overlay-image-paginate--template--26875474280758__4c9e1af5-c4c0-48cf-b771-49029eedd24f.active { 7579 transition: width 10s ease-out; 7580 width: 100%; 7581 left: 0; 7582 right: auto; 7583 transform-origin: left; 7584 } 7585 .rtl #overlay-image-paginate--template--26875474280758__4c9e1af5-c4c0-48cf-b771-49029eedd24f.active { 7586 right: 0; 7587 left: auto; 7588 transform-origin: right; 7589 } 7590 7591 #x-slideshow-template--26875474280758__4c9e1af5-c4c0-48cf-b771-49029eedd24f:hover #overlay-image-paginate--template--26875474280758__4c9e1af5-c4c0-48cf-b771-49029eedd24f.active { 7592 transition: none; 7593 width: 0%; 7594 } 7595 7596 7597 .splide__arrow--prev:hover .pagination-button-next-overlay { 7598 opacity: 0; 7599 transition-duration: 100ms; 7600 } 7601 .splide__arrow--next:hover .pagination-image-next-overlay { 7602 opacity: 0; 7603 transition-duration: 100ms; 7604 } 7605 7606 .hidden-img-template--26875474280758__4c9e1af5-c4c0-48cf-b771-49029eedd24f img[loading="lazy"] { 7607 display: none; 7608 } 7609 .hidden-img-template--26875474280758__4c9e1af5-c4c0-48cf-b771-49029eedd24f div[x-slide-index="0"] img[loading="lazy"] { 7610 display: block; 7611 } 7612 7613 #shopify-section-template--26875474280758__4c9e1af5-c4c0-48cf-b771-49029eedd24f { 7614 padding-top: 0px; 7615 padding-bottom: 0px; 7616 } 7617 @media (min-width: 768px) { 7618 #shopify-section-template--26875474280758__4c9e1af5-c4c0-48cf-b771-49029eedd24f { 7619 padding-top: 0px; 7620 padding-bottom: 0px; 7621 } 7622 }</style><div 7623 id="x-slideshow-template--26875474280758__4c9e1af5-c4c0-48cf-b771-49029eedd24f" 7624 x-data="{ intersect: false }" 7625 class="x-container-slideshow pause-on-hover_slide_show splide-slideshow overflow-hidden visible mr-auto ml-auto md:pl-0 md:pr-0 full-width-mobile disable-effect-hover hidden-img-template--26875474280758__4c9e1af5-c4c0-48cf-b771-49029eedd24f" 7626 7627 x-intersect.once="intersect = true"><div x-intersect.once="$el.classList.remove('bg-[#c9c9c9]')" class="relative bg-[#c9c9c9] overflow-hidden desktop-template--26875474280758__4c9e1af5-c4c0-48cf-b771-49029eedd24f-natural h-[500px] md:h-auto md:rounded-none"> 7628 <div class="w-full h-full md:absolute md:top-0 md:left-0 md:bottom-0 relative"> 7629<style data-shopify>#shopify-section-template--26875474280758__4c9e1af5-c4c0-48cf-b771-49029eedd24f .x-slideshow-slide_PtDxCg { 7630 --image-treatment-text: 51, 50, 46; 7631 }.button--slide_PtDxCg.button-solid, 7632 .button--slide_PtDxCg.button-solid:before {--colors-line-and-border: 51, 50, 46; 7633 --colors-button: 51, 50, 46;--colors-button-text: 255, 255, 255;} 7634 .button--slide_PtDxCg.button-outline { 7635 7636 } 7637 7638.heading-slide_PtDxCg { 7639 font-size: 1.125rem; 7640 } 7641 .sub-heading-slide_PtDxCg { 7642 font-size: 0.9rem; 7643 } 7644 .image-slide_PtDxCg { 7645 object-position:50.0% 50.0%; 7646 } 7647 .bg-content-slide_PtDxCg { 7648 background-color: rgb(var(--colors-background-secondary));} 7649 @media screen and (min-width: 768px) { 7650 .heading-slide_PtDxCg { 7651 font-size: 2.25rem; 7652 } 7653 .sub-heading-slide_PtDxCg { 7654 font-size: 1.0rem; 7655 } 7656 .image-slide_PtDxCg { 7657 object-position:50.0% 50.0%; 7658 } 7659 #image-paginate--template--26875474280758__4c9e1af5-c4c0-48cf-b771-49029eedd24f[image-next-active="0"] { 7660 7661 background-image: url(//calistatools.com/cdn/shop/files/Artboard_9-100_6e9561d6-4fe0-4536-af06-2d81fd253861.jpg?v=1790874419&width=300); 7662 7663 background-size: cover; 7664 background-repeat: no-repeat; 7665 background-position: center; 7666 } 7667 .bg-full-slide_PtDxCg { 7668 background: transparent; 7669 } 7670 } 7671 .bg-full-slide_PtDxCg { 7672 background-color: rgb(var(--colors-background-secondary));}@media (max-width: 767px) { 7673 .calista-cell--slide_PtDxCg { vertical-align: top !important; }
7674 .calista-box--slide_PtDxCg { 7675 float: none !important; 7676 width: -moz-fit-content !important; 7677 width: fit-content !important; 7678 max-width: 100% !important; 7679 margin-left: auto !important; 7680 margin-right: auto !important; 7681 } 7682 .calista-btns--slide_PtDxCg { justify-content: center !important; } 7683 }</style><div x-slide-index="0" 7684 class="x-block-slide x-slideshow-slide_PtDxCg disable-animation-slideshow h-full relative transition-opacity flex-shrink-0 w-full w-full" 7685 x-data="{effect: false}" 7686 x-intersect:leave.margin.-40px="effect = false" 7687 x-intersect.half="effect = true" 7688 7689 7690 > 7691 7692 <div class=" h-full relative overflow-hidden"> 7693 <span class="absolute top-0 left-0 bottom-0 right-0 z-10 pointer-events-none image-treatment-overlay opacity-0"></span> 7694 7695 <div :class="effect && 'active'" class="w-full absolute top-0 left-0 h-full h-full md:absolute md:top-0 md:left-0 z-0 animate_transition_slide__image"> 7696 7697 7698 <parallax-image class="h-full w-full"> 7699 <parallax-movement x-data="xParallax" x-intersect.once.margin.200px="load(true)"> 7700 <picture> 7701 <source 7702 srcset="//calistatools.com/cdn/shop/files/Artboard_10-100_72b475f3-e2fa-41bf-976c-3e29ceaa9d38.jpg?v=1790874418&width=375 375w, 7703 //calistatools.com/cdn/shop/files/Artboard_10-100_72b475f3-e2fa-41bf-976c-3e29ceaa9d38.jpg?v=1790874418&width=450 450w, 7704 //calistatools.com/cdn/shop/files/Artboard_10-100_72b475f3-e2fa-41bf-976c-3e29ceaa9d38.jpg?v=1790874418&width=750 750w, 7705 //calistatools.com/cdn/shop/files/Artboard_10-100_72b475f3-e2fa-41bf-976c-3e29ceaa9d38.jpg?v=1790874418&width=900 900w" 7706 media="(max-width: 767px)" 7707 sizes="100vw" 7708 > 7709 <img 7710 srcset="//calistatools.com/cdn/shop/files/Artboard_9-100_6e9561d6-4fe0-4536-af06-2d81fd253861.jpg?v=1790874419&width=375 375w, 7711 //calistatools.com/cdn/shop/files/Artboard_9-100_6e9561d6-4fe0-4536-af06-2d81fd253861.jpg?v=1790874419&width=450 450w, 7712 //calistatools.com/cdn/shop/files/Artboard_9-100_6e9561d6-4fe0-4536-af06-2d81fd253861.jpg?v=1790874419&width=750 750w, 7713 //calistatools.com/cdn/shop/files/Artboard_9-100_6e9561d6-4fe0-4536-af06-2d81fd253861.jpg?v=1790874419&width=900 900w, 7714 //calistatools.com/cdn/shop/files/Artboard_9-100_6e9561d6-4fe0-4536-af06-2d81fd253861.jpg?v=1790874419&width=1100 1100w, 7715 //calistatools.com/cdn/shop/files/Artboard_9-100_6e9561d6-4fe0-4536-af06-2d81fd253861.jpg?v=1790874419&width=1500 1500w, 7716 //calistatools.com/cdn/shop/files/Artboard_9-100_6e9561d6-4fe0-4536-af06-2d81fd253861.jpg?v=1790874419&width=1780 1780w, 7717 //calistatools.com/cdn/shop/files/Artboard_9-100_6e9561d6-4fe0-4536-af06-2d81fd253861.jpg?v=1790874419&width=2000 2000w, 7718 //calistatools.com/cdn/shop/files/Artboard_9-100_6e9561d6-4fe0-4536-af06-2d81fd253861.jpg?v=1790874419&width=3000 3000w, 7719 //calistatools.com/cdn/shop/files/Artboard_9-100_6e9561d6-4fe0-4536-af06-2d81fd253861.jpg?v=1790874419&width=3840 3840w" 7720 7721 loading="eager" 7722 fetchpriority="high" 7723 decoding="sync" 7724 7725 sizes="100vw" 7726 src="//calistatools.com/cdn/shop/files/Artboard_9-100_6e9561d6-4fe0-4536-af06-2d81fd253861.jpg?v=1790874419&width=3840" 7727 alt="" 7728 class="object-cover h-full w-full image-slide_PtDxCg" 7729 width="3841" 7730 height="1621" 7731 > 7732 </picture> 7733 </parallax-movement> 7734 </parallax-image> 7735 7736 7737 7738 </div> 7739 7740 </div> 7741 7742<div class="hero-text pointer-events-none transition x-pgw page-width absolute left-1/2 z-20 -translate-x-1/2 top-0 w-full h-full table"> 7743 <div class="calista-cell--slide_PtDxCg table-cell max-w-full md:max-w-[745px] md:min-w-[30rem] lg:w-[65%] align-middle text-center" 7744 > 7745 <div
7746 class="calista-box--slide_PtDxCg animate_transition_slide__box xl:pr-[60px] xl:pl-[60px] lg:pr-10 lg:pl-10 lg:max-w-[700px] pt-5 pr-5 pl-5 pb-5 mb-5 md:mb-6 float-left md:float-left 7747" 7748 :class="effect && 'active'" 7749 > 7750 7751 7752<style data-shopify> 7753 7754 .dark .heading-slide_PtDxCg { 7755 7756 --color-highlight: rgb(145, 180, 116); 7757 7758 } 7759</style> 7760 7761 7762 7763 7764 7765 7766 <h2 7767 class='heading-slide_PtDxCg p-break-words h2 block mt-1 leading-tight image-treatment-text'> 7768 7769 7770 7771 Scary Good Hair, Wickedly Good Prices 7772 7773 7774 </h2> 7775 7776 7777 7778<div class="lg:mt-1 p-break-words pointer-events-auto rte image-treatment-text text-medium rte"> 7779 <p>Shop New Halloween Bundles & Save an Extra 10% Off All Value Sets.</p> 7780 </div><div class="calista-btns--slide_PtDxCg mt-4 pointer-events-auto lg:mt-9 inline-flex flex-wrap gap-y-2 p-break-words gap-x-3 md:justify-left justify-center" ><a href="/collections/hair-styling-kits-sets" class="button button--slide_PtDxCg button-solid border mt-0.5 mb-0.5 empty:hidden pl-6 pr-6 lg:pl-9 lg:pr-9 pt-2.5 pb-2.5 md:pt-3 md:pb-3 leading-normal"> 7781 7782<div class="flex justify-center "> 7783 7784 7785 7786 <span class="button-text is-focus-button:opacity-0">SHOP NOW</span> 7787 7788 7789 7790 7791</div> 7792 </a></div> 7793 </div> 7794 </div> 7795 </div> 7796 7797 7798 <a href="/collections/hair-styling-kits-sets" class="absolute top-0 left-0 bottom-0 right-0 z-[19] opacity-0">/collections/hair-styling-kits-sets</a> 7799 7800 </div> 7801 7802</div> 7803 </div> 7804 7805</div> 7806</section><section id="shopify-section-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656" class="shopify-section section section-featured-collection x-section"> 7807<style data-shopify>.section-padding-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656 { 7808 padding-top: 20px; 7809 padding-bottom: 12px; 7810 } 7811 @media (min-width: 768px) { 7812 .section-padding-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656 { 7813 padding-top: 44px; 7814 padding-bottom: 52px; 7815 } 7816 } 7817 .heading-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656 { 7818 font-size: 1.08rem; 7819 } 7820 #shopify-section-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656 .collection-title .h4 { 7821 font-size: 0.875rem; 7822 } 7823 @media (min-width: 768px) { 7824 .heading-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656 { 7825 font-size: 1.8rem; 7826 } 7827 #shopify-section-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656 .collection-title .h4 { 7828 font-size: 0.35rem; 7829 } 7830 } 7831 @media (min-width: 1024px) { 7832 #shopify-section-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656 .collection-title .h4 { 7833 font-size: 0.4375rem; 7834 } 7835 } 7836 .collection-title .label-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656 { 7837 7838 7839 background: #ffffff; 7840 7841 7842 7843 color: #33322e; 7844 7845 } 7846 .collection-title .label-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656.active, .collection-title .label-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656.active:hover { 7847 7848 background: #ffffff; 7849 7850 7851 color: #33322e; 7852 7853 } 7854 .collection-title .label-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656:hover { 7855 7856 7857 background: rgba(51, 50, 46, 0.5); 7858 7859 7860 7861 color: rgb(var(--colors-heading)); 7862 7863 } 7864 .dark .collection-title .label-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656 { 7865 7866 7867 background: rgba(255, 255, 255, 0.1); 7868 7869 7870 7871 color: rgb(var(--colors-heading)); 7872 7873 } 7874 .dark .collection-title .label-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656.active, .dark .collection-title .label-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656.active:hover { 7875 7876 7877 background: rgba(255, 255, 255, 0.5); 7878 7879 7880 7881 color: rgb(var(--colors-heading)); 7882 7883 } 7884 .dark .collection-title .label-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb76
788456:hover { 7885 7886 7887 background: rgba(255, 255, 255, 0.5); 7888 7889 7890 7891 color: rgb(var(--colors-heading)); 7892 7893 }</style><div 7894 class="x-container-featured-collection section-padding-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656" 7895 x-data="{ 7896 view_all_link: '/collections/best-sellers', 7897 setViewAllLink(url) { 7898 this.view_all_link = url; 7899 } 7900 }" 7901> 7902 <div class="collection_wrapper"><div class="mb-4 md:mb-2 relative"> 7903 <div class="relative w-full bg-transparent"><div class="featured-collection relative min-h-[300px] left-0 right-0 bg-[rgba(var(--background-color))] pb-2" x-data='xFeaturedCollection("template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656", "page", $el)'> 7904 <div class="x-block-header pl-5 pr-5 flexflex-col md:gap-3 md:flex-row rtl:md:flex-row-reverse" 7905 ><div class="mb-5 md:w-[30%] lg:mb-0 text-left rtl:text-right"><div class="mb-1.5 overflow-hidden" x-intersect.once="$el.querySelector('.anm-move-up')?.classList.add('active-anm-heading')"> 7906 <p class="rte anm-move-up">Bestsellers time and time again.</p> 7907 </div> 7908 7909 7910 7911 7912<style data-shopify> 7913 7914 .dark .heading-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656 { 7915 7916 --color-highlight: rgb(145, 180, 116); 7917 7918 } 7919</style> 7920 7921 7922 7923 7924 <div class="overflow-hidden" x-intersect.once="$el.querySelector('.anm-move-up')?.classList.add('active-anm-heading'); setTimeout(() => { $el.querySelector('.anm-move-up')?.classList.remove('anm-move-up') }, 600)"> 7925 7926 7927 7928 <h2 7929 class='heading-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656 h2 block leading-tight p-break-words anm-move-up'> 7930 7931 7932 7933 Shop Customer Faves 7934 7935 7936 </h2> 7937 7938 7939 </div> 7940 7941 7942 7943 </div> 7944 7945 7946 </div><div class=" md:pl-5 md:pr-5 x-pgw page-width-mobile" x-show="loading"> 7947 7948 </div> 7949 7950 7951 7952 7953 <div class="animate-fade-in relativemd:mt-4 lg:mt-8" 7954 id="x-fc-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1" 7955 7956 > 7957 <style data-shopify> 7958 7959 @media (max-width: 767px) { 7960 .preload-slide-mobile--collection_DqgeTWtemplate--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656 { 7961 margin-right: 5px; 7962 7963 width: calc(((100% + 5px) / 2) - 5px); 7964 } 7965 } 7966 7967 7968 7969 </style> 7970 <div 7971 class=" carousel-mobile md:pl-5 md:pr-5 pl-5 pr-5" 7972 x-intersect.once.margin.-200px='$store.xCustomerEvent.fire("list_product_viewed", $el, {list: { title: `Best Sellers`, id: "collection" }}
7972)' 7973 ><div ><div 7974 id="x-collection-collection_DqgeTW" 7975 class="collection overflow-hidden x-splide visible splide" 7976 x-data-slider="template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656" 7977 x-intersect.once.margin.200px='$store.xSplide.load($el, { 7978 "speed": 1000, 7979 "pagination": false, 7980 "mediaQuery": "min", 7981 "updateOnMove": "true", 7982 "pauseOnHover": true, 7983 "pauseOnFocus": false, 7984 "progressBar": 4, 7985 7986 7987 "breakpoints": { 7988 300: {"gap": "5px", 7989 "perPage": 2, 7990 "perMove": 2 7991 }, 7992 768: { 7993 "drag": true, 7994 "destroy": true, 7995 "gap": "5px", 7996 "perPage": 4, 7997 "perMove": 4 7998 7999 }, 8000 1024: { 8001 "perPage": 4, 8002 "perMove": 4 8003 } 8004 }, 8005 "classes": { 8006 "arrows" : "block" 8007 }, 8008 "events": [ 8009 { 8010 "event": "ready", 8011 "callback": () => { 8012 document.dispatchEvent(new CustomEvent("eurus:template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656:splide-ready")); 8013 } 8014 } 8015 ] 8016 })'x-intersect.once='$el.classList.add("is-ready-to-animate")' 8017 > 8018 <style data-shopify> 8019 .gap-mobile-collection_DqgeTW-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656 { 8020 gap: 5px; 8021 } 8022 @media (min-width: 768px) { 8023 .gap-collection_DqgeTW-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656 { 8024 8025 gap: 5px; 8026 8027 } 8028 } 8029 </style> 8030 8031 <div class="splide__arrows flex items-center justify-center gap-3 md:gap-0 mb-1 md:mb-0 mt-5 md:mt-0 order-2"> 8032 <button 8033 class="splide__arrow splide__arrow--prev button-arrow pt-3 pb-3 pr-3 pl-3 rounded-full z-10 w-11 h-11 border border-solid md:border-none after:text-[20px] rtl:rotate-180 disabled:cursor-not-allowed disabled:opacity-30 hidden md:hidden" 8034 aria-label="previous slide" 8035 > 8036 <span class="hidden">previous slide</span> 8037 8038 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid meet"> 8039 <path fill="none" d="M16 1L5 12L16 23" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 8040 </svg> 8041 8042 8043 8044 </button> 8045 <button 8046 class="splide__arrow splide__arrow--next button-arrow pt-3 pb-3 pr-3 pl-3 rounded-full z-10 w-11 h-11 border border-solid md:border-none after:text-[20px] rtl:rotate-180 disabled:cursor-not-allowed disabled:opacity-30 hidden md:hidden" 8047 aria-label="next slide" 8048 > 8049 <span class="hidden">next slide</span> 8050 8051 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid meet"> 8052 <path fill="none" d="M8 1L19 12L8 23" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 8053 </svg> 8054 8055 8056 8057 </button> 8058 </div> 8059 8060 8061 <div class="splide__track lg:pl-0 lg:pr-0"> 8062 8063 <div class="splide__list gap-collection_DqgeTW-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb76
806356 md:grid md:grid-cols-4 lg:grid-cols-4 flex w-full"><style data-shopify> 8064 .x-slide-animation-duration-1 { 8065 --delay-time: 0ms 8066 } 8067 </style> 8068 8069 8070 8071 8072<div 8073 8074 x-data="xProductCard('template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1-1', '/collections/best-sellers/products/gogo-mini-round-brush', '1797342068805')" 8075 8076 class="card-product overflow-hidden card md:list-layout:flex relative pb-4 md:pb-5 splide__slide x-splide-slide h-auto preload-slide-collection_DqgeTWtemplate--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656 preload-slide-mobile--collection_DqgeTWtemplate--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656" 8077 x-slide-index="0" 8078> 8079 <div class="md:list-layout:w-2/5 md:list-layout:lg:w-1/4 relative disable-effect md:list-layout:pr-8" 8080 > 8081 8082 <a 8083 8084 href="/collections/best-sellers/products/gogo-mini-round-brush" 8085 8086 x-data="{ lastWindowWidth: 0 }" 8087 x-intersect.once.margin.200px='$nextTick(() => { $store.xBadges && $store.xBadges.load($el, () => {}, null, true); })' 8088 x-labels-data="[ 8089 8090{ 8091 "variant_id": 53297881514294, 8092 "product_id": 1797342068805, 8093 "available": true, 8094 "title": "GoGo Mini Round Brush", 8095 "compare_at_price": 0, 8096 "price": 4000, 8097 "price_with_currency": "$40", 8098 "sale_amount": "$-40", 8099 "collections": "||166997852220||270133723196||137844031557||155590623292||137730490437||157864558652||137698115653||261925437500||500855898422||526186479926||137909567557||520121483574||506576863542||154168066108||", 8100 "inventory_management": "shopify", 8101 "qty": 2859, 8102 "container": "card", 8103 "can_show_preorder": false, 8104 "diff_day_create": 1540652877, 8105 "diff_day_publish": 1668124091 8106 8107 ,"metafield_label": { 8108 "custom.promo_copy":"" 8109 } 8110 8111 } 8112 ]" 8113 8114 aria-label="GoGo Mini Round Brush" 8115 id="1797342068805-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656" 8116 class="x-labels-data ltr group link-product-variant overflow-hidden block relative z-[15] cursor-pointer before:h-0 before:block no-collage pb-[100%]"> 8117 <div
8118 id="x-slideshow-card-product-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1-1-0" 8119 class="block w-full h-full absolute top-0 left-0 z-0 overflow-hidden x-splide splide visible" 8120 @click='$store.xCustomerEvent.fire("product_selected", $el)' 8121 x-customer-event-data="{ 8122 "product": { 8123 "title": "GoGo Mini Round Brush", 8124 "listName": "Best Sellers", 8125 "sku": "1797342068805", 8126 "currencyCode": "USD", 8127 "price": 4000, 8128 "vendor": "Calista Tools" 8129 } 8130 }" 8131 x-cloak 8132 8133 x-intersect.once.margin.200px='$store.xSplide.load($el, { 8134 "drag": true, 8135 "pagination": true, 8136 "arrows": false, 8137 "pauseOnFocus": false, 8138 "pauseOnHover": false, 8139 "perMove": 1, 8140 "perPage": 1, 8141 "focus": "center", 8142 "mediaQuery": "min", 8143 "rewind": true, 8144 8145 "destroy": true, 8146 8147 "breakpoints": { 8148 1024: { 8149 8150 "destroy": true 8151 8152 } 8153 }, 8154 8155 "playOnHover": true, 8156 8157 8158 "classes": { 8159 "pagination": "gap-1 flex-nowrap absolute bottom-2 left-2.5 rtl:right-2.5 rtl:left-auto flex", 8160 "page": "paginate-dots-card-product duration-200 rounded-full w-2 flex items-center h-2" 8161 }, 8162 "type": "slide", 8163 })'> 8164 <div 8165 id="image-product-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1-1-0" 8166 class="splide__track overflow-hidden max-h-full h-full w-full" 8167 > 8168 <div class="w-full h-full splide__list"> 8169 <div class="w-full z-0 h-full min-h-full overflow-hidden splide__slide x-splide-slide max-h-full lg:top-0 lg:left-0 lg:absolute" 8170 > 8171 8172 <picture> 8173 <img 8174 srcset=" 8175 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=250 250w, 8176 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=350 350w, 8177 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=450 450w, 8178 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=750 750w, 8179 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=900 900w, 8180 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=1100 1100w, 8181 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=1500 1500w,//calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135 2083w" 8182 src="//calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=1500" 8183 sizes="(min-width: 1400px) calc(100vw / 4), (min-width: 1024px) calc((100vw) / 4), (min-width: 768px) calc((100vw) / 2), calc((100vw /2) - 2px)" 8184 alt="gogo mini round brush in berry burst " 8185 class="w-full preview-img motion-reduce aspect-square relative animate-Xpulse skeleton-image object-cover h-full min-h-full image-first-slide-anm lg:group-hover:opacity-0 transition-opacity duration-500" 8186 8187 loading = "eager" 8188 fetchpriority="high" 8189 decoding="sync" 8190 8191 width="2083" 8192 height="2083" 8193 onload="requestAnimationFrame(() => { 8194 this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); 8195 setTimeout(() => { this.closest('.animate_transition_card__image')?.classList.add('lazy_active', 'active'); }, 250); 8196 })" 8197 /> 8198 </picture> 8199 8200 </div><style data-shopify> 8201 #image-product-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb76
820156-1-1-0 .media-slide:not(:first-child) { 8202 height: 100%; 8203 } 8204 </style> 8205 <div class="media-slide splide__slide x-splide-slide z-0 transition ease-out duration-300 w-full h-full lg:block"> 8206 8207 <picture> 8208 <img 8209 srcset="//calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-10.jpg?v=1777486135&width=250 250w, 8210 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-10.jpg?v=1777486135&width=350 350w, 8211 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-10.jpg?v=1777486135&width=450 450w, 8212 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-10.jpg?v=1777486135&width=750 750w, 8213 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-10.jpg?v=1777486135&width=900 900w, 8214 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-10.jpg?v=1777486135&width=1100 1100w, 8215 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-10.jpg?v=1777486135&width=1500 1500w,//calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-10.jpg?v=1777486135 2083w" 8216 src="//calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-10.jpg?v=1777486135&width=1500" 8217 sizes="(min-width: 1400px) calc(100vw / 4), (min-width: 1024px) calc((100vw) / 4), (min-width: 768px) calc((100vw) / 2), calc((100vw /2) - 2px)" 8218 alt="berry burst gogo mini brush teeth " 8219 class="motion-reduce min-w-full h-full object-cover group-hover:cursor-pointer content-visibility-auto image-first-hover-slide-anm absolute top-0 lg:-right-[101%]" 8220 loading="lazy" 8221 width="2083" 8222 height="2083" 8223 onload="requestAnimationFrame(() => { 8224 this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); 8225 setTimeout(() => { this.closest('.animate_transition_card__image')?.classList.add('lazy_active', 'active'); }, 250); 8226 })" 8227 /> 8228 </picture> 8229 8230 </div></div> 8231 </div></div> 8232 <div class="md:list-layout:hidden" x-show="$store.xQuickView" :class="$store.xQuickView && $store.xQuickView.btn_atc_bottom ? 'mobile-bottom':''"><div class="quick-view-container absolute z-20 bottom-2 right-2 rtl:right-auto rtl:left-2 rtl:lg:left-auto lg:top-auto lg:right-auto lg:bottom-4 lg:w-full lg:group-hover:opacity-100 lg:group-hover:translate-y-0 focus:opacity-100 focus:translate-y-0 lg:translate-y-full transition-all duration-[var(--transition-card-image-hover)] ease-in-out lg:opacity-0" 8233 x-show="$store.xQuickView" x-cloak 8234 > 8235 <div x-data="xProductCart" x-show="$store.xQuickView && $store.xQuickView.show_atc_button" 8236 class="w-full hide-icon lg:pl-4 lg:pr-4" 8237 :class="if($store.xQuickView){ return ($store.xQuickView.btn_atc_bottom ? 'hidden' : '') + ($store.xQuickView.atc_btn_image_desktop ? ' lg:block' : ' lg:hidden') }" 8238 x-cloak 8239 > 8240 8241 <button 8242 type="submit" 8243 name="add" 8244 @click.prevent="setTimeout(() => { $store.xQuickView && (showOptions = !showOptions); $store.xQuickView.showChooseOption('template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1797342068805-collection_DqgeTW', $el); }, 0)" 8245 x-on:mouseover="setTimeout(() => { $store.xQuickView && $store.xQuickView.loadChooseOptions('/collections/best-sellers/products/gogo-m
8245ini-round-brush', $el, 'template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1797342068805-collection_DqgeTW', 201); }, 0)" 8246 data-id="template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1797342068805-collection_DqgeTW" 8247 class="button button--quickview button-solid not-icon leading-normal w-full pr-5 pl-5 pt-2.5 pb-2.5 lg:pt-3 lg:pb-3 h-full text-[12px] lg:text-[14px] lg:-translate-x-0 disabled:cursor-not-allowed disable-action-btn-animation disabled:opacity-60 hidden lg:block" 8248 :class="errorMessage && 'opacity-60 cursor-not-allowed'" 8249 8250 aria-label="Choose options" 8251 8252 > 8253 <span :class="{ 'lg:block opacity-0 is-focus-button' : loading, 'hidden' : errorMessage}"> 8254 8255 <span class="flex items-center justify-center"> 8256 8257<div class="flex justify-center "> 8258 8259 8260 8261 <span class="button-text is-focus-button:opacity-0">Choose options</span> 8262 8263 8264 8265 8266</div> 8267 </span> 8268 </span> 8269 <div class="lg:inline-block w-4 h-4 md:w-5 md:h-5 absolute top-[calc(50%-8px)] left-[calc(50%-8px)] md:top-[calc(50%-10px)] md:left-[calc(50%-10px)]" x-show="loading" x-cloak> 8270 8271 <svg class="animate-spin rounded-full" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"> 8272 <path transform="translate(0 512) scale(0.1 -0.1)" fill="currentColor" d="M2474 4676 c-43 -19 -101 -81 -115 -123 -18 -56 -7 -145 24 -190 52 -75 79 -85 262 -99 90 -7 207 -22 260 -33 436 -92 824 -352 1070 -721 521 -781 321 -1824 -453 -2358 -501 -345 -1172 -393 -1715 -121 -700 350 -1075 1118 -917 1876 37 180 86 305 209 536 51 96 54 147 15 226 -37 73 -86 104 -174 109 -105 6 -151 -24 -224 -145 -137 -230 -241 -543 -276 -833 -13 -110 -13 -355 1 -478 52 -475 268 -922 614 -1267 351 -352 787 -560 1284 -615 171 -19 442 -8 615 24 423 80 802 282 1111 591 407 407 625 931 625 1505 0 574 -218 1098 -625 1505 -296 296 -654 493 -1055 579 -210 45 -470 61 -536 32z"/> 8273 </svg> 8274 8275 8276 </div> 8277 </button> 8278 <button 8279 type="submit" 8280 name="add" 8281 @click.prevent="setTimeout(() => { $store.xQuickView && (showOptions = !showOptions); $store.xQuickView.showChooseOption('template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1797342068805-collection_DqgeTW', $el); }, 0)" 8282 x-on:mouseover="setTimeout(() => { $store.xQuickView && $store.xQuickView.loadChooseOptions('/collections/best-sellers/products/gogo-m
8282ini-round-brush', $el, 'template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1797342068805-collection_DqgeTW', 201); }, 0)" 8283 class="button label-btn-quickview button-disable-effect not-icon button--quickview rounded-full lg:leading-snug none_border lg:hidden h-full pt-1.5 pb-1.5 pl-1.5 pr-1.5 disabled:cursor-not-allowed disabled:opacity-60" 8284 data-id="template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1797342068805-collection_DqgeTW" 8285 :class="errorMessage && 'opacity-60 cursor-not-allowed'"aria-label="Choose options"x-customer-event-data="{ 8286 "product": { 8287 "title": "GoGo Mini Round Brush", 8288 "listName": "Best Sellers", 8289 "sku": "1797342068805", 8290 "currencyCode": "USD", 8291 "price": 4000, 8292 "vendor": "Calista Tools" 8293 } 8294 }" 8295 > 8296 <span class="w-5 h-5 flex items-center justify-center md:w-6 md:h-6" x-show="!loading"><svg class="" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"> 8297 <path fill="none" d="M4.537 3.25H18.0745L15.937 10.375H6.6745L4.537 3.25L4.00262 1.46875 M9.28698 12.8687C9.28698 13.459 8.80846 13.9375 8.21823 13.9375C7.62797 13.9375 7.14948 13.459 7.14948 12.8687 M14.9872 12.75C14.9872 13.3402 14.5087 13.8188 13.9185 13.8188C13.3282 13.8188 12.8497 13.3402 12.8497 12.75 M1.44977 1.35001H3.34977"/> 8298 </svg></span> 8299 <span class="block w-5 h-5" x-show="loading" x-cloak> 8300 8301 <svg class="animate-spin rounded-full" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"> 8302 <path transform="translate(0 512) scale(0.1 -0.1)" fill="currentColor" d="M2474 4676 c-43 -19 -101 -81 -115 -123 -18 -56 -7 -145 24 -190 52 -75 79 -85 262 -99 90 -7 207 -22 260 -33 436 -92 824 -352 1070 -721 521 -781 321 -1824 -453 -2358 -501 -345 -1172 -393 -1715 -121 -700 350 -1075 1118 -917 1876 37 180 86 305 209 536 51 96 54 147 15 226 -37 73 -86 104 -174 109 -105 6 -151 -24 -224 -145 -137 -230 -241 -543 -276 -833 -13 -110 -13 -355 1 -478 52 -475 268 -922 614 -1267 351 -352 787 -560 1284 -615 171 -19 442 -8 615 24 423 80 802 282 1111 591 407 407 625 931 625 1505 0 574 -218 1098 -625 1505 -296 296 -654 493 -1055 579 -210 45 -470 61 -536 32z"/> 8303 </svg> 8304 8305 8306 </span> 8307 </button> 8308 8309 </div> 8310 </div><div 8311 class="button-quickview-icon absolute z-[15] lg:group-hover:opacity-100 lg:group-hover:translate-y-0 focus:opacity-100 focus:translate-y-0 transition-all duration-[var(--transition-card-image-hover)] ease-in-out lg:opacity-0" 8312 :class="$store.xQuickView && $store.xQuickView.show_atc_button ? 'btn-quickadd bottom-11 md:bottom-12 right-2 lg:top-4 lg:bottom-auto lg:-translate-y-full rtl:right-auto rtl:left-2' : 'bottom-2 right-0 lg:top-auto lg:translate-y-full lg:right-auto lg:bottom-4 lg:w-full lg:left-0 pl-2 pr-2 lg:pr-4 lg:pl-4'" 8313 x-show="$store.xQuickView && $store.xQuickView.enabled" x-cloak 8314 > 8315 <div> 8316 <button 8317 @click.prevent='$store.xQuickView && $store.xQuickView.open(); $store.xCustomerEvent.fire("product_selected", $el);' 8318 x-on:mouseover="$store.xQuickView && $store.xQuickView.load('/collections/best-sellers/products/gogo-m
8318ini-round-brush', $el, 'template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1797342068805-collection_DqgeTW')" 8319 x-on:focus="$store.xQuickView && $store.xQuickView.load('/collections/best-sellers/products/gogo-mini-round-brush', $el, 'template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1797342068805-collection_DqgeTW')" 8320 class="button label-btn-quickview button--quickview not-icon leading-normal empty:hidden hidden lg:block z-50 h-full" 8321 :class="$store.xQuickView && $store.xQuickView.show_atc_button ? 'pt-1.5 pb-1.5 pl-1.5 pr-1.5 md:pt-2.5 md:pb-2.5 md:pl-2.5 md:pr-2.5 rounded-full button-disable-effect' : 'w-full pt-3 pb-3 button-solid'" 8322 x-customer-event-data="{ 8323 "product": { 8324 "title": "GoGo Mini Round Brush", 8325 "listName": "Best Sellers", 8326 "sku": "1797342068805", 8327 "currencyCode": "USD", 8328 "price": 4000, 8329 "vendor": "Calista Tools" 8330 } 8331 }" 8332 aria-label="Button quickview" 8333 > 8334 <span x-show="$store.xQuickView && $store.xQuickView.show_atc_button" class="w-4 h-4 flex items-center"><svg width="100%" height="100%" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg" style="fill: none;"> 8335 <path d="M28 8 a20 20 0 1 1 0 40 a20 20 0 1 1 0 -40 M42 42 L58 58 M28 20 V36 M20 28 H36" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" fill="none"/> 8336 </svg> 8337</span> 8338 <span x-show="$store.xQuickView && !$store.xQuickView.show_atc_button" class="flex items-center justify-center"> 8339 8340<div class="flex justify-center "> 8341 8342 <span class="button-text " x-text="$store.xQuickView && $store.xQuickView.buttonLabel"></span> 8343 8344 8345</div> 8346 </span> 8347 </button> 8348 <button @click.prevent='$store.xQuickView && $store.xQuickView.load("/collections/best-sellers/products/gogo-m
8348ini-round-brush", $el, "template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1797342068805-collection_DqgeTW"); $store.xQuickView && $store.xQuickView.open(); $store.xCustomerEvent.fire("product_selected", $el);' 8349 class="button label-btn-quickview button-disable-effect not-icon button--quickview rounded-full lg:leading-snug none_border lg:hidden h-full pt-2 pb-2 pl-2 pr-2" 8350 aria-label="Button quickview" 8351 x-customer-event-data="{ 8352 "product": { 8353 "title": "GoGo Mini Round Brush", 8354 "listName": "Best Sellers", 8355 "sku": "1797342068805", 8356 "currencyCode": "USD", 8357 "price": 4000, 8358 "vendor": "Calista Tools" 8359 } 8360 }" 8361 > 8362 <span class="w-4 h-4 md:w-5 md:h-5 flex items-center"><svg width="100%" height="100%" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg" style="fill: none;"> 8363 <path d="M28 8 a20 20 0 1 1 0 40 a20 20 0 1 1 0 -40 M42 42 L58 58 M28 20 V36 M20 28 H36" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" fill="none"/> 8364 </svg> 8365</span> 8366 </button> 8367 </div> 8368 </div> 8369 </div> 8370 8371 </a> 8372 <div class="card-info no-collage:mb-2 md:list-layout:hidden pt-5 text-left md:list-layout:pt-0 md:list-layout:lg:pt-0 md:list-layout:text-left"> 8373 8374 <div class="below-image ltr flex flex-wrap justify-left md:list-layout:justify-start rtl:md:list-layout:justify-end mb-2.5 gap-1 empty:hidden"></div><h3 class="card__heading h5 no-collage:mb-2 mb-2.5 leading-tight" id="title-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1797342068805">
8375 <a href="/collections/best-sellers/products/gogo-mini-round-brush" 8376 class="x-card-title full-unstyled-link link-product-variant text-[rgba(var(--colors-heading))] hover:text-[rgba(var(--colors-text-link))] cursor-pointer duration-200 p-break-words" 8377 @click='$store.xCustomerEvent.fire("product_selected", $el)' 8378 x-customer-event-data="{ 8379 "product": { 8380 "title": "GoGo Mini Round Brush", 8381 "listName": "Best Sellers", 8382 "sku": "1797342068805", 8383 "currencyCode": "USD", 8384 "price": 4000, 8385 "vendor": "Calista Tools" 8386 } 8387 }" 8388 > 8389 GoGo Mini Round Brush 8390 </a> 8391 </h3> 8392 8393 8394 8395 8396 8397 8398 8399 8400<div 8401 class="x-review-product yotpo 8402 8403 flex w-full items-center rating-review justify-start ltr mb-2.5 md:list-layout:justify-start 8404 " 8405> 8406 8407<div class="yotpo bottomLine" data-product-id="1797342068805"> </div> 8408</div> 8409 8410 8411<div class="cal-card-variant text-left"><p class="cal-card-variant-name">Berry Burst</p><p class="cal-card-variant-count">2 Colors</p> 8412 </div> 8413<div class="x-card-price flex items-center mb-2.5 flex-wrap gap-1 justify-left rtl:flex-row-reverse md:rtl:list-layout:flex-row md:list-layout:justify-start"> 8414 8415 8416 <div class=" price leading-none "> 8417 <div class="target-price hidden">4000</div> 8418 <div class="target-compare-at-price hidden"></div> 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429<p class="price"> 8430 $40 8431 </p> 8432 8433 8434</div> 8435 8436 8437 <div class="leading-none next-price flex flex-wrap gap-x-1 gap-y-2 empty:hidden"></div> 8438 </div> 8439 8440 <template x-if="localStorage.getItem('selectedStore')"> 8441 <div id="x-availability-notice-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656" class="flex mb-2.5 items-center flex-wrap gap-1 justify-left rtl:flex-row-reverse md:rtl:list-layout:flex-row md:list-layout:justify-start justify-left" x-show="$store.xStoreSelector?.canShow('1797342068805', [166997852220, 270133723196, 137844031557, 155590623292, 137730490437, 157864558652, 137698115653, 261925437500, 500855898422, 526186479926, 137909567557, 520121483574, 506576863542, 154168066108])"> 8442 8443<div 8444 class="text-availability-notice" 8445 x-data='{ 8446 locations: [], 8447 pickupLocations: [], 8448 pickupAvailabilites: [] 8449 }' 8450 x-show="$store.xStoreSelector?.selectedStore && locations.includes($store.xStoreSelector?.getStore())" 8451> 8452 <style data-shopify> 8453 .text-availability-notice { 8454 font-size: 0.669375rem; 8455 } 8456 @media (min-width: 768px) { 8457 .text-availability-notice { 8458 font-size: 0.74375rem; 8459 } 8460 } 8461 </style> 8462 <div x-cloak x-show="$store.xStoreSelector?.checkAvailability(pickupLocations, pickupAvailabilites)" class="inventory-in-stock-status flex flex-row items-center gap-[3px]"> 8463 <span class="flex h-4 w-4 relative"> 8464 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 8465 <rect width="16" height="16" rx="8" fill="currentColor" fill-opacity="0.2"/> 8466 <rect x="4" y="4" width="8" height="8" rx="4" fill="currentColor"/> 8467 </svg> 8468 8469</span><span x-text="'Available for pickup at ' + $store.xStoreSelector?.getStoreText()"> </span> 8470 </div> 8471 <div x-cloak x-show="! $store.xStoreSelector?.checkAvailability(pickupLocations, pickupAvailabilites)" class="inventory-out-of-stock-status flex flex-row items-center gap-[3px]"> 8472 <span class="flex h-4 w-4 relative"> 8473 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 8474 <rect width="16" height="16" rx="8" fill="currentColor" fill-opacity="0.2"/> 8475 <rect x="4" y="4" width="8" height="8" rx="4" fill="currentColor"/> 8476 </svg> 8477 8478</span><span x-text="'Out of stock at ' + $store.xStoreSelector?.getStoreText()"> </span> 8479 </div> 8480</div></div> 8481 </template> 8482 <div class="bottom-card ltr flex flex-wrap justify-left md:list-layout:justify-start rtl:md:list-layout:justify-end mb-2.5 gap-1 empty:hidden"></div> 8483 </div> 8484 </div><div 8485 id="choose-options-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb76
848556-1797342068805-collection_DqgeTW" 8486 class="hidden md:block absolute w-full min-h-full h-full left-0 top-0 bg-[rgba(var(--background-color))] z-[15] md:list-layout:w-3/5 list-layout:lg:w-3/4 md:list-layout:left-auto md:list-layout:right-0" 8487 x-show="showOptions" 8488 x-transition:enter="transition-all ease-in-out duration-300" 8489 x-transition:enter-start="opacity-0 transform translate-y-full" 8490 x-transition:enter-end="opacity-100 transform translate-y-0" 8491 x-transition:leave="transition-all ease-in-out duration-300" 8492 x-transition:leave-start="opacity-100 transform translate-y-0" 8493 x-transition:leave-end="opacity-0 transform translate-y-full" 8494 x-cloak 8495 > 8496 <div class="choose-options relative w-full min-h-full h-full"></div> 8497 <div class="icon-loading hidden absolute top-0 left-0 right-0 h-full w-full z-20 bg-[rgba(var(--background-color))]"> 8498 <div 8499 class="lg:inline-block w-4 h-4 md:w-5 md:h-5 absolute top-[calc(50%-8px)] left-[calc(50%-8px)] md:top-[calc(50%-10px)] md:left-[calc(50%-10px)]"> 8500 <svg class="animate-spin rounded-full" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"> 8501 <path transform="translate(0 512) scale(0.1 -0.1)" fill="currentColor" d="M2474 4676 c-43 -19 -101 -81 -115 -123 -18 -56 -7 -145 24 -190 52 -75 79 -85 262 -99 90 -7 207 -22 260 -33 436 -92 824 -352 1070 -721 521 -781 321 -1824 -453 -2358 -501 -345 -1172 -393 -1715 -121 -700 350 -1075 1118 -917 1876 37 180 86 305 209 536 51 96 54 147 15 226 -37 73 -86 104 -174 109 -105 6 -151 -24 -224 -145 -137 -230 -241 -543 -276 -833 -13 -110 -13 -355 1 -478 52 -475 268 -922 614 -1267 351 -352 787 -560 1284 -615 171 -19 442 -8 615 24 423 80 802 282 1111 591 407 407 625 931 625 1505 0 574 -218 1098 -625 1505 -296 296 -654 493 -1055 579 -210 45 -470 61 -536 32z"/> 8502 </svg> 8503 8504 </div> 8505 </div> 8506 </div> 8507 <div 8508 id="x-product-template-1797342068805-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1-1" 8509 class="list-layout:lg:w-3/4 md:list-layout:w-3/5 list-layout:md:pl-0 rtl:list-layout:md:pl-5 rtl:list-layout:md:pr-0 text-left" 8510 > 8511 8512 8513 <div class="hidden" @init-run="document.addEventListener('eurus:cart:items-changed', () => { 8514 Alpine.store('xUpdateVariantQuanity').updateQuantity('template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656', '/products/gogo-m
8514ini-round-brush'); 8515 });"></div> 8516 <div 8517 id="current-variant-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1797342068805-collection_DqgeTW" 8518 class="current-variant hidden" 8519 > 8520 8521 53297881514294 8522 8523 </div> 8524 8525 <div class="card-info x-highlight-icon mt-2.5"> 8526 <div 8527 class="flex flex-wrap gap-[3px] rtl:flex-row-reverse ltr pr-0 pl-0 justify-left items-center list-layout:mt-4 list-layout:justify-start rtl:list-layout:justify-end empty:hidden" 8528 x-data="{setPosition(el) { 8529 parentEl = el.closest('.x-highlight-icon').getBoundingClientRect(); 8530 el.style.setProperty('--maxwidth-tooltip', parentEl.width - 20 + 'px'); 8531 elRect = el.getBoundingClientRect(); 8532 let spacingLeft = elRect.left - parentEl.left; 8533 if (spacingLeft < 0) { 8534 el.style.setProperty('--left-tooltip', Math.abs(spacingLeft) + 'px'); 8535 } 8536 let spacingRight = parentEl.right - elRect.right; 8537 if (spacingRight < 0) { 8538 el.style.setProperty('--left-tooltip', spacingRight + 'px'); 8539 } 8540 }}" 8541 @init-run.window="$el.innerHTML = $el.innerHTML.trim();" 8542> 8543 � 8544 � 8545 � 8546 �</div> 8547 </div> 8548 8549 8550 <template x-if="$store.xQuickView"><div x-data="xProductCart" x-show="$store.xQuickView.show_atc_button && ($store.xQuickView.btn_atc_bottom || !$store.xQuickView.atc_btn_image_desktop)" 8551 class="card-info bottom_atc md:list-layout:hidden hide-icon" 8552 :class="if($store.xQuickView.show_atc_button){ return ($store.xQuickView.btn_atc_bottom ? '' : 'hidden') + ($store.xQuickView.atc_btn_image_desktop ? ' lg:hidden' : ' lg:block')}" 8553 x-cloak 8554 > 8555 8556 <button 8557 type="submit" 8558 name="add" 8559 @click.prevent="setTimeout(() => { $store.xQuickView && (showOptions = !showOptions); $store.xQuickView.showChooseOption('template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1797342068805-collection_DqgeTW', $el); }, 0)" 8560 x-on:mouseover="setTimeout(() => { $store.xQuickView && $store.xQuickView.loadChooseOptions('/collections/best-sellers/products/gogo-m
8560ini-round-brush', $el, 'template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1797342068805-collection_DqgeTW', 201); }, 0)" 8561 data-id="template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1797342068805-collection_DqgeTW" 8562 class="button button--quickview button-solid not-icon leading-normal mt-2 w-full pr-5 pl-5 pt-2.5 pb-2.5 lg:pt-3 lg:pb-3 h-full text-[12px] lg:text-[14px] lg:-translate-x-0 disabled:cursor-not-allowed disable-action-btn-animation disabled:opacity-60" 8563 :class="errorMessage && 'opacity-60 cursor-not-allowed'" 8564 aria-label="Choose options" 8565 8566 > 8567 <span :class="{ 'lg:block opacity-0 is-focus-button' : loading, 'hidden' : errorMessage}"> 8568 8569 <span class="flex items-center justify-center"> 8570 8571<div class="flex justify-center "> 8572 8573 8574 8575 <span class="button-text is-focus-button:opacity-0">Choose options</span> 8576 8577 8578 8579 8580</div> 8581 </span> 8582 </span> 8583 <div class="lg:inline-block w-4 h-4 md:w-5 md:h-5 absolute top-[calc(50%-8px)] left-[calc(50%-8px)] md:top-[calc(50%-10px)] md:left-[calc(50%-10px)]" x-show="loading" x-cloak> 8584 8585 <svg class="animate-spin rounded-full" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"> 8586 <path transform="translate(0 512) scale(0.1 -0.1)" fill="currentColor" d="M2474 4676 c-43 -19 -101 -81 -115 -123 -18 -56 -7 -145 24 -190 52 -75 79 -85 262 -99 90 -7 207 -22 260 -33 436 -92 824 -352 1070 -721 521 -781 321 -1824 -453 -2358 -501 -345 -1172 -393 -1715 -121 -700 350 -1075 1118 -917 1876 37 180 86 305 209 536 51 96 54 147 15 226 -37 73 -86 104 -174 109 -105 6 -151 -24 -224 -145 -137 -230 -241 -543 -276 -833 -13 -110 -13 -355 1 -478 52 -475 268 -922 614 -1267 351 -352 787 -560 1284 -615 171 -19 442 -8 615 24 423 80 802 282 1111 591 407 407 625 931 625 1505 0 574 -218 1098 -625 1505 -296 296 -654 493 -1055 579 -210 45 -470 61 -536 32z"/> 8587 </svg> 8588 8589 8590 </div> 8591 </button> 8592 8593 </div></template> 8594 8595 </div> 8596</div> 8597<style data-shopify> 8598 .x-slide-animation-duration-2 { 8599 --delay-time: 100ms 8600 } 8601 </style> 8602 8603 8604 8605 8606<div 8607 8608 x-data="xProductCard('template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1-2', '/collections/best-sellers/products/embellish-finishing-spray-7oz', '10821877694774')" 8609 8610 class="card-product overflow-hidden card md:list-layout:flex relative pb-4 md:pb-5 splide__slide x-splide-slide h-auto preload-slide-collection_DqgeTWtemplate--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656 preload-slide-mobile--collection_DqgeTWtemplate--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656" 8611 x-slide-index="1" 8612> 8613 <div class="md:list-layout:w-2/5 md:list-layout:lg:w-1/4 relative disable-effect md:list-layout:pr-8" 8614 > 8615 8616 <a 8617 8618 x-intersect.once.margin.-20px.0px.-20px.0px="$el.querySelector('.animate_transition_card__image')?.classList.add('active', 'lazy_active')" 8619 8620 href="/collections/best-sellers/products/embellish-finishing-spray-7oz" 8621 8622 x-data="{ lastWindowWidth: 0 }" 8623 x-intersect.once.margin.200px='$nextTick(() => { $store.xBadges && $store.xBadges.load($el, () => {}, null, true); })' 8624 x-labels-data="[ 8625 8626{ 8627 "variant_id": 54455626301750, 8628 "product_id": 10821877694774, 8629 "available": true, 8630 "title": "EMBELLISH Finishing Spray", 8631 "compare_at_price": 0, 8632 "price": 2900, 8633 "price_with_currency": "$29", 8634 "sale_amount": "$-29", 8635 "collections": "||166997852220||155590623292||543398560054||91181809733||137843900485||137844097093||150929145925||137909567557||137563603013||163905962044||161653653564||137844293701||", 8636 "inventory_management": "shopify", 8637 "qty": 3169, 8638 "container": "card", 8639 "can_show_preorder": false, 8640 "diff_day_create": 1787586917, 8641 "diff_day_publish": 1787622319 8642 8643 ,"metafield_label": { 8644 "custom.promo_copy":"" 8645 } 8646 8647 } 8648 ]" 8649 8650 aria-label="EMBELLISH Finishing Spray" 8651 id="10821877694774-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb76
865156" 8652 class="x-labels-data ltr group link-product-variant overflow-hidden block relative z-[15] cursor-pointer before:h-0 before:block no-collage pb-[100%]"> 8653 <div 8654 id="x-slideshow-card-product-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1-2-1" 8655 class="block w-full h-full absolute top-0 left-0 z-0 overflow-hidden x-splide splide visible animate_transition_card__image" 8656 @click='$store.xCustomerEvent.fire("product_selected", $el)' 8657 x-customer-event-data="{ 8658 "product": { 8659 "title": "EMBELLISH Finishing Spray", 8660 "listName": "Best Sellers", 8661 "sku": "10821877694774", 8662 "currencyCode": "USD", 8663 "price": 2900, 8664 "vendor": "Calista Tools" 8665 } 8666 }" 8667 x-cloak 8668 8669 x-intersect.once.margin.200px='$store.xSplide.load($el, { 8670 "drag": true, 8671 "pagination": true, 8672 "arrows": false, 8673 "pauseOnFocus": false, 8674 "pauseOnHover": false, 8675 "perMove": 1, 8676 "perPage": 1, 8677 "focus": "center", 8678 "mediaQuery": "min", 8679 "rewind": true, 8680 8681 "destroy": true, 8682 8683 "breakpoints": { 8684 1024: { 8685 8686 "destroy": true 8687 8688 } 8689 }, 8690 8691 "playOnHover": true, 8692 8693 8694 "classes": { 8695 "pagination": "gap-1 flex-nowrap absolute bottom-2 left-2.5 rtl:right-2.5 rtl:left-auto flex", 8696 "page": "paginate-dots-card-product duration-200 rounded-full w-2 flex items-center h-2" 8697 }, 8698 "type": "slide", 8699 })'> 8700 <div 8701 id="image-product-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1-2-1" 8702 class="splide__track overflow-hidden max-h-full h-full w-full" 8703 > 8704 <div class="w-full h-full splide__list"> 8705 <div class="w-full z-0 h-full min-h-full overflow-hidden splide__slide x-splide-slide max-h-full lg:top-0 lg:left-0 lg:absolute" 8706 > 8707 8708 <picture> 8709 <img 8710 srcset=" 8711 //calistatools.com/cdn/shop/files/EMBELLISHFinishingSpray_08-2026.jpg?v=1787717669&width=250 250w, 8712 //calistatools.com/cdn/shop/files/EMBELLISHFinishingSpray_08-2026.jpg?v=1787717669&width=350 350w, 8713 //calistatools.com/cdn/shop/files/EMBELLISHFinishingSpray_08-2026.jpg?v=1787717669&width=450 450w, 8714 //calistatools.com/cdn/shop/files/EMBELLISHFinishingSpray_08-2026.jpg?v=1787717669&width=750 750w, 8715 //calistatools.com/cdn/shop/files/EMBELLISHFinishingSpray_08-2026.jpg?v=1787717669&width=900 900w, 8716 //calistatools.com/cdn/shop/files/EMBELLISHFinishingSpray_08-2026.jpg?v=1787717669&width=1100 1100w, 8717 //calistatools.com/cdn/shop/files/EMBELLISHFinishingSpray_08-2026.jpg?v=1787717669&width=1500 1500w,//calistatools.com/cdn/shop/files/EMBELLISHFinishingSpray_08-2026.jpg?v=1787717669 2083w" 8718 src="//calistatools.com/cdn/shop/files/EMBELLISHFinishingSpray_08-2026.jpg?v=1787717669&width=1500" 8719 sizes="(min-width: 1400px) calc(100vw / 4), (min-width: 1024px) calc((100vw) / 4), (min-width: 768px) calc((100vw) / 2), calc((100vw /2) - 2px)" 8720 alt="embellish finishing spray 7oz jar" 8721 class="w-full preview-img motion-reduce aspect-square relative animate-Xpulse skeleton-image object-cover h-full min-h-full image-first-slide-anm lg:group-hover:opacity-0 transition-opacity duration-500 animate_transition_image" 8722 8723 loading="lazy" 8724 8725 width="2083" 8726 height="2083" 8727 onload="requestAnimationFrame(() => { 8728 this?.classList.add('active');this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); 8729 setTimeout(() => { this.closest('.animate_transition_card__image')?.classList.add('lazy_active', 'active'); }, 250); 8730 })" 8731 /> 8732 </picture> 8733 8734 </div><style data-shopify> 8735 #image-product-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb76
873556-1-2-1 .media-slide:not(:first-child) { 8736 height: 100%; 8737 } 8738 </style> 8739 <div class="media-slide splide__slide x-splide-slide z-0 transition ease-out duration-300 w-full h-full lg:block"> 8740 8741 <picture> 8742 <img 8743 srcset="//calistatools.com/cdn/shop/files/EMBELLISHFinishingSpray_8.11.2026-03.jpg?v=1787590254&width=250 250w, 8744 //calistatools.com/cdn/shop/files/EMBELLISHFinishingSpray_8.11.2026-03.jpg?v=1787590254&width=350 350w, 8745 //calistatools.com/cdn/shop/files/EMBELLISHFinishingSpray_8.11.2026-03.jpg?v=1787590254&width=450 450w, 8746 //calistatools.com/cdn/shop/files/EMBELLISHFinishingSpray_8.11.2026-03.jpg?v=1787590254&width=750 750w, 8747 //calistatools.com/cdn/shop/files/EMBELLISHFinishingSpray_8.11.2026-03.jpg?v=1787590254&width=900 900w, 8748 //calistatools.com/cdn/shop/files/EMBELLISHFinishingSpray_8.11.2026-03.jpg?v=1787590254&width=1100 1100w, 8749 //calistatools.com/cdn/shop/files/EMBELLISHFinishingSpray_8.11.2026-03.jpg?v=1787590254&width=1500 1500w,//calistatools.com/cdn/shop/files/EMBELLISHFinishingSpray_8.11.2026-03.jpg?v=1787590254 2083w" 8750 src="//calistatools.com/cdn/shop/files/EMBELLISHFinishingSpray_8.11.2026-03.jpg?v=1787590254&width=1500" 8751 sizes="(min-width: 1400px) calc(100vw / 4), (min-width: 1024px) calc((100vw) / 4), (min-width: 768px) calc((100vw) / 2), calc((100vw /2) - 2px)" 8752 alt="close-up of embellish finishing spray jar nozzle" 8753 class="motion-reduce min-w-full h-full object-cover group-hover:cursor-pointer content-visibility-auto image-first-hover-slide-anm absolute top-0 lg:-right-[101%]" 8754 loading="lazy" 8755 width="2083" 8756 height="2083" 8757 onload="requestAnimationFrame(() => { 8758 this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); 8759 setTimeout(() => { this.closest('.animate_transition_card__image')?.classList.add('lazy_active', 'active'); }, 250); 8760 })" 8761 /> 8762 </picture> 8763 8764 </div></div> 8765 </div></div> 8766 <div class="md:list-layout:hidden" x-show="$store.xQuickView" :class="$store.xQuickView && $store.xQuickView.btn_atc_bottom ? 'mobile-bottom':''"><div class="quick-view-container absolute z-20 bottom-2 right-2 rtl:right-auto rtl:left-2 rtl:lg:left-auto lg:top-auto lg:right-auto lg:bottom-4 lg:w-full lg:group-hover:opacity-100 lg:group-hover:translate-y-0 focus:opacity-100 focus:translate-y-0 lg:translate-y-full transition-all duration-[var(--transition-card-image-hover)] ease-in-out lg:opacity-0" 8767 x-show="$store.xQuickView" x-cloak 8768 > 8769 <div x-data="xProductCart" x-show="$store.xQuickView && $store.xQuickView.show_atc_button" 8770 class="w-full hide-icon lg:pl-4 lg:pr-4" 8771 :class="if($store.xQuickView){ return ($store.xQuickView.btn_atc_bottom ? 'hidden' : '') + ($store.xQuickView.atc_btn_image_desktop ? ' lg:block' : ' lg:hidden') }" 8772 x-cloak 8773 > 8774 8775<form method="post" action="/cart/add" id="product-form-choose-option10821877694774202" accept-charset="UTF-8" class="form h-full" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form" x-ref="product_form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /><input type="hidden" aria-hidden="true" name="id" value="54455626301750"> 8776 8777 8778 <button 8779 type="submit" 8780 name="add"@click.prevent="errorMessage == false && addToCart($event)"data-id="template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb76
878056-10821877694774-collection_DqgeTW" 8781 class="button button--quickview button-solid not-icon leading-normal w-full pr-5 pl-5 pt-2.5 pb-2.5 lg:pt-3 lg:pb-3 h-full z-50 text-[12px] lg:text-[14px] lg:-translate-x-0 disabled:cursor-not-allowed disable-action-btn-animation disabled:opacity-60 hidden lg:block" 8782 8783 8784 :class="errorMessage && 'opacity-60 cursor-not-allowed'"aria-label="Add to cart" 8785 > 8786 <span :class="{ 'lg:block opacity-0 is-focus-button' : loading, 'hidden' : errorMessage}"> 8787 8788 8789 <span class="flex items-center justify-center"> 8790 8791<div class="flex justify-center "> 8792 8793 8794 8795 <span class="button-text is-focus-button:opacity-0">Add to cart</span> 8796 8797 8798 8799 8800</div> 8801 </span> 8802 </span> 8803 <div 8804 class="flex gap-x-2 items-center justify-center" 8805 role="alert" 8806 x-cloak 8807 x-show="errorMessage" 8808 > 8809 Sold out 8810 </div> 8811 <div class="lg:inline-block w-4 h-4 md:w-5 md:h-5 absolute top-[calc(50%-8px)] left-[calc(50%-8px)] md:top-[calc(50%-10px)] md:left-[calc(50%-10px)]" x-show="loading" x-cloak> 8812 8813 <svg class="animate-spin rounded-full" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"> 8814 <path transform="translate(0 512) scale(0.1 -0.1)" fill="currentColor" d="M2474 4676 c-43 -19 -101 -81 -115 -123 -18 -56 -7 -145 24 -190 52 -75 79 -85 262 -99 90 -7 207 -22 260 -33 436 -92 824 -352 1070 -721 521 -781 321 -1824 -453 -2358 -501 -345 -1172 -393 -1715 -121 -700 350 -1075 1118 -917 1876 37 180 86 305 209 536 51 96 54 147 15 226 -37 73 -86 104 -174 109 -105 6 -151 -24 -224 -145 -137 -230 -241 -543 -276 -833 -13 -110 -13 -355 1 -478 52 -475 268 -922 614 -1267 351 -352 787 -560 1284 -615 171 -19 442 -8 615 24 423 80 802 282 1111 591 407 407 625 931 625 1505 0 574 -218 1098 -625 1505 -296 296 -654 493 -1055 579 -210 45 -470 61 -536 32z"/> 8815 </svg> 8816 8817 8818 </div> 8819 </button> 8820 <button 8821 type="submit" 8822 name="add"@click.prevent="errorMessage == false && addToCart($event)"class="button label-btn-quickview button-disable-effect not-icon button--quickview rounded-full lg:leading-snug none_border lg:hidden h-full pt-1.5 pb-1.5 pl-1.5 pr-1.5 disabled:cursor-not-allowed disable-action-btn-animation disabled:opacity-60" 8823 8824 8825 data-id="template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10821877694774-collection_DqgeTW" 8826 :class="errorMessage && 'opacity-60 cursor-not-allowed'"aria-label="Add to cart"x-customer-event-data="{ 8827 "product": { 8828 "title": "EMBELLISH Finishing Spray", 8829 "listName": "Best Sellers", 8830 "sku": "10821877694774", 8831 "currencyCode": "USD", 8832 "price": 2900, 8833 "vendor": "Calista Tools" 8834 } 8835 }" 8836 8837 > 8838 <span class="w-5 h-5 flex items-center justify-center md:w-6 md:h-6" x-show="!loading"><svg class="" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"> 8839 <path fill="none" d="M4.537 3.25H18.0745L15.937 10.375H6.6745L4.537 3.25L4.00262 1.46875 M9.28698 12.8687C9.28698 13.459 8.80846 13.9375 8.21823 13.9375C7.62797 13.9375 7.14948 13.459 7.14948 12.8687 M14.9872 12.75C14.9872 13.3402 14.5087 13.8188 13.9185 13.8188C13.3282 13.8188 12.8497 13.3402 12.8497 12.75 M1.44977 1.35001H3.34977"/> 8840 </svg></span>
8841 <span class="block w-5 h-5" x-show="loading" x-cloak> 8842 8843 <svg class="animate-spin rounded-full" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"> 8844 <path transform="translate(0 512) scale(0.1 -0.1)" fill="currentColor" d="M2474 4676 c-43 -19 -101 -81 -115 -123 -18 -56 -7 -145 24 -190 52 -75 79 -85 262 -99 90 -7 207 -22 260 -33 436 -92 824 -352 1070 -721 521 -781 321 -1824 -453 -2358 -501 -345 -1172 -393 -1715 -121 -700 350 -1075 1118 -917 1876 37 180 86 305 209 536 51 96 54 147 15 226 -37 73 -86 104 -174 109 -105 6 -151 -24 -224 -145 -137 -230 -241 -543 -276 -833 -13 -110 -13 -355 1 -478 52 -475 268 -922 614 -1267 351 -352 787 -560 1284 -615 171 -19 442 -8 615 24 423 80 802 282 1111 591 407 407 625 931 625 1505 0 574 -218 1098 -625 1505 -296 296 -654 493 -1055 579 -210 45 -470 61 -536 32z"/> 8845 </svg> 8846 8847 8848 </span> 8849 </button><input type="hidden" name="product-id" value="10821877694774" /><input type="hidden" name="section-id" value="template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656" /></form> 8850 </div> 8851 </div><div 8852 class="button-quickview-icon absolute z-[15] lg:group-hover:opacity-100 lg:group-hover:translate-y-0 focus:opacity-100 focus:translate-y-0 transition-all duration-[var(--transition-card-image-hover)] ease-in-out lg:opacity-0" 8853 :class="$store.xQuickView && $store.xQuickView.show_atc_button ? 'btn-quickadd bottom-11 md:bottom-12 right-2 lg:top-4 lg:bottom-auto lg:-translate-y-full rtl:right-auto rtl:left-2' : 'bottom-2 right-0 lg:top-auto lg:translate-y-full lg:right-auto lg:bottom-4 lg:w-full lg:left-0 pl-2 pr-2 lg:pr-4 lg:pl-4'" 8854 x-show="$store.xQuickView && $store.xQuickView.enabled" x-cloak 8855 > 8856 <div> 8857 <button 8858 @click.prevent='$store.xQuickView && $store.xQuickView.open(); $store.xCustomerEvent.fire("product_selected", $el);' 8859 x-on:mouseover="$store.xQuickView && $store.xQuickView.load('/collections/best-sellers/products/embellish-finishing-spray-7oz', $el, 'template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10821877694774-collection_DqgeTW')" 8860 x-on:focus="$store.xQuickView && $store.xQuickView.load('/collections/best-sellers/products/embellish-finishing-spray-7oz', $el, 'template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10821877694774-collection_DqgeTW')" 8861 class="button label-btn-quickview button--quickview not-icon leading-normal empty:hidden hidden lg:block z-50 h-full" 8862 :class="$store.xQuickView && $store.xQuickView.show_atc_button ? 'pt-1.5 pb-1.5 pl-1.5 pr-1.5 md:pt-2.5 md:pb-2.5 md:pl-2.5 md:pr-2.5 rounded-full button-disable-effect' : 'w-full pt-3 pb-3 button-solid'" 8863 x-customer-event-data="{ 8864 "product": { 8865 "title": "EMBELLISH Finishing Spray", 8866 "listName": "Best Sellers", 8867 "sku": "10821877694774", 8868 "currencyCode": "USD", 8869 "price": 2900, 8870 "vendor": "Calista Tools" 8871 } 8872 }" 8873 aria-label="Button quickview" 8874 > 8875 <span x-show="$store.xQuickView && $store.xQuickView.show_atc_button" class="w-4 h-4 flex items-center"><svg width="100%" height="100%" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg" style="fill: none;"> 8876 <path d="M28 8 a20 20 0 1 1 0 40 a20 20 0 1 1 0 -40 M42 42 L58 58 M28 20 V36 M20 28 H36" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" fill="none"/> 8877 </svg> 8878</span> 8879 <span x-show="$store.xQuickView && !$store.xQuickView.show_atc_button" class="flex items-center justify-center"> 8880 8881<div class="flex justify-center "> 8882 8883 <span class="button-text " x-text="$store.xQuickView && $store.xQuickView.buttonLabel"></span> 8884 8885 8886</div> 8887 </span> 8888 </button> 8889 <button @click.prevent='$store.xQuickView && $store.xQuickView.load("/collections/best-sellers/products/embellish-finishing-spray-7oz", $el, "template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb76
888956-10821877694774-collection_DqgeTW"); $store.xQuickView && $store.xQuickView.open(); $store.xCustomerEvent.fire("product_selected", $el);' 8890 class="button label-btn-quickview button-disable-effect not-icon button--quickview rounded-full lg:leading-snug none_border lg:hidden h-full pt-2 pb-2 pl-2 pr-2" 8891 aria-label="Button quickview" 8892 x-customer-event-data="{ 8893 "product": { 8894 "title": "EMBELLISH Finishing Spray", 8895 "listName": "Best Sellers", 8896 "sku": "10821877694774", 8897 "currencyCode": "USD", 8898 "price": 2900, 8899 "vendor": "Calista Tools" 8900 } 8901 }" 8902 > 8903 <span class="w-4 h-4 md:w-5 md:h-5 flex items-center"><svg width="100%" height="100%" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg" style="fill: none;"> 8904 <path d="M28 8 a20 20 0 1 1 0 40 a20 20 0 1 1 0 -40 M42 42 L58 58 M28 20 V36 M20 28 H36" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" fill="none"/> 8905 </svg> 8906</span> 8907 </button> 8908 </div> 8909 </div> 8910 </div> 8911 8912 </a> 8913 <div class="card-info no-collage:mb-2 md:list-layout:hidden pt-5 text-left md:list-layout:pt-0 md:list-layout:lg:pt-0 md:list-layout:text-left"> 8914 8915 <div class="below-image ltr flex flex-wrap justify-left md:list-layout:justify-start rtl:md:list-layout:justify-end mb-2.5 gap-1 empty:hidden"></div><h3 class="card__heading h5 no-collage:mb-2 mb-2.5 leading-tight" id="title-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10821877694774"> 8916 <a href="/collections/best-sellers/products/embellish-finishing-spray-7oz" 8917 class="x-card-title full-unstyled-link link-product-variant text-[rgba(var(--colors-heading))] hover:text-[rgba(var(--colors-text-link))] cursor-pointer duration-200 p-break-words" 8918 @click='$store.xCustomerEvent.fire("product_selected", $el)' 8919 x-customer-event-data="{ 8920 "product": { 8921 "title": "EMBELLISH Finishing Spray", 8922 "listName": "Best Sellers", 8923 "sku": "10821877694774", 8924 "currencyCode": "USD", 8925 "price": 2900, 8926 "vendor": "Calista Tools" 8927 } 8928 }" 8929 > 8930 EMBELLISH Finishing Spray 8931 </a> 8932 </h3> 8933 8934 8935 8936 8937 8938 8939 8940 8941<div 8942 class="x-review-product yotpo 8943 8944 flex w-full items-center rating-review justify-start ltr mb-2.5 md:list-layout:justify-start 8945 " 8946> 8947 8948<div class="yotpo bottomLine" data-product-id="10821877694774"> </div> 8949</div> 8950 8951 8952<div class="cal-card-variant text-left"><p class="cal-card-variant-count">2 Sizes</p> 8953 </div> 8954<div class="x-card-price flex items-center mb-2.5 flex-wrap gap-1 justify-left rtl:flex-row-reverse md:rtl:list-layout:flex-row md:list-layout:justify-start"> 8955 8956 8957 <div class=" price leading-none "> 8958 <div class="target-price hidden">2900</div> 8959 <div class="target-compare-at-price hidden"></div> 8960 8961 8962 8963 8964<p class="price"> 8965 $29 8966 </p> 8967 8968 8969</div> 8970 8971 8972 <div class="leading-none next-price flex flex-wrap gap-x-1 gap-y-2 empty:hidden"></div> 8973 </div> 8974 8975 <template x-if="localStorage.getItem('selectedStore')"> 8976 <div id="x-availability-notice-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656" class="flex mb-2.5 items-center flex-wrap gap-1 justify-left rtl:flex-row-reverse md:rtl:list-layout:flex-row md:list-layout:justify-start justify-left" x-show="$store.xStoreSelector?.canShow('10821877694774', [166997852220, 155590623292, 543398560054, 91181809733, 137843900485, 137844097093, 150929145925, 137909567557, 137563603013, 163905962044, 161653653564, 137844293701])"> 8977 8978<div 8979 class="text-availability-notice" 8980 x-data='{ 8981 locations: [], 8982 pickupLocations: [], 8983 pickupAvailabilites: [] 8984 }' 8985 x-show="$store.xStoreSelector?.selectedStore && locations.includes($store.xStoreSelector?.getStore())" 8986> 8987 <style data-shopify> 8988 .text-availability-notice { 8989 font-size: 0.669375rem; 8990 } 8991 @media (min-width: 768px) { 8992 .text-availability-notice { 8993 font-size: 0.74375rem; 8994 } 8995 } 8996 </style> 8997 <div x-cloak x-show="$store.xStoreSelector?.checkAvailability(pickupLocations, pickupAvailabilites)" class="inventory-in-stock-status flex flex-row items-center gap-[3px]"> 8998 <span class="flex h-4 w-4 relative">
8999 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 9000 <rect width="16" height="16" rx="8" fill="currentColor" fill-opacity="0.2"/> 9001 <rect x="4" y="4" width="8" height="8" rx="4" fill="currentColor"/> 9002 </svg> 9003 9004</span><span x-text="'Available for pickup at ' + $store.xStoreSelector?.getStoreText()"> </span> 9005 </div> 9006 <div x-cloak x-show="! $store.xStoreSelector?.checkAvailability(pickupLocations, pickupAvailabilites)" class="inventory-out-of-stock-status flex flex-row items-center gap-[3px]"> 9007 <span class="flex h-4 w-4 relative"> 9008 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 9009 <rect width="16" height="16" rx="8" fill="currentColor" fill-opacity="0.2"/> 9010 <rect x="4" y="4" width="8" height="8" rx="4" fill="currentColor"/> 9011 </svg> 9012 9013</span><span x-text="'Out of stock at ' + $store.xStoreSelector?.getStoreText()"> </span> 9014 </div> 9015</div></div> 9016 </template> 9017 <div class="bottom-card ltr flex flex-wrap justify-left md:list-layout:justify-start rtl:md:list-layout:justify-end mb-2.5 gap-1 empty:hidden"></div> 9018 </div> 9019 </div> 9020 <div 9021 id="x-product-template-10821877694774-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1-2" 9022 class="list-layout:lg:w-3/4 md:list-layout:w-3/5 list-layout:md:pl-0 rtl:list-layout:md:pl-5 rtl:list-layout:md:pr-0 text-left" 9023 > 9024 9025 9026 <div class="hidden" @init-run="document.addEventListener('eurus:cart:items-changed', () => { 9027 Alpine.store('xUpdateVariantQuanity').updateQuantity('template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656', '/products/embellish-finishing-spray-7oz'); 9028 });"></div> 9029 <div 9030 id="current-variant-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10821877694774-collection_DqgeTW" 9031 class="current-variant hidden" 9032 > 9033 9034 54455626301750 9035 9036 </div> 9037 9038 <div class="card-info x-highlight-icon mt-2.5"> 9039 <div 9040 class="flex flex-wrap gap-[3px] rtl:flex-row-reverse ltr pr-0 pl-0 justify-left items-center list-layout:mt-4 list-layout:justify-start rtl:list-layout:justify-end empty:hidden" 9041 x-data="{setPosition(el) { 9042 parentEl = el.closest('.x-highlight-icon').getBoundingClientRect(); 9043 el.style.setProperty('--maxwidth-tooltip', parentEl.width - 20 + 'px'); 9044 elRect = el.getBoundingClientRect(); 9045 let spacingLeft = elRect.left - parentEl.left; 9046 if (spacingLeft < 0) { 9047 el.style.setProperty('--left-tooltip', Math.abs(spacingLeft) + 'px'); 9048 } 9049 let spacingRight = parentEl.right - elRect.right; 9050 if (spacingRight < 0) { 9051 el.style.setProperty('--left-tooltip', spacingRight + 'px'); 9052 } 9053 }}" 9054 @init-run.window="$el.innerHTML = $el.innerHTML.trim();" 9055> 9056 � 9057 � 9058 � 9059 �</div> 9060 </div> 9061 9062 9063 <template x-if="$store.xQuickView"><div x-data="xProductCart" x-show="$store.xQuickView.show_atc_button && ($store.xQuickView.btn_atc_bottom || !$store.xQuickView.atc_btn_image_desktop)" 9064 class="card-info bottom_atc md:list-layout:hidden hide-icon" 9065 :class="if($store.xQuickView.show_atc_button){ return ($store.xQuickView.btn_atc_bottom ? '' : 'hidden') + ($store.xQuickView.atc_btn_image_desktop ? ' lg:hidden' : ' lg:block')}" 9066 x-cloak 9067 > 9068 9069<form method="post" action="/cart/add" id="product-form-choose-option10821877694774202" accept-charset="UTF-8" class="form h-full" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form" x-ref="product_form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /><input type="hidden" aria-hidden="true" name="id" value="54455626301750"> 9070 9071 9072 <button 9073 type="submit" 9074 name="add"@click.prevent="errorMessage == false && addToCart($event)"data-id="template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10821877694774-collection_DqgeTW" 9075 class="button button--quickview button-solid not-icon leading-normal mt-2 w-full pr-5 pl-5 pt-2.5 pb-2.5 lg:pt-3 lg:pb-3 h-full z-[15] text-[12px] lg:text-[14px] lg:-translate-x-0 disabled:cursor-not-allowed disable-action-btn-animation disabled:opacity-60" 9076 9077 9078 :class="errorMessage && 'opacity-60 cursor-not-allowed'"aria-label="Add to cart" 9079 >
9080 <span :class="{ 'lg:block opacity-0 is-focus-button' : loading, 'hidden' : errorMessage}"> 9081 9082 9083 <span class="flex items-center justify-center"> 9084 9085<div class="flex justify-center "> 9086 9087 9088 9089 <span class="button-text is-focus-button:opacity-0">Add to cart</span> 9090 9091 9092 9093 9094</div> 9095 </span> 9096 </span> 9097 <div 9098 class="flex gap-x-2 items-center justify-center" 9099 role="alert" 9100 x-cloak 9101 x-show="errorMessage" 9102 > 9103 Sold out 9104 </div> 9105 <div class="lg:inline-block w-4 h-4 md:w-5 md:h-5 absolute top-[calc(50%-8px)] left-[calc(50%-8px)] md:top-[calc(50%-10px)] md:left-[calc(50%-10px)]" x-show="loading" x-cloak> 9106 9107 <svg class="animate-spin rounded-full" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"> 9108 <path transform="translate(0 512) scale(0.1 -0.1)" fill="currentColor" d="M2474 4676 c-43 -19 -101 -81 -115 -123 -18 -56 -7 -145 24 -190 52 -75 79 -85 262 -99 90 -7 207 -22 260 -33 436 -92 824 -352 1070 -721 521 -781 321 -1824 -453 -2358 -501 -345 -1172 -393 -1715 -121 -700 350 -1075 1118 -917 1876 37 180 86 305 209 536 51 96 54 147 15 226 -37 73 -86 104 -174 109 -105 6 -151 -24 -224 -145 -137 -230 -241 -543 -276 -833 -13 -110 -13 -355 1 -478 52 -475 268 -922 614 -1267 351 -352 787 -560 1284 -615 171 -19 442 -8 615 24 423 80 802 282 1111 591 407 407 625 931 625 1505 0 574 -218 1098 -625 1505 -296 296 -654 493 -1055 579 -210 45 -470 61 -536 32z"/> 9109 </svg> 9110 9111 9112 </div> 9113 </button><input type="hidden" name="product-id" value="10821877694774" /><input type="hidden" name="section-id" value="template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656" /></form> 9114 </div></template> 9115 9116 </div> 9117</div> 9118<style data-shopify> 9119 .x-slide-animation-duration-3 { 9120 --delay-time: 200ms 9121 } 9122 </style> 9123 9124 9125 9126 9127<div 9128 9129 x-data="xProductCard('template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1-3', '/collections/best-sellers/products/perfecter-pro-heated-round-brush-1-gen-4', '10837665906998')" 9130 9131 class="card-product overflow-hidden card md:list-layout:flex relative pb-4 md:pb-5 splide__slide x-splide-slide h-auto preload-slide-collection_DqgeTWtemplate--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656 preload-slide-mobile--collection_DqgeTWtemplate--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656" 9132 x-slide-index="2" 9133> 9134 <div class="md:list-layout:w-2/5 md:list-layout:lg:w-1/4 relative disable-effect md:list-layout:pr-8" 9135 > 9136 9137 <a 9138 9139 x-intersect.once.margin.-20px.0px.-20px.0px="$el.querySelector('.animate_transition_card__image')?.classList.add('active', 'lazy_active')" 9140 9141 href="/collections/best-sellers/products/perfecter-pro-heated-round-brush-1-gen-4" 9142 9143 x-data="{ lastWindowWidth: 0 }" 9144 x-intersect.once.margin.200px='$nextTick(() => { $store.xBadges && $store.xBadges.load($el, () => {}, null, true); })' 9145 x-labels-data="[ 9146 9147{ 9148 "variant_id": 54522340442422, 9149 "product_id": 10837665906998, 9150 "available": true, 9151 "title": "1&quot; Perfecter Pro Heated Round Brush Gen 4", 9152 "compare_at_price": 0, 9153 "price": 11500, 9154 "price_with_currency": "$115", 9155 "sale_amount": "$-115", 9156 "collections": "||508637282614||166997852220||137844031557||155590623292||137730490437||159801704508||137844195397||137698115653||261925437500||500855898422||137844097093||150929145925||525057982774||544433897782||261925535804||533743796534||137909567557||520121483574||520121614646||137844293701||", 9157 "inventory_management": "shopify", 9158 "qty": 2019, 9159 "container": "card", 9160 "can_show_preorder": false, 9161 "diff_day_create": 1788815975, 9162 "diff_day_publish": 1788996839 9163 9164 ,"metafield_label": { 9165 "custom.promo_copy":"" 9166 } 9167 9168 } 9169 ]" 9170 9171 aria-label="1" Perfecter Pro Heated Round Brush Gen 4" 9172 id="10837665906998-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb76
917256" 9173 class="x-labels-data ltr group link-product-variant overflow-hidden block relative z-[15] cursor-pointer before:h-0 before:block no-collage pb-[100%]"> 9174 <div 9175 id="x-slideshow-card-product-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1-3-2" 9176 class="block w-full h-full absolute top-0 left-0 z-0 overflow-hidden x-splide splide visible animate_transition_card__image" 9177 @click='$store.xCustomerEvent.fire("product_selected", $el)' 9178 x-customer-event-data="{ 9179 "product": { 9180 "title": "1&quot; Perfecter Pro Heated Round Brush Gen 4", 9181 "listName": "Best Sellers", 9182 "sku": "10837665906998", 9183 "currencyCode": "USD", 9184 "price": 11500, 9185 "vendor": "Calista Tools" 9186 } 9187 }" 9188 x-cloak 9189 9190 x-intersect.once.margin.200px='$store.xSplide.load($el, { 9191 "drag": true, 9192 "pagination": true, 9193 "arrows": false, 9194 "pauseOnFocus": false, 9195 "pauseOnHover": false, 9196 "perMove": 1, 9197 "perPage": 1, 9198 "focus": "center", 9199 "mediaQuery": "min", 9200 "rewind": true, 9201 9202 "destroy": true, 9203 9204 "breakpoints": { 9205 1024: { 9206 9207 "destroy": true 9208 9209 } 9210 }, 9211 9212 "playOnHover": true, 9213 9214 9215 "classes": { 9216 "pagination": "gap-1 flex-nowrap absolute bottom-2 left-2.5 rtl:right-2.5 rtl:left-auto flex", 9217 "page": "paginate-dots-card-product duration-200 rounded-full w-2 flex items-center h-2" 9218 }, 9219 "type": "slide", 9220 })'> 9221 <div 9222 id="image-product-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1-3-2" 9223 class="splide__track overflow-hidden max-h-full h-full w-full" 9224 > 9225 <div class="w-full h-full splide__list"> 9226 <div class="w-full z-0 h-full min-h-full overflow-hidden splide__slide x-splide-slide max-h-full lg:top-0 lg:left-0 lg:absolute" 9227 > 9228 9229 <picture> 9230 <img 9231 srcset=" 9232 //calistatools.com/cdn/shop/files/1.28.2025Perfecter-02.jpg?v=1788817224&width=250 250w, 9233 //calistatools.com/cdn/shop/files/1.28.2025Perfecter-02.jpg?v=1788817224&width=350 350w, 9234 //calistatools.com/cdn/shop/files/1.28.2025Perfecter-02.jpg?v=1788817224&width=450 450w, 9235 //calistatools.com/cdn/shop/files/1.28.2025Perfecter-02.jpg?v=1788817224&width=750 750w, 9236 //calistatools.com/cdn/shop/files/1.28.2025Perfecter-02.jpg?v=1788817224&width=900 900w, 9237 //calistatools.com/cdn/shop/files/1.28.2025Perfecter-02.jpg?v=1788817224&width=1100 1100w, 9238 //calistatools.com/cdn/shop/files/1.28.2025Perfecter-02.jpg?v=1788817224&width=1500 1500w,//calistatools.com/cdn/shop/files/1.28.2025Perfecter-02.jpg?v=1788817224 2083w" 9239 src="//calistatools.com/cdn/shop/files/1.28.2025Perfecter-02.jpg?v=1788817224&width=1500" 9240 sizes="(min-width: 1400px) calc(100vw / 4), (min-width: 1024px) calc((100vw) / 4), (min-width: 768px) calc((100vw) / 2), calc((100vw /2) - 2px)" 9241 alt="1" Perfecter Pro Heated Round Brush Gen 4" 9242 class="w-full preview-img motion-reduce aspect-square relative animate-Xpulse skeleton-image object-cover h-full min-h-full image-first-slide-anm lg:group-hover:opacity-0 transition-opacity duration-500 animate_transition_image" 9243 9244 loading="lazy" 9245 9246 width="2083" 9247 height="2083" 9248 onload="requestAnimationFrame(() => { 9249 this?.classList.add('active');this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); 9250 setTimeout(() => { this.closest('.animate_transition_card__image')?.classList.add('lazy_active', 'active'); }, 250); 9251 })" 9252 /> 9253 </picture> 9254 9255 </div><style data-shopify> 9256 #image-product-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb76
925656-1-3-2 .media-slide:not(:first-child) { 9257 height: 100%; 9258 } 9259 </style> 9260 <div class="media-slide splide__slide x-splide-slide z-0 transition ease-out duration-300 w-full h-full lg:block"> 9261 9262 <picture> 9263 <img 9264 srcset="//calistatools.com/cdn/shop/files/1.28.2025Perfecter-04.jpg?v=1788817234&width=250 250w, 9265 //calistatools.com/cdn/shop/files/1.28.2025Perfecter-04.jpg?v=1788817234&width=350 350w, 9266 //calistatools.com/cdn/shop/files/1.28.2025Perfecter-04.jpg?v=1788817234&width=450 450w, 9267 //calistatools.com/cdn/shop/files/1.28.2025Perfecter-04.jpg?v=1788817234&width=750 750w, 9268 //calistatools.com/cdn/shop/files/1.28.2025Perfecter-04.jpg?v=1788817234&width=900 900w, 9269 //calistatools.com/cdn/shop/files/1.28.2025Perfecter-04.jpg?v=1788817234&width=1100 1100w, 9270 //calistatools.com/cdn/shop/files/1.28.2025Perfecter-04.jpg?v=1788817234&width=1500 1500w,//calistatools.com/cdn/shop/files/1.28.2025Perfecter-04.jpg?v=1788817234 2083w" 9271 src="//calistatools.com/cdn/shop/files/1.28.2025Perfecter-04.jpg?v=1788817234&width=1500" 9272 sizes="(min-width: 1400px) calc(100vw / 4), (min-width: 1024px) calc((100vw) / 4), (min-width: 768px) calc((100vw) / 2), calc((100vw /2) - 2px)" 9273 alt="1" Perfecter Pro Heated Round Brush Gen 4" 9274 class="motion-reduce min-w-full h-full object-cover group-hover:cursor-pointer content-visibility-auto image-first-hover-slide-anm absolute top-0 lg:-right-[101%]" 9275 loading="lazy" 9276 width="2083" 9277 height="2083" 9278 onload="requestAnimationFrame(() => { 9279 this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); 9280 setTimeout(() => { this.closest('.animate_transition_card__image')?.classList.add('lazy_active', 'active'); }, 250); 9281 })" 9282 /> 9283 </picture> 9284 9285 </div></div> 9286 </div></div> 9287 <div class="md:list-layout:hidden" x-show="$store.xQuickView" :class="$store.xQuickView && $store.xQuickView.btn_atc_bottom ? 'mobile-bottom':''"><div class="quick-view-container absolute z-20 bottom-2 right-2 rtl:right-auto rtl:left-2 rtl:lg:left-auto lg:top-auto lg:right-auto lg:bottom-4 lg:w-full lg:group-hover:opacity-100 lg:group-hover:translate-y-0 focus:opacity-100 focus:translate-y-0 lg:translate-y-full transition-all duration-[var(--transition-card-image-hover)] ease-in-out lg:opacity-0" 9288 x-show="$store.xQuickView" x-cloak 9289 > 9290 <div x-data="xProductCart" x-show="$store.xQuickView && $store.xQuickView.show_atc_button" 9291 class="w-full hide-icon lg:pl-4 lg:pr-4" 9292 :class="if($store.xQuickView){ return ($store.xQuickView.btn_atc_bottom ? 'hidden' : '') + ($store.xQuickView.atc_btn_image_desktop ? ' lg:block' : ' lg:hidden') }" 9293 x-cloak 9294 > 9295 9296<form method="post" action="/cart/add" id="product-form-choose-option10837665906998203" accept-charset="UTF-8" class="form h-full" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form" x-ref="product_form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /><input type="hidden" aria-hidden="true" name="id" value="54522340442422"> 9297 9298 9299 <button 9300 type="submit" 9301 name="add"@click.prevent="errorMessage == false && addToCart($event)"data-id="template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10837665906998-collection_DqgeTW" 9302 class="button button--quickview button-solid not-icon leading-normal w-full pr-5 pl-5 pt-2.5 pb-2.5 lg:pt-3 lg:pb-3 h-full z-50 text-[12px] lg:text-[14px] lg:-translate-x-0 disabled:cursor-not-allowed disable-action-btn-animation disabled:opacity-60 hidden lg:block" 9303 9304 9305 :class="errorMessage && 'opacity-60 cursor-not-allowed'"aria-label="Add to cart" 9306 >
9307 <span :class="{ 'lg:block opacity-0 is-focus-button' : loading, 'hidden' : errorMessage}"> 9308 9309 9310 <span class="flex items-center justify-center"> 9311 9312<div class="flex justify-center "> 9313 9314 9315 9316 <span class="button-text is-focus-button:opacity-0">Add to cart</span> 9317 9318 9319 9320 9321</div> 9322 </span> 9323 </span> 9324 <div 9325 class="flex gap-x-2 items-center justify-center" 9326 role="alert" 9327 x-cloak 9328 x-show="errorMessage" 9329 > 9330 Sold out 9331 </div> 9332 <div class="lg:inline-block w-4 h-4 md:w-5 md:h-5 absolute top-[calc(50%-8px)] left-[calc(50%-8px)] md:top-[calc(50%-10px)] md:left-[calc(50%-10px)]" x-show="loading" x-cloak> 9333 9334 <svg class="animate-spin rounded-full" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"> 9335 <path transform="translate(0 512) scale(0.1 -0.1)" fill="currentColor" d="M2474 4676 c-43 -19 -101 -81 -115 -123 -18 -56 -7 -145 24 -190 52 -75 79 -85 262 -99 90 -7 207 -22 260 -33 436 -92 824 -352 1070 -721 521 -781 321 -1824 -453 -2358 -501 -345 -1172 -393 -1715 -121 -700 350 -1075 1118 -917 1876 37 180 86 305 209 536 51 96 54 147 15 226 -37 73 -86 104 -174 109 -105 6 -151 -24 -224 -145 -137 -230 -241 -543 -276 -833 -13 -110 -13 -355 1 -478 52 -475 268 -922 614 -1267 351 -352 787 -560 1284 -615 171 -19 442 -8 615 24 423 80 802 282 1111 591 407 407 625 931 625 1505 0 574 -218 1098 -625 1505 -296 296 -654 493 -1055 579 -210 45 -470 61 -536 32z"/> 9336 </svg> 9337 9338 9339 </div> 9340 </button> 9341 <button 9342 type="submit" 9343 name="add"@click.prevent="errorMessage == false && addToCart($event)"class="button label-btn-quickview button-disable-effect not-icon button--quickview rounded-full lg:leading-snug none_border lg:hidden h-full pt-1.5 pb-1.5 pl-1.5 pr-1.5 disabled:cursor-not-allowed disable-action-btn-animation disabled:opacity-60" 9344 9345 9346 data-id="template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10837665906998-collection_DqgeTW" 9347 :class="errorMessage && 'opacity-60 cursor-not-allowed'"aria-label="Add to cart"x-customer-event-data="{ 9348 "product": { 9349 "title": "1&quot; Perfecter Pro Heated Round Brush Gen 4", 9350 "listName": "Best Sellers", 9351 "sku": "10837665906998", 9352 "currencyCode": "USD", 9353 "price": 11500, 9354 "vendor": "Calista Tools" 9355 } 9356 }" 9357 9358 > 9359 <span class="w-5 h-5 flex items-center justify-center md:w-6 md:h-6" x-show="!loading"><svg class="" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"> 9360 <path fill="none" d="M4.537 3.25H18.0745L15.937 10.375H6.6745L4.537 3.25L4.00262 1.46875 M9.28698 12.8687C9.28698 13.459 8.80846 13.9375 8.21823 13.9375C7.62797 13.9375 7.14948 13.459 7.14948 12.8687 M14.9872 12.75C14.9872 13.3402 14.5087 13.8188 13.9185 13.8188C13.3282 13.8188 12.8497 13.3402 12.8497 12.75 M1.44977 1.35001H3.34977"/> 9361 </svg></span> 9362 <span class="block w-5 h-5" x-show="loading" x-cloak> 9363 9364 <svg class="animate-spin rounded-full" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"> 9365 <path transform="translate(0 512) scale(0.1 -0.1)" fill="currentColor" d="M2474 4676 c-43 -19 -101 -81 -115 -123 -18 -56 -7 -145 24 -190 52 -75 79 -85 262 -99 90 -7 207 -22 260 -33 436 -92 824 -352 1070 -721 521 -781 321 -1824 -453 -2358 -501 -345 -1172 -393 -1715 -121 -700 350 -1075 1118 -917 1876 37 180 86 305 209 536 51 96 54 147 15 226 -37 73 -86 104 -174 109 -105 6 -151 -24 -224 -145 -137 -230 -241 -543 -276 -833 -13 -110 -13 -355 1 -478 52 -475 268 -922 614 -1267 351 -352 787 -560 1284 -615 171 -19 442 -8 615 24 423 80 802 282 1111 591 407 407 625 931 625 1505 0 574 -218 1098 -625 1505 -296 296 -654 493 -1055 579 -210 45 -470 61 -536 32z"/> 9366 </svg> 9367 9368 9369 </span> 9370 </button><input type="hidden" name="product-id" value="10837665906998" /><input type="hidden" name="section-id" value="template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb76
937056" /></form> 9371 </div> 9372 </div><div 9373 class="button-quickview-icon absolute z-[15] lg:group-hover:opacity-100 lg:group-hover:translate-y-0 focus:opacity-100 focus:translate-y-0 transition-all duration-[var(--transition-card-image-hover)] ease-in-out lg:opacity-0" 9374 :class="$store.xQuickView && $store.xQuickView.show_atc_button ? 'btn-quickadd bottom-11 md:bottom-12 right-2 lg:top-4 lg:bottom-auto lg:-translate-y-full rtl:right-auto rtl:left-2' : 'bottom-2 right-0 lg:top-auto lg:translate-y-full lg:right-auto lg:bottom-4 lg:w-full lg:left-0 pl-2 pr-2 lg:pr-4 lg:pl-4'" 9375 x-show="$store.xQuickView && $store.xQuickView.enabled" x-cloak 9376 > 9377 <div> 9378 <button 9379 @click.prevent='$store.xQuickView && $store.xQuickView.open(); $store.xCustomerEvent.fire("product_selected", $el);' 9380 x-on:mouseover="$store.xQuickView && $store.xQuickView.load('/collections/best-sellers/products/perfecter-pro-heated-round-brush-1-gen-4', $el, 'template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10837665906998-collection_DqgeTW')" 9381 x-on:focus="$store.xQuickView && $store.xQuickView.load('/collections/best-sellers/products/perfecter-pro-heated-round-brush-1-gen-4', $el, 'template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10837665906998-collection_DqgeTW')" 9382 class="button label-btn-quickview button--quickview not-icon leading-normal empty:hidden hidden lg:block z-50 h-full" 9383 :class="$store.xQuickView && $store.xQuickView.show_atc_button ? 'pt-1.5 pb-1.5 pl-1.5 pr-1.5 md:pt-2.5 md:pb-2.5 md:pl-2.5 md:pr-2.5 rounded-full button-disable-effect' : 'w-full pt-3 pb-3 button-solid'" 9384 x-customer-event-data="{ 9385 "product": { 9386 "title": "1&quot; Perfecter Pro Heated Round Brush Gen 4", 9387 "listName": "Best Sellers", 9388 "sku": "10837665906998", 9389 "currencyCode": "USD", 9390 "price": 11500, 9391 "vendor": "Calista Tools" 9392 } 9393 }" 9394 aria-label="Button quickview" 9395 > 9396 <span x-show="$store.xQuickView && $store.xQuickView.show_atc_button" class="w-4 h-4 flex items-center"><svg width="100%" height="100%" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg" style="fill: none;"> 9397 <path d="M28 8 a20 20 0 1 1 0 40 a20 20 0 1 1 0 -40 M42 42 L58 58 M28 20 V36 M20 28 H36" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" fill="none"/> 9398 </svg> 9399</span> 9400 <span x-show="$store.xQuickView && !$store.xQuickView.show_atc_button" class="flex items-center justify-center"> 9401 9402<div class="flex justify-center "> 9403 9404 <span class="button-text " x-text="$store.xQuickView && $store.xQuickView.buttonLabel"></span> 9405 9406 9407</div> 9408 </span> 9409 </button> 9410 <button @click.prevent='$store.xQuickView && $store.xQuickView.load("/collections/best-sellers/products/perfecter-pro-heated-round-brush-1-gen-4", $el, "template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10837665906998-collection_DqgeTW"); $store.xQuickView && $store.xQuickView.open(); $store.xCustomerEvent.fire("product_selected", $el);' 9411 class="button label-btn-quickview button-disable-effect not-icon button--quickview rounded-full lg:leading-snug none_border lg:hidden h-full pt-2 pb-2 pl-2 pr-2" 9412 aria-label="Button quickview" 9413 x-customer-event-data="{ 9414 "product": { 9415 "title": "1&quot; Perfecter Pro Heated Round Brush Gen 4", 9416 "listName": "Best Sellers", 9417 "sku": "10837665906998", 9418 "currencyCode": "USD", 9419 "price": 11500, 9420 "vendor": "Calista Tools" 9421 } 9422 }" 9423 > 9424 <span class="w-4 h-4 md:w-5 md:h-5 flex items-center">
9424<svg width="100%" height="100%" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg" style="fill: none;"> 9425 <path d="M28 8 a20 20 0 1 1 0 40 a20 20 0 1 1 0 -40 M42 42 L58 58 M28 20 V36 M20 28 H36" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" fill="none"/> 9426 </svg> 9427</span> 9428 </button> 9429 </div> 9430 </div> 9431 </div> 9432 9433 </a> 9434 <div class="card-info no-collage:mb-2 md:list-layout:hidden pt-5 text-left md:list-layout:pt-0 md:list-layout:lg:pt-0 md:list-layout:text-left"> 9435 9436 <div class="below-image ltr flex flex-wrap justify-left md:list-layout:justify-start rtl:md:list-layout:justify-end mb-2.5 gap-1 empty:hidden"></div><h3 class="card__heading h5 no-collage:mb-2 mb-2.5 leading-tight" id="title-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10837665906998"> 9437 <a href="/collections/best-sellers/products/perfecter-pro-heated-round-brush-1-gen-4" 9438 class="x-card-title full-unstyled-link link-product-variant text-[rgba(var(--colors-heading))] hover:text-[rgba(var(--colors-text-link))] cursor-pointer duration-200 p-break-words" 9439 @click='$store.xCustomerEvent.fire("product_selected", $el)' 9440 x-customer-event-data="{ 9441 "product": { 9442 "title": "1&quot; Perfecter Pro Heated Round Brush Gen 4", 9443 "listName": "Best Sellers", 9444 "sku": "10837665906998", 9445 "currencyCode": "USD", 9446 "price": 11500, 9447 "vendor": "Calista Tools" 9448 } 9449 }" 9450 > 9451 1" Perfecter Pro Heated Round Brush Gen 4 9452 </a> 9453 </h3> 9454 9455 9456 9457 9458 9459 9460 9461 9462<div 9463 class="x-review-product yotpo 9464 9465 flex w-full items-center rating-review justify-start ltr mb-2.5 md:list-layout:justify-start 9466 " 9467> 9468 9469<div class="yotpo bottomLine" data-product-id="10837665906998"> </div> 9470</div> 9471 9472 9473<div class="cal-card-variant text-left"><p class="cal-card-variant-name">1"</p><p class="cal-card-variant-count">3 Options</p> 9474 </div> 9475<div class="x-card-price flex items-center mb-2.5 flex-wrap gap-1 justify-left rtl:flex-row-reverse md:rtl:list-layout:flex-row md:list-layout:justify-start"> 9476 9477 9478 <div class=" price leading-none "> 9479 <div class="target-price hidden">11500</div> 9480 <div class="target-compare-at-price hidden"></div> 9481 9482 9483 9484 9485<p class="price"> 9486 $115 9487 </p> 9488 9489 9490</div> 9491 9492 9493 <div class="leading-none next-price flex flex-wrap gap-x-1 gap-y-2 empty:hidden"></div> 9494 </div> 9495 9496 <template x-if="localStorage.getItem('selectedStore')"> 9497 <div id="x-availability-notice-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656" class="flex mb-2.5 items-center flex-wrap gap-1 justify-left rtl:flex-row-reverse md:rtl:list-layout:flex-row md:list-layout:justify-start justify-left" x-show="$store.xStoreSelector?.canShow('10837665906998', [508637282614, 166997852220, 137844031557, 155590623292, 137730490437, 159801704508, 137844195397, 137698115653, 261925437500, 500855898422, 137844097093, 150929145925, 525057982774, 544433897782, 261925535804, 533743796534, 137909567557, 520121483574, 520121614646, 137844293701])"> 9498 9499<div 9500 class="text-availability-notice" 9501 x-data='{ 9502 locations: [], 9503 pickupLocations: [], 9504 pickupAvailabilites: [] 9505 }' 9506 x-show="$store.xStoreSelector?.selectedStore && locations.includes($store.xStoreSelector?.getStore())" 9507> 9508 <style data-shopify> 9509 .text-availability-notice { 9510 font-size: 0.669375rem; 9511 } 9512 @media (min-width: 768px) { 9513 .text-availability-notice { 9514 font-size: 0.74375rem; 9515 } 9516 } 9517 </style> 9518 <div x-cloak x-show="$store.xStoreSelector?.checkAvailability(pickupLocations, pickupAvailabilites)" class="inventory-in-stock-status flex flex-row items-center gap-[3px]"> 9519 <span class="flex h-4 w-4 relative"> 9520 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 9521 <rect width="16" height="16" rx="8" fill="currentColor" fill-opacity="0.2"/> 9522 <rect x="4" y="4" width="8" height="8" rx="4" fill="currentColor"/> 9523 </svg> 9524 9525</span><span x-text="'Available for pickup at ' + $store.xStoreSelector?.getStoreText()"> </span> 9526 </div> 9527 <div x-cloak x-show="! $store.xStoreSelector?.checkAvailability(pickupLocations, pickupAvailabilites)" class="inventory-out-of-stock-status flex flex-row items-center gap-[3px]"> 9528 <span class="flex h-4 w-4 relative">
9529 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 9530 <rect width="16" height="16" rx="8" fill="currentColor" fill-opacity="0.2"/> 9531 <rect x="4" y="4" width="8" height="8" rx="4" fill="currentColor"/> 9532 </svg> 9533 9534</span><span x-text="'Out of stock at ' + $store.xStoreSelector?.getStoreText()"> </span> 9535 </div> 9536</div></div> 9537 </template> 9538 <div class="bottom-card ltr flex flex-wrap justify-left md:list-layout:justify-start rtl:md:list-layout:justify-end mb-2.5 gap-1 empty:hidden"></div> 9539 </div> 9540 </div> 9541 <div 9542 id="x-product-template-10837665906998-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1-3" 9543 class="list-layout:lg:w-3/4 md:list-layout:w-3/5 list-layout:md:pl-0 rtl:list-layout:md:pl-5 rtl:list-layout:md:pr-0 text-left" 9544 > 9545 9546 9547 <div class="hidden" @init-run="document.addEventListener('eurus:cart:items-changed', () => { 9548 Alpine.store('xUpdateVariantQuanity').updateQuantity('template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656', '/products/perfecter-pro-heated-round-brush-1-gen-4'); 9549 });"></div> 9550 <div 9551 id="current-variant-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10837665906998-collection_DqgeTW" 9552 class="current-variant hidden" 9553 > 9554 9555 54522340442422 9556 9557 </div> 9558 9559 <div class="card-info x-highlight-icon mt-2.5"> 9560 <div 9561 class="flex flex-wrap gap-[3px] rtl:flex-row-reverse ltr pr-0 pl-0 justify-left items-center list-layout:mt-4 list-layout:justify-start rtl:list-layout:justify-end empty:hidden" 9562 x-data="{setPosition(el) { 9563 parentEl = el.closest('.x-highlight-icon').getBoundingClientRect(); 9564 el.style.setProperty('--maxwidth-tooltip', parentEl.width - 20 + 'px'); 9565 elRect = el.getBoundingClientRect(); 9566 let spacingLeft = elRect.left - parentEl.left; 9567 if (spacingLeft < 0) { 9568 el.style.setProperty('--left-tooltip', Math.abs(spacingLeft) + 'px'); 9569 } 9570 let spacingRight = parentEl.right - elRect.right; 9571 if (spacingRight < 0) { 9572 el.style.setProperty('--left-tooltip', spacingRight + 'px'); 9573 } 9574 }}" 9575 @init-run.window="$el.innerHTML = $el.innerHTML.trim();" 9576> 9577 � 9578 � 9579 � 9580 �</div> 9581 </div> 9582 9583 9584 <template x-if="$store.xQuickView"><div x-data="xProductCart" x-show="$store.xQuickView.show_atc_button && ($store.xQuickView.btn_atc_bottom || !$store.xQuickView.atc_btn_image_desktop)" 9585 class="card-info bottom_atc md:list-layout:hidden hide-icon" 9586 :class="if($store.xQuickView.show_atc_button){ return ($store.xQuickView.btn_atc_bottom ? '' : 'hidden') + ($store.xQuickView.atc_btn_image_desktop ? ' lg:hidden' : ' lg:block')}" 9587 x-cloak 9588 > 9589 9590<form method="post" action="/cart/add" id="product-form-choose-option10837665906998203" accept-charset="UTF-8" class="form h-full" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form" x-ref="product_form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /><input type="hidden" aria-hidden="true" name="id" value="54522340442422"> 9591 9592 9593 <button 9594 type="submit" 9595 name="add"@click.prevent="errorMessage == false && addToCart($event)"data-id="template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10837665906998-collection_DqgeTW" 9596 class="button button--quickview button-solid not-icon leading-normal mt-2 w-full pr-5 pl-5 pt-2.5 pb-2.5 lg:pt-3 lg:pb-3 h-full z-[15] text-[12px] lg:text-[14px] lg:-translate-x-0 disabled:cursor-not-allowed disable-action-btn-animation disabled:opacity-60" 9597 9598 9599 :class="errorMessage && 'opacity-60 cursor-not-allowed'"aria-label="Add to cart" 9600 > 9601 <span :class="{ 'lg:block opacity-0 is-focus-button' : loading, 'hidden' : errorMessage}"> 9602 9603
9604 <span class="flex items-center justify-center"> 9605 9606<div class="flex justify-center "> 9607 9608 9609 9610 <span class="button-text is-focus-button:opacity-0">Add to cart</span> 9611 9612 9613 9614 9615</div> 9616 </span> 9617 </span> 9618 <div 9619 class="flex gap-x-2 items-center justify-center" 9620 role="alert" 9621 x-cloak 9622 x-show="errorMessage" 9623 > 9624 Sold out 9625 </div> 9626 <div class="lg:inline-block w-4 h-4 md:w-5 md:h-5 absolute top-[calc(50%-8px)] left-[calc(50%-8px)] md:top-[calc(50%-10px)] md:left-[calc(50%-10px)]" x-show="loading" x-cloak> 9627 9628 <svg class="animate-spin rounded-full" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"> 9629 <path transform="translate(0 512) scale(0.1 -0.1)" fill="currentColor" d="M2474 4676 c-43 -19 -101 -81 -115 -123 -18 -56 -7 -145 24 -190 52 -75 79 -85 262 -99 90 -7 207 -22 260 -33 436 -92 824 -352 1070 -721 521 -781 321 -1824 -453 -2358 -501 -345 -1172 -393 -1715 -121 -700 350 -1075 1118 -917 1876 37 180 86 305 209 536 51 96 54 147 15 226 -37 73 -86 104 -174 109 -105 6 -151 -24 -224 -145 -137 -230 -241 -543 -276 -833 -13 -110 -13 -355 1 -478 52 -475 268 -922 614 -1267 351 -352 787 -560 1284 -615 171 -19 442 -8 615 24 423 80 802 282 1111 591 407 407 625 931 625 1505 0 574 -218 1098 -625 1505 -296 296 -654 493 -1055 579 -210 45 -470 61 -536 32z"/> 9630 </svg> 9631 9632 9633 </div> 9634 </button><input type="hidden" name="product-id" value="10837665906998" /><input type="hidden" name="section-id" value="template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656" /></form> 9635 </div></template> 9636 9637 </div> 9638</div> 9639<style data-shopify> 9640 .x-slide-animation-duration-4 { 9641 --delay-time: 300ms 9642 } 9643 </style> 9644 9645 9646 9647 9648<div 9649 9650 x-data="xProductCard('template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1-4', '/collections/best-sellers/products/eliteair-multi-style-dryer-gen-2', '10603065803062')" 9651 9652 class="card-product overflow-hidden card md:list-layout:flex relative pb-4 md:pb-5 splide__slide x-splide-slide h-auto preload-slide-collection_DqgeTWtemplate--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656 preload-slide-mobile--collection_DqgeTWtemplate--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656" 9653 x-slide-index="3" 9654> 9655 <div class="md:list-layout:w-2/5 md:list-layout:lg:w-1/4 relative disable-effect md:list-layout:pr-8" 9656 > 9657 9658 <a 9659 9660 x-intersect.once.margin.-20px.0px.-20px.0px="$el.querySelector('.animate_transition_card__image')?.classList.add('active', 'lazy_active')" 9661 9662 href="/collections/best-sellers/products/eliteair-multi-style-dryer-gen-2" 9663 9664 x-data="{ lastWindowWidth: 0 }" 9665 x-intersect.once.margin.200px='$nextTick(() => { $store.xBadges && $store.xBadges.load($el, () => {}, null, true); })' 9666 x-labels-data="[ 9667 9668{ 9669 "variant_id": 53708547391798, 9670 "product_id": 10603065803062, 9671 "available": true, 9672 "title": "EliteAir Multi-Style Dryer Gen 2", 9673 "compare_at_price": 0, 9674 "price": 15900, 9675 "price_with_currency": "$159", 9676 "sale_amount": "$-159", 9677 "collections": "||166997852220||152388730949||155590623292||137730523205||137730490437||159801704508||137730457669||137698115653||261925437500||500855898422||525057982774||137909567557||137844228165||", 9678 "inventory_management": "shopify", 9679 "qty": 1637, 9680 "container": "card", 9681 "can_show_preorder": false, 9682 "diff_day_create": 1771362139, 9683 "diff_day_publish": 1774235386 9684 9685 ,"metafield_label": { 9686 "custom.promo_copy":"" 9687 } 9688 9689 } 9690 ]" 9691 9692 aria-label="EliteAir Multi-Style Dryer Gen 2" 9693 id="10603065803062-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb76
969356" 9694 class="x-labels-data ltr group link-product-variant overflow-hidden block relative z-[15] cursor-pointer before:h-0 before:block no-collage pb-[100%]"> 9695 <div 9696 id="x-slideshow-card-product-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1-4-3" 9697 class="block w-full h-full absolute top-0 left-0 z-0 overflow-hidden x-splide splide visible animate_transition_card__image" 9698 @click='$store.xCustomerEvent.fire("product_selected", $el)' 9699 x-customer-event-data="{ 9700 "product": { 9701 "title": "EliteAir Multi-Style Dryer Gen 2", 9702 "listName": "Best Sellers", 9703 "sku": "10603065803062", 9704 "currencyCode": "USD", 9705 "price": 15900, 9706 "vendor": "Calista Tools" 9707 } 9708 }" 9709 x-cloak 9710 9711 x-intersect.once.margin.200px='$store.xSplide.load($el, { 9712 "drag": true, 9713 "pagination": true, 9714 "arrows": false, 9715 "pauseOnFocus": false, 9716 "pauseOnHover": false, 9717 "perMove": 1, 9718 "perPage": 1, 9719 "focus": "center", 9720 "mediaQuery": "min", 9721 "rewind": true, 9722 9723 "destroy": true, 9724 9725 "breakpoints": { 9726 1024: { 9727 9728 "destroy": true 9729 9730 } 9731 }, 9732 9733 "playOnHover": true, 9734 9735 9736 "classes": { 9737 "pagination": "gap-1 flex-nowrap absolute bottom-2 left-2.5 rtl:right-2.5 rtl:left-auto flex", 9738 "page": "paginate-dots-card-product duration-200 rounded-full w-2 flex items-center h-2" 9739 }, 9740 "type": "slide", 9741 })'> 9742 <div 9743 id="image-product-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1-4-3" 9744 class="splide__track overflow-hidden max-h-full h-full w-full" 9745 > 9746 <div class="w-full h-full splide__list"> 9747 <div class="w-full z-0 h-full min-h-full overflow-hidden splide__slide x-splide-slide max-h-full lg:top-0 lg:left-0 lg:absolute" 9748 > 9749 9750 <picture> 9751 <img 9752 srcset=" 9753 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=250 250w, 9754 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=350 350w, 9755 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=450 450w, 9756 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=750 750w, 9757 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=900 900w, 9758 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=1100 1100w, 9759 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=1500 1500w,//calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861 2083w" 9760 src="//calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=1500" 9761 sizes="(min-width: 1400px) calc(100vw / 4), (min-width: 1024px) calc((100vw) / 4), (min-width: 768px) calc((100vw) / 2), calc((100vw /2) - 2px)" 9762 alt="EliteAir Multi-Style Dryer Gen 2" 9763 class="w-full preview-img motion-reduce aspect-square relative animate-Xpulse skeleton-image object-cover h-full min-h-full image-first-slide-anm lg:group-hover:opacity-0 transition-opacity duration-500 animate_transition_image" 9764 9765 loading="lazy" 9766 9767 width="2083" 9768 height="2083" 9769 onload="requestAnimationFrame(() => { 9770 this?.classList.add('active');this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); 9771 setTimeout(() => { this.closest('.animate_transition_card__image')?.classList.add('lazy_active', 'active'); }, 250); 9772 })" 9773 /> 9774 </picture> 9775 9776 </div><style data-shopify> 9777 #image-product-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb76
977756-1-4-3 .media-slide:not(:first-child) { 9778 height: 100%; 9779 } 9780 </style> 9781 <div class="media-slide splide__slide x-splide-slide z-0 transition ease-out duration-300 w-full h-full lg:block"> 9782 9783 <picture> 9784 <img 9785 srcset="//calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-01.jpg?v=1781276864&width=250 250w, 9786 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-01.jpg?v=1781276864&width=350 350w, 9787 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-01.jpg?v=1781276864&width=450 450w, 9788 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-01.jpg?v=1781276864&width=750 750w, 9789 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-01.jpg?v=1781276864&width=900 900w, 9790 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-01.jpg?v=1781276864&width=1100 1100w, 9791 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-01.jpg?v=1781276864&width=1500 1500w,//calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-01.jpg?v=1781276864 2083w" 9792 src="//calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-01.jpg?v=1781276864&width=1500" 9793 sizes="(min-width: 1400px) calc(100vw / 4), (min-width: 1024px) calc((100vw) / 4), (min-width: 768px) calc((100vw) / 2), calc((100vw /2) - 2px)" 9794 alt="EliteAir Multi-Style Dryer Gen 2" 9795 class="motion-reduce min-w-full h-full object-cover group-hover:cursor-pointer content-visibility-auto image-first-hover-slide-anm absolute top-0 lg:-right-[101%]" 9796 loading="lazy" 9797 width="2083" 9798 height="2083" 9799 onload="requestAnimationFrame(() => { 9800 this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); 9801 setTimeout(() => { this.closest('.animate_transition_card__image')?.classList.add('lazy_active', 'active'); }, 250); 9802 })" 9803 /> 9804 </picture> 9805 9806 </div></div> 9807 </div></div> 9808 <div class="md:list-layout:hidden" x-show="$store.xQuickView" :class="$store.xQuickView && $store.xQuickView.btn_atc_bottom ? 'mobile-bottom':''"><div class="quick-view-container absolute z-20 bottom-2 right-2 rtl:right-auto rtl:left-2 rtl:lg:left-auto lg:top-auto lg:right-auto lg:bottom-4 lg:w-full lg:group-hover:opacity-100 lg:group-hover:translate-y-0 focus:opacity-100 focus:translate-y-0 lg:translate-y-full transition-all duration-[var(--transition-card-image-hover)] ease-in-out lg:opacity-0" 9809 x-show="$store.xQuickView" x-cloak 9810 > 9811 <div x-data="xProductCart" x-show="$store.xQuickView && $store.xQuickView.show_atc_button" 9812 class="w-full hide-icon lg:pl-4 lg:pr-4" 9813 :class="if($store.xQuickView){ return ($store.xQuickView.btn_atc_bottom ? 'hidden' : '') + ($store.xQuickView.atc_btn_image_desktop ? ' lg:block' : ' lg:hidden') }" 9814 x-cloak 9815 > 9816 9817<form method="post" action="/cart/add" id="product-form-choose-option10603065803062204" accept-charset="UTF-8" class="form h-full" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form" x-ref="product_form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /><input type="hidden" aria-hidden="true" name="id" value="53708547391798"> 9818 9819 9820 <button 9821 type="submit" 9822 name="add"@click.prevent="errorMessage == false && addToCart($event)"data-id="template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb76
982256-10603065803062-collection_DqgeTW" 9823 class="button button--quickview button-solid not-icon leading-normal w-full pr-5 pl-5 pt-2.5 pb-2.5 lg:pt-3 lg:pb-3 h-full z-50 text-[12px] lg:text-[14px] lg:-translate-x-0 disabled:cursor-not-allowed disable-action-btn-animation disabled:opacity-60 hidden lg:block" 9824 9825 9826 :class="errorMessage && 'opacity-60 cursor-not-allowed'"aria-label="Add to cart" 9827 > 9828 <span :class="{ 'lg:block opacity-0 is-focus-button' : loading, 'hidden' : errorMessage}"> 9829 9830 9831 <span class="flex items-center justify-center"> 9832 9833<div class="flex justify-center "> 9834 9835 9836 9837 <span class="button-text is-focus-button:opacity-0">Add to cart</span> 9838 9839 9840 9841 9842</div> 9843 </span> 9844 </span> 9845 <div 9846 class="flex gap-x-2 items-center justify-center" 9847 role="alert" 9848 x-cloak 9849 x-show="errorMessage" 9850 > 9851 Sold out 9852 </div> 9853 <div class="lg:inline-block w-4 h-4 md:w-5 md:h-5 absolute top-[calc(50%-8px)] left-[calc(50%-8px)] md:top-[calc(50%-10px)] md:left-[calc(50%-10px)]" x-show="loading" x-cloak> 9854 9855 <svg class="animate-spin rounded-full" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"> 9856 <path transform="translate(0 512) scale(0.1 -0.1)" fill="currentColor" d="M2474 4676 c-43 -19 -101 -81 -115 -123 -18 -56 -7 -145 24 -190 52 -75 79 -85 262 -99 90 -7 207 -22 260 -33 436 -92 824 -352 1070 -721 521 -781 321 -1824 -453 -2358 -501 -345 -1172 -393 -1715 -121 -700 350 -1075 1118 -917 1876 37 180 86 305 209 536 51 96 54 147 15 226 -37 73 -86 104 -174 109 -105 6 -151 -24 -224 -145 -137 -230 -241 -543 -276 -833 -13 -110 -13 -355 1 -478 52 -475 268 -922 614 -1267 351 -352 787 -560 1284 -615 171 -19 442 -8 615 24 423 80 802 282 1111 591 407 407 625 931 625 1505 0 574 -218 1098 -625 1505 -296 296 -654 493 -1055 579 -210 45 -470 61 -536 32z"/> 9857 </svg> 9858 9859 9860 </div> 9861 </button> 9862 <button 9863 type="submit" 9864 name="add"@click.prevent="errorMessage == false && addToCart($event)"class="button label-btn-quickview button-disable-effect not-icon button--quickview rounded-full lg:leading-snug none_border lg:hidden h-full pt-1.5 pb-1.5 pl-1.5 pr-1.5 disabled:cursor-not-allowed disable-action-btn-animation disabled:opacity-60" 9865 9866 9867 data-id="template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10603065803062-collection_DqgeTW" 9868 :class="errorMessage && 'opacity-60 cursor-not-allowed'"aria-label="Add to cart"x-customer-event-data="{ 9869 "product": { 9870 "title": "EliteAir Multi-Style Dryer Gen 2", 9871 "listName": "Best Sellers", 9872 "sku": "10603065803062", 9873 "currencyCode": "USD", 9874 "price": 15900, 9875 "vendor": "Calista Tools" 9876 } 9877 }" 9878 9879 > 9880 <span class="w-5 h-5 flex items-center justify-center md:w-6 md:h-6" x-show="!loading"><svg class="" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 20 16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"> 9881 <path fill="none" d="M4.537 3.25H18.0745L15.937 10.375H6.6745L4.537 3.25L4.00262 1.46875 M9.28698 12.8687C9.28698 13.459 8.80846 13.9375 8.21823 13.9375C7.62797 13.9375 7.14948 13.459 7.14948 12.8687 M14.9872 12.75C14.9872 13.3402 14.5087 13.8188 13.9185 13.8188C13.3282 13.8188 12.8497 13.3402 12.8497 12.75 M1.44977 1.35001H3.34977"/> 9882 </svg></span>
9883 <span class="block w-5 h-5" x-show="loading" x-cloak> 9884 9885 <svg class="animate-spin rounded-full" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"> 9886 <path transform="translate(0 512) scale(0.1 -0.1)" fill="currentColor" d="M2474 4676 c-43 -19 -101 -81 -115 -123 -18 -56 -7 -145 24 -190 52 -75 79 -85 262 -99 90 -7 207 -22 260 -33 436 -92 824 -352 1070 -721 521 -781 321 -1824 -453 -2358 -501 -345 -1172 -393 -1715 -121 -700 350 -1075 1118 -917 1876 37 180 86 305 209 536 51 96 54 147 15 226 -37 73 -86 104 -174 109 -105 6 -151 -24 -224 -145 -137 -230 -241 -543 -276 -833 -13 -110 -13 -355 1 -478 52 -475 268 -922 614 -1267 351 -352 787 -560 1284 -615 171 -19 442 -8 615 24 423 80 802 282 1111 591 407 407 625 931 625 1505 0 574 -218 1098 -625 1505 -296 296 -654 493 -1055 579 -210 45 -470 61 -536 32z"/> 9887 </svg> 9888 9889 9890 </span> 9891 </button><input type="hidden" name="product-id" value="10603065803062" /><input type="hidden" name="section-id" value="template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656" /></form> 9892 </div> 9893 </div><div 9894 class="button-quickview-icon absolute z-[15] lg:group-hover:opacity-100 lg:group-hover:translate-y-0 focus:opacity-100 focus:translate-y-0 transition-all duration-[var(--transition-card-image-hover)] ease-in-out lg:opacity-0" 9895 :class="$store.xQuickView && $store.xQuickView.show_atc_button ? 'btn-quickadd bottom-11 md:bottom-12 right-2 lg:top-4 lg:bottom-auto lg:-translate-y-full rtl:right-auto rtl:left-2' : 'bottom-2 right-0 lg:top-auto lg:translate-y-full lg:right-auto lg:bottom-4 lg:w-full lg:left-0 pl-2 pr-2 lg:pr-4 lg:pl-4'" 9896 x-show="$store.xQuickView && $store.xQuickView.enabled" x-cloak 9897 > 9898 <div> 9899 <button 9900 @click.prevent='$store.xQuickView && $store.xQuickView.open(); $store.xCustomerEvent.fire("product_selected", $el);' 9901 x-on:mouseover="$store.xQuickView && $store.xQuickView.load('/collections/best-sellers/products/eliteair-multi-style-dryer-gen-2', $el, 'template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10603065803062-collection_DqgeTW')" 9902 x-on:focus="$store.xQuickView && $store.xQuickView.load('/collections/best-sellers/products/eliteair-multi-style-dryer-gen-2', $el, 'template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10603065803062-collection_DqgeTW')" 9903 class="button label-btn-quickview button--quickview not-icon leading-normal empty:hidden hidden lg:block z-50 h-full" 9904 :class="$store.xQuickView && $store.xQuickView.show_atc_button ? 'pt-1.5 pb-1.5 pl-1.5 pr-1.5 md:pt-2.5 md:pb-2.5 md:pl-2.5 md:pr-2.5 rounded-full button-disable-effect' : 'w-full pt-3 pb-3 button-solid'" 9905 x-customer-event-data="{ 9906 "product": { 9907 "title": "EliteAir Multi-Style Dryer Gen 2", 9908 "listName": "Best Sellers", 9909 "sku": "10603065803062", 9910 "currencyCode": "USD", 9911 "price": 15900, 9912 "vendor": "Calista Tools" 9913 } 9914 }" 9915 aria-label="Button quickview" 9916 > 9917 <span x-show="$store.xQuickView && $store.xQuickView.show_atc_button" class="w-4 h-4 flex items-center"><svg width="100%" height="100%" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg" style="fill: none;"> 9918 <path d="M28 8 a20 20 0 1 1 0 40 a20 20 0 1 1 0 -40 M42 42 L58 58 M28 20 V36 M20 28 H36" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" fill="none"/> 9919 </svg> 9920</span> 9921 <span x-show="$store.xQuickView && !$store.xQuickView.show_atc_button" class="flex items-center justify-center"> 9922 9923<div class="flex justify-center "> 9924 9925 <span class="button-text " x-text="$store.xQuickView && $store.xQuickView.buttonLabel"></span> 9926 9927 9928</div> 9929 </span> 9930 </button> 9931 <button @click.prevent='$store.xQuickView && $store.xQuickView.load("/collections/best-sellers/products/eliteair-multi-style-dryer-gen-2", $el, "template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb76
993156-10603065803062-collection_DqgeTW"); $store.xQuickView && $store.xQuickView.open(); $store.xCustomerEvent.fire("product_selected", $el);' 9932 class="button label-btn-quickview button-disable-effect not-icon button--quickview rounded-full lg:leading-snug none_border lg:hidden h-full pt-2 pb-2 pl-2 pr-2" 9933 aria-label="Button quickview" 9934 x-customer-event-data="{ 9935 "product": { 9936 "title": "EliteAir Multi-Style Dryer Gen 2", 9937 "listName": "Best Sellers", 9938 "sku": "10603065803062", 9939 "currencyCode": "USD", 9940 "price": 15900, 9941 "vendor": "Calista Tools" 9942 } 9943 }" 9944 > 9945 <span class="w-4 h-4 md:w-5 md:h-5 flex items-center"><svg width="100%" height="100%" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg" style="fill: none;"> 9946 <path d="M28 8 a20 20 0 1 1 0 40 a20 20 0 1 1 0 -40 M42 42 L58 58 M28 20 V36 M20 28 H36" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" fill="none"/> 9947 </svg> 9948</span> 9949 </button> 9950 </div> 9951 </div> 9952 </div> 9953 9954 </a> 9955 <div class="card-info no-collage:mb-2 md:list-layout:hidden pt-5 text-left md:list-layout:pt-0 md:list-layout:lg:pt-0 md:list-layout:text-left"> 9956 9957 <div class="below-image ltr flex flex-wrap justify-left md:list-layout:justify-start rtl:md:list-layout:justify-end mb-2.5 gap-1 empty:hidden"></div><h3 class="card__heading h5 no-collage:mb-2 mb-2.5 leading-tight" id="title-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10603065803062"> 9958 <a href="/collections/best-sellers/products/eliteair-multi-style-dryer-gen-2" 9959 class="x-card-title full-unstyled-link link-product-variant text-[rgba(var(--colors-heading))] hover:text-[rgba(var(--colors-text-link))] cursor-pointer duration-200 p-break-words" 9960 @click='$store.xCustomerEvent.fire("product_selected", $el)' 9961 x-customer-event-data="{ 9962 "product": { 9963 "title": "EliteAir Multi-Style Dryer Gen 2", 9964 "listName": "Best Sellers", 9965 "sku": "10603065803062", 9966 "currencyCode": "USD", 9967 "price": 15900, 9968 "vendor": "Calista Tools" 9969 } 9970 }" 9971 > 9972 EliteAir Multi-Style Dryer Gen 2 9973 </a> 9974 </h3> 9975 9976 9977 9978 9979 9980 9981 9982 9983<div 9984 class="x-review-product yotpo 9985 9986 flex w-full items-center rating-review justify-start ltr mb-2.5 md:list-layout:justify-start 9987 " 9988> 9989 9990<div class="yotpo bottomLine" data-product-id="10603065803062"> </div> 9991</div> 9992 9993 9994 9995<div class="x-card-price flex items-center mb-2.5 flex-wrap gap-1 justify-left rtl:flex-row-reverse md:rtl:list-layout:flex-row md:list-layout:justify-start"> 9996 9997 9998 <div class=" price leading-none "> 9999 <div class="target-price hidden">15900</div> 10000 <div class="target-compare-at-price hidden"></div> 10001 10002 10003 10004 10005<p class="price"> 10006 $159 10007 </p> 10008 10009 10010</div> 10011 10012 10013 <div class="leading-none next-price flex flex-wrap gap-x-1 gap-y-2 empty:hidden"></div> 10014 </div> 10015 10016 <template x-if="localStorage.getItem('selectedStore')"> 10017 <div id="x-availability-notice-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656" class="flex mb-2.5 items-center flex-wrap gap-1 justify-left rtl:flex-row-reverse md:rtl:list-layout:flex-row md:list-layout:justify-start justify-left" x-show="$store.xStoreSelector?.canShow('10603065803062', [166997852220, 152388730949, 155590623292, 137730523205, 137730490437, 159801704508, 137730457669, 137698115653, 261925437500, 500855898422, 525057982774, 137909567557, 137844228165])"> 10018 10019<div 10020 class="text-availability-notice" 10021 x-data='{ 10022 locations: [], 10023 pickupLocations: [], 10024 pickupAvailabilites: [] 10025 }' 10026 x-show="$store.xStoreSelector?.selectedStore && locations.includes($store.xStoreSelector?.getStore())" 10027> 10028 <style data-shopify> 10029 .text-availability-notice { 10030 font-size: 0.669375rem; 10031 } 10032 @media (min-width: 768px) { 10033 .text-availability-notice { 10034 font-size: 0.74375rem; 10035 } 10036 } 10037 </style> 10038 <div x-cloak x-show="$store.xStoreSelector?.checkAvailability(pickupLocations, pickupAvailabilites)" class="inventory-in-stock-status flex flex-row items-center gap-[3px]"> 10039 <span class="flex h-4 w-4 relative">
10040 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 10041 <rect width="16" height="16" rx="8" fill="currentColor" fill-opacity="0.2"/> 10042 <rect x="4" y="4" width="8" height="8" rx="4" fill="currentColor"/> 10043 </svg> 10044 10045</span><span x-text="'Available for pickup at ' + $store.xStoreSelector?.getStoreText()"> </span> 10046 </div> 10047 <div x-cloak x-show="! $store.xStoreSelector?.checkAvailability(pickupLocations, pickupAvailabilites)" class="inventory-out-of-stock-status flex flex-row items-center gap-[3px]"> 10048 <span class="flex h-4 w-4 relative"> 10049 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 10050 <rect width="16" height="16" rx="8" fill="currentColor" fill-opacity="0.2"/> 10051 <rect x="4" y="4" width="8" height="8" rx="4" fill="currentColor"/> 10052 </svg> 10053 10054</span><span x-text="'Out of stock at ' + $store.xStoreSelector?.getStoreText()"> </span> 10055 </div> 10056</div></div> 10057 </template> 10058 <div class="bottom-card ltr flex flex-wrap justify-left md:list-layout:justify-start rtl:md:list-layout:justify-end mb-2.5 gap-1 empty:hidden"></div> 10059 </div> 10060 </div> 10061 <div 10062 id="x-product-template-10603065803062-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-1-4" 10063 class="list-layout:lg:w-3/4 md:list-layout:w-3/5 list-layout:md:pl-0 rtl:list-layout:md:pl-5 rtl:list-layout:md:pr-0 text-left" 10064 > 10065 10066 10067 <div class="hidden" @init-run="document.addEventListener('eurus:cart:items-changed', () => { 10068 Alpine.store('xUpdateVariantQuanity').updateQuantity('template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656', '/products/eliteair-multi-style-dryer-gen-2'); 10069 });"></div> 10070 <div 10071 id="current-variant-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10603065803062-collection_DqgeTW" 10072 class="current-variant hidden" 10073 > 10074 10075 53708547391798 10076 10077 </div> 10078 10079 <div class="card-info x-highlight-icon mt-2.5"> 10080 <div 10081 class="flex flex-wrap gap-[3px] rtl:flex-row-reverse ltr pr-0 pl-0 justify-left items-center list-layout:mt-4 list-layout:justify-start rtl:list-layout:justify-end empty:hidden" 10082 x-data="{setPosition(el) { 10083 parentEl = el.closest('.x-highlight-icon').getBoundingClientRect(); 10084 el.style.setProperty('--maxwidth-tooltip', parentEl.width - 20 + 'px'); 10085 elRect = el.getBoundingClientRect(); 10086 let spacingLeft = elRect.left - parentEl.left; 10087 if (spacingLeft < 0) { 10088 el.style.setProperty('--left-tooltip', Math.abs(spacingLeft) + 'px'); 10089 } 10090 let spacingRight = parentEl.right - elRect.right; 10091 if (spacingRight < 0) { 10092 el.style.setProperty('--left-tooltip', spacingRight + 'px'); 10093 } 10094 }}" 10095 @init-run.window="$el.innerHTML = $el.innerHTML.trim();" 10096> 10097 � 10098 � 10099 � 10100 �</div> 10101 </div> 10102 10103 10104 <template x-if="$store.xQuickView"><div x-data="xProductCart" x-show="$store.xQuickView.show_atc_button && ($store.xQuickView.btn_atc_bottom || !$store.xQuickView.atc_btn_image_desktop)" 10105 class="card-info bottom_atc md:list-layout:hidden hide-icon" 10106 :class="if($store.xQuickView.show_atc_button){ return ($store.xQuickView.btn_atc_bottom ? '' : 'hidden') + ($store.xQuickView.atc_btn_image_desktop ? ' lg:hidden' : ' lg:block')}" 10107 x-cloak 10108 > 10109 10110<form method="post" action="/cart/add" id="product-form-choose-option10603065803062204" accept-charset="UTF-8" class="form h-full" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form" x-ref="product_form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /><input type="hidden" aria-hidden="true" name="id" value="53708547391798"> 10111 10112 10113 <button 10114 type="submit" 10115 name="add"@click.prevent="errorMessage == false && addToCart($event)"data-id="template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-10603065803062-collection_DqgeTW" 10116 class="button button--quickview button-solid not-icon leading-normal mt-2 w-full pr-5 pl-5 pt-2.5 pb-2.5 lg:pt-3 lg:pb-3 h-full z-[15] text-[12px] lg:text-[14px] lg:-translate-x-0 disabled:cursor-not-allowed disable-action-btn-animation disabled:opacity-60" 10117 10118 10119 :class="errorMessage && 'opacity-60 cursor-not-allowed'"aria-label="Add to cart" 10120 >
10121 <span :class="{ 'lg:block opacity-0 is-focus-button' : loading, 'hidden' : errorMessage}"> 10122 10123 10124 <span class="flex items-center justify-center"> 10125 10126<div class="flex justify-center "> 10127 10128 10129 10130 <span class="button-text is-focus-button:opacity-0">Add to cart</span> 10131 10132 10133 10134 10135</div> 10136 </span> 10137 </span> 10138 <div 10139 class="flex gap-x-2 items-center justify-center" 10140 role="alert" 10141 x-cloak 10142 x-show="errorMessage" 10143 > 10144 Sold out 10145 </div> 10146 <div class="lg:inline-block w-4 h-4 md:w-5 md:h-5 absolute top-[calc(50%-8px)] left-[calc(50%-8px)] md:top-[calc(50%-10px)] md:left-[calc(50%-10px)]" x-show="loading" x-cloak> 10147 10148 <svg class="animate-spin rounded-full" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"> 10149 <path transform="translate(0 512) scale(0.1 -0.1)" fill="currentColor" d="M2474 4676 c-43 -19 -101 -81 -115 -123 -18 -56 -7 -145 24 -190 52 -75 79 -85 262 -99 90 -7 207 -22 260 -33 436 -92 824 -352 1070 -721 521 -781 321 -1824 -453 -2358 -501 -345 -1172 -393 -1715 -121 -700 350 -1075 1118 -917 1876 37 180 86 305 209 536 51 96 54 147 15 226 -37 73 -86 104 -174 109 -105 6 -151 -24 -224 -145 -137 -230 -241 -543 -276 -833 -13 -110 -13 -355 1 -478 52 -475 268 -922 614 -1267 351 -352 787 -560 1284 -615 171 -19 442 -8 615 24 423 80 802 282 1111 591 407 407 625 931 625 1505 0 574 -218 1098 -625 1505 -296 296 -654 493 -1055 579 -210 45 -470 61 -536 32z"/> 10150 </svg> 10151 10152 10153 </div> 10154 </button><input type="hidden" name="product-id" value="10603065803062" /><input type="hidden" name="section-id" value="template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656" /></form> 10155 </div></template> 10156 10157 </div> 10158</div> 10159</div> 10160 10161 </div> 10162 10163<div class=" md:hidden items-center flex w-full gap-5 mt-2.5 md:mt-5 md:w-3/4 ml-auto mr-auto"> 10164 <div class="splide-progress inline-block grow rounded-md"><style data-shopify>.splide-progress-bar-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-collection_DqgeTW { 10165 width: 50.0%; 10166 } 10167 @media (min-width: 768px) { 10168 .splide-progress-bar-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-collection_DqgeTW { 10169 width: 100.0%; 10170 } 10171 }</style><div class="splide-progress-bar-template--26875474280758__e32885d8-0a8f-4c4f-8801-377d01cb7656-collection_DqgeTW splide-progress-bar rounded-md"></div> 10172 </div> 10173 </div></div> 10174 </div> 10175 </div> 10176 </div> 10177 </div> 10178 </div> 10179</div></div><div class="pl-5 pr-5 flex justify-center pt-1.5 pb-1.5 md:pb-3 md:pt-3"> 10180 10181 <a 10182 x-cloak 10183 x-show="view_all_link" 10184 class="nav-link font-medium effect-inline relative flex items-center hover-text-link empty:hidden cursor-pointer gap-1" 10185 :href="view_all_link" 10186 :class="'opacity-70 hover:cursor-not-allowed' && view_all_link" 10187 > 10188 View all products<span class="w-2 h-2 inline-block mt-0.5 rtl:rotate-180" role="link" aria-label="arrow"><svg width="100%" height="100%" viewBox="0 0 8 9" xmlns="http://www.w3.org/2000/svg"> 10189 <path d="M4.5.643 7.5 4.5 4.5 8.357M.5.643 3.5 4.5.5 8.357" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/> 10190 </svg> 10191</span> 10192 </a> 10193 10194 </div></div>
10195<script src="//calistatools.com/cdn/shop/t/144/assets/featured-collection.js?v=166203110154732063391782330849" defer></script>
10195 10196 10197 10198</section><section id="shopify-section-template--26875474280758__image_with_text_apCd4k" class="shopify-section section section-image-with-text x-section"> 10199<style data-shopify>.section-padding-template--26875474280758__image_with_text_apCd4k { 10200 padding-top: 0px; 10201 padding-bottom: 0px; 10202 } 10203 @media (min-width: 768px) { 10204 .section-padding-template--26875474280758__image_with_text_apCd4k { 10205 padding-top: 0px; 10206 padding-bottom: 0px; 10207 } 10208 } 10209 .iwt--template--26875474280758__image_with_text_apCd4k { 10210 10211 background: #fefbf9; 10212 --background-color: 254, 251, 249; 10213 10214 } 10215 .dark .iwt--template--26875474280758__image_with_text_apCd4k { 10216 10217 background: rgb(var(--colors-background-secondary)); 10218 --background-color: var(--colors-background-secondary); 10219 10220 }.mobile-template--26875474280758__image_with_text_apCd4k-natural { 10221 padding-bottom: 133.29999999999998%; 10222 }.border-radius-template--26875474280758__image_with_text_apCd4k { 10223 10224 10225 10226 } 10227 @media screen and (min-width: 768px) {.desktop-template--26875474280758__image_with_text_apCd4k-natural { 10228 padding-bottom: 133.29999999999998%; 10229 }} 10230 .border--template--26875474280758__image_with_text_apCd4k, .border--template--26875474280758__image_with_text_apCd4k:before { 10231 10232 --colors-line-and-border: var(--colors-line-and-border-base) 10233 10234 } 10235 .dark .border--template--26875474280758__image_with_text_apCd4k, .dark .border--template--26875474280758__image_with_text_apCd4k:before { 10236 10237 --colors-line-and-border: var(--colors-line-and-border-base) 10238 10239 } 10240 .icon--template--26875474280758__image_with_text_apCd4k { 10241 width: 24.5px; 10242 height: 24.5px; 10243 min-width: 24.5px; 10244 min-height: 24.5px; 10245 10246 color: #33322E; 10247 10248 } 10249 @media (min-width: 1024px){ 10250 .icon--template--26875474280758__image_with_text_apCd4k { 10251 width: 35px; 10252 height: 35px; 10253 min-width: 35px; 10254 min-height: 35px; 10255 } 10256 } 10257 .dark .icon--template--26875474280758__image_with_text_apCd4k { 10258 10259 color: rgb(var(--colors-text)); 10260 10261 } 10262 10263 .dark .color-text--template--26875474280758__image_with_text_apCd4k { 10264 10265 --colors-text: var(--colors-text-secondary); 10266 10267 } 10268 .columns-header-color--template--26875474280758__image_with_text_apCd4k { 10269 10270 --colors-heading: var(--colors-heading-secondary); 10271 10272 } 10273 .dark .columns-header-color--template--26875474280758__image_with_text_apCd4k { 10274 10275 --colors-heading: var(--colors-heading-secondary); 10276 10277 }</style><div class="ltr section-padding-template--26875474280758__image_with_text_apCd4k x-pgw page-width pr-5 pl-5"> 10278 <div class="image-with-text text-[rgb(var(--colors-text))] desktop-medium image-position-mobile-left border-radius-template--26875474280758__image_with_text_apCd4k normal image-position-left iwt--template--26875474280758__image_with_text_apCd4k" 10279 > 10280 10281 <div class="iwt-image border-radius-template--26875474280758__image_with_text_apCd4k md:w-1/2 promotion w-full flex"> 10282 <div class="promotion w-full relative md:h-auto min-h-[100%] md:promotion:h-[550px] md:promotion:pb-0 h-[400px] md:h-auto"> 10283 <div class="flex w-full h-full relative md:promotion:relative"> 10284 10285 10286 10287 10288 <div class="border-radius-template--26875474280758__image_with_text_apCd4k w-full overflow-hidden h-full"> 10289 <parallax-image class="block h-full w-full"> 10290 <parallax-movement x-data="xParallax" x-intersect.once.margin.200px="load(true)"> 10291 <img 10292 class="h-full w-full object-cover border-radius-template--26875474280758__image_with_text_apCd4k animate_transition_slide__image animate-Xpulse skeleton-image" 10293 srcset="//calistatools.com/cdn/shop/files/eiteair-lifestyle-hpCallout-3x4.webp?v=1782770079&width=450 450w, 10294 //calistatools.com/cdn/shop/files/eiteair-lifestyle-hpCallout-3x4.webp?v=1782770079&width=750 750w, 10295 //calistatools.com/cdn/shop/files/eiteair-lifestyle-hpCallout-3x4.webp?v=1782770079&width=900 900w, 10296 //calistatools.com/cdn/shop/files/eiteair-lifestyle-hpCallout-3x4.webp?v=1782770079&width=1100 1100w, 10297 //calistatools.com/cdn/shop/files/eiteair-lifestyle-hpCallout-3x4.webp?v=1782770079&width=1500 1500w, 10298 //calistatools.com/cdn/shop/files/eiteair-lifestyle-hpCallout-3x4.webp?v=1782770079 1000w" 10299 src="//calistatools.com/cdn/shop/files/eiteair-lifestyle-hpCallout-3x4.webp?v=1782770079&width=1500" 10300 alt="" 10301 10302 10303 loading="lazy" 10304 10305 10306 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); this.closest('.animate_transition_slide__image')?.classList.add('active'); });" 10307 sizes=" 10308 10309 10310 (min-width: 1400px) 700.0px, (min-width: 768px) 50vw, 10311 10312 10313 100vw" 10314 width="1000" 10315 height="1333" 10316 style="object-position: 37.5% 44.043%" 10317 > 10318 </parallax-movement> 10319 </parallax-image> 10320 </div> 10321 10322 10323 10324 10325 </div> 10326 </div> 10327 </div> 10328 <div class="md:w-1/2 w-full flex justify-center md:justify-start iwt-content-no-overlap items-center rtl:md:justify-end" 10329 > 10330 <div class="iwt-content md:flex-1 w-full lg:pl-24 lg:pr-24"><style data-shopify>.heading-size--heading_6bjpMF { 10331 font-size: 1.215rem; 10332 } 10333 .color-text-heading_6bjpMF { 10334 10335 10336 } 10337 .dark .color-text-heading_6bjpMF { 10338 10339 --colors-heading: var(--colors-heading-secondary); 10340 10341 10342 --colors-text: var(--colors-text-secondary); 10343 10344 } 10345 @media (min-width: 768px) { 10346 .heading-size--heading_6bjpMF { 10347 font-size: 2.025rem; 10348 } 10349 }</style> 10350 <div class="x-block-text color-text-heading_6bjpMF text-[rgb(var(--colors-text))] w-full mt-4 text-start rtl:text-right" > 10351 10352 <div class="overflow-hidden" x-intersect.once="$el.querySelector('.anm-move-up')?.classList.add('active-anm-heading')"> 10353 <p class="font-medium anm-move-up">The one-tool routine</p> 10354 </div> 10355 10356 10357 <div class="mt-2 mb-1.5 md:mt-2.5 md:mb-3"> 10358 10359 10360 10361<style data-shopify> 10362 10363 .heading-heading_6bjpMF { 10364 --color-highlight: #a6586b; 10365 } 10366 10367 .dark .heading-heading_6bjpMF { 10368 10369 --color-highlight: rgb(145, 180, 116); 10370 10371 } 10372</style> 10373 10374 10375 10376 10377 <div class="overflow-hidden" x-intersect.once="$el.querySelector('.anm-move-up')?.classList.add('active-anm-heading'); setTimeout(() => { $el.querySelector('.anm-move-up')?.classList.remove('anm-move-up') }, 600)"> 10378 10379 10380 10381 <h2 10382 class='heading-heading_6bjpMF h2 block anm-move-up heading-size--heading_6bjpMF'> 10383 10384 10385 10386 One Tool. Every Look. 10387 10388 10389 </h2> 10390 10391 10392 </div> 10393 10394 10395 </div> 10396 10397 10398 10399 <div class="rte"><p>The EliteAir Multi-Styler Gen 2 moves effortlessly from a smooth blowout to soft curlsâwithout turning your counter into a tool drawer.</p></div> 10400 10401 </div> 10402 10403 10404 <div class="x-block-columns-container mt-2 grid grid-cols-1 md:grid-cols-2 gap-2.5 "> 10405 10406 10407 <style data-shopify> 10408 .heading-columns_79QKxx { 10409 font-size: 0.9rem; 10410 } 10411 @media (min-width: 767px){ 10412 .heading-columns_79QKxx { 10413 font-size: 1.125rem; 10414 } 10415 } 10416 </style> 10417 <div class="x-block-columns pt-5 pb-5 pl-5 pr-5 relative grid-item flex flex-row border border--template--26875474280758__image_with_text_apCd4k 10418 items-center justify-left col-span-1 md:col-span-1 rounded-none border-0" 10419 > 10420 10421
10422 <span class="inline-block icon--template--26875474280758__image_with_text_apCd4k self-center"> 10423 10424 10425 <img 10426 src="//calistatools.com/cdn/shop/files/calista-check-circle-icon-33322e-thin.svg?v=1782772660&width=35" 10427 alt="" 10428 loading="lazy" 10429 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 10430 width="1024" 10431 height="1024" 10432 style="object-position: 48.242% 51.66%" 10433 class="object-cover w-full h-full animate-Xpulse skeleton-image" 10434 > 10435 10436 10437 </span> 10438 10439 10440 <div class="pl-2.5 pr-2.5"> 10441 10442 10443 <div class="color-text--template--26875474280758__image_with_text_apCd4k rte text-left p-break-words text-[rgb(var(--colors-text))]"> 10444 <p>Ultra-light attachments</p> 10445 </div> 10446 10447 </div> 10448 </div> 10449 10450 10451 10452 10453 <style data-shopify> 10454 .heading-columns_jAG3E7 { 10455 font-size: 0.9rem; 10456 } 10457 @media (min-width: 767px){ 10458 .heading-columns_jAG3E7 { 10459 font-size: 1.125rem; 10460 } 10461 } 10462 </style> 10463 <div class="x-block-columns pt-5 pb-5 pl-5 pr-5 relative grid-item flex flex-row border border--template--26875474280758__image_with_text_apCd4k 10464 items-center justify-left col-span-1 md:col-span-1 rounded-none border-0" 10465 > 10466 10467 10468 <span class="inline-block icon--template--26875474280758__image_with_text_apCd4k self-center"> 10469 10470 10471 <img 10472 src="//calistatools.com/cdn/shop/files/calista-check-circle-icon-33322e-thin.svg?v=1782772660&width=35" 10473 alt="" 10474 loading="lazy" 10475 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 10476 width="1024" 10477 height="1024" 10478 style="object-position: 48.242% 51.66%" 10479 class="object-cover w-full h-full animate-Xpulse skeleton-image" 10480 > 10481 10482 10483 </span> 10484 10485 10486 <div class="pl-2.5 pr-2.5"> 10487 10488 10489 <div class="color-text--template--26875474280758__image_with_text_apCd4k rte text-left p-break-words text-[rgb(var(--colors-text))]"> 10490 <p>Wide temperature range</p> 10491 </div> 10492 10493 </div> 10494 </div> 10495 10496 10497 10498 10499 <style data-shopify> 10500 .heading-columns_QDw6Pb { 10501 font-size: 0.9rem; 10502 } 10503 @media (min-width: 767px){ 10504 .heading-columns_QDw6Pb { 10505 font-size: 1.125rem; 10506 } 10507 } 10508 </style> 10509 <div class="x-block-columns pt-5 pb-5 pl-5 pr-5 relative grid-item flex flex-row border border--template--26875474280758__image_with_text_apCd4k 10510 items-center justify-left col-span-1 md:col-span-1 rounded-none border-0" 10511 > 10512 10513 10514 <span class="inline-block icon--template--26875474280758__image_with_text_apCd4k self-center"> 10515 10516 10517 <img 10518 src="//calistatools.com/cdn/shop/files/calista-check-circle-icon-33322e-thin.svg?v=1782772660&width=35" 10519 alt="" 10520 loading="lazy" 10521 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 10522 width="1024" 10523 height="1024" 10524 style="object-position: 48.242% 51.66%" 10525 class="object-cover w-full h-full animate-Xpulse skeleton-image" 10526 > 10527 10528 10529 </span> 10530 10531 10532 <div class="pl-2.5 pr-2.5"> 10533 10534 10535 <div class="color-text--template--26875474280758__image_with_text_apCd4k rte text-left p-break-words text-[rgb(var(--colors-text))]"> 10536 <p>Healthy, frizz-free finish</p> 10537 </div> 10538 10539 </div> 10540 </div> 10541 10542 10543 10544 10545 <style data-shopify> 10546 .heading-columns_rhBjxY { 10547 font-size: 0.9rem; 10548 } 10549 @media (min-width: 767px){ 10550 .heading-columns_rhBjxY { 10551 font-size: 1.125rem; 10552 } 10553 } 10554 </style> 10555 <div class="x-block-columns pt-5 pb-5 pl-5 pr-5 relative grid-item flex flex-row border border--template--26875474280758__image_with_text_apCd4k 10556 items-center justify-left col-span-1 md:col-span-1 rounded-none border-0" 10557 > 10558 10559
10560 <span class="inline-block icon--template--26875474280758__image_with_text_apCd4k self-center"> 10561 10562 10563 <img 10564 src="//calistatools.com/cdn/shop/files/calista-check-circle-icon-33322e-thin.svg?v=1782772660&width=35" 10565 alt="" 10566 loading="lazy" 10567 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 10568 width="1024" 10569 height="1024" 10570 style="object-position: 48.242% 51.66%" 10571 class="object-cover w-full h-full animate-Xpulse skeleton-image" 10572 > 10573 10574 10575 </span> 10576 10577 10578 <div class="pl-2.5 pr-2.5"> 10579 10580 10581 <div class="color-text--template--26875474280758__image_with_text_apCd4k rte text-left p-break-words text-[rgb(var(--colors-text))]"> 10582 <p>Dry, curl & blowout in one</p> 10583 </div> 10584 10585 </div> 10586 </div> 10587 10588 10589 10590 10591 <style data-shopify> 10592 .heading-columns_nTLYWJ { 10593 font-size: 1.17rem; 10594 } 10595 @media (min-width: 767px){ 10596 .heading-columns_nTLYWJ { 10597 font-size: 1.4625rem; 10598 } 10599 } 10600 </style> 10601 <div class="x-block-columns pt-5 pb-5 pl-5 pr-5 relative grid-item flex flex-row border border--template--26875474280758__image_with_text_apCd4k 10602 items-center justify-left col-span-1 md:col-span-2 rounded-none border-0" 10603 > 10604 10605 <div class="pl-2.5 pr-2.5"> 10606 10607 <p class="h3 columns-header-color--template--26875474280758__image_with_text_apCd4k empty:hidden p-break-words heading-columns_nTLYWJ text-left leading-tight"> 10608 10609 10610 10611 10612<style data-shopify> 10613 10614 .dark .heading-columns_nTLYWJ { 10615 10616 --color-highlight: rgb(145, 180, 116); 10617 10618 } 10619</style> 10620 10621 10622 10623 10624 10625 10626 10627 10628 $159 10629 10630 10631 10632 10633 10634 10635 10636 </p> 10637 10638 10639 <div class="color-text--template--26875474280758__image_with_text_apCd4k rte text-left p-break-words text-[rgb(var(--colors-text))]"> 10640 <p>Free US shipping included</p> 10641 </div> 10642 10643 </div> 10644 </div> 10645 10646 10647 10648 10649 </div> 10650 10651 10652 <style data-shopify> 10653 .button-button_aHnd6d, .button-button_aHnd6d *:before { 10654 10655 10656 10657 10658 10659 10660 10661 } 10662 .dark .button-button_aHnd6d, .dark .button-button_aHnd6d *:before { 10663 10664 --colors-button: 255, 255, 255; 10665 10666 10667 --colors-button-text: 40, 41, 40; 10668 10669 10670 --colors-button-hover: rgb(255, 255, 255); 10671 10672 10673 --colors-button-text-hover: 40, 41, 40; 10674 10675 10676 --colors-secondary-button: 255, 255, 255; 10677 --colors-line-secondary-button: 255, 255, 255; 10678 10679 10680 --background-secondary-button: transparent; 10681 10682 10683 --colors-text-link: 145, 180, 116; 10684 10685 } 10686 </style> 10687 <div class="button-button_aHnd6d mb-9 md:mb-4 flex justify-start rtl:justify-right mt-4 md:mt-8" 10688 10689 > 10690 10691 <a class="button button-solid leading-normal empty:hidden text-center pl-7 pr-7 pt-2.5 pb-2.5 md:pl-8 md:pr-8 md:pt-3 md:pb-3" href="/products/eliteair-multi-style-dryer-gen-2"> 10692 10693<div class="flex justify-center "> 10694 10695 10696
10697 <span class="button-text is-focus-button:opacity-0">SHOP ELITEAIR</span> 10698 10699 10700 10701 10702</div> 10703 </a> 10704 10705 </div> 10706 10707 10708 10709 </div> 10710 </div> 10711 </div> 10712</div> 10713 10714</section><section id="shopify-section-template--26875474280758__video_shopping_8CyKxn" class="shopify-section section section-video-shopping x-section"> 10715<style data-shopify>#shopify-section-template--26875474280758__video_shopping_8CyKxn .card-product:not(.recommendations) { 10716 background: rgba(var(--colors-background)); 10717 } 10718 #shopify-section-template--26875474280758__video_shopping_8CyKxn{ 10719 10720 --background-color: 255,255,255; 10721 background: #ffffff; 10722 10723 } 10724 .dark #shopify-section-template--26875474280758__video_shopping_8CyKxn{background: #282928; 10725 --background-color: 40,41,40;} 10726 10727 .dark .section--template--26875474280758__video_shopping_8CyKxn { 10728 10729 --colors-heading: 255, 255, 255; 10730 10731 } 10732 10733 h3.product-card-heading { 10734 --colors-heading: 51,50,46; 10735 } 10736 10737 .dark h3.product-card-heading { 10738 10739 --colors-heading: 255,255,; 10740 10741 } 10742 @media (min-width: 768px) { 10743 .gap--template--26875474280758__video_shopping_8CyKxn { 10744 gap: 10px; 10745 } 10746 10747 } 10748 @media (max-width: 767px) { 10749 .gap-mobile--template--26875474280758__video_shopping_8CyKxn { 10750 gap: 10px; 10751 } 10752 } 10753 .section-padding-template--26875474280758__video_shopping_8CyKxn { 10754 padding-top: 28px; 10755 padding-bottom: 28px; 10756 } 10757 @media (min-width: 768px) { 10758 .section-padding-template--26875474280758__video_shopping_8CyKxn { 10759 padding-top: 72px; 10760 padding-bottom: 72px; 10761 } 10762 }</style><div class=" x-pgw page-width pr-5 pl-5 mt-auto mb-auto mr-auto ml-auto"> 10763 <div class="divider mt-auto mb-auto mr-auto ml-auto border-t hidden md:block"></div> 10764</div> 10765<div x-data="{ intersect: false }" x-intersect.once="intersect = true" class="section--template--26875474280758__video_shopping_8CyKxn x-container-video-shopping relative section-padding-template--26875474280758__video_shopping_8CyKxn"> 10766 <div class="x-block-video-shopping-header w-full x-pgw page-width x-pgw page-width empty:hidden text-left rtl:text-right"> 10767 <div class="pb-6 md:pb-0"> 10768 10769 <div class="mb-1.5 overflow-hidden" x-intersect.once="$el.querySelector('.anm-move-up')?.classList.add('active-anm-heading')"> 10770 <p class="subheading rte anm-move-up">Transformative tools our customers love.</p> 10771 </div> 10772 10773 10774 10775 <style data-shopify> 10776 .heading-template--26875474280758__video_shopping_8CyKxn { 10777 font-size: 1.215rem; 10778 } 10779 @media (min-width: 767px){ 10780 .heading-template--26875474280758__video_shopping_8CyKxn { 10781 font-size: 2.025rem; 10782 } 10783 } 10784 </style> 10785 10786 10787 10788<style data-shopify> 10789 10790 .dark .heading-template--26875474280758__video_shopping_8CyKxn { 10791 10792 --color-highlight: rgb(145, 180, 116); 10793 10794 } 10795</style> 10796 10797 10798 10799 10800 <div class="overflow-hidden" x-intersect.once="$el.querySelector('.anm-move-up')?.classList.add('active-anm-heading'); setTimeout(() => { $el.querySelector('.anm-move-up')?.classList.remove('anm-move-up') }, 600)"> 10801 10802 10803 10804 <h2 10805 class='heading-template--26875474280758__video_shopping_8CyKxn p-break-words h2 block leading-tight anm-move-up'> 10806 10807 10808 10809 Real Hair. Real Results. 10810 10811 10812 </h2> 10813 10814 10815 </div> 10816 10817 10818 10819 10820 </div> 10821 </div> 10822 10823 <div 10824 id="x-video-shopping-template--26875474280758__video_shopping_8CyKxn" 10825 class="video-shopping overflow-hidden x-splide visible splide md:mt-4 lg:mt-8 mr-auto ml-auto x-pgw page-width" 10826 x-data-slider="template--26875474280758__video_shopping_8CyKxn" 10827 x-intersect.once.margin.200px='$store.xSplide.load($el, { 10828 "speed": 1000, 10829 "pagination": false, 10830 "mediaQuery": "min", 10831 "updateOnMove": "true", 10832 "pauseOnHover": true, 10833 "pauseOnFocus": false, 10834 10835 10836 10837 "progressBar": 4, 10838 "breakpoints": { 10839 300: { 10840 "arrows": false, 10841 10842 "gap": "10px", 10843 "focus": "right", 10844 "autoWidth": true, 10845 }, 10846 768: { 10847 "destroy": true, 10848 "perPage": 3, 10849 "perMove": 3, 10850 "gap": "10px", 10851 }, 10852 1024: { 10853 "destroy": true, 10854 "perPage": 4, 10855 "perMove": 4, 10856 "gap": "10px", 10857 } 10858 } 10859 })'x-intersect.once='$el.classList.add("is-ready-to-animate")' 10860 > 10861 <div class="splide__track lg:pl-0 lg:pr-0"> 10862 <div class="splide__list gap--template--26875474280758__video_shopping_8CyKxn md:grid md:grid-cols-3 lg:grid-cols-4 flex w-full pb-[1px]"> 10863 10864 10865 10866 <style data-shopify> 10867 10868 10869 @media (max-width: 767px) { 10870 .preload-slide-mobile--shoppable_video_QLzEd7template--26875474280758__video_shopping_8CyKxn { 10871 margin-right: 10px; 10872 width: 70% 10873 } 10874 } 10875 10876 10877 10878 .x-slide-animation-duration-1 { 10879 --delay-time: 0ms 10880 } 10881 </style> 10882 <div x-data="xVideoShopping" x-slide-index="0" class="group card-video-shopping-shoppable_video_QLzEd7 relative overflow-hidden grid-item splide__slide x-splide-slide
10883 preload-slide-shoppable_video_QLzEd7template--26875474280758__video_shopping_8CyKxn preload-slide-mobile--shoppable_video_QLzEd7template--26875474280758__video_shopping_8CyKxn 10884 " > 10885 10886 <div class="h-full flex flex-col" :class="showSlideListItemInVideoCard ? 'opacity-0 transition-opacity duration-500 ease-in-out' : 'opacity-100 transition-opacity duration-500 ease-in-out'" x-transition.duration.500ms> 10887 <div class="w-full mb-1" id='video--shoppable_video_QLzEd7'> 10888 10889 10890 <div 10891 class="w-full relative overflow-hidden cursor-default external-video aspect-[9/16]" 10892 x-intersect:leave="$store.xVideo.pause($el)" 10893 x-data="{ isHovered: false }" 10894 @click.prevent="$store.xVideo.mp4Thumbnail($el)" 10895 10896 > 10897 10898 10899 <img 10900 srcset="//calistatools.com/cdn/shop/files/preview_images/e6859f51cec34da3a3e47a2543d262e4.thumbnail.0000000000.jpg?v=1781586264&width=375 375w, 10901 //calistatools.com/cdn/shop/files/preview_images/e6859f51cec34da3a3e47a2543d262e4.thumbnail.0000000000.jpg?v=1781586264&width=450 450w, 10902 //calistatools.com/cdn/shop/files/preview_images/e6859f51cec34da3a3e47a2543d262e4.thumbnail.0000000000.jpg?v=1781586264&width=750 750w, 10903 //calistatools.com/cdn/shop/files/preview_images/e6859f51cec34da3a3e47a2543d262e4.thumbnail.0000000000.jpg?v=1781586264&width=900 900w, 10904 //calistatools.com/cdn/shop/files/preview_images/e6859f51cec34da3a3e47a2543d262e4.thumbnail.0000000000.jpg?v=1781586264&width=1100 1100w, 10905 //calistatools.com/cdn/shop/files/preview_images/e6859f51cec34da3a3e47a2543d262e4.thumbnail.0000000000.jpg?v=1781586264&width=1500 1500w, 10906 //calistatools.com/cdn/shop/files/preview_images/e6859f51cec34da3a3e47a2543d262e4.thumbnail.0000000000.jpg?v=1781586264&width=1780 1780w" 10907 sizes="(min-width: 1400px) calc((1400px - (10px * 3)) / 4), 10908 (min-width: 1024px) calc((100vw - (10px * 3)) / 4), 10909(min-width: 768px) calc(100vw / 3),calc(70vw + 20px) 10910" 10911 src="//calistatools.com/cdn/shop/files/preview_images/e6859f51cec34da3a3e47a2543d262e4.thumbnail.0000000000.jpg?v=1781586264&width=1780" 10912 alt="" 10913 class="object-cover z-10 absolute top-0 left-0 h-full w-full img-thumbnail aspect-[9/16] animate-Xpulse skeleton-image" 10914 loading="lazy" 10915 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 10916 width="606" 10917 height="1080" 10918 style="object-position:;" 10919 > 10920 10921 10922 <video x-on:mouseover="isHovered = true" x-on:mouseleave="isHovered = false" :controls="isHovered" playsinline="playsinline" class="w-full h-full absolute top-0 left-0 video object-cover" preload="metadata" loading="lazy"><source src="//calistatools.com/cdn/shop/videos/c/vp/e6859f51cec34da3a3e47a2543d262e4/e6859f51cec34da3a3e47a2543d262e4.HD-1080p-2.5Mbps-86637412.mp4?v=0" type="video/mp4"><img loading="lazy" alt="" src="//calistatools.com/cdn/shop/files/preview_images/e6859f51cec34da3a3e47a2543d262e4.thumbnail.0000000000_1100x.jpg?v=1781586264"></video> 10923 10924 10925 <div class="button-play absolute top-1/2 left-1/2"> 10926 <div class="cursor-pointer absolute z-20 top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[60px] h-[60px] md:w-[60px] md:h-[60px] rounded-full pt-5 pb-5 pl-5 pr-5 bg-[rgba(var(--image-treatment-text),0.06)] hover:bg-[rgba(var(--image-treatment-text),0.1)] bg-opacity-30 disabled:cursor-not-allowed">
10927 <span class="pointer-events-none duration-200 bg-button-play absolute w-4 h-5 md:w-4 md:h-5 top-1/2 left-1/2 -translate-y-1/2 -translate-x-1/2 text-[rgba(var(--image-treatment-text))]"> 10928 10929 <svg class="" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" style="fill: none"> 10930 <path d="M22.49 11.128L6.49 2.12804C6.18 1.95404 5.802 1.95804 5.496 2.13604C5.188 2.31604 5 2.64404 5 3.00004V21C5 21.356 5.188 21.684 5.496 21.864C5.652 21.954 5.826 22 6 22C6.168 22 6.338 21.958 6.49 21.872L22.49 12.872C22.804 12.694 23 12.362 23 12C23 11.638 22.804 11.306 22.49 11.128Z" fill="currentColor"/> 10931 </svg> 10932 10933 10934 </span> 10935 </div> 10936 </div> 10937 10938 10939 10940 10941 </div> 10942 10943 </div> 10944 10945 10946 10947 10948 <div 10949 class="card-product h-full card-bg-template--26875474280758__video_shopping_8CyKxn" 10950 id="x-product-template--choose-option106030658030621" 10951 x-data='xVariantSelectCard($el,"template--26875474280758__video_shopping_8CyKxn", "10603065803062", "/products/eliteair-multi-style-dryer-gen-2", false, false, true, "", "", "", "template--26875474280758__video_shopping_8CyKxn")' 10952 data-url="" 10953 10954 data-option1="Default Title" 10955 10956 > 10957 10958 10959 <div class="flex flex-col card-product hover:cursor-default h-full border border-solid pt-4 pb-4 pl-4 pr-4" 10960 > 10961 <div class="card-product-info-container is-bottom flex flex-row gap-y-2 gap-x-3"> 10962 <div class="product-image w-16 min-w-[64px] lg:w-8 lg:min-w-[32px] xl:w-16 xl:min-w-[64px]"><span 10963 class="relative cursor-pointer" 10964 10965 10966 @click="showSlideListItemInVideoCard = true" 10967 10968 10969 > 10970 10971 <img 10972 srcset="//calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=250 250w, 10973 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=300 300w, 10974 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=375 375w, 10975 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=450 450w, 10976 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=750 750w, 10977 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=900 900w, 10978 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=1100 1100w, 10979 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=1500 1500w, 10980 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=1780 1780w" 10981 class="preview-img object-cover w-full aspect-square animate-Xpulse skeleton-image" 10982 src="//calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=1780" 10983 width="2083" 10984 size="(min-width: 1024px) calc(44vw + 30px), 10985 (min-width: 768px) calc(80vw + 30px), 10986 100vw" 10987 height="2083" 10988 alt="EliteAir Multi-Style Dryer Gen 2" 10989 loading="lazy" 10990 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 10991 /> 10992 10993 </span></div> 10994 <div class="product-info-container flex flex-row gap-x-3 gap-y-2 flex-1" > 10995 <div class="flex-1" > 10996 <div class="mb-2 leading-tight"> 10997 <h3 class="text-[100%] card__heading product-card-heading p-break-words line-clamp-2">
10998 <span 10999 class="full-unstyled-link product-name text-[rgba(var(--colors-heading))] hover:text-[rgba(var(--colors-text-link))] cursor-pointer duration-200 p-break-words" 11000 11001 11002 @click="showSlideListItemInVideoCard = true" 11003 11004 11005 > 11006 EliteAir Multi-Style Dryer Gen 2 11007 </span> 11008 </h3> 11009 </div><div class="x-card-price mt-2 text-left rtl:text-right"> 11010 <div class=" price leading-none flex flex-wrap items-center"> 11011 <div class="target-price hidden">15900</div> 11012 <div class="target-compare-at-price hidden"></div> 11013 11014 11015<p class="price"> 11016 $159 11017 </p> 11018 11019 11020</div> 11021 11022 </div> 11023 </div> 11024 11025 <div 11026 11027 11028 11029 @click="showSlideListItemInVideoCard = true" 11030 11031 11032 class="hover:cursor-pointer pl-2.5 pr-2.5 pt-2.5 pb-2.5 w-[36px] h-[36px] text-[rgb(var(--colors-button-text))] bg-[rgba(var(--colors-button))]" 11033 > 11034 11035 <svg width="100%" height="100%" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg" style="fill: none;"> 11036 <path d="M28 8 a20 20 0 1 1 0 40 a20 20 0 1 1 0 -40 M42 42 L58 58 M28 20 V36 M20 28 H36" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" fill="none"/> 11037 </svg> 11038 11039 11040 </div> 11041 11042 </div> 11043 </div> 11044 11045 </div> 11046 11047 </div> 11048 11049 11050 11051 11052 </div> 11053 11054 <template x-if="intersect"> 11055 <div 11056 x-cloak 11057 :class="{ 11058 'transform translate-y-0 bg-card-product' : showSlideListItemInVideoCard, 11059 'transform translate-y-full bg-[rgba(var(--background-color))]': !showSlideListItemInVideoCard, 11060 'opacity-0' : showSlideProductInVideoCard, 11061 'opacity-100': !showSlideProductInVideoCard 11062 }" 11063 class="product-list-container js-product-container pt-4 pb-4 slide-animation duration-500 ease-in-out overflow-hidden flex flex-col hover:cursor-default absolute top-0 bottom-0 left-0 right-0 border z-20 h-full" 11064 > 11065 <div class="flex justify-end pb-2.5 pl-5 pr-5"> 11066 <div 11067 @click="showSlideListItemInVideoCard = false" 11068 class="js-close-button hover:cursor-pointer rotate-90 pl-2.5 pr-2.5 pt-2.5 pb-2.5 w-[34px] h-[34px] border"> 11069 11070 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid meet"> 11071 <path fill="none" d="M8 1L19 12L8 23" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 11072 </svg> 11073 11074 11075 11076 </div> 11077 </div> 11078 <div class="overflow-y-auto scrollbar-body pl-5 pr-5 mt-auto mb-auto"> 11079 11080 11081 11082 11083 11084 11085 <div 11086 class="card-product card-bg-template--26875474280758__video_shopping_8CyKxn" 11087 id="x-product-template--choose-option10603065803062411" 11088 x-data='xVariantSelectCard($el,"template--26875474280758__video_shopping_8CyKxn", "10603065803062", "/products/eliteair-multi-style-dryer-gen-2", false, false, true, "", "", "", "template--26875474280758__video_shopping_8CyKxn")' 11089 data-url="" 11090 11091 data-option1="Default Title" 11092 11093 > 11094 11095 11096 <div class="flex flex-col card-product hover:cursor-default pt-4 pb-0" 11097 > 11098 <div class="card-product-info-container flex flex-row gap-y-2 gap-x-3"> 11099 <div class="product-image w-20 min-w-[80px]"><span 11100 class="relative" 11101 11102 > 11103 11104 <img 11105 srcset="//calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=250 250w, 11106 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=300 300w, 11107 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=375 375w, 11108 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=450 450w, 11109 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=750 750w, 11110 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=900 900w, 11111 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=1100 1100w, 11112 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=1500 1500w, 11113 //calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=1780 1780w" 11114 class="preview-img object-cover w-full aspect-square animate-Xpulse skeleton-image" 11115 src="//calistatools.com/cdn/shop/files/6.1.2026_EliteAirStyleDryerGen2-09.jpg?v=1781276861&width=1780" 11116 width="2083" 11117 size="(min-width: 1024px) calc(44vw + 30px), 11118 (min-width: 768px) calc(80vw + 30px), 11119 100vw" 11120 height="2083" 11121 alt="EliteAir Multi-Style Dryer Gen 2" 11122 loading="lazy" 11123 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 11124 /> 11125 11126 </span></div> 11127 <div class="product-info-container flex flex-row gap-x-3 gap-y-2 flex-1" > 11128 <div class="flex-1" > 11129 <div class="mb-2 leading-tight"> 11130 <h3 class="text-[100%] card__heading product-card-heading p-break-words line-clamp-2">
11131 <span 11132 class="full-unstyled-link product-name text-[rgba(var(--colors-heading))] duration-200 p-break-words" 11133 11134 > 11135 EliteAir Multi-Style Dryer Gen 2 11136 </span> 11137 </h3> 11138 </div><div class="x-card-price mt-2 text-left rtl:text-right" id="price-choose-option10603065803062411" role="status"> 11139 <div class=" price leading-none flex flex-wrap items-center"> 11140 <div class="target-price hidden">15900</div> 11141 <div class="target-compare-at-price hidden"></div> 11142 11143 11144<p class="price"> 11145 $159 11146 </p> 11147 11148 11149</div> 11150 11151 </div> 11152 </div> 11153 11154 </div> 11155 </div> 11156 11157 11158 11159 11160<div id="choose-options-content"> 11161 <div 11162 id="x-product-template-10603065803062-choose-option10603065803062411" 11163 class="flex items-center w-full h-full pt-6 pb-6" 11164 > 11165 <div 11166 id="choose-options-content-10603065803062411" 11167 class="choose-options-content content-center w-full h-full"x-intersect.once='$store.xCustomerEvent.fire("product_viewed_custom", $el)' 11168 x-customer-event-data="{ 11169 "product": { 11170 "id": 10603065803062, 11171 "selected_variant_id": 53708547391798, 11172 "has_only_default_variant": true, 11173 "title": "EliteAir Multi-Style Dryer Gen 2", 11174 "variant_title": "Default Title", 11175 "sku": "ELITEAIR-2-PINK", 11176 "currencyCode": "USD", 11177 "price": 15900, 11178 "vendor": "Calista Tools", 11179 "category": "" 11180 } 11181 }"> 11182 <div class="w-full max-h-full "> 11183 <div id="ProductInfo-choose-option10603065803062411" class="x-product-data-container w-full text-center md:list-layout:text-left"> 11184 11185<div x-init="document.addEventListener('eurus:cart:items-changed', () => { 11186 Alpine.store('xUpdateVariantQuanity').updateQuantity('choose-option10603065803062411', '/products/eliteair-multi-style-dryer-gen-2'); 11187 });"></div> 11188 <div 11189 11190 x-data="xProductCart('', '')" 11191 > 11192 <div class="choose-option-footer mt-2.5 md:mt-0 gap-x-2.5 md:gap-0"> 11193 11194 <div x-ref='product_form_container' class="button-product" 11195 > 11196 11197 <div><form method="post" action="/cart/add" id="product-form-choose-option10603065803062411" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form" x-ref="product_form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /><input type="hidden" aria-hidden="true" id="update-variant-choose-option10603065803062411" name="id" value="53708547391798"> 11198 11199 11200 <button 11201 11202 id="x-atc-button-choose-option10603065803062411" 11203 role="button" 11204 name="add" 11205 type="submit" 11206 @click="addToCart($event)" 11207 class="relative add_to_cart_button not-icon button button-solid disabled:opacity-60 disabled:cursor-not-allowed disable-action-btn-animation w-full pr-5 pl-5 md:list-layout:w-auto mb-2 pt-3 pb-3 md:pt-3.5 md:pb-3.5" 11208 11209 11210 x-intersect.once.margin.200px="Alpine.store('xCartHelper').validateCart();" 11211 11212 data-available="true" 11213 11214 11215 > 11216 <span class="x-atc-text" :class="loading && 'opacity-0 is-focus-button'"> 11217 <span class="flex items-center justify-center"> 11218 11219<div class="flex justify-center "> 11220 11221 11222 11223 <span class="button-text is-focus-button:opacity-0">Add to cart</span> 11224 11225 11226 11227 11228</div> 11229 </span> 11230 11231 </span> 11232 <div class="inline-block w-5 h-5 absolute top-[calc(50%-10px)] left-[calc(50%-10px)]" x-show="loading" x-cloak> 11233 <svg class="animate-spin rounded-full" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"> 11234 <path transform="translate(0 512) scale(0.1 -0.1)" fill="currentColor" d="M2474 4676 c-43 -19 -101 -81 -115 -123 -18 -56 -7 -145 24 -190 52 -75 79 -85 262 -99 90 -7 207 -22 260 -33 436 -92 824 -352 1070 -721 521 -781 321 -1824 -453 -2358 -501 -345 -1172 -393 -1715 -121 -700 350 -1075 1118 -917 1876 37 180 86 305 209 536 51 96 54 147 15 226 -37 73 -86 104 -174 109 -105 6 -151 -24 -224 -145 -137 -230 -241 -543 -276 -833 -13 -110 -13 -355 1 -478 52 -475 268 -922 614 -1267 351 -352 787 -560 1284 -615 171 -19 442 -8 615 24 423 80 802 282 1111 591 407 407 625 931 625 1505 0 574 -218 1098 -625 1505 -296 296 -654 493 -1055 579 -210 45 -470 61 -536 32z"/> 11235 </svg> 11236 11237 </div> 11238 </button><input type="hidden" name="product-id" value="10603065803062" /><input type="hidden" name="section-id" value="template--26875474280758__video_shopping_8CyKxn" /></form><div class="hidden md:flex items-center gap-x-2 text-left rtl:text-right p-break-words mb-2 mt-2 pl-4 pr-4 pt-3 pb-3 bg-[rgba(var(--color-error),0.2)]" role="alert" x-cloak x-show="errorMessage" @click.away="errorMessage=false"> 11239 <div class="flex">
11240 <span class="w-4 h-4"><svg class="text-[rgba(var(--color-error))]" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 800 800" enable-background="new 0 0 800 800" xml:space="preserve" fill="currentColor"> 11241 <path d="M400 0C179.1 0 0 179.1 0 400c0 220.9 179.1 400 400 400s400-179.1 400-400C800 179.1 620.9 0 400 0zm0 655.333c-31.267 0-52.667-24.1-52.667-55.333 0-32.134 22.3-55.333 52.667-55.333 32.1 0 52.667 23.199 52.667 55.333 0 31.267-20.567 55.333-52.667 55.333zm20.733-211.3c-7.967 27.167-33.066 27.634-41.434 0-9.633-31.866-43.866-152.833-43.866-231.4 0-103.667 129.699-104.167 129.699 0 0 79.034-36.099 203.134-44.399 231.4z"/> 11242 </svg> 11243</span> 11244 </div> 11245 <span class="error_message ml-2 pt-0.5" x-ref="error_message"></span> 11246 </div> 11247 </div> 11248 </div> 11249 <a href="/products/eliteair-multi-style-dryer-gen-2" class="view_product_detail button button-outline w-full pr-5 pl-5 pt-3 pb-3 md:pt-3.5 md:pb-3.5 relative inline-block"> 11250 View full details 11251 </a> 11252 </div> 11253 <div class="flex items-center gap-x-2 text-left rtl:text-right p-break-words md:hidden md:mb-2 mt-2 pl-4 pr-4 pt-3 pb-3 bg-[rgba(var(--color-error),0.2)]" role="alert" x-cloak x-show="errorMessage" @click.away="errorMessage=false"> 11254 <div class="flex"> 11255 <span class="w-4 h-4"><svg class="text-[rgba(var(--color-error))]" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 800 800" enable-background="new 0 0 800 800" xml:space="preserve" fill="currentColor"> 11256 <path d="M400 0C179.1 0 0 179.1 0 400c0 220.9 179.1 400 400 400s400-179.1 400-400C800 179.1 620.9 0 400 0zm0 655.333c-31.267 0-52.667-24.1-52.667-55.333 0-32.134 22.3-55.333 52.667-55.333 32.1 0 52.667 23.199 52.667 55.333 0 31.267-20.567 55.333-52.667 55.333zm20.733-211.3c-7.967 27.167-33.066 27.634-41.434 0-9.633-31.866-43.866-152.833-43.866-231.4 0-103.667 129.699-104.167 129.699 0 0 79.034-36.099 203.134-44.399 231.4z"/> 11257 </svg> 11258</span> 11259 </div> 11260 <span class="ml-2 pt-0.5 error_message" x-ref="error_message_mobile"></span> 11261 </div> 11262 </div> 11263 </div> 11264 </div> 11265 </div> 11266 </div> 11267</div> 11268 11269 </div> 11270 11271 </div> 11272 11273 11274 11275 11276 </div> 11277 </div> 11278 </template> 11279 11280 11281 </div> 11282 11283 11284 <style data-shopify> 11285 11286 11287 @media (max-width: 767px) { 11288 .preload-slide-mobile--shoppable_video_BnKmEKtemplate--26875474280758__video_shopping_8CyKxn { 11289 margin-right: 10px; 11290 width: 70% 11291 } 11292 } 11293 11294 11295 11296 .x-slide-animation-duration-2 { 11297 --delay-time: 100ms 11298 } 11299 </style> 11300 <div x-data="xVideoShopping" x-slide-index="1" class="group content-visibility-auto card-video-shopping-shoppable_video_BnKmEK relative overflow-hidden grid-item splide__slide x-splide-slide 11301 preload-slide-shoppable_video_BnKmEKtemplate--26875474280758__video_shopping_8CyKxn preload-slide-mobile--shoppable_video_BnKmEKtemplate--26875474280758__video_shopping_8CyKxn 11302 " > 11303 11304 <div class="h-full flex flex-col" :class="showSlideListItemInVideoCard ? 'opacity-0 transition-opacity duration-500 ease-in-out' : 'opacity-100 transition-opacity duration-500 ease-in-out'" x-transition.duration.500ms> 11305 <div class="w-full mb-1" id='video--shoppable_video_BnKmEK'> 11306 11307 11308 <div 11309 class="w-full relative overflow-hidden cursor-default external-video aspect-[9/16]" 11310 x-intersect:leave="$store.xVideo.pause($el)" 11311 x-data="{ isHovered: false }"
11312 @click.prevent="$store.xVideo.mp4Thumbnail($el)" 11313 11314 > 11315 11316 11317 <img 11318 srcset="//calistatools.com/cdn/shop/files/preview_images/a9a3c60c4101471daf9fe9eb614af065.thumbnail.0000000000.jpg?v=1782149745&width=375 375w, 11319 //calistatools.com/cdn/shop/files/preview_images/a9a3c60c4101471daf9fe9eb614af065.thumbnail.0000000000.jpg?v=1782149745&width=450 450w, 11320 //calistatools.com/cdn/shop/files/preview_images/a9a3c60c4101471daf9fe9eb614af065.thumbnail.0000000000.jpg?v=1782149745&width=750 750w, 11321 //calistatools.com/cdn/shop/files/preview_images/a9a3c60c4101471daf9fe9eb614af065.thumbnail.0000000000.jpg?v=1782149745&width=900 900w, 11322 //calistatools.com/cdn/shop/files/preview_images/a9a3c60c4101471daf9fe9eb614af065.thumbnail.0000000000.jpg?v=1782149745&width=1100 1100w, 11323 //calistatools.com/cdn/shop/files/preview_images/a9a3c60c4101471daf9fe9eb614af065.thumbnail.0000000000.jpg?v=1782149745&width=1500 1500w, 11324 //calistatools.com/cdn/shop/files/preview_images/a9a3c60c4101471daf9fe9eb614af065.thumbnail.0000000000.jpg?v=1782149745&width=1780 1780w" 11325 sizes="(min-width: 1400px) calc((1400px - (10px * 3)) / 4), 11326 (min-width: 1024px) calc((100vw - (10px * 3)) / 4), 11327(min-width: 768px) calc(100vw / 3),calc(70vw + 20px) 11328" 11329 src="//calistatools.com/cdn/shop/files/preview_images/a9a3c60c4101471daf9fe9eb614af065.thumbnail.0000000000.jpg?v=1782149745&width=1780" 11330 alt="" 11331 class="object-cover z-10 absolute top-0 left-0 h-full w-full img-thumbnail aspect-[9/16] animate-Xpulse skeleton-image" 11332 loading="lazy" 11333 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 11334 width="606" 11335 height="1080" 11336 style="object-position:;" 11337 > 11338 11339 11340 <video x-on:mouseover="isHovered = true" x-on:mouseleave="isHovered = false" :controls="isHovered" playsinline="playsinline" class="w-full h-full absolute top-0 left-0 video object-cover" preload="metadata" loading="lazy"><source src="//calistatools.com/cdn/shop/videos/c/vp/a9a3c60c4101471daf9fe9eb614af065/a9a3c60c4101471daf9fe9eb614af065.HD-1080p-2.5Mbps-87145547.mp4?v=0" type="video/mp4"><img loading="lazy" alt="" src="//calistatools.com/cdn/shop/files/preview_images/a9a3c60c4101471daf9fe9eb614af065.thumbnail.0000000000_1100x.jpg?v=1782149745"></video> 11341 11342 11343 <div class="button-play absolute top-1/2 left-1/2"> 11344 <div class="cursor-pointer absolute z-20 top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[60px] h-[60px] md:w-[60px] md:h-[60px] rounded-full pt-5 pb-5 pl-5 pr-5 bg-[rgba(var(--image-treatment-text),0.06)] hover:bg-[rgba(var(--image-treatment-text),0.1)] bg-opacity-30 disabled:cursor-not-allowed"> 11345 <span class="pointer-events-none duration-200 bg-button-play absolute w-4 h-5 md:w-4 md:h-5 top-1/2 left-1/2 -translate-y-1/2 -translate-x-1/2 text-[rgba(var(--image-treatment-text))]"> 11346 11347 <svg class="" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" style="fill: none"> 11348 <path d="M22.49 11.128L6.49 2.12804C6.18 1.95404 5.802 1.95804 5.496 2.13604C5.188 2.31604 5 2.64404 5 3.00004V21C5 21.356 5.188 21.684 5.496 21.864C5.652 21.954 5.826 22 6 22C6.168 22 6.338 21.958 6.49 21.872L22.49 12.872C22.804 12.694 23 12.362 23 12C23 11.638 22.804 11.306 22.49 11.128Z" fill="currentColor"/> 11349 </svg> 11350 11351 11352 </span> 11353 </div> 11354 </div> 11355 11356 11357 11358 11359 </div> 11360 11361 </div> 11362 11363 11364 11365 11366 <div 11367 class="card-product h-full card-bg-template--26875474280758__video_shopping_8CyKxn" 11368 id="x-product-template--choose-option101923390753821" 11369 x-data='xVariantSelectCard($el,"template--26875474280758__video_shopping_8CyKxn", "10192339075382", "/products/gloss-restorative-shine-serum", false, false, true, "", "", "", "template--26875474280758__video_shopping_8CyKxn")' 11370 data-url="" 11371 11372 data-option1="Default Title" 11373 11374 > 11375 11376 11377 <div class="flex flex-col card-product hover:cursor-default h-full border border-solid pt-4 pb-4 pl-4 pr-4" 11378 > 11379 <div class="card-product-info-container is-bottom flex flex-row gap-y-2 gap-x-3"> 11380 <div class="product-image w-16 min-w-[64px] lg:w-8 lg:min-w-[32px] xl:w-16 xl:min-w-[64px]"><span 11381 class="relative cursor-pointer" 11382 11383 11384 @click="showSlideListItemInVideoCard = true" 11385 11386 11387 > 11388 11389 <img 11390 srcset="//calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=250 250w, 11391 //calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=300 300w, 11392 //calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=375 375w, 11393 //calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=450 450w, 11394 //calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=750 750w, 11395 //calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=900 900w, 11396 //calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=1100 1100w, 11397 //calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=1500 1500w, 11398 //calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=1780 1780w" 11399 class="preview-img object-cover w-full aspect-square animate-Xpulse skeleton-image" 11400 src="//calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=1780" 11401 width="2083" 11402 size="(min-width: 1024px) calc(44vw + 30px), 11403 (min-width: 768px) calc(80vw + 30px), 11404 100vw" 11405 height="2083" 11406 alt="GLOSS Shine Recovery Serum" 11407 loading="lazy" 11408 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 11409 /> 11410 11411 </span></div> 11412 <div class="product-info-container flex flex-row gap-x-3 gap-y-2 flex-1" > 11413 <div class="flex-1" > 11414 <div class="mb-2 leading-tight"> 11415 <h3 class="text-[100%] card__heading product-card-heading p-break-words line-clamp-2">
11416 <span 11417 class="full-unstyled-link product-name text-[rgba(var(--colors-heading))] hover:text-[rgba(var(--colors-text-link))] cursor-pointer duration-200 p-break-words" 11418 11419 11420 @click="showSlideListItemInVideoCard = true" 11421 11422 11423 > 11424 GLOSS Shine Recovery Serum 11425 </span> 11426 </h3> 11427 </div><div class="x-card-price mt-2 text-left rtl:text-right"> 11428 <div class=" price leading-none flex flex-wrap items-center"> 11429 <div class="target-price hidden">2900</div> 11430 <div class="target-compare-at-price hidden"></div> 11431 11432 11433<p class="price"> 11434 $29 11435 </p> 11436 11437 11438</div> 11439 11440 </div> 11441 </div> 11442 11443 <div 11444 11445 11446 11447 @click="showSlideListItemInVideoCard = true" 11448 11449 11450 class="hover:cursor-pointer pl-2.5 pr-2.5 pt-2.5 pb-2.5 w-[36px] h-[36px] text-[rgb(var(--colors-button-text))] bg-[rgba(var(--colors-button))]" 11451 > 11452 11453 <svg width="100%" height="100%" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg" style="fill: none;"> 11454 <path d="M28 8 a20 20 0 1 1 0 40 a20 20 0 1 1 0 -40 M42 42 L58 58 M28 20 V36 M20 28 H36" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" fill="none"/> 11455 </svg> 11456 11457 11458 </div> 11459 11460 </div> 11461 </div> 11462 11463 </div> 11464 11465 </div> 11466 11467 11468 11469 11470 </div> 11471 11472 <template x-if="intersect"> 11473 <div 11474 x-cloak 11475 :class="{ 11476 'transform translate-y-0 bg-card-product' : showSlideListItemInVideoCard, 11477 'transform translate-y-full bg-[rgba(var(--background-color))]': !showSlideListItemInVideoCard, 11478 'opacity-0' : showSlideProductInVideoCard, 11479 'opacity-100': !showSlideProductInVideoCard 11480 }" 11481 class="product-list-container js-product-container pt-4 pb-4 slide-animation duration-500 ease-in-out overflow-hidden flex flex-col hover:cursor-default absolute top-0 bottom-0 left-0 right-0 border z-20 h-full" 11482 > 11483 <div class="flex justify-end pb-2.5 pl-5 pr-5"> 11484 <div 11485 @click="showSlideListItemInVideoCard = false" 11486 class="js-close-button hover:cursor-pointer rotate-90 pl-2.5 pr-2.5 pt-2.5 pb-2.5 w-[34px] h-[34px] border"> 11487 11488 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid meet"> 11489 <path fill="none" d="M8 1L19 12L8 23" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 11490 </svg> 11491 11492 11493 11494 </div> 11495 </div> 11496 <div class="overflow-y-auto scrollbar-body pl-5 pr-5 mt-auto mb-auto"> 11497 11498 11499 11500 11501 11502 11503 <div 11504 class="card-product card-bg-template--26875474280758__video_shopping_8CyKxn" 11505 id="x-product-template--choose-option10192339075382421" 11506 x-data='xVariantSelectCard($el,"template--26875474280758__video_shopping_8CyKxn", "10192339075382", "/products/gloss-restorative-shine-serum", false, false, true, "", "", "", "template--26875474280758__video_shopping_8CyKxn")' 11507 data-url="" 11508 11509 data-option1="Default Title" 11510 11511 > 11512 11513 11514 <div class="flex flex-col card-product hover:cursor-default pt-4 pb-0" 11515 > 11516 <div class="card-product-info-container flex flex-row gap-y-2 gap-x-3"> 11517 <div class="product-image w-20 min-w-[80px]"><span 11518 class="relative" 11519 11520 > 11521 11522 <img 11523 srcset="//calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=250 250w, 11524 //calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=300 300w, 11525 //calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=375 375w, 11526 //calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=450 450w, 11527 //calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=750 750w, 11528 //calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=900 900w, 11529 //calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=1100 1100w, 11530 //calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=1500 1500w, 11531 //calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=1780 1780w" 11532 class="preview-img object-cover w-full aspect-square animate-Xpulse skeleton-image" 11533 src="//calistatools.com/cdn/shop/files/5.22.2026GlossShineRecoverySerum-01_74ffcc31-5b26-491f-bdff-8ead68f4194c.jpg?v=1787160834&width=1780" 11534 width="2083" 11535 size="(min-width: 1024px) calc(44vw + 30px), 11536 (min-width: 768px) calc(80vw + 30px), 11537 100vw" 11538 height="2083" 11539 alt="GLOSS Shine Recovery Serum" 11540 loading="lazy" 11541 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 11542 /> 11543 11544 </span></div> 11545 <div class="product-info-container flex flex-row gap-x-3 gap-y-2 flex-1" > 11546 <div class="flex-1" > 11547 <div class="mb-2 leading-tight"> 11548 <h3 class="text-[100%] card__heading product-card-heading p-break-words line-clamp-2">
11549 <span 11550 class="full-unstyled-link product-name text-[rgba(var(--colors-heading))] duration-200 p-break-words" 11551 11552 > 11553 GLOSS Shine Recovery Serum 11554 </span> 11555 </h3> 11556 </div><div class="x-card-price mt-2 text-left rtl:text-right" id="price-choose-option10192339075382421" role="status"> 11557 <div class=" price leading-none flex flex-wrap items-center"> 11558 <div class="target-price hidden">2900</div> 11559 <div class="target-compare-at-price hidden"></div> 11560 11561 11562<p class="price"> 11563 $29 11564 </p> 11565 11566 11567</div> 11568 11569 </div> 11570 </div> 11571 11572 </div> 11573 </div> 11574 11575 11576 11577 11578<div id="choose-options-content"> 11579 <div 11580 id="x-product-template-10192339075382-choose-option10192339075382421" 11581 class="flex items-center w-full h-full pt-6 pb-6" 11582 > 11583 <div 11584 id="choose-options-content-10192339075382421" 11585 class="choose-options-content content-center w-full h-full"x-intersect.once='$store.xCustomerEvent.fire("product_viewed_custom", $el)' 11586 x-customer-event-data="{ 11587 "product": { 11588 "id": 10192339075382, 11589 "selected_variant_id": 51863312466230, 11590 "has_only_default_variant": true, 11591 "title": "GLOSS Shine Recovery Serum", 11592 "variant_title": "Default Title", 11593 "sku": "GLOSS-SER", 11594 "currencyCode": "USD", 11595 "price": 2900, 11596 "vendor": "Calista Tools", 11597 "category": "" 11598 } 11599 }"> 11600 <div class="w-full max-h-full "> 11601 <div id="ProductInfo-choose-option10192339075382421" class="x-product-data-container w-full text-center md:list-layout:text-left"> 11602 11603<div x-init="document.addEventListener('eurus:cart:items-changed', () => { 11604 Alpine.store('xUpdateVariantQuanity').updateQuantity('choose-option10192339075382421', '/products/gloss-restorative-shine-serum'); 11605 });"></div> 11606 <div 11607 11608 x-data="xProductCart('', '')" 11609 > 11610 <div class="choose-option-footer mt-2.5 md:mt-0 gap-x-2.5 md:gap-0"> 11611 11612 <div x-ref='product_form_container' class="button-product" 11613 > 11614 11615 <div><form method="post" action="/cart/add" id="product-form-choose-option10192339075382421" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form" x-ref="product_form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /><input type="hidden" aria-hidden="true" id="update-variant-choose-option10192339075382421" name="id" value="51863312466230"> 11616 11617 11618 <button 11619 11620 id="x-atc-button-choose-option10192339075382421" 11621 role="button" 11622 name="add" 11623 type="submit" 11624 @click="addToCart($event)" 11625 class="relative add_to_cart_button not-icon button button-solid disabled:opacity-60 disabled:cursor-not-allowed disable-action-btn-animation w-full pr-5 pl-5 md:list-layout:w-auto mb-2 pt-3 pb-3 md:pt-3.5 md:pb-3.5" 11626 11627 11628 x-intersect.once.margin.200px="Alpine.store('xCartHelper').validateCart();" 11629 11630 data-available="true" 11631 11632 11633 > 11634 <span class="x-atc-text" :class="loading && 'opacity-0 is-focus-button'"> 11635 <span class="flex items-center justify-center"> 11636 11637<div class="flex justify-center "> 11638 11639 11640 11641 <span class="button-text is-focus-button:opacity-0">Add to cart</span> 11642 11643 11644 11645 11646</div> 11647 </span> 11648 11649 </span> 11650 <div class="inline-block w-5 h-5 absolute top-[calc(50%-10px)] left-[calc(50%-10px)]" x-show="loading" x-cloak> 11651 <svg class="animate-spin rounded-full" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"> 11652 <path transform="translate(0 512) scale(0.1 -0.1)" fill="currentColor" d="M2474 4676 c-43 -19 -101 -81 -115 -123 -18 -56 -7 -145 24 -190 52 -75 79 -85 262 -99 90 -7 207 -22 260 -33 436 -92 824 -352 1070 -721 521 -781 321 -1824 -453 -2358 -501 -345 -1172 -393 -1715 -121 -700 350 -1075 1118 -917 1876 37 180 86 305 209 536 51 96 54 147 15 226 -37 73 -86 104 -174 109 -105 6 -151 -24 -224 -145 -137 -230 -241 -543 -276 -833 -13 -110 -13 -355 1 -478 52 -475 268 -922 614 -1267 351 -352 787 -560 1284 -615 171 -19 442 -8 615 24 423 80 802 282 1111 591 407 407 625 931 625 1505 0 574 -218 1098 -625 1505 -296 296 -654 493 -1055 579 -210 45 -470 61 -536 32z"/> 11653 </svg> 11654 11655 </div> 11656 </button><input type="hidden" name="product-id" value="10192339075382" /><input type="hidden" name="section-id" value="template--26875474280758__video_shopping_8CyKxn" /></form><div class="hidden md:flex items-center gap-x-2 text-left rtl:text-right p-break-words mb-2 mt-2 pl-4 pr-4 pt-3 pb-3 bg-[rgba(var(--color-error),0.2)]" role="alert" x-cloak x-show="errorMessage" @click.away="errorMessage=false"> 11657 <div class="flex">
11658 <span class="w-4 h-4"><svg class="text-[rgba(var(--color-error))]" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 800 800" enable-background="new 0 0 800 800" xml:space="preserve" fill="currentColor"> 11659 <path d="M400 0C179.1 0 0 179.1 0 400c0 220.9 179.1 400 400 400s400-179.1 400-400C800 179.1 620.9 0 400 0zm0 655.333c-31.267 0-52.667-24.1-52.667-55.333 0-32.134 22.3-55.333 52.667-55.333 32.1 0 52.667 23.199 52.667 55.333 0 31.267-20.567 55.333-52.667 55.333zm20.733-211.3c-7.967 27.167-33.066 27.634-41.434 0-9.633-31.866-43.866-152.833-43.866-231.4 0-103.667 129.699-104.167 129.699 0 0 79.034-36.099 203.134-44.399 231.4z"/> 11660 </svg> 11661</span> 11662 </div> 11663 <span class="error_message ml-2 pt-0.5" x-ref="error_message"></span> 11664 </div> 11665 </div> 11666 </div> 11667 <a href="/products/gloss-restorative-shine-serum" class="view_product_detail button button-outline w-full pr-5 pl-5 pt-3 pb-3 md:pt-3.5 md:pb-3.5 relative inline-block"> 11668 View full details 11669 </a> 11670 </div> 11671 <div class="flex items-center gap-x-2 text-left rtl:text-right p-break-words md:hidden md:mb-2 mt-2 pl-4 pr-4 pt-3 pb-3 bg-[rgba(var(--color-error),0.2)]" role="alert" x-cloak x-show="errorMessage" @click.away="errorMessage=false"> 11672 <div class="flex"> 11673 <span class="w-4 h-4"><svg class="text-[rgba(var(--color-error))]" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 800 800" enable-background="new 0 0 800 800" xml:space="preserve" fill="currentColor"> 11674 <path d="M400 0C179.1 0 0 179.1 0 400c0 220.9 179.1 400 400 400s400-179.1 400-400C800 179.1 620.9 0 400 0zm0 655.333c-31.267 0-52.667-24.1-52.667-55.333 0-32.134 22.3-55.333 52.667-55.333 32.1 0 52.667 23.199 52.667 55.333 0 31.267-20.567 55.333-52.667 55.333zm20.733-211.3c-7.967 27.167-33.066 27.634-41.434 0-9.633-31.866-43.866-152.833-43.866-231.4 0-103.667 129.699-104.167 129.699 0 0 79.034-36.099 203.134-44.399 231.4z"/> 11675 </svg> 11676</span> 11677 </div> 11678 <span class="ml-2 pt-0.5 error_message" x-ref="error_message_mobile"></span> 11679 </div> 11680 </div> 11681 </div> 11682 </div> 11683 </div> 11684 </div> 11685</div> 11686 11687 </div> 11688 11689 </div> 11690 11691 11692 11693 11694 </div> 11695 </div> 11696 </template> 11697 11698 11699 </div> 11700 11701 11702 <style data-shopify> 11703 11704 11705 @media (max-width: 767px) { 11706 .preload-slide-mobile--shoppable_video_dPiYmEtemplate--26875474280758__video_shopping_8CyKxn { 11707 margin-right: 10px; 11708 width: 70% 11709 } 11710 } 11711 11712 11713 11714 .x-slide-animation-duration-3 { 11715 --delay-time: 200ms 11716 } 11717 </style> 11718 <div x-data="xVideoShopping" x-slide-index="2" class="group content-visibility-auto card-video-shopping-shoppable_video_dPiYmE relative overflow-hidden grid-item splide__slide x-splide-slide 11719 preload-slide-shoppable_video_dPiYmEtemplate--26875474280758__video_shopping_8CyKxn preload-slide-mobile--shoppable_video_dPiYmEtemplate--26875474280758__video_shopping_8CyKxn 11720 " > 11721 11722 <div class="h-full flex flex-col" :class="showSlideListItemInVideoCard ? 'opacity-0 transition-opacity duration-500 ease-in-out' : 'opacity-100 transition-opacity duration-500 ease-in-out'" x-transition.duration.500ms> 11723 <div class="w-full mb-1" id='video--shoppable_video_dPiYmE'> 11724 11725 11726 <div 11727 class="w-full relative overflow-hidden cursor-default external-video aspect-[9/16]" 11728 x-intersect:leave="$store.xVideo.pause($el)" 11729 x-data="{ isHovered: false }"
11730 @click.prevent="$store.xVideo.mp4Thumbnail($el)" 11731 11732 > 11733 11734 11735 <img 11736 srcset="//calistatools.com/cdn/shop/files/preview_images/9f25a9d7f375448081ddac42905ae32a.thumbnail.0000000000.jpg?v=1782150162&width=375 375w, 11737 //calistatools.com/cdn/shop/files/preview_images/9f25a9d7f375448081ddac42905ae32a.thumbnail.0000000000.jpg?v=1782150162&width=450 450w, 11738 //calistatools.com/cdn/shop/files/preview_images/9f25a9d7f375448081ddac42905ae32a.thumbnail.0000000000.jpg?v=1782150162&width=750 750w, 11739 //calistatools.com/cdn/shop/files/preview_images/9f25a9d7f375448081ddac42905ae32a.thumbnail.0000000000.jpg?v=1782150162&width=900 900w, 11740 //calistatools.com/cdn/shop/files/preview_images/9f25a9d7f375448081ddac42905ae32a.thumbnail.0000000000.jpg?v=1782150162&width=1100 1100w, 11741 //calistatools.com/cdn/shop/files/preview_images/9f25a9d7f375448081ddac42905ae32a.thumbnail.0000000000.jpg?v=1782150162&width=1500 1500w, 11742 //calistatools.com/cdn/shop/files/preview_images/9f25a9d7f375448081ddac42905ae32a.thumbnail.0000000000.jpg?v=1782150162&width=1780 1780w" 11743 sizes="(min-width: 1400px) calc((1400px - (10px * 3)) / 4), 11744 (min-width: 1024px) calc((100vw - (10px * 3)) / 4), 11745(min-width: 768px) calc(100vw / 3),calc(70vw + 20px) 11746" 11747 src="//calistatools.com/cdn/shop/files/preview_images/9f25a9d7f375448081ddac42905ae32a.thumbnail.0000000000.jpg?v=1782150162&width=1780" 11748 alt="" 11749 class="object-cover z-10 absolute top-0 left-0 h-full w-full img-thumbnail aspect-[9/16] animate-Xpulse skeleton-image" 11750 loading="lazy" 11751 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 11752 width="606" 11753 height="1080" 11754 style="object-position:;" 11755 > 11756 11757 11758 <video x-on:mouseover="isHovered = true" x-on:mouseleave="isHovered = false" :controls="isHovered" playsinline="playsinline" class="w-full h-full absolute top-0 left-0 video object-cover" preload="metadata" loading="lazy"><source src="//calistatools.com/cdn/shop/videos/c/vp/9f25a9d7f375448081ddac42905ae32a/9f25a9d7f375448081ddac42905ae32a.HD-1080p-7.2Mbps-87145892.mp4?v=0" type="video/mp4"><img loading="lazy" alt="" src="//calistatools.com/cdn/shop/files/preview_images/9f25a9d7f375448081ddac42905ae32a.thumbnail.0000000000_1100x.jpg?v=1782150162"></video> 11759 11760 11761 <div class="button-play absolute top-1/2 left-1/2"> 11762 <div class="cursor-pointer absolute z-20 top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[60px] h-[60px] md:w-[60px] md:h-[60px] rounded-full pt-5 pb-5 pl-5 pr-5 bg-[rgba(var(--image-treatment-text),0.06)] hover:bg-[rgba(var(--image-treatment-text),0.1)] bg-opacity-30 disabled:cursor-not-allowed"> 11763 <span class="pointer-events-none duration-200 bg-button-play absolute w-4 h-5 md:w-4 md:h-5 top-1/2 left-1/2 -translate-y-1/2 -translate-x-1/2 text-[rgba(var(--image-treatment-text))]"> 11764 11765 <svg class="" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" style="fill: none"> 11766 <path d="M22.49 11.128L6.49 2.12804C6.18 1.95404 5.802 1.95804 5.496 2.13604C5.188 2.31604 5 2.64404 5 3.00004V21C5 21.356 5.188 21.684 5.496 21.864C5.652 21.954 5.826 22 6 22C6.168 22 6.338 21.958 6.49 21.872L22.49 12.872C22.804 12.694 23 12.362 23 12C23 11.638 22.804 11.306 22.49 11.128Z" fill="currentColor"/> 11767 </svg> 11768 11769 11770 </span> 11771 </div> 11772 </div> 11773 11774 11775 11776 11777 </div> 11778 11779 </div> 11780 11781 11782 11783 11784 <div 11785 class="card-product h-full card-bg-template--26875474280758__video_shopping_8CyKxn" 11786 id="x-product-template--choose-option17973420688051" 11787 x-data='xVariantSelectCard($el,"template--26875474280758__video_shopping_8CyKxn", "1797342068805", "/products/gogo-m
11787ini-round-brush", false, false, true, "", "", "", "template--26875474280758__video_shopping_8CyKxn")' 11788 data-url="" 11789 11790 data-option1="Berry Burst" 11791 11792 > 11793 11794 11795 <div class="flex flex-col card-product hover:cursor-default h-full border border-solid pt-4 pb-4 pl-4 pr-4" 11796 > 11797 <div class="card-product-info-container is-bottom flex flex-row gap-y-2 gap-x-3"> 11798 <div class="product-image w-16 min-w-[64px] lg:w-8 lg:min-w-[32px] xl:w-16 xl:min-w-[64px]"><span 11799 class="relative cursor-pointer" 11800 11801 11802 @click="showSlideListItemInVideoCard = true" 11803 11804 11805 > 11806 11807 <img 11808 srcset="//calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=250 250w, 11809 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=300 300w, 11810 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=375 375w, 11811 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=450 450w, 11812 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=750 750w, 11813 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=900 900w, 11814 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=1100 1100w, 11815 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=1500 1500w, 11816 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=1780 1780w" 11817 class="preview-img object-cover w-full aspect-square animate-Xpulse skeleton-image" 11818 src="//calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=1780" 11819 width="2083" 11820 size="(min-width: 1024px) calc(44vw + 30px), 11821 (min-width: 768px) calc(80vw + 30px), 11822 100vw" 11823 height="2083" 11824 alt="gogo mini round brush in berry burst #berry-burst" 11825 loading="lazy" 11826 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 11827 /> 11828 11829 </span></div> 11830 <div class="product-info-container flex flex-row gap-x-3 gap-y-2 flex-1" > 11831 <div class="flex-1" > 11832 <div class="mb-2 leading-tight"> 11833 <h3 class="text-[100%] card__heading product-card-heading p-break-words line-clamp-2"> 11834 <span 11835 class="full-unstyled-link product-name text-[rgba(var(--colors-heading))] hover:text-[rgba(var(--colors-text-link))] cursor-pointer duration-200 p-break-words" 11836 11837 11838 @click="showSlideListItemInVideoCard = true" 11839 11840 11841 > 11842 GoGo Mini Round Brush 11843 </span> 11844 </h3> 11845 </div><div class="x-card-price mt-2 text-left rtl:text-right"> 11846 <div class=" price leading-none flex flex-wrap items-center"> 11847 <div class="target-price hidden">4000</div> 11848 <div class="target-compare-at-price hidden"></div> 11849 11850 11851<p class="price"> 11852 $40 11853 </p> 11854 11855 11856</div> 11857 11858 </div> 11859 </div> 11860 11861 <div 11862 11863 11864 11865 @click="showSlideListItemInVideoCard = true" 11866 11867 11868 class="hover:cursor-pointer pl-2.5 pr-2.5 pt-2.5 pb-2.5 w-[36px] h-[36px] text-[rgb(var(--colors-button-text))] bg-[rgba(var(--colors-button))]" 11869 > 11870
11871 <svg width="100%" height="100%" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg" style="fill: none;"> 11872 <path d="M28 8 a20 20 0 1 1 0 40 a20 20 0 1 1 0 -40 M42 42 L58 58 M28 20 V36 M20 28 H36" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" fill="none"/> 11873 </svg> 11874 11875 11876 </div> 11877 11878 </div> 11879 </div> 11880 11881 </div> 11882 11883 </div> 11884 11885 11886 11887 11888 </div> 11889 11890 <template x-if="intersect"> 11891 <div 11892 x-cloak 11893 :class="{ 11894 'transform translate-y-0 bg-card-product' : showSlideListItemInVideoCard, 11895 'transform translate-y-full bg-[rgba(var(--background-color))]': !showSlideListItemInVideoCard, 11896 'opacity-0' : showSlideProductInVideoCard, 11897 'opacity-100': !showSlideProductInVideoCard 11898 }" 11899 class="product-list-container js-product-container pt-4 pb-4 slide-animation duration-500 ease-in-out overflow-hidden flex flex-col hover:cursor-default absolute top-0 bottom-0 left-0 right-0 border z-20 h-full" 11900 > 11901 <div class="flex justify-end pb-2.5 pl-5 pr-5"> 11902 <div 11903 @click="showSlideListItemInVideoCard = false" 11904 class="js-close-button hover:cursor-pointer rotate-90 pl-2.5 pr-2.5 pt-2.5 pb-2.5 w-[34px] h-[34px] border"> 11905 11906 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid meet"> 11907 <path fill="none" d="M8 1L19 12L8 23" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 11908 </svg> 11909 11910 11911 11912 </div> 11913 </div> 11914 <div class="overflow-y-auto scrollbar-body pl-5 pr-5 mt-auto mb-auto"> 11915 11916 11917 11918 11919 11920 11921 <div 11922 class="card-product card-bg-template--26875474280758__video_shopping_8CyKxn" 11923 id="x-product-template--choose-option1797342068805431" 11924 x-data='xVariantSelectCard($el,"template--26875474280758__video_shopping_8CyKxn", "1797342068805", "/products/gogo-m
11924ini-round-brush", false, false, true, "", "", "", "template--26875474280758__video_shopping_8CyKxn")' 11925 data-url="" 11926 11927 data-option1="Berry Burst" 11928 11929 > 11930 11931 11932 <div class="flex flex-col card-product hover:cursor-default pt-4 pb-0" 11933 > 11934 <div class="card-product-info-container flex flex-row gap-y-2 gap-x-3"> 11935 <div class="product-image w-20 min-w-[80px]"><span 11936 class="relative" 11937 11938 > 11939 11940 <img 11941 srcset="//calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=250 250w, 11942 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=300 300w, 11943 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=375 375w, 11944 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=450 450w, 11945 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=750 750w, 11946 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=900 900w, 11947 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=1100 1100w, 11948 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=1500 1500w, 11949 //calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=1780 1780w" 11950 class="preview-img object-cover w-full aspect-square animate-Xpulse skeleton-image" 11951 src="//calistatools.com/cdn/shop/files/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135&width=1780" 11952 width="2083" 11953 size="(min-width: 1024px) calc(44vw + 30px), 11954 (min-width: 768px) calc(80vw + 30px), 11955 100vw" 11956 height="2083" 11957 alt="gogo mini round brush in berry burst #berry-burst" 11958 loading="lazy" 11959 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 11960 /> 11961 11962 </span></div> 11963 <div class="product-info-container flex flex-row gap-x-3 gap-y-2 flex-1" > 11964 <div class="flex-1" > 11965 <div class="mb-2 leading-tight"> 11966 <h3 class="text-[100%] card__heading product-card-heading p-break-words line-clamp-2"> 11967 <span 11968 class="full-unstyled-link product-name text-[rgba(var(--colors-heading))] duration-200 p-break-words" 11969 11970 > 11971 GoGo Mini Round Brush 11972 </span> 11973 </h3> 11974 </div><div class="x-card-price mt-2 text-left rtl:text-right" id="price-choose-option1797342068805431" role="status"> 11975 <div class=" price leading-none flex flex-wrap items-center"> 11976 <div class="target-price hidden">4000</div> 11977 <div class="target-compare-at-price hidden"></div> 11978 11979 11980<p class="price"> 11981 $40 11982 </p> 11983 11984 11985</div> 11986 11987 </div> 11988 </div> 11989 11990 </div> 11991 </div> 11992 11993 11994 11995 11996<div id="choose-options-content"> 11997 <div 11998 id="x-product-template-1797342068805-choose-option1797342068805431" 11999 class="flex items-center w-full h-full pt-6 pb-6" 12000 > 12001 <div 12002 id="choose-options-content-1797342068805431" 12003 class="choose-options-content content-center w-full h-full"x-intersect.once='$store.xCustomerEvent.fire("product_viewed_custom", $el)' 12004 x-customer-event-data="{ 12005 "product": { 12006 "id": 1797342068805, 12007 "selected_variant_id": 53297881514294, 12008 "has_only_default_variant": false, 12009 "title": "GoGo Mini Round Brush", 12010 "variant_title": "
12010Berry Burst", 12011 "sku": "MINI-B BURST", 12012 "currencyCode": "USD", 12013 "price": 4000, 12014 "vendor": "Calista Tools", 12015 "category": "" 12016 } 12017 }"> 12018 <div class="w-full max-h-full "> 12019 <div id="ProductInfo-choose-option1797342068805431" class="x-product-data-container w-full text-center md:list-layout:text-left"> 12020 12021<div 12022 class="variant-selects x-variants-data-js hover-option-value" 12023 x-data='xVariantSelectCard($el,"choose-option1797342068805431", "1797342068805", "/products/gogo-mini-round-brush", false, false, true, "431", "Choose options", "Add to cart", "template--26875474280758__video_shopping_8CyKxn")' 12024 data-url="/products/gogo-mini-round-brush" 12025 12026 data-option1="Berry Burst" 12027 12028 > 12029 <div 12030 id="variant-update-choose-option1797342068805431" 12031 class="variant-update-choose-option1797342068805431 md:list-layout:flex md:list-layout:flex-wrap md:list-layout:gap-x-12 options-container" 12032 > 12033
12033<script type="application/json" data-selected-variant>{"id":53297881514294,"title":"Berry Burst","option1":"Berry Burst","option2":null,"option3":null,"sku":"MINI-B BURST","requires_shipping":true,"taxable":true,"featured_image":{"id":58277373411638,"product_id":1797342068805,"position":1,"created_at":"2026-04-29T14:08:54-04:00","updated_at":"2026-04-29T14:08:55-04:00","alt":"gogo mini round brush in berry burst #berry-burst","width":2083,"height":2083,"src":"\/\/calistatools.com\/cdn\/shop\/files\/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135","variant_ids":[53297881514294]},"available":true,"name":"GoGo Mini Round Brush - Berry Burst","public_title":"Berry Burst","options":["Berry Burst"],"price":4000,"weight":454,"compare_at_price":null,"inventory_management":"shopify","barcode":"850041810218","featured_media":{"alt":"gogo mini round brush in berry burst #berry-burst","id":48011614159158,"position":1,"preview_image":{"aspect_ratio":1.0,"height":2083,"width":2083,"src":"\/\/calistatools.com\/cdn\/shop\/files\/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}</script>
12033 12034<fieldset 12035 id="Option-choose-option1797342068805431-0" 12036 class="product-form__input relative flex flex-wrap pb-4 quick-view:pb-2 eurus gap-x-1.5" 12037 data-option-name="color" 12038 data-option-index="0" 12039 12040 x-data="{activeSwatch: false}" 12041 @click.capture="activeSwatch = false" 12042 @click.outside="activeSwatch = false" 12043 > 12044 <legend class="font-semibold p-break-words text-left rtl:text-right option-selected-value" data-option-name="color">Color 12045 </legend><div @click="activeSwatch = 1" class="relative inline-flex"> 12046<style data-shopify> 12047 12048 [data-swatch="Berry Burst"]:before { 12049 background-image: url(//calistatools.com/cdn/shop/files/berry-burst-color_100x100.png?v=10925809498906657155); 12050 } 12051 12052</style> 12053 12054 <input 12055 id="choose-option1797342068805431-1-0" 12056 section-id="choose-option1797342068805431" 12057 option-pos="1" 12058 forloop="0" 12059 type="radio" 12060 name="Color-1 12061" 12062 data-available="true" 12063 data-product-url="" 12064 data-option-value-id="7332519477558" 12065 value="Berry Burst" 12066 form="product-form-choose-option1797342068805431" 12067 class="absolute opacity-0 h-0 w-0 input-radio" 12068 @change="setTimeout(() => { 12069 updateProductCard('1', '/products/gogo-m
12069ini-round-brush'); 12070 loadingEls = 'choose-option1797342068805431-1-0'; 12071 }, 0)" 12072 aria-label="Berry Burst" 12073 12074 checked 12075 x-intersect.once="$el.checked = true" 12076 12077 > 12078 12079 <label class="flex relative items-center mt-2.5 outline-none font-medium cursor-pointer pl-5 pr-5 pt-2 pb-2 border bg-[rgba(var(--background-color),1)] 12080 " for="choose-option1797342068805431-1-0" 12081 > 12082 <div x-cloak x-show="loadingEls === 'choose-option1797342068805431-1-0'" class="w-4 h-4 absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"> 12083 <div class="animate-spin w-4 h-4 border-loading"></div> 12084 </div> 12085 <span :class="loadingEls === 'choose-option1797342068805431-1-0' && 'invisible'" class="p-break-words">Berry Burst</span> 12086 </label> 12087 12088
12088<script type="application/json" data-option-value-id="7332519477558" data-resource="choose-option1797342068805431-1-0"> 12089 {"id":53297881514294,"title":"Berry Burst","option1":"Berry Burst","option2":null,"option3":null,"sku":"MINI-B BURST","requires_shipping":true,"taxable":true,"featured_image":{"id":58277373411638,"product_id":1797342068805,"position":1,"created_at":"2026-04-29T14:08:54-04:00","updated_at":"2026-04-29T14:08:55-04:00","alt":"gogo mini round brush in berry burst #berry-burst","width":2083,"height":2083,"src":"\/\/calistatools.com\/cdn\/shop\/files\/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135","variant_ids":[53297881514294]},"available":true,"name":"GoGo Mini Round Brush - Berry Burst","public_title":"Berry Burst","options":["Berry Burst"],"price":4000,"weight":454,"compare_at_price":null,"inventory_management":"shopify","barcode":"850041810218","featured_media":{"alt":"gogo mini round brush in berry burst #berry-burst","id":48011614159158,"position":1,"preview_image":{"aspect_ratio":1.0,"height":2083,"width":2083,"src":"\/\/calistatools.com\/cdn\/shop\/files\/4.27.2026GoGoMiniRoundBrush-03.jpg?v=1777486135"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}} 12090 </script>
12090 12091 </div><div @click="activeSwatch = 2" class="relative inline-flex"> 12092<style data-shopify> 12093 12094 [data-swatch="Peachy Pink"]:before { 12095 background-image: url(//calistatools.com/cdn/shop/files/peachy-pink-color_100x100.png?v=15641081495957945190); 12096 } 12097 12098</style> 12099 12100 <input 12101 id="choose-option1797342068805431-1-1" 12102 section-id="choose-option1797342068805431" 12103 option-pos="1" 12104 forloop="1" 12105 type="radio" 12106 name="Color-1 12107" 12108 data-available="true" 12109 data-product-url="" 12110 data-option-value-id="2697158983990" 12111 value="Peachy Pink" 12112 form="product-form-choose-option1797342068805431" 12113 class="absolute opacity-0 h-0 w-0 input-radio" 12114 @change="setTimeout(() => { 12115 updateProductCard('1', '/products/gogo-m
12115ini-round-brush'); 12116 loadingEls = 'choose-option1797342068805431-1-1'; 12117 }, 0)" 12118 aria-label="Peachy Pink" 12119 12120 > 12121 12122 <label class="flex relative items-center mt-2.5 outline-none font-medium cursor-pointer pl-5 pr-5 pt-2 pb-2 border bg-[rgba(var(--background-color),1)] 12123 " for="choose-option1797342068805431-1-1" 12124 > 12125 <div x-cloak x-show="loadingEls === 'choose-option1797342068805431-1-1'" class="w-4 h-4 absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"> 12126 <div class="animate-spin w-4 h-4 border-loading"></div> 12127 </div> 12128 <span :class="loadingEls === 'choose-option1797342068805431-1-1' && 'invisible'" class="p-break-words">Peachy Pink</span> 12129 </label> 12130 12131
12131<script type="application/json" data-option-value-id="2697158983990" data-resource="choose-option1797342068805431-1-1"> 12132 {"id":47940433117494,"title":"Peachy Pink","option1":"Peachy Pink","option2":null,"option3":null,"sku":"Mini-Peachy P","requires_shipping":true,"taxable":true,"featured_image":{"id":58277373346102,"product_id":1797342068805,"position":9,"created_at":"2026-04-29T14:08:54-04:00","updated_at":"2026-04-29T14:08:55-04:00","alt":"gogo mini round brush in peachy pink #peachy-pink","width":2083,"height":2083,"src":"\/\/calistatools.com\/cdn\/shop\/files\/4.27.2026GoGoMiniRoundBrush-01.jpg?v=1777486135","variant_ids":[47940433117494]},"available":true,"name":"GoGo Mini Round Brush - Peachy Pink","public_title":"Peachy Pink","options":["Peachy Pink"],"price":4000,"weight":454,"compare_at_price":null,"inventory_management":"shopify","barcode":"850041810775","featured_media":{"alt":"gogo mini round brush in peachy pink #peachy-pink","id":48011614093622,"position":10,"preview_image":{"aspect_ratio":1.0,"height":2083,"width":2083,"src":"\/\/calistatools.com\/cdn\/shop\/files\/4.27.2026GoGoMiniRoundBrush-01.jpg?v=1777486135"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}} 12133 </script>
12133 12134 </div></fieldset> 12135</div> 12136 </div> 12137 <div 12138 class="mt-3" 12139 x-data="xProductCart('', '')" 12140 > 12141 <div class="choose-option-footer mt-2.5 md:mt-0 gap-x-2.5 md:gap-0"> 12142 12143 <div x-ref='product_form_container' class="button-product" 12144 > 12145 12146 <div><form method="post" action="/cart/add" id="product-form-choose-option1797342068805431" accept-charset="UTF-8" class="form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form" x-ref="product_form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /><input type="hidden" aria-hidden="true" id="update-variant-choose-option1797342068805431" name="id" value="53297881514294"> 12147 12148 12149 <button 12150 12151 id="x-atc-button-choose-option1797342068805431" 12152 role="button" 12153 name="add" 12154 type="submit" 12155 @click="addToCart($event)" 12156 class="relative add_to_cart_button not-icon button button-solid disabled:opacity-60 disabled:cursor-not-allowed disable-action-btn-animation w-full pr-5 pl-5 md:list-layout:w-auto mb-2 pt-3 pb-3 md:pt-3.5 md:pb-3.5" 12157 12158 12159 x-intersect.once.margin.200px="Alpine.store('xCartHelper').validateCart();" 12160 12161 data-available="true" 12162 12163 12164 > 12165 <span class="x-atc-text" :class="loading && 'opacity-0 is-focus-button'"> 12166 <span class="flex items-center justify-center"> 12167 12168<div class="flex justify-center "> 12169 12170 12171 12172 <span class="button-text is-focus-button:opacity-0">Add to cart</span> 12173 12174 12175 12176 12177</div> 12178 </span> 12179 12180 </span> 12181 <div class="inline-block w-5 h-5 absolute top-[calc(50%-10px)] left-[calc(50%-10px)]" x-show="loading" x-cloak> 12182 <svg class="animate-spin rounded-full" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"> 12183 <path transform="translate(0 512) scale(0.1 -0.1)" fill="currentColor" d="M2474 4676 c-43 -19 -101 -81 -115 -123 -18 -56 -7 -145 24 -190 52 -75 79 -85 262 -99 90 -7 207 -22 260 -33 436 -92 824 -352 1070 -721 521 -781 321 -1824 -453 -2358 -501 -345 -1172 -393 -1715 -121 -700 350 -1075 1118 -917 1876 37 180 86 305 209 536 51 96 54 147 15 226 -37 73 -86 104 -174 109 -105 6 -151 -24 -224 -145 -137 -230 -241 -543 -276 -833 -13 -110 -13 -355 1 -478 52 -475 268 -922 614 -1267 351 -352 787 -560 1284 -615 171 -19 442 -8 615 24 423 80 802 282 1111 591 407 407 625 931 625 1505 0 574 -218 1098 -625 1505 -296 296 -654 493 -1055 579 -210 45 -470 61 -536 32z"/> 12184 </svg> 12185 12186 </div> 12187 </button><input type="hidden" name="product-id" value="1797342068805" /><input type="hidden" name="section-id" value="template--26875474280758__video_shopping_8CyKxn" /></form><div class="hidden md:flex items-center gap-x-2 text-left rtl:text-right p-break-words mb-2 mt-2 pl-4 pr-4 pt-3 pb-3 bg-[rgba(var(--color-error),0.2)]" role="alert" x-cloak x-show="errorMessage" @click.away="errorMessage=false"> 12188 <div class="flex"> 12189 <span class="w-4 h-4"><svg class="text-[rgba(var(--color-error))]" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 800 800" enable-background="new 0 0 800 800" xml:space="preserve" fill="currentColor"> 12190 <path d="M400 0C179.1 0 0 179.1 0 400c0 220.9 179.1 400 400 400s400-179.1 400-400C800 179.1 620.9 0 400 0zm0 655.333c-31.267 0-52.667-24.1-52.667-55.333 0-32.134 22.3-55.333 52.667-55.333 32.1 0 52.667 23.199 52.667 55.333 0 31.267-20.567 55.333-52.667 55.333zm20.733-211.3c-7.967 27.16
121907-33.066 27.634-41.434 0-9.633-31.866-43.866-152.833-43.866-231.4 0-103.667 129.699-104.167 129.699 0 0 79.034-36.099 203.134-44.399 231.4z"/> 12191 </svg> 12192</span> 12193 </div> 12194 <span class="error_message ml-2 pt-0.5" x-ref="error_message"></span> 12195 </div> 12196 </div> 12197 </div> 12198 <a href="/products/gogo-mini-round-brush" class="view_product_detail button button-outline w-full pr-5 pl-5 pt-3 pb-3 md:pt-3.5 md:pb-3.5 relative inline-block"> 12199 View full details 12200 </a> 12201 </div> 12202 <div class="flex items-center gap-x-2 text-left rtl:text-right p-break-words md:hidden md:mb-2 mt-2 pl-4 pr-4 pt-3 pb-3 bg-[rgba(var(--color-error),0.2)]" role="alert" x-cloak x-show="errorMessage" @click.away="errorMessage=false"> 12203 <div class="flex"> 12204 <span class="w-4 h-4"><svg class="text-[rgba(var(--color-error))]" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 800 800" enable-background="new 0 0 800 800" xml:space="preserve" fill="currentColor"> 12205 <path d="M400 0C179.1 0 0 179.1 0 400c0 220.9 179.1 400 400 400s400-179.1 400-400C800 179.1 620.9 0 400 0zm0 655.333c-31.267 0-52.667-24.1-52.667-55.333 0-32.134 22.3-55.333 52.667-55.333 32.1 0 52.667 23.199 52.667 55.333 0 31.267-20.567 55.333-52.667 55.333zm20.733-211.3c-7.967 27.167-33.066 27.634-41.434 0-9.633-31.866-43.866-152.833-43.866-231.4 0-103.667 129.699-104.167 129.699 0 0 79.034-36.099 203.134-44.399 231.4z"/> 12206 </svg> 12207</span> 12208 </div> 12209 <span class="ml-2 pt-0.5 error_message" x-ref="error_message_mobile"></span> 12210 </div> 12211 </div> 12212 </div> 12213 </div> 12214 </div> 12215 </div> 12216</div> 12217 12218 </div> 12219 12220 </div> 12221 12222 12223 12224 12225 </div> 12226 </div> 12227 </template> 12228 12229 12230 </div> 12231 12232 12233 <style data-shopify> 12234 12235 12236 @media (max-width: 767px) { 12237 .preload-slide-mobile--shoppable_video_XbBqB8template--26875474280758__video_shopping_8CyKxn { 12238 margin-right: 10px; 12239 width: 70% 12240 } 12241 } 12242 12243 12244 12245 .x-slide-animation-duration-4 { 12246 --delay-time: 300ms 12247 } 12248 </style> 12249 <div x-data="xVideoShopping" x-slide-index="3" class="group content-visibility-auto card-video-shopping-shoppable_video_XbBqB8 relative overflow-hidden grid-item splide__slide x-splide-slide 12250 preload-slide-shoppable_video_XbBqB8template--26875474280758__video_shopping_8CyKxn preload-slide-mobile--shoppable_video_XbBqB8template--26875474280758__video_shopping_8CyKxn 12251 " > 12252 12253 <div class="absolute x-block-social-post-media-icon z-20 lg:max-w-[48px] lg:w-1/5 top-3 right-3 translate-x-0 lg:translate-x-full lg:right-0 group-hover:lg:right-3 group-hover:lg:translate-x-0 transition-all duration-500 flex flex-col gap-2"> 12254 12255 </div> 12256 12257 <div class="h-full flex flex-col" :class="showSlideListItemInVideoCard ? 'opacity-0 transition-opacity duration-500 ease-in-out' : 'opacity-100 transition-opacity duration-500 ease-in-out'" x-transition.duration.500ms> 12258 <div class="w-full mb-1" id='video--shoppable_video_XbBqB8'> 12259 12260 12261 <div 12262 class="w-full relative overflow-hidden cursor-default external-video aspect-[9/16]" 12263 x-intersect:leave="$store.xVideo.pause($el)" 12264 x-data="{ isHovered: false }" 12265 @click.prevent="$store.xVideo.mp4Thumbnail($el)" 12266 12267 > 12268 12269 12270 <img 12271 srcset="//calistatools.com/cdn/shop/files/preview_images/d50bff2aa3f141da830cb350fb9a3d1a.thumbnail.0000000000.jpg?v=1782150038&width=375 375w, 12272 //calistatools.com/cdn/shop/files/preview_images/d50bff2aa3f141da830cb350fb9a3d1a.thumbnail.0000000000.jpg?v=1782150038&width=450 450w, 12273 //calistatools.com/cdn/shop/files/preview_images/d50bff2aa3f141da830cb350fb9a3d1a.thumbnail.0000000000.jpg?v=1782150038&width=750 750w, 12274 //calistatools.com/cdn/shop/files/preview_images/d50bff2aa3f141da830cb350fb9a3d1a.thumbnail.0000000000.jpg?v=1782150038&width=900 900w, 12275 //calistatools.com/cdn/shop/files/preview_images/d50bff2aa3f141da830cb350fb9a3d1a.thumbnail.0000000000.jpg?v=1782150038&width=1100 1100w, 12276 //calistatools.com/cdn/shop/files/preview_images/d50bff2aa3f141da830cb350fb9a3d1a.thumbnail.0000000000.jpg?v=1782150038&width=1500 1500w, 12277 //calistatools.com/cdn/shop/files/preview_images/d50bff2aa3f141da830cb350fb9a3d1a.thumbnail.0000000000.jpg?v=1782150038&width=1780 1780w" 12278 sizes="(min-width: 1400px) calc((1400px - (10px * 3)) / 4), 12279 (min-width: 1024px) calc((100vw - (10px * 3)) / 4), 12280(min-width: 768px) calc(100vw / 3),calc(70vw + 20px) 12281" 12282 src="//calistatools.com/cdn/shop/files/preview_images/d50bff2aa3f141da830cb350fb9a3d1a.thumbnail.0000000000.jpg?v=1782150038&width=1780" 12283 alt="" 12284 class="object-cover z-10 absolute top-0 left-0 h-full w-full img-thumbnail aspect-[9/16] animate-Xpulse skeleton-image" 12285 loading="lazy" 12286 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 12287 width="606" 12288 height="1080" 12289 style="object-position:;" 12290 > 12291 12292 12293 <video x-on:mouseover="isHovered = true" x-on:mouseleave="isHovered = false" :control
12293s="isHovered" playsinline="playsinline" class="w-full h-full absolute top-0 left-0 video object-cover" preload="metadata" loading="lazy"><source src="//calistatools.com/cdn/shop/videos/c/vp/d50bff2aa3f141da830cb350fb9a3d1a/d50bff2aa3f141da830cb350fb9a3d1a.HD-1080p-3.3Mbps-87145792.mp4?v=0" type="video/mp4"><img loading="lazy" alt="" src="//calistatools.com/cdn/shop/files/preview_images/d50bff2aa3f141da830cb350fb9a3d1a.thumbnail.0000000000_1100x.jpg?v=1782150038"></video> 12294 12295 12296 <div class="button-play absolute top-1/2 left-1/2"> 12297 <div class="cursor-pointer absolute z-20 top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[60px] h-[60px] md:w-[60px] md:h-[60px] rounded-full pt-5 pb-5 pl-5 pr-5 bg-[rgba(var(--image-treatment-text),0.06)] hover:bg-[rgba(var(--image-treatment-text),0.1)] bg-opacity-30 disabled:cursor-not-allowed"> 12298 <span class="pointer-events-none duration-200 bg-button-play absolute w-4 h-5 md:w-4 md:h-5 top-1/2 left-1/2 -translate-y-1/2 -translate-x-1/2 text-[rgba(var(--image-treatment-text))]"> 12299 12300 <svg class="" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" style="fill: none"> 12301 <path d="M22.49 11.128L6.49 2.12804C6.18 1.95404 5.802 1.95804 5.496 2.13604C5.188 2.31604 5 2.64404 5 3.00004V21C5 21.356 5.188 21.684 5.496 21.864C5.652 21.954 5.826 22 6 22C6.168 22 6.338 21.958 6.49 21.872L22.49 12.872C22.804 12.694 23 12.362 23 12C23 11.638 22.804 11.306 22.49 11.128Z" fill="currentColor"/> 12302 </svg> 12303 12304 12305 </span> 12306 </div> 12307 </div> 12308 12309 12310 12311 12312 </div> 12313 12314 </div> 12315 12316 </div> 12317 12318 <template x-if="intersect"> 12319 <div 12320 x-cloak 12321 :class="{ 12322 'transform translate-y-0 bg-card-product' : showSlideListItemInVideoCard, 12323 'transform translate-y-full bg-[rgba(var(--background-color))]': !showSlideListItemInVideoCard, 12324 'opacity-0' : showSlideProductInVideoCard, 12325 'opacity-100': !showSlideProductInVideoCard 12326 }" 12327 class="product-list-container js-product-container pt-4 pb-4 slide-animation duration-500 ease-in-out overflow-hidden flex flex-col hover:cursor-default absolute top-0 bottom-0 left-0 right-0 border z-20 h-full" 12328 > 12329 <div class="flex justify-end pb-2.5 pl-5 pr-5"> 12330 <div 12331 @click="showSlideListItemInVideoCard = false" 12332 class="js-close-button hover:cursor-pointer rotate-90 pl-2.5 pr-2.5 pt-2.5 pb-2.5 w-[34px] h-[34px] border"> 12333 12334 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid meet"> 12335 <path fill="none" d="M8 1L19 12L8 23" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 12336 </svg> 12337 12338 12339 12340 </div> 12341 </div> 12342 <div class="overflow-y-auto scrollbar-body pl-5 pr-5 mt-auto mb-auto"> 12343 12344 12345 12346 12347 12348 12349 12350 <div > 12351 12352 12353 </div> 12354 12355 </div> 12356 </div> 12357 </template> 12358 12359 12360 </div> 12361 12362 </div> 12363 </div><div class=" md:hidden items-center flex w-full gap-5 mt-2.5 md:mt-5 md:w-3/4 ml-auto mr-auto"> 12364 <div class="splide-progress inline-block grow rounded-md"> 12365 <style data-shopify>.splide-progress-bar-template--26875474280758__video_shopping_8CyKxn { 12366 width: 25.0%; 12367 } 12368 @media (min-width: 768px) { 12369 .splide-progress-bar-template--26875474280758__video_shopping_8CyKxn { 12370 width: 100.0%; 12371 } 12372 }</style><div class="splide-progress-bar-template--26875474280758__video_shopping_8CyKxn splide-progress-bar rounded-md"></div> 12373 </div> 12374 </div></div> 12375</div> 12376<div id="video-shopping-popup-template--26875474280758__video_shopping_8CyKxn"></div>
12377<script src="//calistatools.com/cdn/shop/t/144/assets/video-shopping.js?v=114402501549956527711782330849" defer></script>
12377 12378 12379</section><section id="shopify-section-template--26875474280758__image_with_text_MENjxj" class="shopify-section section section-image-with-text x-section"> 12380<style data-shopify>.section-padding-template--26875474280758__image_with_text_MENjxj { 12381 padding-top: 0px; 12382 padding-bottom: 0px; 12383 } 12384 @media (min-width: 768px) { 12385 .section-padding-template--26875474280758__image_with_text_MENjxj { 12386 padding-top: 0px; 12387 padding-bottom: 0px; 12388 } 12389 } 12390 .iwt--template--26875474280758__image_with_text_MENjxj { 12391 12392 background: #fefbf9; 12393 --background-color: 254, 251, 249; 12394 12395 } 12396 .dark .iwt--template--26875474280758__image_with_text_MENjxj { 12397 12398 background: rgb(var(--colors-background-secondary)); 12399 --background-color: var(--colors-background-secondary); 12400 12401 }.mobile-template--26875474280758__image_with_text_MENjxj-natural { 12402 padding-bottom: 100.0%; 12403 }.border-radius-template--26875474280758__image_with_text_MENjxj { 12404 12405 12406 12407 } 12408 @media screen and (min-width: 768px) {.desktop-template--26875474280758__image_with_text_MENjxj-natural { 12409 padding-bottom: 100.0%; 12410 }} 12411 .border--template--26875474280758__image_with_text_MENjxj, .border--template--26875474280758__image_with_text_MENjxj:before { 12412 12413 --colors-line-and-border: var(--colors-line-and-border-base) 12414 12415 } 12416 .dark .border--template--26875474280758__image_with_text_MENjxj, .dark .border--template--26875474280758__image_with_text_MENjxj:before { 12417 12418 --colors-line-and-border: var(--colors-line-and-border-base) 12419 12420 } 12421 .icon--template--26875474280758__image_with_text_MENjxj { 12422 width: 24.5px; 12423 height: 24.5px; 12424 min-width: 24.5px; 12425 min-height: 24.5px; 12426 12427 color: #33322E; 12428 12429 } 12430 @media (min-width: 1024px){ 12431 .icon--template--26875474280758__image_with_text_MENjxj { 12432 width: 35px; 12433 height: 35px; 12434 min-width: 35px; 12435 min-height: 35px; 12436 } 12437 } 12438 .dark .icon--template--26875474280758__image_with_text_MENjxj { 12439 12440 color: rgb(var(--colors-text)); 12441 12442 } 12443 12444 .dark .color-text--template--26875474280758__image_with_text_MENjxj { 12445 12446 --colors-text: var(--colors-text-secondary); 12447 12448 } 12449 .columns-header-color--template--26875474280758__image_with_text_MENjxj { 12450 12451 --colors-heading: var(--colors-heading-secondary); 12452 12453 } 12454 .dark .columns-header-color--template--26875474280758__image_with_text_MENjxj { 12455 12456 --colors-heading: var(--colors-heading-secondary); 12457 12458 }</style><div class="ltr section-padding-template--26875474280758__image_with_text_MENjxj x-pgw page-width pr-5 pl-5"> 12459 <div class="image-with-text text-[rgb(var(--colors-text))] desktop-medium image-position-mobile-left border-radius-template--26875474280758__image_with_text_MENjxj normal image-position-right iwt--template--26875474280758__image_with_text_MENjxj" 12460 > 12461 12462 <div class="iwt-image border-radius-template--26875474280758__image_with_text_MENjxj md:w-1/2 promotion w-full flex"> 12463 <div class="promotion w-full relative md:h-auto min-h-[100%] md:promotion:h-[550px] md:promotion:pb-0 h-[400px] md:h-auto"> 12464 <div class="flex w-full h-full relative md:promotion:relative"> 12465 12466 12467 12468 12469 <div class="border-radius-template--26875474280758__image_with_text_MENjxj w-full overflow-hidden h-full"> 12470 <parallax-image class="block h-full w-full"> 12471 <parallax-movement x-data="xParallax" x-intersect.once.margin.200px="load(true)"> 12472 <img 12473 class="h-full w-full object-cover border-radius-template--26875474280758__image_with_text_MENjxj animate_transition_slide__image animate-Xpulse skeleton-image" 12474 srcset="//calistatools.com/cdn/shop/files/nani-jousse-hp-2400x2400.webp?v=1782875859&width=450 450w, 12475 //calistatools.com/cdn/shop/files/nani-jousse-hp-2400x2400.webp?v=1782875859&width=750 750w, 12476 //calistatools.com/cdn/shop/files/nani-jousse-hp-2400x2400.webp?v=1782875859&width=900 900w, 12477 //calistatools.com/cdn/shop/files/nani-jousse-hp-2400x2400.webp?v=1782875859&width=1100 1100w, 12478 //calistatools.com/cdn/shop/files/nani-jousse-hp-2400x2400.webp?v=1782875859&width=1500 1500w, 12479 //calistatools.com/cdn/shop/files/nani-jousse-hp-2400x2400.webp?v=1782875859 2400w" 12480 src="//calistatools.com/cdn/shop/files/nani-jousse-hp-2400x2400.webp?v=1782875859&width=1500" 12481 alt="" 12482 12483 12484 loading="lazy" 12485 12486 12487 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); this.closest('.animate_transition_slide__image')?.classList.add('active'); });" 12488 sizes=" 12489 12490 12491 (min-width: 1400px) 700.0px, (min-width: 768px) 50vw, 12492 12493 12494 100vw" 12495 width="2400" 12496 height="2400" 12497 style="object-position: 39.16% 36.328%" 12498 > 12499 </parallax-movement> 12500 </parallax-image> 12501 </div> 12502 12503 12504 12505 12506 </div> 12507 </div> 12508 </div> 12509 <div class="md:w-1/2 w-full flex justify-center md:justify-start iwt-content-no-overlap items-center md:justify-end" 12510 > 12511 <div class="iwt-content md:flex-1 w-full lg:pl-24 lg:pr-24"><style data-shopify>.heading-size--heading_GVF8aQ { 12512 font-size: 1.215rem; 12513 } 12514 .color-text-heading_GVF8aQ { 12515 12516 12517 } 12518 .dark .color-text-heading_GVF8aQ { 12519 12520 --colors-heading: var(--colors-heading-secondary); 12521 12522 12523 --colors-text: var(--colors-text-secondary); 12524 12525 } 12526 @media (min-width: 768px) { 12527 .heading-size--heading_GVF8aQ { 12528 font-size: 2.025rem; 12529 } 12530 }</style> 12531 <div class="x-block-text color-text-heading_GVF8aQ text-[rgb(var(--colors-text))] w-full mt-4 text-start rtl:text-right" > 12532 12533 <div class="overflow-hidden" x-intersect.once="$el.querySelector('.anm-move-up')?.classList.add('active-anm-heading')"> 12534 <p class="font-medium anm-move-up">Healthy hair starts at the scalp.</p> 12535 </div> 12536 12537 12538 <div class="mt-2 mb-1.5 md:mt-2.5 md:mb-3"> 12539 12540 12541 12542<style data-shopify> 12543 12544 .heading-heading_GVF8aQ { 12545 --color-highlight: #a6586b; 12546 } 12547 12548 .dark .heading-heading_GVF8aQ { 12549 12550 --color-highlight: rgb(145, 180, 116); 12551 12552 } 12553</style> 12554 12555 12556 12557 12558 <div class="overflow-hidden" x-intersect.once="$el.querySelector('.anm-move-up')?.classList.add('active-anm-heading'); setTimeout(() => { $el.querySelector('.anm-move-up')?.classList.remove('anm-move-up') }, 600)"> 12559 12560 12561 12562 <h2 12563 class='heading-heading_GVF8aQ h2 block anm-move-up heading-size--heading_GVF8aQ'> 12564 12565 12566 12567 Healthy Summer Hair 12568 12569 12570 </h2> 12571 12572 12573 </div> 12574 12575 12576 </div> 12577 12578 12579 12580 <div class="rte"><p>The JOUSSE Collection helps reverse damage and rebalance hair from scalp to ends for stronger, healthier strands. Powered by Saw Palmetto, Red Clover, Willow Herb, and other nourishing ingredients.</p></div> 12581 12582 </div> 12583 12584 12585 <div class="x-block-columns-container mt-2 grid grid-cols-1 md:grid-cols-2 gap-2.5 "> 12586 12587 12588 <style data-shopify> 12589 .heading-columns_fgmfxL { 12590 font-size: 0.9rem; 12591 } 12592 @media (min-width: 767px){ 12593 .heading-columns_fgmfxL { 12594 font-size: 1.125rem; 12595 } 12596 } 12597 </style> 12598 <div class="x-block-columns pt-5 pb-5 pl-5 pr-5 relative grid-item flex flex-row border border--template--26875474280758__image_with_text_MENjxj 12599 items-center justify-left col-span-1 md:col-span-1 rounded-none border-0" 12600 > 12601 12602
12603 <span class="inline-block icon--template--26875474280758__image_with_text_MENjxj self-center"> 12604 12605 12606 <img 12607 src="//calistatools.com/cdn/shop/files/calista-check-circle-icon-33322e-thin.svg?v=1782772660&width=35" 12608 alt="" 12609 loading="lazy" 12610 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 12611 width="1024" 12612 height="1024" 12613 style="object-position: 48.242% 51.66%" 12614 class="object-cover w-full h-full animate-Xpulse skeleton-image" 12615 > 12616 12617 12618 </span> 12619 12620 12621 <div class="pl-2.5 pr-2.5"> 12622 12623 12624 <div class="color-text--template--26875474280758__image_with_text_MENjxj rte text-left p-break-words text-[rgb(var(--colors-text))]"> 12625 <p>Helps reverse damage</p> 12626 </div> 12627 12628 </div> 12629 </div> 12630 12631 12632 12633 12634 <style data-shopify> 12635 .heading-columns_f97mDN { 12636 font-size: 0.9rem; 12637 } 12638 @media (min-width: 767px){ 12639 .heading-columns_f97mDN { 12640 font-size: 1.125rem; 12641 } 12642 } 12643 </style> 12644 <div class="x-block-columns pt-5 pb-5 pl-5 pr-5 relative grid-item flex flex-row border border--template--26875474280758__image_with_text_MENjxj 12645 items-center justify-left col-span-1 md:col-span-1 rounded-none border-0" 12646 > 12647 12648 12649 <span class="inline-block icon--template--26875474280758__image_with_text_MENjxj self-center"> 12650 12651 12652 <img 12653 src="//calistatools.com/cdn/shop/files/calista-check-circle-icon-33322e-thin.svg?v=1782772660&width=35" 12654 alt="" 12655 loading="lazy" 12656 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 12657 width="1024" 12658 height="1024" 12659 style="object-position: 48.242% 51.66%" 12660 class="object-cover w-full h-full animate-Xpulse skeleton-image" 12661 > 12662 12663 12664 </span> 12665 12666 12667 <div class="pl-2.5 pr-2.5"> 12668 12669 12670 <div class="color-text--template--26875474280758__image_with_text_MENjxj rte text-left p-break-words text-[rgb(var(--colors-text))]"> 12671 <p>Fortifies follicles</p> 12672 </div> 12673 12674 </div> 12675 </div> 12676 12677 12678 12679 12680 <style data-shopify> 12681 .heading-columns_a3H9Fa { 12682 font-size: 0.9rem; 12683 } 12684 @media (min-width: 767px){ 12685 .heading-columns_a3H9Fa { 12686 font-size: 1.125rem; 12687 } 12688 } 12689 </style> 12690 <div class="x-block-columns pt-5 pb-5 pl-5 pr-5 relative grid-item flex flex-row border border--template--26875474280758__image_with_text_MENjxj 12691 items-center justify-left col-span-1 md:col-span-1 rounded-none border-0" 12692 > 12693 12694 12695 <span class="inline-block icon--template--26875474280758__image_with_text_MENjxj self-center"> 12696 12697 12698 <img 12699 src="//calistatools.com/cdn/shop/files/calista-check-circle-icon-33322e-thin.svg?v=1782772660&width=35" 12700 alt="" 12701 loading="lazy" 12702 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 12703 width="1024" 12704 height="1024" 12705 style="object-position: 48.242% 51.66%" 12706 class="object-cover w-full h-full animate-Xpulse skeleton-image" 12707 > 12708 12709 12710 </span> 12711 12712 12713 <div class="pl-2.5 pr-2.5"> 12714 12715 12716 <div class="color-text--template--26875474280758__image_with_text_MENjxj rte text-left p-break-words text-[rgb(var(--colors-text))]"> 12717 <p>
12717Balances scalp</p> 12718 </div> 12719 12720 </div> 12721 </div> 12722 12723 12724 12725 12726 <style data-shopify> 12727 .heading-columns_XEeaEL { 12728 font-size: 0.9rem; 12729 } 12730 @media (min-width: 767px){ 12731 .heading-columns_XEeaEL { 12732 font-size: 1.125rem; 12733 } 12734 } 12735 </style> 12736 <div class="x-block-columns pt-5 pb-5 pl-5 pr-5 relative grid-item flex flex-row border border--template--26875474280758__image_with_text_MENjxj 12737 items-center justify-left col-span-1 md:col-span-1 rounded-none border-0" 12738 > 12739 12740 12741 <span class="inline-block icon--template--26875474280758__image_with_text_MENjxj self-center"> 12742 12743 12744 <img 12745 src="//calistatools.com/cdn/shop/files/calista-check-circle-icon-33322e-thin.svg?v=1782772660&width=35" 12746 alt="" 12747 loading="lazy" 12748 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 12749 width="1024" 12750 height="1024" 12751 style="object-position: 48.242% 51.66%" 12752 class="object-cover w-full h-full animate-Xpulse skeleton-image" 12753 > 12754 12755 12756 </span> 12757 12758 12759 <div class="pl-2.5 pr-2.5"> 12760 12761 12762 <div class="color-text--template--26875474280758__image_with_text_MENjxj rte text-left p-break-words text-[rgb(var(--colors-text))]"> 12763 <p>Enhances softness</p> 12764 </div> 12765 12766 </div> 12767 </div> 12768 12769 12770 12771 12772 </div> 12773 12774 12775 <style data-shopify> 12776 .button-button_qNMBPA, .button-button_qNMBPA *:before { 12777 12778 12779 12780 12781 12782 12783 12784 } 12785 .dark .button-button_qNMBPA, .dark .button-button_qNMBPA *:before { 12786 12787 --colors-button: 255, 255, 255; 12788 12789 12790 --colors-button-text: 40, 41, 40; 12791 12792 12793 --colors-button-hover: rgb(255, 255, 255); 12794 12795 12796 --colors-button-text-hover: 40, 41, 40; 12797 12798 12799 --colors-secondary-button: 255, 255, 255; 12800 --colors-line-secondary-button: 255, 255, 255; 12801 12802 12803 --background-secondary-button: transparent; 12804 12805 12806 --colors-text-link: 145, 180, 116; 12807 12808 } 12809 </style> 12810 <div class="button-button_qNMBPA mb-9 md:mb-4 flex justify-start rtl:justify-right mt-4 md:mt-8" 12811 12812 > 12813 12814 <a class="button button-solid leading-normal empty:hidden text-center pl-7 pr-7 pt-2.5 pb-2.5 md:pl-8 md:pr-8 md:pt-3 md:pb-3" href="/collections/the-jousse-line"> 12815 12816<div class="flex justify-center "> 12817 12818 12819 12820 <span class="button-text is-focus-button:opacity-0">SHOP JOUSSE</span> 12821 12822 12823 12824 12825</div> 12826 </a> 12827 12828 </div> 12829 12830 12831 12832 </div> 12833 </div> 12834 </div> 12835</div> 12836 12837</section><section id="shopify-section-template--26875474280758__rich_text_Rnqwba" class="shopify-section section section-rich-text x-section"><style data-shopify>#shopify-section-template--26875474280758__rich_text_Rnqwba{ 12838 12839 background: #ffffff; 12840 --background-color: 255, 255, 255; 12841 12842 } 12843 .dark #shopify-section-template--26875474280758__rich_text_Rnqwba{background: #282928; 12844 --background-color: 40,41,40;} 12845 .section--template--26875474280758__rich_text_Rnqwba { 12846 12847 12848 } 12849 .dark .section--template--26875474280758__rich_text_Rnqwba { 12850 12851 --colors-text: 225, 227, 225; 12852 12853 12854 --colors-heading: 255, 255, 255; 12855 12856 } 12857 .section-padding-template--26875474280758__rich_text_Rnqwba { 12858 padding-top: 28px; 12859 padding-bottom: 28px; 12860 } 12861 @media (min-width: 768px) { 12862 .section-padding-template--26875474280758__rich_text_Rnqwba { 12863 padding-top: 28px; 12864 padding-bottom: 28px; 12865 } 12866 }</style><div class="section--template--26875474280758__rich_text_Rnqwba relative x-pgw page-width mr-auto ml-auto section-padding-template--26875474280758__rich_text_Rnqwba"> 12867 <div class="md:flex justify-center"> 12868 <div class="x-container-rich-text w-full max-w-4xl text-center rtl:text-center md:text-center rtl:md:text-center"> 12869 <style data-shopify> 12870 @media (min-width: 768px) { 12871 .width-media_WHiwJz { 12872 width: 60%; 12873 } 12874 } 12875 </style> 12876 12877 <div class="x-block-image mt-5 mb-5 empty:hidden flex justify-center md:justify-center"> 12878<div class="width-media_WHiwJz overflow-hidden"> 12879 <img src="//calistatools.com/cdn/shop/files/2026_Calista_Branding-06.png?v=1782857628&width=1780" alt="" srcset="//calistatools.com/cdn/shop/files/2026_Calista_Branding-06.png?v=1782857628&width=375 375w, //calistatools.com/cdn/shop/files/2026_Calista_Branding-06.png?v=1782857628&width=450 450w, //calistatools.com/cdn/shop/files/2026_Calista_Branding-06.png?v=1782857628&width=750 750w, //calistatools.com/cdn/shop/files/2026_Calista_Branding-06.png?v=1782857628&width=900 900w, //calistatools.com/cdn/shop/files/2026_Calista_Branding-06.png?v=1782857628&width=1100 1100w, //calistatools.com/cdn/shop/files/2026_Calista_Branding-06.png?v=1782857628&width=1500 1500w, //calistatools.com/cdn/shop/files/2026_Calista_Branding-06.png?v=1782857628&width=1780 1780w, //calistatools.com/cdn/shop/files/2026_Calista_Branding-06.png?v=1782857628&width=924 924w" width="1780" height="192" loading="lazy" sizes="(min-width: 1400px) 924px ,(min-width: 768px) 60vw, 100vw" class="w-full" style="object-position:50.0% 49.414%;"> 12880 </div></div> 12881 12882 <div 12883 x-intersect.once="$el.classList.add('is-visible')" 12884 class="x-block-text p-break-words rte pt-2 pb-2 leading-tight text-[rgb(var(--colors-text))] anm-fade-element" 12885 12886 > 12887 <div class="rte"><p>Unlike mass-market formulas or complicated professional tools, Calista delivers hair-healthy ingredients, versatile designs, and step-by-step styling tutorials â empowering women of every age and stage to style their hair with confidence.â</p></div> 12888</div> 12889 <style data-shopify> 12890 .button--button_L7RQmA.button-solid, 12891 .button--button_L7RQmA.button-solid:before {--colors-line-and-border: var(--colors-button);} 12892 .button--button_L7RQmA.button-outline { 12893 12894 } 12895 12896 </style> 12897 12898 <div 12899 x-intersect.once="$el.classList.add('is-visible')"
12900 class="x-block-button justify-center rtl:justify-center md:justify-center rtl:md:justify-center w-full anm-fade-element mb-3 p-break-words mt-2 md:mt-3" 12901 12902 > 12903 12904 <a 12905 href="/pages/our-story" 12906 class="button button--button_L7RQmA pt-2.5 pb-2.5 pl-7 pr-7 md:pl-9 md:pr-9 md:pt-3 md:pb-3 button-solid text-center inline-block border empty:hidden leading-normal" 12907 > 12908 12909<div class="flex justify-center "> 12910 12911 12912 12913 <span class="button-text is-focus-button:opacity-0">Learn More</span> 12914 12915 12916 12917 12918</div> 12919 </a> 12920 12921 12922 </div> 12923 12924 12925 12926 </div> 12927 </div> 12928</div> 12929 12930</section><section id="shopify-section-template--26875474280758__multicolumn_twmwMQ" class="shopify-section section section-multicolumn x-section"><style data-shopify>.heading-template--26875474280758__multicolumn_twmwMQ { 12931 font-size: 1.215rem; 12932 } 12933 .size-icon-template--26875474280758__multicolumn_twmwMQ { 12934 width: 47.6px; 12935 height: 47.6px; 12936 } 12937 12938 .color-icon--template--26875474280758__multicolumn_twmwMQ { 12939 12940 color: #33322E; 12941 12942 } 12943 .dark .color-icon--template--26875474280758__multicolumn_twmwMQ { 12944 12945 color: rgb(var(--colors-text)); 12946 12947 } 12948 .bg-template--26875474280758__multicolumn_twmwMQ { 12949 12950 background: rgb(var(--colors-background-secondary)); 12951 12952 } 12953 .dark .bg-template--26875474280758__multicolumn_twmwMQ { 12954 12955 background: rgb(var(--colors-background-secondary)); 12956 12957 } 12958 12959 12960 12961 .dark .color-text--template--26875474280758__multicolumn_twmwMQ { 12962 12963 --colors-text: var(--colors-text-secondary); 12964 12965 } 12966 .dark .color--template--26875474280758__multicolumn_twmwMQ { 12967 12968 --colors-line-and-border: 49, 49, 49; 12969 12970 12971 --colors-heading: var(--colors-heading-secondary); 12972 12973 } 12974 12975 @media (min-width: 1024px){ 12976 .heading-template--26875474280758__multicolumn_twmwMQ { 12977 font-size: 2.025rem; 12978 } 12979 .size-icon-template--26875474280758__multicolumn_twmwMQ { 12980 width: 68px; 12981 height: 68px; 12982 } 12983 12984 .spacing-desktop-template--26875474280758__multicolumn_twmwMQ { 12985 padding: 5.0px; 12986 } 12987 .spacing-desktop-template--26875474280758__multicolumn_twmwMQ-splide { 12988 margin: -5.0px!important; 12989 } 12990 12991 12992 } 12993 @media (max-width: 1023px) { 12994 .spacing--template--26875474280758__multicolumn_twmwMQ { 12995 12996 padding-left: 1.5px; 12997 padding-right: 1.5px; 12998 12999 padding-top: 1.5px; 13000 padding-bottom: 1.5px; 13001 } 13002 13003 } 13004 @media (max-width: 767px) { 13005 13006 .spacing--template--26875474280758__multicolumn_twmwMQ-splide { 13007 margin: -1.5px!important; 13008 } 13009 13010 } 13011 .section-padding-template--26875474280758__multicolumn_twmwMQ { 13012 padding-top: 4px; 13013 padding-bottom: 12px; 13014 } 13015 @media (min-width: 768px) { 13016 .section-padding-template--26875474280758__multicolumn_twmwMQ { 13017 padding-top: 4px; 13018 padding-bottom: 8px; 13019 } 13020 }</style><div class=" x-pgw page-width pr-5 pl-5 mt-auto mb-auto mr-auto ml-auto"> 13021 <div class="divider mt-auto mb-auto mr-auto ml-auto border-t md:block"></div> 13022</div> 13023 13024 <div class=" section-padding-template--26875474280758__multicolumn_twmwMQ section--template--26875474280758__multicolumn_twmwMQ"> 13025 13026 <div class="x-block-columns text-column-with-icon color--template--26875474280758__multicolumn_twmwMQ mx-auto x-pgw page-width"> 13027 <div 13028 x-intersect.once='$el.classList.add("is-ready-to-animate")' 13029 > 13030 <div class="splide__track lg:pt-0.5 lg:pb-0.5"> 13031 <div class="splide__list flex lg:flex lg:flex-wrap lg:justify-center lg:gap-0 lg:w-auto spacing-desktop-template--26875474280758__multicolumn_twmwMQ-splide justify-center flex-wrap spacing--template--26875474280758__multicolumn_twmwMQ-splide" 13032 ><style data-shopify>.x-slide-animation-duration-1 { 13033 --delay-time: 0ms 13034 } 13035 .heading-column_xcQLtF { 13036 font-size: 0.72rem; 13037 } 13038 @media (min-width: 767px) { 13039 .heading-column_xcQLtF { 13040 font-size: 0.9rem; 13041 } 13042 }</style><div 13043 x-slide-index="0" 13044 id="Slide-template--26875474280758__multicolumn_twmwMQ-1" 13045 class=" text-with-icon-item spacing-desktop-template--26875474280758__multicolumn_twmwMQ md:w-1/2 lg:w-1/4 w-1/2 spacing--template--26875474280758__multicolumn_twmwMQ relative after:absolute after:right-0 after:top-1/2 after:-translate-y-1/2 line-slider--template--26875474280758__multicolumn_twmwMQ line-slider-mobile--template--26875474280758__multicolumn_twmwMQ after:w-0 after:border-solid after:h-[50%] after:border-l after:lg:border-l after:lg:border-l last:after:border-l-0 last:after:lg:border-l-0" 13046 > 13047 <div class="h-full py-0 md:py-0 justify-center md:pl-7 md:pr-7 pl-5 pr-5" > 13048 13049 13050 <div class="flex pt-2 justify-center items-center mb-2">
13051 <span class="inline-block relative size-icon-template--26875474280758__multicolumn_twmwMQ color-icon--template--26875474280758__multicolumn_twmwMQ animate-Xpulse skeleton-image"> 13052 13053 13054 <img 13055 src="//calistatools.com/cdn/shop/files/Calista_Website_Thumbnails_2026_free_shipping_64x64_faf4b193-b4c0-40ab-9df4-eb73b758d821.svg?v=1778526092&width=68" 13056 alt="" 13057 loading="lazy" 13058 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 13059 width="64" 13060 height="64" 13061 style="object-position: 49.121% 48.926%" 13062 class="object-cover absolute top-0 left-0 w-full h-full" 13063 > 13064 13065 13066 </span> 13067 </div> 13068 13069 13070 <div class="pt-2"> 13071 13072 <p class="h3 empty:hidden p-break-words heading-column_xcQLtF text-center leading-tight"> 13073 13074 13075 13076 13077<style data-shopify> 13078 13079 .dark .heading-column_xcQLtF { 13080 13081 --color-highlight: rgb(145, 180, 116); 13082 13083 } 13084</style> 13085 13086 13087 13088 13089 13090 13091 13092 13093 Free Shipping 13094 13095 13096 13097 13098 13099 13100 13101 </p> 13102 13103 13104 <div class="color-text--template--26875474280758__multicolumn_twmwMQ rte text-center p-break-words text-[rgb(var(--colors-text))]"> 13105 <p>On orders $75+</p> 13106 </div> 13107 13108 </div> 13109 </div> 13110 </div><style data-shopify>.x-slide-animation-duration-2 { 13111 --delay-time: 100ms 13112 } 13113 .heading-column_6RDXRh { 13114 font-size: 0.72rem; 13115 } 13116 @media (min-width: 767px) { 13117 .heading-column_6RDXRh { 13118 font-size: 0.9rem; 13119 } 13120 }</style><div 13121 x-slide-index="1" 13122 id="Slide-template--26875474280758__multicolumn_twmwMQ-2" 13123 class=" text-with-icon-item spacing-desktop-template--26875474280758__multicolumn_twmwMQ md:w-1/2 lg:w-1/4 w-1/2 spacing--template--26875474280758__multicolumn_twmwMQ relative after:absolute after:right-0 after:top-1/2 after:-translate-y-1/2 line-slider--template--26875474280758__multicolumn_twmwMQ line-slider-mobile--template--26875474280758__multicolumn_twmwMQ after:w-0 after:border-solid after:h-[50%] after:border-l-0 after:lg:border-l-0 after:lg:border-l last:after:border-l-0 last:after:lg:border-l-0" 13124 > 13125 <div class="h-full py-0 md:py-0 justify-center md:pl-7 md:pr-7 pl-5 pr-5" > 13126 13127 13128 <div class="flex pt-2 justify-center items-center mb-2"> 13129 <span class="inline-block relative size-icon-template--26875474280758__multicolumn_twmwMQ color-icon--template--26875474280758__multicolumn_twmwMQ animate-Xpulse skeleton-image"> 13130 13131 13132 <img 13133 src="//calistatools.com/cdn/shop/files/Calista_Website_Thumbnails_2026_30-day_64x64_92ee0d68-0b34-4e50-a45e-b65e8bb2940e.svg?v=1778526092&width=68" 13134 alt="" 13135 loading="lazy" 13136 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 13137 width="64" 13138 height="64" 13139 style="object-position: 49.121% 48.242%" 13140 class="object-cover absolute top-0 left-0 w-full h-full" 13141 > 13142 13143 13144 </span> 13145 </div> 13146 13147 13148 <div class="pt-2"> 13149 13150 <p class="h3 empty:hidden p-break-words heading-column_6RDXRh text-center leading-tight"> 13151 13152 13153 13154 13155<style data-shopify> 13156 13157 .dark .heading-column_6RDXRh { 13158 13159 --color-highlight: rgb(145, 180, 116); 13160 13161 } 13162</style> 13163 13164 13165 13166 13167 13168 13169 13170 13171 30-Day Returns 13172 13173 13174 13175 13176 13177 13178 13179 </p> 13180 13181 13182 <div class="color-text--template--26875474280758__multicolumn_twmwMQ rte text-center p-break-words text-[rgb(var(--colors-text))]"> 13183 <p>On full-priced products</p> 13184 </div> 13185 13186 </div> 13187 </div> 13188 </div><style data-shopify>
13188.x-slide-animation-duration-3 { 13189 --delay-time: 200ms 13190 } 13191 .heading-column_kzdfjm { 13192 font-size: 0.72rem; 13193 } 13194 @media (min-width: 767px) { 13195 .heading-column_kzdfjm { 13196 font-size: 0.9rem; 13197 } 13198 }</style><div 13199 x-slide-index="2" 13200 id="Slide-template--26875474280758__multicolumn_twmwMQ-3" 13201 class=" text-with-icon-item spacing-desktop-template--26875474280758__multicolumn_twmwMQ md:w-1/2 lg:w-1/4 w-1/2 spacing--template--26875474280758__multicolumn_twmwMQ relative after:absolute after:right-0 after:top-1/2 after:-translate-y-1/2 line-slider--template--26875474280758__multicolumn_twmwMQ line-slider-mobile--template--26875474280758__multicolumn_twmwMQ after:w-0 after:border-solid after:h-[50%] after:border-l after:lg:border-l after:lg:border-l last:after:border-l-0 last:after:lg:border-l-0" 13202 > 13203 <div class="h-full py-0 md:py-0 justify-center md:pl-7 md:pr-7 pl-5 pr-5" > 13204 13205 13206 <div class="flex pt-2 justify-center items-center mb-2"> 13207 <span class="inline-block relative size-icon-template--26875474280758__multicolumn_twmwMQ color-icon--template--26875474280758__multicolumn_twmwMQ animate-Xpulse skeleton-image"> 13208 13209 13210 <img 13211 src="//calistatools.com/cdn/shop/files/Calista_Website_Thumbnails_2026_1-year_64x64_8829a845-158b-438f-a082-29507d0a67d4.svg?v=1778526092&width=68" 13212 alt="" 13213 loading="lazy" 13214 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 13215 width="64" 13216 height="64" 13217 style="object-position: 49.121% 49.121%" 13218 class="object-cover absolute top-0 left-0 w-full h-full" 13219 > 13220 13221 13222 </span> 13223 </div> 13224 13225 13226 <div class="pt-2"> 13227 13228 <p class="h3 empty:hidden p-break-words heading-column_kzdfjm text-center leading-tight"> 13229 13230 13231 13232 13233<style data-shopify> 13234 13235 .dark .heading-column_kzdfjm { 13236 13237 --color-highlight: rgb(145, 180, 116); 13238 13239 } 13240</style> 13241 13242 13243 13244 13245 13246 13247 13248 13249 1-Year Warranty 13250 13251 13252 13253 13254 13255 13256 13257 </p> 13258 13259 13260 <div class="color-text--template--26875474280758__multicolumn_twmwMQ rte text-center p-break-words text-[rgb(var(--colors-text))]"> 13261 <p>On full-priced hair tools</p> 13262 </div> 13263 13264 </div> 13265 </div> 13266 </div><style data-shopify>.x-slide-animation-duration-4 { 13267 --delay-time: 300ms 13268 } 13269 .heading-column_MBU44q { 13270 font-size: 0.72rem; 13271 } 13272 @media (min-width: 767px) { 13273 .heading-column_MBU44q { 13274 font-size: 0.9rem; 13275 } 13276 }</style><div 13277 x-slide-index="3" 13278 id="Slide-template--26875474280758__multicolumn_twmwMQ-4" 13279 class=" text-with-icon-item spacing-desktop-template--26875474280758__multicolumn_twmwMQ md:w-1/2 lg:w-1/4 w-1/2 spacing--template--26875474280758__multicolumn_twmwMQ relative after:absolute after:right-0 after:top-1/2 after:-translate-y-1/2 line-slider--template--26875474280758__multicolumn_twmwMQ line-slider-mobile--template--26875474280758__multicolumn_twmwMQ after:w-0 after:border-solid after:h-[50%] after:border-l-0 after:lg:border-l-0 after:lg:border-l-0 last:after:border-l-0 last:after:lg:border-l-0" 13280 > 13281 <div class="h-full py-0 md:py-0 justify-center md:pl-7 md:pr-7 pl-5 pr-5" > 13282 13283 13284 <div class="flex pt-2 justify-center items-center mb-2">
13285 <span class="inline-block relative size-icon-template--26875474280758__multicolumn_twmwMQ color-icon--template--26875474280758__multicolumn_twmwMQ animate-Xpulse skeleton-image"> 13286 13287 13288 <img 13289 src="//calistatools.com/cdn/shop/files/trust-badge-stylist-created-80x80.svg?v=1781585036&width=68" 13290 alt="" 13291 loading="lazy" 13292 onload="requestAnimationFrame(() => { this.closest('.skeleton-image')?.classList.remove('animate-Xpulse', 'skeleton-image'); });" 13293 width="80" 13294 height="80" 13295 style="object-position: 41.699% 51.66%" 13296 class="object-cover absolute top-0 left-0 w-full h-full" 13297 > 13298 13299 13300 </span> 13301 </div> 13302 13303 13304 <div class="pt-2"> 13305 13306 <p class="h3 empty:hidden p-break-words heading-column_MBU44q text-center leading-tight"> 13307 13308 13309 13310 13311<style data-shopify> 13312 13313 .dark .heading-column_MBU44q { 13314 13315 --color-highlight: rgb(145, 180, 116); 13316 13317 } 13318</style> 13319 13320 13321 13322 13323 13324 13325 13326 13327 Stylist-Created 13328 13329 13330 13331 13332 13333 13334 13335 </p> 13336 13337 13338 <div class="color-text--template--26875474280758__multicolumn_twmwMQ rte text-center p-break-words text-[rgb(var(--colors-text))]"> 13339 <p>Made for everyday ease</p> 13340 </div> 13341 13342 </div> 13343 </div> 13344 </div></div> 13345 </div></div> 13346 </div> 13347 </div> 13348 13349</section> 13350 </main> 13351 13352 <!-- BEGIN sections: footer-group --> 13353<section id="shopify-section-sections--26875466121526__custom_liquid_HpzicU" class="shopify-section shopify-section-group-footer-group section section-custom-liquid x-section"><style data-shopify> 13354 .custom-liquid ul { 13355 list-style: disc; 13356 } 13357 .section-padding-sections--26875466121526__custom_liquid_HpzicU { 13358 padding-top: 0px; 13359 padding-bottom: 0px; 13360 } 13361 @media (min-width: 768px) { 13362 .section-padding-sections--26875466121526__custom_liquid_HpzicU { 13363 padding-top: 0px; 13364 padding-bottom: 0px; 13365 } 13366 } 13367</style> 13368 13369<div class="relative mr-auto ml-auto section-padding-sections--26875466121526__custom_liquid_HpzicU"> 13370 <div class="custom-liquid x-pgw page-width"> 13371 <style data-shopify> 13372 13373</style> 13374 </div> 13375</div> 13376</section><div id="shopify-section-sections--26875466121526__footer" class="shopify-section shopify-section-group-footer-group section-footer"> 13377<style data-shopify> 13378 #section-footer { 13379 contain: style layout; 13380 } 13381 .section-padding-sections--26875466121526__footer { 13382 padding-top: 0px; 13383 padding-bottom: 28px; 13384 } 13385 @media (min-width: 768px) { 13386 .section-padding-sections--26875466121526__footer { 13387 padding-top: 0px; 13388 padding-bottom: 20px; 13389 } 13390 } 13391</style> 13392<div id="section-footer" class="section-footer relative background-footer sticky-footer selection:bg-[rgba(var(--colors-text-footer),0.2)] section-padding-sections--26875466121526__footer"><div class="flex-wrap md:mb-5 md:border-b md:border-b-solid md:pt-12 md:pb-7"> 13393 <div class="pt-6 md:pt-0 md:flex justify-center md:mt-auto md:mb-auto md:mr-auto md:ml-auto md:pr-0 rtl:md:pr-5 rtl:md:pl-0 x-pgw page-width flex-wrap"> 13394 <div class="footer-col--1 md:pr-5 rtl:md:pr-0 md:first:pl-0 rtl:md:pl-5 rtl:md:first:pr-0 md:mb-7 md:pl-0 w-full md:w-1/4 ltr" ><div x-data="{ open: true }" class="x-block-email pt-4 md:pb-5"> 13395 <div @click="open = ! open" class="relative pr-5 rtl:pr-0 rtl:pl-5 cursor-pointer md:cursor-default duration-200 transition"> 13396 <p class="h6 text-[115%]">Stay updated on new launches, promos, tips and more.</p>
13397 <span class="md:hidden absolute w-2.5 h-2.5 top-1/2 -translate-y-1/2 duration-500 flex right-3.5 rtl:right-auto rtl:left-3.5" :class="open ? 'rotate-180' : ''"> 13398 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 13399 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 13400 </svg> 13401</span> 13402 </div> 13403 <div class="hidden md:block"><form method="post" action="/contact#ContactFooter" id="ContactFooter" accept-charset="UTF-8" class="footer__newsletter newsletter-form mb-5"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /><input type="hidden" aria-hidden="true" name="contact[tags]" value="newsletter"> 13404 <div class="mt-4 flex"> 13405 <div class="relative w-full"> 13406 <input 13407 id="NewsletterFormDesktop--sections--26875466121526__footer" 13408 type="email" 13409 name="contact[email]" 13410 aria-label="Email" 13411 class="w-full h-full pl-2.5 pr-4 pt-5 input border-b-2 border-current rounded-none border-b-solid focus:outline-none focus:border-current bg-transparent placeholder:opacity-0" 13412 aria-required="true" 13413 autocorrect="off" 13414 autocapitalize="off" 13415 autocomplete="email" 13416 13417 placeholder="Email" 13418 required> 13419 <label class="absolute top-1/2 left-2.5 rtl:left-auto rtl:right-2.5 -translate-y-1/2 input_focus:text-xs input_focus:top-2.5 input_not_empty:top-2.5 input_not_empty:text-xs" for="NewsletterFormDesktop--sections--26875466121526__footer"> 13420 Email 13421 </label> 13422 </div> 13423 <div> 13424 <button type="submit" class="rounded-none border-solid border-current ml-1 w-12 h-full flex justify-center items-center bg-transparent border-b-2 border-b-solid border-x-0 border-t-0" name="commit" aria-label="Subscribe"> 13425 <span class="rtl:rotate-180"> 13426 <svg width="100%" height="100%" class=" h-[var(--base-font-size)] w-[var(--base-font-size)]" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 13427 <path fill="none" d="M15.7122 20L23 12.5L15.7122 5M1 12.5001H21.5834" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 13428 </svg> 13429 13430</span> 13431 </button> 13432 </div></div></form> 13433 <div class="rte"><p>Plus get 15% off your first order.</p></div> 13434 13435<div class="mt-4"> 13436<div id="selector-social" class=" flex flex-col items-center md:items-start mr-auto ml-auto"> 13437 13438 <ul class="social-list flex flex-wrap pt-2.5 pb-2.5 gap-2 justify-center md:justify-start" role="list"> 13439<li> 13440 <a href="https://www.facebook.com/calistabymariamccool" target="blank" aria-label="Facebook" class="flex disable-effect hover-text-link w-11 h-11 pt-3 pr-3 pb-3 pl-3 border border-solid rounded-full"> 13441 <svg class="icon-animation" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 13442 <path d="M17.6477 13.4987L18.322 9.15733H14.1091V6.34132C14.1091 5.15199 14.6971 3.99467 16.5851 3.99467H18.5V0.293323C18.5 0.293323 16.7631 0 15.0963 0C11.6278 0 9.35684 2.07999 9.35684 5.84533V9.15733H5.5V13.4987H9.35684V24H14.1037V13.4987H17.6477Z" fill="currentColor"/> 13443 </svg> 13444 13445</a> 13446 </li><li> 13447 <a href="https://www.pinterest.com/calistatools/" target="blank" aria-label="Pinterest" class="flex disable-effect hover-text-link w-11 h-11 pt-3 pr-3 pb-3 pl-3 border border-solid rounded-full"> 13448 <svg class="icon-animation" width="100%" height="100%" viewB
13448ox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 13449 <path d="M12 0C5.37188 0 0 5.37188 0 12C0 17.0859 3.16406 21.4266 7.62656 23.175C7.52344 22.2234 7.425 20.7703 7.66875 19.7344C7.88906 18.7969 9.075 13.7719 9.075 13.7719C9.075 13.7719 8.71406 13.0547 8.71406 11.9906C8.71406 10.3219 9.67969 9.075 10.8844 9.075C11.9062 9.075 12.4031 9.84375 12.4031 10.7672C12.4031 11.7984 11.7469 13.3359 11.4094 14.7609C11.1281 15.9562 12.0094 16.9313 13.1859 16.9313C15.3187 16.9313 16.9594 14.6812 16.9594 11.4375C16.9594 8.56406 14.8969 6.55313 11.9484 6.55313C8.53594 6.55313 6.52969 9.1125 6.52969 11.7609C6.52969 12.7922 6.92812 13.8984 7.425 14.4984C7.52344 14.6156 7.5375 14.7234 7.50937 14.8406C7.42031 15.2203 7.21406 16.0359 7.17656 16.2C7.125 16.4203 7.00313 16.4672 6.77344 16.3594C5.27344 15.6609 4.33594 13.4719 4.33594 11.7094C4.33594 7.92188 7.0875 4.44844 12.2625 4.44844C16.425 4.44844 19.6594 7.41563 19.6594 11.3813C19.6594 15.5156 17.0531 18.8438 13.4344 18.8438C12.2203 18.8438 11.0766 18.2109 10.6828 17.4656C10.6828 17.4656 10.0828 19.7578 9.9375 20.3203C9.66562 21.3609 8.93437 22.6688 8.44687 23.4656C9.57187 23.8125 10.7625 24 12 24C18.6281 24 24 18.6281 24 12C24 5.37188 18.6281 0 12 0Z" fill="currentColor"/> 13450 </svg> 13451 13452</a> 13453 </li><li> 13454 <a href="https://www.instagram.com/calistatools/" target="blank" aria-label="Instagram" class="flex disable-effect hover-text-link w-11 h-11 pt-3 pr-3 pb-3 pl-3 border border-solid rounded-full"> 13455 <svg class="icon-animation" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 24 24" fill="currentColor"> 13456 <path 13457 d="M12.007 2.1622C15.2152 2.1622 15.5951 2.17628 16.8568 2.23256C18.0293 2.28415 18.6625 2.48114 19.0846 2.6453C19.6428 2.86105 20.0461 3.12371 20.4636 3.54114C20.8857 3.96326 21.1436 4.36193 21.3594 4.92007C21.5236 5.34219 21.7205 5.98007 21.7721 7.14794C21.8284 8.4143 21.8425 8.79422 21.8425 11.9977C21.8425 15.2058 21.8284 15.5857 21.7721 16.8474C21.7205 18.0199 21.5236 18.6531 21.3594 19.0752C21.1436 19.6334 20.881 20.0367 20.4636 20.4542C20.0414 20.8763 19.6428 21.1343 19.0846 21.35C18.6625 21.5142 18.0246 21.7112 16.8568 21.7628C15.5904 21.819 15.2105 21.8331 12.007 21.8331C8.79891 21.8331 8.419 21.819 7.15732 21.7628C5.98476 21.7112 5.35157 21.5142 4.92945 21.35C4.37131 21.1343 3.96795 20.8716 3.55052 20.4542C3.1284 20.0321 2.87043 19.6334 2.65468 19.0752C2.49052 18.6531 2.29353 18.0152 2.24194 16.8474C2.18566 15.581 2.17159 15.2011 2.17159 11.9977C2.17159 8.78953 2.18566 8.40961 2.24194 7.14794C2.29353 5.97538 2.49052 5.34219 2.65468 4.92007C2.87043 4.36193 3.13309 3.95857 3.55052 3.54114C3.97264 3.11901 4.37131 2.86105 4.92945 2.6453C5.35157 2.48114 5.98945 2.28415 7.15732 2.23256C8.419 2.17628 8.79891 2.1622 12.007 2.1622ZM12.007 0C8.74731 0 8.33926 0.0140707 7.05882 0.0703537C5.78308 0.126637 4.906 0.333008 4.14618 0.628493C3.35353 0.93805 2.68282 1.3461 2.01681 2.01681C1.3461 2.68282 0.93805 3.35353 0.628493 4.14149C0.333008 4.906 0.126637 5.77839 0.0703537 7.05413C0.0140707 8.33926 0 8.74731 0 12.007C0 15.2668 0.0140707 15.6748 0.0703537 16.9552C0.126637 18.231 0.333008 19.1081 0.628493 19.8679C0.93805 20.6605 1.3461 21.3312 2.01681 21.9973C2.68282 22.6633 3.35353 23.076 4.14149 23.3809C4.906 23.6764 5.77839 23.8827 7.05413 23.939C8.33457 23.9953 8.74262 24.0094 12.0023 24.0094C15.2621 24.0094 15.6701 23.9953 16.9506 23.939C18.2263 23.8827 19.1034 23.6764 19.8632 23.3809C20.6512 23.076 21.3219 22.6633 21.9879 21.9973C22.6539 21.3312 23.0666 20.6605 23.3715 19.8726C23.667 19.1081 23.8734 18.2357 23.9296 16.9599C23.9859 15.6795 24 15.2714 24 12.0117C24 8.752 23.9859 8.34395 23.9296 7.06351C23.8734 5.78777 23.667 4.91069 23.3715 4.15087C23.076 3.35353 22.668 2.68282 21.9973 2.01681C21.3313 1.35079 20.6605 0.93805 19.8726 0.633183C19.1081 0.337698 18.2357 0.131327 16.9599 0.075044C15.6748 0.0140707 15.2668 0 12.007 0Z 13458 M12.007 5.83936C8.60191 5.83936 5.83936 8.60191 5.83936 12.007C5.83936 15.4122 8.60191 18.1747 12.007 18.1747C15.4122 18.1747 18.1747 15.4122 18.1747 12.007C18.1747 8.60191 15.4122 5.83936 12.007 5.83936ZM12.007 16.0078C9.79792 16.0078 8.00625 14.2161 8.00625 12.007C8.00625 9.79792 9.79792 8.00625 12.007 8.00625C14.2161 8.00625 16.0078 9.79792 16.0078 12.007C16.0078 14.2161 14.2161 16.0078 12.007 16.0078Z 13459 M19.8586 5.59543C19.8586 6.39277 19.2113 7.03533 18.4187 7.03533C17.6213 7.03533 16.9788 6.38808 16.9788 5.59543C16.9788 4.79808 17.626 4.15552 18.4187 4.15552C19.2113 4.15552 19.8586 4.80277 19.8586 5.59543Z" 13460 /> 13461 </svg> 13462 13463</a> 13464 </li><li> 13465 <a href="https://www.tiktok.com/@calistatools?lang=en" target="blank" aria-label="TikTok" class="flex disable-effect hover-text-link w-11 h-11 pt-3 pr-3 pb-3 pl-3 border border-solid rounded-full"> 13466 <svg class="icon-animation" width="100%" height="100%" viewB
13466ox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 13467 <path d="M16.9401 0H12.7968V16.3478C12.7968 18.2957 11.2032 19.8957 9.22007 19.8957C7.23693 19.8957 5.64334 18.2957 5.64334 16.3478C5.64334 14.4348 7.20152 12.8695 9.11385 12.8V8.69567C4.89966 8.7652 1.5 12.1391 1.5 16.3478C1.5 20.5913 4.97049 24 9.2555 24C13.5405 24 17.0109 20.5565 17.0109 16.3478V7.9652C18.5691 9.07827 20.4814 9.73913 22.5 9.77393V5.66957C19.3837 5.56522 16.9401 3.06087 16.9401 0Z" fill="currentColor"/> 13468 </svg> 13469 13470</a> 13471 </li><li> 13472 <a href="https://www.youtube.com/user/CalistaTools" target="blank" aria-label="YouTube" class="flex disable-effect hover-text-link w-11 h-11 pt-3 pr-3 pb-3 pl-3 border border-solid rounded-full"> 13473 <svg class="icon-animation" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 13474 <path d="M23.7609 7.45237C23.7609 7.45237 23.5266 5.88392 22.8047 5.19522C21.8906 4.28881 20.8688 4.28437 20.4 4.23105C17.0438 4 12.0047 4 12.0047 4H11.9953C11.9953 4 6.95625 4 3.6 4.23105C3.13125 4.28437 2.10938 4.28881 1.19531 5.19522C0.473438 5.88392 0.24375 7.45237 0.24375 7.45237C0.24375 7.45237 0 9.29631 0 11.1358V12.8598C0 14.6992 0.239062 16.5432 0.239062 16.5432C0.239062 16.5432 0.473437 18.1116 1.19062 18.8003C2.10469 19.7067 3.30469 19.6756 3.83906 19.7734C5.76094 19.9467 12 20 12 20C12 20 17.0438 19.9911 20.4 19.7645C20.8688 19.7112 21.8906 19.7067 22.8047 18.8003C23.5266 18.1116 23.7609 16.5432 23.7609 16.5432C23.7609 16.5432 24 14.7037 24 12.8598V11.1358C24 9.29631 23.7609 7.45237 23.7609 7.45237ZM9.52031 14.9525V8.55873L16.0031 11.7667L9.52031 14.9525Z" fill="currentColor"/> 13475 </svg> 13476 13477</a> 13478 </li></ul> 13479 </div></div></div> 13480 <div class="md:hidden" x-show="open" x-collapse x-cloak><form method="post" action="/contact#ContactFooter" id="ContactFooter" accept-charset="UTF-8" class="footer__newsletter newsletter-form mb-5"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /><input type="hidden" aria-hidden="true" name="contact[tags]" value="newsletter"> 13481 <div class="mt-4 flex"> 13482 <div class="relative w-full"> 13483 <input 13484 id="NewsletterForm--sections--26875466121526__footer" 13485 type="email" 13486 name="contact[email]" 13487 class="w-full h-full pl-2.5 pr-4 pt-5 input border-b-2 border-current rounded-none border-b-solid focus:outline-none focus:border-current bg-transparent placeholder:opacity-0" 13488 aria-required="true" 13489 autocorrect="off" 13490 autocapitalize="off" 13491 autocomplete="email" 13492 13493 placeholder="Email" 13494 required> 13495 <label class="absolute top-1/2 left-2.5 rtl:left-auto rtl:right-2.5 -translate-y-1/2 input_focus:text-xs input_focus:top-2.5 input_not_empty:top-2.5 input_not_empty:text-xs" for="NewsletterForm--sections--26875466121526__footer"> 13496 Email 13497 </label> 13498 </div> 13499 <div> 13500 <button type="submit" class="rounded-none border-solid border-current ml-1 w-12 h-full flex justify-center items-center bg-transparent border-b-2 border-b-solid border-x-0 border-t-0" name="commit" aria-label="Subscribe"> 13501 <span class="rtl:rotate-180"> 13502 <svg width="100%" height="100%" class=" h-[var(--base-font-size)] w-[var(--base-font-size)]" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 13503 <path fill="none" d="M15.7122 20L23 12.5L15.7122 5M1 12.5001H21.5834" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 13504 </svg> 13505 13506</span> 13507 </button> 13508 </div></div></form> 13509 <div class="rte"><p>Plus get 15% off your first order.</p></div> 13510 13511<div class="mt-4"> 13512<div id="selector-social" class=" flex flex-col items-center md:items-start mr-auto ml-auto"> 13513 13514 <ul class="social-list flex flex-wrap pt-2.5 pb-2.5 gap-2 justify-center md:justify-start" role="list"> 13515<li> 13516 <a href="https://www.facebook.com/calistabymariamccool" target="blank" aria-label="Facebook" class="flex disable-effect hover-text-link w-11 h-11 pt-3 pr-3 pb-3 pl-3 border border-solid rounded-full"> 13517 <svg class="icon-animation" width="100%" height="100%" viewB
13517ox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 13518 <path d="M17.6477 13.4987L18.322 9.15733H14.1091V6.34132C14.1091 5.15199 14.6971 3.99467 16.5851 3.99467H18.5V0.293323C18.5 0.293323 16.7631 0 15.0963 0C11.6278 0 9.35684 2.07999 9.35684 5.84533V9.15733H5.5V13.4987H9.35684V24H14.1037V13.4987H17.6477Z" fill="currentColor"/> 13519 </svg> 13520 13521</a> 13522 </li><li> 13523 <a href="https://www.pinterest.com/calistatools/" target="blank" aria-label="Pinterest" class="flex disable-effect hover-text-link w-11 h-11 pt-3 pr-3 pb-3 pl-3 border border-solid rounded-full"> 13524 <svg class="icon-animation" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 13525 <path d="M12 0C5.37188 0 0 5.37188 0 12C0 17.0859 3.16406 21.4266 7.62656 23.175C7.52344 22.2234 7.425 20.7703 7.66875 19.7344C7.88906 18.7969 9.075 13.7719 9.075 13.7719C9.075 13.7719 8.71406 13.0547 8.71406 11.9906C8.71406 10.3219 9.67969 9.075 10.8844 9.075C11.9062 9.075 12.4031 9.84375 12.4031 10.7672C12.4031 11.7984 11.7469 13.3359 11.4094 14.7609C11.1281 15.9562 12.0094 16.9313 13.1859 16.9313C15.3187 16.9313 16.9594 14.6812 16.9594 11.4375C16.9594 8.56406 14.8969 6.55313 11.9484 6.55313C8.53594 6.55313 6.52969 9.1125 6.52969 11.7609C6.52969 12.7922 6.92812 13.8984 7.425 14.4984C7.52344 14.6156 7.5375 14.7234 7.50937 14.8406C7.42031 15.2203 7.21406 16.0359 7.17656 16.2C7.125 16.4203 7.00313 16.4672 6.77344 16.3594C5.27344 15.6609 4.33594 13.4719 4.33594 11.7094C4.33594 7.92188 7.0875 4.44844 12.2625 4.44844C16.425 4.44844 19.6594 7.41563 19.6594 11.3813C19.6594 15.5156 17.0531 18.8438 13.4344 18.8438C12.2203 18.8438 11.0766 18.2109 10.6828 17.4656C10.6828 17.4656 10.0828 19.7578 9.9375 20.3203C9.66562 21.3609 8.93437 22.6688 8.44687 23.4656C9.57187 23.8125 10.7625 24 12 24C18.6281 24 24 18.6281 24 12C24 5.37188 18.6281 0 12 0Z" fill="currentColor"/> 13526 </svg> 13527 13528</a> 13529 </li><li> 13530 <a href="https://www.instagram.com/calistatools/" target="blank" aria-label="Instagram" class="flex disable-effect hover-text-link w-11 h-11 pt-3 pr-3 pb-3 pl-3 border border-solid rounded-full"> 13531 <svg class="icon-animation" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 24 24" fill="currentColor"> 13532 <path 13533 d="M12.007 2.1622C15.2152 2.1622 15.5951 2.17628 16.8568 2.23256C18.0293 2.28415 18.6625 2.48114 19.0846 2.6453C19.6428 2.86105 20.0461 3.12371 20.4636 3.54114C20.8857 3.96326 21.1436 4.36193 21.3594 4.92007C21.5236 5.34219 21.7205 5.98007 21.7721 7.14794C21.8284 8.4143 21.8425 8.79422 21.8425 11.9977C21.8425 15.2058 21.8284 15.5857 21.7721 16.8474C21.7205 18.0199 21.5236 18.6531 21.3594 19.0752C21.1436 19.6334 20.881 20.0367 20.4636 20.4542C20.0414 20.8763 19.6428 21.1343 19.0846 21.35C18.6625 21.5142 18.0246 21.7112 16.8568 21.7628C15.5904 21.819 15.2105 21.8331 12.007 21.8331C8.79891 21.8331 8.419 21.819 7.15732 21.7628C5.98476 21.7112 5.35157 21.5142 4.92945 21.35C4.37131 21.1343 3.96795 20.8716 3.55052 20.4542C3.1284 20.0321 2.87043 19.6334 2.65468 19.0752C2.49052 18.6531 2.29353 18.0152 2.24194 16.8474C2.18566 15.581 2.17159 15.2011 2.17159 11.9977C2.17159 8.78953 2.18566 8.40961 2.24194 7.14794C2.29353 5.97538 2.49052 5.34219 2.65468 4.92007C2.87043 4.36193 3.13309 3.95857 3.55052 3.54114C3.97264 3.11901 4.37131 2.86105 4.92945 2.6453C5.35157 2.48114 5.98945 2.28415 7.15732 2.23256C8.419 2.17628 8.79891 2.1622 12.007 2.1622ZM12.007 0C8.74731 0 8.33926 0.0140707 7.05882 0.0703537C5.78308 0.126637 4.906 0.333008 4.14618 0.628493C3.35353 0.93805 2.68282 1.3461 2.01681 2.01681C1.3461 2.68282 0.93805 3.35353 0.628493 4.14149C0.333008 4.906 0.126637 5.77839 0.0703537 7.05413C0.0140707 8.33926 0 8.74731 0 12.007C0 15.2668 0.0140707 15.6748 0.0703537 16.9552C0.126637 18.231 0.333008 19.1081 0.628493 19.8679C0.93805 20.6605 1.3461 21.3312 2.01681 21.9973C2.68282 22.6633 3.35353 23.076 4.14149 23.3809C4.906 23.6764 5.77839 23.8827 7.05413 23.939C8.33457 23.9953 8.74262 24.0094 12.0023 24.0094C15.2621 24.0094 15.6701 23.9953 16.9506 23.939C18.2263 23.8827 19.1034 23.6764 19.8632 23.3809C20.6512 23.076 21.3219 22.6633 21.9879 21.9973C22.6539 21.3312 23.0666 20.6605 23.3715 19.8726C23.667 19.1081 23.8734 18.2357 23.9296 16.9599C23.9859 15.6795 24 15.2714 24
1353312.0117C24 8.752 23.9859 8.34395 23.9296 7.06351C23.8734 5.78777 23.667 4.91069 23.3715 4.15087C23.076 3.35353 22.668 2.68282 21.9973 2.01681C21.3313 1.35079 20.6605 0.93805 19.8726 0.633183C19.1081 0.337698 18.2357 0.131327 16.9599 0.075044C15.6748 0.0140707 15.2668 0 12.007 0Z 13534 M12.007 5.83936C8.60191 5.83936 5.83936 8.60191 5.83936 12.007C5.83936 15.4122 8.60191 18.1747 12.007 18.1747C15.4122 18.1747 18.1747 15.4122 18.1747 12.007C18.1747 8.60191 15.4122 5.83936 12.007 5.83936ZM12.007 16.0078C9.79792 16.0078 8.00625 14.2161 8.00625 12.007C8.00625 9.79792 9.79792 8.00625 12.007 8.00625C14.2161 8.00625 16.0078 9.79792 16.0078 12.007C16.0078 14.2161 14.2161 16.0078 12.007 16.0078Z 13535 M19.8586 5.59543C19.8586 6.39277 19.2113 7.03533 18.4187 7.03533C17.6213 7.03533 16.9788 6.38808 16.9788 5.59543C16.9788 4.79808 17.626 4.15552 18.4187 4.15552C19.2113 4.15552 19.8586 4.80277 19.8586 5.59543Z" 13536 /> 13537 </svg> 13538 13539</a> 13540 </li><li> 13541 <a href="https://www.tiktok.com/@calistatools?lang=en" target="blank" aria-label="TikTok" class="flex disable-effect hover-text-link w-11 h-11 pt-3 pr-3 pb-3 pl-3 border border-solid rounded-full"> 13542 <svg class="icon-animation" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 13543 <path d="M16.9401 0H12.7968V16.3478C12.7968 18.2957 11.2032 19.8957 9.22007 19.8957C7.23693 19.8957 5.64334 18.2957 5.64334 16.3478C5.64334 14.4348 7.20152 12.8695 9.11385 12.8V8.69567C4.89966 8.7652 1.5 12.1391 1.5 16.3478C1.5 20.5913 4.97049 24 9.2555 24C13.5405 24 17.0109 20.5565 17.0109 16.3478V7.9652C18.5691 9.07827 20.4814 9.73913 22.5 9.77393V5.66957C19.3837 5.56522 16.9401 3.06087 16.9401 0Z" fill="currentColor"/> 13544 </svg> 13545 13546</a> 13547 </li><li> 13548 <a href="https://www.youtube.com/user/CalistaTools" target="blank" aria-label="YouTube" class="flex disable-effect hover-text-link w-11 h-11 pt-3 pr-3 pb-3 pl-3 border border-solid rounded-full"> 13549 <svg class="icon-animation" width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 13550 <path d="M23.7609 7.45237C23.7609 7.45237 23.5266 5.88392 22.8047 5.19522C21.8906 4.28881 20.8688 4.28437 20.4 4.23105C17.0438 4 12.0047 4 12.0047 4H11.9953C11.9953 4 6.95625 4 3.6 4.23105C3.13125 4.28437 2.10938 4.28881 1.19531 5.19522C0.473438 5.88392 0.24375 7.45237 0.24375 7.45237C0.24375 7.45237 0 9.29631 0 11.1358V12.8598C0 14.6992 0.239062 16.5432 0.239062 16.5432C0.239062 16.5432 0.473437 18.1116 1.19062 18.8003C2.10469 19.7067 3.30469 19.6756 3.83906 19.7734C5.76094 19.9467 12 20 12 20C12 20 17.0438 19.9911 20.4 19.7645C20.8688 19.7112 21.8906 19.7067 22.8047 18.8003C23.5266 18.1116 23.7609 16.5432 23.7609 16.5432C23.7609 16.5432 24 14.7037 24 12.8598V11.1358C24 9.29631 23.7609 7.45237 23.7609 7.45237ZM9.52031 14.9525V8.55873L16.0031 11.7667L9.52031 14.9525Z" fill="currentColor"/> 13551 </svg> 13552 13553</a> 13554 </li></ul> 13555 </div></div></div> 13556 </div> 13557 </div> 13558 <div class="footer-col--2 md:pr-5 rtl:md:pr-0 md:first:pl-0 rtl:md:pl-5 rtl:md:first:pr-0 md:mb-7 md:pl-10 rtl:md:pl-0 rtl:md:pr-10 w-full md:w-1/4 ltr" ><div x-data="{ open: false }" class="x-block-link-list pt-4 pb-4 border-b md:border-none"><div @click="open = ! open" class="relative pr-5 rtl:pr-0 rtl:pl-5 cursor-pointer md:cursor-default duration-200 transition"> 13559 <p class="h6 text-[115%]">Shop</p> 13560 <span class="md:hidden absolute w-2.5 h-2.5 top-1/2 -translate-y-1/2 duration-500 flex right-3.5 rtl:right-auto rtl:left-3.5" :class="open ? 'rotate-180' : ''"> 13561 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 13562 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 13563 </svg> 13564</span> 13565 </div> 13566 <ul class="mt-6 hidden md:block"> 13567 13568<li class="mb-1 mt-6 md:mt-0 first:pt-0 pt-2"> 13569 <a href="/collections/all-products" class="hover-text-link nav-link relative block lg:inline-block"> 13570 Shop All 13571 </a> 13572 </li><li class="mb-1 first:pt-0 pt-2"> 13573 <a href="/collections/best-sellers" class="hover-text-link nav-link relative block lg:inline-block"> 13574 Best Sellers 13575 </a> 13576 </li><li class="mb-1 first:pt-0 pt-2"> 13577 <a href="/collections/hair-styling-tools" class="hover-text-link nav-link relative block lg:inline-block"> 13578 Styling Tools 13579 </a> 13580 </li><li class="mb-1 first:pt-0 pt-2"> 13581 <a href="/collections/hair-styling-products" class="hover-text-link nav-link relative block lg:inline-block"> 13582 Styling Products 13583 </a> 13584 </li><li class="mb-1 first:pt-0 pt-2"> 13585 <a href="/collections/hair-cleanse-condition-products" class="hover-text-link nav-link relative block lg:inline-block"> 13586 Cleanse & Condition 13587 </a> 13588 </li> 13589 </ul> 13590 <ul class="md:hidden" x-show="open" x-collapse x-cloak> 13591 13592<li class="mb-1 mt-6 md:mt-0 first:pt-0 pt-2"> 13593 <a href="/collections/all-products" class="hover-text-link nav-link relative block lg:inline-block"> 13594 Shop All 13595 </a> 13596 </li><li class="mb-1 first:pt-0 pt-2"> 13597 <a href="/collections/best-sellers" class="hover-text-link nav-link relative block lg:inline-block"> 13598 Best Sellers 13599 </a> 13600 </li><li class="mb-1 first:pt-0 pt-2"> 13601 <a href="/collections/hair-styling-tools" class="hover-text-link nav-link relative block lg:inline-block"> 13602 Styling Tools 13603 </a> 13604 </li><li class="mb-1 first:pt-0 pt-2"> 13605 <a href="/collections/hair-styling-products" class="hover-text-link nav-link relative block lg:inline-block"> 13606 Styling Products 13607 </a> 13608 </li><li class="mb-1 first:pt-0 pt-2"> 13609 <a href="/collections/hair-cleanse-condition-products" class="hover-text-link nav-link relative block lg:inline-block"> 13610 Cleanse & Condition 13611 </a> 13612 </li> 13613 </ul></div></div> 13614 <div class="footer-col--3 md:pr-5 rtl:md:pr-0 md:first:pl-0 rtl:md:pl-5 rtl:md:first:pr-0 md:mb-7 md:pl-10 rtl:md:pl-0 rtl:md:pr-10 w-full md:w-1/4 ltr" ><div x-data="{ open: false }" class="x-block-link-list pt-4 pb-4 border-b md:border-none"><div @click="open = ! open" class="relative pr-5 rtl:pr-0 rtl:pl-5 curs
13614or-pointer md:cursor-default duration-200 transition"> 13615 <p class="h6 text-[115%]">Learn</p> 13616 <span class="md:hidden absolute w-2.5 h-2.5 top-1/2 -translate-y-1/2 duration-500 flex right-3.5 rtl:right-auto rtl:left-3.5" :class="open ? 'rotate-180' : ''"> 13617 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 13618 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 13619 </svg> 13620</span> 13621 </div> 13622 <ul class="mt-6 hidden md:block"> 13623 13624<li class="mb-1 mt-6 md:mt-0 first:pt-0 pt-2"> 13625 <a href="/pages/our-story" class="hover-text-link nav-link relative block lg:inline-block"> 13626 About Us 13627 </a> 13628 </li><li class="mb-1 first:pt-0 pt-2"> 13629 <a href="/pages/size-chart" class="hover-text-link nav-link relative block lg:inline-block"> 13630 Tool Guide & Size Charts 13631 </a> 13632 </li><li class="mb-1 first:pt-0 pt-2"> 13633 <a href="/blogs/beautybrave" class="hover-text-link nav-link relative block lg:inline-block"> 13634 Calista Blog 13635 </a> 13636 </li><li class="mb-1 first:pt-0 pt-2"> 13637 <a href="/pages/beautybrave-rewards-program" class="hover-text-link nav-link relative block lg:inline-block"> 13638 Rewards Program 13639 </a> 13640 </li><li class="mb-1 first:pt-0 pt-2"> 13641 <a href="/pages/press" class="hover-text-link nav-link relative block lg:inline-block"> 13642 Press 13643 </a> 13644 </li> 13645 </ul> 13646 <ul class="md:hidden" x-show="open" x-collapse x-cloak> 13647 13648<li class="mb-1 mt-6 md:mt-0 first:pt-0 pt-2"> 13649 <a href="/pages/our-story" class="hover-text-link nav-link relative block lg:inline-block"> 13650 About Us 13651 </a> 13652 </li><li class="mb-1 first:pt-0 pt-2"> 13653 <a href="/pages/size-chart" class="hover-text-link nav-link relative block lg:inline-block"> 13654 Tool Guide & Size Charts 13655 </a> 13656 </li><li class="mb-1 first:pt-0 pt-2"> 13657 <a href="/blogs/beautybrave" class="hover-text-link nav-link relative block lg:inline-block"> 13658 Calista Blog 13659 </a> 13660 </li><li class="mb-1 first:pt-0 pt-2"> 13661 <a href="/pages/beautybrave-rewards-program" class="hover-text-link nav-link relative block lg:inline-block"> 13662 Rewards Program 13663 </a> 13664 </li><li class="mb-1 first:pt-0 pt-2"> 13665 <a href="/pages/press" class="hover-text-link nav-link relative block lg:inline-block"> 13666 Press 13667 </a> 13668 </li> 13669 </ul></div></div> 13670 <div class="footer-col--4 md:pr-5 rtl:md:pr-0 md:first:pl-0 rtl:md:pl-5 rtl:md:first:pr-0 md:mb-7 md:pl-10 rtl:md:pl-0 rtl:md:pr-10 w-full md:w-1/4 ltr" ><div x-data="{ open: false }" class="x-block-link-list pt-4 pb-4 border-b md:border-none"><div @click="open = ! open" class="relative pr-5 rtl:pr-0 rtl:pl-5 cursor-pointer md:cursor-default duration-200 transition"> 13671 <p class="h6 text-[115%]">Information</p> 13672 <span class="md:hidden absolute w-2.5 h-2.5 top-1/2 -translate-y-1/2 duration-500 flex right-3.5 rtl:right-auto rtl:left-3.5" :class="open ? 'rotate-180' : ''">
13673 <svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 13674 <path fill="none" d="M23 7L12 18L0.999999 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 13675 </svg> 13676</span> 13677 </div> 13678 <ul class="mt-6 hidden md:block"> 13679 13680<li class="mb-1 mt-6 md:mt-0 first:pt-0 pt-2"> 13681 <a href="/pages/faqs" class="hover-text-link nav-link relative block lg:inline-block"> 13682 FAQs 13683 </a> 13684 </li><li class="mb-1 first:pt-0 pt-2"> 13685 <a href="/pages/shipping-info" class="hover-text-link nav-link relative block lg:inline-block"> 13686 Shipping 13687 </a> 13688 </li><li class="mb-1 first:pt-0 pt-2"> 13689 <a href="/pages/return-exchange-policy" class="hover-text-link nav-link relative block lg:inline-block"> 13690 Returns & Exchanges 13691 </a> 13692 </li><li class="mb-1 first:pt-0 pt-2"> 13693 <a href="/pages/warranty-on-tools" class="hover-text-link nav-link relative block lg:inline-block"> 13694 Warranty on Tools 13695 </a> 13696 </li><li class="mb-1 first:pt-0 pt-2"> 13697 <a href="/pages/accessibility" class="hover-text-link nav-link relative block lg:inline-block"> 13698 Accessibility Statement 13699 </a> 13700 </li> 13701 </ul> 13702 <ul class="md:hidden" x-show="open" x-collapse x-cloak> 13703 13704<li class="mb-1 mt-6 md:mt-0 first:pt-0 pt-2"> 13705 <a href="/pages/faqs" class="hover-text-link nav-link relative block lg:inline-block"> 13706 FAQs 13707 </a> 13708 </li><li class="mb-1 first:pt-0 pt-2"> 13709 <a href="/pages/shipping-info" class="hover-text-link nav-link relative block lg:inline-block"> 13710 Shipping 13711 </a> 13712 </li><li class="mb-1 first:pt-0 pt-2"> 13713 <a href="/pages/return-exchange-policy" class="hover-text-link nav-link relative block lg:inline-block"> 13714 Returns & Exchanges 13715 </a> 13716 </li><li class="mb-1 first:pt-0 pt-2"> 13717 <a href="/pages/warranty-on-tools" class="hover-text-link nav-link relative block lg:inline-block"> 13718 Warranty on Tools 13719 </a> 13720 </li><li class="mb-1 first:pt-0 pt-2"> 13721 <a href="/pages/accessibility" class="hover-text-link nav-link relative block lg:inline-block"> 13722 Accessibility Statement 13723 </a> 13724 </li> 13725 </ul></div></div></div></div><div class="additional-footer ltr x-pgw page-width mr-auto ml-auto lg:flex lg:flex-row lg:justify-between items-center" 13726 > 13727 <div class="flex flex-col lg:flex lg:flex-row gap-x-7 items-center w-full justify-between"><div class="flex flex-col items-center lg:mb-0 order-last md:order-none lg:pl-14 lg:max-w-3xl"> 13728 <div class="mt-4 md:mt-4 base-link text-center lg:mt-0 lg:text-right p-break-words"><p class="inline-block">© 2026, </p> 13729 <a href="/" title="">Calista Tools</a>. 13730 </div> 13731 </div></div> 13732 </div> 13733</div> 13734</div><section id="shopify-section-sections--26875466121526__custom_liquid_tiGzYg" class="shopify-section shopify-section-group-footer-group section section-custom-liquid x-section"><style data-shopify> 13735 .custom-liquid ul { 13736 list-style: disc; 13737 } 13738 .section-padding-sections--26875466121526__custom_liquid_tiGzYg { 13739 padding-top: 28px; 13740 padding-bottom: 28px; 13741 } 13742 @media (min-width: 768px) { 13743 .section-padding-sections--26875466121526__custom_liquid_tiGzYg { 13744 padding-top: 28px; 13745 padding-bottom: 28px; 13746 } 13747 } 13748</style> 13749 13750<div class="relative mr-auto ml-auto section-padding-sections--26875466121526__custom_liquid_tiGzYg"> 13751 <div class="custom-liquid x-pgw page-width"> 13752 <span class="cal-footer-policy"><a href="/pages/terms-conditions">Terms & Conditions</a> · <a href="https://privacy.calistatools.com/privacy-policy">Privacy Policy</a> · <a href="https://privacy.calistatools.com/opt-out">Your Privacy Choices</a> · <a href="https://privacy.calistatools.com/privacy-policy#california-privacy-notice">California Privacy Notice</a> · <a href="https://privacy.calistatools.com/opt-out">Do Not Sell or Share My Personal Information</a><a href="?polaris.openConsentManager=true" 13753 class="truevault-polaris-open-consent-manager-link cal-footer-policy__cookies">Cookie Settings</a> 13754</span> 13755 13756<style> 13757 .cal-footer-policy__cookies::before { content: " · "; } 13758</style> 13759 </div> 13760</div> 13761</section> 13762<!-- END sections: footer-group --> 13763 13764 13765<div id="eurus-popup" class="fixed duration-500 inset-0 z-[100] pointer-events-none md:block flex flex-col-reverse h-fit top-[unset] md:h-full md:top-0" x-cloak></div> 13766 13767<div id="popup-minimal-left" 13768 class="popup-minimal fixed z-50 bottom-4 md:bottom-8 left-4 md:left-8 pointer-events-auto pr-4 md:pr-8" 13769></div> 13770 13771 13772 13773 </div> 13774 <div><div 13775 class="hidden" 13776 x-data='xTabAttention({ 13777 message1: "We\u0027re still here!", 13778 message2: "Come back for rewards!", 13779 delay: 3 13780 })' 13781 @init-run.window="initTabAttention()" 13782 > 13783 </div> 13784
13784<script src="//calistatools.com/cdn/shop/t/144/assets/tab-attention.js?v=32006057042266106271782330849" defer></script>
13784<ul hidden> 13785 <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh. 13786 </li> 13787 <li id="a11y-new-window-message">Opens in a new window. 13788 </li> 13789 </ul> 13790
13790<script> 13791 window.Eurus = { 13792 cart_error: `There was an error while updating your cart. Please try again.`, 13793 cart_quantity_error_html: `You can only add [quantity] of this item to your cart.`, 13794 loadedScript: new Set(), 13795 cart_add_url: '/cart/add' 13796 }; 13797 </script>
13797 13798 13799
13799<script> 13800 document.addEventListener('eurus:cart:redirect', function(event) { 13801 window.location.href = '/cart'; 13802 }) 13803 </script>
13803 13804 13805
13805<script src="//calistatools.com/cdn/shop/t/144/assets/splide4.1.3.js?v=75458750262329959491782330849" defer></script>
13805 13806 13807
13808<script src="//calistatools.com/cdn/shop/t/144/assets/coupon-code.js?v=135514657843889770711782330849" defer></script>
13808 13809 13810
13810<script src="//calistatools.com/cdn/shop/t/144/assets/product-recommendations.js?v=79934933607583473321782330849" defer></script>
13810 13811
13812<script src="//calistatools.com/cdn/shop/t/144/assets/estimate-shipping-rate.js?v=35554055062891148931782330849" defer></script>
13812 13813
13813<script src="//calistatools.com/cdn/shop/t/144/assets/preview-color-swatches.js?v=5957683164806633661782330849" defer></script>
13813 13814
13814<script src="//calistatools.com/cdn/shop/t/144/assets/speech-search.js?v=80603510328065116571782330849" defer></script>
13814 13815
13815<script src="//calistatools.com/cdn/shop/t/144/assets/double-touch.js?v=64605958049830659291782330849" defer></script>
13815<script src="//calistatools.com/cdn/shop/t/144/assets/cart-countdown-timer.js?v=143864077785370808651782330849" defer></script>
13815 13816 13817
13817<script src="//calistatools.com/cdn/shop/t/144/assets/theme.js?v=47174415326487577631782330849" defer></script>
13817 13818
13818<script src="//calistatools.com/cdn/shop/t/144/assets/header.js?v=53444609849464794681782330849" defer></script>
13818 13819
13819<script src="//calistatools.com/cdn/shop/t/144/assets/truncate-text.js?v=48087358240679057471782330849" defer></script>
13819 13820
13820<script src="//calistatools.com/cdn/shop/t/144/assets/variant-select-card.js?v=66303865572284760631782330849" defer></script>
13820 13821 13822
13822<script src="//calistatools.com/cdn/shop/t/144/assets/product-cart.js?v=60769023760558595491782330849" defer></script>
13822 13823
13823<script src="//calistatools.com/cdn/shop/t/144/assets/quantity-selector.js?v=56005620581758573381782330849" defer></script>
13823 13824 13825
13825<script src="//calistatools.com/cdn/shop/t/144/assets/video.js?v=64484941244777200891782330849" defer></script>
13825 13826
13826<script src="//calistatools.com/cdn/shop/t/144/assets/vendors.js?v=21726020999429958561782330849" defer></script>
13826 13827
13827<script> 13828 window.addEventListener("load", (event) => { 13829 deferScriptLoad('instant.page', '//calistatools.com/cdn/shop/t/144/assets/instant.page.v5.1.1.js?v=43232110432331176871782330849', () => {}, true); 13830 }); 13831 </script>
13831 13832 </div> 13833
13833<script type="text/javascript">!function(){var b=function(){window.__AudioEyeSiteHash = "7c2c2dc0189153483eb3f174651d3082"; var a=document.createElement("script");a.src="https://wsv3cdn.audioeye-services.com/aem.js?h=7c2c2dc0189153483eb3f174651d3082";a.type="text/javascript";a.crossOrigin="anonymous";a.setAttribute("async","");document.getElementsByTagName("body")[0].appendChild(a)};"complete"!==document.readyState?window.addEventListener?window.addEventListener("load",b):window.attachEvent&&window.attachEvent("onload",b):b()}();</script>
13833 13834 <div id="shopify-block-AbE9leUZtcnh4N0RvT__848591003871763955" class="shopify-block shopify-app-block">
13834<script type="application/javascript"> 13835 /*! js-cookie v3.0.0-rc.4 | MIT */ 13836!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self,function(){var n=e.Cookies,r=e.Cookies=t();r.noConflict=function(){return e.Cookies=n,r}}())}(this,function(){"use strict";function e(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)e[r]=n[r]}return e}var t={read:function(e){return e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};return function n(r,o){function i(t,n,i){if("undefined"!=typeof document){"number"==typeof(i=e({},o,i)).expires&&(i.expires=new Date(Date.now()+864e5*i.expires)),i.expires&&(i.expires=i.expires.toUTCString()),t=encodeURIComponent(t).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape),n=r.write(n,t);var c="";for(var u in i)i[u]&&(c+="; "+u,!0!==i[u]&&(c+="="+i[u].split(";")[0]));return document.cookie=t+"="+n+c}}return Object.create({set:i,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var n=document.cookie?document.cookie.split("; "):[],o={},i=0;i<n.length;i++){var c=n[i].split("="),u=c.slice(1).join("=");'"'===u[0]&&(u=u.slice(1,-1));try{var f=t.read(c[0]);if(o[f]=r.read(u,f),e===f)break}catch(e){}}return e?o[e]:o}},remove:function(t,n){i(t,"",e({},n,{expires:-1}))},withAttributes:function(t){return n(this.converter,e({},this.attributes,t))},withConverter:function(t){return n(e({},this.converter,t),this.attributes)}},{attributes:{value:Object.freeze(o)},converter:{value:Object.freeze(r)}})}(t,{path:"/"})}); 13837</script>
vendor: 2 bytes, line 13837
13837
13838<script async> 13839 console.log('shortly-version --> 1.52') 13840var refsExt,traffic_url="https://trafficanalytics.info",appProxyUrlExt="/apps/shortly",checkoutFlag=!1,cookie_duration=1,getParamsExt=function(e){var shortly_t={},o=document.createElement("a");o.href=e;var n=o.search.substring(1).split("&");for(let e=0;e<n.length;e++){let o=n[e].split("=");shortly_t[o[0]]=decodeURIComponent(o[1])}return shortly_t};function formatParamsExt(e){return"?"+Object.keys(e).map((function(shortly_t){return shortly_t+"="+encodeURIComponent(e[shortly_t])})).join("&")}function startTimerShortExt(e,shortly_t,o){let n,s,i=e;setInterval((function(){n=parseInt(i/60,10),s=parseInt(i%60,10),n=n<10?"0"+n:n,s=s<10?"0"+s:s,shortly_t&&(shortly_t.textContent=n),o&&(o.textContent=s),Cookies.set("discountly_timem",n,{expires:cookie_duration}),Cookies.set("discountly_times",s,{expires:cookie_duration}),--i<0&&(document.getElementById("shortbar")&&(document.getElementById("shortbar").style.display="none"),document.getElementById("discountly_show-b")&&(document.getElementById("discountly_show-b").style.display="none"),sessionStorage.removeItem("shortly_discount_code"),sessionStorage.removeItem("shortly_tid"),Cookies.remove("discountly_timem"),Cookies.remove("discountly_times"),Cookies.remove("shortly_discount_code"),Cookies.remove("shortly_tid"))}),1e3),document.getElementById("shortbar")&&(document.getElementById("shortbar").style.display="block")}function proxyExt(e,shortly_t){var o=appProxyUrlExt+formatParamsExt(e);fetch(o,{method:"POST"}).then((e=>e.text())).then((e=>shortly_t(e))).catch((e=>{console.log(e)}))}function startExt(){var e;if((refsExt=getParamsExt(window.location.href)).tid)sessionStorage.getItem("shortly_tid")!==refsExt.tid&&(sessionStorage.removeItem("shortly_discount_code"),sessionStorage.removeItem("shortly_tid"),sessionStorage.setItem("shortly_tid",refsExt.tid),Cookies.remove("discountly_timem"),Cookies.remove("discountly_times"),Cookies.remove("shortly_discount_code"),Cookies.remove("shortly_tid"),Cookies.set("shortly_tid",`${refsExt.tid}`,{path:"/",domain:"."+window.location.hostname.replace("wwww.","")})),initExt(e=refsExt.tid);else if("shortly_tid"in sessionStorage)if((e=sessionStorage.getItem("shortly_tid"))!==refsExt.tid){if("shortly_html"in sessionStorage){var shortly_t=sessionStorage.getItem("shortly_html");let s=(shortly_t=JSON.parse(shortly_t)).bar,i=(shortly_t.discount,shortly_t.discount_code);cookie_duration=shortly_t.cookie_duration;var o=document.getElementsByTagName("body")[0],n=document.createElement("div");n.innerHTML=s,o.insertBefore(n,o.firstChild),Cookies.set("shortly_tid",`${e}`,{expires:cookie_duration,path:"/",domain:"."+window.location.hostname.replace("wwww.","")}),sessionStorage.setItem("shortly_tid",e),document.querySelector("#shorttime")&&document.querySelector("#shorttime").value>0?timerExt():(document.querySelector("#shortTimer")&&(document.querySelector("#shortTimer").style.display="none"),!refsExt.tid&&document.querySelector("#shortbar")&&(document.querySelector("#shortbar").style.display="none"),document.querySelector("#shorttimestatus")&&1==document.querySelector("#shorttimestatus").value&&0==document.querySelector("#shorttime").value&&(document.querySelector("#shortbar").style.display="block")),i&&applydiscountExt(i),document.getElementById("closeit_bottom")&&document.getElementById("closeit_bottom").addEventListener("click",(function(){document.getElementById("discountly_show-b").style.display="none"})),document.querySelector("#closeit_top")&&document.getElementById("closeit_top").addEventListener("click",(function(){document.querySelector("#shortbar").style.display="none"}))}}else initExt(e)}function initExt(e){proxyExt({query:"bar",tid:e},(function(shortly_t){sessionStorage.setItem("shortly_html",shortly_t),shortly_t=JSON.parse(shortly_t),console.log(shortly_t);let o=shortly_t.bar,n=(shortly_t.discount,shortly_t.discount_code);if(cookie_duration=shortly_t.cookie_duration,o){var s=document.getElementsByTagName("body")[0],i=document.createElement("div");i.innerHTML=o,s.insertBefore(i,s.firstChild)}
13840Cookies.set("shortly_tid",`${e}`,{expires:cookie_duration,path:"/",domain:"."+window.location.hostname.replace("wwww.","")}),sessionStorage.setItem("shortly_tid",e),sessionStorage.setItem("shortly_cookie_duration",cookie_duration),sessionStorage.setItem("shortly_shop_plan",shortly_t.plan_id),document.querySelector("#shorttime")?document.querySelector("#shorttime").value>0?timerExt():document.querySelector("#shortTimer")&&(document.querySelector("#shortTimer").style.display="none"):(document.querySelector("#shortTimer")&&(document.querySelector("#shortTimer").style.display="none"),refsExt&&!refsExt.tid&&(document.querySelector("#shortbar").style.display="none"),document.querySelector("#shorttimestatus")&&1==document.querySelector("#shorttimestatus").value&&0==document.querySelector("#shorttime").value&&(document.querySelector("#shortbar").style.display="block")),n&&applydiscountExt(n),""!==shortly_t.discount_price&&document.getElementById("cc-discount-price")&&(document.getElementById("cc-discount-price").textContent=shortly_t.discount_price),document.getElementById("closeit_bottom")&&document.getElementById("closeit_bottom").addEventListener("click",(function(){document.getElementById("discountly_show-b").style.display="None"})),document.querySelector("#closeit_top")&&document.getElementById("closeit_top").addEventListener("click",(function(){document.querySelector("#shortbar").style.display="None"}))}))}function applydiscountExt(e){document.querySelector("#cc-code")&&(document.querySelector("#cc-code").textContent=e);var shortly_t=window.location.origin,o=new XMLHttpRequest;o.onreadystatechange=function(){if(4===this.readyState&&200===this.status)o.responseText};var n=shortly_t+"/discount/"+e;if(o.open("GET",n,!0),o.send(),Cookies.set("shortly_discount_code",`${e}`,{path:"/",domain:"."+window.location.hostname.replace("wwww.","")}),document.querySelector(".input_field1")){let shortly_t=document.querySelector(".input_field1").textContent.replace(/ *\[[^)]*\] */g,` ${e} `);document.querySelector(".input_field1").textContent=shortly_t}}function discountly_tooltiptext_setExt(e){document.getElementById("discountly_tooltiptext_id").innerHTML="Copy coupon"}function copyTextExt(e){var shortly_t=document.createElement("input");shortly_t.setAttribute("value",e),document.body.appendChild(shortly_t),shortly_t.select();document.execCommand("copy");document.body.removeChild(shortly_t),document.getElementById("discountly_tooltiptext_id").innerHTML="Copied"}function timerExt(){if("shortly_tid"in sessionStorage){document.cookie.indexOf("discountly_timem");let e=document.querySelector("#discountly_timem"),shortly_t=document.querySelector("#discountly_times");if("NaN"==Cookies.get("discountly_timem")||null==Cookies.get("discountly_timem")||"NaN"==Cookies.get("discountly_times")||null==Cookies.get("discountly_times")){let o=document.querySelector("#shorttime").value;startTimerShortExt(60*parseInt(o),e,shortly_t)}else{let o=Cookies.get("discountly_timem"),n=Cookies.get("discountly_times");o=o<10?""+o:o,n=n<10?""+n:n,document.querySelector("#discountly_timem")&&(document.querySelector("#discountly_timem").textContent=o),document.querySelector("#discountly_times")&&(document.querySelector("#discountly_times").textContent=n),startTimerShortExt(parseInt(60*o)+parseInt(n),e,shortly_t)}}}function appendTrafficScript(){if(getParamsExt(window.location.href).tid||"shortly_tid"in sessionStorage){const e=document.createElement("script");e.setAttribute("data-host",traffic_url),e.setAttribute("data-dnt","false"),e.setAttribute("src",traffic_url+"/js/script.js"),e.setAttribute("id","ZwSg9rf6GA"),e.setAttribute("async",!0),e.setAttribute("defer",!0),document.getElementsByTagName("head")[0].appendChild(e)}}appendTrafficScript(),startExt(); 13841if(Cookies.get("shortly_tid")){var shortly_t;fetch("/cart/update.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({attributes:{tid:Cookies.get("shortly_tid")}})})} 13842</script>
13842 13843</div><div id="shopify-block-AUEZZQzZ3MjZ3a0J5a__3418223220453551085" class="shopify-block shopify-app-block"><div style="position: fixed; bottom: 0; right: 0"> 13844 <!-- BEGIN app snippet: functional-discount -->�
13844<script class="FAD-"> 13845 window.cs_FD = {}; 13846 �window.cs_FD.showBogoPopup = "0"; 13847 window.cs_FD.cartRequestcall = 'https://fad.cirkleinc.com/api/cart-request'; 13848 window.cs_FD.call = '/apps/fad'; 13849 window.cs_FD.host = 'https://fad.cirkleinc.com'; 13850 window.cs_FD.upsellBar = 'https://fad.cirkleinc.com/api/get-upsell-data'; 13851 window.cs_FD.API = 'https://fad.cirkleinc.com/api/display-discount-table'; 13852 window.cs_FD.BBAPI = 'https://fad.cirkleinc.com/api/display-bundle-offer'; 13853 window.cs_FD.FBTAPI = 'https://fad.cirkleinc.com/api/display-frequently-bought'; 13854 window.cs_FD.store_name = 'calista-tools.myshopify.com'; 13855 window.cs_FD.vd_url = ''; 13856 13857 window.cs_FD.need_to_update = 1;window.cs_FD.product_id = ''; 13858 window.cs_FD.col_ids = ''; 13859 window.cs_FD.col_handles = ''; 13860 window.cs_FD.parameter = 1;window.cs_FD.product_handle = ''; 13861 window.cs_FD.propertyIDList = ''; 13862 window.cs_FD.cartTotal = 0; 13863 window.cs_FD.customerId = 0; 13864 window.cs_FD.currency = "$"; 13865 if (typeof custom_money_format !== 'undefined' && custom_money_format) { 13866 window.cs_FD.shop_money_format = custom_money_format; 13867 } else { 13868 window.cs_FD.shop_money_format = "${{amount_no_decimals}}"; 13869 } 13870 window.cs_FD.variant_id = null; 13871 window.cs_FD.proCollectionId = ''; 13872 window.cs_FD.discountFree = []; 13873 window.cs_FD.refreshCode = ''; 13874 window.cs_FD.bogo_ajax_setting = 0; 13875 13876 // This varaible create for bogo offer apply on cart page 13877 window.cs_FD.cart_collections = {} 13878 13879 13880 window.cs_FD.show_bogo = "Show Bogo"; 13881 window.cs_FD.show_bogo_message = "You are eligible to get bogo product"; 13882 window.cs_FD.show_bogo_class = null; 13883 window.cs_FD.show_bogo_message_class = null; 13884 window.cs_FD.show_bogo_message_bg_color = "#FFFFFF"; 13885 window.cs_FD.show_bogo_message_text_color = "#000000"; 13886 window.cs_FD.no_thanks_msg = "No thanks"; 13887 window.cs_FD.collection_offer = "This offer is valid for collection"; 13888 window.cs_FD.Claim = "Claim"; 13889 window.cs_FD.soldOut = "Sold out"; 13890 window.cs_FD.close_svg = '<svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 40 40"><path d="M23.868 20.015L39.117 4.78c1.11-1.108 1.11-2.77 0-3.877-1.109-1.108-2.773-1.108-3.882 0L19.986 16.137 4.737.904C3.628-.204 1.965-.204.856.904c-1.11 1.108-1.11 2.77 0 3.877l15.249 15.234L.855 35.248c-1.108 1.108-1.108 2.77 0 3.877.555.554 1.248.831 1.942.831s1.386-.277 1.94-.83l15.25-15.234 15.248 15.233c.555.554 1.248.831 1.941.831s1.387-.277 1.941-.83c1.11-1.109 1.11-2.77 0-3.878L23.868 20.015z" class="layer"></path></svg>'; 13891 13892 // This Variable create for Upsell bar on page 13893 var upsell_items_class = null; 13894 window.cs_FD.last_pro_cart_collections = ""; 13895 window.cs_FD.last_pro_cart_id = ""; 13896 window.cs_FD.Showless = 'Show less'; 13897 window.cs_FD.Showmore = 'Show more'; 13898</script>
13898 13899 13900<link href="//cdn.shopify.com/extensions/01a0eb90-50c1-7ec6-a5db-01515d5c80e1/auto-discounts-93/assets/functional-discount.css" rel="stylesheet" type="text/css" media="all" />
13901<script src="https://cdn.shopify.com/extensions/01a0eb90-50c1-7ec6-a5db-01515d5c80e1/auto-discounts-93/assets/functional-discount.js" defer="defer"></script>
13901<script src="https://cdn.shopify.com/extensions/01a0eb90-50c1-7ec6-a5db-01515d5c80e1/auto-discounts-93/assets/fad-cart-refresh.js" type="module"></script>
13901<!-- END app snippet --> 13902</div> 13903 13904</div><div id="shopify-block-ARmdBZTc5UE1PeWNOL__14928883602818719019" class="shopify-block shopify-app-block"> 13905 13906 <link rel="preconnect" href="https://api.loopreturns.com" crossorigin> 13907 <link rel="dns-prefetch" href="https://api.loopreturns.com"> 13908 13909 13910 13911<div 13912 id='loop-storefront-data' 13913 data-order-protection-feature='true' 13914 data-is-b2b='' 13915 data-customer-tags='' 13916> 13917</div> 13918 13919</div><div id="shopify-block-AeXdFL3NiTloxRjRUY__14952540001915115444" class="shopify-block shopify-app-block"> 13920 13921 13922 13923 13924<link id="upcart-stylesheet" rel="preload" href="https://cdn.shopify.com/extensions/01a0f97d-1699-7701-8105-968a4113862d/upcart-2-415/assets/upcart-stylesheet.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> 13925 13926 13927 13928 13929
13929<script defer type="text/javascript" src="https://cdn.shopify.com/extensions/01a0f97d-1699-7701-8105-968a4113862d/upcart-2-415/assets/upcart-bundle.js"></script>
13929 13930 13931 13932
13933<script> 13934 13935 function b64DecodeUnicode(str) { 13936 try { 13937 return decodeURIComponent( 13938 atob(str) 13939 .split('') 13940 .map(function (c) { 13941 return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); 13942 }) 13943 .join(''), 13944 ); 13945 } catch { 13946 return str; 13947 } 13948 } 13949</script>
13949 13950 13951
13952<script> 13953(function() { 13954 window.upcartSettings = {}; 13955 window.upcartSettings.upcartSettings = {}; 13956 window.upcartSettings.upcartEditorSettings = {}; 13957 window.upcartSettings.stickyCartButtonEditorSettings = {}; 13958 13959 13960 13961 13962 let val; 13963 13964 val = b64DecodeUnicode("cmlnaHQ="); 13965 if (val === '') { 13966 val = b64DecodeUnicode("cmlnaHQ="); 13967 } 13968 window.upcartSettings.upcartSettings.cartPosition = val; 13969 13970 val = b64DecodeUnicode("ZmFsc2U="); 13971 if (val === '') { 13972 val = b64DecodeUnicode("ZmFsc2U="); 13973 } 13974 val = JSON.parse(val); 13975 window.upcartSettings.upcartSettings.disableSticky = val; 13976 13977 val = b64DecodeUnicode("dHJ1ZQ=="); 13978 if (val === '') { 13979 val = b64DecodeUnicode("dHJ1ZQ=="); 13980 } 13981 val = JSON.parse(val); 13982 window.upcartSettings.upcartSettings.openOnAddToCart = val; 13983 13984 val = b64DecodeUnicode("ZmFsc2U="); 13985 if (val === '') { 13986 val = b64DecodeUnicode("ZmFsc2U="); 13987 } 13988 val = JSON.parse(val); 13989 window.upcartSettings.upcartSettings.redirectToCart = val; 13990 13991 val = b64DecodeUnicode("dHJ1ZQ=="); 13992 if (val === '') { 13993 val = b64DecodeUnicode("ZmFsc2U="); 13994 } 13995 val = JSON.parse(val); 13996 window.upcartSettings.upcartSettings.enableCartSkeletons = val; 13997 13998 val = b64DecodeUnicode("eyJjYXJ0VGl0bGUiOiJDYXJ0IOKAoiB7e2NhcnRfcXVhbnRpdHl9fSIsImNoZWNrb3V0IjoiQ2hlY2tvdXQg4oCiIHt7dG90YWxfcHJpY2V9fSIsImFkZFRleHQiOiJBZGQiLCJlbXB0eUNhcnQiOiJZb3VyIGNhcnQgaXMgZW1wdHkiLCJkaXNjb3VudFNhdmluZ3MiOiJTYXZlIiwiY29udGludWVTaG9wcGluZyI6Ik9yIGNvbnRpbnVlIHNob3BwaW5nIiwidG90YWxTYXZpbmdzIjoiRGlzY291bnRzIiwic3VidG90YWwiOiJTdWJ0b3RhbCIsImJ1bmRsZUhpZGVTaW5ndWxhckl0ZW1UZXh0IjoiSGlkZSAxIGl0ZW0iLCJidW5kbGVTaG93U2luZ3VsYXJJdGVtVGV4dCI6IlNob3cgMSBpdGVtIiwiYnVuZGxlSGlkZU11bHRpcGxlSXRlbXNUZXh0IjoiSGlkZSB7TlVNQkVSX09GX0lURU1TfSBpdGVtcyIsImJ1bmRsZVNob3dNdWx0aXBsZUl0ZW1zVGV4dCI6IlNob3cge05VTUJFUl9PRl9JVEVNU30gaXRlbXMifQ=="); 13999 if (val === '') { 14000 val = b64DecodeUnicode("eyJjYXJ0VGl0bGUiOiJDYXJ0IOKAoiB7e2NhcnRfcXVhbnRpdHl9fSIsImNoZWNrb3V0IjoiQ2hlY2tvdXQg4oCiIHt7dG90YWxfcHJpY2V9fSIsImFkZFRleHQiOiJBZGQiLCJlbXB0eUNhcnQiOiJZb3VyIGNhcnQgaXMgZW1wdHkiLCJkaXNjb3VudFNhdmluZ3MiOiJTYXZlIiwiY29udGludWVTaG9wcGluZyI6Ik9yIGNvbnRpbnVlIHNob3BwaW5nIiwidG90YWxTYXZpbmdzIjoiRGlzY291bnRzIiwic3VidG90YWwiOiJTdWJ0b3RhbCIsImJ1bmRsZUhpZGVTaW5ndWxhckl0ZW1UZXh0IjoiSGlkZSAxIGl0ZW0iLCJidW5kbGVTaG93U2luZ3VsYXJJdGVtVGV4dCI6IlNob3cgMSBpdGVtIiwiYnVuZGxlSGlkZU11bHRpcGxlSXRlbXNUZXh0IjoiSGlkZSB7TlVNQkVSX09GX0lURU1TfSBpdGVtcyIsImJ1bmRsZVNob3dNdWx0aXBsZUl0ZW1zVGV4dCI6IlNob3cge05VTUJFUl9PRl9JVEVNU30gaXRlbXMifQ=="); 14001 } 14002 val = JSON.parse(val); 14003 window.upcartSettings.upcartSettings.translations = val; 14004 14005 val = b64DecodeUnicode("eyJhYm92ZUZvb3RlciI6IiIsImFib3ZlSGVhZGVyIjoiIiwiYmVsb3dIZWFkZXIiOiIiLCJiZXR3ZWVuTGluZUl0ZW1zIjoiIiwiYWJvdmVDaGVja291dEJ1dHRvbiI6IiIsImJlbG93Q2hlY2tvdXRCdXR0b24iOiIiLCJib3R0b21PZkNhcnQiOiIiLCJvbkVtcHR5Q2FydCI6IiIsInNjcmlwdHNCZWZvcmVMb2FkIjoiPHNjcmlwdD5cbi8qIENhbGlzdGE6IGV4cGFuZGFibGUgY291cG9uIGVudHJ5IOKAlCAyMDI2LTA5LTE3XG4gICBBZGQgdGhpcyB3aG9sZSBibG9jayB0byBVcGNhcnQgPiBDYXJ0IEVkaXRvciA+IFNldHRpbmdzID5cbiAgIEN1c3RvbSBIVE1MID4gU2NyaXB0cyAoQmVmb3JlIExvYWQpLCBiZWxvdyBhbnkgZXhpc3Rpbmcgc2NyaXB0cy5cbiAgIEtlZXAgdGhlIGV4aXN0aW5nIHJlY29tbWVuZGVkLXByb2R1Y3RzIGRyb3Bkb3duIHNjcmlwdC5cbiAgIFRoaXMgc2NyaXB0IGRvZXMgbm90IHN1Ym1pdCwgdmFsaWRhdGUsIG9yIGFwcGx5IGRpc2NvdW50cyBpdHNlbGYuXG4qL1xuKGZ1bmN0aW9uICgpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIHZhciBrZXkgPSAnY2FsaXN0YVVwY2FydENvdXBvbkFjY29yZGlvbic7XG4gIGlmICh3aW5kb3dba2V5XSkge1xuICAgIHdpbmRvd1trZXldLnJlZnJlc2goKTtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgc2VjdGlvblNlbGVjdG9yID0gJyN1cENhcnQgLnVwY2FydC1wdWJsaWMtZGlzY291bnQtY29kZSc7XG4gIHZhciBmb3JtU2VsZWN0b3IgPSAnLnVwY2FydC1wdWJsaWMtZGlzY291bnQtY29kZV9fZm9ybSc7XG4gIHZhciB0b2dnbGVDbGFzcyA9ICdjYWxpc3RhLWNvdXBvbi10b2dnbGUnO1xuICB2YXIgaXNPcGVuID0gZmFsc2U7XG4gIHZhciBuZXh0SWQgPSAwO1xuICB2YXIgc2NoZWR1bGVkID0gZmFsc2U7XG5cbiAgZnVuY3Rpb24gcmVmcmVzaCgpIHtcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlY3Rpb25TZWxlY3RvcikuZm9yRWFjaChmdW5jdGlvbiAoc2VjdGlvbikge1xuICAgICAgdmFyIGZvcm0gPSBzZWN0aW9uLnF1ZXJ5U2VsZWN0b3IoZm9ybVNlbGVjdG9yKTtcbiAgICAgIHZhciB0b2dnbGUgPSBzZWN0aW9uLnF1ZXJ5U2VsZWN0b3IoJy4nICsgdG9nZ2xlQ2xhc3MpO1xuXG4gICAgICAvLyBBcHBsaWVkLWRpc2NvdW50IGxhYmVscyBtYXkgcmVtYWluIGV2ZW4gaWYgVXBjYXJ0IHJlbW92ZXMgaXRzIGZvcm0uXG4gICAgICBpZiAoIWZvcm0pIHtcbiAgICAgICAgaWYgKHRvZ2dsZSkgdG9nZ2xlLnJlbW92ZSgpO1xuICAgICAgICBzZWN0aW9uLmNsYXNzTGlzdC5yZW1vdmUoJ2NhbGlzdGEtY291cG9uLWFjY29yZGlvbicpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICghZm9ybS5pZCkge1xuICAgICAgICB2Y
14005XIgaWQ7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICBpZCA9ICdjYWxpc3RhLXVwY2FydC1jb3Vwb24tZm9ybS0nICsgKCsrbmV4dElkKTtcbiAgICAgICAgfSB3aGlsZSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpKTtcbiAgICAgICAgZm9ybS5pZCA9IGlkO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRvZ2dsZSkge1xuICAgICAgICB0b2dnbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTtcbiAgICAgICAgdG9nZ2xlLnR5cGUgPSAnYnV0dG9uJztcbiAgICAgICAgdG9nZ2xlLmNsYXNzTmFtZSA9IHRvZ2dsZUNsYXNzO1xuICAgICAgICB0b2dnbGUudGV4dENvbnRlbnQgPSAnQXBwbHkgYSBjb3Vwb24gY29kZSc7XG4gICAgICAgIC8vIEluc2VydCBhIHNpYmxpbmcuIFByZXNlcnZlIFVwY2FydCdzIGZvcm0gYW5kIGl0cyBldmVudCBoYW5kbGVycy5cbiAgICAgICAgZm9ybS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0b2dnbGUsIGZvcm0pO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGUuc2V0QXR0cmlidXRlKCdhcmlhLWNvbnRyb2xzJywgZm9ybS5pZCk7XG4gICAgICB0b2dnbGUuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgU3RyaW5nKGlzT3BlbikpO1xuICAgICAgc2VjdGlvbi5jbGFzc0xpc3QuYWRkKCdjYWxpc3RhLWNvdXBvbi1hY2NvcmRpb24nKTtcbiAgICAgIGZvcm0uaGlkZGVuID0gIWlzT3BlbjtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNjaGVkdWxlUmVmcmVzaCgpIHtcbiAgICBpZiAoc2NoZWR1bGVkKSByZXR1cm47XG4gICAgc2NoZWR1bGVkID0gdHJ1ZTtcbiAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uICgpIHtcbiAgICAgIHNjaGVkdWxlZCA9IGZhbHNlO1xuICAgICAgcmVmcmVzaCgpO1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlQ2xpY2soZXZlbnQpIHtcbiAgICBpZiAoIShldmVudC50YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50KSkgcmV0dXJuO1xuICAgIHZhciB0b2dnbGUgPSBldmVudC50YXJnZXQuY2xvc2VzdCgnLicgKyB0b2dnbGVDbGFzcyk7XG4gICAgaWYgKCF0b2dnbGUgfHwgIXRvZ2dsZS5jbG9zZXN0KHNlY3Rpb25TZWxlY3RvcikpIHJldHVybjtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlzT3BlbiA9IHRvZ2dsZS5nZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnKSAhPT0gJ3RydWUnO1xuICAgIHJlZnJlc2goKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRvdWNoZXNDYXJ0KHJlY29yZHMpIHtcbiAgICByZXR1cm4gcmVjb3Jkcy5zb21lKGZ1bmN0aW9uIChyZWNvcmQpIHtcbiAgICAgIGlmIChyZWNvcmQudGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCAmJlxuICAgICAgICAgIHJlY29yZC50YXJnZXQuY2xvc2VzdCgnI3VwQ2FydCcpKSByZXR1cm4gdHJ1ZTtcblxuICAgICAgcmV0dXJuIEFycmF5LmZyb20ocmVjb3JkLmFkZGVkTm9kZXMpXG4gICAgICAgIC5jb25jYXQoQXJyYXkuZnJvbShyZWNvcmQucmVtb3ZlZE5vZGVzKSlcbiAgICAgICAgLnNvbWUoZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgICAgICByZXR1cm4gbm9kZSBpbnN0YW5jZW9mIEVsZW1lbnQgJiZcbiAgICAgICAgICAgIChub2RlLmlkID09PSAndXBDYXJ0JyB8fCBub2RlLnF1ZXJ5U2VsZWN0b3IoJyN1cENhcnQnKSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gc3RhcnQoKSB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGljayk7XG4gICAgcmVmcmVzaCgpO1xuICAgIC8vIFJlaW5zdGFsbCB0aGUgcm93IGFmdGVyIFVwY2FydCByZXBsYWNlcyBpdHMgZm9ybSBvciBjYXJ0IG1hcmt1cC5cbiAgICAvLyBUaGUgZXhwYW5kZWQgc3RhdGUgc3Vydml2ZXMgdGhvc2UgdXBkYXRlcyB3aXRoaW4gdGhlIGN1cnJlbnQgcGFnZS5cbiAgICB2YXIgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiAocmVjb3Jkcykge1xuICAgICAgaWYgKHRvdWNoZXNDYXJ0KHJlY29yZHMpKSBzY2hlZHVsZVJlZnJlc2goKTtcbiAgICB9KTtcbiAgICBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICB9XG5cbiAgLy8gR3VhcmQgYWdhaW5zdCByZXBlYXRlZCBleGVjdXRpb24gYnkgQ3VzdG9tIEhUTUwgcmUtcmVuZGVycy5cbiAgd2luZG93W2tleV0gPSB7IHJlZnJlc2g6IHNjaGVkdWxlUmVmcmVzaCB9O1xuICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2xvYWRpbmcnKSB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIHN0YXJ0LCB7IG9uY2U6IHRydWUgfSk7XG4gIH0gZWxzZSB7XG4gICAgc3RhcnQoKTtcbiAgfVxufSkoKTtcbjwvc2NyaXB0PlxuPHNjcmlwdD5cbi8qIENhbGlzdGEgVXBjYXJ0IHJlY29tbWVuZGF0aW9ucyB2aXNpYmlsaXR5IGZpeCDigJQgMjAyNi0wOS0xN1xuICAgQXBwZW5kIHRoaXMgY29tcGxldGUgYmxvY2sgYmVsb3cgZXhpc3Rpbmcgc2NyaXB0cyBpbjpcbiAgIFVwY2FydCA+IENhcnQgRWRpdG9yID4gU2V0dGluZ3MgPiBDdXN0b20gSFRNTCA+IFNjcmlwdHMgKEJlZm9yZSBMb2FkKS5cbiAgIEtlZXAgdGhlIGV4aXN0aW5nIHJlY29tbWVuZGF0aW9ucyBhbmQgY291cG9uIHNjcmlwdHMuXG4qL1xuKGZ1bmN0aW9uICgpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIGlmICh3aW5kb3cuY2FsaXN0YVVwY2FydFJlY29tbWVuZGF0aW9uc0ZpeCkge1xuICAgIHdpbmRvdy5jYWxpc3RhVXBjYXJ0UmVjb21tZW5kYXRpb25zRml4LnJlZnJlc2goKTtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgbW9kdWxlU2VsZWN0b3IgPSAnLnVwY2FydC1wdWJsaWMtdXBzZWxsJztcbiAgdmFyIHRpdGxlU2VsZWN0b3IgPSAnLnVwY2FydC1wdWJsaWMtdXBzZWxsX190aXRsZSc7XG4gIHZhciBncmlkU2VsZWN0b3IgPSAnLnVwY2FydC1wdWJsaWMtdXBzZWxsX192ZXJ0aWNhbC1sYXlvdXQtd3JhcHBlcic7XG4gIHZhciBuZXh0SWQgPSAwO1xuICB2YXIgcXVldWVkID0gZmFsc2U7XG5cbiAgZnVuY3Rpb24gcmVmcmVzaCgpIHtcbiAgICBkb2
14005N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKG1vZHVsZVNlbGVjdG9yKS5mb3JFYWNoKGZ1bmN0aW9uIChtb2R1bGUpIHtcbiAgICAgIHZhciB0aXRsZSA9IG1vZHVsZS5xdWVyeVNlbGVjdG9yKHRpdGxlU2VsZWN0b3IpO1xuICAgICAgdmFyIGdyaWQgPSBtb2R1bGUucXVlcnlTZWxlY3RvcihncmlkU2VsZWN0b3IpO1xuICAgICAgaWYgKCF0aXRsZSB8fCAhZ3JpZCkgcmV0dXJuO1xuXG4gICAgICAvKiBQcmVzZXJ2ZSB0aGUgZXhpc3RpbmcgZHJvcGRvd24gaGFuZGxlciB3aGVuIGl0IGlzIGluc3RhbGxlZC5cbiAgICAgICAgIEluaXRpYWxpemUgYSBoYW5kbGVyIG9ubHkgaWYgdGhlIG9yaWdpbmFsIG9uZSBpcyBhYnNlbnQuICovXG4gICAgICBpZiAodGl0bGUuZ2V0QXR0cmlidXRlKCdkYXRhLWNhbGlzdGEtZHJvcGRvd24taW5pdCcpICE9PSAndHJ1ZScpIHtcbiAgICAgICAgdGl0bGUuc2V0QXR0cmlidXRlKCdkYXRhLWNhbGlzdGEtZHJvcGRvd24taW5pdCcsICd0cnVlJyk7XG4gICAgICAgIHRpdGxlLnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICAgICAgICB0aXRsZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB0aXRsZS5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLFxuICAgICAgICAgICAgdGl0bGUuZ2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJykgPT09ICd0cnVlJyA/ICdmYWxzZScgOiAndHJ1ZScpO1xuICAgICAgICAgIHJlZnJlc2goKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRpdGxlLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGl0bGUuY2xpY2soKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aXRsZS5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAnYnV0dG9uJyk7XG4gICAgICBpZiAoIXRpdGxlLmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKSkgdGl0bGUuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICBpZiAoIXRpdGxlLmhhc0F0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcpKSB7XG4gICAgICAgIHRpdGxlLnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICAgICAgfVxuICAgICAgaWYgKCFncmlkLmlkKSB7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICBuZXh0SWQgKz0gMTtcbiAgICAgICAgfSB3aGlsZSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbGlzdGEtdXBzZWxsLXBhbmVsLScgKyBuZXh0SWQpKTtcbiAgICAgICAgZ3JpZC5pZCA9ICdjYWxpc3RhLXVwc2VsbC1wYW5lbC0nICsgbmV4dElkO1xuICAgICAgfVxuICAgICAgdGl0bGUuc2V0QXR0cmlidXRlKCdhcmlhLWNvbnRyb2xzJywgZ3JpZC5pZCk7XG5cbiAgICAgIHZhciBleHBhbmRlZCA9IHRpdGxlLmdldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcpID09PSAndHJ1ZSc7XG4gICAgICB2Y
14005XIgZGlzcGxheSA9IGV4cGFuZGVkID8gJ2dyaWQnIDogJ25vbmUnO1xuICAgICAgZ3JpZC5oaWRkZW4gPSAhZXhwYW5kZWQ7XG4gICAgICAvKiBJbmxpbmUgIWltcG9ydGFudCBvdmVycmlkZXMgYW4gYWx3YXlzLXZpc2libGUgZ3JpZCBDU1MgcnVsZS5cbiAgICAgICAgIFByZXNlcnZlIHRoZSBvcmlnaW5hbCBwcm9kdWN0IGVsZW1lbnRzIGFuZCB0aGVpciBBZGQgYnV0dG9ucy4gKi9cbiAgICAgIGlmIChncmlkLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2Rpc3BsYXknKSAhPT0gZGlzcGxheSB8fFxuICAgICAgICAgIGdyaWQuc3R5bGUuZ2V0UHJvcGVydHlQcmlvcml0eSgnZGlzcGxheScpICE9PSAnaW1wb3J0YW50Jykge1xuICAgICAgICBncmlkLnN0eWxlLnNldFByb3BlcnR5KCdkaXNwbGF5JywgZGlzcGxheSwgJ2ltcG9ydGFudCcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gc2NoZWR1bGVSZWZyZXNoKCkge1xuICAgIGlmIChxdWV1ZWQpIHJldHVybjtcbiAgICBxdWV1ZWQgPSB0cnVlO1xuICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24gKCkge1xuICAgICAgcXVldWVkID0gZmFsc2U7XG4gICAgICByZWZyZXNoKCk7XG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiB0b3VjaGVzUmVjb21tZW5kYXRpb25zKG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZS5ub2RlVHlwZSA9PT0gMSAmJiAoXG4gICAgICBub2RlLm1hdGNoZXMobW9kdWxlU2VsZWN0b3IpIHx8XG4gICAgICBub2RlLmNsb3Nlc3QobW9kdWxlU2VsZWN0b3IpIHx8XG4gICAgICBub2RlLnF1ZXJ5U2VsZWN0b3IobW9kdWxlU2VsZWN0b3IpXG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHN0YXJ0KCkge1xuICAgIHJlZnJlc2goKTtcbiAgICB2YXIgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiAocmVjb3Jkcykge1xuICAgICAgdmFyIHJlbGV2YW50ID0gcmVjb3Jkcy5zb21lKGZ1bmN0aW9uIChyZWNvcmQpIHtcbiAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSAnYXR0cmlidXRlcycpIHtcbiAgICAgICAgICByZXR1cm4gcmVjb3JkLnRhcmdldC5tYXRjaGVzKHRpdGxlU2VsZWN0b3IpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0b3VjaGVzUmVjb21tZW5kYXRpb25zKHJlY29yZC50YXJnZXQpIHx8XG4gICAgICAgICAgQXJyYXkuZnJvbShyZWNvcmQuYWRkZWROb2Rlcykuc29tZSh0b3VjaGVzUmVjb21tZW5kYXRpb25zKSB8fFxuICAgICAgICAgIEFycmF5LmZyb20ocmVjb3JkLnJlbW92ZWROb2Rlcykuc29tZSh0b3VjaGVzUmVjb21tZW5kYXRpb25zKTtcbiAgICAgIH0pO1xuICAgICAgaWYgKHJlbGV2YW50KSBzY2hlZHVsZVJlZnJlc2goKTtcbiAgICB9KTtcbiAgICBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHtcbiAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2FyaWEtZXhwYW5kZWQnXVxuICAgIH0pO1xuICB9XG5cbiAgd2luZG93LmNhbGlzdGFVcGNhcnRSZWNvbW1lbmRhdGlvbnNGaXggPSB7IHJlZnJlc2g6IHJlZnJlc2ggfTtcbiAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdsb2FkaW5nJykge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBzdGFydCwgeyBvbmNlOiB0cnVlIH0pO1xuICB9IGVsc2Uge1xuICAgIHN0YXJ0KCk7XG4gIH1cbn0pKCk7XG48L3NjcmlwdD4ifQ=="); 14006 if (val === '') { 14007 val = b64DecodeUnicode("eyJhYm92ZUZvb3RlciI6IiIsImFib3ZlSGVhZGVyIjoiIiwiYmVsb3dIZWFkZXIiOiIiLCJiZXR3ZWVuTGluZUl0ZW1zIjoiIiwiYmVsb3dDYXJ0SXRlbXMiOiIiLCJhYm92ZUNoZWNrb3V0QnV0dG9uIjoiIiwiYmVsb3dDaGVja291dEJ1dHRvbiI6IiIsImJvdHRvbU9mQ2FydCI6IiIsIm9uRW1wdHlDYXJ0IjoiIiwic2NyaXB0c0JlZm9yZUxvYWQiOiIifQ=="); 14008 } 14009 val = JSON.parse(val); 14010 window.upcartSettings.upcartSettings.htmlFields = val; 14011 14012 val = b64DecodeUnicode("dHJ1ZQ=="); 14013 if (val === '') { 14014 val = b64DecodeUnicode("dHJ1ZQ=="); 14015 } 14016 val = JSON.parse(val); 14017 window.upcartSettings.upcartSettings.automaticDiscount = val; 14018 14019 val = b64DecodeUnicode("ZmFsc2U="); 14020 if (val === '') { 14021 val = b64DecodeUnicode("ZmFsc2U="); 14022 } 14023 val = JSON.parse(val); 14024 window.upcartSettings.upcartSettings.basePriceForDiscount = val; 14025 14026 val = b64DecodeUnicode("dHJ1ZQ=="); 14027 if (val === '') { 14028 val = b64DecodeUnicode("ZmFsc2U="); 14029 } 14030 val = JSON.parse(val); 14031 window.upcartSettings.upcartSettings.hideSingleUnderscoredProperties = val; 14032 14033 val = b64DecodeUnicode("ZmFsc2U="); 14034 if (val === '') { 14035 val = b64DecodeUnicode("ZmFsc2U="); 14036 } 14037 val = JSON.parse(val); 14038 window.upcartSettings.upcartSettings.showContinueShoppingButton = val; 14039 14040 val = b64DecodeUnicode("ZmFsc2U="); 14041 if (val === '') { 14042 val = b64DecodeUnicode("ZmFsc2U="); 14043 } 14044 val = JSON.parse(val); 14045 window.upcartSettings.upcartSettings.ajaxRaceConditionPrevention = val; 14046 14047 val = b64DecodeUnicode("ZmFsc2U="); 14048 if (val === '') { 14049 val = b64DecodeUnicode("ZmFsc2U="); 14050 } 14051 val = JSON.parse(val); 14052 window.upcartSettings.upcartSettings.htmlFieldForceReRender = val; 14053 14054 val = b64DecodeUnicode("ZmFsc2U="); 14055 if (val === '') { 14056 val = b64DecodeUnicode("ZmFsc2U="); 14057 } 14058 val = JSON.parse(val); 14059 window.upcartSettings.upcartSettings.skipGoogleFonts = val; 14060 14061 val = b64DecodeUnicode("ZmFsc2U="); 14062 if (val === '') { 14063 val = b64DecodeUnicode("ZmFsc2U="); 14064 } 14065 val = JSON.parse(val); 14066 window.upcartSettings.upcartSettings.overrideScrollLocking = val; 14067 14068 val = b64DecodeUnicode("MTAw"); 14069 if (val === '') { 14070 val = b64DecodeUnicode("MTAw"); 14071 } 14072 window.upcartSettings.upcartSettings.trafficAllocationPercent = val; 14073 14074 val = b64DecodeUnicode("ZmFsc2U="); 14075 if (val === '') { 14076 val = b64DecodeUnicode("ZmFsc2U="); 14077 } 14078 val = JSON.parse(val); 14079 window.upcartSettings.upcartSettings.renderCartInShadowDom = val; 14080 14081 val = b64DecodeUnicode("dHJ1ZQ=="); 14082 if (val === '') { 14083 val = b64DecodeUnicode("ZmFsc2U="); 14084 } 14085 val = JSON.parse(val); 14086 window.upcartSettings.upcartSettings.cartEventTracking = val; 14087 14088 val = b64DecodeUnicode("eyJvcHRpb24iOiJkZWZhdWx0LXNlbGVjdG9yIiwiY3VzdG9tU2VsZWN0b3IiOiIifQ=="); 14089 if (val === '') { 14090 val = b64DecodeUnicode("eyJvcHRpb24iOiJkZWZhdWx0LXNlbGVjdG9yIiwiY3VzdG9tU2VsZWN0b3IiOiIifQ=="); 14091 } 14092 val = JSON.parse(val); 14093 window.upcartSettings.upcartSettings.openCartButtonSelection = val; 14094 14095 val = b64DecodeUnicode("eyJvcHRpb24iOiJkZWZhdWx0LXNlbGVjdG9yIiwiY3VzdG9tU2VsZWN0b3IiOiIifQ=="); 14096 if (val === '') { 14097 val = b64DecodeUnicode("eyJvcHRpb24iOiJkZWZhdWx0LXNlbGVjdG9yIiwiY3VzdG9tU2VsZWN0b3IiOiIifQ=="); 14098 } 14099 val = JSON.parse(val); 14100 window.upcartSettings.upcartSettings.addToCartButtonSelection = val; 14101 14102 val = b64DecodeUnicode("bGluZQ=="); 14103 if (val === '') { 14104 val = b64DecodeUnicode("bGluZQ=="); 14105 } 14106 window.upcartSettings.upcartSettings.updateItemIdentifier = val; 14107 14108 val = b64DecodeUnicode("LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQ2FsaXN0YSDigJQgVXBjYXJ0IFYyIEN1c3RvbSBDU1MKCiAgIFVQREFURUQ6IDIwMjYtMDktMTcKCiAgIEN1cnJlbnQgdHJlYXRtZW50OgogICAtIENvbXBhY3QgY2FydCB0eXBvZ3JhcGh5L2xheW91dAogICAtICJBZGQgUmVjb21tZW5kZWQgUHJvZHVjdHMiIGRpcmVjdGx5IGJlbG93IGNhcnQgaXRlbXMKICAgLSBSZWNvbW1lbmRhdGlvbnMgY29sbGFwc2VkIGJ5IGRlZmF1bHQgdXNpbmcgdGhlIGV4aXN0aW5nIHRvZ2dsZSBzY3JpcHQKICAgLSBDb3Vwb24gZW50cnkgZXhwYW5kcyBmcm9tIGEgY29tcGFjdCB0ZXh0IHJvdyAoY29tcGFuaW9uIHNjcmlwdCByZXF1aXJlZCkKICAgLSBTdGFuZGFyZCBjaGVja291dCBkaXNwbGF5ZWQgYWJvdmUgcGFpZCBDaGVja291dCsKICAgLSAyLXVwIHJlY29tbWVuZGF0aW9uIGdyaWQKICAgLSBEaXZpZG
14108VyIGJldHdlZW4gY2FydCBpdGVtcyBhbmQgcmVjb21tZW5kYXRpb25zCiAgIC0gUHJldmVudHMgVXBjYXJ0IGJvdHRvbU1vZHVsZXMgd3JhcHBlciBmcm9tCiAgICAgYW5jaG9yaW5nIHJlY29tbWVuZGF0aW9ucyB0byBib3R0b20gb2YgZHJhd2VyCgogICBXQVJOSU5HOgogICAudXBjYXJ0LWludGVybmFsLSogYW5kIFtjbGFzcyo9Ii4uLiJdCiAgIHNlbGVjdG9ycyBhcmUgdW5kb2N1bWVudGVkIFVwY2FydCBjbGFzc2VzIGFuZAogICBjb3VsZCBjaGFuZ2UgYWZ0ZXIgYW4gVXBjYXJ0IHVwZGF0ZS4KCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgSUNPTlMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCltjbGFzcyo9InVwY2FydC1wdWJsaWMtY29tcG9uZW50Il0gc3ZnLApbY2xhc3MqPSJ1cGNhcnQtcHVibGljLWNvbXBvbmVudCJdIHN2ZyBwYXRoIHsKICBmaWxsOiAjMzMzMjJFICFpbXBvcnRhbnQ7Cn0KCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBDQVJUIElURU0gSU1BR0VTCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgoudXBjYXJ0LXB1YmxpYy1jb21wb25lbnQtcHJvZHVjdC10aWxlX19pbWFnZS13cmFwcGVyIHsKICB3aWR0aDogODhweCAhaW1wb3J0YW50OwogIG1pbi13aWR0aDogODhweCAhaW1wb3J0YW50OwogIG1heC13aWR0aDogODhweCAhaW1wb3J0YW50OwoKICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7Cn0KCi51cGNhcnQtcHVibGljLWNvbXBvbmVudC1wcm9kdWN0LXRpbGVfX2ltYWdlIHsKICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwoKICBvYmplY3QtZml0OiBjb250YWluICFpbXBvcnRhbnQ7Cn0KCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBUWVBPR1JBUEhZCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgoKLyogQ2FydCBoZWFkZXIgKi8KCi51cGNhcnQtaW50ZXJuYWwtaGVhZGVyIGgzIHsKICBmb250LXNpemU6IDE1cHggIWltcG9ydGFudDsKICBmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7CgogIG1hcmdpbjogMCAhaW1wb3J0YW50Owp9CgoKLyogUmV3YXJkcyAvIGZyZWUgZ2lmdCBtZXNzYWdlICovCgoudXBjYXJ0LWludGVybmFsLXJld2FyZHNfX21lc3NhZ2UgcCB7CiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7CiAgbGluZS1oZWlnaHQ6IDEuMiAhaW1wb3J0YW50OwoKICBtYXJnaW46IDAgIWltcG9ydGFudDsKfQoKCi8qIEdlbmVyaWMgc2VjdGlvbiB0aXRsZXMgKi8KCi51cGNhcnQtaW50ZXJuYWwtc3R5bGVfX3RpdGxlLWxhcmdlIHsKICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDsKICBmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7CgogIG1hcmdpbi1ib3R0b206IDZweCAhaW1wb3J0YW50Owp9CgoKLyogQ2FydCBwcm9kdWN0IHRpdGxlICovCgoudXBjYXJ0LWludGVybmFsLWNvbXBvbmVudC1wcm9kdWN0LXRpbGVfX3Byb2R1Y3QtdGl0bGUgewogIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50OwogIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDsKICBsaW5lLWhlaWdodDogMS4yNSAhaW1wb3J0YW50OwoKICBtYXJnaW46IDAgMCAycHggIWltcG9ydGFudDsKfQoKCi8qIENhcnQgcHJvZHVjdCBwcmljZSArIHF1YW50aXR5ICovCgoudXBjYXJ0LWludGVybmFsLWNvbXBvbmVudC1wcm9kdWN0LXRpbGVfX3ByaWNlLAoudXBjYXJ0LWludGVybmFsLWNvbXBvbmVudC1wcm9kdWN0LXRpbGVfX3F1YW50aXR5LXNlbGVjdG9yIGlucHV0IHsKICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDsKfQoKCi8qIFByb2R1Y3Qgb3B0aW9ucyAqLwoKLnVwY2FydC1pbnRlcm5hbC1jYXJ0LWl0ZW1zX19rZXktdmFsdWUtcGFpciB7CiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7Cn0KCgovKiBVcHNlbGwgcHJvZHVjdCB0aXRsZSArIHByaWNlICovCgoudXBjYXJ0LWludGVybmFsLWNvbXBvbmVudC11cHNlbGwtdGlsZV9fdGl0bGUsCi51cGNhcnQtaW50ZXJuYWwtY29tcG9uZW50LXVwc2VsbC10aWxlX19wcmljZSB7CiAgZm9udC1zaXplOiAxM3B4ICFpbXBvcnRhbnQ7CiAgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50OwogIGxpbmUtaGVpZ2h0OiAxLjI1ICFpbXBvcnRhbnQ7CgogIG1hcmdpbjogMCAhaW1wb3J0YW50Owp9CgoKLyogVXBzZWxsIEFkZCBidXR0b24gKi8KCi51cGNhcnQtaW50ZXJuYWwtY29tcG9uZW50LXVwc2VsbC10aWxlCi51cGNhcnQtaW50ZXJuYWwtY29tcG9uZW50X19idXR0b24gewogIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50OwoKICBwYWRkaW5nOiAxMnB4IDEwcHggIWltcG9ydGFudDsKfQoKCi8qIENhcnQgc3VidG90YWwgKi8KCltjbGFzcyo9IkZvb3Rlcl9fY2FydFN1YnRvdGFsVGl0bGUiXSwKW2NsYXNzKj0iRm9vdGVyX19jYXJ0U3VidG90YWxWYWx1ZSJdIHsKICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDsKICBmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7Cn0KCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBHRU5FUkFMIENBUlQgU1BBQ0lORwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKCi8qIEhlYWRlciAqLwoKLnVwY2FydC1pbnRlcm5hbC1oZWFkZXIgewogIHBhZGRpbmc6IDEycHggMTRweCAhaW1wb3J0YW50Owp9CgoKLyogUmV3YXJkcyAvIGZyZWUgZ2lmdCBwcm9ncmVzcyAqLwoKLnVwY2FydC1pbnRlcm5hbC1yZXdhcmRzIHsKICBwYWRkaW5nOiAxNHB4IDMwcHggMjBweCAhaW1wb3J0YW50Owp9CgoKLyogSW5kaXZpZHVhbCBjYXJ0IHByb2R1Y3QgKi8KCi51cGNhcnQtaW50ZXJuYWwtY29tcG9uZW50LXByb2R1Y3QtdGlsZSB7CiAgcGFkZGluZy10b3A6IDE0cHggIWltcG9ydGFudDsKICBwYWRkaW5nLWJvdHRvbTogMzBweCAhaW1wb3J0YW50OwoKICBib3JkZXItYm90dG9tOiBub25lICFpbXBvcnRhbnQ7Cn0KCgovKiBGb290ZXIgKi8KCltjbGFzc349InN0eWxlc19Gb290ZXJfXyJdIHsKICBwYWRkaW5nLXRvcDogNXB4ICFpbXBvcnRhbnQ7CiAgcGFkZGluZy1ib3R0b206IDEwcHggIWltcG9ydGFudDsKfQoKW2NsYXNzKj0iRm9vdGVyX19jYXJ0U3VtbWFyeVNlY3Rpb24iXSB7CiAgcGFkZGluZy10b3A6IDRweCAhaW1wb3J0YW50OwogIHBhZGRpbmctYm90dG9tOiA2cHggIWltcG9ydGFudDsKfQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIE1BSU4gQ0FSVCBJVEVNUwoKICAgUHJldmVudCBjYXJ0IGl0ZW1zIGFyZWEgZnJvbSBzdHJldGNoaW5nLgogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKLnVwY2FydC1wdWJsaWMtY2FydC1pdGVtcywKLnVwY2FydC1pbnRlcm5hbC1jYXJ0LWl0ZW1zIHsKICBmbGV4OiAwIDAgYXV0byAhaW1wb3J0YW50OwoKICBmbGV4LWdyb3c6IDAgIWltcG9ydGFudDsKICBmbGV4LXNocmluazogMCAhaW1wb3J0YW50OwoKICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwoKICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICBtaW4taGVpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50OwoKICBtYXJnaW46IDAgIWltcG9ydGFudDsKCiAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50Owp9CgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgVVBDQVJUIEJPVFRPTSBNT0RVTEVTIFBPU0lUSU9OSU
141085HIEZJWAoKICAgUHJldmVudCByZWNvbW1lbmRhdGlvbnMgZnJvbSBiZWluZyBhbmNob3JlZAogICB0byB0aGUgYm90dG9tIG9mIHRoZSBjYXJ0IGRyYXdlci4KICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCltjbGFzcyo9IkNhcnRQcmV2aWV3X19ib3R0b21Nb2R1bGVzIl0gewogIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDsKCiAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7CiAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICBib3R0b206IGF1dG8gIWltcG9ydGFudDsKICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7CgogIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CgogIGZsZXg6IDAgMCBhdXRvICFpbXBvcnRhbnQ7CiAgZmxleC1ncm93OiAwICFpbXBvcnRhbnQ7CiAgZmxleC1zaHJpbms6IDAgIWltcG9ydGFudDsKCiAgYWxpZ24tc2VsZjogc3RyZXRjaCAhaW1wb3J0YW50OwoKICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwoKICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICBtaW4taGVpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50OwoKICBtYXJnaW46IDAgIWltcG9ydGFudDsKICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7CiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OwoKICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7CgogIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50OwoKICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7CgogIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRTVFNUU1ICFpbXBvcnRhbnQ7Cn0KCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBQQVJFTlQgT0YgQk9UVE9NIE1PRFVMRVMKCiAgIEJhY2t1cCBvdmVycmlkZSBpbiBjYXNlIFVwY2FydCBpcyB1c2luZwogICBqdXN0aWZ5LWNvbnRlbnQgLyBmbGV4IHNwYWNpbmcgb24gdGhlIHBhcmVudC4KICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCio6aGFzKD4gW2NsYXNzKj0iQ2FydFByZXZpZXdfX2JvdHRvbU1vZHVsZXMiXSkgewogIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50OwogIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsKfQoKKjpoYXMoPiBbY2xhc3MqPSJDYXJ0UHJldmlld19fYm90dG9tTW9kdWxlcyJdKQo+IFtjbGFzcyo9IkNhcnRQcmV2aWV3X19ib3R0b21Nb2R1bGVzIl0gewogIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsKCiAgZmxleDogMCAwIGF1dG8gIWltcG9ydGFudDsKICBmbGV4LWdyb3c6IDAgIWltcG9ydGFudDsKfQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIFJFQ09NTUVOREVEIFBST0RVQ1RTIENPTlRBSU5FUgogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKLnVwY2FydC1wdWJsaWMtdXBzZWxsLAoudXBjYXJ0LWludGVybmFsLXVwc2VsbCB7CiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7CgogIGZsZXg6IDAgMCBhdXRvICFpbXBvcnRhbnQ7CgogIGZsZXgtZ3JvdzogMCAhaW1wb3J0YW50OwogIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7CgogIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDsKCiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKCiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgbWluLWhlaWdodDogMCAhaW1wb3J0YW50OwogIG1heC1oZWlnaHQ6IG5vbmUgIWltcG9ydGFudDsKCiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7CiAgcGFkZGluZzogMCAhaW1wb3J0YW50OwoKICBiYWNrZ3JvdW5kOiAjRkZGRkZGICFpbXBvcnRhbnQ7CgogIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwoKICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7Cn0KCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBREQgUkVDT01NRU5ERUQgUFJPRFVDVFMgQUNDT1JESU9OIEhFQURJTkcKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCi51cGNhcnQtcHVibGljLXVwc2VsbF9fdGl0bGUsCi51cGNhcnQtaW50ZXJuYWwtdXBzZWxsX190aXRsZSB7CiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7CgogIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKCiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OwogIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50OwoKICBmbGV4OiAwIDAgYXV0byAhaW1wb3J0YW50OwoKICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwoKICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICBtaW4taGVpZ2h0OiA0NHB4ICFpbXBvcnRhbnQ7CgogIG1hcmdpbjogMCAhaW1wb3J0YW50OwoKICBwYWRkaW5nOiAxMXB4IDIwcHggIWltcG9ydGFudDsKCiAgYmFja2dyb3VuZDogI0ZGRkZGRiAhaW1wb3J0YW50OwoKICBjb2xvcjogIzMzMzIyRSAhaW1wb3J0YW50OwoKICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDsKICBmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7CiAgbGluZS1oZWlnaHQ6IDEuMjUgIWltcG9ydGFudDsKCiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OwoKICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDsKCiAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50Owp9CgoKLyogT3ZlcnJpZGUgZ2VuZXJpYyBVcGNhcnQgdGl0bGUgc3R5bGVzICovCgoudXBjYXJ0LXB1YmxpYy11cHNlbGxfX3RpdGxlLnVwY2FydC1pbnRlcm5hbC1zdHlsZV9fdGl0bGUtbGFyZ2UsCi51cGNhcnQtcHVibGljLXVwc2VsbF9fdGl0bGUudXBjYXJ0LWludGVybmFsLXN0eWxlX190aXRsZSB7CiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7CgogIHBhZGRpbmc6IDExcHggMjBweCAhaW1wb3J0YW50OwoKICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDsKICBmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7CiAgbGluZS1oZWlnaHQ6IDEuMjUgIWltcG9ydGFudDsKfQoKCi8qIEFjdHVhbCBoZWFkaW5nIHRleHQgKi8KCi51cGNhcnQtcHVibGljLXVwc2VsbF9fdGl0bGUgcCB7CiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7CiAgcGFkZGluZzogMCAhaW1wb3J0YW50OwoKICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDsKICBmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7CiAgbGluZS1oZWlnaHQ6IDEuMjUgIWltcG9ydGFudDsKCiAgY29sb3I6ICMzMzMyMkUgIWltcG9ydGFudDsKCiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50Owp9CgoKLyogQ2hldnJvbiBmb2xsb3dzIHRoZSBleGlzdGluZyBzY3JpcHQncyBhcmlhLWV4cGFuZGVkIHN0YXRlLiAqLwoudXBjYXJ0LXB1YmxpYy11cHNlbGxfX3RpdGxlOjphZnRlciB7CiAgY29udGVudDogIiIgIWltcG9ydGFudDsKICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OwogIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDsKICBmbGV4OiAwIDAgN3B4ICFpbXBvcnRhbnQ7CiAgd2lkdGg6IDdweCAhaW1wb3J0YW50OwogIGhlaWdodDogN3B4ICFpbXBvcnRhbnQ7CiAgbWFyZ2luOiAwIDJweCAzcHggMTJweCAhaW1wb3J0YW50OwogIGJvcmRlcjogc29saWQgIzMzMzIyRSAhaW1wb3J0YW50OwogIGJvcmRlci13aWR0aDogMCAxLjVweCAxLjVweCAwICFpbXBvcnRhbnQ7CiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpICFpbXBvcnRhbnQ7CiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE1MG1zIGVhc2UgIWltcG9ydGFudDsKfQoKLnVwY2FydC1wdWJsaWMtdXBzZWxsX190aXRsZVthcmlhLWV4cGFuZGVkPSJ0cnVlIl06OmFmdGVyIHsKICB0cmFuc2Zvcm06IHJvdGF0ZSgyMjVkZWcpICFpbXBvcnRhbnQ7CiAgbWFyZ2luLWJvdHRvbTogLTNweCAhaW1wb3J0YW50Owp9CgoudXBjYXJ0LXB1YmxpYy11cHNlbGxfX3RpdGxlOmZvY3VzLXZpc2libGUgewogIG91dGxpbmU6IDJweCBzb2xpZCAjMzMzMjJFICFpbXBvcnRhbnQ7CiAgb3V0bGluZS1vZmZzZXQ6IC0zcHggIWltcG9ydGFudDsKfQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIFJFQ09NTUVOREFUSU9OIEdSSUQKICAgVklTSUJMRSBXSEVOIEVYUEFOREVECiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgoudXBjYXJ0LXB1YmxpYy11cHNlbGxfX3ZlcnRpY2FsLWxheW91dC13cmFwcGVyLAoudXBjYXJ0LWludGVybmFsLXVwc2VsbF9fdmVydGljYWwtbGF5b3V0LXdyYXBwZXIgewogIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDsKCiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOgogICAgbWlubWF4KDAsIDFmcikKICAgIG1pbm1heCgwLCAxZnIpICFpbXBvcnRhbnQ7CgogIGdhcDogOHB4ICFpbXBvcnRhbnQ7CgogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CgogIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogIG1pbi1oZWlnaHQ6IDAgIWltcG9ydGFudDsKICBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7CgogIG1hcmdpbjogMCAhaW1wb3J0YW50OwoKICBwYWRkaW5nOgogICAgMTBweAogICAgMTJweAogICAgMTRweCAhaW1wb3J0YW50OwoKICBiYWNrZ3JvdW5kOiAjRkZGRkZGICFpbXBvcnRhbnQ7CgogIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRUZFRkVGICFpbXBvcnRhbnQ7CiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFNUU1RTUgIWltcG9ydGFudDsKCiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDsKCiAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50Owp9CgoKLyogSGlkZSBvbmx5IHdoZW4gdGhlIHdvcmtpbmcgZHJvcGRvd24gY29udHJvbCBpcyBpbml0aWFsaXplZC4KICAgSWYgdGhhdCBzY3JpcHQgaXMgdW5hdmFpbGFibGUsIHJlY29tbWVuZGF0aW9ucyByZW1haW4gYWNjZXNzaWJsZS4gKi8KLnVwY2FydC1wdWJsaWMtdXBzZWxsX190aXRsZVthcmlhLWV4cGFuZGVkPSJmYWxzZSJdCn4gLnVwY2FydC1wdWJsaWMtdXBzZWxsX192ZXJ0aWNhbC1sYXlvdXQtd3JhcHBlciwKLnVwY2FydC1pbnRlcm5hbC11cHNlbGxfX3RpdGxlW2FyaWEtZXhwYW5kZWQ9ImZhbHNlIl0KfiAudXBjYXJ0LWludGVybmFsLXVwc2VsbF9fdmVydGljYWwtbGF5b3V0LXdyYXBwZXIgewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIFBST0RVQ1QgR1JJRCBXUkFQUEVSUwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKLnVwY2FydC1wdWJsaWMtdXBzZWxsX192ZXJ0aWNhbC1sYXlvdXQtd3JhcHBlciA+IGRpdiwKLnVwY2FydC1wdWJsaWMtdXBzZWxsX192ZXJ0aWNhbC1sYXlvdXQtd3JhcHBlciA+IGRpdiA+IGRpdiwKLnVwY2FydC1pbnRlcm5hbC11cHNlbGxfX3ZlcnRpY2FsLWxheW91dC13cmFwcGVyID4gZGl2LAoudXBjYXJ0LWludGVybmFsLXVwc2VsbF9fdmVydGljYWwtbGF5b3V0LXdyYXBwZXIgPiBkaXYgPiBkaXYgewogIGhlaWdodDogMTAwJSAhaW1wb3J0YW50OwogIG1pbi1oZWlnaHQ6IDAgIWltcG9ydGFudDsKfQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIFVQU0VMTCBQUk9EVUNUIENBUkRTCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgoudXBjYXJ0LXB1YmxpYy1jb21wb25lbnQtdXBzZWxsLXRpbGUgewogIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKCiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50OwogIGFsaWduLWl0ZW
141081zOiBzdHJldGNoICFpbXBvcnRhbnQ7CgogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7CgogIG1hcmdpbjogMCAhaW1wb3J0YW50OwogIHBhZGRpbmc6IDEwcHggIWltcG9ydGFudDsKCiAgZ2FwOiA0cHggIWltcG9ydGFudDsKCiAgYmFja2dyb3VuZDogI0Y3RjdGNyAhaW1wb3J0YW50OwoKICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7Cn0KCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBVUFNFTEwgUFJPRFVDVCBJTUFHRQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKLnVwY2FydC1wdWJsaWMtY29tcG9uZW50LXVwc2VsbC10aWxlX19pbWFnZS1jb250YWluZXIgewogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CgogIG1hcmdpbjogMCAhaW1wb3J0YW50OwoKICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7Cn0KCi51cGNhcnQtcHVibGljLWNvbXBvbmVudC11cHNlbGwtdGlsZV9faW1hZ2UgewogIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CgogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CgogIG9iamVjdC1maXQ6IGNvbnRhaW4gIWltcG9ydGFudDsKfQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIFVQU0VMTCBQUk9EVUNUIElORk9STUFUSU9OCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgoudXBjYXJ0LXB1YmxpYy1jb21wb25lbnQtdXBzZWxsLXRpbGVfX2luZm8gewogIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKCiAgZmxleDogMSAxIGF1dG8gIWltcG9ydGFudDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7CgogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CgogIG1pbi13aWR0aDogMCAhaW1wb3J0YW50Owp9CgoKLyogUHJvZHVjdCB0aXRsZSAqLwoKLnVwY2FydC1wdWJsaWMtY29tcG9uZW50LXVwc2VsbC10aWxlX190aXRsZSB7CiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7CgogIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50OwogIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDsKICBsaW5lLWhlaWdodDogMS4yNSAhaW1wb3J0YW50OwoKICBjb2xvcjogIzMzMzIyRSAhaW1wb3J0YW50OwoKICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7CiAgd29yZC1icmVhazogbm9ybWFsICFpbXBvcnRhbnQ7Cn0KCgovKiBQcm9kdWN0IHRpdGxlIGxpbmsgKi8KCi51cGNhcnQtcHVibGljLWNvbXBvbmVudC11cHNlbGwtdGlsZV9fdGl0bGUtbGluayB7CiAgY29sb3I6ICMzMzMyMkUgIWltcG9ydGFudDsKCiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7Cn0KCgovKiBQcmljZSByb3cgKi8KCi51cGNhcnQtcHVibGljLWNvbXBvbmVudC11cHNlbGwtdGlsZV9fcHJpY2Utcm93IHsKICBtYXJnaW4tdG9wOiAycHggIWltcG9ydGFudDsKfQoKCi8qIFByaWNlICovCgoudXBjYXJ0LXB1YmxpYy1jb21wb25lbnQtdXBzZWxsLXRpbGVfX3ByaWNlIHsKICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDsKICBmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7CiAgbGluZS1oZWlnaHQ6IDEuMjUgIWltcG9ydGFudDsKCiAgY29sb3I6ICMzMzMyMkUgIWltcG9ydGFudDsKfQoKCi8qIEtlZXAgY29udHJvbHMgYXQgYm90dG9tIG9mIGNhcmQgKi8KCi51cGNhcnQtcHVibGljLWNvbXBvbmVudC11cHNlbGwtdGlsZV9fdmFyaWFudC1yb3cgewogIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDsKfQoKCi8qIEFkZCBidXR0b24gKi8KCi51cGNhcnQtcHVibGljLWNvbXBvbmVudC11cHNlbGwtdGlsZQoudXBjYXJ0LXB1YmxpYy1jb21wb25lbnRfX2J1dHRvbiB7CiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKCiAgZm9udC1zaXplOiAxMXB4ICFpbXBvcnRhbnQ7CgogIHBhZGRpbmc6IDEycHggMTBweCAhaW1wb3J0YW50Owp9CgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgTU9CSUxFCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgpAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkgewoKICAvKiBIZWFkaW5nICovCgogIC51cGNhcnQtcHVibGljLXVwc2VsbF9fdGl0bGUsCiAgLnVwY2FydC1wdWJsaWMtdXBzZWxsX190aXRsZS51cGNhcnQtaW50ZXJuYWwtc3R5bGVfX3RpdGxlLWxhcmdlLAogIC51cGNhcnQtcHVibGljLXVwc2VsbF9fdGl0bGUudXBjYXJ0LWludGVybmFsLXN0eWxlX190aXRsZSB7CiAgICBtaW4taGVpZ2h0OiA0NHB4ICFpbXBvcnRhbnQ7CgogICAgcGFkZGluZzogMTFweCAxNnB4ICFpbXBvcnRhbnQ7CiAgfQoKCiAgLyogUmVjb21tZW5kYXRpb24gZ3JpZCAqLwoKICAudXBjYXJ0LXB1YmxpYy11cHNlbGxfX3ZlcnRpY2FsLWxheW91dC13cmFwcGVyLAogIC51cGNhcnQtaW50ZXJuYWwtdXBzZWxsX192ZXJ0aWNhbC1sYXlvdXQtd3JhcHBlciB7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6CiAgICAgIG1pbm1heCgwLCAxZnIpCiAgICAgIG1pbm1heCgwLCAxZnIpICFpbXBvcnRhbnQ7CgogICAgZ2FwOiA4cHggIWltcG9ydGFudDsKCiAgICBwYWRkaW5nOgogICAgICAxMHB4CiAgICAgIDEwcHgKICAgICAgMTRweCAhaW1wb3J0YW50OwogIH0KCgogIC8qIFJlY29tbWVuZGF0aW9uIGNhcmRzICovCgogIC51cGNhcnQtcHVibGljLWNvbXBvbmVudC11cHNlbGwtdGlsZSB7CiAgICBwYWRkaW5nOiA4cHggIWltcG9ydGFudDsKICB9Cn0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIENPVVBPTiBBQ0NPUkRJT04KICAgQ29tcGFuaW9uIHNjcmlwdCBjcmVhdGVzIHRoZSB0ZXh0LXJvdyBidXR0b24uCiAgIE9ubHkgdGhlIGVudHJ5IGZvcm0gaXMgY29sbGFwc2VkOyBhcHBsaWVkIGRpc2NvdW50CiAgIGxhYmVscywgc2F2aW5ncyBhbmQgbWVzc2FnZXMgcmVtYWluIG91dHNpZGUgaXQuCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgoudXBjYXJ0LXB1YmxpYy1kaXNjb3VudC1jb2RlLmNhbGlzdGEtY291cG9uLWFjY29yZGlvbiB7CiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogIG1hcmdpbi1ib3R0b206IDZweCAhaW1wb3J0YW50OwogIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7CiAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsKfQoKLnVwY2FydC1wdWJsaWMtZGlzY291bnQtY29kZSAuY2FsaXN0YS1jb3Vwb24tdG9nZ2xlIHsKICBhcHBlYXJhbmNlOiBub25lICFpbXBvcnRhbnQ7CiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lICFpbXBvcnRhbnQ7CiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogIGFsaWduLWl0ZW
141081zOiBjZW50ZXIgIWltcG9ydGFudDsKICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsKICBnYXA6IDEycHggIWltcG9ydGFudDsKICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDsKICBtYXJnaW46IDAgIWltcG9ydGFudDsKICBwYWRkaW5nOiAxMHB4IDAgIWltcG9ydGFudDsKICBib3JkZXI6IDAgIWltcG9ydGFudDsKICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7CiAgY29sb3I6ICMzMzMyMkUgIWltcG9ydGFudDsKICBmb250LWZhbWlseTogaW5oZXJpdCAhaW1wb3J0YW50OwogIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50OwogIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDsKICBsaW5lLWhlaWdodDogMS40ICFpbXBvcnRhbnQ7CiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbCAhaW1wb3J0YW50OwogIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsKICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50OwogIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50Owp9CgoudXBjYXJ0LXB1YmxpYy1kaXNjb3VudC1jb2RlIC5jYWxpc3RhLWNvdXBvbi10b2dnbGU6OmJlZm9yZSB7CiAgY29udGVudDogbm9uZSAhaW1wb3J0YW50Owp9CgoudXBjYXJ0LXB1YmxpYy1kaXNjb3VudC1jb2RlIC5jYWxpc3RhLWNvdXBvbi10b2dnbGU6OmFmdGVyIHsKICBjb250ZW50OiAiIiAhaW1wb3J0YW50OwogIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50OwogIGZsZXg6IDAgMCA3cHggIWltcG9ydGFudDsKICB3aWR0aDogN3B4ICFpbXBvcnRhbnQ7CiAgaGVpZ2h0OiA3cHggIWltcG9ydGFudDsKICBtYXJnaW46IDAgMnB4IDNweCAwICFpbXBvcnRhbnQ7CiAgYm9yZGVyOiBzb2xpZCAjMzMzMjJFICFpbXBvcnRhbnQ7CiAgYm9yZGVyLXdpZHRoOiAwIDEuNXB4IDEuNXB4IDAgIWltcG9ydGFudDsKICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgIWltcG9ydGFudDsKICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTUwbXMgZWFzZSAhaW1wb3J0YW50Owp9CgoudXBjYXJ0LXB1YmxpYy1kaXNjb3VudC1jb2RlIC5jYWxpc3RhLWNvdXBvbi10b2dnbGVbYXJpYS1leHBhbmRlZD0idHJ1ZSJdOjphZnRlciB7CiAgdHJhbnNmb3JtOiByb3RhdGUoMjI1ZGVnKSAhaW1wb3J0YW50OwogIG1hcmdpbi1ib3R0b206IC0zcHggIWltcG9ydGFudDsKfQoKLnVwY2FydC1wdWJsaWMtZGlzY291bnQtY29kZSAuY2FsaXN0YS1jb3Vwb24tdG9nZ2xlOmZvY3VzLXZpc2libGUgewogIG91dGxpbmU6IDJweCBzb2xpZCAjMzMzMjJFICFpbXBvcnRhbnQ7CiAgb3V0bGluZS1vZmZzZXQ6IC0ycHggIWltcG9ydGFudDsKfQoKLyogSGlkZSBvbmx5IGFmdGVyIHRoZSBjb21wYW5pb24gc2NyaXB0IGhhcyBpbnN0YWxsZWQgYSB3b3JraW5nIGJ1dHRvbi4gKi8KLnVwY2FydC1wdWJsaWMtZGlzY291bnQtY29kZS5jYWxpc3RhLWNvdXBvbi1hY2NvcmRpb24KLnVwY2FydC1wdWJsaWMtZGlzY291bnQtY29kZV9fZm9ybVtoaWRkZW5dIHsKICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KCi51cGNhcnQtcHVibGljLWRpc2NvdW50LWNvZGUuY2FsaXN0YS1jb3Vwb24tYWNjb3JkaW9uCi51cGNhcnQtcHVibGljLWRpc2NvdW50LWNvZGVfX2Zvcm06bm90KFtoaWRkZW5dKSB7CiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogIGdhcDogOHB4ICFpbXBvcnRhbnQ7CiAgbWFyZ2luOiAwIDAgOHB4ICFpbXBvcnRhbnQ7Cn0KCi51cGNhcnQtcHVibGljLWRpc2NvdW50LWNvZGUuY2FsaXN0YS1jb3Vwb24tYWNjb3JkaW9uCi51cGNhcnQtcHVibGljLWRpc2NvdW50LWNvZGVfX2lucHV0LXdyYXBwZXIgewogIGZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7CiAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7Cn0KCi51cGNhcnQtcHVibGljLWRpc2NvdW50LWNvZGUuY2FsaXN0YS1jb3Vwb24tYWNjb3JkaW9uCi51cGNhcnQtcHVibGljLWRpc2NvdW50LWNvZGVfX2lucHV0IHsKICBtaW4taGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7CiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50Owp9CgoudXBjYXJ0LXB1YmxpYy1kaXNjb3VudC1jb2RlLmNhbGlzdGEtY291cG9uLWFjY29yZGlvbgoudXBjYXJ0LXB1YmxpYy1kaXNjb3VudC1jb2RlX19idXR0b24gewogIGZsZXg6IDAgMCBhdXRvICFpbXBvcnRhbnQ7CiAgbWluLWhlaWdodDogNDBweCAhaW1wb3J0YW50OwogIG1pbi13aWR0aDogNzZweCAhaW1wb3J0YW50OwogIHBhZGRpbmc6IDEwcHggMTRweCAhaW1wb3J0YW50OwogIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDsKICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDsKICBsaW5lLWhlaWdodDogMS40ICFpbXBvcnRhbnQ7Cn0KCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBMT09QIENIRUNLT1VUKyBCVVRUT04gT1JERVIKICAgVmlzdWFsIG9yZGVyIG9ubHk7IGV4aXN0aW5nIExvb3AgYWN0aW9ucyByZXRhaW5lZC4KICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCi51cGNhcnQtY2hlY2tvdXQtYnV0dG9uLWNvbnRhaW5lciBjaGVja291dC1wbHVzOjpwYXJ0KHByb2R1Y3QtaW5mbykgewogIG9yZGVyOiAwICFpbXBvcnRhbnQ7Cn0KCi51cGNhcnQtY2hlY2tvdXQtYnV0dG9uLWNvbnRhaW5lciBjaGVja291dC1wbHVzOjpwYXJ0KHNlY29uZGFyeS1idXR0b24pIHsKICBvcmRlcjogMSAhaW1wb3J0YW50Owp9CgoudXBjYXJ0LWNoZWNrb3V0LWJ1dHRvbi1jb250YWluZXIgY2hlY2tvdXQtcGx1czo6cGFydChwcmltYXJ5LWJ1dHRvbikgewogIG9yZGVyOiAyICFpbXBvcnRhbnQ7Cn0KCkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7CiAgLnVwY2FydC1wdWJsaWMtdXBzZWxsX190aXRsZTo6YWZ0ZXIsCiAgLnVwY2FydC1wdWJsaWMtZGlzY291bnQtY29kZSAuY2FsaXN0YS1jb3Vwb24tdG9nZ2xlOjphZnRlciB7CiAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgfQp9"); 14109 if (val === '') { 14110 val = b64DecodeUnicode("Knt9"); 14111 }
14112 window.upcartSettings.upcartSettings.customCSS = val; 14113 14114 val = b64DecodeUnicode("Knt9"); 14115 if (val === '') { 14116 val = b64DecodeUnicode("Knt9"); 14117 } 14118 window.upcartSettings.upcartSettings.customStickyCartCSS = val; 14119 14120 val = b64DecodeUnicode("ZmFsc2U="); 14121 if (val === '') { 14122 val = b64DecodeUnicode("ZmFsc2U="); 14123 } 14124 val = JSON.parse(val); 14125 window.upcartSettings.upcartSettings.integrationZapietEnabled = val; 14126 14127 val = b64DecodeUnicode("ZmFsc2U="); 14128 if (val === '') { 14129 val = b64DecodeUnicode("ZmFsc2U="); 14130 } 14131 val = JSON.parse(val); 14132 window.upcartSettings.upcartSettings.integrationYmqEnabled = val; 14133 14134 val = b64DecodeUnicode("eyJzdGF0dXMiOiJESVNBQkxFRCJ9"); 14135 if (val === '') { 14136 val = b64DecodeUnicode("eyJzdGF0dXMiOiJESVNBQkxFRCJ9"); 14137 } 14138 val = JSON.parse(val); 14139 window.upcartSettings.upcartSettings.customCartBundleInfo = val; 14140 14141 val = b64DecodeUnicode("ZGlzY291bnRfb25seQ=="); 14142 if (val === '') { 14143 val = b64DecodeUnicode("ZGlzY291bnRfb25seQ=="); 14144 } 14145 window.upcartSettings.upcartSettings.savingsRowBehaviour = val; 14146 14147 val = b64DecodeUnicode("W10="); 14148 if (val === '') { 14149 val = b64DecodeUnicode("W10="); 14150 } 14151 val = JSON.parse(val); 14152 window.upcartSettings.upcartSettings.activeCartIds = val; 14153 14154 val = b64DecodeUnicode("dHJ1ZQ=="); 14155 if (val === '') { 14156 val = b64DecodeUnicode("dHJ1ZQ=="); 14157 } 14158 val = JSON.parse(val); 14159 window.upcartSettings.upcartEditorSettings.cartIsEnabled = val; 14160 14161 val = b64DecodeUnicode("MmYyMjFjNTYtOGJkNi00MDEwLWE3NDUtNTA4MjM2MTYwZjZh"); 14162 if (val === '') { 14163 val = b64DecodeUnicode(""); 14164 } 14165 window.upcartSettings.upcartEditorSettings.cartId = val; 14166 14167 val = b64DecodeUnicode("eyJmaWVsZHMiOnsiY29tcGFyZUF0UHJpY2UiOnRydWUsImluaGVyaXRGb250cyI6dHJ1ZSwiYmFja2dyb3VuZENvbG9yIjoiI0ZGRkZGRiIsImNhcnRBY2NlbnRDb2xvciI6IiNmNmY2ZjciLCJidXR0b25Db2xvciI6IiMwMDAwMDAiLCJidXR0b25UZXh0Q29sb3IiOiIjRkZGRkZGIiwiYnV0dG9uVGV4dEhvdmVyQ29sb3IiOiIjZTllOWU5IiwiY2FydFRleHRDb2xvciI6IiMwMDAwMDAiLCJidXR0b25Sb3VuZGVkQ29ybmVyc1NpemUiOjAsImVuYWJsZVN1YnRvdGFsTGluZSI6dHJ1ZSwic3VidG90YWxUZXh0Q29sb3IiOiIjMDAwMDAwIiwiY2FydFdpZHRoIjp7ImRlc2t0b3AiOiJiYXNlIiwibW9iaWxlIjoiZnVsbCJ9fX0="); 14168 if (val === '') { 14169 val = b64DecodeUnicode("eyJmaWVsZHMiOnsiY29tcGFyZUF0UHJpY2UiOnRydWUsImluaGVyaXRGb250cyI6dHJ1ZSwiYmFja2dyb3VuZENvbG9yIjoiI0ZGRkZGRiIsImNhcnRBY2NlbnRDb2xvciI6IiNmNmY2ZjciLCJidXR0b25Db2xvciI6IiMwMDAwMDAiLCJidXR0b25UZXh0Q29sb3IiOiIjRkZGRkZGIiwiYnV0dG9uVGV4dEhvdmVyQ29sb3IiOiIjZTllOWU5IiwiY2FydFRleHRDb2xvciI6IiMwMDAwMDAiLCJidXR0b25Sb3VuZGVkQ29ybmVyc1NpemUiOjAsImVuYWJsZVN1YnRvdGFsTGluZSI6ZmFsc2UsInN1YnRvdGFsVGV4dENvbG9yIjoiIzAwMDAwMCIsImNhcnRXaWR0aCI6eyJkZXNrdG9wIjoiYmFzZSIsIm1vYmlsZSI6ImZ1bGwifX19"); 14170 } 14171 val = JSON.parse(val); 14172 window.upcartSettings.upcartEditorSettings.settingsModule = val; 14173 14174 val = b64DecodeUnicode("I2E2NTg2Yg=="); 14175 if (val === '') { 14176 val = b64DecodeUnicode("IzJlYTgxOA=="); 14177 } 14178 window.upcartSettings.upcartEditorSettings.designSettingsCartSavingsTextColor = val; 14179 14180 val = b64DecodeUnicode("Mi4wLjAtY29udHJvbGxlcl90ZW1wbGF0ZV9zZXBhcmF0aW9u"); 14181 if (val === '') { 14182 val = b64DecodeUnicode("MS4wLjA="); 14183 } 14184 window.upcartSettings.upcartEditorSettings.headerModuleVersion = val; 14185 14186 val = b64DecodeUnicode("Mi4wLjAtY29udHJvbGxlcl90ZW1wbGF0ZV9zZXBhcmF0aW9u"); 14187 if (val === '') { 14188 val = b64DecodeUnicode("MS4wLjA="); 14189 } 14190 window.upcartSettings.upcartEditorSettings.announcementModuleVersion = val; 14191 14192 val = b64DecodeUnicode("Mi4wLjAtY29udHJvbGxlcl90ZW1wbGF0ZV9zZXBhcmF0aW9u"); 14193 if (val === '') { 14194 val = b64DecodeUnicode("MS4wLjA="); 14195 } 14196 window.upcartSettings.upcartEditorSettings.upsellsModuleVersion = val; 14197 14198 val = b64DecodeUnicode("Mi4wLjAtY29udHJvbGxlcl90ZW1wbGF0ZV9zZXBhcmF0aW9u"); 14199 if (val === '') { 14200 val = b64DecodeUnicode("MS4wLjA="); 14201 } 14202 window.upcartSettings.upcartEditorSettings.recommendationsModuleVersion = val; 14203 14204 val = b64DecodeUnicode("Mi4wLjAtY29udHJvbGxlcl90ZW1wbGF0ZV9zZXBhcmF0aW9u"); 14205 if (val === '') { 14206 val = b64DecodeUnicode("MS4wLjA="); 14207 } 14208 window.upcartSettings.upcartEditorSettings.notesModuleVersion = val; 14209 14210 val = b64DecodeUnicode("Mi4wLjAtY29udHJvbGxlcl90ZW1wbGF0ZV9zZXBhcmF0aW9u"); 14211 if (val === '') { 14212 val = b64DecodeUnicode("MS4wLjA="); 14213 } 14214 window.upcartSettings.upcartEditorSettings.discountCodeModuleVersion = val; 14215 14216 val = b64DecodeUnicode("Mi4wLjAtY29udHJvbGxlcl90ZW1wbGF0ZV9zZXBhcmF0aW9u"); 14217 if (val === '') { 14218 val = b64DecodeUnicode("MS4wLjA="); 14219 } 14220 window.upcartSettings.upcartEditorSettings.trustBadgesModuleVersion = val; 14221 14222 val = b64DecodeUnicode("Mi4wLjAtY29udHJvbGxlcl90ZW1wbGF0ZV9zZXBhcmF0aW9u"); 14223 if (val === '') { 14224 val = b64DecodeUnicode("MS4wLjA="); 14225 } 14226 window.upcartSettings.upcartEditorSettings.rewardsModuleVersion = val; 14227 14228 val = b64DecodeUnicode("Mi4wLjAtY29udHJvbGxlcl90ZW1wbGF0ZV9zZXBhcmF0aW9u"); 14229 if (val === '') { 14230 val = b64DecodeUnicode("MS4wLjA="); 14231 } 14232 window.upcartSettings.upcartEditorSettings.cartItemsModuleVersion = val; 14233 14234 val = b64DecodeUnicode("Mi4wLjAtY29udHJvbGxlcl90ZW1wbGF0ZV9zZXBhcmF0aW9u"); 14235 if (val === '') { 14236 val = b64DecodeUnicode("MS4wLjA="); 14237 } 14238 window.upcartSettings.upcartEditorSettings.addonsModuleVersion = val; 14239 14240 val = b64DecodeUnicode("Mi4wLjAtY29udHJvbGxlcl90ZW1wbGF0ZV9zZXBhcmF0aW9u"); 14241 if (val === '') { 14242 val = b64DecodeUnicode("MS4wLjA="); 14243 }
14244 window.upcartSettings.upcartEditorSettings.cartSummaryModuleVersion = val; 14245 14246 val = b64DecodeUnicode("Mi4wLjAtY29udHJvbGxlcl90ZW1wbGF0ZV9zZXBhcmF0aW9u"); 14247 if (val === '') { 14248 val = b64DecodeUnicode("MS4wLjA="); 14249 } 14250 window.upcartSettings.upcartEditorSettings.expressPayModuleVersion = val; 14251 14252 val = b64DecodeUnicode("dHJ1ZQ=="); 14253 if (val === '') { 14254 val = b64DecodeUnicode("ZmFsc2U="); 14255 } 14256 val = JSON.parse(val); 14257 window.upcartSettings.upcartEditorSettings.customJsxTemplatesEnabled = val; 14258 14259 val = b64DecodeUnicode("eyJtYWluIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14260 if (val === '') { 14261 val = b64DecodeUnicode("eyJtYWluIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14262 } 14263 val = JSON.parse(val); 14264 window.upcartSettings.upcartEditorSettings.headerModuleCustomJsxTemplates = val; 14265 14266 val = b64DecodeUnicode("eyJtYWluIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX0sInNrZWxldG9uIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14267 if (val === '') { 14268 val = b64DecodeUnicode("eyJtYWluIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX0sInNrZWxldG9uIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14269 } 14270 val = JSON.parse(val); 14271 window.upcartSettings.upcartEditorSettings.announcementModuleCustomJsxTemplates = val; 14272 14273 val = b64DecodeUnicode("eyJ1cHNlbGxUaWxlIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX0sInNrZWxldG9uIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14274 if (val === '') { 14275 val = b64DecodeUnicode("eyJ1cHNlbGxUaWxlIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX0sInNrZWxldG9uIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14276 } 14277 val = JSON.parse(val); 14278 window.upcartSettings.upcartEditorSettings.upsellsModuleCustomJsxTemplates = val; 14279 14280 val = b64DecodeUnicode("eyJyZWNvbW1lbmRhdGlvblRpbGUiOnsic3JjIjpudWxsLCJjb21waWxlZCI6bnVsbCwiaXNBY3RpdmUiOmZhbHNlfSwic2tlbGV0b24iOnsic3JjIjpudWxsLCJjb21waWxlZCI6bnVsbCwiaXNBY3RpdmUiOmZhbHNlfX0="); 14281 if (val === '') { 14282 val = b64DecodeUnicode("eyJyZWNvbW1lbmRhdGlvblRpbGUiOnsic3JjIjpudWxsLCJjb21waWxlZCI6bnVsbCwiaXNBY3RpdmUiOmZhbHNlfSwic2tlbGV0b24iOnsic3JjIjpudWxsLCJjb21waWxlZCI6bnVsbCwiaXNBY3RpdmUiOmZhbHNlfX0="); 14283 } 14284 val = JSON.parse(val); 14285 window.upcartSettings.upcartEditorSettings.recommendationsModuleCustomJsxTemplates = val; 14286 14287 val = b64DecodeUnicode("eyJtYWluIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14288 if (val === '') { 14289 val = b64DecodeUnicode("eyJtYWluIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14290 } 14291 val = JSON.parse(val); 14292 window.upcartSettings.upcartEditorSettings.notesModuleCustomJsxTemplates = val; 14293 14294 val = b64DecodeUnicode("eyJtYWluIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX0sInNrZWxldG9uIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14295 if (val === '') { 14296 val = b64DecodeUnicode("eyJtYWluIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX0sInNrZWxldG9uIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14297 } 14298 val = JSON.parse(val); 14299 window.upcartSettings.upcartEditorSettings.discountModuleCustomJsxTemplates = val; 14300 14301 val = b64DecodeUnicode("eyJtYWluIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX0sInNrZWxldG9uIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14302 if (val === '') { 14303 val = b64DecodeUnicode("eyJtYWluIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX0sInNrZWxldG9uIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14304 } 14305 val = JSON.parse(val); 14306 window.upcartSettings.upcartEditorSettings.trustBadgesModuleCustomJsxTemplates = val; 14307 14308 val = b64DecodeUnicode("eyJtYWluIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX0sInNrZWxldG9uIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14309 if (val === '') { 14310 val = b64DecodeUnicode("eyJtYWluIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX0sInNrZWxldG9uIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14311 } 14312 val = JSON.parse(val); 14313 window.upcartSettings.upcartEditorSettings.rewardsModuleCustomJsxTemplates = val; 14314 14315 val = b64DecodeUnicode("eyJtYWluIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjp0cnVlfSwic2tlbGV0b24iOnsic3JjIjoiPGRp
14315dlxuICBjbGFzc05hbWU9XCJ1cGNhcnQtaW50ZXJuYWwtc2tlbGV0b24gdXBjYXJ0LXB1YmxpYy1za2VsZXRvblwiXG4gIHN0eWxlPXt7IG1hcmdpbjogXCIwcHggMjBweFwiIH19XG4+XG4gIDxkaXZcbiAgICBjbGFzc05hbWU9XCJ1cGNhcnQtaW50ZXJuYWwtc2tlbGV0b25fX3NoaW1tZXJcIlxuICAgIHN0eWxlPXt7IHdpZHRoOiBcIjEwMCVcIiwgaGVpZ2h0OiBcIjUwcHhcIiB9fVxuICAvPlxuPC9kaXY+XG4iLCJjb21waWxlZCI6InJldHVybiAoKGZ1bmN0aW9uKHByb3BzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtcbiAgY2xhc3NOYW1lOiBcInVwY2FydC1pbnRlcm5hbC1za2VsZXRvbiB1cGNhcnQtcHVibGljLXNrZWxldG9uXCIgLFxuICBzdHlsZTogeyBtYXJnaW46IFwiMHB4IDIwcHhcIiB9LH1cblxuICAsIFJlYWN0LmNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtcbiAgICBjbGFzc05hbWU6IFwidXBjYXJ0LWludGVybmFsLXNrZWxldG9uX19zaGltbWVyXCIsXG4gICAgc3R5bGU6IHsgd2lkdGg6IFwiMTAwJVwiLCBoZWlnaHQ6IFwiNTBweFwiIH0sfVxuICApXG4pXG5cbiAgICApO1xuICB9KSk7IiwiaXNBY3RpdmUiOmZhbHNlfX0="); 14316 if (val === '') { 14317 val = b64DecodeUnicode("eyJtYWluIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX0sInNrZWxldG9uIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14318 } 14319 val = JSON.parse(val); 14320 window.upcartSettings.upcartEditorSettings.triggeredRewardsModuleCustomJsxTemplates = val; 14321 14322 val = b64DecodeUnicode("eyJza2VsZXRvbiI6eyJzcmMiOm51bGwsImNvbXBpbGVkIjpudWxsLCJpc0FjdGl2ZSI6ZmFsc2V9LCJwcm9kdWN0VGlsZSI6eyJzcmMiOm51bGwsImNvbXBpbGVkIjpudWxsLCJpc0FjdGl2ZSI6ZmFsc2V9LCJ2YXJpYW50Ijp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX0sInByb3BlcnRpZXMiOnsic3JjIjpudWxsLCJjb21waWxlZCI6bnVsbCwiaXNBY3RpdmUiOmZhbHNlfSwiYnVuZGxlIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX0sInByaWNlIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14323 if (val === '') { 14324 val = b64DecodeUnicode("eyJza2VsZXRvbiI6eyJzcmMiOm51bGwsImNvbXBpbGVkIjpudWxsLCJpc0FjdGl2ZSI6ZmFsc2V9LCJwcm9kdWN0VGlsZSI6eyJzcmMiOm51bGwsImNvbXBpbGVkIjpudWxsLCJpc0FjdGl2ZSI6ZmFsc2V9LCJ2YXJpYW50Ijp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX0sInByb3BlcnRpZXMiOnsic3JjIjpudWxsLCJjb21waWxlZCI6bnVsbCwiaXNBY3RpdmUiOmZhbHNlfSwiYnVuZGxlIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX0sInByaWNlIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14325 } 14326 val = JSON.parse(val); 14327 window.upcartSettings.upcartEditorSettings.cartItemsModuleCustomJsxTemplates = val; 14328 14329 val = b64DecodeUnicode("eyJtYWluIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14330 if (val === '') { 14331 val = b64DecodeUnicode("eyJtYWluIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14332 } 14333 val = JSON.parse(val); 14334 window.upcartSettings.upcartEditorSettings.cartSummaryModuleCustomJsxTemplates = val; 14335 14336 val = b64DecodeUnicode("eyJtYWluIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX0sInNrZWxldG9uIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14337 if (val === '') { 14338 val = b64DecodeUnicode("eyJtYWluIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX0sInNrZWxldG9uIjp7InNyYyI6bnVsbCwiY29tcGlsZWQiOm51bGwsImlzQWN0aXZlIjpmYWxzZX19"); 14339 } 14340 val = JSON.parse(val); 14341 window.upcartSettings.upcartEditorSettings.addonsModuleCustomJsxTemplates = val; 14342 14343 val = b64DecodeUnicode("eyJzcmMiOm51bGwsImNvbXBpbGVkIjpudWxsLCJpc0FjdGl2ZSI6ZmFsc2V9"); 14344 if (val === '') { 14345 val = b64DecodeUnicode("eyJzcmMiOm51bGwsImNvbXBpbGVkIjpudWxsLCJpc0FjdGl2ZSI6ZmFsc2V9"); 14346 } 14347 val = JSON.parse(val); 14348 window.upcartSettings.upcartEditorSettings.betweenAnnouncementsAndTieredRewardsCustomTemplate = val; 14349 14350 val = b64DecodeUnicode("eyJzcmMiOm51bGwsImNvbXBpbGVkIjpudWxsLCJpc0FjdGl2ZSI6ZmFsc2V9"); 14351 if (val === '') { 14352 val = b64DecodeUnicode("eyJzcmMiOm51bGwsImNvbXBpbGVkIjpudWxsLCJpc0FjdGl2ZSI6ZmFsc2V9"); 14353 } 14354 val = JSON.parse(val); 14355 window.upcartSettings.upcartEditorSettings.betweenTieredRewardsAndTriggeredRewardsCustomTemplate = val; 14356 14357 val = b64DecodeUnicode("eyJhYm92ZUNoZWNrb3V0Q3VzdG9tSnN4VGVtcGxhdGUiOnsic3JjIjpudWxsLCJjb21waWxlZCI6bnVsbCwiaXNBY3RpdmUiOmZhbHNlfX0="); 14358 if (val === '') { 14359 val = b64DecodeUnicode("eyJhYm92ZUNoZWNrb3V0Q3VzdG9tSnN4VGVtcGxhdGUiOnsic3JjIjpudWxsLCJjb21waWxlZCI6bnVsbCwiaXNBY3RpdmUiOmZhbHNlfX0="); 14360 } 14361 val = JSON.parse(val); 14362 window.upcartSettings.upcartEditorSettings.checkoutModuleCustomJsxTemplates = val; 14363 14364 val = b64DecodeUnicode("YmFzZQ=="); 14365 if (val === '') { 14366 val = b64DecodeUnicode("YmFzZQ=="); 14367 } 14368 window.upcartSettings.upcartEditorSettings.headerBorderBottom = val; 14369 14370 val = b64DecodeUnicode("c21hbGw="); 14371 if (val === '') { 14372 val = b64DecodeUnicode("YmFzZQ=="); 14373 } 14374 window.upcartSettings.upcartEditorSettings.headerHeight = val; 14375 14376 val = b64DecodeUnicode("I2ZmZmZmZjAw"); 14377 if (val === '') { 14378 val = b64DecodeUnicode("I2ZmZmZmZjAw"); 14379 }
14380 window.upcartSettings.upcartEditorSettings.headerBackgroundColor = val; 14381 14382 val = b64DecodeUnicode("eyJ0eXBlIjoiaW5oZXJpdEhlYWRpbmdTdHlsZXMiLCJoZWFkaW5nTGV2ZWwiOiJoMyJ9"); 14383 if (val === '') { 14384 val = b64DecodeUnicode("eyJ0eXBlIjoiaW5oZXJpdEhlYWRpbmdTdHlsZXMiLCJoZWFkaW5nTGV2ZWwiOiJoMiJ9"); 14385 } 14386 val = JSON.parse(val); 14387 window.upcartSettings.upcartEditorSettings.headerTitleContent = val; 14388 14389 val = b64DecodeUnicode("c2lkZQ=="); 14390 if (val === '') { 14391 val = b64DecodeUnicode("c2lkZQ=="); 14392 } 14393 window.upcartSettings.upcartEditorSettings.headerTitleAlignment = val; 14394 14395 val = b64DecodeUnicode("dGl0bGVfX2Nsb3NlQnV0dG9u"); 14396 if (val === '') { 14397 val = b64DecodeUnicode("dGl0bGVfX2Nsb3NlQnV0dG9u"); 14398 } 14399 window.upcartSettings.upcartEditorSettings.headerElementArrangement = val; 14400 14401 val = b64DecodeUnicode("eyJiYXNlIjoiIzAwMDAwMDBjIiwib25Ib3ZlciI6IiMwMDAwMDAxNCJ9"); 14402 if (val === '') { 14403 val = b64DecodeUnicode("eyJiYXNlIjoiIzAwMDAwMDBjIiwib25Ib3ZlciI6IiMwMDAwMDAxNCJ9"); 14404 } 14405 val = JSON.parse(val); 14406 window.upcartSettings.upcartEditorSettings.headerCloseButtonBackgroundColor = val; 14407 14408 val = b64DecodeUnicode("eyJiYXNlIjoiIzAwMDAwMCIsIm9uSG92ZXIiOm51bGx9"); 14409 if (val === '') { 14410 val = b64DecodeUnicode("eyJiYXNlIjoiIzYzNzM4MSIsIm9uSG92ZXIiOm51bGx9"); 14411 } 14412 val = JSON.parse(val); 14413 window.upcartSettings.upcartEditorSettings.headerCloseButtonIconColor = val; 14414 14415 val = b64DecodeUnicode("c21hbGw="); 14416 if (val === '') { 14417 val = b64DecodeUnicode("c21hbGw="); 14418 } 14419 window.upcartSettings.upcartEditorSettings.headerCloseButtonIconSize = val; 14420 14421 val = b64DecodeUnicode("YmFzZQ=="); 14422 if (val === '') { 14423 val = b64DecodeUnicode("YmFzZQ=="); 14424 } 14425 window.upcartSettings.upcartEditorSettings.headerCloseButtonIconStrokeWidth = val; 14426 14427 val = b64DecodeUnicode("bm9uZQ=="); 14428 if (val === '') { 14429 val = b64DecodeUnicode("bm9uZQ=="); 14430 } 14431 window.upcartSettings.upcartEditorSettings.headerCloseButtonBorderWidth = val; 14432 14433 val = b64DecodeUnicode("eyJiYXNlIjoiIzAwMDAwMCIsIm9uSG92ZXIiOm51bGx9"); 14434 if (val === '') { 14435 val = b64DecodeUnicode("eyJiYXNlIjoiIzAwMDAwMCIsIm9uSG92ZXIiOm51bGx9"); 14436 } 14437 val = JSON.parse(val); 14438 window.upcartSettings.upcartEditorSettings.headerCloseButtonBorderColor = val; 14439 14440 val = b64DecodeUnicode("ZmFsc2U="); 14441 if (val === '') { 14442 val = b64DecodeUnicode("ZmFsc2U="); 14443 } 14444 val = JSON.parse(val); 14445 window.upcartSettings.upcartEditorSettings.announcementModule = val; 14446 14447 val = b64DecodeUnicode("PHA+WW91ciBwcm9kdWN0cyBhcmUgcmVzZXJ2ZWQgZm9yIDxiPnt7dGltZXJ9fTwvYj4gbWludXRlcyE8L3A+"); 14448 if (val === '') { 14449 val = b64DecodeUnicode("PHA+WW91ciBwcm9kdWN0cyBhcmUgcmVzZXJ2ZWQgZm9yIDxiPntUSU1FUn08L2I+ITwvcD4="); 14450 } 14451 window.upcartSettings.upcartEditorSettings.announcementEditor = val; 14452 14453 val = b64DecodeUnicode("I0NERTBFMA=="); 14454 if (val === '') { 14455 val = b64DecodeUnicode("I0NERTBFMA=="); 14456 } 14457 window.upcartSettings.upcartEditorSettings.announcementBackgroundColor = val; 14458 14459 val = b64DecodeUnicode("dG9w"); 14460 if (val === '') { 14461 val = b64DecodeUnicode("dG9w"); 14462 } 14463 window.upcartSettings.upcartEditorSettings.announcementModulePosition = val; 14464 14465 val = b64DecodeUnicode("I0M1RTZGRA=="); 14466 if (val === '') { 14467 val = b64DecodeUnicode("I0M1RTZGRA=="); 14468 } 14469 window.upcartSettings.upcartEditorSettings.announcementBorderColor = val; 14470 14471 val = b64DecodeUnicode("MA=="); 14472 if (val === '') { 14473 val = b64DecodeUnicode("MDA6MDA="); 14474 } 14475 window.upcartSettings.upcartEditorSettings.announcementTimer = val; 14476 14477 val = b64DecodeUnicode("c21hbGw="); 14478 if (val === '') { 14479 val = b64DecodeUnicode("YmFzZQ=="); 14480 } 14481 window.upcartSettings.upcartEditorSettings.announcementHeight = val; 14482 14483 val = b64DecodeUnicode("MTU="); 14484 if (val === '') { 14485 val = b64DecodeUnicode("MTU="); 14486 } 14487 window.upcartSettings.upcartEditorSettings.announcementTextFontSizePx = val; 14488 14489 val = b64DecodeUnicode("dHJ1ZQ=="); 14490 if (val === '') { 14491 val = b64DecodeUnicode("ZmFsc2U="); 14492 } 14493 val = JSON.parse(val); 14494 window.upcartSettings.upcartEditorSettings.rewardsModule = val; 14495 14496 val = b64DecodeUnicode("I0ZERjRGMA=="); 14497 if (val === '') { 14498 val = b64DecodeUnicode("I0UyRTJFMg=="); 14499 } 14500 window.upcartSettings.upcartEditorSettings.rewardsBarBackgroun
14500dColor = val; 14501 14502 val = b64DecodeUnicode("I2E2NTg2Yg=="); 14503 if (val === '') { 14504 val = b64DecodeUnicode("IzkzRDNGRg=="); 14505 } 14506 window.upcartSettings.upcartEditorSettings.rewardsBarForegroundColor = val; 14507 14508 val = b64DecodeUnicode("I0ZERjRGMA=="); 14509 if (val === '') { 14510 val = b64DecodeUnicode("IzRENDk0OQ=="); 14511 } 14512 window.upcartSettings.upcartEditorSettings.rewardsTierIconColorComplete = val; 14513 14514 val = b64DecodeUnicode("I2E2NTg2Yg=="); 14515 if (val === '') { 14516 val = b64DecodeUnicode("IzRENDk0OQ=="); 14517 } 14518 window.upcartSettings.upcartEditorSettings.rewardsTierIconColorIncomplete = val; 14519 14520 val = b64DecodeUnicode("Y2FydFRvdGFs"); 14521 if (val === '') { 14522 val = b64DecodeUnicode("Y2FydFRvdGFs"); 14523 } 14524 window.upcartSettings.upcartEditorSettings.rewardsBasis = val; 14525 14526 val = b64DecodeUnicode("ZmFsc2U="); 14527 if (val === '') { 14528 val = b64DecodeUnicode("ZmFsc2U="); 14529 } 14530 val = JSON.parse(val); 14531 window.upcartSettings.upcartEditorSettings.rewardsProductLinkVisible = val; 14532 14533 val = b64DecodeUnicode("cHJvZHVjdHNPck9yZGVy"); 14534 if (val === '') { 14535 val = b64DecodeUnicode("cHJvZHVjdHNPck9yZGVy"); 14536 } 14537 window.upcartSettings.upcartEditorSettings.rewardsTargetType = val; 14538 14539 val = b64DecodeUnicode("MTI1"); 14540 if (val === '') { 14541 val = b64DecodeUnicode("MTI1"); 14542 } 14543 window.upcartSettings.upcartEditorSettings.rewardsMinAmount = val; 14544 14545 val = b64DecodeUnicode("PHA+WW914oCZcmUgPGI+e3thbW91bnR9fTwvYj4gYXdheSBmcm9tIGZyZWUgc2hpcHBpbmchPC9wPg=="); 14546 if (val === '') { 14547 val = b64DecodeUnicode("PHA+WW914oCZcmUgPGI+e0FNT1VOVH08L2I+IGF3YXkgZnJvbSBmcmVlIHNoaXBwaW5nITwvcD4="); 14548 } 14549 window.upcartSettings.upcartEditorSettings.rewardsEditor = val; 14550 14551 val = b64DecodeUnicode("PHA+RnJlZSBTaGlwcGluZyBVbmxvY2tlZCE8L3A+Cg=="); 14552 if (val === '') { 14553 val = b64DecodeUnicode("RnJlZSBzaGlwcGluZyB1bmxvY2tlZCE="); 14554 } 14555 window.upcartSettings.upcartEditorSettings.rewardsEditorAfterText = val; 14556 14557 val = b64DecodeUnicode("PHA+WW914oCZcmUgPGI+e3tjb3VudH19PC9iPiBwcm9kdWN0cyBhd2F5IGZyb20gZnJlZSBzaGlwcGluZyE8L3A+"); 14558 if (val === '') { 14559 val = b64DecodeUnicode("PHA+WW914oCZcmUgPGI+e0NPVU5UfTwvYj4gcHJvZHVjdHMgYXdheSBmcm9tIGZyZWUgc2hpcHBpbmchPC9wPg=="); 14560 } 14561 window.upcartSettings.upcartEditorSettings.rewardsEditorForItemCount = val; 14562 14563 val = b64DecodeUnicode("NQ=="); 14564 if (val === '') { 14565 val = b64DecodeUnicode("NQ=="); 14566 } 14567 window.upcartSettings.upcartEditorSettings.rewardsItemCount = val; 14568 14569 val = b64DecodeUnicode("eyJ0aWVycyI6W3sidGFyZ2V0VHlwZSI6InNoaXBwaW5nIiwibWluQW1vdW50Ijo3NSwiaXRlbUNvdW50IjoiNSIsInRleHRCZWZvcmVSZWFjaGluZ0ZvckNhcnRUb3RhbCI6IjxwPllvdeKAmXJlIHt7YW1vdW50fX0gYXdheSBmcm9tIHVubG9ja2luZyBmcmVlIHNoaXBwaW5nITwvcD5cbiIsInRleHRCZWZvcmVSZWFjaGluZ0Zvckl0ZW1Db3VudCI6IjxwPllvdeKAmXJlIDxiPnt7Y291bnR9fTwvYj4gcHJvZHVjdHMgYXdheSBmcm9tIGZyZWUgc2hpcHBpbmchPC9wPiIsInJld2FyZERlc2NyaXB0aW9uIjoiRnJlZSBTaGlwcGluZyIsInByb2R1Y3RzIjpbXSwibWFudWFsRGlzY291bnRDb2RlIjoiIn1dLCJnZW9Mb2NhdGlvblByaWNpbmciOltdLCJyZXdhcmRzQXV0b0NvbnZlcnRDdXJyZW5jeSI6ZmFsc2UsInJld2FyZHNHZW9Mb2NhdGlvbkVuYWJsZWQiOmZhbHNlLCJ1c2VQcmVEaXNjb3VudGVkVG90YWwiOmZhbHNlfQ=="); 14570 if (val === '') { 14571 val = b64DecodeUnicode("eyJ0aWVycyI6W10sImdlb0xvY2F0aW9uUHJpY2luZyI6W10sInJld2FyZHNBdXRvQ29udmVydEN1cnJlbmN5IjpmYWxzZSwicmV3YXJkc0dlb0xvY2F0aW9uRW5hYmxlZCI6ZmFsc2UsInVzZVByZURpc2NvdW50ZWRUb3RhbCI6ZmFsc2V9"); 14572 } 14573 val = JSON.parse(val); 14574 window.upcartSettings.upcartEditorSettings.rewardsTiers = val; 14575 14576 val = b64DecodeUnicode("W10="); 14577 if (val === '') { 14578 val = b64DecodeUnicode("W10="); 14579 } 14580 val = JSON.parse(val); 14581 window.upcartSettings.upcartEditorSettings.rewardsTierProducts = val; 14582 14583 val = b64DecodeUnicode("ZmFsc2U="); 14584 if (val === '') { 14585 val = b64DecodeUnicode("ZmFsc2U="); 14586 } 14587 val = JSON.parse(val); 14588 window.upcartSettings.upcartEditorSettings.rewardsShowIconWithSingleTier = val; 14589 14590 val = b64DecodeUnicode("dHJ1ZQ=="); 14591 if (val === '') { 14592 val = b64DecodeUnicode("ZmFsc2U="); 14593 } 14594 val = JSON.parse(val); 14595 window.upcartSettings.upcartEditorSettings.rewardsShowOnEmptyCart = val; 14596 14597 val = b64DecodeUnicode("ZmFsc2U="); 14598 if (val === '') { 14599 val = b64DecodeUnicode("ZmFsc2U="); 14600 } 14601 val = JSON.parse(val); 14602 window.upcartSettings.upcartEditorSettings.rewardsRemovePreviousProducts = val; 14603 14604 val = b64DecodeUnicode("W10="); 14605 if (val === '') { 14606 val = b64DecodeUnicode("W10="); 14607 } 14608 val = JSON.parse(val); 14609 window.upcartSettings.upcartEditorSettings.rewardsFiltering = val; 14610 14611 val = b64DecodeUnicode("W10="); 14612 if (val === '') { 14613 val = b64DecodeUnicode("W10="); 14614 } 14615 val = JSON.parse(val); 14616 window.upcartSettings.upcartEditorSettings.rewardsTriggeredRules = val; 14617 14618 val = b64DecodeUnicode("eyJwcm9kdWN0RGlzY291bnRzIjpmYWxzZSwib3JkZXJEaXNjb3VudHMiOmZhbHNlLCJzaGlwcGluZ0Rpc2NvdW50cyI6ZmFsc2V9"); 14619 if (val === '') { 14620 val = b64DecodeUnicode("eyJwcm9kdWN0RGlzY291bnRzIjpmYWxzZSwib3JkZXJEaXNjb3VudHMiOmZhbHNlLCJzaGlwcGluZ0Rpc2NvdW50cyI6ZmFsc2V9"); 14621 } 14622 val = JSON.parse(val); 14623 window.upcartSettings.upcartEditorSettings.rewardsTriggeredCombinations = val; 14624 14625 val = b64DecodeUnicode("dHJ1ZQ=="); 14626 if (val === '') { 14627 val = b64DecodeUnicode("ZmFsc2U="); 14628 } 14629 val = JSON.parse(val); 14630 window.upcartSettings.upcartEditorSettings.recommendationsModule = val; 14631 14632 val = b64DecodeUnicode("QWRkIHlvdXIgZmF2b3VyaXRlIGl0ZW1zIHRvIHlvdXIgY2FydC4="); 14633 if (val === '') { 14634 val = b64DecodeUnicode("QWRkIHlvdXIgZmF2b3VyaXRlIGl0ZW1zIHRvIHlvdXIgY2FydC4="); 14635 } 14636 window.upcartSettings.upcartEditorSettings.recommendationsHeaderText = val; 14637 14638 val = b64DecodeUnicode("dHJ1ZQ=="); 14639 if (val === '') { 14640 val = b64DecodeUnicode("ZmFsc2U="); 14641 } 14642 val = JSON.parse(val); 14643 window.upcartSettings.upcartEditorSettings.recommendationsEnableShopNowButton = val; 14644 14645 val = b64DecodeUnicode("U2hvcCBOb3c="); 14646 if (val === '') { 14647 val = b64DecodeUnicode("U2hvcCBOb3c="); 14648 } 14649 window.upcartSettings.upcartEditorSettings.recommendationsShopNowButtonText = val; 14650 14651 val = b64DecodeUnicode("L2NvbGxlY3Rpb25z"); 14652 if (val === '') { 14653 val = b64DecodeUnicode("L2NvbGxlY3Rpb25z"); 14654 } 14655 window.upcartSettings.upcartEditorSettings.recommendationsShopNowButtonURL = val; 14656 14657 val = b64DecodeUnicode("W3siaWQiOiIxIiwidiI6MSwicmVjb21tZW5kYXRpb24iOnsidHlwZSI6IlByb2R1Y3QiLCJwcm9kdWN0cyI6W3siaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvMTAxODgyODg2ODg0MzgiLCJzaG9ydElkIjoiMTAxODgyODg2ODg0MzgiLCJ2YXJpYW50cyI6WyI1MTg0OTMyMDY2MTMwMiIsIjUxODQ5MzIwNjk0MDcwIiwiNTI4NzI5MTg4NjAwODYiXSwiaGFuZGxlIjoicGVyZmVjdGVyLXByby1oZWF0ZWQtcm91bmQtYnJ1c2gtMS1wcm8iLCJ0aXRsZSI6IlBlcmZlY3RlciBQcm8gSGVhdGVkIFJvdW5kIEJydXNoIDFcIiBQcm8gKyJ9LHsiaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvMTA1MjEyNzI3MTM1MjYiLCJzaG9ydElkIjoiMTA1MjEyNzI3MTM1MjYiLCJ2YXJpYW50cyI6WyI1MzQ3MDA4Nzk3MTEyNiJdLCJoYW5kbGUiOiJpb24taG90LXJvbGxlcnMtbG9uZy1zZXQtZ2VuLTIiLCJ0aXRsZSI6IklvbiBIb3QgUm9sbGVycyBMb25nIFNldCBHZW4gMiJ9LHsiaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvMTA2MDMwNjU4MDMwNjIiLCJzaG9ydElkIjoiMTA2MDMwNjU4MDMwNjIiLCJ2YXJpYW50cyI6WyI1MzcwODU0NzM5MTc5OCJdLCJoYW5kbGUiOiJlbGl0ZWFpci1tdWx0aS1zdHlsZS1kcnllci1nZW4tMiIsInRpdGxlIjoiRWxpdGVBaXIgTXVsdGktU3R5bGUgRHJ5ZXIgR2VuIDIiLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wMDY3LzY0NzUvNzA2MS9maWxlcy8yLjE3LjIwMjZFbGl0ZUFpci0wOS5qcGc/dj0xNzcyNzI3NjY3In1dfX1d"); 14658 if (val === '') { 14659 val = b64DecodeUnicode("W3siaWQiOiIiLCJyZWNvbW1lbmRhdGlvbiI6bnVsbCwidiI6MX1d"); 14660 } 14661 val = JSON.parse(val); 14662 window.upcartSettings.upcartEditorSettings.recommendationItems = val; 14663 14664 val = b64DecodeUnicode("PHA+VHJlbmRpbmcgcHJvZHVjdHM8L3A+Cg=="); 14665 if (val === '') { 14666 val = b64DecodeUnicode("WW91IG1heSBhbHNvIGxpa2U="); 14667 } 14668 window.upcartSettings.upcartEditorSettings.recommendationsProductRecommendationsHeaderText = val; 14669 14670 val = b64DecodeUnicode("Mw=="); 14671 if (val === '') { 14672 val = b64DecodeUnicode("Mw=="); 14673 } 14674 window.upcartSettings.upcartEditorSettings.recommendationsMaxRecommendationsToShow = val; 14675 14676 val = b64DecodeUnicode("dmVydGljYWw="); 14677 if (val === '') { 14678 val = b64DecodeUnicode("dmVydGljYWw="); 14679 } 14680 window.upcartSettings.upcartEditorSettings.recommendationsDirection = val; 14681 14682 val = b64DecodeUnicode("dHJ1ZQ=="); 14683 if (val === '') { 14684 val = b64DecodeUnicode("ZmFsc2U="); 14685 } 14686 val = JSON.parse(val); 14687 window.upcartSettings.upcartEditorSettings.upsellsModule = val; 14688 14689 val = b64DecodeUnicode("dmVydGljYWw="); 14690 if (val === '') {
14691 val = b64DecodeUnicode("aG9yaXpvbnRhbA=="); 14692 } 14693 window.upcartSettings.upcartEditorSettings.upsellsDirection = val; 14694 14695 val = b64DecodeUnicode("PHA+QWRkIFJlY29tbWVuZGVkIFByb2R1Y3RzPC9wPgo="); 14696 if (val === '') { 14697 val = b64DecodeUnicode("WW91J2xsIGxvdmUgdGhlc2U="); 14698 } 14699 window.upcartSettings.upcartEditorSettings.upsellsTitle = val; 14700 14701 val = b64DecodeUnicode("Mg=="); 14702 if (val === '') { 14703 val = b64DecodeUnicode("MTA="); 14704 } 14705 window.upcartSettings.upcartEditorSettings.maximumUpsellsToShow = val; 14706 14707 val = b64DecodeUnicode("dHJ1ZQ=="); 14708 if (val === '') { 14709 val = b64DecodeUnicode("ZmFsc2U="); 14710 } 14711 val = JSON.parse(val); 14712 window.upcartSettings.upcartEditorSettings.upsellsShouldLimit = val; 14713 14714 val = b64DecodeUnicode("ZmFsc2U="); 14715 if (val === '') { 14716 val = b64DecodeUnicode("ZmFsc2U="); 14717 } 14718 val = JSON.parse(val); 14719 window.upcartSettings.upcartEditorSettings.upsellsTrigger = val; 14720 14721 val = b64DecodeUnicode("ZmFsc2U="); 14722 if (val === '') { 14723 val = b64DecodeUnicode("ZmFsc2U="); 14724 } 14725 val = JSON.parse(val); 14726 window.upcartSettings.upcartEditorSettings.showUpsellItemsAlreadyInCart = val; 14727 14728 val = b64DecodeUnicode("W3siaWQiOiI1ODUyNSIsInYiOjIsInRyaWdnZXIiOnsib24iOiJzcGVjaWZpYyIsInNlbGVjdGlvbiI6eyJ0eXBlIjoiUHJvZHVjdCIsInByb2R1Y3RzIjpbeyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xMDE3OTQ2MzA1MzYyMiIsInNob3J0SWQiOiIxMDE3OTQ2MzA1MzYyMiIsInZhcmlhbnRzIjpbIjUxODE3MzE4MzUxMTU4Il0sImhhbmRsZSI6ImZhdXhibG8tdGhlcm1hbC1ibG93b3V0LWJydXNoLW1pZC1sZW5ndGgtaGFpciIsInRpdGxlIjoiRkFVWGJsbyBUaGVybWFsIEJsb3dvdXQgQnJ1c2ggMS41XCIiLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wMDY3LzY0NzUvNzA2MS9maWxlcy9UaW1lbGVzc19UZWFsX0ZBVVhibG9fMS41LmpwZz92PTE3NjI0Mzk0ODIifV19fSwidXBzZWxsIjp7InR5cGUiOiJQcm9kdWN0IiwicHJvZHVjdHMiOlt7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEwMTc5NDYzNjQzNDQ2Iiwic2hvcnRJZCI6IjEwMTc5NDYzNjQzNDQ2IiwidmFyaWFudHMiOlsiNTE4MTczMTkwNzIwNTQiXSwiaGFuZGxlIjoiZmF1eGJsby10aGVybWFsLWJsb3dvdXQtYnJ1c2gtbG9uZy1oYWlyIiwidGl0bGUiOiJGQVVYYmxvIFRoZXJtYWwgQmxvd291dCBCcnVzaCAxLjc3XCIiLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wMDY3LzY0NzUvNzA2MS9maWxlcy9UaW1lbGVzc19UZWFsX0ZBVVhibG9fMS43Ny5qcGc/dj0xNzYyNDQ5MzM5In0seyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xMDE4ODA2Mzg5OTk1OCIsInNob3J0SWQiOiIxMDE4ODA2Mzg5OTk1OCIsInZhcmlhbnRzIjpbIjUxODQ4ODQ3MzkzMDc4IiwiNTE4NDg4NDczNjAzMTAiXSwiaGFuZGxlIjoidmF1bHQtZmF1eGJsby10aGVybWFsLWJsb3dvdXQtYnJ1c2gtMS03NyIsInRpdGxlIjoiVmF1bHQgRkFVWGJsbyBUaGVybWFsIEJsb3dvdXQgQnJ1c2ggMS43N1wiIiwiaW1hZ2UiOiJodHRwczovL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDA2Ny82NDc1LzcwNjEvZmlsZXMvZmF1eGJsby1ibHVlLXNub3ctY29uZS0xNzctM3g0LWNvbXByZXNzZWQuanBnP3Y9MTc1NzA4OTk4MCJ9LHsiaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvMTc5NzMwNDI4NzMwMSIsInNob3J0SWQiOiIxNzk3MzA0Mjg3MzAxIiwidmFyaWFudHMiOlsiMTY3OTUyMDAxNTk4MTMiXSwiaGFuZGxlIjoiZW1iZWxsaXNoLXZvbHVtZS1zcHJheS0xMG96IiwidGl0bGUiOiJFTUJFTExJU0ggRmluaXNoaW5nIFNwcmF5IiwiaW1hZ2UiOiJodHRwczovL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDA2Ny82NDc1LzcwNjEvZmlsZXMvRW1iZWxsaXNoX0ZpbmlzaGluZ19TcHJheV9VcGRhdGVkX1Byb2R1Y3RfU2hvdF8xLmpwZz92PTE3NjI0Mzk0NzQifV19fSx7ImlkIjoiNDAxMzQiLCJ2IjoyLCJ0cmlnZ2VyIjp7Im9uIjoic3BlY2lmaWMiLCJzZWxlY3Rpb24iOnsidHlwZSI6IlByb2R1Y3QiLCJwcm9kdWN0cyI6W3siaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvMTAxNzk0NjM2NDM0NDYiLCJzaG9ydElkIjoiMTAxNzk0NjM2NDM0NDYiLCJ2YXJpYW50cyI6WyI1MTgxNzMxOTA3MjA1NCJdLCJoYW5kbGUiOiJmYXV4YmxvLXRoZXJtYWwtYmxvd291dC1icnVzaC1sb25nLWhhaXIiLCJ0aXRsZSI6IkZBVVhibG8gVGhlcm1hbCBCbG93b3V0IEJydXNoIDEuNzdcIiIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzAwNjcvNjQ3NS83MDYxL2ZpbGVzL1RpbWVsZXNzX1RlYWxfRkFVWGJsb18xLjc3LmpwZz92PTE3NjI0NDkzMzkifSx7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEwMTg4MDYzODk5OTU4Iiwic2hvcnRJZCI6IjEwMTg4MDYzODk5OTU4IiwidmFyaWFudHMiOlsiNTE4NDg4NDczOTMwNzgiLCI1MTg0ODg0NzM2MDMxMCJdLCJoYW5kbGUiOiJ2YXVsdC1mYXV4YmxvLXRoZXJtYWwtYmxvd291dC1icnVzaC0xLTc3IiwidGl0bGUiOiJWYXVsdCBGQVVYYmxvIFRoZXJtYWwgQmxvd291dCBCcnVzaCAxLjc3XCIiLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wMDY3LzY0NzUvNzA2MS9maWxlcy9mYXV4YmxvLWJsdWUtc25vdy1jb25lLTE3Ny0zeDQtY29tcHJlc3NlZC5qcGc/dj0xNzU3MDg5OTgwIn1dfX0sInVwc2VsbCI6eyJ0eXBlIjoiUHJvZHVjdCIsInByb2R1Y3RzIjpbeyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xM
14728DE3OTQ2MzA1MzYyMiIsInNob3J0SWQiOiIxMDE3OTQ2MzA1MzYyMiIsInZhcmlhbnRzIjpbIjUxODE3MzE4MzUxMTU4Il0sImhhbmRsZSI6ImZhdXhibG8tdGhlcm1hbC1ibG93b3V0LWJydXNoLW1pZC1sZW5ndGgtaGFpciIsInRpdGxlIjoiRkFVWGJsbyBUaGVybWFsIEJsb3dvdXQgQnJ1c2ggMS41XCIiLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wMDY3LzY0NzUvNzA2MS9maWxlcy9UaW1lbGVzc19UZWFsX0ZBVVhibG9fMS41LmpwZz92PTE3NjI0Mzk0ODIifSx7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzE3OTczMDQyODczMDEiLCJzaG9ydElkIjoiMTc5NzMwNDI4NzMwMSIsInZhcmlhbnRzIjpbIjE2Nzk1MjAwMTU5ODEzIl0sImhhbmRsZSI6ImVtYmVsbGlzaC12b2x1bWUtc3ByYXktMTBveiIsInRpdGxlIjoiRU1CRUxMSVNIIEZpbmlzaGluZyBTcHJheSIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzAwNjcvNjQ3NS83MDYxL2ZpbGVzL0VtYmVsbGlzaF9GaW5pc2hpbmdfU3ByYXlfVXBkYXRlZF9Qcm9kdWN0X1Nob3RfMS5qcGc/dj0xNzYyNDM5NDc0In0seyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xMDM2NDIyMzM5MDAwNiIsInNob3J0SWQiOiIxMDM2NDIyMzM5MDAwNiIsInZhcmlhbnRzIjpbIjUzMTM0MzY5MTYxNTI2Il0sImhhbmRsZSI6ImVtYmVsbGlzaC10ZXh0dXJpemluZy1mb2FtLW1pbmkiLCJ0aXRsZSI6Ik1pbmkgRU1CRUxMSVNIIFRleHR1cml6aW5nIEZvYW0iLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wMDY3LzY0NzUvNzA2MS9maWxlcy9ienFqaGRsdWY2NndyeDdndWVlbC53ZWJwP3Y9MTc2MTA3MTI1NiJ9XX19LHsiaWQiOiI0NTg0NyIsInYiOjIsInRyaWdnZXIiOnsib24iOiJzcGVjaWZpYyIsInNlbGVjdGlvbiI6eyJ0eXBlIjoiUHJvZHVjdCIsInByb2R1Y3RzIjpbeyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xMDQ2MDg2MjUxMzQ2MiIsInNob3J0SWQiOiIxMDQ2MDg2MjUxMzQ2MiIsInZhcmlhbnRzIjpbIjUzMzgwMjk4NzAzMTU4Il0sImhhbmRsZSI6InBlcmZlY3Rlci1wcm8tc2hvcnQtaGFpci1idW5kbGUiLCJ0aXRsZSI6IlBlcmZlY3RlciBQcm8gU2hvcnQgSGFpciBEdW8iLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wMDY3LzY0NzUvNzA2MS9maWxlcy9wZXJmZWN0ZXItZHVvLXNob3J0LWhhaXItcGRwLTIuanBnP3Y9MTc2NDUzMTcwNCJ9LHsiaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvMTA0NjA3OTAyNjAwMjIiLCJzaG9ydElkIjoiMTA0NjA3OTAyNjAwMjIiLCJ2YXJpYW50cyI6WyI1MzM4MDE4NTU1NTI1NCJdLCJoYW5kbGUiOiJwZXJmZWN0ZXItcHJvLWxvbmctaGFpci1kdW8iLCJ0aXRsZSI6IlBlcmZlY3RlciBQcm8gTG9uZyBIYWlyIER1byIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzAwNjcvNjQ3NS83MDYxL2ZpbGVzL3BlcmZlY3Rlci1kdW8tbG9uZy1oYWlyLXBkcC0yLmpwZz92PTE3NjQ1MzEwMDAifSx7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEwNDYwNjY0MDM3Njg2Iiwic2hvcnRJZCI6IjEwNDYwNjY0MDM3Njg2IiwidmFyaWFudHMiOlsiNTMzODAwMzYwMzQ4NzAiXSwiaGFuZGxlIjoidGhlLXBlcmZlY3Rlci1wcm8tYmVzdHNlbGxlcnMtZHVvIiwidGl0bGUiOiJUaGUgUGVyZmVjdGVyIFBybyBCZXN0c2VsbGVycyBEdW8iLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wMDY3LzY0NzUvNzA2MS9maWxlcy9wZXJmZWN0ZXItZHVvLWJlc3RzZWxsZXJzLXBkcC0yLmpwZz92PTE3NjQ1Mjc2NTAifV19fSwidXBzZWxsIjp7InR5cGUiOiJQcm9kdWN0IiwicHJvZHVjdHMiOlt7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzE3OTczMDQyODczMDEiLCJzaG9ydElkIjoiMTc5NzMwNDI4NzMwMSIsInZhcmlhbnRzIjpbIjE2Nzk1MjAwMTU5ODEzIl0sImhhbmRsZSI6ImVtYmVsbGlzaC12b2x1bWUtc3ByYXktMTBveiIsInRpdGxlIjoiRU1CRUxMSVNIIEZpbmlzaGluZyBTcHJheSIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzAwNjcvNjQ3NS83MDYxL2ZpbGVzL0VtYmVsbGlzaF9GaW5pc2hpbmdfU3ByYXlfVXBkYXRlZF9Qcm9kdWN0X1Nob3RfMS5qcGc/dj0xNzYyNDM5NDc0In0seyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xMDE5MjMzOTA3NTM4MiIsInNob3J0SWQiOiIxMDE5MjMzOTA3NTM4MiIsInZhcmlhbnRzIjpbIjUxODYzMzEyNDY2MjMwIl0sImhhbmRsZSI6Imdsb3NzLXJlc3RvcmF0aXZlLXNoaW5lLXNlcnVtIiwidGl0bGUiOiJHTE9TUyBTaGluZSBSZWNvdmVyeSBTZXJ1bSIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzAwNjcvNjQ3NS83MDYxL2ZpbGVzL0dMT1NTU0hJTkVSRUNPVkVSWVNFUlVNLmpwZz92PTE3NTczNTE2MTQifSx7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEwNDE4MjgxNTc4ODA2Iiwic2hvcnRJZCI6IjEwNDE4MjgxNTc4ODA2IiwidmFyaWFudHMiOlsiNTMyOTQ4NDkxNjM1NzQiXSwiaGFuZGxlIjoibWluaS1lbWJlbGxpc2gtZmxleC1zcHJheSIsInRpdGxlIjoiTWluaSBFTUJFTExJU0ggRmxleCBTcHJheSIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzAwNjcvNjQ3NS83MDYxL2ZpbGVzLzExLjE3LjIwMjVGbGV4U3ByYXlVcGRhdGUtMDEuanBnP3Y9MTc2Mzk5ODk5OCJ9XX19LHsiaWQiOiI0ODMzNCIsInYiOjIsInRyaWdnZXIiOnsib24iOiJzcGVjaWZpYyIsInNlbGVjdGlvbiI6eyJ0eXBlIjoiUHJvZHVjdCIsInByb2R1Y3RzIjpbeyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xMDE4ODI4ODYyMjkwMiIsInNob3J0SWQiOiIxMDE4ODI4ODYyMjkwMiIsInZhcmlhbnRzIjpbIjUyODcyOTMwMjYzMzUwIiwiNTE4NDkzMjA3MjY4MzgiLCI1MTg0OTMyMDc1OTYwNiJdLCJoYW5kbGUiOiJwZXJmZWN0ZXItcHJvLWhlYXRlZC1yb3VuZC1icnVzaC0xLTUtcHJvIiwidGl0bGUiOiJQZXJmZWN0ZXIgUHJvIEhlYXRlZCBSb3VuZCBCcnVzaCAxLjVcIiBQcm8gKyIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzAwNjcvNjQ3NS83MDYxL2ZpbGVzL3BlcmZlY3Rlci1wYXN0ZWwtcGV0YWxzLTEtNS0zeDQtZmVhdHVyZWQuanBnP3Y9MTc1OTI1NTA0NyJ9XX19LCJ1cHNlbGwiOnsidHlwZSI6IlByb2R1Y3QiLCJwcm9kdWN0cyI6W3siaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvMTAxODgyODg2ODg0MzgiLCJzaG9ydElkIjoiMTAxODgyODg2ODg0MzgiLCJ2YXJpYW50cyI6WyI1Mjg3MjkxODg2MDA4NiIsIjUxODQ5MzIwNjk0MDcwIl0sImhhbmRsZSI6InBlcmZlY3Rlci1wcm8taGVhdGVkLXJvdW5kLWJydXNoLTEtcHJvIiwidGl0bGUiOiJQZXJmZWN0ZXIgUHJvIEhlYXRlZCBSb3VuZCBCcnVzaCAxXCIgUHJvICsiLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wMDY3LzY0NzUvNzA2MS9maWxlcy9wZXJmZWN0ZXItcGFzdGVsLXBldGFscy0xLTN4NC1mZWF0dXJlZC1jb21wLmpwZz92PTE3NTkyNTQ3MDMifSx7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzE3OTczMDQyODczMDEiLCJzaG9ydElkIjoiMTc5NzMwNDI4NzMwMSIsInZhcmlhbnRzIjpbIjE2Nzk1MjAwMTU5ODEzIl0sImhhbmRsZSI6ImVtYmVsbGlzaC12b2x1bWUtc3ByYXktMTBveiIsInRpdGxlIjoiRU1CRUxMSVNIIEZpbmlzaGluZyBTcHJheSIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzAwNjcvNjQ3NS83MDYxL2ZpbGVzL0VtYmVsbGlzaF9GaW5pc2hpbmdfU3ByYXlfVXBkYXRlZF9Qcm9kdWN0X1Nob3RfMS5qcGc/dj0xNzYyNDM5NDc0In0seyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xNzk3MzQyM
14728DY4ODA1Iiwic2hvcnRJZCI6IjE3OTczNDIwNjg4MDUiLCJ2YXJpYW50cyI6WyI1Mjg3MjkxNDI3MjU2NiIsIjUwOTgxMzA3OTQxMTc0IiwiNDc5NDA0MzMxMTc0OTQiLCI1MzI5Nzg4MTUxNDI5NCJdLCJoYW5kbGUiOiJnb2dvLW1pbmktcm91bmQtYnJ1c2giLCJ0aXRsZSI6IkdvR28gTWluaSBSb3VuZCBCcnVzaCIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzAwNjcvNjQ3NS83MDYxL2ZpbGVzL2dvZ28tcGluay1wZXRhbHMtM3g0LWZlYXR1cmVkLWNvbXAuanBnP3Y9MTc1OTI1NDIwOSJ9XX19LHsiaWQiOiI0OTUzMyIsInYiOjIsInRyaWdnZXIiOnsib24iOiJzcGVjaWZpYyIsInNlbGVjdGlvbiI6eyJ0eXBlIjoiUHJvZHVjdCIsInByb2R1Y3RzIjpbeyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xMDE4ODI4ODY1NTY3MCIsInNob3J0SWQiOiIxMDE4ODI4ODY1NTY3MCIsInZhcmlhbnRzIjpbIjUyODcyOTE3MTIzMzgyIiwiNTE4NDkzMjA2Mjg1MzQiXSwiaGFuZGxlIjoicGVyZmVjdGVyLXByby1oZWF0ZWQtcm91bmQtYnJ1c2gtMC03NS1wcm8iLCJ0aXRsZSI6IlBlcmZlY3RlciBQcm8gSGVhdGVkIFJvdW5kIEJydXNoIDAuNzVcIiBQcm8gKyIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzAwNjcvNjQ3NS83MDYxL2ZpbGVzL3BlcmZlY3Rlci1wYXN0ZWwtcGV0YWxzLTc1LTN4NC1mZWF0dXJlZC5qcGc/dj0xNzU5MjU0OTc1In1dfX0sInVwc2VsbCI6eyJ0eXBlIjoiUHJvZHVjdCIsInByb2R1Y3RzIjpbeyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xMDE4ODI4ODY4ODQzOCIsInNob3J0SWQiOiIxMDE4ODI4ODY4ODQzOCIsInZhcmlhbnRzIjpbIjUyODcyOTE4ODYwMDg2IiwiNTE4NDkzMjA2OTQwNzAiXSwiaGFuZGxlIjoicGVyZmVjdGVyLXByby1oZWF0ZWQtcm91bmQtYnJ1c2gtMS1wcm8iLCJ0aXRsZSI6IlBlcmZlY3RlciBQcm8gSGVhdGVkIFJvdW5kIEJydXNoIDFcIiBQcm8gKyIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzAwNjcvNjQ3NS83MDYxL2ZpbGVzL3BlcmZlY3Rlci1wYXN0ZWwtcGV0YWxzLTEtM3g0LWZlYXR1cmVkLWNvbXAuanBnP3Y9MTc1OTI1NDcwMyJ9LHsiaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvMTc5NzMwNDI4NzMwMSIsInNob3J0SWQiOiIxNzk3MzA0Mjg3MzAxIiwidmFyaWFudHMiOlsiMTY3OTUyMDAxNTk4MTMiXSwiaGFuZGxlIjoiZW1iZWxsaXNoLXZvbHVtZS1zcHJheS0xMG96IiwidGl0bGUiOiJFTUJFTExJU0ggRmluaXNoaW5nIFNwcmF5IiwiaW1hZ2UiOiJodHRwczovL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDA2Ny82NDc1LzcwNjEvZmlsZXMvRW1iZWxsaXNoX0ZpbmlzaGluZ19TcHJheV9VcGRhdGVkX1Byb2R1Y3RfU2hvdF8xLmpwZz92PTE3NjI0Mzk0NzQifSx7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzE3OTczNDIwNjg4MDUiLCJzaG9ydElkIjoiMTc5NzM0MjA2ODgwNSIsInZhcmlhbnRzIjpbIjUyODcyOTE0MjcyNTY2IiwiNTA5ODEzMDc5NDExNzQiLCI0Nzk0MDQzMzExNzQ5NCIsIjUzMjk3ODgxNTE0Mjk0Il0sImhhbmRsZSI6ImdvZ28tbWluaS1yb3VuZC1icnVzaCIsInRpdGxlIjoiR29HbyBNaW5pIFJvdW5kIEJydXNoIiwiaW1hZ2UiOiJodHRwczovL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDA2Ny82NDc1LzcwNjEvZmlsZXMvZ29nby1waW5rLXBldGFscy0zeDQtZmVhdHVyZWQtY29tcC5qcGc/dj0xNzU5MjU0MjA5In1dfX0seyJpZCI6IjMwMTE3IiwidiI6MiwidHJpZ2dlciI6eyJvbiI6InNwZWNpZmljIiwic2VsZWN0aW9uIjp7InR5cGUiOiJQcm9kdWN0IiwicHJvZHVjdHMiOlt7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEwMTg4Mjg4Njg4NDM4Iiwic2hvcnRJZCI6IjEwMTg4Mjg4Njg4NDM4IiwidmFyaWFudHMiOlsiNTI4NzI5MTg4NjAwODYiLCI1MTg0OTMyMDY5NDA3MCJdLCJoYW5kbGUiOiJwZXJmZWN0ZXItcHJvLWhlYXRlZC1yb3VuZC1icnVzaC0xLXBybyIsInRpdGxlIjoiUGVyZmVjdGVyIFBybyBIZWF0ZWQgUm91bmQgQnJ1c2ggMVwiIFBybyArIiwiaW1hZ2UiOiJodHRwczovL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDA2Ny82NDc1LzcwNjEvZmlsZXMvcGVyZmVjdGVyLXBhc3RlbC1wZXRhbHMtMS0zeDQtZmVhdHVyZWQtY29tcC5qcGc/dj0xNzU5MjU0NzAzIn1dfX0sInVwc2VsbCI6eyJ0eXBlIjoiUHJvZHVjdCIsInByb2R1Y3RzIjpbeyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xMDE4ODI4ODY1NTY3MCIsInNob3J0SWQiOiIxMDE4ODI4ODY1NTY3MCIsInZhcmlhbnRzIjpbIjUyODcyOTE3MTIzMzgyIiwiNTE4NDkzMjA2Mjg1MzQiXSwiaGFuZGxlIjoicGVyZmVjdGVyLXByby1oZWF0ZWQtcm91bmQtYnJ1c2gtMC03NS1wcm8iLCJ0aXRsZSI6IlBlcmZlY3RlciBQcm8gSGVhdGVkIFJvdW5kIEJydXNoIDAuNzVcIiBQcm8gKyIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzAwNjcvNjQ3NS83MDYxL2ZpbGVzL3BlcmZlY3Rlci1wYXN0ZWwtcGV0YWxzLTc1LTN4NC1mZWF0dXJlZC5qcGc/dj0xNzU5MjU0OTc1In0seyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xNzk3MzA0Mjg3MzAxIiwic2hvcnRJZCI6IjE3OTczMDQyODczMDEiLCJ2YXJpYW50cyI6WyIxNjc5NTIwMDE1OTgxMyJdLCJoYW5kbGUiOiJlbWJlbGxpc2gtdm9sdW1lLXNwcmF5LTEwb3oiLCJ0aXRsZSI6IkVNQkVMTElTSCBGaW5pc2hpbmcgU3ByYXkiLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wMDY3LzY0NzUvNzA2MS9maWxlcy9FbWJlbGxpc2hfRmluaXNoaW5nX1NwcmF5X1VwZGF0ZWRfUHJvZHVjdF9TaG90XzEuanBnP3Y9MTc2MjQzOTQ3NCJ9LHsiaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvMTc5NzM0MjA2ODgwNSIsInNob3J0SWQiOiIxNzk3MzQyMDY4ODA1IiwidmFyaWFudHMiOlsiNTI4NzI5MTQyNzI1NjYiLCI1MDk4MTMwNzk0MTE3NCIsIjQ3OTQwNDMzMTE3NDk0IiwiNTMyOTc4ODE1MTQyOTQiXSwiaGFuZGxlIjoiZ29nby1taW5pLXJvdW5kLWJydXNoIiwidGl0bGUiOiJHb0dvIE1pbmkgUm91bmQgQnJ1c2giLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wMDY3LzY0NzUvNzA2MS9maWxlcy9nb2dvLXBpbmstcGV0YWxzLTN4NC1mZWF0dXJlZC1jb21wLmpwZz92PTE3NTkyNTQyMDkifV19fSx7ImlkIjoiMzU3MzIiLCJ2IjoyLCJ0cmlnZ2VyIjp7Im9uIjoic3BlY2lmaWMiLCJzZWxlY3Rpb24iOnsidHlwZSI6IlByb2R1Y3QiLCJwcm9kdWN0cyI6W3siaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvMTAxODgyODg1OTAxMzQiLCJzaG9ydElkIjoiMTAxODgyODg1OTAxMzQiLCJ2YXJpYW50cyI6WyI1MzI
147285Nzk1Mjk4MTMwMiIsIjUyODczMzE5ODA5MzM0Il0sImhhbmRsZSI6InBlcmZlY3Rlci1wcm8taGVhdGVkLXJvdW5kLWJydXNoLTAtNTAtcHJvIiwidGl0bGUiOiJQZXJmZWN0ZXIgUHJvIEhlYXRlZCBSb3VuZCBCcnVzaCAwLjUwXCIgUHJvIiwiaW1hZ2UiOiJodHRwczovL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDA2Ny82NDc1LzcwNjEvZmlsZXMvcGVyZmVjdGVyLXJvc2Vnb2xkLTEtMi1pbmNoLXBkcC1kaXNwbGF5LmpwZz92PTE3NjQ0NjQ3OTYifV19fSwidXBzZWxsIjp7InR5cGUiOiJQcm9kdWN0IiwicHJvZHVjdHMiOlt7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEwMTg4Mjg4NjU1NjcwIiwic2hvcnRJZCI6IjEwMTg4Mjg4NjU1NjcwIiwidmFyaWFudHMiOlsiNTI4NzI5MTcxMjMzODIiLCI1MTg0OTMyMDYyODUzNCJdLCJoYW5kbGUiOiJwZXJmZWN0ZXItcHJvLWhlYXRlZC1yb3VuZC1icnVzaC0wLTc1LXBybyIsInRpdGxlIjoiUGVyZmVjdGVyIFBybyBIZWF0ZWQgUm91bmQgQnJ1c2ggMC43NVwiIFBybyArIn0seyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xNzk3MzA0Mjg3MzAxIiwic2hvcnRJZCI6IjE3OTczMDQyODczMDEiLCJ2YXJpYW50cyI6WyIxNjc5NTIwMDE1OTgxMyJdLCJoYW5kbGUiOiJlbWJlbGxpc2gtdm9sdW1lLXNwcmF5LTEwb3oiLCJ0aXRsZSI6IkVNQkVMTElTSCBGaW5pc2hpbmcgU3ByYXkiLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wMDY3LzY0NzUvNzA2MS9maWxlcy9FbWJlbGxpc2hfRmluaXNoaW5nX1NwcmF5X1VwZGF0ZWRfUHJvZHVjdF9TaG90XzEuanBnP3Y9MTc2MjQzOTQ3NCJ9LHsiaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvMTc5NzM0MjA2ODgwNSIsInNob3J0SWQiOiIxNzk3MzQyMDY4ODA1IiwidmFyaWFudHMiOlsiNTI4NzI5MTQyNzI1NjYiLCI1MDk4MTMwNzk0MTE3NCIsIjQ3OTQwNDMzMTE3NDk0IiwiNTMyOTc4ODE1MTQyOTQiXSwiaGFuZGxlIjoiZ29nby1taW5pLXJvdW5kLWJydXNoIiwidGl0bGUiOiJHb0dvIE1pbmkgUm91bmQgQnJ1c2giLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wMDY3LzY0NzUvNzA2MS9maWxlcy9nb2dvLXBpbmstcGV0YWxzLTN4NC1mZWF0dXJlZC1jb21wLmpwZz92PTE3NTkyNTQyMDkifV19fSx7ImlkIjoiNDg1NDIiLCJ2IjoyLCJ0cmlnZ2VyIjp7Im9uIjoic3BlY2lmaWMiLCJzZWxlY3Rpb24iOnsidHlwZSI6IlByb2R1Y3QiLCJwcm9kdWN0cyI6W3siaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvMTAyODgzMzM0NTU2NzAiLCJzaG9ydElkIjoiMTAyODgzMzM0NTU2NzAiLCJ2YXJpYW50cyI6WyI1MjQ2MzU3MDI4ODk1MCJdLCJoYW5kbGUiOiJzbW9vdGhpZS1taW5pLWJydXNoIiwidGl0bGUiOiJTTU9PVEhJRSBNaW5pIEJydXNoIiwiaW1hZ2UiOiJodHRwczovL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDA2Ny82NDc1LzcwNjEvZmlsZXMvU01PT1RISUVCUlVTSE1JTkkucG5nP3Y9MTc1MzI5NzU5NiJ9XX19LCJ1cHNlbGwiOnsidHlwZSI6IlByb2R1Y3QiLCJwcm9kdWN0cyI6W3siaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvMTc5NzQyNzY5MTU4OSIsInNob3J0SWQiOiIxNzk3NDI3NjkxNTg5IiwidmFyaWFudHMiOlsiNTEwMzA1MTc4NDIyMzAiLCI0OTI0Njc3OTQ3NDIzMCIsIjQ4MzY4MTUzNDYxMDQ2IiwiNTEwMzA1MTc3NDM5MjYiLCI0Njk1Mzc0NjEzNzM5OCIsIjUyMzk1ODE1NjAwNDM4IiwiNTIzOTU4MTY1MTc5NDIiLCI1MjM5NTgyMDU0ODQwNiJdLCJoYW5kbGUiOiJzbW9vdGhpZS1icnVzaCIsInRpdGxlIjoiU01PT1RISUUgQnJ1c2gifSx7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEwMjg4MzQyMjA0NzI2Iiwic2hvcnRJZCI6IjEwMjg4MzQyMjA0NzI2IiwidmFyaWFudHMiOlsiNTI0NjM1OTg5OTM3MTgiXSwiaGFuZGxlIjoic21vb3RoaWUtbGFyZ2UtYnJ1c2giLCJ0aXRsZSI6IlNNT09USElFIExhcmdlIEJydXNoIn0seyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xMDAxNTAzMjYwNzAzMCIsInNob3J0SWQiOiIxMDAxNTAzMjYwNzAzMCIsInZhcmlhbnRzIjpbIjUxMzcwMzczOTM5NTEwIiwiNTEzNzAzNzQwMDUwNDYiLCI1MTM3MDM3Mzk3MjI3OCJdLCJoYW5kbGUiOiJzbW9vdGhpZS1icnVzaC1kZXRhbmdsZXItZHVvIiwidGl0bGUiOiJTTU9PVEhJRSBCcnVzaCBEdW8iLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wMDY3LzY0NzUvNzA2MS9maWxlcy9zbW9vdGhpZS1kdW8tdmlvbGV0LXBpbmstM3g0LWNvbXByZXNzZWQuanBnP3Y9MTc1NzExNzIxMyJ9XX19LHsiaWQiOiI1MTExMyIsInYiOjIsInRyaWdnZXIiOnsib24iOiJzcGVjaWZpYyIsInNlbGVjdGlvbiI6eyJ0eXBlIjoiUHJvZHVjdCIsInByb2R1Y3RzIjpbeyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xNzk3NDI3NjkxNTg5Iiwic2hvcnRJZCI6IjE3OTc0Mjc2OTE1ODkiLCJ2YXJpYW50cyI6WyI1MTAzMDUxNzg0MjIzMCIsIjQ5MjQ2Nzc5NDc0MjMwIiwiNDgzNjgxNTM0NjEwNDYiLCI1MTAzMDUxNzc0MzkyNiIsIjQ2OTUzNzQ2MTM3Mzk4IiwiNTIzOTU4MTU2MDA0MzgiLCI1MjM5NTgxNjUxNzk0MiIsIjUyMzk1ODIwNTQ4NDA2Il0sImhhbmRsZSI6InNtb290aGllLWJydXNoIiwidGl0bGUiOiJTTU9PVEhJRSBCcnVzaCIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzAwNjcvNjQ3NS83MDYxL2ZpbGVzL1Ntb290aGllX0JydXNoX1B1cnBsZS5qcGc/dj0xNzM1NTY3NzA5In1dfX0sInVwc2VsbCI6eyJ0eXBlIjoiUHJvZHVjdCIsInByb2R1Y3RzIjpbeyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xMDI4ODMzMzQ1NTY3MCIsInNob3J0SWQiOiIxMDI4ODMzMzQ1NTY3MCIsInZhcmlhbnRzIjpbIjUyNDYzNTcwMjg4OTUwIl0sImhhbmRsZSI6InNtb290aGllLW1pbmktYnJ1c2giLCJ0aXRsZSI6IlNNT09USElFIE1pbmkgQnJ1c2giLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wMDY3LzY0NzUvNzA2MS9maWxlcy9TTU9PVEhJRUJSVVNITUlOSS5wbmc/dj0xNzUzMjk3NTk2In0seyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xM
14728DI4ODM0MjIwNDcyNiIsInNob3J0SWQiOiIxMDI4ODM0MjIwNDcyNiIsInZhcmlhbnRzIjpbIjUyNDYzNTk4OTkzNzE4Il0sImhhbmRsZSI6InNtb290aGllLWxhcmdlLWJydXNoIiwidGl0bGUiOiJTTU9PVEhJRSBMYXJnZSBCcnVzaCIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzAwNjcvNjQ3NS83MDYxL2ZpbGVzL1NNT09USElFQlJVU0hMQVJHRV8xXzEucG5nP3Y9MTc1MzI5ODAwOSJ9XX19LHsiaWQiOiI1ODk4IiwidiI6MiwidHJpZ2dlciI6eyJvbiI6InNwZWNpZmljIiwic2VsZWN0aW9uIjp7InR5cGUiOiJQcm9kdWN0IiwicHJvZHVjdHMiOlt7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzE3OTczMDQyODczMDEiLCJzaG9ydElkIjoiMTc5NzMwNDI4NzMwMSIsInZhcmlhbnRzIjpbIjE2Nzk1MjAwMTU5ODEzIl0sImhhbmRsZSI6ImVtYmVsbGlzaC12b2x1bWUtc3ByYXktMTBveiIsInRpdGxlIjoiRW1iZWxsaXNoIEZpbmlzaGluZyBTcHJheSIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzAwNjcvNjQ3NS83MDYxL2ZpbGVzL0VtYmVsbGlzaF9GaW5pc2hpbmdfU3ByYXlfVXBkYXRlZF9Qcm9kdWN0X1Nob3RfMS5qcGc/dj0xNzQwNjYzMTQ1In1dfX0sInVwc2VsbCI6eyJ0eXBlIjoiUHJvZHVjdCIsInByb2R1Y3RzIjpbeyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xNzk3MjUxNDk4MDUzIiwic2hvcnRJZCI6IjE3OTcyNTE0OTgwNTMiLCJ2YXJpYW50cyI6WyIxNjc5NDM2ODAxNjQ1MyJdLCJoYW5kbGUiOiJlbWJlbGxpc2gtbGlnaHR3ZWlnaHQtc3R5bGluZy1wYXN0ZSIsInRpdGxlIjoiRW1iZWxsaXNoIFRleHR1cml6aW5nIERlZmluZXIifSx7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzQ0OTgyNTQ2NTk2NDQiLCJzaG9ydElkIjoiNDQ5ODI1NDY1OTY0NCIsInZhcmlhbnRzIjpbIjMxOTYxNjI4ODM1OTAwIl0sImhhbmRsZSI6ImVtYmVsbGlzaC1mb2FtIiwidGl0bGUiOiJFbWJlbGxpc2ggVGV4dHVyaXppbmcgRm9hbSJ9LHsiaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvMTc5NzQyNzY5MTU4OSIsInNob3J0SWQiOiIxNzk3NDI3NjkxNTg5IiwidmFyaWFudHMiOlsiNTEwMzA1MTc4NDIyMzAiLCI0OTI0Njc3OTQ3NDIzMCIsIjQ4MzY4MTUzNDYxMDQ2IiwiNTEwMzA1MTc3NDM5MjYiLCI0Njk1Mzc0NjEzNzM5OCIsIjUyMzk1ODE1NjAwNDM4IiwiNTIzOTU4MTY1MTc5NDIiLCI1MjM5NTgyMDU0ODQwNiJdLCJoYW5kbGUiOiJzbW9vdGhpZS1icnVzaCIsInRpdGxlIjoiU21vb3RoaWUgQnJ1c2gifSx7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEwMTkyMzM5MDc1MzgyIiwic2hvcnRJZCI6IjEwMTkyMzM5MDc1MzgyIiwidmFyaWFudHMiOlsiNTE4NjMzMTI0NjYyMzAiXSwiaGFuZGxlIjoiZ2xvc3MtcmVzdG9yYXRpdmUtc2hpbmUtc2VydW0iLCJ0aXRsZSI6IkdMT1NTIFNoaW5lIFJlY292ZXJ5IFNlcnVtIiwiaW1hZ2UiOiJodHRwczovL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDA2Ny82NDc1LzcwNjEvZmlsZXMvR0xPU1NTSElORVJFQ09WRVJZU0VSVU0uanBnP3Y9MTc1NzM1MTYxNCJ9XX19LHsiaWQiOiIzMzg5NSIsInYiOjIsInRyaWdnZXIiOnsib24iOiJzcGVjaWZpYyIsInNlbGVjdGlvbiI6eyJ0eXBlIjoiQ29sbGVjdGlvbiIsImNvbGxlY3Rpb24iOnsiaWQiOiJnaWQ6Ly9zaG9waWZ5L0NvbGxlY3Rpb24vMjYxODM4ODMxNjc2IiwidGl0bGUiOiJSb290IFRvdWNoLVVwIiwiaW1hZ2UiOm51bGwsImhhbmRsZSI6InJvb3QtdG91Y2gtdXAiLCJ1cGRhdGVkQXQiOiIyMDI1LTA3LTA4VDA0OjQ1OjQ3WiIsInByb2R1Y3RzQ291bnQiOnsiY291bnQiOjEyLCJfX3R5cGVuYW1lIjoiQ291bnQifSwic29ydE9yZGVyIjoiTUFOVUFMIiwiX190eXBlbmFtZSI6IkNvbGxlY3Rpb24ifX19LCJ1cHNlbGwiOnsidHlwZSI6IlByb2R1Y3QiLCJwcm9kdWN0cyI6W3siaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvMTc5NzQyNzY5MTU4OSIsInNob3J0SWQiOiIxNzk3NDI3NjkxNTg5IiwidmFyaWFudHMiOlsiNTEwMzA1MTc4NDIyMzAiLCI0OTI0Njc3OTQ3NDIzMCIsIjQ4MzY4MTUzNDYxMDQ2IiwiNTEwMzA1MTc3NDM5MjYiLCI0Njk1Mzc0NjEzNzM5OCIsIjUyMzk1ODE1NjAwNDM4IiwiNTIzOTU4MTY1MTc5NDIiLCI1MjM5NTgyMDU0ODQwNiJdLCJoYW5kbGUiOiJzbW9vdGhpZS1icnVzaCIsInRpdGxlIjoiU21vb3RoaWUgQnJ1c2gifSx7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEwMTkyMzM5MDc1MzgyIiwic2hvcnRJZCI6IjEwMTkyMzM5MDc1MzgyIiwidmFyaWFudHMiOlsiNTE4NjMzMTI0NjYyMzAiXSwiaGFuZGxlIjoiZ2xvc3MtcmVzdG9yYXRpdmUtc2hpbmUtc2VydW0iLCJ0aXRsZSI6IkdMT1NTIFNoaW5lIFJlY292ZXJ5IFNlcnVtIiwiaW1hZ2UiOiJodHRwczovL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDA2Ny82NDc1LzcwNjEvZmlsZXMvR0xPU1NTSElORVJFQ09WRVJZU0VSVU0uanBnP3Y9MTc1NzM1MTYxNCJ9LHsiaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvOTM5MDM5NzcxODgzOCIsInNob3J0SWQiOiI5MzkwMzk3NzE4ODM4IiwidmFyaWFudHMiOlsiNDg5NTU3MzIwOTkzODIiXSwiaGFuZGxlIjoiaGVhdGxlc3Mtc29mdC1ncmlwLXJvbGxlcnMiLCJ0aXRsZSI6IlZvbHVtaXppbmcgU29mdC1HcmlwIFJvbGxlcnMgLSBTaG9ydCBTZXQiLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wMDY3LzY0NzUvNzA2MS9maWxlcy9Tb2Z0LUdyaXBSb2xsZXJzU2hvcnRTZXQxLmpwZz92PTE3NDY0ODI3ODQifSx7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEwMTg2NjM2Mzk0ODA2Iiwic2hvcnRJZCI6IjEwMTg2NjM2Mzk0ODA2IiwidmFyaWFudHMiOlsiNTE4NDMwMTk3NjgxMTgiXSwiaGFuZGxlIjoic29mdC1ncmlwLWhlYXRsZXNzLXJvbGxlcnMtbG9uZy1zZXQiLCJ0aXRsZSI6IlZvbHVtaXppbmcgU29mdC1HcmlwIFJvbGxlcnMgLSBMb25nIFNldCIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzAwNjcvNjQ3NS83MDYxL2ZpbGVzL1NvZnQtR3JpcFJvbGxlcnNMb25nU2V0MS5qcGc/dj0xNzQ2NDgyNzg0In1dfX0seyJpZCI6IjEwNTg5IiwidiI6MiwidHJpZ2dlciI6eyJvbiI6InNwZWNpZmljIiwic2VsZWN0aW9uIjp7InR5cGUiOiJQcm9kdWN0IiwicHJvZHVjdHMiOlt7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzkzOTAzOTc3MTg4MzgiLCJzaG9ydElkIjoiOTM5MDM5NzcxODgzOCIsInZhcmlhbnRzIjpbIjQ4OTU1NzMyMDk5MzgyIl0sImhhbmRsZSI6ImhlYXRsZXNzLXNvZnQtZ3JpcC1yb2xsZXJzIiwidGl0bGUiOiJWb2x1bWl6aW5nIFNvZnQtR3JpcCBSb2xsZXJzIC0gU2hvcnQgU2V0IiwiaW1hZ2UiOiJodHRwczovL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDA2Ny82NDc1LzcwNjEvZmlsZXMvU29mdC1HcmlwUm9sbGVyc1Nob3J0U2V0MS5qcGc/dj0xNzQ2NDgyNzg0In0seyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xM
14728DE4NjYzNjM5NDgwNiIsInNob3J0SWQiOiIxMDE4NjYzNjM5NDgwNiIsInZhcmlhbnRzIjpbIjUxODQzMDE5NzY4MTE4Il0sImhhbmRsZSI6InNvZnQtZ3JpcC1oZWF0bGVzcy1yb2xsZXJzLWxvbmctc2V0IiwidGl0bGUiOiJWb2x1bWl6aW5nIFNvZnQtR3JpcCBSb2xsZXJzIC0gTG9uZyBTZXQiLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wMDY3LzY0NzUvNzA2MS9maWxlcy9Tb2Z0LUdyaXBSb2xsZXJzTG9uZ1NldDEuanBnP3Y9MTc0NjQ4Mjc4NCJ9XX19LCJ1cHNlbGwiOnsidHlwZSI6IlByb2R1Y3QiLCJwcm9kdWN0cyI6W3siaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvMTc5NzMwNDI4NzMwMSIsInNob3J0SWQiOiIxNzk3MzA0Mjg3MzAxIiwidmFyaWFudHMiOlsiMTY3OTUyMDAxNTk4MTMiXSwiaGFuZGxlIjoiZW1iZWxsaXNoLXZvbHVtZS1zcHJheS0xMG96IiwidGl0bGUiOiJFbWJlbGxpc2ggRmluaXNoaW5nIFNwcmF5In0seyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC84MjcyMTI0NDEyMjE0Iiwic2hvcnRJZCI6IjgyNzIxMjQ0MTIyMTQiLCJ2YXJpYW50cyI6WyI0NTAzNzc3NDIwOTMzNCJdLCJoYW5kbGUiOiJlbWJlbGxpc2gtZmxleC1zcHJheSIsInRpdGxlIjoiRW1iZWxsaXNoIEZsZXggU3ByYXkifSx7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzE3OTc0Mjc2OTE1ODkiLCJzaG9ydElkIjoiMTc5NzQyNzY5MTU4OSIsInZhcmlhbnRzIjpbIjUxMDMwNTE3ODQyMjMwIiwiNDkyNDY3Nzk0NzQyMzAiLCI0ODM2ODE1MzQ2MTA0NiIsIjUxMDMwNTE3NzQzOTI2IiwiNDY5NTM3NDYxMzczOTgiLCI1MjM5NTgxNTYwMDQzOCIsIjUyMzk1ODE2NTE3OTQyIiwiNTIzOTU4MjA1NDg0MDYiXSwiaGFuZGxlIjoic21vb3RoaWUtYnJ1c2giLCJ0aXRsZSI6IlNtb290aGllIEJydXNoIn0seyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xMDE5MjMzOTA3NTM4MiIsInNob3J0SWQiOiIxMDE5MjMzOTA3NTM4MiIsInZhcmlhbnRzIjpbIjUxODYzMzEyNDY2MjMwIl0sImhhbmRsZSI6Imdsb3NzLXJlc3RvcmF0aXZlLXNoaW5lLXNlcnVtIiwidGl0bGUiOiJHTE9TUyBTaGluZSBSZWNvdmVyeSBTZXJ1bSIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzAwNjcvNjQ3NS83MDYxL2ZpbGVzL0dMT1NTU0hJTkVSRUNPVkVSWVNFUlVNLmpwZz92PTE3NTczNTE2MTQifV19fSx7ImlkIjoiMjg5NTUiLCJ2IjoyLCJ0cmlnZ2VyIjp7Im9uIjoic3BlY2lmaWMiLCJzZWxlY3Rpb24iOnsidHlwZSI6IlByb2R1Y3QiLCJwcm9kdWN0cyI6W3siaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvODExMzY0MTQyMzE1OCIsInNob3J0SWQiOiI4MTEzNjQxNDIzMTU4IiwidmFyaWFudHMiOlsiNDc1NTIwMzQyMTAxMDIiXSwiaGFuZGxlIjoiZ29nby1taW5pLWhhaXItZ
14728HJ5ZXIiLCJ0aXRsZSI6IkdvR28gTWluaSBIYWlyIERyeWVyIiwiaW1hZ2UiOiJodHRwczovL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDA2Ny82NDc1LzcwNjEvZmlsZXMvR29Hb0hhaXJEcnllckJsdXNoMi5qcGc/dj0xNzE0NjY1Njg3In1dfX0sInVwc2VsbCI6eyJ0eXBlIjoiUHJvZHVjdCIsInByb2R1Y3RzIjpbeyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xNzk3MzQyMDY4ODA1Iiwic2hvcnRJZCI6IjE3OTczNDIwNjg4MDUiLCJ2YXJpYW50cyI6WyI1MDk4MTMwNzk0MTE3NCIsIjQ3OTQwNDMzMTE3NDk0IiwiNTI4NzI5MTQyNzI1NjYiXSwiaGFuZGxlIjoiZ29nby1taW5pLXJvdW5kLWJydXNoIiwidGl0bGUiOiJHb0dvIE1pbmkgUm91bmQgQnJ1c2gifSx7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzE3OTczMDQyODczMDEiLCJzaG9ydElkIjoiMTc5NzMwNDI4NzMwMSIsInZhcmlhbnRzIjpbIjE2Nzk1MjAwMTU5ODEzIl0sImhhbmRsZSI6ImVtYmVsbGlzaC12b2x1bWUtc3ByYXktMTBveiIsInRpdGxlIjoiRW1iZWxsaXNoIEZpbmlzaGluZyBTcHJheSJ9LHsiaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvODI3MjEyNDQxMjIxNCIsInNob3J0SWQiOiI4MjcyMTI0NDEyMjE0IiwidmFyaWFudHMiOlsiNDUwMzc3NzQyMDkzMzQiXSwiaGFuZGxlIjoiZW1iZWxsaXNoLWZsZXgtc3ByYXkiLCJ0aXRsZSI6IkVtYmVsbGlzaCBGbGV4IFNwcmF5In0seyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xMDE5MjMzOTA3NTM4MiIsInNob3J0SWQiOiIxMDE5MjMzOTA3NTM4MiIsInZhcmlhbnRzIjpbIjUxODYzMzEyNDY2MjMwIl0sImhhbmRsZSI6Imdsb3NzLXJlc3RvcmF0aXZlLXNoaW5lLXNlcnVtIiwidGl0bGUiOiJHTE9TUyBTaGluZSBSZWNvdmVyeSBTZXJ1bSIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzAwNjcvNjQ3NS83MDYxL2ZpbGVzL0dMT1NTU0hJTkVSRUNPVkVSWVNFUlVNLmpwZz92PTE3NTczNTE2MTQifV19fSx7ImlkIjoiNTU5MDkiLCJ2IjoyLCJ0cmlnZ2VyIjp7Im9uIjoic3BlY2lmaWMiLCJzZWxlY3Rpb24iOnsidHlwZSI6IlByb2R1Y3QiLCJwcm9kdWN0cyI6W3siaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvODY4OTM4OTE3NTA5NCIsInNob3J0SWQiOiI4Njg5Mzg5MTc1MDk0IiwidmFyaWFudHMiOlsiNTExNjczMDc1OTYwODYiLCI1MTE2NzMwNzYyODg1NCJdLCJoYW5kbGUiOiJib2R5d2F2ZXItbGFyZ2Utd2F2ZS1oYWlyLXN0eWxlciIsInRpdGxlIjoiQm9keVdhdmVyIExhcmdlIFdhdmUgU3R5bGVyIn0seyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xMDM3NDc3ODQyMTU1OCIsInNob3J0SWQiOiIxMDM3NDc3ODQyMTU1OCIsInZhcmlhbnRzIjpbIjUzMTc1MTE2MDA1Njg2Il0sImhhbmRsZSI6ImJvZHl3YXZlci1zbWFsbC13YXZlLXN0eWxlciIsInRpdGxlIjoiQm9keVdhdmVyIFNtYWxsIFdhdmUgU3R5bGVyIiwiaW1hZ2UiOiJodHRwczovL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDA2Ny82NDc1LzcwNjEvZmlsZXMvQm9keVdhdmVyX1NtYWxsXzA1YjlkNWEyLWE3ZTYtNDc1NC04YWQ1LTdjOTg2MzUzMTMxNC53ZWJwP3Y9MTc2MTY2NDE3NCJ9XX19LCJ1cHNlbGwiOnsidHlwZSI6IlByb2R1Y3QiLCJwcm9kdWN0cyI6W3siaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvMTc5NzMwNDI4NzMwMSIsInNob3J0SWQiOiIxNzk3MzA0Mjg3MzAxIiwidmFyaWFudHMiOlsiMTY3OTUyMDAxNTk4MTMiXSwiaGFuZGxlIjoiZW1iZWxsaXNoLXZvbHVtZS1zcHJheS0xMG96IiwidGl0bGUiOiJFbWJlbGxpc2ggRmluaXNoaW5nIFNwcmF5In0seyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC84MjcyMTI0NDEyMjE0Iiwic2hvcnRJZCI6IjgyNzIxMjQ0MTIyMTQiLCJ2YXJpYW50cyI6WyI0NTAzNzc3NDIwOTMzNCJdLCJoYW5kbGUiOiJlbWJlbGxpc2gtZmxleC1zcHJheSIsInRpdGxlIjoiRW1iZWxsaXNoIEZsZXggU3ByYXkifSx7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEwMTkyMzM5MDc1MzgyIiwic2hvcnRJZCI6IjEwMTkyMzM5MDc1MzgyIiwidmFyaWFudHMiOlsiNTE4NjMzMTI0NjYyMzAiXSwiaGFuZGxlIjoiZ2xvc3MtcmVzdG9yYXRpdmUtc2hpbmUtc2VydW0iLCJ0aXRsZSI6IkdMT1NTIFNoaW5lIFJlY292ZXJ5IFNlcnVtIiwiaW1hZ2UiOiJodHRwczovL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDA2Ny82NDc1LzcwNjEvZmlsZXMvR0xPU1NTSElORVJFQ09WRVJZU0VSVU0uanBnP3Y9MTc1NzM1MTYxNCJ9XX19LHsiaWQiOiI1ODQ3NCIsInYiOjIsInRyaWdnZXIiOnsib24iOiJzcGVjaWZpYyIsInNlbGVjdGlvbiI6eyJ0eXBlIjoiUHJvZHVjdCIsInByb2R1Y3RzIjpbeyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xNzk3MzQyMDY4ODA1Iiwic2hvcnRJZCI6IjE3OTczNDIwNjg4MDUiLCJ2YXJpYW50cyI6WyI1MDk4MTMwNzk0MTE3NCIsIjQ3OTQwNDMzMTE3NDk0IiwiNTI4NzI5MTQyNzI1NjYiXSwiaGFuZGxlIjoiZ29nby1taW5pLXJvdW5kLWJydXNoIiwidGl0bGUiOiJHb0dvIE1pbmkgUm91bmQgQnJ1c2giLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wMDY3LzY0NzUvNzA2MS9maWxlcy9nb2dvLXJldHJvLWZsb3JhbC0zeDQtY29tcHJlc3NlZC5qcGc/dj0xNzU3MTEyMjg5In1dfX0sInVwc2VsbCI6eyJ0eXBlIjoiUHJvZHVjdCIsInByb2R1Y3RzIjpbeyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC84MTEzNjQxNDIzMTU4Iiwic2hvcnRJZCI6IjgxMTM2NDE0MjMxNTgiLCJ2YXJpYW50cyI6WyI0NzU1MjAzNDIxMDEwMiJdLCJoYW5kbGUiOiJnb2dvLW1pbmktaGFpci1kcnllciIsInRpdGxlIjoiR29HbyBNaW5pIEhhaXIgRHJ5ZXIifSx7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzE3OTczMDQyODczMDEiLCJzaG9ydElkIjoiMTc5NzMwNDI4NzMwMSIsInZhcmlhbnRzIjpbIjE2Nzk1MjAwMTU5ODEzIl0sImhhbmRsZSI6ImVtYmVsbGlzaC12b2x1bWUtc3ByYXktMTBveiIsInRpdGxlIjoiRW1iZWxsaXNoIEZpbmlzaGluZyBTcHJheSJ9LHsiaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvMTAxOTIzMzkwNzUzODIiLCJzaG9ydElkIjoiMTAxOTIzMzkwNzUzODIiLCJ2YXJpYW50cyI6WyI1MTg2MzMxMjQ2NjIzMCJdLCJoYW5kbGUiOiJnbG9zcy1yZXN0b3JhdGl2ZS1zaGluZS1zZXJ1bSIsInRpdGxlIjoiR0xPU1MgU2hpbmUgUmVjb3ZlcnkgU2VydW0ifV19fSx7ImlkIjoiMzIyMDYiLCJ2IjoyLCJ0cmlnZ2VyIjp7Im9uIjoic3BlY2lmaWMiLCJzZWxlY3Rpb24iOnsidHlwZSI6IlByb2R1Y3QiLCJwcm9kdWN0cyI6W3siaWQiOiJnaWQ6Ly9zaG9waWZ5L1Byb2R1Y3QvMTAxODgzMDM4NjAwMjIiLCJzaG9ydElkIjoiMTAxODgzMDM4NjAwMjIiLCJ2YXJpYW50cyI6WyI1MTg0OTM0OTc1OTI4NiJdLCJoYW5kbGUiOiJpb24taG90LXJvbGxlcnMtc2hvcnQtc2V0IiwidGl0bGUiOiJJb24gSG90IFJvbGxlcnMgU2hvcnQgU2V0IiwiaW1hZ2UiOiJodHRwczovL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDA2Ny82NDc1LzcwNjEvZmlsZXMvSW9uSG90Um9sbGVyc1Nob3J0U2V0LmpwZz92PTE3MzgzMzg1NTcifSx7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEwMTg4MzAzODI3MjU0Iiwic2hvcnRJZCI6IjEwMTg4MzAzODI3MjU0IiwidmFyaWFudHMiOlsiNTE4NDkzNDk2OTM3NTAiXSwiaGFuZGxlIjoiaW9uLWhvdC1yb2xsZXJzLWxvbmctc2V0IiwidGl0bGUiOiJJb24gSG90IFJvbGxlcnMgTG9uZyBTZXQiLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wMDY3LzY0NzUvNzA2MS9maWxlcy9Jb25Ib3RSb2xs
14728ZXJzTG9uZ1NldC5qcGc/dj0xNzM4MzM4NTU3In1dfX0sInVwc2VsbCI6eyJ0eXBlIjoiUHJvZHVjdCIsInByb2R1Y3RzIjpbeyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xNzk3MzA0Mjg3MzAxIiwic2hvcnRJZCI6IjE3OTczMDQyODczMDEiLCJ2YXJpYW50cyI6WyIxNjc5NTIwMDE1OTgxMyJdLCJoYW5kbGUiOiJlbWJlbGxpc2gtdm9sdW1lLXNwcmF5LTEwb3oiLCJ0aXRsZSI6IkVtYmVsbGlzaCBGaW5pc2hpbmcgU3ByYXkifSx7ImlkIjoiZ2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEwMTkyMzM5MDc1MzgyIiwic2hvcnRJZCI6IjEwMTkyMzM5MDc1MzgyIiwidmFyaWFudHMiOlsiNTE4NjMzMTI0NjYyMzAiXSwiaGFuZGxlIjoiZ2xvc3MtcmVzdG9yYXRpdmUtc2hpbmUtc2VydW0iLCJ0aXRsZSI6IkdMT1NTIFNoaW5lIFJlY292ZXJ5IFNlcnVtIn0seyJpZCI6ImdpZDovL3Nob3BpZnkvUHJvZHVjdC8xNzk3NDI3NjkxNTg5Iiwic2hvcnRJZCI6IjE3OTc0Mjc2OTE1ODkiLCJ2YXJpYW50cyI6WyI1MTAzMDUxNzg0MjIzMCIsIjQ5MjQ2Nzc5NDc0MjMwIiwiNDgzNjgxNTM0NjEwNDYiLCI1MTAzMDUxNzc0MzkyNiIsIjQ2OTUzNzQ2MTM3Mzk4IiwiNTIzOTU4MTU2MDA0MzgiLCI1MjM5NTgxNjUxNzk0MiIsIjUyMzk1ODIwNTQ4NDA2Il0sImhhbmRsZSI6InNtb290aGllLWJydXNoIiwidGl0bGUiOiJTTU9PVEhJRSBCcnVzaCIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzAwNjcvNjQ3NS83MDYxL2ZpbGVzL3Ntb290aGllLXZpb2xldC0zeDQtY29tcHJlc3NlZC5qcGc/dj0xNzU3MTEyODg4In1dfX1d"); 14729 if (val === '') { 14730 val = b64DecodeUnicode("W3siX2lkIjoiIiwidHJpZ2dlciI6bnVsbCwidXBzZWxsIjpudWxsfV0="); 14731 } 14732 val = JSON.parse(val); 14733 window.upcartSettings.upcartEditorSettings.upsellsItems = val; 14734 14735 val = b64DecodeUnicode("Ym90dG9t"); 14736 if (val === '') { 14737 val = b64DecodeUnicode("Ym90dG9t"); 14738 } 14739 window.upcartSettings.upcartEditorSettings.upsellsModulePosition = val; 14740 14741 val = b64DecodeUnicode("dHJ1ZQ=="); 14742 if (val === '') { 14743 val = b64DecodeUnicode("ZmFsc2U="); 14744 } 14745 val = JSON.parse(val); 14746 window.upcartSettings.upcartEditorSettings.recommendedUpsells = val; 14747 14748 val = b64DecodeUnicode("ZmFsc2U="); 14749 if (val === '') { 14750 val = b64DecodeUnicode("ZmFsc2U="); 14751 } 14752 val = JSON.parse(val); 14753 window.upcartSettings.upcartEditorSettings.smartVariantMatching = val; 14754 14755 val = b64DecodeUnicode("Y29tcGxlbWVudGFyeQ=="); 14756 if (val === '') { 14757 val = b64DecodeUnicode("cmVsYXRlZA=="); 14758 } 14759 window.upcartSettings.upcartEditorSettings.upsellRecommendationIntent = val; 14760 14761 val = b64DecodeUnicode("bm8tcHJvZHVjdHM="); 14762 if (val === '') { 14763 val = b64DecodeUnicode("bm8tcHJvZHVjdHM="); 14764 } 14765 window.upcartSettings.upcartEditorSettings.upsellProductReviews = val; 14766 14767 val = b64DecodeUnicode("KHt7UkVWSUVXX0NPVU5UfX0gcmV2aWV3cyk="); 14768 if (val === '') { 14769 val = b64DecodeUnicode("KHt7UkVWSUVXX0NPVU5UfX0gcmV2aWV3cyk="); 14770 } 14771 window.upcartSettings.upcartEditorSettings.upsellProductReviewsTextTemplate = val; 14772 14773 val = b64DecodeUnicode(""); 14774 if (val === '') { 14775 val = b64DecodeUnicode(""); 14776 } 14777 window.upcartSettings.upcartEditorSettings.upsellStrategyId = val; 14778 14779 val = b64DecodeUnicode("ZmFsc2U="); 14780 if (val === '') { 14781 val = b64DecodeUnicode("ZmFsc2U="); 14782 } 14783 val = JSON.parse(val); 14784 window.upcartSettings.upcartEditorSettings.upsellStrategyEnabled = val; 14785 14786 val = b64DecodeUnicode("ZmFsc2U="); 14787 if (val === '') { 14788 val = b64DecodeUnicode("ZmFsc2U="); 14789 } 14790 val = JSON.parse(val); 14791 window.upcartSettings.upcartEditorSettings.addonsModule = val; 14792 14793 val = b64DecodeUnicode("eyJzaGlwcGluZ1Byb3RlY3Rpb24iOnsiYWN0aXZlIjp0cnVlLCJwcm9kdWN0SGFuZGxlIjpudWxsLCJ0aWVycyI6W10sInVzZVByZURpc2NvdW50ZWRUb3RhbCI6ZmFsc2V9LCJwcm9kdWN0QWRkb24iOnsiYWN0aXZlIjpmYWxzZSwicHJvZHVjdEhhbmRsZSI6bnVsbCwicHJvZHVjdCI6bnVsbH19"); 14794 if (val === '') { 14795 val = b64DecodeUnicode("eyJzaGlwcGluZ1Byb3RlY3Rpb24iOnsiYWN0aXZlIjpmYWxzZSwicHJvZHVjdEhhbmRsZSI6bnVsbCwidGllcnMiOltdLCJ1c2VQcmVEaXNjb3VudGVkVG90YWwiOmZhbHNlfSwicHJvZHVjdEFkZG9uIjp7ImFjdGl2ZSI6ZmFsc2UsInByb2R1Y3RIYW5kbGUiOm51bGwsInByb2R1Y3QiOm51bGx9fQ=="); 14796 } 14797 val = JSON.parse(val); 14798 window.upcartSettings.upcartEditorSettings.addonsField = val; 14799 14800 val = b64DecodeUnicode("ZmFsc2U="); 14801 if (val === '') { 14802 val = b64DecodeUnicode("ZmFsc2U="); 14803 } 14804 val = JSON.parse(val); 14805 window.upcartSettings.upcartEditorSettings.addonsShouldBeCounted = val; 14806 14807 val = b64DecodeUnicode("dHJ1ZQ=="); 14808 if (val === '') { 14809 val = b64DecodeUnicode("dHJ1ZQ=="); 14810 } 14811 val = JSON.parse(val); 14812 window.upcartSettings.upcartEditorSettings.enableAddonAttributeKey = val; 14813 14814 val = b64DecodeUnicode("ZmFsc2U="); 14815 if (val === '') { 14816 val = b64DecodeUnicode("ZmFsc2U="); 14817 } 14818 val = JSON.parse(val); 14819 window.upcartSettings.upcartEditorSettings.notesModule = val; 14820 14821 val = b64DecodeUnicode("PHA+QWRkIHNwZWNpYWwgaW5zdHJ1Y3Rpb25zPC9wPg=="); 14822 if (val === '') { 14823 val = b64DecodeUnicode("PHA+QWRkIHNwZWNpYWwgaW5zdHJ1Y3Rpb25zPC9wPg=="); 14824 } 14825 window.upcartSettings.upcartEditorSettings.notesTitle = val; 14826 14827 val = b64DecodeUnicode("U3BlY2lhbCBpbnN0cnVjdGlvbnMgZm9yIHlvdXIgb3JkZXI="); 14828 if (val === '') { 14829 val = b64DecodeUnicode("U3BlY2lhbCBpbnN0cnVjdGlvbnMgZm9yIHlvdXIgb3JkZXI="); 14830 } 14831 window.upcartSettings.upcartEditorSettings.notesPlaceholder = val; 14832 14833 val = b64DecodeUnicode("Ym90dG9tT2ZDYXJ0"); 14834 if (val === '') { 14835 val = b64DecodeUnicode("Ym90dG9tT2ZDYXJ0"); 14836 } 14837 window.upcartSettings.upcartEditorSettings.notesPlacement = val; 14838 14839 val = b64DecodeUnicode("ZmFsc2U="); 14840 if (val === '') { 14841 val = b64DecodeUnicode("ZmFsc2U="); 14842 } 14843 val = JSON.parse(val); 14844 window.upcartSettings.upcartEditorSettings.trustBadgesModule = val; 14845 14846 val = b64DecodeUnicode("eyJ1cmwiOiJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vdXBjYXJ0LXB1YmxpYy9wYXltZW50LWljb25zLndlYnAiLCJwb3NpdGlvbiI6ImJvdHRvbSJ9"); 14847 if (val === '') { 14848 val = b64DecodeUnicode("eyJ1cmwiOiIiLCJwb3NpdGlvbiI6ImJvdHRvbSJ9"); 14849 } 14850 val = JSON.parse(val); 14851 window.upcartSettings.upcartEditorSettings.trustBadges = val; 14852 14853 val = b64DecodeUnicode("dHJ1ZQ=="); 14854 if (val === '') { 14855 val = b64DecodeUnicode("ZmFsc2U="); 14856 } 14857 val = JSON.parse(val); 14858 window.upcartSettings.upcartEditorSettings.discountCodeModule = val; 14859 14860 val = b64DecodeUnicode("RGlzY291bnQgY29kZQ=="); 14861 if (val === '') { 14862 val = b64DecodeUnicode("RGlzY291bnQgY29kZQ=="); 14863 } 14864 window.upcartSettings.upcartEditorSettings.discountCodePlaceholder = val; 14865 14866 val = b64DecodeUnicode("QXBwbHk="); 14867 if (val === '') { 14868 val = b64DecodeUnicode("QXBwbHk="); 14869 } 14870 window.upcartSettings.upcartEditorSettings.discountCodeButtonText = val; 14871 14872 val = b64DecodeUnicode("ZmFsc2U="); 14873 if (val === '') { 14874 val = b64DecodeUnicode("ZmFsc2U="); 14875 } 14876 val = JSON.parse(val); 14877 window.upcartSettings.upcartEditorSettings.subscriptionUpgradesModule = val; 14878 14879 val = b64DecodeUnicode("ZmFsc2U="); 14880 if (val === '') { 14881 val = b64DecodeUnicode("ZmFsc2U="); 14882 } 14883 val = JSON.parse(val); 14884 window.upcartSettings.upcartEditorSettings.subscriptionUpgradesPreventDowngrades = val; 14885 14886 val = b64DecodeUnicode("VXBncmFkZSB0byB7e3NlbGxpbmdfcGxhbl9ncm91cF9uYW1lfX0="); 14887 if (val === '') { 14888 val = b64DecodeUnicode("VXBncmFkZSB0byB7e3NlbGxpbmdfcGxhbl9ncm91cF9uYW1lfX0="); 14889 } 14890 window.upcartSettings.upcartEditorSettings.subscriptionUpgradesButtonText = val; 14891 14892 val = b64DecodeUnicode("dHJ1ZQ=="); 14893 if (val === '') { 14894 val = b64DecodeUnicode("ZmFsc2U="); 14895 } 14896 val = JSON.parse(val); 14897 window.upcartSettings.upcartEditorSettings.subscriptionUpgradesOptionsTextOverride = val; 14898 14899 val = b64DecodeUnicode("VXBncmFkZSB0byBBdXRvc2hpcCAmIFNhdmUgMTAl"); 14900 if (val === '') { 14901 val = b64DecodeUnicode("e3tzZWxsaW5nX3BsYW5fZ3JvdXBfbmFtZX19IC8ge3tzZWxsaW5nX3BsYW5fbmFtZX19"); 14902 } 14903 window.upcartSettings.upcartEditorSettings.subscriptionUpgradesOptionsText = val; 14904 14905 val = b64DecodeUnicode("T25lLXRpbWUgcHVyY2hhc2U="); 14906 if (val === '') { 14907 val = b64DecodeUnicode("T25lLXRpbWUgcHVyY2hhc2U="); 14908 } 14909 window.upcartSettings.upcartEditorSettings.subscriptionUpgradesOneTimePurchaseText = val; 14910 14911 val = b64DecodeUnicode("RnVsbCBwcmljZQ=="); 14912 if (val === '') { 14913 val = b64DecodeUnicode("RnVsbCBwcmljZQ=="); 14914 } 14915 window.upcartSettings.upcartEditorSettings.subscriptionUpgradesFullPriceText = val; 14916 14917 val = b64DecodeUnicode("U3Vic2NyaXB0aW9uIHBsYW5z"); 14918 if (val === '') { 14919 val = b64DecodeUnicode("U3Vic2NyaXB0aW9uIHBsYW5z"); 14920 } 14921 window.upcartSettings.upcartEditorSettings.subscriptionUpgradesSubscriptionPlansText = val; 14922 14923 val = b64DecodeUnicode("ZmFsc2U="); 14924 if (val === '') { 14925 val = b64DecodeUnicode("ZmFsc2U="); 14926 } 14927 val = JSON.parse(val); 14928 window.upcartSettings.upcartEditorSettings.expressPayModule = val; 14929 14930 val = b64DecodeUnicode("W10="); 14931 if (val === '') { 14932 val = b64DecodeUnicode("W10="); 14933 } 14934 val = JSON.parse(val); 14935 window.upcartSettings.upcartEditorSettings.expressPayEnabledGateways = val; 14936 14937 val = b64DecodeUnicode("MQ=="); 14938 if (val === '') { 14939 val = b64DecodeUnicode("MQ=="); 14940 } 14941 window.upcartSettings.upcartEditorSettings.expressPayVersion = val; 14942 14943 val = b64DecodeUnicode("eyJmaWVsZHMiOnsic2hvcGlmeUFjY2VsZXJhdGVkQ2hlY2tvdXRCdXR0b25CbG9ja1NpemUiOjQyLCJzaG9waWZ5QWNjZWxlcmF0ZWRDaGVja291dEJ1dHRvbklubGluZVNpemUiOjQyLCJzaG9waWZ5QWNjZWxlcmF0ZWRDaGVja291dElubGluZUFsaWdubWVudCI6ImNlbnRlciIsInNob3BpZnlBY2NlbGVyYXRlZENoZWNrb3V0Um93R2FwIjo4fX0="); 14944 if (val === '') { 14945 val = b64DecodeUnicode("eyJmaWVsZHMiOnsic2hvcGlmeUFjY2VsZXJhdGVkQ2hlY2tvdXRCdXR0b25CbG9ja1NpemUiOjQyLCJzaG9waWZ5QWNjZWxlcmF0ZWRDaGVja291dEJ1dHRvbklubGluZVNpemUiOjQyLCJzaG9waWZ5QWNjZWxlcmF0ZWRDaGVja291dElubGluZUFsaWdubWVudCI6ImNlbnRlciIsInNob3BpZnlBY2NlbGVyYXRlZENoZWNrb3V0Um93R2FwIjo4fX0="); 14946 } 14947 val = JSON.parse(val); 14948 window.upcartSettings.upcartEditorSettings.expressPayAcceleratedCheckoutStyles = val; 14949 14950 val = b64DecodeUnicode("dHJ1ZQ=="); 14951 if (val === '') { 14952 val = b64DecodeUnicode("dHJ1ZQ=="); 14953 } 14954 val = JSON.parse(val); 14955 window.upcartSettings.upcartEditorSettings.expressPayHideBuyerConsent = val; 14956 14957 val = b64DecodeUnicode("ZmFsc2U="); 14958 if (val === '') { 14959 val = b64DecodeUnicode("ZmFsc2U="); 14960 } 14961 val = JSON.parse(val); 14962 window.upcartSettings.stickyCartButtonEditorSettings.stickyCartButtonIsEnabled = val; 14963 14964 val = b64DecodeUnicode("IzAwMDAwMA=="); 14965 if (val === '') { 14966 val = b64DecodeUnicode("IzAwMDAwMA=="); 14967 } 14968 window.upcartSettings.stickyCartButtonEditorSettings.backgroundColor = val; 14969 14970 val = b64DecodeUnicode("YWxsRGV2aWNlcw=="); 14971 if (val === '') { 14972 val = b64DecodeUnicode("YWxsRGV2aWNlcw=="); 14973 } 14974 window.upcartSettings.stickyCartButtonEditorSettings.deviceSettings = val; 14975 14976 val = b64DecodeUnicode("I2ZmZmZmZg=="); 14977 if (val === '') { 14978 val = b64DecodeUnicode("I2ZmZmZmZg=="); 14979 } 14980 window.upcartSettings.stickyCartButtonEditorSettings.iconColor = val; 14981 14982 val = b64DecodeUnicode("c3F1YXJlQmFn"); 14983 if (val === '') { 14984 val = b64DecodeUnicode("c3F1YXJlQmFn"); 14985 } 14986 window.upcartSettings.stickyCartButtonEditorSettings.iconStyle = val; 14987 14988 val = b64DecodeUnicode("I2U0MjYyNg=="); 14989 if (val === '') { 14990 val = b64DecodeUnicode("I2U0MjYyNg=="); 14991 } 14992 window.upcartSettings.stickyCartButtonEditorSettings.quantityBackgroun
14992dColor = val; 14993 14994 val = b64DecodeUnicode("I2ZmZmZmZg=="); 14995 if (val === '') { 14996 val = b64DecodeUnicode("I2ZmZmZmZg=="); 14997 } 14998 window.upcartSettings.stickyCartButtonEditorSettings.quantityTextColor = val; 14999 15000 val = b64DecodeUnicode("Ym90dG9tUmlnaHQ="); 15001 if (val === '') { 15002 val = b64DecodeUnicode("Ym90dG9tUmlnaHQ="); 15003 } 15004 window.upcartSettings.stickyCartButtonEditorSettings.stickyCartPosition = val; 15005 15006 15007})(); 15008</script>
15008 15009 15010 15011 15012 15013 15014
15015<script> 15016 window.upcartPreloadedCart = {"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":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}; 15017 window.upcartMoneyFormat = "${{amount_no_decimals}}"; 15018 window.upcartStorefrontPublicAccessToken = 'e5ec5de681d73d5413f7f580d72207db' || undefined; 15019 window.upcartClientLocalizationCountry = { 15020 isoCode: 'US', 15021 currency: 'CurrencyDrop', 15022 name: 'United States' 15023 }; 15024 window.upcartMyShopifyDomain = 'calista-tools.myshopify.com'; 15025</script>
15025 15026 15027
15028<script> 15029 window.upcart = window.upcart || {}; 15030 window.upcart.customer = { isLoggedIn: false }; 15031 </script>
15031<script> 15032 window.upcartPreloadedCart.items = window.upcartPreloadedCart.items.map((line) => { 15033 15034 15035 return line; 15036 }); 15037</script>
15037 15038 15039<div id="upCart"></div> 15040<div id="upCartStickyButton"></div> 15041 15042<style id="upCart-customCSS"> 15043 15044 /* ============================================ 15045 Calista â Upcart V2 Custom CSS 15046 15047 UPDATED: 2026-09-17 15048 15049 Current treatment: 15050 - Compact cart typography/layout 15051 - "Add Recommended Products" directly below cart items 15052 - Recommendations collapsed by default using the existing toggle script 15053 - Coupon entry expands from a compact text row (companion script required) 15054 - Standard checkout displayed above paid Checkout+ 15055 - 2-up recommendation grid 15056 - Divider between cart items and recommendations 15057 - Prevents Upcart bottomModules wrapper from 15058 anchoring recommendations to bottom of drawer 15059 15060 WARNING: 15061 .upcart-internal-* and [class*="..."] 15062 selectors are undocumented Upcart classes and 15063 could change after an Upcart update. 15064 15065 ============================================ */ 15066 15067 15068/* ============================================ 15069 ICONS 15070 ============================================ */ 15071 15072[class*="upcart-public-component"] svg, 15073[class*="upcart-public-component"] svg path { 15074 fill: #33322E !important; 15075} 15076 15077 15078/* ============================================ 15079 CART ITEM IMAGES 15080 ============================================ */ 15081 15082.upcart-public-component-product-tile__image-wrapper { 15083 width: 88px !important; 15084 min-width: 88px !important; 15085 max-width: 88px !important; 15086 15087 overflow: hidden !important; 15088} 15089 15090.upcart-public-component-product-tile__image { 15091 width: 100% !important; 15092 height: auto !important; 15093 15094 object-fit: contain !important; 15095} 15096 15097 15098/* ============================================ 15099 TYPOGRAPHY 15100 ============================================ */ 15101 15102 15103/* Cart header */ 15104 15105.upcart-internal-header h3 { 15106 font-size: 15px !important; 15107 font-weight: 500 !important; 15108 15109 margin: 0 !important; 15110} 15111 15112 15113/* Rewards / free gift message */ 15114 15115.upcart-internal-rewards__message p { 15116 font-size: 14px !important; 15117 line-height: 1.2 !important; 15118 15119 margin: 0 !important; 15120} 15121 15122 15123/* Generic section titles */ 15124 15125.upcart-internal-style__title-large { 15126 font-size: 14px !important; 15127 font-weight: 500 !important; 15128 15129 margin-bottom: 6px !important; 15130} 15131 15132 15133/* Cart product title */ 15134 15135.upcart-internal-component-product-tile__product-title { 15136 font-size: 14px !important; 15137 font-weight: 500 !important; 15138 line-height: 1.25 !important; 15139 15140 margin: 0 0 2px !important; 15141} 15142 15143 15144/* Cart product price + quantity */ 15145 15146.upcart-internal-component-product-tile__price, 15147.upcart-internal-component-product-tile__quantity-selector input { 15148 font-size: 13px !important; 15149} 15150 15151 15152/* Product options */ 15153 15154.upcart-internal-cart-items__key-value-pair { 15155 font-size: 12px !important; 15156} 15157 15158 15159/* Upsell product title + price */ 15160 15161.upcart-internal-component-upsell-tile__title, 15162.upcart-internal-component-upsell-tile__price { 15163 font-size: 13px !important; 15164 font-weight: 500 !important; 15165 line-height: 1.25 !important; 15166 15167 margin: 0 !important; 15168} 15169 15170 15171/* Upsell Add button */ 15172 15173.upcart-internal-component-upsell-tile 15174.upcart-internal-component__button { 15175 font-size: 11px !important; 15176 15177 padding: 12px 10px !important; 15178} 15179 15180 15181/* Cart subtotal */ 15182 15183[class*="Footer__cartSubtotalTitle"], 15184[class*="Footer__cartSubtotalValue"] { 15185 font-size: 14px !important; 15186 font-weight: 500 !important; 15187} 15188 15189 15190/* ============================================ 15191 GENERAL CART SPACING 15192 ============================================ */ 15193 15194 15195/* Header */ 15196 15197.upcart-internal-header { 15198 padding: 12px 14px !important; 15199} 15200 15201 15202/* Rewards / free gift progress */ 15203 15204.upcart-internal-rewards { 15205 padding: 14px 30px 20px !important; 15206} 15207 15208 15209/* Individual cart product */ 15210 15211.upcart-internal-component-product-tile { 15212 padding-top: 14px !important; 15213 padding-bottom: 30px !important; 15214 15215 border-bottom: none !important; 15216} 15217 15218 15219/* Footer */ 15220 15221[class~="styles_Footer__"] { 15222 padding-top: 5px !important; 15223 padding-bottom: 10px !important; 15224} 15225 15226[class*="Footer__cartSummarySection"] { 15227 padding-top: 4px !important; 15228 padding-bottom: 6px !important; 15229} 15230 15231 15232/* ============================================ 15233 MAIN CART ITEMS 15234 15235 Prevent cart items area from stretching. 15236 ============================================ */ 15237 15238.upcart-public-cart-items, 15239.upcart-internal-cart-items { 15240 flex: 0 0 auto !important; 15241 15242 flex-grow: 0 !important; 15243 flex-shrink: 0 !important; 15244 15245 width: 100% !important; 15246 15247 height: auto !important; 15248 min-height: 0 !important; 15249 max-height: none !important; 15250 15251 margin: 0 !important; 15252 15253 box-sizing: border-box !important; 15254} 15255 15256 15257/* ============================================ 15258 UPCART BOTTOM MODULES POSITIONING FIX 15259 15260 Prevent recommendations from being anchored 15261 to the bottom of the cart drawer. 15262 ============================================ */ 15263 15264[class*="CartPreview__bottomModules"] { 15265 position: static !important; 15266 15267 top: auto !important; 15268 right: auto !important; 15269 bottom: auto !important; 15270 left: auto !important; 15271 15272 display: block !important; 15273 15274 flex: 0 0 auto !important; 15275 flex-grow: 0 !important; 15276 flex-shrink: 0 !important; 15277 15278 align-self: stretch !important; 15279 15280 width: 100% !important; 15281 15282 height: auto !important; 15283 min-height: 0 !important; 15284 max-height: none !important; 15285 15286 margin: 0 !important; 15287 margin-top: 0 !important; 15288 margin-bottom: 0 !important; 15289 15290 padding: 0 !important; 15291 15292 transform: none !important; 15293 15294 box-sizing: border-box !important; 15295 15296 border-top: 1px solid #E5E5E5 !important; 15297} 15298 15299 15300/* ============================================ 15301 PARENT OF BOTTOM MODULES 15302 15303 Backup override in case Upcart is using 15304 justify-content / flex spacing on the parent. 15305 ============================================ */ 15306 15307*:has(> [class*="CartPreview__bottomModules"]) { 15308 justify-content: flex-start !important; 15309 align-content: flex-start !important; 15310} 15311 15312*:has(> [class*="CartPreview__bottomModules"]) 15313> [class*="CartPreview__bottomModules"] { 15314 margin-top: 0 !important; 15315 15316 flex: 0 0 auto !important; 15317 flex-grow: 0 !important; 15318} 15319 15320 15321/* ============================================ 15322 RECOMMENDED PRODUCTS CONTAINER 15323 ============================================ */ 15324 15325.upcart-public-upsell, 15326.upcart-internal-upsell { 15327 position: relative !important; 15328 15329 flex: 0 0 auto !important; 15330 15331 flex-grow: 0 !important; 15332 flex-shrink: 0 !important; 15333 15334 align-self: stretch !important; 15335 15336 width: 100% !important; 15337 15338 height: auto !important; 15339 min-height: 0 !important; 15340 max-height: none !important; 15341 15342 margin: 0 !important; 15343 padding: 0 !important; 15344 15345 background: #FFFFFF !important; 15346 15347 border: none !important; 15348 15349 box-sizing: border-box !important; 15350} 15351 15352 15353/* ============================================ 15354 ADD RECOMMENDED PRODUCTS ACCORDION HEADING 15355 ============================================ */ 15356 15357.upcart-public-upsell__title, 15358.upcart-internal-upsell__title { 15359 position: relative !important; 15360 15361 display: flex !important; 15362 15363 align-items: center !important; 15364 justify-content: space-between !important; 15365 15366 flex: 0 0 auto !important; 15367 15368 width: 100% !important; 15369 15370 height: auto !important; 15371 min-height: 44px !important; 15372 15373 margin: 0 !important; 15374 15375 padding: 11px 20px !important; 15376 15377 background: #FFFFFF !important; 15378 15379 color: #33322E !important; 15380 15381 font-size: 14px !important; 15382 font-weight: 500 !important; 15383 line-height: 1.25 !important; 15384 15385 text-align: left !important; 15386 15387 cursor: pointer !important; 15388 15389 box-sizing: border-box !important; 15390} 15391 15392 15393/* Override generic Upcart title styles */ 15394 15395.upcart-public-upsell__title.upcart-internal-style__title-large, 15396.upcart-public-upsell__title.upcart-internal-style__title { 15397 margin: 0 !important; 15398 15399 padding: 11px 20px !important; 15400 15401 font-size: 14px !important; 15402 font-weight: 500 !important; 15403 line-height: 1.25 !important; 15404} 15405 15406 15407/* Actual heading text */ 15408 15409.upcart-public-upsell__title p { 15410 margin: 0 !important; 15411 padding: 0 !important; 15412 15413 font-size: 14px !important; 15414 font-weight: 500 !important; 15415 line-height: 1.25 !important; 15416 15417 color: #33322E !important; 15418 15419 text-align: left !important; 15420} 15421 15422 15423/* Chevron follows the existing script's aria-expanded state. */ 15424.upcart-public-upsell__title::after {
15425 content: "" !important; 15426 display: block !important; 15427 position: static !important; 15428 flex: 0 0 7px !important; 15429 width: 7px !important; 15430 height: 7px !important; 15431 margin: 0 2px 3px 12px !important; 15432 border: solid #33322E !important; 15433 border-width: 0 1.5px 1.5px 0 !important; 15434 transform: rotate(45deg) !important; 15435 transition: transform 150ms ease !important; 15436} 15437 15438.upcart-public-upsell__title[aria-expanded="true"]::after { 15439 transform: rotate(225deg) !important; 15440 margin-bottom: -3px !important; 15441} 15442 15443.upcart-public-upsell__title:focus-visible { 15444 outline: 2px solid #33322E !important; 15445 outline-offset: -3px !important; 15446} 15447 15448 15449/* ============================================ 15450 RECOMMENDATION GRID 15451 VISIBLE WHEN EXPANDED 15452 ============================================ */ 15453 15454.upcart-public-upsell__vertical-layout-wrapper, 15455.upcart-internal-upsell__vertical-layout-wrapper { 15456 display: grid !important; 15457 15458 grid-template-columns: 15459 minmax(0, 1fr) 15460 minmax(0, 1fr) !important; 15461 15462 gap: 8px !important; 15463 15464 width: 100% !important; 15465 15466 height: auto !important; 15467 min-height: 0 !important; 15468 max-height: none !important; 15469 15470 margin: 0 !important; 15471 15472 padding: 15473 10px 15474 12px 15475 14px !important; 15476 15477 background: #FFFFFF !important; 15478 15479 border-top: 1px solid #EFEFEF !important; 15480 border-bottom: 1px solid #E5E5E5 !important; 15481 15482 overflow: visible !important; 15483 15484 box-sizing: border-box !important; 15485} 15486 15487 15488/* Hide only when the working dropdown control is initialized. 15489 If that script is unavailable, recommendations remain accessible. */ 15490.upcart-public-upsell__title[aria-expanded="false"] 15491~ .upcart-public-upsell__vertical-layout-wrapper, 15492.upcart-internal-upsell__title[aria-expanded="false"] 15493~ .upcart-internal-upsell__vertical-layout-wrapper { 15494 display: none !important; 15495} 15496 15497 15498/* ============================================ 15499 PRODUCT GRID WRAPPERS 15500 ============================================ */ 15501 15502.upcart-public-upsell__vertical-layout-wrapper > div, 15503.upcart-public-upsell__vertical-layout-wrapper > div > div, 15504.upcart-internal-upsell__vertical-layout-wrapper > div, 15505.upcart-internal-upsell__vertical-layout-wrapper > div > div { 15506 height: 100% !important; 15507 min-height: 0 !important; 15508} 15509 15510 15511/* ============================================ 15512 UPSELL PRODUCT CARDS 15513 ============================================ */ 15514 15515.upcart-public-component-upsell-tile { 15516 display: flex !important; 15517 15518 flex-direction: column !important; 15519 align-items: stretch !important; 15520 15521 width: 100% !important; 15522 height: 100% !important; 15523 15524 margin: 0 !important; 15525 padding: 10px !important; 15526 15527 gap: 4px !important; 15528 15529 background: #F7F7F7 !important; 15530 15531 box-sizing: border-box !important; 15532} 15533 15534 15535/* ============================================ 15536 UPSELL PRODUCT IMAGE 15537 ============================================ */ 15538 15539.upcart-public-component-upsell-tile__image-container { 15540 width: 100% !important; 15541 height: auto !important; 15542 15543 margin: 0 !important; 15544 15545 overflow: hidden !important; 15546} 15547 15548.upcart-public-component-upsell-tile__image { 15549 display: block !important; 15550 15551 width: 100% !important; 15552 height: auto !important; 15553 15554 object-fit: contain !important; 15555} 15556 15557 15558/* ============================================ 15559 UPSELL PRODUCT INFORMATION 15560 ============================================ */ 15561 15562.upcart-public-component-upsell-tile__info { 15563 display: flex !important; 15564 15565 flex: 1 1 auto !important; 15566 flex-direction: column !important; 15567 15568 width: 100% !important; 15569 15570 min-width: 0 !important; 15571} 15572 15573 15574/* Product title */ 15575 15576.upcart-public-component-upsell-tile__title { 15577 margin: 0 !important; 15578 15579 font-size: 13px !important; 15580 font-weight: 500 !important; 15581 line-height: 1.25 !important; 15582 15583 color: #33322E !important; 15584 15585 overflow-wrap: break-word !important; 15586 word-break: normal !important; 15587} 15588 15589 15590/* Product title link */ 15591 15592.upcart-public-component-upsell-tile__title-link { 15593 color: #33322E !important; 15594 15595 text-decoration: none !important; 15596} 15597 15598 15599/* Price row */ 15600 15601.upcart-public-component-upsell-tile__price-row { 15602 margin-top: 2px !important; 15603} 15604 15605 15606/* Price */ 15607 15608.upcart-public-component-upsell-tile__price { 15609 font-size: 13px !important; 15610 font-weight: 500 !important; 15611 line-height: 1.25 !important; 15612 15613 color: #33322E !important; 15614} 15615 15616 15617/* Keep controls at bottom of card */ 15618 15619.upcart-public-component-upsell-tile__variant-row { 15620 margin-top: auto !important; 15621} 15622 15623 15624/* Add button */ 15625 15626.upcart-public-component-upsell-tile 15627.upcart-public-component__button { 15628 width: 100% !important; 15629 15630 font-size: 11px !important; 15631 15632 padding: 12px 10px !important; 15633} 15634 15635 15636/* ============================================ 15637 MOBILE 15638 ============================================ */ 15639 15640@media screen and (max-width: 480px) { 15641 15642 /* Heading */ 15643 15644 .upcart-public-upsell__title, 15645 .upcart-public-upsell__title.upcart-internal-style__title-large, 15646 .upcart-public-upsell__title.upcart-internal-style__title { 15647 min-height: 44px !important; 15648 15649 padding: 11px 16px !important; 15650 } 15651 15652 15653 /* Recommendation grid */ 15654 15655 .upcart-public-upsell__vertical-layout-wrapper, 15656 .upcart-internal-upsell__vertical-layout-wrapper { 15657 grid-template-columns: 15658 minmax(0, 1fr) 15659 minmax(0, 1fr) !important; 15660 15661 gap: 8px !important; 15662 15663 padding: 15664 10px 15665 10px 15666 14px !important; 15667 } 15668 15669 15670 /* Recommendation cards */ 15671 15672 .upcart-public-component-upsell-tile { 15673 padding: 8px !important; 15674 } 15675} 15676 15677/* ============================================ 15678 COUPON ACCORDION 15679 Companion script creates the text-row button. 15680 Only the entry form is collapsed; applied discount 15681 labels, savings and messages remain outside it. 15682 ============================================ */ 15683 15684.upcart-public-discount-code.calista-coupon-accordion { 15685 margin-top: 0 !important; 15686 margin-bottom: 6px !important; 15687 padding-top: 0 !important; 15688 padding-bottom: 0 !important; 15689} 15690 15691.upcart-public-discount-code .calista-coupon-toggle { 15692 appearance: none !important; 15693 -webkit-appearance: none !important; 15694 display: flex !important; 15695 align-items: center !important; 15696 justify-content: space-between !important; 15697 gap: 12px !important; 15698 width: 100% !important; 15699 min-height: 40px !important; 15700 margin: 0 !important; 15701 padding: 10px 0 !important; 15702 border: 0 !important; 15703 border-radius: 0 !important; 15704 background: transparent !important; 15705 box-shadow: none !important; 15706 color: #33322E !important; 15707 font-family: inherit !important; 15708 font-size: 13px !important; 15709 font-weight: 400 !important; 15710 line-height: 1.4 !important; 15711 letter-spacing: normal !important; 15712 text-align: left !important; 15713 text-transform: none !important; 15714 cursor: pointer !important; 15715} 15716 15717.upcart-public-discount-code .calista-coupon-toggle::before { 15718 content: none !important; 15719} 15720 15721.upcart-public-discount-code .calista-coupon-toggle::after {
15722 content: "" !important; 15723 display: block !important; 15724 position: static !important; 15725 flex: 0 0 7px !important; 15726 width: 7px !important; 15727 height: 7px !important; 15728 margin: 0 2px 3px 0 !important; 15729 border: solid #33322E !important; 15730 border-width: 0 1.5px 1.5px 0 !important; 15731 transform: rotate(45deg) !important; 15732 transition: transform 150ms ease !important; 15733} 15734 15735.upcart-public-discount-code .calista-coupon-toggle[aria-expanded="true"]::after { 15736 transform: rotate(225deg) !important; 15737 margin-bottom: -3px !important; 15738} 15739 15740.upcart-public-discount-code .calista-coupon-toggle:focus-visible { 15741 outline: 2px solid #33322E !important; 15742 outline-offset: -2px !important; 15743} 15744 15745/* Hide only after the companion script has installed a working button. */ 15746.upcart-public-discount-code.calista-coupon-accordion 15747.upcart-public-discount-code__form[hidden] { 15748 display: none !important; 15749} 15750 15751.upcart-public-discount-code.calista-coupon-accordion 15752.upcart-public-discount-code__form:not([hidden]) { 15753 display: flex !important; 15754 gap: 8px !important; 15755 margin: 0 0 8px !important; 15756} 15757 15758.upcart-public-discount-code.calista-coupon-accordion 15759.upcart-public-discount-code__input-wrapper { 15760 flex: 1 1 auto !important; 15761 min-width: 0 !important; 15762} 15763 15764.upcart-public-discount-code.calista-coupon-accordion 15765.upcart-public-discount-code__input { 15766 min-height: 40px !important; 15767 font-size: 16px !important; 15768 border-radius: 0 !important; 15769} 15770 15771.upcart-public-discount-code.calista-coupon-accordion 15772.upcart-public-discount-code__button { 15773 flex: 0 0 auto !important; 15774 min-height: 40px !important; 15775 min-width: 76px !important; 15776 padding: 10px 14px !important; 15777 border-radius: 0 !important; 15778 font-size: 13px !important; 15779 line-height: 1.4 !important; 15780} 15781 15782 15783/* ============================================ 15784 LOOP CHECKOUT+ BUTTON ORDER 15785 Visual order only; existing Loop actions retained. 15786 ============================================ */ 15787 15788.upcart-checkout-button-container checkout-plus::part(product-info) { 15789 order: 0 !important; 15790} 15791 15792.upcart-checkout-button-container checkout-plus::part(secondary-button) { 15793 order: 1 !important; 15794} 15795 15796.upcart-checkout-button-container checkout-plus::part(primary-button) { 15797 order: 2 !important; 15798} 15799 15800@media (prefers-reduced-motion: reduce) { 15801 .upcart-public-upsell__title::after, 15802 .upcart-public-discount-code .calista-coupon-toggle::after { 15803 transition: none !important; 15804 } 15805} 15806 15807</style> 15808 15809 15810</div><div id="shopify-block-AR2FMSW9nNERWcU9kV__6174324309569838175" class="shopify-block shopify-app-block"> 15811 15812 15813<div class="smile-shopify-init" 15814 data-channel-key="channel_eHu7Ih7QImCWrvOJiOwDJ2dA" 15815 15816></div> 15817 15818 15819</div><div id="shopify-block-AWitpMC8rZDJCSlg4R__15573056287721514228" class="shopify-block shopify-app-block json-ld-for-seo"><!-- generated: 2026-10-03 17:17:43 -0400 --> 15820<!-- BEGIN app snippet: json_ld_for_seo_website -->
15820<script type="application/ld+json"> 15821 { 15822 "@context": "https://schema.org", 15823 "@type": "WebSite", 15824 "name": "Calista Tools","alternateName": [],"@id": "https:\/\/calistatools.com\/#website", 15825 "url": "https:\/\/calistatools.com", 15826 "potentialAction": { 15827 "@type": "SearchAction", 15828 "target": { 15829 "@type": "EntryPoint", 15830 "urlTemplate": "https://calistatools.com/search?q={query}" 15831 }, 15832 "query-input": "required name=query" 15833 } 15834 } 15835</script>
15835 15836<!-- END app snippet --> 15837<!-- w 0 --> 15838 15839<!-- BEGIN app snippet: json_ld_for_seo_web_page -->
15839<script type="application/ld+json"> 15840 { 15841 "@context": "https://schema.org", 15842 "@type": "WebPage", 15843 "@id": "https:\/\/calistatools.com\/#json-ld-for-seo-webpage", 15844 "url": "https:\/\/calistatools.com\/", 15845 "image": null, 15846 "primaryImageOfPage": null, 15847 "dateCreated": null, 15848 "datePublished": null 15849 } 15850</script>
15850 15851<!-- END app snippet --> 15852<!-- wp 1 --><!-- BEGIN app snippet: json_ld_for_seo_organization -->
15853<script type="application/ld+json"> 15854{ 15855 "@context": "https://schema.org", 15856 "@type": "Organization","@id": "https:\/\/calistatools.com\/#org", 15857 "name": "Calista Tools", 15858 "url": "https:\/\/calistatools.com", 15859 "description": "Products and tools that empower transformation to make you brave about your beauty. #BeautyBrave", 15860 "telephone": "4844738292", 15861 "logo": "https:\/\/cdn.shopify.com\/s\/files\/1\/0067\/6475\/7061\/files\/calista-logo.svg?v=1709009111", 15862 "image": "https:\/\/cdn.shopify.com\/s\/files\/1\/0067\/6475\/7061\/files\/calista-logo.svg?v=1709009111", 15863 "sameAs": ["https:\/\/www.instagram.com\/calistatools\/","https:\/\/www.facebook.com\/calistabymariamccool","https:\/\/www.youtube.com\/user\/CalistaTools","https:\/\/www.tiktok.com\/@calistatools","https:\/\/www.pinterest.com\/calistatools\/","https:\/\/www.facebook.com\/calistabymariamccool","https:\/\/www.instagram.com\/calistatools\/","https:\/\/www.pinterest.com\/calistatools\/","https:\/\/www.tiktok.com\/@calistatools?lang=en","https:\/\/www.youtube.com\/user\/CalistaTools"], 15864 "address": { 15865 "@type": "PostalAddress", 15866 "streetAddress": "600 Willowbrook Lane, Suite 615", 15867 "addressLocality": "West Chester", 15868 "addressRegion": "Pennsylvania", 15869 "postalCode": "19382", 15870 "addressCountry": "US" 15871 }, 15872 "contactPoint": [ 15873 { 15874 "@type": "ContactPoint", 15875 "telephone": "4844738292", 15876 "email": "" 15877 } 15878 ]} 15879</script>
15879 15880<!-- END app snippet --> <!-- o 2 --><!-- BEGIN app snippet: json_ld_for_seo_product_group --><!-- END app snippet --> 15881<!-- p 1 --><!-- A 6 --> 15882 15883 15884</div><div id="shopify-block-AMXlNNXM5SWtGZ0cxR__17151115064775110295" class="shopify-block shopify-app-block"><style data-recharge-theme='{"has_theme_customization": false, "design_mode": false }'> 15885 .recharge-theme { 15886 /* App */ 15887 --recharge-app-background: #F7F7F7; 15888 --recharge-app-container: 1200px; 15889 --recharge-app-vertical-padding: 32px; 15890 15891 /* Brand colors */ 15892 15893--recharge-color-brand: #1773B0; 15894 15895 /* Tints */ 15896 --recharge-color-brand-120: #125988; 15897 --recharge-color-brand-20: #458fc0; 15898 --recharge-color-brand-40: #74abd0; 15899 --recharge-color-brand-60: #a2c7df; 15900 --recharge-color-brand-75: #c5dceb; 15901 --recharge-color-brand-85: #dceaf3; 15902 15903 /* Neutral */ 15904 --recharge-color-neutral: hsl(204, 35%, 7%); 15905 --recharge-color-neutral-80: hsl(204, 7%, 25%); 15906 --recharge-color-neutral-70: hsl(204, 5%, 35%); 15907 --recharge-color-neutral-40: hsl(204, 3%, 63%); 15908 --recharge-color-neutral-10: hsl(204, 2%, 91%); 15909 15910 15911 /* Links */ 15912 --recharge-button-secondary: #1773B0; 15913 --recharge-button-secondary-120: #125988; 15914 --recharge-button-secondary-60: #74abd0; 15915 15916 /* Images */ 15917 --recharge-images-ratio: 1; 15918 15919 /* Cards */ 15920 15921 --recharge-cards-background: #FFFFFF; 15922 15923 15924 15925 --recharge-cards-border-color: RGBA(0,0,0,0); 15926 15927 15928 /* Fonts */ 15929 --recharge-typography-scale: 16px; 15930 --recharge-typography-size-1: calc(3 * var(--recharge-typography-scale)); 15931 --recharge-typography-size-2: calc(2.25 * var(--recharge-typography-scale)); 15932 --recharge-typography-size-3: calc(1.625 * var(--recharge-typography-scale)); 15933 --recharge-typography-size-4: calc(1.25 * var(--recharge-typography-scale)); 15934 --recharge-typography-size-5: calc(1 * var(--recharge-typography-scale)); 15935 --recharge-typography-size-6: calc(.875 * var(--recharge-typography-scale)); 15936 15937 /** Text **/ 15938 --recharge-typography-light: #FFFFFF; 15939 --recharge-typography-primary: var(--recharge-color-neutral); 15940 --recharge-typography-secondary: var(--recharge-color-neutral-70); 15941 15942 /* Corners */ 15943 --recharge-corners-radius: 8px; 15944 15945 --recharge-button-border-radius: 8px; 15946 15947 15948 /* Views */ 15949 15950 --recharge-views-background: #F7F7F7; 15951 15952 15953 /* Buttons */ 15954 --recharge-button-font-family: inherit; 15955 --recharge-button-brand: var(--recharge-color-brand); 15956 --recharge-button-color: #FFFFFF; 15957 } 15958</style> 15959 15960</div><div id="shopify-block-AWGxmMlp0WWFnTzZRY__16798170927650018749" class="shopify-block shopify-app-block"> 15961 15962 15963 15964 15965 15966 15967 15968 15969 15970 15971 15972 15973 15974<div id="recharge-storefront-experiences"> 15975 15976 <div></div> 15977</div>
15978<script type="module" src="https://static.rechargecdn.com/assets/storefront-experiences/storefront-experiences.js"></script>
15978 15979
15980<script> 15981 (function () { 15982 15983 15984 15985 15986 15987 15988 window.RechargeStorefrontConfig = { 15989 customer: null, 15990 shop: { 15991 currency: "USD", 15992 locale: "en", 15993 identifier: "calista-tools.myshopify.com", 15994 market_id: 2518122556, 15995 currency_format: "${{amount_no_decimals}}", 15996 routes: { 15997 cart: "\/cart", 15998 root: "\/", 15999 }, 16000 }, 16001 cart_overlay:{"enabled":true}, 16002 cart_overlay_preview:{}, 16003 cart_drawer:{"enabled":true}, 16004 cart_drawer_preview:{}, 16005 bundles_selling_plan_sync_enabled:false, 16006 }; 16007 })(); 16008</script>
16008 16009 16010 16011 16012 16013</div><div id="shopify-block-ANXJ6b0lIbDZWeTNET__10148494829067693542" class="shopify-block shopify-app-block"><!-- XO-InsertCode Body --> 16014 16015 16016 16017 16018 16019 16020
16020<script src="https://calistatools.com/cdn/shop/t/144/assets/calista-custom.js?v=10" defer></script>
16020 16021<!-- Cart badge sync: UpCart adds bypass Eurus's cart flow, so the header 16022 count stays at its server-rendered value. Watches UpCart's shadow root, 16023 compares /cart.js against the badge, and fires Eurus's documented 16024 eurus:cart:reload trigger only when they disagree. 16025 Docs: support.omnithemes.com/blogs/user-guide/javascript-events-in-eurus-theme 16026 Only external dependency: window.upcartDocumentOrShadowRoot -->
16027<script> 16028(function () { 16029 var BADGE = '#cart-icon-bubble .count_item'; 16030 var t = null, inFlight = false, lastFire = 0; 16031 16032 function badgeCount() { 16033 var el = document.querySelector(BADGE); 16034 if (!el) return null; 16035 var n = parseInt(el.textContent.trim(), 10); 16036 return isNaN(n) ? 0 : n; 16037 } 16038 16039 function check() { 16040 if (inFlight) return; 16041 inFlight = true; 16042 fetch('/cart.js', { credentials: 'same-origin' }) 16043 .then(function (r) { return r.json(); }) 16044 .then(function (c) { 16045 if (c.item_count !== badgeCount() && Date.now() - lastFire > 600) { 16046 lastFire = Date.now(); 16047 document.dispatchEvent(new CustomEvent('eurus:cart:reload')); 16048 } 16049 }) 16050 .catch(function () {}) 16051 .then(function () { inFlight = false; }); 16052 } 16053 16054 function schedule() { 16055 clearTimeout(t); 16056 t = setTimeout(check, 400); 16057 } 16058 16059 var tries = 0; 16060 var iv = setInterval(function () { 16061 var root = window.upcartDocumentOrShadowRoot; 16062 if (root) { 16063 clearInterval(iv); 16064 new MutationObserver(schedule).observe(root, { 16065 childList: true, subtree: true, characterData: true 16066 }); 16067 schedule(); 16068 } else if (++tries > 80) { 16069 clearInterval(iv); 16070 } 16071 }, 250); 16072 16073 document.addEventListener('visibilitychange', function () { 16074 if (!document.hidden) schedule(); 16075 }); 16076 16077 schedule(); 16078})(); 16079</script>
16079 16080 16081<!-- End: XO-InsertCode Body --> 16082 16083 16084</div><div id="shopify-block-Ad3lHck9Ccldkb2R1R__12526071353035850722" class="shopify-block shopify-app-block"> 16085
16085<script defer src="https://backinstock.useamp.com/widget/18675_1787667501.js?category=bis&v=6"></script>
16085 16086 16087
16088<script id="back-in-stock-helper-embedded"> 16089 var _BISConfig = _BISConfig || {}; 16090 16091 16092 16093 16094</script>
16094 16095
16096<script id="preorders-helper-embedded"> 16097 16098</script>
16098 16099
16100<script id="low-stock-helper-embedded"> 16101 16102</script>
16102 16103 16104 16105 16106
16107<script defer type="module" src="https://cdn.shopify.com/extensions/01a0ae82-28b0-715d-bb47-827eda8f44e3/back-in-stock-69/assets/wishlist.js"></script>
16107 16108 16109
16110<script defer type="module" src="https://cdn.shopify.com/extensions/01a0ae82-28b0-715d-bb47-827eda8f44e3/back-in-stock-69/assets/preorder-product-page-updater.js"></script>
16110 16111 16112 16113 16114 16115</div>
16115<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
16115 16116</body> 16117</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.