It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: https://fabulous1.easy.co/products/onpage-seo/

  1. <!doctype html>
  2. <!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
  3. <!--[if IE 7]><html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
  4. <!--[if IE 8]><html class="no-js lt-ie9" lang="en"> <![endif]-->
  5. <!--[if IE 9 ]><html class="ie9 no-js"> <![endif]-->
  6. <!--[if (gt IE 9)|!(IE)]><!--> <html class="no-js"> <!--<![endif]-->
  7. <head>
  8.  
  9.  <!-- Basic page needs ================================================== -->
  10.  <meta charset="utf-8">
  11.  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  12.  
  13.  
  14.  <link rel="icon" href="https://cdn.store-assets.com/s/922320/f/8463850.png" />
  15.  
  16.  
  17.  <!-- Title and description ================================================== -->
  18.  <title>
  19.  onpage seo &ndash; Fabulous
  20.  </title>
  21.  
  22.  
  23.  <meta name="description" content="Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about provi">
  24.  
  25.  
  26.  <!-- Social meta ================================================== -->
  27.  
  28.  
  29.  <meta property="og:type" content="product">
  30.  <meta property="og:title" content="onpage seo">
  31.  <meta property="og:url" content="https://fabulous1.easy.co/products/onpage-seo">
  32.  
  33.  <meta property="og:price:amount" content="50">
  34.  <meta property="og:price:currency" content="USD">
  35.  
  36.  
  37. <meta property="og:description" content="Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It's not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it's about provi">
  38. <meta property="og:site_name" content="Fabulous">
  39.  
  40.  
  41.  
  42.  <meta name="twitter:card" content="summary">
  43.  
  44.  
  45.  
  46.  <meta name="twitter:site" content="@">
  47.  
  48.  
  49.  <meta name="twitter:title" content="onpage seo">
  50.  <meta name="twitter:description" content="Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&amp;#39;s not just about stuffing keywords into content or acquiring a">
  51.  <meta name="twitter:image" content="/assets/images/products/no_image.png">
  52.  <meta name="twitter:image:width" content="480">
  53.  <meta name="twitter:image:height" content="480">
  54.  
  55.  
  56.  
  57.  
  58.  <!-- Helpers ================================================== -->
  59.  <link rel="canonical" href="https://fabulous1.easy.co/products/onpage-seo">
  60.  <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">
  61.  <meta name="theme-color" content="#121212">
  62.  
  63.  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript" ></script>
  64.  
  65.  <!-- Header hook for plugins ================================================== -->
  66.  
  67. <!-- ScriptTags -->
  68. <script>window.__st={'p': 'product', 'cid': ''};</script><script src='/assets/events.js'></script><script>const __es_ads = {'country_code':'PK' ,'title': 'Online store by <img src="https://s3.ap-southeast-1.amazonaws.com/easystore.website/images/logo/svg/easystore-logo-horizontal.svg" alt="EasyStore" style="display: block !important;width:8em;margin:-2px 0 0 8px;"> <i style="width: 1px;height: 25px;margin: 0 10px;background: #E3E7EB;"></i> Create yours for free today.','title_mb': 'Create online store with <img src="https://s3.ap-southeast-1.amazonaws.com/easystore.website/images/logo/svg/easystore-logo-horizontal.svg" alt="EasyStore" style="display: block !important;width:8em;margin:-2px 8px 0;">','cta': 'Get started'}</script><script src='/assets/js/ads/storefront-ads.js'></script><script>(function(){function asyncLoad(){var urls=['/assets/traffic.js?v=1'];for(var i=0;i<urls.length;i++){var s=document.createElement('script');s.type='text/javascript';s.async=true;s.src=urls[i];var x=document.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);}}window.attachEvent ? window.attachEvent('onload', asyncLoad) : window.addEventListener('load', asyncLoad, false);})();</script>
  69. <!-- /ScriptTags -->
  70.  
  71.  
  72.  
  73.  <script src="https://themes.easystore.co/63057/assets/global.js?t=1716787059" defer="defer"></script>
  74.  
  75.  
  76.  
  77.  <script>
  78.  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  79.  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  80.  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  81.  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
  82.  
  83.  ga('create', 'UA-37789107-2', 'auto','myTracker');
  84.  ga('myTracker.send', 'pageview');
  85.  
  86.  </script>
  87.  
  88.  <script src="/assets/storefront.js?id=3f4f74218829cbf9e2d5" type="text/javascript" ></script>
  89.  
  90.  
  91.  <!-- CSS ================================================== -->
  92.  <style>
  93.      @font-face {
  94.        font-family: 'Rubik';
  95.        font-style: normal;
  96.        font-weight: regular;
  97.        src: local('Rubik regular'), local('Rubik-regular'), url(https://fonts.gstatic.com/s/rubik/v14/iJWZBXyIfDnIV5PNhY1KTN7Z-Yh-B4i1UE80V4bVkA.ttf) format('truetype');
  98.      }
  99.  
  100.      @font-face {
  101.        font-family: 'Archivo Black';
  102.        font-style: normal;
  103.        font-weight: regular;
  104.        src: local('Archivo Black regular'), local('Archivo Black-regular'), url(https://fonts.gstatic.com/s/archivoblack/v10/HTxqL289NzCGg4MzN6KJ7eW6OYuP_x7yx3A.ttf) format('truetype');
  105.      }
  106.  
  107.      :root {
  108.        --font-body-family: 'Rubik', sans-serif;
  109.        --font-body-style: normal;
  110.        --font-body-weight: 300;
  111.  
  112.        --font-heading-family: 'Archivo Black', sans-serif;
  113.        --font-heading-style: normal;
  114.        --font-heading-weight: 700;
  115.  
  116.        --color-heading-text: 18,18,18;
  117.        --color-base-text: 18,18,18;
  118.        --color-base-background-1: 255,255,255;
  119.        --color-base-background-2: 255,255,255;
  120.        
  121.        --color-base-solid-button-labels: 255,255,255;
  122.        --color-base-outline-button-labels: 18,18,18;
  123.        
  124.        --color-base-accent-1: 18,18,18;
  125.        --color-base-accent-2: 18,18,18;
  126.        --payment-terms-background-color: 255,255,255;
  127.  
  128.        --gradient-base-background-1: 255,255,255;
  129.        --gradient-base-background-2: 255,255,255;
  130.        --gradient-base-accent-1: 18,18,18;
  131.        --gradient-base-accent-2: 18,18,18;
  132.  
  133.        --page-width: 145rem;
  134.      }
  135.  
  136.      *,
  137.      *::before,
  138.      *::after {
  139.        box-sizing: inherit;
  140.      }
  141.  
  142.      html {
  143.        box-sizing: border-box;
  144.        font-size: 62.5%;
  145.        height: 100%;
  146.      }
  147.  
  148.      body {
  149.        display: grid;
  150.        grid-template-rows: auto auto 1fr auto;
  151.        grid-template-columns: 100%;
  152.        min-height: 100%;
  153.        margin: 0;
  154.        font-size: 1.5rem;
  155.        letter-spacing: 0.06rem;
  156.        line-height: 1.8;
  157.        font-family: var(--font-body-family);
  158.        font-style: var(--font-body-style);
  159.        font-weight: var(--font-body-weight);
  160.        
  161.      }
  162.  
  163.      @media screen and (min-width: 750px) {
  164.        body {
  165.          font-size: 1.6rem;
  166.        }
  167.      }
  168.   </style>
  169.  
  170.  <link href="https://themes.easystore.co/63057/assets/base.css?t=1716787059" rel="stylesheet" type="text/css" media="screen" />
  171.  
  172.  
  173.  
  174. <!-- Snippet:global/head: Google Analytics -->
  175. <script>ga('create', 'UA-37789107-9', 'auto', 'SFTracker'); ga('SFTracker.set', 'hostname', '{https://fabulous1.easy.co}'); ga('SFTracker.send', 'pageview');</script>
  176.                    <script>$(document).ready(function(){ $('#AddToCart').click(function(){ga('SFTracker.send','event', 'Cart', 'Add');});
  177.                    $('.update-cart').click(function(){ga('SFTracker.send','event', 'Cart', 'Update');});
  178.                    $('.checkout').click(function(){ga('SFTracker.send','event', 'Checkout', 'Lead');});
  179.                    $('#PlaceOrder,#btn-pay-again').click(function(){ga('SFTracker.send','event', 'Checkout', 'Pay');});});
  180.                    if (window.performance) { var timeSincePageLoad = Math.round(performance.now());
  181.                      ga('SFTracker.send', 'timing', 'JS Dependencies', 'load', timeSincePageLoad);}</script>
  182. <!-- /Snippet -->
  183.  
  184.  
  185.  <script>document.documentElement.className = document.documentElement.className.replace('no-js', 'js');</script>
  186. </head>
  187.  
  188. <body id="onpage-seo" class="template-product" >
  189.  
  190. <!-- Snippet:global/body_start: Console Extension -->
  191. <div id='es_console' style='display: none;'>1346176</div>
  192. <!-- /Snippet -->
  193.  
  194. <style>
  195.  header {
  196.    --logo-width: 120px;
  197.  }
  198.  .header-wrapper,
  199.  .header-wrapper .list-menu--disclosure,
  200.  .header-wrapper .search-modal{
  201.    background-color: #F1F1F1;
  202.  }
  203.  .header-wrapper .search-modal .field__input{
  204.    background-color: rgb(var(--color-background));
  205.  }
  206.  .header-wrapper summary .icon-caret,
  207.  .header-wrapper .header__menu-item a,
  208.  .header-wrapper .list-menu__item,
  209.  .header-wrapper .link--text{
  210.    color: #000000;
  211.  }
  212.  
  213.  .search-modal__form{
  214.    position: relative;
  215.  }
  216.  
  217.  .dropdown {
  218.    display: none;
  219.    position: absolute;
  220.    top: 100%;
  221.    left: 0;
  222.    width: 100%;
  223.    padding: 5px 0;
  224.    background-color: #fff;
  225.    color:#000;
  226.    z-index: 1000;
  227.    border-bottom-left-radius: 15px;
  228.    border-bottom-right-radius: 15px;
  229.    border: 1px solid rgba(var(--color-foreground), 1);
  230.    border-top: none;
  231.    overflow-x: hidden;
  232.    overflow-y: auto;
  233.    max-height: 350px;
  234.  }
  235.  
  236.  .dropdown-item {
  237.    padding: 0.4rem 2rem;
  238.    cursor: pointer;
  239.    line-height: 1.4;
  240.    overflow: hidden;
  241.    text-overflow: ellipsis;
  242.    white-space: nowrap;
  243.  }
  244.  
  245.  .dropdown-item:hover{
  246.    background-color: #f3f3f3;
  247.  }
  248.  
  249.  .search__input.is-focus{
  250.    border-radius: 15px;
  251.    border-bottom-left-radius: 0;
  252.    border-bottom-right-radius: 0;
  253.    border: 1px solid rgba(var(--color-foreground), 1);
  254.    border-bottom: none;
  255.    box-shadow: none;
  256.  }
  257.  
  258.  .clear-all {
  259.    text-align: right;
  260.    padding: 0 2rem 0.2rem;
  261.    line-height: 1;
  262.    font-size: 70%;
  263.    margin-bottom: -2px;
  264.  }
  265.  
  266.  .clear-all:hover{
  267.    background-color: #fff;
  268.  }
  269.  
  270.  .search-input-focus .easystore-section-header-hidden{
  271.    transform: none;
  272.  }
  273. </style>
  274.  
  275. <link rel="preload" href="https://themes.easystore.co/63057/assets/section-header.css?t=1716787059" as="style" onload="this.onload=null;this.rel='stylesheet'">
  276. <link rel="preload" href="https://themes.easystore.co/63057/assets/component-list-menu.css?t=1716787059" as="style" onload="this.onload=null;this.rel='stylesheet'">
  277. <link rel="preload" href="https://themes.easystore.co/63057/assets/component-menu-drawer.css?t=1716787059" as="style" onload="this.onload=null;this.rel='stylesheet'">
  278. <link rel="preload" href="https://themes.easystore.co/63057/assets/component-cart-notification.css?v1.1?t=1716787059" as="style" onload="this.onload=null;this.rel='stylesheet'">
  279.  
  280. <script src="https://themes.easystore.co/63057/assets/cart-notification.js?t=1716787059" defer="defer"></script>
  281. <script src="https://themes.easystore.co/63057/assets/details-modal.js?t=1716787059" defer="defer"></script>
  282.  
  283. <svg xmlns="http://www.w3.org/2000/svg" class="hidden">
  284.  <symbol id="icon-search" viewbox="0 0 18 19" fill="none">
  285.    <path fill-rule="evenodd" clip-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 112.85 3.5a5.784 5.784 0 018.18 8.18zm.26 1.12a6.78 6.78 0 11.72-.7l5.4 5.4a.5.5 0 11-.71.7l-5.41-5.4z" fill="currentColor"/>
  286.  </symbol>
  287.  
  288.  <symbol id="icon-close" class="icon icon-close" fill="none" viewBox="0 0 18 17">
  289.    <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor">
  290.  </symbol>
  291. </svg>
  292.  
  293.  
  294. <div id="easystore-section-header">
  295.  <sticky-header class="header-wrapper header-wrapper--border-bottom">
  296.    <header class="header header--middle-left page-width header--has-menu">
  297.      <header-drawer data-breakpoint="tablet">
  298.        <details class="menu-drawer-container menu-opening">
  299.          <summary class="header__icon header__icon--menu header__icon--summary link link--text focus-inset" aria-label="Menu" role="button" aria-expanded="true" aria-controls="menu-drawer">
  300.            <span>
  301.              
  302.  
  303.  
  304.    <svg class="icon icon-hamburger " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M32.5,65h535a25,25,0,0,0,0-50H32.5a25,25,0,0,0,0,50Z" fill="currentColor"/><path d="M567.5,275H32.5a25,25,0,0,0,0,50h535a25,25,0,0,0,0-50Z" fill="currentColor"/><path d="M567.5,535H32.5a25,25,0,0,0,0,50h535a25,25,0,0,0,0-50Z" fill="currentColor"/></svg>
  305.  
  306.  
  307.  
  308.              
  309.  
  310.  
  311.    <svg class="icon icon-close " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M335.36,300,581.87,53.48a25,25,0,0,0-35.35-35.35L300,264.64,53.48,18.13A25,25,0,0,0,18.13,53.48L264.64,300,18.13,546.52a25,25,0,0,0,35.35,35.35L300,335.36,546.52,581.87a25,25,0,0,0,35.35-35.35Z" fill="currentColor"/></svg>
  312.  
  313.  
  314.  
  315.            </span>
  316.          </summary>
  317.          <div id="menu-drawer" class="menu-drawer motion-reduce" tabindex="-1">
  318.            <div class="menu-drawer__inner-container">
  319.              <div class="menu-drawer__navigation-container">
  320.                <nav class="menu-drawer__navigation">
  321.                  <ul class="menu-drawer__menu list-menu" role="list">
  322.                    
  323.                    
  324.                      
  325.                        <li>
  326.                          <a href="/"  class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
  327.                            Home
  328.                          </a>
  329.                        </li>
  330.                      
  331.                    
  332.                    
  333.                      
  334.                        
  335.                        <li>
  336.                          <details>
  337.                                <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset" role="button" aria-expanded="false" aria-controls="link-Bags">
  338.                                  <a href="/collections/all"  class="link--text list-menu__item menu-drawer__menu-item">
  339.                                    Catalog
  340.                                  </a>
  341.                                  
  342.  
  343.  
  344.    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
  345.  
  346.  
  347.  
  348.                                  
  349.  
  350.  
  351.    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6">
  352.      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
  353.    </svg>
  354.  
  355.  
  356.  
  357.                                </summary>
  358.                                <div class="menu-drawer__submenu motion-reduce" tabindex="-1">
  359.                                  <div class="menu-drawer__inner-submenu">
  360.                                    <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
  361.                                      
  362.  
  363.  
  364.    <svg class="icon icon-arrow " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 339.56"><path d="M31.06,196.67H504l-88.56,88.56a26.89,26.89,0,1,0,38,38L588,188.79a26.89,26.89,0,0,0,0-38L453.49,16.29a26.89,26.89,0,0,0-38,38L504,142.88H31.06a26.9,26.9,0,0,0,0,53.79Z" fill="currentColor"/></svg>
  365.  
  366.  
  367.  
  368.                                      Catalog
  369.                                    </button>
  370.                                    <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1">
  371.                                      
  372.                                        
  373.                                        
  374.                                          <li>
  375.                                            <a href="/collections/new-arrival"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
  376.                                              New arrival
  377.                                            </a>
  378.                                          </li>
  379.                                        
  380.                                      
  381.                                        
  382.                                        
  383.                                          <li>
  384.                                            <a href="/collections/hot-selling"  class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
  385.                                              Hot selling
  386.                                            </a>
  387.                                          </li>
  388.                                        
  389.                                      
  390.                                      
  391.                                    </ul>
  392.                                  </div>
  393.                                </div>
  394.                          </details>
  395.                        </li>
  396.                      
  397.                    
  398.                    
  399.                      
  400.                        <li>
  401.                          <a href="/blogs/news"  class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
  402.                            News
  403.                          </a>
  404.                        </li>
  405.                      
  406.                    
  407.                    
  408.                      
  409.                        <li>
  410.                          <a href="/store-locator"  class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
  411.                            Location
  412.                          </a>
  413.                        </li>
  414.                      
  415.                    
  416.                  </ul>
  417.                </nav>
  418.  
  419.                <div class="menu-drawer__utility-links">
  420.  
  421.                  
  422.  
  423.  
  424.  
  425.  
  426.                  
  427.                  
  428.                  
  429.                    <a href="/account/login" class="menu-drawer__account link link--text focus-inset h5">
  430.                      
  431.  
  432.  
  433.    <svg class="icon icon-account " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M300,296.19c-70.7,0-137.11,28.74-187,80.93-49.59,51.87-76.9,120.77-76.9,194v25H563.89v-25c0-73.22-27.31-142.12-76.9-194C437.11,324.93,370.7,296.19,300,296.19ZM87.42,546.11C99.29,433.81,190.1,346.19,300,346.19s200.71,87.62,212.58,199.92Z" fill="currentColor"/><path d="M300,285.34c77.6,0,140.73-63.13,140.73-140.73S377.6,3.89,300,3.89,159.27,67,159.27,144.61,222.4,285.34,300,285.34Zm0-231.45a90.73,90.73,0,1,1-90.73,90.72A90.82,90.82,0,0,1,300,53.89Z" fill="currentColor"/></svg>
  434.  
  435.  
  436.                      
  437.                      Log in
  438.                    </a>
  439.                  
  440.                    <a href="/account/register" class="menu-drawer__account link link--text focus-inset h5">
  441.                      
  442.                      
  443.  
  444.  
  445.    <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-plus " fill="none" viewBox="0 0 10 10">
  446.      <path fill-rule="evenodd" clip-rule="evenodd" d="M1 4.51a.5.5 0 000 1h3.5l.01 3.5a.5.5 0 001-.01V5.5l3.5-.01a.5.5 0 00-.01-1H5.5L5.49.99a.5.5 0 00-1 .01v3.5l-3.5.01H1z" fill="currentColor"></path>
  447.    </svg>
  448.  
  449.  
  450.                      Create account
  451.                    </a>
  452.                  
  453.                  
  454.                  
  455.                </div>
  456.              </div>
  457.            </div>
  458.          </div>
  459.        </details>
  460.      </header-drawer>
  461.  
  462.      
  463.        <h1 class="header__heading">
  464.          Fabulous
  465.        </h1>
  466.      
  467.  
  468.      
  469.      <div class="header__search-input" tabindex="-1">
  470.        <form action="/search" method="get" role="search" class="search search-modal__form">
  471.          <div class="field">
  472.            <input class="search__input field__input"
  473.              id="Search-In-Modal"
  474.              type="search"
  475.              name="q"
  476.              value=""
  477.              placeholder="Search"
  478.              autocomplete="off"
  479.            >
  480.            <label class="field__label" for="Search-In-Modal">Search</label>
  481.            <div class="dropdown" id="searchDropdown"></div>
  482.            <input type="hidden" name="search_history" class="hidden_search_history">
  483.            <input type="hidden" name="options[prefix]" value="last">
  484.            <button class="search__button field__button" aria-label="Search">
  485.              <svg class="icon icon-search" aria-hidden="true" focusable="false" role="presentation">
  486.                <use href="#icon-search">
  487.              </svg>
  488.            </button>
  489.          </div>
  490.        </form>
  491.      </div>
  492.      
  493.  
  494.      <nav class="header__inline-menu">
  495.        <ul class="list-menu list-menu--inline" role="list">
  496.          
  497.            
  498.              
  499.                <li>
  500.                  <a href="/"  class="header__menu-item header__menu-item list-menu__item link link--text focus-inset">
  501.                    Home
  502.                  </a>
  503.                </li>
  504.              
  505.            
  506.            
  507.              
  508.                
  509.                <li>
  510.                  <details-disclosure>
  511.                    <details>
  512.                      <summary class="header__menu-item list-menu__item link focus-inset">
  513.                        <a href="/collections/all"  >Catalog</a>
  514.                        
  515.  
  516.  
  517.    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-caret " viewBox="0 0 10 6">
  518.      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"></path>
  519.    </svg>
  520.  
  521.  
  522.  
  523.                      </summary>
  524.                      <ul class="header__submenu list-menu list-menu--disclosure caption-large motion-reduce" role="list" tabindex="-1">
  525.                        
  526.                        
  527.                        
  528.                          
  529.                            
  530.                            <li>
  531.                              <a href="/collections/new-arrival"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">
  532.                                New arrival
  533.                              </a>
  534.                            </li>
  535.                          
  536.                        
  537.                        
  538.                          
  539.                            
  540.                            <li>
  541.                              <a href="/collections/hot-selling"  class="header__menu-item list-menu__item link link--text focus-inset caption-large">
  542.                                Hot selling
  543.                              </a>
  544.                            </li>
  545.                          
  546.                        
  547.                      </ul>
  548.                    </details>
  549.                  </details-disclosure>
  550.                </li>
  551.              
  552.            
  553.            
  554.              
  555.                <li>
  556.                  <a href="/blogs/news"  class="header__menu-item header__menu-item list-menu__item link link--text focus-inset">
  557.                    News
  558.                  </a>
  559.                </li>
  560.              
  561.            
  562.            
  563.              
  564.                <li>
  565.                  <a href="/store-locator"  class="header__menu-item header__menu-item list-menu__item link link--text focus-inset">
  566.                    Location
  567.                  </a>
  568.                </li>
  569.              
  570.            
  571.            
  572.            
  573.              
  574.                
  575.                  
  576.                
  577.                  
  578.                
  579.              
  580.            
  581.        </ul>
  582.      </nav>
  583.      <div class="header__icons">
  584.  
  585.        
  586.          
  587.            <div class="header__icon header__icon--account link link--text focus-inset small-hide medium-hide">
  588.              <a href="/account/login" class="header__icon link link--text focus-inset p-2">
  589.                
  590.  
  591.  
  592.    <svg class="icon icon-account " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M300,296.19c-70.7,0-137.11,28.74-187,80.93-49.59,51.87-76.9,120.77-76.9,194v25H563.89v-25c0-73.22-27.31-142.12-76.9-194C437.11,324.93,370.7,296.19,300,296.19ZM87.42,546.11C99.29,433.81,190.1,346.19,300,346.19s200.71,87.62,212.58,199.92Z" fill="currentColor"/><path d="M300,285.34c77.6,0,140.73-63.13,140.73-140.73S377.6,3.89,300,3.89,159.27,67,159.27,144.61,222.4,285.34,300,285.34Zm0-231.45a90.73,90.73,0,1,1-90.73,90.72A90.82,90.82,0,0,1,300,53.89Z" fill="currentColor"/></svg>
  593.  
  594.  
  595.  
  596.                <span id="my-account" class="header__link-label">Login</span>
  597.              </a>
  598.          </div>
  599.          
  600.        
  601.  
  602.        <a href="/cart" class="header__icon link link--text focus-inset" id="cart-icon-bubble">
  603.          <span class="header__icon--cart">
  604.            
  605.  
  606.  
  607.    <svg class="icon icon-cart-empty " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496.56 600"><path d="M453.52,128.63a25,25,0,0,0-24.91-22.8H364.72a117.48,117.48,0,0,0-232.89,0H67.94A25,25,0,0,0,43,128.63L8.8,515.21a72.11,72.11,0,0,0,19.05,55.6,79,79,0,0,0,58.22,25.3H410.49a79,79,0,0,0,58.22-25.3,72.11,72.11,0,0,0,19.05-55.6ZM248.28,53.89a67.58,67.58,0,0,1,65.65,51.94H182.63A67.57,67.57,0,0,1,248.28,53.89ZM431.83,537.05a28.85,28.85,0,0,1-21.34,9.06H86.07a28.85,28.85,0,0,1-21.34-9.06,22.69,22.69,0,0,1-6.13-17.43L90.82,155.83h40v51.23a25,25,0,0,0,50,0V155.83h135v51.23a25,25,0,0,0,50,0V155.83h40L438,519.62A22.68,22.68,0,0,1,431.83,537.05Z" fill="currentColor"/></svg>
  608.  
  609.  
  610.  
  611.            <div class="cart-count-bubble hidden">
  612.              <span aria-hidden="true" class="js-content-cart-count">0</span>
  613.            </div>
  614.          </span>
  615.          <span class="header__link-label medium-hide small-hide">
  616.            Cart
  617.          </span>
  618.        </a>
  619.        
  620.      </div>
  621.    </header>
  622.  </sticky-header>
  623.  
  624. <cart-notification>
  625.  <div class="cart-notification-wrapper page-width color-background-1">
  626.    <div id="cart-notification" class="cart-notification focus-inset" aria-modal="true" aria-label="Added to cart" role="dialog" tabindex="-1">
  627.      <div class="cart-notification__header">
  628.        <h2 class="cart-notification__heading caption-large">
  629.  
  630.  
  631.    <svg class="icon icon-checkmark color-foreground-text " aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 9" fill="none">
  632.      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.35.643a.5.5 0 01.006.707l-6.77 6.886a.5.5 0 01-.719-.006L.638 4.845a.5.5 0 11.724-.69l2.872 3.011 6.41-6.517a.5.5 0 01.707-.006h-.001z" fill="currentColor"></path>
  633.    </svg>
  634.  
  635.  
  636. Added to cart</h2>
  637.        <button type="button" class="cart-notification__close modal__close-button link link--text focus-inset" aria-label="accessibility.close">
  638.          
  639.  
  640.  
  641.    <svg class="icon icon-close " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M335.36,300,581.87,53.48a25,25,0,0,0-35.35-35.35L300,264.64,53.48,18.13A25,25,0,0,0,18.13,53.48L264.64,300,18.13,546.52a25,25,0,0,0,35.35,35.35L300,335.36,546.52,581.87a25,25,0,0,0,35.35-35.35Z" fill="currentColor"/></svg>
  642.  
  643.  
  644.  
  645.        </button>
  646.      </div>
  647.      <div id="cart-notification-product" class="cart-notification-product"></div>
  648.      <div class="cart-notification__links">
  649.        <a href="/cart" id="cart-notification-button" class="button button--secondary button--full-width">View cart (<span class="js-content-cart-count">0</span>)</a>
  650.        <form action="/cart" method="post" id="cart-notification-form">
  651.          <input type="hidden" name="_token" value="NfPTitc2NyIgsCbyVEd0h4cWl42NtJuMIJ0fdkhP">
  652.          <input type="hidden" name="current_currency" value="USD">
  653.          <button class="button button--primary button--full-width" name="checkout" value="true">Checkout</button>
  654.        </form>
  655.        <button type="button" class="link button-label">Continue shopping</button>
  656.      </div>
  657.    </div>
  658.  </div>
  659. </cart-notification>
  660. <style>
  661.  .cart-notification {
  662.     display: none;
  663.  }
  664. </style>
  665. <script>
  666. document.getElementById('cart-notification-form').addEventListener('submit',(event)=>{
  667.  if(event.submitter) event.submitter.classList.add('loading');
  668. })
  669.  
  670. </script>
  671.  
  672. </div>
  673.  
  674.  
  675. <script>
  676.  
  677.  class StickyHeader extends HTMLElement {
  678.    constructor() {
  679.      super();
  680.    }
  681.  
  682.    connectedCallback() {
  683.      this.header = document.getElementById('easystore-section-header');
  684.      this.headerBounds = {};
  685.      this.currentScrollTop = 0;
  686.      this.preventReveal = false;
  687.  
  688.      this.onScrollHandler = this.onScroll.bind(this);
  689.      this.hideHeaderOnScrollUp = () => this.preventReveal = true;
  690.  
  691.      this.addEventListener('preventHeaderReveal', this.hideHeaderOnScrollUp);
  692.      window.addEventListener('scroll', this.onScrollHandler, false);
  693.  
  694.      this.createObserver();
  695.    }
  696.  
  697.    disconnectedCallback() {
  698.      this.removeEventListener('preventHeaderReveal', this.hideHeaderOnScrollUp);
  699.      window.removeEventListener('scroll', this.onScrollHandler);
  700.    }
  701.  
  702.    createObserver() {
  703.      let observer = new IntersectionObserver((entries, observer) => {
  704.        this.headerBounds = entries[0].intersectionRect;
  705.        observer.disconnect();
  706.      });
  707.  
  708.      observer.observe(this.header);
  709.    }
  710.  
  711.    onScroll() {
  712.      const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
  713.  
  714.      if (scrollTop > this.currentScrollTop && scrollTop > this.headerBounds.bottom) {
  715.        requestAnimationFrame(this.hide.bind(this));
  716.      } else if (scrollTop < this.currentScrollTop && scrollTop > this.headerBounds.bottom) {
  717.        if (!this.preventReveal) {
  718.          requestAnimationFrame(this.reveal.bind(this));
  719.        } else {
  720.          window.clearTimeout(this.isScrolling);
  721.  
  722.          this.isScrolling = setTimeout(() => {
  723.            this.preventReveal = false;
  724.          }, 66);
  725.  
  726.          requestAnimationFrame(this.hide.bind(this));
  727.        }
  728.      } else if (scrollTop <= this.headerBounds.top) {
  729.        requestAnimationFrame(this.reset.bind(this));
  730.      }
  731.  
  732.  
  733.      this.currentScrollTop = scrollTop;
  734.    }
  735.  
  736.    hide() {
  737.      this.header.classList.add('easystore-section-header-hidden', 'easystore-section-header-sticky');
  738.      this.closeMenuDisclosure();
  739.      // this.closeSearchModal();
  740.    }
  741.  
  742.    reveal() {
  743.      this.header.classList.add('easystore-section-header-sticky', 'animate');
  744.      this.header.classList.remove('easystore-section-header-hidden');
  745.    }
  746.  
  747.    reset() {
  748.      this.header.classList.remove('easystore-section-header-hidden', 'easystore-section-header-sticky', 'animate');
  749.    }
  750.  
  751.    closeMenuDisclosure() {
  752.      this.disclosures = this.disclosures || this.header.querySelectorAll('details-disclosure');
  753.      this.disclosures.forEach(disclosure => disclosure.close());
  754.    }
  755.  
  756.    // closeSearchModal() {
  757.    //   this.searchModal = this.searchModal || this.header.querySelector('details-modal');
  758.    //   this.searchModal.close(false);
  759.    // }
  760.  }
  761.  
  762.  customElements.define('sticky-header', StickyHeader);
  763.  
  764.  
  765.  class DetailsDisclosure extends HTMLElement{
  766.    constructor() {
  767.      super();
  768.      this.mainDetailsToggle = this.querySelector('details');
  769.      // this.mainDetailsToggle.addEventListener('focusout', this.onFocusOut.bind(this));
  770.      this.mainDetailsToggle.addEventListener('mouseover', this.open.bind(this));
  771.      this.mainDetailsToggle.addEventListener('mouseleave', this.close.bind(this));
  772.    }
  773.  
  774.    onFocusOut() {
  775.      setTimeout(() => {
  776.        if (!this.contains(document.activeElement)) this.close();
  777.      })
  778.    }
  779.  
  780.    open() {
  781.      this.mainDetailsToggle.setAttribute('open',1)
  782.    }
  783.  
  784.    close() {
  785.      this.mainDetailsToggle.removeAttribute('open')
  786.    }
  787.  }
  788.  
  789.  customElements.define('details-disclosure', DetailsDisclosure);
  790.  
  791.  function clearAll() {
  792.    localStorage.removeItem('searchHistory');
  793.    
  794.    var customer = "";
  795.    if(customer) {
  796.      // Your logic to clear all data or call an endpoint
  797.      fetch('/account/search_histories', {
  798.          method: 'DELETE',
  799.          headers: {
  800.            "Content-Type": "application/json",
  801.            "X-Requested-With": "XMLHttpRequest"
  802.          },
  803.          body: JSON.stringify({
  804.            _token: "NfPTitc2NyIgsCbyVEd0h4cWl42NtJuMIJ0fdkhP"
  805.          }),
  806.      })
  807.      .then(response => response.json())
  808.    }
  809.  }
  810.  // End - delete search history from local storage
  811.  
  812.  // search history dropdown  
  813.  var searchInputs = document.querySelectorAll('.search__input');
  814.  
  815.  if(searchInputs.length > 0) {
  816.    
  817.    searchInputs.forEach((searchInput)=> {
  818.    
  819.      searchInput.addEventListener('focus', function() {
  820.        var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown');
  821.        searchDropdown.innerHTML = ''; // Clear existing items
  822.  
  823.        // retrieve data from local storage
  824.        var searchHistoryData = JSON.parse(localStorage.getItem('searchHistory')) || [];
  825.  
  826.        // Convert JSON to string
  827.        var search_history_json = JSON.stringify(searchHistoryData);
  828.  
  829.        // Set the value of the hidden input
  830.        searchInput.closest('form').querySelector(".hidden_search_history").value = search_history_json;
  831.  
  832.        // create dropdown items
  833.        var clearAllItem = document.createElement('div');
  834.        clearAllItem.className = 'dropdown-item clear-all';
  835.        clearAllItem.textContent = 'Clear';
  836.        clearAllItem.addEventListener('click', function() {
  837.          clearAll();
  838.          searchDropdown.style.display = 'none';
  839.          searchInput.classList.remove('is-focus');
  840.        });
  841.        searchDropdown.appendChild(clearAllItem);
  842.  
  843.        // create dropdown items
  844.        searchHistoryData.forEach(function(item) {
  845.          var dropdownItem = document.createElement('div');
  846.          dropdownItem.className = 'dropdown-item';
  847.          dropdownItem.textContent = item.term;
  848.          dropdownItem.addEventListener('click', function() {
  849.            searchInput.value = item.term;
  850.            searchInput.closest('form').submit();
  851.            searchDropdown.style.display = 'none';
  852.          });
  853.          searchDropdown.appendChild(dropdownItem);
  854.        });
  855.  
  856.        if(searchHistoryData.length > 0){
  857.          // display the dropdown
  858.          searchInput.classList.add('is-focus');
  859.          document.body.classList.add('search-input-focus');
  860.          searchDropdown.style.display = 'block';
  861.        }
  862.      });
  863.  
  864.      searchInput.addEventListener("focusout", (event) => {
  865.        var searchDropdown = searchInput.closest('form').querySelector('#searchDropdown');
  866.        searchInput.classList.remove('is-focus');
  867.        searchDropdown.classList.add('transparent');
  868.        setTimeout(()=>{
  869.          searchDropdown.style.display = 'none';
  870.          searchDropdown.classList.remove('transparent');
  871.          document.body.classList.remove('search-input-focus');
  872.        }, 400);
  873.      });
  874.    })
  875.  }
  876.  // End - search history dropdown
  877. </script>
  878.  
  879.  
  880.  <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1">
  881.    
  882.    
  883. <!-- <link href="https://themes.easystore.co/63057/assets/component-rte.css?t=1716787059" rel="stylesheet" type="text/css" media="screen" /> -->
  884. <link rel="preload" href="https://themes.easystore.co/63057/assets/section-main-product.css?t=1716787059" as="style" onload="this.onload=null;this.rel='stylesheet'">
  885. <link rel="preload" href="https://themes.easystore.co/63057/assets/component-price.css?t=1716787059" as="style" onload="this.onload=null;this.rel='stylesheet'">
  886.  
  887. <style>
  888.  .product-wrapper_color{
  889.    background-color: rgba(245, 245, 245, 1);
  890.    padding: 30px;
  891.    border-radius: 20px;
  892.  }
  893.  .product-card-wrapper{
  894.    background-color: rgba(245, 245, 245, 1);
  895.  }
  896. </style>
  897.  
  898. <link rel="preload" href="https://themes.easystore.co/63057/assets/component-slider.css?t=1716787059" as="style" onload="this.onload=null;this.rel='stylesheet'">
  899. <script src="https://themes.easystore.co/63057/assets/product-form.js?t=1716787059" defer="defer"></script>
  900.  
  901.  
  902. <section class="product-section page-width spaced-section">
  903.  
  904.  <div class="product grid grid--1-col grid--2-col-tablet">
  905.    
  906.    
  907.  
  908.      <div class="grid__item product__media-wrapper text-center">
  909.        
  910.        <img src="/assets/images/products/no_image.png" alt="Empty Image">
  911.      </div>
  912.  
  913.    
  914.  
  915.  
  916.    <div class="grid__item product__info-wrapper">
  917.      <div id="ProductInfo" class="product__info-container product__info-container--sticky">
  918.        <div class="product-wrapper_color">
  919.          
  920.  
  921.          <h1 class="product__title">
  922.            onpage seo
  923.          </h1>
  924.  
  925.          <!-- price -->
  926.          <div id="price">
  927.            
  928.  
  929. <div class="price
  930.   price--large
  931.  
  932.   price--on-sale "
  933.  data-expires="">
  934.  
  935.  <dl>
  936.    <div class="price__regular">
  937.      <dt>
  938.        <span class="visually-hidden visually-hidden--inline">Regular price</span>
  939.      </dt>
  940.      <dd >
  941.        <span class="price-item price-item--regular">
  942.          
  943.            
  944.  
  945.    <span class=money data-ori-price='50.00'>$ 50.00 </span>
  946.  
  947.  
  948.          
  949.        </span>
  950.      </dd>
  951.    </div>
  952.    <div class="price__sale">
  953.      <dt>
  954.        <span class="visually-hidden visually-hidden--inline">Sale price</span>
  955.      </dt>
  956.      <dd >
  957.        <span id="ProductPrice" class="price-item price-item--sale">
  958.          
  959.            
  960.  
  961.    <span class=money data-ori-price='50.00'>$ 50.00 </span>
  962.  
  963.  
  964.          
  965.        </span>
  966.      </dd>
  967.      
  968.      <dt class="price__compare">
  969.        <span class="visually-hidden visually-hidden--inline">Regular price</span>
  970.      </dt>
  971.      <dd class="price__compare">
  972.        <s class="price-item price-item--regular">
  973.          
  974.            <span class=money data-ori-price='100.00'>$ 100.00 </span>
  975.          
  976.          
  977.        </s>
  978.      </dd>
  979.      
  980.    </div>
  981.  </dl>
  982.  
  983.    <span class="badge price__badge-sale color-accent-2" aria-hidden="true">
  984.      Sale
  985.    </span>
  986.  
  987.    <span class="badge price__badge-sold-out" aria-hidden="true">
  988.      Sold Out
  989.    </span>
  990.  
  991. </div>
  992.  
  993.          </div>
  994.  
  995.          <div class="product_upsell-info">
  996.            
  997.              
  998.              
  999.              <div class="product_upsell-box">
  1000.                
  1001.                  <div class="product_upsell-icon">
  1002.                    <img src="https://cdn.store-assets.com/s/943101/f/8656454.png" alt="Free worldwide shipping | Fabulous">
  1003.                  </div>
  1004.                
  1005.                
  1006.                  <div class="product_upsell-text">
  1007.                    Free worldwide shipping
  1008.                  </div>
  1009.                
  1010.              </div>
  1011.            
  1012.              
  1013.              
  1014.              <div class="product_upsell-box">
  1015.                
  1016.                  <div class="product_upsell-icon">
  1017.                    <img src="https://cdn.store-assets.com/s/943101/f/8656465.png" alt="Secure payments | Fabulous">
  1018.                  </div>
  1019.                
  1020.                
  1021.                  <div class="product_upsell-text">
  1022.                    Secure payments
  1023.                  </div>
  1024.                
  1025.              </div>
  1026.            
  1027.              
  1028.              
  1029.              <div class="product_upsell-box">
  1030.                
  1031.                  <div class="product_upsell-icon">
  1032.                    <img src="https://cdn.store-assets.com/s/943101/f/8656462.png" alt="7 Days Free Return | Fabulous">
  1033.                  </div>
  1034.                
  1035.                
  1036.                  <div class="product_upsell-text">
  1037.                    7 Days Free Return
  1038.                  </div>
  1039.                
  1040.              </div>
  1041.            
  1042.          </div>
  1043.  
  1044.          <product-form class="product-form">
  1045.            <form action="/cart/add" method="post" enctype="multipart/form-data" data-addtocart='{"id":11600163,"name":"onpage seo","sku":"","price":50.0,"quantity":1,"variant":"Default Title","category":"Feature on homepage","brands":""}' id="AddToCartForm">
  1046.  
  1047.              <style>
  1048. .sf_promo-promo-label, #sf_promo-view-more-tag, .sf_promo-label-unclickable:hover {
  1049.    color: #4089e4
  1050. }
  1051. </style>
  1052. <div class="sf_promo-tag-wrapper">
  1053.    <div id="sf_promo-tag-label"></div>
  1054.    <div class="sf_promo-tag-container">
  1055.        <div id="sf_promo-tag"></div>
  1056.        <a id="sf_promo-view-more-tag" class="sf_promo-promo-label hide" onclick="getPromotionList(true)">View More</a>
  1057.    </div>
  1058. </div>
  1059.  
  1060.  
  1061.              <select name="id" id="productSelect" class="hide">
  1062.                
  1063.                  
  1064.  
  1065.                    <option  selected="selected"  data-sku="" value="53539578">Default Title - <span class=money data-ori-price='5,000.00'>$ 5,000.00 </span></option>
  1066.  
  1067.                  
  1068.                
  1069.              </select>
  1070.  
  1071.              
  1072.  
  1073.              <!-- quantity_selector -->
  1074.              <div class="product-form__input product-form__quantity">
  1075.                <label class="form__label" for="Quantity">
  1076.                  Quantity
  1077.                </label>
  1078.  
  1079.                <quantity-input class="quantity">
  1080.                  <button class="quantity__button no-js-hidden" name="minus" type="button">
  1081.                    
  1082.  
  1083.  
  1084.    <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-minus " fill="none" viewBox="0 0 10 2">
  1085.      <path fill-rule="evenodd" clip-rule="evenodd" d="M.5 1C.5.7.7.5 1 .5h8a.5.5 0 110 1H1A.5.5 0 01.5 1z" fill="currentColor"></path>
  1086.    </svg>
  1087.  
  1088.  
  1089.  
  1090.                  </button>
  1091.                  <input class="quantity__input"
  1092.                      type="number"
  1093.                      name="quantity"
  1094.                      id="Quantity"
  1095.                      min="1"
  1096.                      value="1"
  1097.                    >
  1098.                  <button class="quantity__button no-js-hidden" name="plus" type="button">
  1099.                    
  1100.  
  1101.  
  1102.    <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-plus " fill="none" viewBox="0 0 10 10">
  1103.      <path fill-rule="evenodd" clip-rule="evenodd" d="M1 4.51a.5.5 0 000 1h3.5l.01 3.5a.5.5 0 001-.01V5.5l3.5-.01a.5.5 0 00-.01-1H5.5L5.49.99a.5.5 0 00-1 .01v3.5l-3.5.01H1z" fill="currentColor"></path>
  1104.    </svg>
  1105.  
  1106.  
  1107.  
  1108.                  </button>
  1109.                </quantity-input>
  1110.              </div>
  1111.  
  1112.  
  1113.              <div class="product-form__buttons">
  1114.  
  1115.                
  1116.  
  1117.                <button
  1118.                  type="submit"
  1119.                  name="add"
  1120.                  id="AddToCart"
  1121.                  class="product-form__submit button button--full-width button--primary btn--radius"
  1122.                
  1123.                >
  1124.                    
  1125.                      Add to Cart
  1126.                    
  1127.                </button>
  1128.  
  1129.                
  1130.  
  1131.              </div>
  1132.              
  1133.              <div class="form__message hidden" tabindex="-1" autofocus>
  1134.                <span class="visually-hidden">accessibility.error </span>
  1135.                
  1136.  
  1137.  
  1138.    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-error " viewBox="0 0 13 13">
  1139.      <circle cx="6.5" cy="6.50049" r="5.5" stroke="white" stroke-width="2"/>
  1140.      <circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width="0.7"/>
  1141.      <path d="M5.87413 3.52832L5.97439 7.57216H7.02713L7.12739 3.52832H5.87413ZM6.50076 9.66091C6.88091 9.66091 7.18169 9.37267 7.18169 9.00504C7.18169 8.63742 6.88091 8.34917 6.50076 8.34917C6.12061 8.34917 5.81982 8.63742 5.81982 9.00504C5.81982 9.37267 6.12061 9.66091 6.50076 9.66091Z" fill="white"/>
  1142.      <path d="M5.87413 3.17832H5.51535L5.52424 3.537L5.6245 7.58083L5.63296 7.92216H5.97439H7.02713H7.36856L7.37702 7.58083L7.47728 3.537L7.48617 3.17832H7.12739H5.87413ZM6.50076 10.0109C7.06121 10.0109 7.5317 9.57872 7.5317 9.00504C7.5317 8.43137 7.06121 7.99918 6.50076 7.99918C5.94031 7.99918 5.46982 8.43137 5.46982 9.00504C5.46982 9.57872 5.94031 10.0109 6.50076 10.0109Z" fill="white" stroke="#EB001B" stroke-width="0.7"/>
  1143.    </svg>
  1144.  
  1145.  
  1146.  
  1147.                <div class="js-error-content"></div>
  1148.              </div>
  1149.  
  1150.            </form>
  1151.          </product-form>
  1152.  
  1153.  
  1154.          <div>
  1155.            
  1156.  
  1157.  
  1158.  
  1159.  
  1160. <share-button class="share-button">
  1161.  <button class="share-button__button hidden">
  1162.    
  1163.      
  1164.  
  1165.  
  1166.    <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-share " width="18" height="18" viewBox="0 0 24 24" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  1167.      <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
  1168.      <circle cx="6" cy="12" r="3" />
  1169.      <circle cx="18" cy="6" r="3" />
  1170.      <circle cx="18" cy="18" r="3" />
  1171.      <line x1="8.7" y1="10.7" x2="15.3" y2="7.3" />
  1172.      <line x1="8.7" y1="13.3" x2="15.3" y2="16.7" />
  1173.    </svg>
  1174.  
  1175.  
  1176.  
  1177.      Share
  1178.    
  1179.  </button>
  1180.  <details>
  1181.    <summary class="share-button__button">
  1182.      
  1183.        
  1184.  
  1185.  
  1186.    <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-share " width="18" height="18" viewBox="0 0 24 24" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  1187.      <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
  1188.      <circle cx="6" cy="12" r="3" />
  1189.      <circle cx="18" cy="6" r="3" />
  1190.      <circle cx="18" cy="18" r="3" />
  1191.      <line x1="8.7" y1="10.7" x2="15.3" y2="7.3" />
  1192.      <line x1="8.7" y1="13.3" x2="15.3" y2="16.7" />
  1193.    </svg>
  1194.  
  1195.  
  1196.  
  1197.        Share
  1198.      
  1199.    </summary>
  1200.    <div id="Product-share-id" class="share-button__fallback motion-reduce ">
  1201.  
  1202.      <div class="social-sharing-icons" data-permalink="https://fabulous1.easy.co/products/onpage-seo">
  1203.        <div class="sharing-icons-label"><small>Share it on</small></div>
  1204.  
  1205.        <a target="_blank" href="//www.facebook.com/sharer.php?u=https://fabulous1.easy.co/products/onpage-seo" class="share-icon-button">
  1206.          
  1207.  
  1208.  
  1209.    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook "
  1210.    viewBox="0 0 18 18">
  1211.      <path fill="currentColor"
  1212.        d="M16.42.61c.27 0 .5.1.69.28.19.2.28.42.28.7v15.44c0 .27-.1.5-.28.69a.94.94 0 01-.7.28h-4.39v-6.7h2.25l.31-2.65h-2.56v-1.7c0-.4.1-.72.28-.93.18-.2.5-.32 1-.32h1.37V3.35c-.6-.06-1.27-.1-2.01-.1-1.01 0-1.83.3-2.45.9-.62.6-.93 1.44-.93 2.53v1.97H7.04v2.65h2.24V18H.98c-.28 0-.5-.1-.7-.28a.94.94 0 01-.28-.7V1.59c0-.27.1-.5.28-.69a.94.94 0 01.7-.28h15.44z">
  1213.      </path>
  1214.    </svg>
  1215.  
  1216.  
  1217.  
  1218.        </a>
  1219.  
  1220.        <a target="_blank" href="//twitter.com/share?text=onpage seo&amp;url=https://fabulous1.easy.co/products/onpage-seo" class="share-icon-button">
  1221.          
  1222.  
  1223.  
  1224.    <svg class="icon icon-twitter " viewBox="0 0 22 22" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  1225.      <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
  1226.      <path d="M3 3l11.733 16h4.267l-11.733 -16z" />
  1227.      <path d="M3 19l6.768 -6.768m2.46 -2.46l6.772 -6.772" />
  1228.    </svg>
  1229.  
  1230.  
  1231.  
  1232.        </a>
  1233.  
  1234.        
  1235.  
  1236.          <a target="_blank" href="//pinterest.com/pin/create/button/?url=https://fabulous1.easy.co/products/onpage-seo&amp;media=/assets/images/products/no_image.png&amp;description=onpage seo" class="share-icon-button">
  1237.            
  1238.  
  1239.  
  1240.  <svg class="icon icon-pinterest " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><g id="Layer_1" data-name="Layer 1"><circle cx="512" cy="512" r="450" fill="transparent"/><path d="M536,962H488.77a23.77,23.77,0,0,0-3.39-.71,432.14,432.14,0,0,1-73.45-10.48c-9-2.07-18-4.52-26.93-6.8a7.6,7.6,0,0,1,.35-1.33c.6-1,1.23-2,1.85-3,18.19-29.57,34.11-60.23,43.17-93.95,7.74-28.83,14.9-57.82,22.3-86.74,2.91-11.38,5.76-22.77,8.77-34.64,2.49,3.55,4.48,6.77,6.83,9.69,15.78,19.58,36.68,31.35,60.16,39,25.41,8.3,51.34,8.07,77.41,4.11C653.11,770,693.24,748.7,726.79,715c32.57-32.73,54.13-72.14,68.33-115.76,12-37,17.81-75.08,19.08-114,1-30.16-1.94-59.73-11.72-88.36C777.38,323.39,728.1,271.81,658,239.82c-45.31-20.67-93.27-28.06-142.89-26.25a391.16,391.16,0,0,0-79.34,10.59c-54.59,13.42-103.37,38.08-143.29,78-61.1,61-91.39,134.14-83.34,221.41,2.3,25,8.13,49.08,18.84,71.86,15.12,32.14,37.78,56.78,71,70.8,11.87,5,20.67.54,23.82-12,2.91-11.56,5.5-23.21,8.88-34.63,2.72-9.19,1.2-16.84-5.15-24-22.84-25.84-31.36-56.83-30.88-90.48A238.71,238.71,0,0,1,300,462.16c10.93-55.27,39.09-99.84,85.3-132.46,33.39-23.56,71-35.54,111.53-38.54,30.47-2.26,60.5,0,89.89,8.75,27.38,8.16,51.78,21.59,71.77,42.17,31.12,32,44.38,71.35,45.61,115.25a383.11,383.11,0,0,1-3.59,61.18c-4.24,32-12.09,63-25.45,92.47-11.37,25.09-26,48-47.45,65.79-23.66,19.61-50.51,28.9-81.43,23.69-34-5.75-57.66-34-57.56-68.44,0-13.46,4.16-26.09,7.8-38.78,8.67-30.19,18-60.2,26.45-90.46,5.26-18.82,9.13-38,6.91-57.8-1.58-14.1-5.77-27.31-15.4-38-16.55-18.4-37.68-22.29-60.75-17-23.26,5.3-39.56,20.36-51.58,40.26-15,24.89-20.26,52.22-19.2,81a179.06,179.06,0,0,0,13.3,62.7,9.39,9.39,0,0,1,.07,5.31c-17.12,72.65-33.92,145.37-51.64,217.87-9.08,37.15-14.72,74.52-13.67,112.8.13,4.55,0,9.11,0,14.05-1.62-.67-3.06-1.22-4.46-1.86A452,452,0,0,1,103.27,700.4,441.83,441.83,0,0,1,63.54,547.58c-.41-5.44-1-10.86-1.54-16.29V492.71c.51-5.3,1.13-10.58,1.52-15.89A436.78,436.78,0,0,1,84,373,451.34,451.34,0,0,1,368.54,85.49a439.38,439.38,0,0,1,108.28-22c5.31-.39,10.59-1,15.89-1.52h38.58c1.64.28,3.26.65,4.9.81,14.34,1.42,28.77,2.2,43,4.3a439.69,439.69,0,0,1,140.52,45.62c57.3,29.93,106.14,70.19,146,121.07Q949,340.12,960.52,474.86c.4,4.64,1,9.27,1.48,13.91v46.46a22.06,22.06,0,0,0-.7,3.36,426.12,426.12,0,0,1-10.51,74.23C930,702,886.41,778.26,819.48,840.65c-75.94,70.81-166,110.69-269.55,119.84C545.29,960.91,540.65,961.49,536,962Z" fill="currentColor"/></g></svg>
  1241.  
  1242.  
  1243.  
  1244.          </a>
  1245.  
  1246.        
  1247.        
  1248.        <a target="_blank" href="//social-plugins.line.me/lineit/share?url=https://fabulous1.easy.co/products/onpage-seo" class="share-icon-button">
  1249.          
  1250.  
  1251.  
  1252.    <svg class="icon icon-line " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024">
  1253.      <g id="Layer_1" data-name="Layer 1"><circle cx="512" cy="512" r="450" fill="currentColor"/>
  1254.        <g id="TYPE_A" data-name="TYPE A">
  1255.          <path d="M811.32,485c0-133.94-134.27-242.9-299.32-242.9S212.68,351,212.68,485c0,120.07,106.48,220.63,250.32,239.65,9.75,2.1,23,6.42,26.37,14.76,3,7.56,2,19.42,1,27.06,0,0-3.51,21.12-4.27,25.63-1.3,7.56-6,29.59,25.93,16.13s172.38-101.5,235.18-173.78h0c43.38-47.57,64.16-95.85,64.16-149.45" fill="#fff"/>
  1256.          <path d="M451.18,420.26h-21a5.84,5.84,0,0,0-5.84,5.82V556.5a5.84,5.84,0,0,0,5.84,5.82h21A5.83,5.83,0,0,0,457,556.5V426.08a5.83,5.83,0,0,0-5.83-5.82" fill="currentColor"/>
  1257.          <path d="M595.69,420.26h-21a5.83,5.83,0,0,0-5.83,5.82v77.48L509.1,422.85a5.39,5.39,0,0,0-.45-.59l0,0a4,4,0,0,0-.35-.36l-.11-.1a3.88,3.88,0,0,0-.31-.26l-.15-.12-.3-.21-.18-.1-.31-.17-.18-.09-.34-.15-.19-.06c-.11-.05-.23-.08-.34-.12l-.21-.05-.33-.07-.25,0a3,3,0,0,0-.31,0l-.3,0H483.26a5.83,5.83,0,0,0-5.83,5.82V556.5a5.83,5.83,0,0,0,5.83,5.82h21a5.83,5.83,0,0,0,5.83-5.82V479l59.85,80.82a5.9,5.9,0,0,0,1.47,1.44l.07,0c.11.08.23.15.35.22l.17.09.28.14.28.12.18.06.39.13.09,0a5.58,5.58,0,0,0,1.49.2h21a5.83,5.83,0,0,0,5.84-5.82V426.08a5.83,5.83,0,0,0-5.84-5.82" fill="currentColor"/>
  1258.          <path d="M400.57,529.66H343.52V426.08a5.81,5.81,0,0,0-5.82-5.82h-21a5.82,5.82,0,0,0-5.83,5.82V556.49h0a5.75,5.75,0,0,0,1.63,4,.34.34,0,0,0,.08.09l.09.08a5.75,5.75,0,0,0,4,1.63h83.88a5.82,5.82,0,0,0,5.82-5.83v-21a5.82,5.82,0,0,0-5.82-5.83" fill="currentColor"/>
  1259.          <path d="M711.64,452.91a5.81,5.81,0,0,0,5.82-5.83v-21a5.82,5.82,0,0,0-5.82-5.83H627.76a5.79,5.79,0,0,0-4,1.64l-.06.06-.1.11a5.8,5.8,0,0,0-1.61,4h0v130.4h0a5.75,5.75,0,0,0,1.63,4,.34.34,0,0,0,.08.09l.08.08a5.78,5.78,0,0,0,4,1.63h83.88a5.82,5.82,0,0,0,5.82-5.83v-21a5.82,5.82,0,0,0-5.82-5.83h-57v-22h57a5.82,5.82,0,0,0,5.82-5.84v-21a5.82,5.82,0,0,0-5.82-5.83h-57v-22Z" fill="currentColor"/>
  1260.        </g>
  1261.      </g>
  1262.    </svg>
  1263.  
  1264.  
  1265.  
  1266.        </a>
  1267.  
  1268.        
  1269.      </div>
  1270.  
  1271.      <div class="share-button_copy-wrapper">
  1272.        <div class="field">
  1273.          <span id="ShareMessage-id" class="share-button__message hidden" role="status">
  1274.          </span>
  1275.          <input type="text"
  1276.                class="field__input"
  1277.                id="url"
  1278.                value="https://fabulous1.easy.co/products/onpage-seo"
  1279.                placeholder="Link"
  1280.                onclick="this.select();"
  1281.                readonly
  1282.          >
  1283.          <label class="field__label" for="url">Link</label>
  1284.        </div>
  1285.        <button class="share-button__close hidden no-js-hidden">
  1286.          
  1287.  
  1288.  
  1289.    <svg class="icon icon-close " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M335.36,300,581.87,53.48a25,25,0,0,0-35.35-35.35L300,264.64,53.48,18.13A25,25,0,0,0,18.13,53.48L264.64,300,18.13,546.52a25,25,0,0,0,35.35,35.35L300,335.36,546.52,581.87a25,25,0,0,0,35.35-35.35Z" fill="currentColor"/></svg>
  1290.  
  1291.  
  1292.  
  1293.          <span class="visually-hidden">general.share.close</span>
  1294.        </button>
  1295.        <button class="share-button__copy no-js-hidden">
  1296.          
  1297.  
  1298.  
  1299.    <svg class="icon icon-clipboard " width="11" height="13" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewBox="0 0 11 13">
  1300.      <path fill-rule="evenodd" clip-rule="evenodd" d="M2 1a1 1 0 011-1h7a1 1 0 011 1v9a1 1 0 01-1 1V1H2zM1 2a1 1 0 00-1 1v9a1 1 0 001 1h7a1 1 0 001-1V3a1 1 0 00-1-1H1zm0 10V3h7v9H1z" fill="currentColor"/>
  1301.    </svg>
  1302.  
  1303.  
  1304.  
  1305.          <span class="visually-hidden">general.share.copy_to_clipboard</span>
  1306.        </button>
  1307.      </div>
  1308.      
  1309.    </div>
  1310.    <div class="modal-overlay float-bottom-modal-overlay large-up-hide"></div>
  1311.  </details>
  1312. </share-button>
  1313. <script src="https://themes.easystore.co/63057/assets/share.js?t=1716787059" defer="defer"></script>
  1314.  
  1315.  
  1316.  
  1317.          </div>
  1318.  
  1319.        
  1320.        </div>
  1321.  
  1322.        <link href="/assets/css/promotion.css?v2.91" rel="stylesheet" type="text/css" media="screen" />
  1323. <style>
  1324. .sf_promo-ribbon{
  1325.  color: #4089e4;
  1326.  background-color: #4089e4
  1327. }
  1328. .sf_promo-ribbon-text,
  1329. .sf_promo-ribbon-text span{
  1330.  color: #fff;
  1331.  color: #fff;
  1332. }
  1333.  
  1334. </style>
  1335.  
  1336.  
  1337.  <div id="promotion-section" class="sf_promo-container">
  1338.    <div id="sf_promo-container" >
  1339.    </div>
  1340.    <div class="text-center">
  1341.      <button id="get-more-promotion" class="btn btn--secondary hide" onclick="getPromotionList(true)">View More</button>
  1342.    </div>
  1343.  </div>
  1344.  <div class="text-center">
  1345.    <button id="view-more-promotion" class="btn btn--secondary hide" onclick="expandPromoSection()">View More</button>
  1346.  </div>
  1347.  
  1348.  
  1349. <script>var shop_money_format = "<span class=money data-ori-price='{{amount}}'>$ {{amount}} </span>";</script>
  1350. <script src="/assets/js/promotion/promotion.js?v1.11" type="text/javascript"></script>
  1351.  
  1352. <script>
  1353.  
  1354.  var param = {limit:5, page:1};
  1355.  
  1356.  function getPromotionList(load_more){
  1357.  
  1358.    var element = document.getElementById("sf_promo-container"),
  1359.        promo_section = document.getElementById("promotion-section"),
  1360.        promo_btn = document.getElementById("get-more-promotion"),
  1361.        view_more_btn = document.getElementById("view-more-promotion"),
  1362.        view_more_tag_btn = document.getElementById("sf_promo-view-more-tag"),
  1363.        page_value = parseInt(param.page);
  1364.  
  1365.    if(load_more) {
  1366.      view_more_tag_btn.classList.add("sf_promo-is-loading");
  1367.      promo_btn.classList.add("btn--loading");
  1368.    }
  1369.  
  1370.    $.ajax({
  1371.      type: "GET",
  1372.      data: param,
  1373.      dataType: 'json',
  1374.      url: "/products/onpage-seo/promotions",
  1375.      success: function(response){
  1376.  
  1377.        document.getElementById("sf_promo-container").innerHTML += response.html;
  1378.  
  1379.  
  1380.        var promotion_tag_html = "";
  1381.        var promotion_tag_label_html = "";
  1382.  
  1383.        var total_addon_discount = 0;
  1384.  
  1385.        if(response.data.total_promotions > 0){
  1386.          promotion_tag_label_html += `<div style="display:block;"><label>Promotions</label></div>`;
  1387.  
  1388.          for (let promotion of response.data.promotions) {
  1389.            var label_class = "sf_promo-label-clickable",
  1390.                svg_icon = "";
  1391.            if(promotion.prerequisite_subtotal_range != null || promotion.prerequisite_to_entitlement_quantity_ratio == null) {
  1392.              label_class = "sf_promo-label-unclickable";
  1393.            }else{
  1394.              total_addon_discount += 1
  1395.              svg_icon = `<svg class="sf_promo-svg-icon" xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-chevron-right" viewBox="0 0 24 24" stroke-width="2.8" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  1396.                            <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
  1397.                            <polyline points="9 6 15 12 9 18" />
  1398.                          </svg>`;
  1399.            }
  1400.            promotion_tag_html +=
  1401.            ` <a onclick="promoScrollToView('${promotion.id}')" class="sf_promo-promo-label ${label_class}">
  1402.                <b class="sf_promo-tag-label-title">${promotion.title.replace('&', '&amp;').replace('>','&gt;').replace('<','&lt;').replace('/','&sol;').replace('“', '&quot;').replace("'","&#39;") }</b>${svg_icon}
  1403.              </a>
  1404.            `;
  1405.          }
  1406.        }
  1407.  
  1408.        if(total_addon_discount > 1 && !load_more){
  1409.          promo_section.classList.add('sf_promo-container-height-opacity','sf_promo-container-white-gradient')
  1410.          view_more_btn.classList.remove("hide");
  1411.        }else{
  1412.          promo_section.classList.remove('sf_promo-container-height-opacity','sf_promo-container-white-gradient')
  1413.          view_more_btn.classList.add("hide");
  1414.        }
  1415.  
  1416.        if(response.data.page_count > param.page) {
  1417.          view_more_tag_btn.classList.remove("hide");
  1418.          promo_btn.classList.remove("hide");
  1419.        }else{
  1420.          view_more_tag_btn.classList.add("hide");
  1421.          promo_btn.classList.add("hide");
  1422.        }
  1423.  
  1424.        document.getElementById("sf_promo-tag-label").innerHTML = promotion_tag_label_html;
  1425.        document.getElementById("sf_promo-tag").innerHTML += promotion_tag_html;
  1426.  
  1427.        view_more_tag_btn.classList.remove("sf_promo-is-loading");
  1428.        promo_btn.classList.remove("btn--loading");
  1429.  
  1430.  
  1431.        promoVariantDetailInitial()
  1432.  
  1433.        page_value = isNaN(page_value) ? 0 : page_value;
  1434.        page_value++;
  1435.  
  1436.        param.page = page_value;
  1437.      },
  1438.      error: function(xhr){
  1439.  
  1440.      }
  1441.    });
  1442.  }
  1443.  
  1444.  var is_show_product_page = "1"
  1445.  
  1446.  if(is_show_product_page){
  1447.    getPromotionList();
  1448.  }
  1449. </script>
  1450.  
  1451.  
  1452.        
  1453.          <div class="product-description product__description rte" itemprop="description">
  1454.            <link href='/assets/css/froala_style.min.css' rel='stylesheet' type='text/css'/><div class='fr-view'><p>Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about providing value to users and delivering a seamless, informative experience across all touchpoints. This involves optimizing for mobile devices, improving site navigation, and fostering engagement through social media and other channels. By investing in SEO, businesses can increase their organic traffic, build brand awareness, and ultimately drive conversions, making it an indispensable component of any digital marketing strategy in today&#39;s competitive online landscape.</p>
  1455. <a href="https://winbliss1.weebly.com/">-</a>
  1456. <a href="https://winbliss2.weebly.com/">-</a>
  1457. <a href="https://winbliss3.weebly.com/">-</a>
  1458. <a href="https://winbliss4.weebly.com/">-</a>
  1459. <a href="https://winbliss5.weebly.com/">-</a>
  1460. <a href="https://winbliss6.weebly.com/">-</a>
  1461. <a href="https://winbliss7.weebly.com/">-</a>
  1462. <a href="https://winbliss8.weebly.com/">-</a>
  1463. <a href="https://winbliss9.weebly.com/">-</a>
  1464. <a href="https://winbliss10.weebly.com/">-</a>
  1465. <a href="https://winbliss11.weebly.com/">-</a>
  1466. <a href="https://winbliss12.weebly.com/">-</a>
  1467. <a href="https://winbliss13.weebly.com/">-</a>
  1468. <a href="https://winbliss14.weebly.com/">-</a>
  1469. <a href="https://winbliss15.weebly.com/">-</a>
  1470. <a href="https://winbliss16.weebly.com/">-</a>
  1471. <a href="https://winbliss17.weebly.com/">-</a>
  1472. <a href="https://winbliss18.weebly.com/">-</a>
  1473. <a href="https://winbliss19.weebly.com/">-</a>
  1474. <a href="https://winbliss20.weebly.com/">-</a></div>
  1475.          </div>
  1476.        
  1477.  
  1478.  
  1479.      </div>
  1480.      
  1481.    </div>
  1482.  </div>
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  <!-- The Modal -->
  1489.  <div id="product-modal" class="modal hide">
  1490.    <span class="js-image-modal-close product-media-modal__toggle product-modal-close">
  1491.  
  1492.  
  1493.    <svg class="icon icon-close " data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M335.36,300,581.87,53.48a25,25,0,0,0-35.35-35.35L300,264.64,53.48,18.13A25,25,0,0,0,18.13,53.48L264.64,300,18.13,546.52a25,25,0,0,0,35.35,35.35L300,335.36,546.52,581.87a25,25,0,0,0,35.35-35.35Z" fill="currentColor"/></svg>
  1494.  
  1495.  
  1496. </span>
  1497.    <img class="modal-content" id="modal-img">
  1498.  </div>
  1499.  
  1500. </section>
  1501.  
  1502.  
  1503.  <section class="product-section page-width spaced-section">
  1504.    <div id="recommend-products-content" class="wrapper"></div>
  1505.  
  1506. <script>
  1507.  console.log("Product recommendation enabled.");
  1508.  
  1509.  const url_params = new URLSearchParams(window.location.search);
  1510.  
  1511.  fetch(`/products/onpage-seo/recommend?${url_params.toString()}`, {
  1512.      method: 'GET'
  1513.    })
  1514.    .then(response => response.json())
  1515.    .then((res) => {
  1516.      if(res.status == "success"){
  1517.        console.log("Success");
  1518.        document.querySelector('#recommend-products-content').innerHTML = res.html;
  1519.        EasyStore.Currencies.convertAll()
  1520.      }
  1521.      else{
  1522.        console.log("Not Success");
  1523.      }
  1524.    })
  1525.  
  1526. </script>
  1527.  </section>
  1528.  
  1529.  
  1530.  
  1531. <script>
  1532.  let this_el = document.querySelector.bind(document),
  1533.      all_this_el = document.querySelectorAll.bind(document),
  1534.      is_variants_initial = false,
  1535.      variants = [{"id":53539578,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null}],
  1536.      variants_unavailable = variants.filter(value => value.available == false);
  1537.  
  1538.  window.onload = (event) => {
  1539.    document.getElementById("main-image-wrapper").scrollTo({left: 0, behavior: "smooth"});
  1540.  };
  1541.  
  1542.  document.addEventListener( 'DOMContentLoaded', function() {
  1543.  
  1544.    var selectCallback = function(variant, selector) {
  1545.      console.log('variant, selector',variant, selector);
  1546.      VariantSelector.onVariantChange(variant);
  1547.      if(variants_unavailable && variants_unavailable.length > 0 && VariantSelector.updateVariantsUnavailable) VariantSelector.updateVariantsUnavailable(variants,variants_unavailable);
  1548.      
  1549.      var img_wrapper = document.getElementById("main-image-wrapper");
  1550.      if(variant.featured_image != null && variant.featured_image.id && is_variants_initial){
  1551.        const img_item = document.getElementById("image-item-" + variant.featured_image.id);
  1552.        img_wrapper.insertAdjacentElement("afterbegin", img_item);
  1553.        img_wrapper.scrollTo({left: 0, behavior: "smooth"});
  1554.      }
  1555.      is_variants_initial = true
  1556.    }
  1557.  
  1558.    EasyStore.OptionSelectorsNew.create('productSelect', 'radio', {
  1559.        product: {"id":11600163,"handle":"onpage-seo","name":"onpage seo","title":"onpage seo","url":"\/products\/onpage-seo","price":50,"price_min":"50.0","price_max":"50.0","price_varies":false,"compare_at_price":100,"compare_at_price_min":"100.0","compare_at_price_max":"100.0","compare_at_price_varies":false,"available":true,"options_with_values":[],"options_by_name":[],"options":["Title"],"has_only_default_variant":true,"sole_variant_id":53539578,"variants":[{"id":53539578,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null}],"selected_variant":{"id":53539578,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"first_available_variant":{"id":53539578,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"selected_or_first_available_variant":{"id":53539578,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"img_url":"\/assets\/images\/products\/no_image.png","featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"secondary_image":{"alt":"","img_url":"","src":"","type":""},"images":[],"media":[],"featured_media":null,"metafields":[],"expires":null,"published_at":"2024-03-21T14:07:00.000+05:00","created_at":"2024-03-21T14:07:55.000+05:00","is_wishlisted":null,"content":"<link href='\/assets\/css\/froala_style.min.css' rel='stylesheet' type='text\/css'\/><div class='fr-view'><p>Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about providing value to users and delivering a seamless, informative experience across all touchpoints. This involves optimizing for mobile devices, improving site navigation, and fostering engagement through social media and other channels. By investing in SEO, businesses can increase their organic traffic, build brand awareness, and ultimately drive conversions, making it an indispensable component of any digital marketing strategy in today&#39;s competitive online landscape.<\/p>\n<a href=\"https:\/\/winbliss1.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss2.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss3.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss4.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss5.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss6.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss7.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss8.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss9.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss10.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss11.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss12.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss13.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss14.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss15.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss16.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss17.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss18.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss19.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss20.weebly.com\/\">-<\/a><\/div>","description":"<link href='\/assets\/css\/froala_style.min.css' rel='stylesheet' type='text\/css'\/><div class='fr-view'><p>Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about providing value to users and delivering a seamless, informative experience across all touchpoints. This involves optimizing for mobile devices, improving site navigation, and fostering engagement through social media and other channels. By investing in SEO, businesses can increase their organic traffic, build brand awareness, and ultimately drive conversions, making it an indispensable component of any digital marketing strategy in today&#39;s competitive online landscape.<\/p>\n<a href=\"https:\/\/winbliss1.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss2.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss3.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss4.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss5.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss6.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss7.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss8.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss9.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss10.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss11.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss12.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss13.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss14.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss15.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss16.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss17.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss18.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss19.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss20.weebly.com\/\">-<\/a><\/div>","meta_description":"Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It's not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it's about provi","brands":[],"tags":[],"vendor":null,"collections":[{"handle":"feature-on-homepage","title":"Feature on homepage"}],"view_history":{"product_id":11600163,"viewed_at":"2024-05-30T12:35:15.946+05:00"},"promotions":[]},
  1560.        onVariantSelected: selectCallback,
  1561.        enableHistoryState: false
  1562.    })
  1563.  
  1564.    //modal
  1565.    var product_modal = document.getElementById("product-modal");
  1566.    const body = document.querySelector("body");
  1567.    all_this_el('.js-image-modal-toggle').forEach(imgModal => imgModal.addEventListener("click", (event)=>{
  1568.      var modalImg = document.getElementById("modal-img");
  1569.      product_modal.classList.remove("hide");
  1570.      product_modal.classList.add("show");
  1571.      modalImg.src = imgModal.src;
  1572.      if (product_modal.classList.contains("show")) {
  1573.          // Disable scroll
  1574.          body.style.overflow = "hidden";
  1575.      }
  1576.    }))
  1577.  
  1578.    // close modal
  1579.    var modal_close = document.getElementsByClassName("product-modal-close")[0];
  1580.    modal_close.onclick = function() {
  1581.      product_modal.classList.add("hide");
  1582.      if (product_modal.classList.contains("hide")) {
  1583.          // Disable scroll
  1584.          body.style.overflow = "";
  1585.      }
  1586.    }
  1587.    window.onclick = function(event) {
  1588.    if (event.target == product_modal) {
  1589.        product_modal.classList.add("hide");
  1590.        body.style.overflow = "";
  1591.      }
  1592.    }
  1593.  
  1594.  
  1595.  } );
  1596.    
  1597.  // retrieve & store view history in local storage
  1598.  var productViewHistoryData = [];
  1599.  var storedProductViewHistory = localStorage.getItem('productViewHistory');
  1600.  
  1601.  if(storedProductViewHistory !== null) {
  1602.      productViewHistoryData = JSON.parse(storedProductViewHistory);
  1603.  }
  1604.  
  1605.  if(productViewHistoryData.length > 0) {
  1606.    var currentViewedProduct = {"product_id":11600163,"viewed_at":"2024-05-30T12:35:15.946+05:00"}
  1607.    var currentViewedAt = new Date(currentViewedProduct.viewed_at);
  1608.    var matchProductID = false;
  1609.  
  1610.    productViewHistoryData.forEach(data => {
  1611.      // Check if product_id is similar
  1612.      if (data.product_id == currentViewedProduct.product_id) {
  1613.        var previousViewedAt = new Date(data.viewed_at);
  1614.        if (currentViewedAt > previousViewedAt) {
  1615.          data.viewed_at = currentViewedProduct.viewed_at;
  1616.        }
  1617.        matchProductID = true;
  1618.      }
  1619.    });
  1620.  
  1621.    // sort "viewed_at" desc
  1622.    productViewHistoryData.sort((a, b) => {
  1623.      var viewedAt1 = new Date(a.viewed_at);
  1624.      var viewedAt2 = new Date(b.viewed_at);
  1625.      return viewedAt2 - viewedAt1;
  1626.    });
  1627.  
  1628.    if (!matchProductID) {
  1629.      productViewHistoryData.unshift(currentViewedProduct);
  1630.    }
  1631.  }
  1632.  else {
  1633.      productViewHistoryData.push({"product_id":11600163,"viewed_at":"2024-05-30T12:35:15.946+05:00"});
  1634.  }
  1635.  
  1636.  productViewHistoryData = JSON.stringify(productViewHistoryData);
  1637.  localStorage.setItem('productViewHistory', productViewHistoryData);
  1638.  
  1639.  // End - retrieve & store view history in local storage
  1640.    
  1641. </script>
  1642.  
  1643.  
  1644.  
  1645.  
  1646.    
  1647.  </main>
  1648. <style>
  1649.  .footer{
  1650.    background-color: #010517;
  1651.    color: #FEFEFE;
  1652.    --color-foreground: 254,254,254;
  1653.  }
  1654.  .footer .link--text,
  1655.  .footer .list-menu__item--link,
  1656.  .footer .footer-block__details-content .list-menu__item--link{
  1657.    color: #FEFEFE;
  1658.  }
  1659.  .footer-block__heading{
  1660.    color: #FFFFFF;
  1661.  }
  1662. </style>
  1663.  
  1664. <link rel="preload" href="https://themes.easystore.co/63057/assets/section-footer.css?t=1716787059" as="style" onload="this.onload=null;this.rel='stylesheet'">
  1665.  
  1666. <footer class="footer color-background-1">
  1667.  <div class="footer__content-top page-width">
  1668.    <div class="grid grid--1-col grid--4-col-tablet ">
  1669.      
  1670.      
  1671.      
  1672.        <div class="grid__item">
  1673.          
  1674.              <h2 class="footer-block__heading">Follow us</h2>
  1675.              <ul class="footer__list-social list-unstyled list-social footer-block__details-content" role="list">
  1676.                
  1677.                  <li class="list-social__item">
  1678.                    <a href="https://twitter.com/" class="link link--text list-social__link">
  1679.                      
  1680.  
  1681.  
  1682.    <svg class="icon icon-twitter " viewBox="0 0 22 22" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  1683.      <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
  1684.      <path d="M3 3l11.733 16h4.267l-11.733 -16z" />
  1685.      <path d="M3 19l6.768 -6.768m2.46 -2.46l6.772 -6.772" />
  1686.    </svg>
  1687.  
  1688.  
  1689.  
  1690.                    </a>
  1691.                  </li>
  1692.                
  1693.                
  1694.                  <li class="list-social__item">
  1695.                    <a href="https://facebook.com/" class="link link--text list-social__link">
  1696.                      
  1697.  
  1698.  
  1699.    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook "
  1700.    viewBox="0 0 18 18">
  1701.      <path fill="currentColor"
  1702.        d="M16.42.61c.27 0 .5.1.69.28.19.2.28.42.28.7v15.44c0 .27-.1.5-.28.69a.94.94 0 01-.7.28h-4.39v-6.7h2.25l.31-2.65h-2.56v-1.7c0-.4.1-.72.28-.93.18-.2.5-.32 1-.32h1.37V3.35c-.6-.06-1.27-.1-2.01-.1-1.01 0-1.83.3-2.45.9-.62.6-.93 1.44-.93 2.53v1.97H7.04v2.65h2.24V18H.98c-.28 0-.5-.1-.7-.28a.94.94 0 01-.28-.7V1.59c0-.27.1-.5.28-.69a.94.94 0 01.7-.28h15.44z">
  1703.      </path>
  1704.    </svg>
  1705.  
  1706.  
  1707.  
  1708.                    </a>
  1709.                  </li>
  1710.                
  1711.                
  1712.                  <li class="list-social__item">
  1713.                    <a href="https://instagram.com/" class="link link--text list-social__link">
  1714.                      
  1715.  
  1716.  
  1717.    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-instagram "
  1718.    viewBox="0 0 18 18">
  1719.      <path fill="currentColor"
  1720.        d="M8.77 1.58c2.34 0 2.62.01 3.54.05.86.04 1.32.18 1.63.3.41.17.7.35 1.01.66.3.3.5.6.65 1 .12.32.27.78.3 1.64.05.92.06 1.2.06 3.54s-.01 2.62-.05 3.54a4.79 4.79 0 01-.3 1.63c-.17.41-.35.7-.66 1.01-.3.3-.6.5-1.01.66-.31.12-.77.26-1.63.3-.92.04-1.2.05-3.54.05s-2.62 0-3.55-.05a4.79 4.79 0 01-1.62-.3c-.42-.16-.7-.35-1.01-.66-.31-.3-.5-.6-.66-1a4.87 4.87 0 01-.3-1.64c-.04-.92-.05-1.2-.05-3.54s0-2.62.05-3.54c.04-.86.18-1.32.3-1.63.16-.41.35-.7.66-1.01.3-.3.6-.5 1-.65.32-.12.78-.27 1.63-.3.93-.05 1.2-.06 3.55-.06zm0-1.58C6.39 0 6.09.01 5.15.05c-.93.04-1.57.2-2.13.4-.57.23-1.06.54-1.55 1.02C1 1.96.7 2.45.46 3.02c-.22.56-.37 1.2-.4 2.13C0 6.1 0 6.4 0 8.77s.01 2.68.05 3.61c.04.94.2 1.57.4 2.13.23.58.54 1.07 1.02 1.56.49.48.98.78 1.55 1.01.56.22 1.2.37 2.13.4.94.05 1.24.06 3.62.06 2.39 0 2.68-.01 3.62-.05.93-.04 1.57-.2 2.13-.41a4.27 4.27 0 001.55-1.01c.49-.49.79-.98 1.01-1.56.22-.55.37-1.19.41-2.13.04-.93.05-1.23.05-3.61 0-2.39 0-2.68-.05-3.62a6.47 6.47 0 00-.4-2.13 4.27 4.27 0 00-1.02-1.55A4.35 4.35 0 0014.52.46a6.43 6.43 0 00-2.13-.41A69 69 0 008.77 0z">
  1721.      </path>
  1722.      <path fill="currentColor"
  1723.        d="M8.8 4a4.5 4.5 0 100 9 4.5 4.5 0 000-9zm0 7.43a2.92 2.92 0 110-5.85 2.92 2.92 0 010 5.85zM13.43 5a1.05 1.05 0 100-2.1 1.05 1.05 0 000 2.1z">
  1724.      </path>
  1725.    </svg>
  1726.  
  1727.  
  1728.  
  1729.                    </a>
  1730.                  </li>
  1731.                
  1732.                
  1733.                  <li class="list-social__item">
  1734.                    <a href="https://tiktok.com/" class="link link--text list-social__link">
  1735.                      
  1736.  
  1737.  
  1738.    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-tiktok " width="16"
  1739.    height="18" fill="none" xmlns="http://www.w3.org/2000/svg">
  1740.      <path
  1741.        d="M8.02 0H11s-.17 3.82 4.13 4.1v2.95s-2.3.14-4.13-1.26l.03 6.1a5.52 5.52 0 11-5.51-5.52h.77V9.4a2.5 2.5 0 101.76 2.4L8.02 0z"
  1742.        fill="currentColor">
  1743.      </path>
  1744.    </svg>
  1745.  
  1746.  
  1747.  
  1748.                    </a>
  1749.                  </li>
  1750.                
  1751.                
  1752.                  <li class="list-social__item">
  1753.                    <a href="https://wa.me/" class="link link--text list-social__link">
  1754.                      
  1755.  
  1756.  
  1757.    <svg class="icon icon-whatsapp " fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 750"><path d="M703.5,195.64A371,371,0,0,0,572,56C523.89,26,471.51,8.4,415.21,2.51A370.48,370.48,0,0,0,316.5,5.42,364,364,0,0,0,215.23,37.47a369,369,0,0,0-132.68,108Q17.36,230.17,7,336.63A370.11,370.11,0,0,0,53.42,554.94a7.23,7.23,0,0,1,.61,4.9Q36.48,624.6,18.7,689.27C13.24,709.19,7.75,729.1,2.14,749.5c1.23-.26,1.93-.36,2.61-.55q95.75-25.11,191.54-50.2a8.43,8.43,0,0,1,5.19.61c12.79,5.8,25.28,12.34,38.29,17.59A370.28,370.28,0,0,0,666.09,604q69.06-86.36,80-196.47A370.36,370.36,0,0,0,743,311.86,361,361,0,0,0,703.5,195.64ZM684.64,388c-3.6,65.27-25.48,123.75-66.06,174.9-44.89,56.63-102.85,93.24-173.19,109.84a297.41,297.41,0,0,1-91.27,7A305.68,305.68,0,0,1,215.31,635a17.54,17.54,0,0,0-15.2-2.14c-35.5,9.58-71.1,18.74-106.66,28-.49.13-1,.21-2.14.45,1.72-6.37,3.29-12.22,4.89-18Q109,596.7,121.66,550.07a7.12,7.12,0,0,0-1-5.07c-12.37-19.32-23.31-39.25-31.6-60.64A309,309,0,0,1,70.4,410.63c-6.11-49.35-.93-97.44,16.1-144.15,57.86-160.1,234.55-243,394.65-185.11a308.31,308.31,0,0,1,120.2,79.18c34.9,37.19,59.32,80.31,72.81,129.53A304.75,304.75,0,0,1,684.64,388Z"/><path d="M556,454.42c-13.84-6.52-27.43-13.55-41.24-20.12-11.47-5.46-23-10.89-34.73-15.69-9.1-3.73-13.09-1.72-19.12,6.06-9.39,12.09-19.09,23.95-28.89,35.71-4.7,5.63-9.47,6.79-16.1,3.8-12.32-5.56-24.82-10.9-36.58-17.51-39.6-22.29-69.59-54.3-92.67-93.11-4.87-8.2-4.3-12.16,2.14-19.13,9.07-9.9,18.4-19.63,24.09-32.12a17.42,17.42,0,0,0,.47-14.67c-9.55-23-19-46-28.75-68.92a75.82,75.82,0,0,0-7-12.7c-2.56-3.82-6.6-5.49-11.28-5.36H255.78v-.56c-5.48.29-11,.11-16.39,1-8.66,1.37-15,6.75-20.95,12.94-25.46,26.48-34.58,57.89-28.66,93.83a145.64,145.64,0,0,0,20.75,53.75C220.48,377.5,231.32,393,242.65,408a435.09,435.09,0,0,0,70.53,73.19c31.48,26,67,44.54,105.56,57.58,16.1,5.44,32.08,11.08,49.36,11.42,11.52.22,23,.08,34.16-3.22a110.77,110.77,0,0,0,42.1-23.61c5.48-4.81,10.48-10.18,13.19-17a110.56,110.56,0,0,0,7.57-37.2C565.27,461.93,562.42,457.42,556,454.42Z"/></svg>
  1758.  
  1759.  
  1760.  
  1761.                    </a>
  1762.                  </li>
  1763.                
  1764.                
  1765.                  <li class="list-social__item">
  1766.                    <a href="https://line.com/" class="link link--text list-social__link">
  1767.                      
  1768.  
  1769.  
  1770.    <svg class="icon icon-line-footer " fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 750"><path d="M375,.5C168.17.5.5,168.17.5,375S168.17,749.5,375,749.5,749.5,581.83,749.5,375,581.83.5,375,.5ZM570.75,476.91C518.48,537.06,401.6,610.33,375,621.53s-22.66-7.13-21.57-13.42c.63-3.76,3.55-21.33,3.55-21.33.83-6.36,1.66-16.23-.83-22.52-2.81-7-13.83-10.54-21.95-12.29C214.51,536.14,125.9,452.45,125.9,352.53,125.9,241,237.64,150.38,375,150.38s249.1,90.68,249.1,202.15h0C624.14,397.14,606.85,437.32,570.75,476.91Z"/><polygon points="324.38 298.65 324.38 298.65 324.38 298.65 324.38 298.65"/><path d="M324.38,298.65H306.91a4.86,4.86,0,0,0-4.86,4.85V412a4.86,4.86,0,0,0,4.86,4.85h17.47a4.86,4.86,0,0,0,4.85-4.85V303.5A4.86,4.86,0,0,0,324.38,298.65Z"/><path d="M444.67,298.65h-17.5a4.85,4.85,0,0,0-4.85,4.85V368l-49.73-67.17a4.57,4.57,0,0,0-.38-.49,2.76,2.76,0,0,0-.29-.3l-.09-.09a2.65,2.65,0,0,0-.26-.21l-.12-.1-.25-.18-.15-.08-.26-.14-.15-.08-.28-.12-.16,0-.28-.1-.18,0-.27-.06H351.08a4.85,4.85,0,0,0-4.85,4.84V412a4.85,4.85,0,0,0,4.85,4.85h17.48a4.85,4.85,0,0,0,4.85-4.85V347.54l49.81,67.26a5.15,5.15,0,0,0,1.22,1.2h.06l.29.18.14.07.24.12.23.1.15,0,.32.11H426a4.69,4.69,0,0,0,1.24.16h17.48a4.85,4.85,0,0,0,4.86-4.84h0V303.5A4.87,4.87,0,0,0,444.67,298.65Z"/><path d="M282.26,389.67h0l0,0H234.79V303.5a4.85,4.85,0,0,0-4.83-4.85H212.47a4.84,4.84,0,0,0-4.85,4.84h0V412a4.74,4.74,0,0,0,1.35,3.32.27.27,0,0,0,.07.08l.07.07a4.81,4.81,0,0,0,3.33,1.35h69.81a4.84,4.84,0,0,0,4.84-4.84h0V394.52A4.84,4.84,0,0,0,282.26,389.67Z"/><path d="M541.16,371.34a4.85,4.85,0,0,0,4.85-4.85h0V349a4.85,4.85,0,0,0-4.84-4.85H493.72V325.84l47.42,0A4.83,4.83,0,0,0,546,321V303.5a4.85,4.85,0,0,0-4.84-4.86H471.34A4.81,4.81,0,0,0,468,300l-.05.05-.08.09a4.82,4.82,0,0,0-1.34,3.33V412a4.77,4.77,0,0,0,1.35,3.33l.07.07.07.07a4.8,4.8,0,0,0,3.32,1.36h69.81A4.85,4.85,0,0,0,546,412h0V394.5a4.85,4.85,0,0,0-4.84-4.85H493.72V371.34Z"/></svg>
  1771.  
  1772.  
  1773.  
  1774.                    </a>
  1775.                  </li>
  1776.                
  1777.                
  1778.                  <li class="list-social__item">
  1779.                    <a href="https://wechat.com/" class="link link--text list-social__link">
  1780.                      
  1781.  
  1782.  
  1783.    <svg class="icon icon-wechat " fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 750"><path d="M372.31,344.63c30-25,64.6-40.77,102.63-49.15a300.24,300.24,0,0,1,45.43-6.61c5.81-.38,11.6-.81,17.41-1.1,1.9-.1,2.82-.61,2.47-2.74s-.43-4.35-.63-6.54a225,225,0,0,0-7.31-40.71c-10.79-38.76-31.69-71.57-59.89-99.89C443.56,108.89,409.5,88,371.11,74.1a288,288,0,0,0-92.8-17.38,214.68,214.68,0,0,0-24.59.6c-13.23,1.22-26.59,2.34-39.62,4.87-27.42,5.32-53.55,14.74-78.56,27.19C81.1,116.52,40.88,157.11,17.8,213.92c-10,24.63-16.23,50.2-17.22,76.79a268,268,0,0,0,1.54,35.94c2,20.14,7.8,39.35,16.06,57.79,16.49,36.82,41.46,67,72.92,91.91,5.45,4.32,11.08,8.43,16.67,12.58,5,3.74,7.24,8.41,5.45,14.69-1.45,5-2.91,10.06-4.07,15.16-4.66,21.08-9.21,42.18-13.79,63.28-.68,3.14-1.33,6.31-2.17,10.23l4.22-2.53c25-15.68,50.07-31.42,75.19-47,5.66-3.53,11.39-7.13,17.5-9.66,8.26-3.45,17.1-2,25.72-1.11,10.89,1.14,21.75,2.45,32.56,3.79,11.34,1.4,22.65,2.92,34,4.38,4.22.54,8.47,1,13,1.58V538.6c-.54-9-1.36-18.05-1.62-27.1a207.12,207.12,0,0,1,5.51-54.13C310.33,411.15,336.31,374.6,372.31,344.63Zm5.22-135.5a40,40,0,1,1,.23,80.06c-23,0-40.94-17.52-40.93-39.93C336.85,227.31,355.16,209.25,377.53,209.13Zm-199.24,80c-22.67,0-40.12-17.42-40.18-40.2-.06-22.15,17.59-39.69,40-39.8s41,18.18,41,40.45C219.19,271.27,200.73,289.12,178.29,289.17Z"/><path d="M741.59,452.47c-17.42-53.21-52.3-91.29-102.2-115.63-37.18-18.16-76.75-25.44-118.12-23.14a233.78,233.78,0,0,0-42.61,6.1c-46.81,11.45-86.29,35.2-117,72.49-29.88,36.26-43.68,77.93-39.29,125a162.57,162.57,0,0,0,20.91,65.36c17.84,31.48,42.83,56.1,73.27,75.36a201,201,0,0,0,61.39,25.71,231.39,231.39,0,0,0,41.51,5.7c14.43.74,28.84.56,43-2.4,11.91-2.47,23.58-6,35.4-8.94,13.89-3.42,27.81-3.75,41.31,1.49,9.47,3.67,18.62,8.2,27.9,12.36,1,.45,2,1,3,1.43l.45-.57-1.22-3.17A46,46,0,0,1,666.47,666c1.52-9.87,6.35-18.15,13-25.33,5.49-6,11.45-11.48,17.3-17.11,30.78-29.85,48.84-65.91,52.23-108.8A158.69,158.69,0,0,0,741.59,452.47ZM435.15,478.14a34.86,34.86,0,1,1,.74-69.71h0c19.66.06,34.87,15.6,34.76,35.51C470.54,463,454.75,478.26,435.15,478.14ZM596.63,478c-19.58-.43-34.46-15.65-34.16-35.13a34.6,34.6,0,0,1,34.88-34.32h.12c19,0,34,15.64,34,35.3A34.23,34.23,0,0,1,597.17,478Z"/></svg>
  1784.  
  1785.  
  1786.  
  1787.                    </a>
  1788.                  </li>
  1789.                
  1790.                
  1791.                  <li class="list-social__item">
  1792.                    <a href="https://youtube.com/" class="link link--text list-social__link">
  1793.                      
  1794.  
  1795.  
  1796.    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-youtube "
  1797.    viewBox="0 0 100 70">
  1798.      <path
  1799.        d="M98 11c2 7.7 2 24 2 24s0 16.3-2 24a12.5 12.5 0 01-9 9c-7.7 2-39 2-39 2s-31.3 0-39-2a12.5 12.5 0 01-9-9c-2-7.7-2-24-2-24s0-16.3 2-24c1.2-4.4 4.6-7.8 9-9 7.7-2 39-2 39-2s31.3 0 39 2c4.4 1.2 7.8 4.6 9 9zM40 50l26-15-26-15v30z"
  1800.        fill="currentColor">
  1801.      </path>
  1802.    </svg>
  1803.  
  1804.  
  1805.  
  1806.                    </a>
  1807.                  </li>
  1808.                
  1809.                
  1810.              </ul>
  1811.            
  1812.        </div>
  1813.      
  1814.      
  1815.      
  1816.        <div class="grid__item">
  1817.          
  1818.              <h2 class="footer-block__heading">We accept</h2>
  1819.              <div class="footer-block__details-content footer__payment">
  1820.                <ul class="list list-payment" role="list">
  1821.                  
  1822.                    <li class="list-payment__item">
  1823.                      
  1824.  
  1825.  
  1826.    <svg class="icon icon--full-color " viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img"
  1827.    width="38" height="24" aria-labelledby="pi-visa">
  1828.      <path opacity=".07"
  1829.        d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"></path>
  1830.      <path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32">
  1831.      </path>
  1832.      <path
  1833.        d="M28.3 10.1H28c-.4 1-.7 1.5-1 3h1.9c-.3-1.5-.3-2.2-.6-3zm2.9 5.9h-1.7c-.1 0-.1 0-.2-.1l-.2-.9-.1-.2h-2.4c-.1 0-.2 0-.2.2l-.3.9c0 .1-.1.1-.1.1h-2.1l.2-.5L27 8.7c0-.5.3-.7.8-.7h1.5c.1 0 .2 0 .2.2l1.4 6.5c.1.4.2.7.2 1.1.1.1.1.1.1.2zm-13.4-.3l.4-1.8c.1 0 .2.1.2.1.7.3 1.4.5 2.1.4.2 0 .5-.1.7-.2.5-.2.5-.7.1-1.1-.2-.2-.5-.3-.8-.5-.4-.2-.8-.4-1.1-.7-1.2-1-.8-2.4-.1-3.1.6-.4.9-.8 1.7-.8 1.2 0 2.5 0 3.1.2h.1c-.1.6-.2 1.1-.4 1.7-.5-.2-1-.4-1.5-.4-.3 0-.6 0-.9.1-.2 0-.3.1-.4.2-.2.2-.2.5 0 .7l.5.4c.4.2.8.4 1.1.6.5.3 1 .8 1.1 1.4.2.9-.1 1.7-.9 2.3-.5.4-.7.6-1.4.6-1.4 0-2.5.1-3.4-.2-.1.2-.1.2-.2.1zm-3.5.3c.1-.7.1-.7.2-1 .5-2.2 1-4.5 1.4-6.7.1-.2.1-.3.3-.3H18c-.2 1.2-.4 2.1-.7 3.2-.3 1.5-.6 3-1 4.5 0 .2-.1.2-.3.2M5 8.2c0-.1.2-.2.3-.2h3.4c.5 0 .9.3 1 .8l.9 4.4c0 .1 0 .1.1.2 0-.1.1-.1.1-.1l2.1-5.1c-.1-.1 0-.2.1-.2h2.1c0 .1 0 .1-.1.2l-3.1 7.3c-.1.2-.1.3-.2.4-.1.1-.3 0-.5 0H9.7c-.1 0-.2 0-.2-.2L7.9 9.5c-.2-.2-.5-.5-.9-.6-.6-.3-1.7-.5-1.9-.5L5 8.2z"
  1834.        fill="#142688"></path>
  1835.    </svg>
  1836.  
  1837.  
  1838.  
  1839.                    </li>
  1840.                  
  1841.                  
  1842.                    <li class="list-payment__item">
  1843.                      
  1844.  
  1845.  
  1846.    <svg class="icon icon--full-color " viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img"
  1847.    width="38" height="24" aria-labelledby="pi-master">
  1848.      <path opacity=".07"
  1849.        d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"></path>
  1850.      <path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32">
  1851.      </path>
  1852.      <circle fill="#EB001B" cx="15" cy="12" r="7"></circle>
  1853.      <circle fill="#F79E1B" cx="23" cy="12" r="7"></circle>
  1854.      <path fill="#FF5F00"
  1855.        d="M22 12c0-2.4-1.2-4.5-3-5.7-1.8 1.3-3 3.4-3 5.7s1.2 4.5 3 5.7c1.8-1.2 3-3.3 3-5.7z"></path>
  1856.    </svg>
  1857.  
  1858.  
  1859.  
  1860.                    </li>
  1861.                  
  1862.                  
  1863.                    <li class="list-payment__item">
  1864.                      
  1865.  
  1866.  
  1867.    <svg class="icon icon--full-color " xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24"
  1868.      width="38" height="24" aria-labelledby="pi-american_express">
  1869.      <g fill="none">
  1870.        <path fill="#000"
  1871.          d="M35,0 L3,0 C1.3,0 0,1.3 0,3 L0,21 C0,22.7 1.4,24 3,24 L35,24 C36.7,24 38,22.7 38,21 L38,3 C38,1.3 36.6,0 35,0 Z"
  1872.          opacity=".07"></path>
  1873.        <path fill="#006FCF"
  1874.          d="M35,1 C36.1,1 37,1.9 37,3 L37,21 C37,22.1 36.1,23 35,23 L3,23 C1.9,23 1,22.1 1,21 L1,3 C1,1.9 1.9,1 3,1 L35,1">
  1875.        </path>
  1876.        <path fill="#FFF"
  1877.          d="M8.971,10.268 L9.745,12.144 L8.203,12.144 L8.971,10.268 Z M25.046,10.346 L22.069,10.346 L22.069,11.173 L24.998,11.173 L24.998,12.412 L22.075,12.412 L22.075,13.334 L25.052,13.334 L25.052,14.073 L27.129,11.828 L25.052,9.488 L25.046,10.346 L25.046,10.346 Z M10.983,8.006 L14.978,8.006 L15.865,9.941 L16.687,8 L27.057,8 L28.135,9.19 L29.25,8 L34.013,8 L30.494,11.852 L33.977,15.68 L29.143,15.68 L28.065,14.49 L26.94,15.68 L10.03,15.68 L9.536,14.49 L8.406,14.49 L7.911,15.68 L4,15.68 L7.286,8 L10.716,8 L10.983,8.006 Z M19.646,9.084 L17.407,9.084 L15.907,12.62 L14.282,9.084 L12.06,9.084 L12.06,13.894 L10,9.084 L8.007,9.084 L5.625,14.596 L7.18,14.596 L7.674,13.406 L10.27,13.406 L10.764,14.596 L13.484,14.596 L13.484,10.661 L15.235,14.602 L16.425,14.602 L18.165,10.673 L18.165,14.603 L19.623,14.603 L19.647,9.083 L19.646,9.084 Z M28.986,11.852 L31.517,9.084 L29.695,9.084 L28.094,10.81 L26.546,9.084 L20.652,9.084 L20.652,14.602 L26.462,14.602 L28.076,12.864 L29.624,14.602 L31.499,14.602 L28.987,11.852 L28.986,11.852 Z">
  1878.        </path>
  1879.      </g>
  1880.    </svg>
  1881.  
  1882.  
  1883.  
  1884.                    </li>
  1885.                  
  1886.                  
  1887.                    <li class="list-payment__item">
  1888.                      
  1889.  
  1890.  
  1891.    <svg class="icon icon--full-color " viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38"
  1892.      height="24" role="img" aria-labelledby="pi-paypal">
  1893.      <path opacity=".07"
  1894.        d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"></path>
  1895.      <path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32">
  1896.      </path>
  1897.      <path fill="#003087"
  1898.        d="M23.9 8.3c.2-1 0-1.7-.6-2.3-.6-.7-1.7-1-3.1-1h-4.1c-.3 0-.5.2-.6.5L14 15.6c0 .2.1.4.3.4H17l.4-3.4 1.8-2.2 4.7-2.1z">
  1899.      </path>
  1900.      <path fill="#3086C8"
  1901.        d="M23.9 8.3l-.2.2c-.5 2.8-2.2 3.8-4.6 3.8H18c-.3 0-.5.2-.6.5l-.6 3.9-.2 1c0 .2.1.4.3.4H19c.3 0 .5-.2.5-.4v-.1l.4-2.4v-.1c0-.2.3-.4.5-.4h.3c2.1 0 3.7-.8 4.1-3.2.2-1 .1-1.8-.4-2.4-.1-.5-.3-.7-.5-.8z">
  1902.      </path>
  1903.      <path fill="#012169"
  1904.        d="M23.3 8.1c-.1-.1-.2-.1-.3-.1-.1 0-.2 0-.3-.1-.3-.1-.7-.1-1.1-.1h-3c-.1 0-.2 0-.2.1-.2.1-.3.2-.3.4l-.7 4.4v.1c0-.3.3-.5.6-.5h1.3c2.5 0 4.1-1 4.6-3.8v-.2c-.1-.1-.3-.2-.5-.2h-.1z">
  1905.      </path>
  1906.    </svg>
  1907.  
  1908.  
  1909.  
  1910.                    </li>
  1911.                  
  1912.                  
  1913.                    <li class="list-payment__item">
  1914.                      
  1915.  
  1916.  
  1917.    <svg class="icon icon--full-color " viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img"
  1918.      width="38" height="24" aria-labelledby="pi-diners_club">
  1919.      <path opacity=".07"
  1920.        d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"></path>
  1921.      <path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32">
  1922.      </path>
  1923.      <path
  1924.        d="M12 12v3.7c0 .3-.2.3-.5.2-1.9-.8-3-3.3-2.3-5.4.4-1.1 1.2-2 2.3-2.4.4-.2.5-.1.5.2V12zm2 0V8.3c0-.3 0-.3.3-.2 2.1.8 3.2 3.3 2.4 5.4-.4 1.1-1.2 2-2.3 2.4-.4.2-.4.1-.4-.2V12zm7.2-7H13c3.8 0 6.8 3.1 6.8 7s-3 7-6.8 7h8.2c3.8 0 6.8-3.1 6.8-7s-3-7-6.8-7z"
  1925.        fill="#3086C8"></path>
  1926.    </svg>
  1927.  
  1928.  
  1929.  
  1930.                    </li>
  1931.                  
  1932.                  
  1933.                    <li class="list-payment__item">
  1934.                      
  1935.  
  1936.  
  1937.    <svg class="icon icon--full-color " viewBox="0 0 38 24" width="38" height="24" role="img"
  1938.      aria-labelledby="pi-discover" fill="none" xmlns="http://www.w3.org/2000/svg">
  1939.      <path fill="#000" opacity=".07"
  1940.        d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"></path>
  1941.      <path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32z" fill="#fff">
  1942.      </path>
  1943.      <path
  1944.        d="M3.57 7.16H2v5.5h1.57c.83 0 1.43-.2 1.96-.63.63-.52 1-1.3 1-2.11-.01-1.63-1.22-2.76-2.96-2.76zm1.26 4.14c-.34.3-.77.44-1.47.44h-.29V8.1h.29c.69 0 1.11.12 1.47.44.37.33.59.84.59 1.37 0 .53-.22 1.06-.59 1.39zm2.19-4.14h1.07v5.5H7.02v-5.5zm3.69 2.11c-.64-.24-.83-.4-.83-.69 0-.35.34-.61.8-.61.32 0 .59.13.86.45l.56-.73c-.46-.4-1.01-.61-1.62-.61-.97 0-1.72.68-1.72 1.58 0 .76.35 1.15 1.35 1.51.42.15.63.25.74.31.21.14.32.34.32.57 0 .45-.35.78-.83.78-.51 0-.92-.26-1.17-.73l-.69.67c.49.73 1.09 1.05 1.9 1.05 1.11 0 1.9-.74 1.9-1.81.02-.89-.35-1.29-1.57-1.74zm1.92.65c0 1.62 1.27 2.87 2.9 2.87.46 0 .86-.09 1.34-.32v-1.26c-.43.43-.81.6-1.29.6-1.08 0-1.85-.78-1.85-1.9 0-1.06.79-1.89 1.8-1.89.51 0 .9.18 1.34.62V7.38c-.47-.24-.86-.34-1.32-.34-1.61 0-2.92 1.28-2.92 2.88zm12.76.94l-1.47-3.7h-1.17l2.33 5.64h.58l2.37-5.64h-1.16l-1.48 3.7zm3.13 1.8h3.04v-.93h-1.97v-1.48h1.9v-.93h-1.9V8.1h1.97v-.94h-3.04v5.5zm7.29-3.87c0-1.03-.71-1.62-1.95-1.62h-1.59v5.5h1.07v-2.21h.14l1.48 2.21h1.32l-1.73-2.32c.81-.17 1.26-.72 1.26-1.56zm-2.16.91h-.31V8.03h.33c.67 0 1.03.28 1.03.82 0 .55-.36.85-1.05.85z"
  1945.        fill="#231F20"></path>
  1946.      <path d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint0_linear)">
  1947.      </path>
  1948.      <path opacity=".65" d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z"
  1949.        fill="url(#pi-paint1_linear)"></path>
  1950.      <path
  1951.        d="M36.57 7.506c0-.1-.07-.15-.18-.15h-.16v.48h.12v-.19l.14.19h.14l-.16-.2c.06-.01.1-.06.1-.13zm-.2.07h-.02v-.13h.02c.06 0 .09.02.09.06 0 .05-.03.07-.09.07z"
  1952.        fill="#231F20"></path>
  1953.      <path
  1954.        d="M36.41 7.176c-.23 0-.42.19-.42.42 0 .23.19.42.42.42.23 0 .42-.19.42-.42 0-.23-.19-.42-.42-.42zm0 .77c-.18 0-.34-.15-.34-.35 0-.19.15-.35.34-.35.18 0 .33.16.33.35 0 .19-.15.35-.33.35z"
  1955.        fill="#231F20"></path>
  1956.      <path d="M37 12.984S27.09 19.873 8.976 23h26.023a2 2 0 002-1.984l.024-3.02L37 12.985z" fill="#F48120">
  1957.      </path>
  1958.      <defs>
  1959.        <linearGradient id="pi-paint0_linear" x1="21.657" y1="12.275" x2="19.632" y2="9.104"
  1960.          gradientUnits="userSpaceOnUse">
  1961.          <stop stop-color="#F89F20"></stop>
  1962.          <stop offset=".25" stop-color="#F79A20"></stop>
  1963.          <stop offset=".533" stop-color="#F68D20"></stop>
  1964.          <stop offset=".62" stop-color="#F58720"></stop>
  1965.          <stop offset=".723" stop-color="#F48120"></stop>
  1966.          <stop offset="1" stop-color="#F37521"></stop>
  1967.        </linearGradient>
  1968.        <linearGradient id="pi-paint1_linear" x1="21.338" y1="12.232" x2="18.378" y2="6.446"
  1969.          gradientUnits="userSpaceOnUse">
  1970.          <stop stop-color="#F58720"></stop>
  1971.          <stop offset=".359" stop-color="#E16F27"></stop>
  1972.          <stop offset=".703" stop-color="#D4602C"></stop>
  1973.          <stop offset=".982" stop-color="#D05B2E"></stop>
  1974.        </linearGradient>
  1975.      </defs>
  1976.    </svg>
  1977.  
  1978.  
  1979.  
  1980.                    </li>
  1981.                  
  1982.              </div>
  1983.              
  1984.        </div>
  1985.      
  1986.      
  1987.      
  1988.        <div class="grid__item">
  1989.          
  1990.              <h2 class="footer-block__heading">
  1991.                Quick links
  1992.              </h2>
  1993.              <ul class="footer-block__details-content list-unstyled">
  1994.                
  1995.                <li>
  1996.                  <a href="/store-locator"  class="link link--text list-menu__item list-menu__item--link">
  1997.                    Location
  1998.                  </a>
  1999.                </li>
  2000.                
  2001.                
  2002.              </ul>
  2003.            
  2004.        </div>
  2005.      
  2006.      
  2007.      
  2008.        <div class="grid__item">
  2009.          
  2010.              <h2 class="footer-block__heading">Our mission</h2>
  2011.              <div class="footer-block__details-content">
  2012.                <p>Quality materials, good designs, craftsmanship and sustainability.</p>
  2013.              </div>
  2014.            
  2015.        </div>
  2016.      
  2017.    </div>
  2018.  </div>
  2019.  <div class="footer__content-bottom">
  2020.    <div class="footer__content-bottom-wrapper page-width">
  2021.      <div class="footer__column footer__column--info">
  2022.  
  2023.        
  2024.  
  2025.  
  2026.  
  2027.        
  2028.        <div class="footer__copyright caption">
  2029.          <div class="copyright__content">© 2024 fabulous. Powered by <a href="http://www.easystore.co/?utm_source=storefront&utm_medium=sf_ref_footer&utm_campaign=sf_ref">EasyStore</a></div>
  2030.        </div>
  2031.  
  2032.        <div class="footer__copyright caption">
  2033.          
  2034.            <div>
  2035.            
  2036.            
  2037.              
  2038.                <a href="/legal/terms-of-service">Terms of Service</a>
  2039.              
  2040.              
  2041.            
  2042.              
  2043.                | <a href="/legal/privacy-policy">Privacy Policy</a>
  2044.              
  2045.              
  2046.            
  2047.              
  2048.                | <a href="/legal/refund-policy">Refund Policy</a>
  2049.              
  2050.              
  2051.            
  2052.            </div>
  2053.        
  2054.        </div>
  2055.        
  2056.      </div>
  2057.    </div>
  2058.  </div>
  2059. </footer>
  2060.  
  2061.  
  2062.  
  2063.  
  2064.  
  2065.  <script>
  2066.  EasyStore.Currencies.init([{"name":"US Dollar","code":"USD","rate":"1.0","format_prefix":"$","format_suffix":null,"format_decimals":2,"thousand_separator":",","is_primary":true}])
  2067. </script>
  2068.  
  2069.  
  2070.  
  2071.  <script>
  2072.    let page_template = 'product';
  2073.  
  2074.    if(document.querySelector('.currency-picker')) EasyStore.Currencies.change(document.querySelector('.currency-picker').value)
  2075.  
  2076.    document.querySelectorAll('.currency-picker').forEach((el)=>{
  2077.      el.addEventListener('change',(event)=>{
  2078.        console.log(event.target.value);
  2079.        EasyStore.Currencies.change(event.target.value)
  2080.  
  2081.        document.querySelectorAll('[name=currencies],[name=current_currency]').forEach((el)=>{
  2082.          el.value = event.target.value
  2083.        })
  2084.  
  2085.        if(page_template == 'cart') location.reload();
  2086.      })
  2087.    })
  2088.  </script>
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  <script>
  2094.  
  2095.    window.variantStrings = {
  2096.      addToCart: `Add to Cart`,
  2097.      soldOut: `Sold Out`,
  2098.      unavailable: `Unavailable`,
  2099.    }
  2100.  
  2101.    window.accessibilityStrings = {
  2102.      shareSuccess: `Link copied to clipboard`,
  2103.    }
  2104.  </script>
  2105.  <script>
  2106.  
  2107.  /*
  2108.  
  2109.    ------
  2110.    Events
  2111.    ------
  2112.  
  2113.    pages/viewed
  2114.  
  2115.    customers/signup
  2116.  
  2117.    customers/login
  2118.  
  2119.    products/searched
  2120.  
  2121.    collections/viewed
  2122.  
  2123.    products/viewed
  2124.  
  2125.    products/shared
  2126.  
  2127.    wishlists/item_added
  2128.  
  2129.    carts/items_added
  2130.  
  2131.    carts/viewed
  2132.  
  2133.    carts/item_removed
  2134.  
  2135.    checkouts/initiated
  2136.  
  2137.    checkouts/shipping_info_added
  2138.  
  2139.    checkouts/payment_info_added
  2140.  
  2141.    checkouts/completed
  2142.  
  2143.    orders/placed
  2144.  
  2145.    orders/purchased
  2146.  
  2147.    payments/captured
  2148.  
  2149.    payments/failed
  2150.  
  2151.  */
  2152.  
  2153.  let latest_cart = null
  2154.  
  2155.  const _selector = document.querySelector.bind(document),
  2156.        _selectorAll = document.querySelectorAll.bind(document)
  2157.  
  2158.  document.addEventListener('DOMContentLoaded', (event) => {
  2159.  
  2160.    const default_currency = getCookie("currency")
  2161.    const customer_id = window.__st.cid
  2162.    const template    = window.__st.p
  2163.  
  2164.    onPageView()
  2165.  
  2166.    //-----------------------//
  2167.    //        Configs        //
  2168.    //-----------------------//
  2169.  
  2170.    window.dataLayer = window.dataLayer || []
  2171.  
  2172.    Array.prototype.last = Array.prototype.last || function() {
  2173.      return this[this.length - 1] || null
  2174.    }
  2175.  
  2176.    Array.prototype.first = Array.prototype.first || function() {
  2177.      return this[0] || null
  2178.    }
  2179.  
  2180.    //----------------------//
  2181.    //       Triggers       //
  2182.    //----------------------//
  2183.  
  2184.    const XHR = window.XMLHttpRequest
  2185.  
  2186.    function xhr() {
  2187.  
  2188.      const xhr = new XHR()
  2189.  
  2190.      xhr.addEventListener("readystatechange", function() {
  2191.  
  2192.        if(xhr.readyState != 4) return
  2193.  
  2194.        try {
  2195.  
  2196.          const response_url = xhr.responseURL
  2197.  
  2198.          if (response_url.includes("cart/add")) {
  2199.  
  2200.            latest_cart = JSON.parse(xhr.response)
  2201.  
  2202.            onCartItemsAdded() // ok
  2203.  
  2204.          }
  2205.  
  2206.          if (response_url.includes("cart/remove_item_quantity")) {
  2207.  
  2208.            latest_cart = JSON.parse(xhr.response)
  2209.  
  2210.            onCartItemRemoved() // ok
  2211.  
  2212.          }
  2213.  
  2214.          if (response_url.includes("new_cart?retrieve=true")) {
  2215.  
  2216.            result = JSON.parse(xhr.response)
  2217.  
  2218.            if (result.cart) {
  2219.              latest_cart = result.cart
  2220.            }
  2221.  
  2222.          }
  2223.  
  2224.        } catch(e) {
  2225.  
  2226.          console.error(e)
  2227.  
  2228.        }
  2229.  
  2230.      }, false);
  2231.  
  2232.      return xhr
  2233.  
  2234.    }
  2235.  
  2236.    window.XMLHttpRequest = xhr
  2237.  
  2238.    switch(template) {
  2239.  
  2240.      case 'cart': onCartView() // ok
  2241.      break
  2242.      case 'product': onProductView() // ok
  2243.      break
  2244.      case 'collection': onCollectionView() // ok
  2245.      break
  2246.      case 'blog': onBlogView()
  2247.      break
  2248.      case 'article': onArticleView()
  2249.      break
  2250.      case 'payment_completed': onOrderPlace()
  2251.      break
  2252.      case 'payment_fail': onPaymentFail()
  2253.      break
  2254.  
  2255.    }
  2256.  
  2257.    // _selector('form[action="/checkout/payments"]').addEventListener("submit", onPaymentInfoAdded(_selector('form[action="/checkout/payments"]')))
  2258.    if (_selector('form[action="/checkout/detail"]'))                            _selector('form[action="/checkout/detail"]').addEventListener("submit", ()=>{onShippingInfoAdded(_selector('form[action="/checkout/detail"]'))})  // ok
  2259.    if (_selector('form[action="/checkout/shipping"]'))                          _selector('form[action="/checkout/shipping"]').addEventListener("submit", ()=>{onShippingInfoAdded(_selector('form[action="/checkout/shipping"]'))})  // ok
  2260.    if (_selector('form[action="/account/register"]'))                           _selector('form[action="/account/register"]').addEventListener("submit", onSignUp)  // ok
  2261.    if (_selector('form[action="/account/login"]'))                              _selector('form[action="/account/login"]').addEventListener("submit", onLogin)  // ok
  2262.    if (_selector('form[action="/search"]'))                                     _selector('form[action="/search"]').addEventListener("submit", onProductSearch()) // ok
  2263.    if (_selector('#line-login-btn'))                                            _selector('#line-login-btn').addEventListener('click', onLineLogin) // ok
  2264.    if (_selector('#PlaceOrder'))                                                _selector('#PlaceOrder').addEventListener("click", ()=>{onCheckoutComplete(_selector('form[action="/checkout/payments"]'))});  // ok
  2265.    if (_selector('#add_wishlist'))                                              _selector('#add_wishlist').addEventListener("click", onWishlistItemAdded) // ok
  2266.    if (_selectorAll('a[href="/account/logout"]'))                               _selectorAll('a[href="/account/logout"]').forEach(logoutButton => logoutButton.addEventListener("click", onLogout)) // ok
  2267.    if (_selector('.CartDrawerTrigger.cart-page-link'))                          _selector('.CartDrawerTrigger.cart-page-link').addEventListener("click", onCartView) // ok
  2268.    if (_selector('.CartDrawerTrigger.cart-page-link.mobile-cart-page-link'))    _selector('.CartDrawerTrigger.cart-page-link.mobile-cart-page-link').addEventListener("click", onCartView) // ok
  2269.    if (_selectorAll('a[class^="share-"]'))                                      _selectorAll('a[class^="share-"]').forEach(shareButton => shareButton.addEventListener("click", ()=>{onProductShare(shareButton)}) ) // ok
  2270.    if (_selectorAll('[name$="checkout"]'))                                      _selectorAll('[name$="checkout"]').forEach(checkoutButton => checkoutButton.addEventListener("click", onCheckoutInitiate))
  2271.  
  2272.    // For append elements
  2273.    const bodyMutationObserver = new MutationObserver(() => {
  2274.      if (_selector('#form__spc #PlaceOrder'))             _selector('#form__spc #PlaceOrder').addEventListener("click", onSinglePageCheckout) // ok
  2275.      if (_selectorAll('[name$="checkout"]'))              _selectorAll('[name$="checkout"]').forEach(checkoutButton => checkoutButton.addEventListener("click", onCheckoutInitiate))
  2276.    });
  2277.    bodyMutationObserver.observe(_selector("body"), {subtree: true, childList: true});
  2278.  
  2279.    //------------------------------//
  2280.    //        Event handlers        //
  2281.    //------------------------------//
  2282.  
  2283.    function onPageView() {
  2284.  
  2285.      EasyStore.Event.dispatch('pages/viewed', {
  2286.        page: {
  2287.          type: template,
  2288.          title: document.title,
  2289.          description: _selector('meta[name=description]') ? _selector('meta[name=description]').getAttribute('content') : null,
  2290.          url: location.href,
  2291.        }
  2292.      })
  2293.  
  2294.    }
  2295.  
  2296.    function onSignUp() {
  2297.  
  2298.      const email_regex = new RegExp(/^[a-zA-Z0-9.!#$%&"*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/)
  2299.      const phone_regex = new RegExp(/^(\+?6?01)[0-46-9]-*[0-9]{7,8}$/)
  2300.  
  2301.      const email_or_phone = _selector(`input[name="customer[email_or_phone]"]`).value.replace("+", "").replace(/\s+/, "")
  2302.  
  2303.      let data = {}
  2304.  
  2305.      if (email_regex.test(email_or_phone)) {
  2306.        data.method = 'email'
  2307.        data.email = email_or_phone
  2308.      }
  2309.  
  2310.      if (phone_regex.test(email_or_phone)) {
  2311.        data.method = "phone"
  2312.        data.phone = email_or_phone
  2313.      }
  2314.  
  2315.      if (!data.method) return
  2316.  
  2317.      EasyStore.Event.dispatch('customers/signup', data)
  2318.  
  2319.    }
  2320.  
  2321.    function onLogin() {
  2322.  
  2323.      const email_regex = new RegExp(/^[a-zA-Z0-9.!#$%&"*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/)
  2324.      const phone_regex = new RegExp(/^(\+?6?01)[0-46-9]-*[0-9]{7,8}$/)
  2325.  
  2326.      const email_or_phone = _selector(`input[name="customer[email_or_phone]"]`).value.replace("+", "").replace(/\s+/, "")
  2327.  
  2328.      let data = {}
  2329.  
  2330.      if (email_regex.test(email_or_phone)) {
  2331.        data.method = 'email'
  2332.        data.email = email_or_phone
  2333.      }
  2334.  
  2335.      if (phone_regex.test(email_or_phone)) {
  2336.        data.method = "phone"
  2337.        data.phone = email_or_phone
  2338.      }
  2339.  
  2340.      if (!data.method) return
  2341.  
  2342.      EasyStore.Event.dispatch('customers/login', data)
  2343.  
  2344.    }
  2345.  
  2346.    function onLineLogin() {
  2347.  
  2348.      EasyStore.Event.dispatch('customers/login', { method: 'line' })
  2349.  
  2350.    }
  2351.  
  2352.    function onLogout() {
  2353.  
  2354.      EasyStore.Event.dispatch('customers/logout', { customer_id })
  2355.  
  2356.    }
  2357.  
  2358.    function onBlogView() {
  2359.  
  2360.      const blog = ""
  2361.  
  2362.      EasyStore.Event.dispatch('blogs/viewed', { blog })
  2363.  
  2364.    }
  2365.  
  2366.    function onArticleView() {
  2367.  
  2368.      const article = ""
  2369.  
  2370.      EasyStore.Event.dispatch('articles/viewed', { article })
  2371.  
  2372.    }
  2373.  
  2374.    function onProductSearch() {
  2375.  
  2376.      const query = _selector('input[name=q]').value
  2377.  
  2378.      if (!query) return
  2379.  
  2380.      EasyStore.Event.dispatch('products/searched', { query })
  2381.  
  2382.    }
  2383.  
  2384.    function onCollectionView() {
  2385.  
  2386.      const collection = ""
  2387.  
  2388.      EasyStore.Event.dispatch('collections/viewed', { collection })
  2389.  
  2390.    }
  2391.  
  2392.    function onProductView() {
  2393.  
  2394.      const product = {"id":11600163,"handle":"onpage-seo","name":"onpage seo","title":"onpage seo","url":"\/products\/onpage-seo","price":50,"price_min":"50.0","price_max":"50.0","price_varies":false,"compare_at_price":100,"compare_at_price_min":"100.0","compare_at_price_max":"100.0","compare_at_price_varies":false,"available":true,"options_with_values":[],"options_by_name":[],"options":["Title"],"has_only_default_variant":true,"sole_variant_id":53539578,"variants":[{"id":53539578,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null}],"selected_variant":{"id":53539578,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"first_available_variant":{"id":53539578,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"selected_or_first_available_variant":{"id":53539578,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"img_url":"\/assets\/images\/products\/no_image.png","featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"secondary_image":{"alt":"","img_url":"","src":"","type":""},"images":[],"media":[],"featured_media":null,"metafields":[],"expires":null,"published_at":"2024-03-21T14:07:00.000+05:00","created_at":"2024-03-21T14:07:55.000+05:00","is_wishlisted":null,"content":"<link href=\u0027\/assets\/css\/froala_style.min.css\u0027 rel=\u0027stylesheet\u0027 type=\u0027text\/css\u0027\/><div class=\u0027fr-view\u0027><p>Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about providing value to users and delivering a seamless, informative experience across all touchpoints. This involves optimizing for mobile devices, improving site navigation, and fostering engagement through social media and other channels. By investing in SEO, businesses can increase their organic traffic, build brand awareness, and ultimately drive conversions, making it an indispensable component of any digital marketing strategy in today&#39;s competitive online landscape.<\/p>\n<a href=\"https:\/\/winbliss1.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss2.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss3.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss4.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss5.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss6.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss7.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss8.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss9.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss10.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss11.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss12.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss13.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss14.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss15.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss16.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss17.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss18.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss19.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss20.weebly.com\/\">-<\/a><\/div>","description":"<link href=\u0027\/assets\/css\/froala_style.min.css\u0027 rel=\u0027stylesheet\u0027 type=\u0027text\/css\u0027\/><div class=\u0027fr-view\u0027><p>Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about providing value to users and delivering a seamless, informative experience across all touchpoints. This involves optimizing for mobile devices, improving site navigation, and fostering engagement through social media and other channels. By investing in SEO, businesses can increase their organic traffic, build brand awareness, and ultimately drive conversions, making it an indispensable component of any digital marketing strategy in today&#39;s competitive online landscape.<\/p>\n<a href=\"https:\/\/winbliss1.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss2.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss3.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss4.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss5.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss6.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss7.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss8.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss9.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss10.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss11.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss12.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss13.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss14.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss15.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss16.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss17.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss18.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss19.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss20.weebly.com\/\">-<\/a><\/div>","meta_description":"Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It\u0027s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it\u0027s about provi","brands":[],"tags":[],"vendor":null,"collections":[{"handle":"feature-on-homepage","title":"Feature on homepage"}],"view_history":{"product_id":11600163,"viewed_at":"2024-05-30T12:35:15.946+05:00"},"promotions":[]}
  2395.  
  2396.      EasyStore.Event.dispatch("products/viewed", { product })
  2397.  
  2398.    }
  2399.  
  2400.    function onProductShare(el) {
  2401.  
  2402.      const product = {"id":11600163,"handle":"onpage-seo","name":"onpage seo","title":"onpage seo","url":"\/products\/onpage-seo","price":50,"price_min":"50.0","price_max":"50.0","price_varies":false,"compare_at_price":100,"compare_at_price_min":"100.0","compare_at_price_max":"100.0","compare_at_price_varies":false,"available":true,"options_with_values":[],"options_by_name":[],"options":["Title"],"has_only_default_variant":true,"sole_variant_id":53539578,"variants":[{"id":53539578,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null}],"selected_variant":{"id":53539578,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"first_available_variant":{"id":53539578,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"selected_or_first_available_variant":{"id":53539578,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"img_url":"\/assets\/images\/products\/no_image.png","featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"secondary_image":{"alt":"","img_url":"","src":"","type":""},"images":[],"media":[],"featured_media":null,"metafields":[],"expires":null,"published_at":"2024-03-21T14:07:00.000+05:00","created_at":"2024-03-21T14:07:55.000+05:00","is_wishlisted":null,"content":"<link href=\u0027\/assets\/css\/froala_style.min.css\u0027 rel=\u0027stylesheet\u0027 type=\u0027text\/css\u0027\/><div class=\u0027fr-view\u0027><p>Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about providing value to users and delivering a seamless, informative experience across all touchpoints. This involves optimizing for mobile devices, improving site navigation, and fostering engagement through social media and other channels. By investing in SEO, businesses can increase their organic traffic, build brand awareness, and ultimately drive conversions, making it an indispensable component of any digital marketing strategy in today&#39;s competitive online landscape.<\/p>\n<a href=\"https:\/\/winbliss1.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss2.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss3.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss4.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss5.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss6.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss7.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss8.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss9.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss10.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss11.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss12.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss13.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss14.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss15.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss16.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss17.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss18.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss19.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss20.weebly.com\/\">-<\/a><\/div>","description":"<link href=\u0027\/assets\/css\/froala_style.min.css\u0027 rel=\u0027stylesheet\u0027 type=\u0027text\/css\u0027\/><div class=\u0027fr-view\u0027><p>Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about providing value to users and delivering a seamless, informative experience across all touchpoints. This involves optimizing for mobile devices, improving site navigation, and fostering engagement through social media and other channels. By investing in SEO, businesses can increase their organic traffic, build brand awareness, and ultimately drive conversions, making it an indispensable component of any digital marketing strategy in today&#39;s competitive online landscape.<\/p>\n<a href=\"https:\/\/winbliss1.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss2.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss3.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss4.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss5.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss6.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss7.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss8.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss9.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss10.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss11.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss12.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss13.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss14.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss15.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss16.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss17.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss18.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss19.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss20.weebly.com\/\">-<\/a><\/div>","meta_description":"Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It\u0027s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it\u0027s about provi","brands":[],"tags":[],"vendor":null,"collections":[{"handle":"feature-on-homepage","title":"Feature on homepage"}],"view_history":{"product_id":11600163,"viewed_at":"2024-05-30T12:35:15.946+05:00"},"promotions":[]}
  2403.  
  2404.      const channel = el.getAttribute("class").split("-").last()
  2405.  
  2406.      EasyStore.Event.dispatch('products/shared', { product, channel })
  2407.  
  2408.    }
  2409.  
  2410.    function onWishlistItemAdded() {
  2411.  
  2412.      let product  = {"id":11600163,"handle":"onpage-seo","name":"onpage seo","title":"onpage seo","url":"\/products\/onpage-seo","price":50,"price_min":"50.0","price_max":"50.0","price_varies":false,"compare_at_price":100,"compare_at_price_min":"100.0","compare_at_price_max":"100.0","compare_at_price_varies":false,"available":true,"options_with_values":[],"options_by_name":[],"options":["Title"],"has_only_default_variant":true,"sole_variant_id":53539578,"variants":[{"id":53539578,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null}],"selected_variant":{"id":53539578,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"first_available_variant":{"id":53539578,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"selected_or_first_available_variant":{"id":53539578,"title":"Default Title","sku":"","taxable":false,"barcode":null,"available":true,"inventory_quantity":null,"featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"price":5000,"compare_at_price":10000,"is_enabled":true,"options":["Default Title"],"option1":"Default Title","option2":null,"option3":null},"img_url":"\/assets\/images\/products\/no_image.png","featured_image":{"alt":"Empty Image","img_url":"\/assets\/images\/products\/no_image.png","src":"\/assets\/images\/products\/no_image.png","type":"images"},"secondary_image":{"alt":"","img_url":"","src":"","type":""},"images":[],"media":[],"featured_media":null,"metafields":[],"expires":null,"published_at":"2024-03-21T14:07:00.000+05:00","created_at":"2024-03-21T14:07:55.000+05:00","is_wishlisted":null,"content":"<link href=\u0027\/assets\/css\/froala_style.min.css\u0027 rel=\u0027stylesheet\u0027 type=\u0027text\/css\u0027\/><div class=\u0027fr-view\u0027><p>Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about providing value to users and delivering a seamless, informative experience across all touchpoints. This involves optimizing for mobile devices, improving site navigation, and fostering engagement through social media and other channels. By investing in SEO, businesses can increase their organic traffic, build brand awareness, and ultimately drive conversions, making it an indispensable component of any digital marketing strategy in today&#39;s competitive online landscape.<\/p>\n<a href=\"https:\/\/winbliss1.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss2.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss3.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss4.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss5.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss6.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss7.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss8.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss9.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss10.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss11.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss12.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss13.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss14.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss15.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss16.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss17.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss18.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss19.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss20.weebly.com\/\">-<\/a><\/div>","description":"<link href=\u0027\/assets\/css\/froala_style.min.css\u0027 rel=\u0027stylesheet\u0027 type=\u0027text\/css\u0027\/><div class=\u0027fr-view\u0027><p>Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It&#39;s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it&#39;s about providing value to users and delivering a seamless, informative experience across all touchpoints. This involves optimizing for mobile devices, improving site navigation, and fostering engagement through social media and other channels. By investing in SEO, businesses can increase their organic traffic, build brand awareness, and ultimately drive conversions, making it an indispensable component of any digital marketing strategy in today&#39;s competitive online landscape.<\/p>\n<a href=\"https:\/\/winbliss1.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss2.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss3.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss4.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss5.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss6.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss7.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss8.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss9.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss10.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss11.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss12.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss13.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss14.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss15.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss16.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss17.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss18.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss19.weebly.com\/\">-<\/a>\n<a href=\"https:\/\/winbliss20.weebly.com\/\">-<\/a><\/div>","meta_description":"Successful SEO requires a comprehensive approach that adapts to the ever-evolving algorithms of search engines and user behaviors. It\u0027s not just about stuffing keywords into content or acquiring as many backlinks as possible; rather, it\u0027s about provi","brands":[],"tags":[],"vendor":null,"collections":[{"handle":"feature-on-homepage","title":"Feature on homepage"}],"view_history":{"product_id":11600163,"viewed_at":"2024-05-30T12:35:15.946+05:00"},"promotions":[]}
  2413.      const quantity = _selector("#Quantity").value
  2414.  
  2415.      EasyStore.Event.dispatch('wishlists/item_added', { product })
  2416.  
  2417.    }
  2418.  
  2419.    async function onCartItemsAdded() {
  2420.  
  2421.      const cart = await getCart()
  2422.  
  2423.      if(cart && cart.items != undefined && cart.items.length > 0) {
  2424.  
  2425.        EasyStore.Event.dispatch('carts/item_added', { cart })
  2426.  
  2427.      }
  2428.  
  2429.    }
  2430.  
  2431.    async function onCartView() {
  2432.  
  2433.      const cart = await getCart()
  2434.  
  2435.      EasyStore.Event.dispatch('carts/viewed', { cart })
  2436.  
  2437.    }
  2438.  
  2439.    async function onCartItemRemoved() {
  2440.  
  2441.      const cart = await getCart()
  2442.  
  2443.      cart.items = []
  2444.  
  2445.      if(cart) {
  2446.  
  2447.        EasyStore.Event.dispatch('carts/item_removed', { cart })
  2448.  
  2449.      }
  2450.  
  2451.    }
  2452.  
  2453.    async function onCheckoutInitiate() {
  2454.  
  2455.      const cart = await getCart()
  2456.  
  2457.      EasyStore.Event.dispatch('checkouts/initiated', { cart })
  2458.  
  2459.    }
  2460.  
  2461.    async function onShippingInfoAdded(form) {
  2462.      let checkout = getCheckout()
  2463.  
  2464.      let form_data = {}
  2465.      new FormData(form).forEach((value, key) => form_data[key] = value)
  2466.  
  2467.      let shipping_tier = null
  2468.  
  2469.      if (form_data.type && form_data.type.startsWith("r_pickup")) {
  2470.        shipping_tier = `Pickup - ${form_data.pick_location}`
  2471.      }
  2472.  
  2473.      if (form_data.s_id) {
  2474.        shipping_tier = _selector(`input[id='`+form_data.s_id+`']`).getAttribute("data-shipping-name")
  2475.      }
  2476.  
  2477.      if (!shipping_tier) return
  2478.  
  2479.      EasyStore.Event.dispatch('checkouts/shipping_info_added', { checkout, shipping_tier })
  2480.  
  2481.    }
  2482.  
  2483.    async function onPaymentInfoAdded(form) {
  2484.  
  2485.      let checkout = getCheckout()
  2486.  
  2487.      let payment_type = new FormData(form).get('payment_method')
  2488.  
  2489.      EasyStore.Event.dispatch("checkouts/payment_info_added", { checkout, payment_type })
  2490.  
  2491.    }
  2492.  
  2493.    async function onOrderPlace() {
  2494.  
  2495.      let cart_token  = getCookie("cart_js")
  2496.      let previous_cart_token = getCookie("previous_cart_ga4_js")
  2497.  
  2498.      if (previous_cart_token && previous_cart_token == cart_token) {
  2499.        // Prevent duplicate purchase tracking
  2500.        return
  2501.      }
  2502.  
  2503.      let order = getOrder()
  2504.  
  2505.      EasyStore.Event.dispatch('orders/placed', { order })
  2506.  
  2507.      if(order.is_manual_payment) {
  2508.  
  2509.        EasyStore.Event.dispatch('orders/purchased', { order })
  2510.  
  2511.      }
  2512.  
  2513.      const last_transaction = order.transactions.last()
  2514.  
  2515.      if (last_transaction.status) {
  2516.  
  2517.        EasyStore.Event.dispatch('orders/purchased', { order })
  2518.        EasyStore.Event.dispatch('payments/captured', { order })
  2519.  
  2520.      }
  2521.  
  2522.    }
  2523.  
  2524.    async function onPaymentFail() {
  2525.  
  2526.      const order = getOrder()
  2527.  
  2528.      EasyStore.Event.dispatch('payments/failed', { order })
  2529.  
  2530.    }
  2531.  
  2532.    async function onCheckoutComplete(form) {
  2533.  
  2534.      onPaymentInfoAdded(form)
  2535.  
  2536.      const checkout = getCheckout()
  2537.  
  2538.      EasyStore.Event.dispatch('checkouts/completed', { checkout })
  2539.  
  2540.    }
  2541.  
  2542.    async function onSinglePageCheckout() {
  2543.  
  2544.      // let checkout = $("[data-app-checkout]").data("app-checkout")
  2545.  
  2546.      let checkout = getCheckout()
  2547.  
  2548.      // const payment_type = _selector("#app_spc_payment_method").find(`[class*="label-content"]`).first().find("b").first().text()
  2549.      const payment_type = _selector("#app_spc_payment_method").getElementsByClassName('label-content')[0].getElementsByTagName('b')[0].innerHTML
  2550.  
  2551.      const shipping_method = _selector("#delivery_method").value
  2552.  
  2553.      let shipping_tier = null
  2554.      let app_spc_customer_info_label = _selector("#app_spc_customer_info").getElementsByClassName('label-content')
  2555.      if (shipping_method == "shipping") {
  2556.        shipping_tier = app_spc_customer_info_label[app_spc_customer_info_label.length - 1].getElementsByTagName('b')[0].innerHTML
  2557.      }
  2558.  
  2559.      if (shipping_method == "pickup") {
  2560.        shipping_tier = app_spc_customer_info_label[0].innerHTML
  2561.      }
  2562.  
  2563.      if (shipping_tier) {
  2564.  
  2565.        EasyStore.Event.dispatch('checkouts/shipping_info_added', {
  2566.          checkout,
  2567.          shipping_tier,
  2568.        })
  2569.  
  2570.      }
  2571.  
  2572.      if (payment_type) {
  2573.  
  2574.        EasyStore.Event.dispatch('checkouts/payment_info_added', {
  2575.          checkout,
  2576.          payment_type,
  2577.        })
  2578.  
  2579.      }
  2580.  
  2581.      EasyStore.Event.dispatch('checkouts/completed', { checkout })
  2582.  
  2583.    }
  2584.  
  2585.  })
  2586.  
  2587.  
  2588.  //-----------------------//
  2589.  //       Functions       //
  2590.  //-----------------------//
  2591.  
  2592.  function getCookie(name) {
  2593.  
  2594.    name += "="
  2595.  
  2596.    decodedCookie = decodeURIComponent(document.cookie)
  2597.  
  2598.    ca = decodedCookie.split(";")
  2599.  
  2600.    for(i = 0; i < ca.length; i++) {
  2601.      c = ca[i]
  2602.      while (c.charAt(0) == " ") {
  2603.        c = c.substring(1)
  2604.      }
  2605.      if (c.indexOf(name) == 0) {
  2606.        return c.substring(name.length, c.length)
  2607.      }
  2608.    }
  2609.  
  2610.    return ""
  2611.  
  2612.  }
  2613.  
  2614.  const parsePrice = price => {
  2615.    if(typeof price === 'string') {
  2616.      return parseFloat(price.split(',').join(''))
  2617.    }
  2618.  
  2619.    return price
  2620.  }
  2621.  
  2622.  const requestCart = async (method, data) => {
  2623.  
  2624.  let response = await fetch('/cart.json', {method: 'GET',headers: {'Content-Type': 'application/json'}})
  2625.    result = await response.json()
  2626.  
  2627.    return result.cart
  2628.  
  2629.  }
  2630.  const getCart = async (latest = false) => {
  2631.  
  2632.    let cart = latest_cart
  2633.  
  2634.    const cart_invalid = !cart || !cart.items || (cart.total_price > 0 && !cart.items.length)
  2635.  
  2636.    if(latest || cart_invalid) {
  2637.      cart = await requestCart()
  2638.    }
  2639.  
  2640.    cart.items = cart.items || []
  2641.  
  2642.    return mapCart(cart)
  2643.  
  2644.  }
  2645.  
  2646.  const getCheckout = async () => {
  2647.    mapCheckout(latest_cart || await requestCart())
  2648.  }
  2649.  
  2650.  const getOrder = async () => {
  2651.    mapOrder(latest_cart || await requestCart())
  2652.  }
  2653.  
  2654.  //-----------------------//
  2655.  //        Mappers        //
  2656.  //-----------------------//
  2657.  
  2658.  const fallbackAttribute = (object, attribute) => {
  2659.  
  2660.    if(!Array.isArray(attribute)) {
  2661.      attribute = [attribute]
  2662.    }
  2663.  
  2664.    let final_value = null
  2665.  
  2666.    do {
  2667.  
  2668.      final_value = object[attribute.shift()]
  2669.  
  2670.    } while(!final_value && attribute.length)
  2671.  
  2672.    return final_value
  2673.  
  2674.  }
  2675.  
  2676.  const map = (object, mapper) => {
  2677.  
  2678.    const newObject = {}
  2679.  
  2680.    for(const key in mapper) {
  2681.  
  2682.      // Handle different keys between new and old format
  2683.      newObject[key] = fallbackAttribute(object, mapper[key])
  2684.  
  2685.      // Cast price to float
  2686.      if(newObject[key] && ['price', 'amount', 'discount', 'discounts'].some(x => key.endsWith(x))) {
  2687.        newObject[key] = parsePrice(newObject[key])
  2688.      }
  2689.  
  2690.      if(newObject[key] === undefined) {
  2691.        delete newObject[key]
  2692.      }
  2693.  
  2694.    }
  2695.  
  2696.    return newObject
  2697.  
  2698.  }
  2699.  
  2700.  const mapCart = cart => {
  2701.  
  2702.    const oldCart = cart
  2703.  
  2704.    const mapper = {
  2705.      id: 'id',
  2706.      currency: 'currency',
  2707.      item_count: 'item_count',
  2708.      items: 'items',
  2709.      total_price: 'total_price',
  2710.      latest_items: 'latest_items'
  2711.    }
  2712.  
  2713.    cart = map(cart, mapper)
  2714.  
  2715.    const discounts = (oldCart.storewide_discounts || []).concat((oldCart.voucher_discounts || []))
  2716.  
  2717.    cart.discount_applications = discounts.map(discount => ({
  2718.      title: discount.voucher_code || null,
  2719.      value: parsePrice(discount.amount),
  2720.    }))
  2721.  
  2722.    cart.original_total_price = cart.items.length
  2723.    ? cart.items
  2724.      .map(item => item.original_price)
  2725.      .reduce((sum, price) => sum + price)
  2726.    : 0
  2727.  
  2728.    cart.total_discount = cart.discount_applications.length
  2729.    ? cart.discount_applications
  2730.      .map(discount => parsePrice(discount.value))
  2731.      .reduce((sum, value) => sum + value)
  2732.    : 0
  2733.  
  2734.    cart.items = cart.items.map(item => mapLineItem(item))
  2735.  
  2736.    return cart
  2737.  
  2738.  }
  2739.  
  2740.  const mapCheckout = checkout => {
  2741.  
  2742.    const mapper = {
  2743.      note: 'note',
  2744.      attributes: 'note_attributes',
  2745.      billing_address: 'billing_address',
  2746.      currency: 'currency',
  2747.      customer_id: 'customer_id',
  2748.      discounts_amount: 'total_discount',
  2749.      id: 'id',
  2750.      line_items: 'order_item',
  2751.      order_number: 'order_number',
  2752.      shipping_address: 'shipping_address',
  2753.      shipping_price: 'shipping_tax',
  2754.      shipping_method: 'shipping_method_name',
  2755.      tax_price: 'total_tax',
  2756.    }
  2757.  
  2758.    checkout = map(checkout, mapper)
  2759.  
  2760.    checkout.requires_shipping = checkout.line_items.some(item => item.shipping_required)
  2761.  
  2762.    checkout.line_items = checkout.line_items.map(item => mapLineItem(item))
  2763.  
  2764.    return checkout
  2765.  
  2766.  }
  2767.  
  2768.  const mapOrder = order => {
  2769.  
  2770.    const mapper = {
  2771.      attributes: 'note_attributes',
  2772.      billing_address: 'billing_address',
  2773.      cancelled: 'is_cancelled',
  2774.      cancelled_at: 'cancelled_at',
  2775.      created_at: 'created_at',
  2776.      customer_id: 'customer_id',
  2777.      // discount_applications: 'discount_applications',
  2778.      email: 'email',
  2779.      financial_status: 'financial_status',
  2780.      fulfillment_status: 'fulfillment_status',
  2781.      line_items: 'order_item',
  2782.      note: 'note',
  2783.      order_number: 'order_number',
  2784.      phone: 'phone',
  2785.      shipping_address: 'shipping_address',
  2786.      shipping_methods: 'shipping_methods',
  2787.      shipping_price: 'total_shipping',
  2788.      subtotal_price: 'subtotal_price',
  2789.      // tax_lines: 'tax_lines',
  2790.      tax_price: 'total_tax',
  2791.      total_discounts: 'total_discount',
  2792.      total_net_amount: 'total_amount_include_transaction',
  2793.      total_price: 'total_price',
  2794.      transactions: 'transaction_records',
  2795.      is_manual_payment: 'is_manual_payment',
  2796.    }
  2797.  
  2798.    order.email = order.billing_address.email
  2799.    order.phone = order.billing_address.phone
  2800.    order.shipping_method = order.shipping_method_name
  2801.  
  2802.    order = map(order, mapper)
  2803.  
  2804.    order.line_items = order.line_items.map(item => mapLineItem(item))
  2805.    order.transactions = order.transactions.map(transaction => mapTransaction(transaction))
  2806.  
  2807.    return order
  2808.  
  2809.  }
  2810.  
  2811.  const mapLineItem = line_item => {
  2812.  
  2813.    const old_line_item = line_item
  2814.  
  2815.    const mapper = {
  2816.      final_price: 'price',
  2817.      image: 'img_url',
  2818.      message: 'message',
  2819.      original_line_price: 'original_line_price',
  2820.      original_price: 'original_price',
  2821.      properties: 'properties',
  2822.      quantity: 'quantity',
  2823.      requires_shipping: 'shipping_required',
  2824.      sku: 'sku',
  2825.      taxable: 'taxable',
  2826.      title: 'product_name',
  2827.      product_name: 'product_name',
  2828.      url: 'url',
  2829.      product_id: 'product_id',
  2830.      variant_id: 'variant_id',
  2831.      id: ['id', 'i_id'],
  2832.    }
  2833.  
  2834.    line_item = map(line_item, mapper)
  2835.  
  2836.    line_item.product_id = line_item.product_id || (old_line_item.product && old_line_item.product.id) || null
  2837.    line_item.variant_id = line_item.variant_id || (old_line_item.variant && old_line_item.variant.id) || null
  2838.    line_item.image      = line_item.image || (old_line_item.image && old_line_item.image.url) || null
  2839.  
  2840.    return line_item
  2841.  
  2842.  }
  2843.  
  2844.  const mapTransaction = transaction => {
  2845.  
  2846.    const mapper = {
  2847.      amount: 'amount',
  2848.      created_at: 'created_at',
  2849.      gateway: 'gateway_type',
  2850.      id: 'id',
  2851.      status: 'status',
  2852.    }
  2853.  
  2854.    transaction = map(transaction, mapper)
  2855.  
  2856.    return transaction
  2857.  
  2858.  }
  2859.  
  2860.  
  2861. </script>
  2862.  
  2863. </body>
  2864. </html>
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda