www.luckyeo.com Open in urlscan Pro
104.17.247.119  Public Scan

Submitted URL: https://lle.soundestlink.com/ce/c/65c1e354c22e051e087b9e4c/6711d0c6cddbec1e7a7ed4c6/67130b99d2a3ef710c09abb1?signature=0122e8...
Effective URL: https://www.luckyeo.com/products/dust-proof-screen-protector?omnisendContactID=65c1e354c22e051e087b9e4c&utm_campaign=cam...
Submission: On October 21 via api from BE — Scanned from DE

Form analysis 3 forms found in the DOM

GET /search

<form action="/search" method="get" class="">
  <div tabindex="-1" class="tw-flex tw-relative header__search">
    <input autocomplete="off" name="q" type="text"
      class="tw-w-full tw-flex-1 tw-h-10 tw-py-0 tw-pl-[14px] tw-pr-13 tw-bg-header-search tw-text-current tw-text-sm tw-leading-none tw-rounded-global  tw-border tw-border-solid tw-border-header  tw-placeholder-current header__search-input"
      placeholder="Search...">
    <button type="submit" class="tw-flex tw-items-center tw-px-[14px] tw-m-0 tw-bg-transparent tw-text-current tw-border-none tw-outline-none tw-cursor-pointer tw-h-full tw-absolute tw-right-0 header__search-icon" tabindex="-1"><svg class=""
        width="24" height="24" xmlns="http://www.w3.org/2000/svg">
        <path d="M11.16 1a9.16 9.16 0 1 1 0 18.322A9.16 9.16 0 0 1 11.16 1zm0 1.629a7.532 7.532 0 1 0 0 15.064 7.532 7.532 0 0 0 0-15.064zm5.465 14.148 1.152-1.152L23 20.848 21.848 22l-5.223-5.223z" fill="currentColor"></path>
      </svg></button>
    <button type="button" class="tw-hidden tw-justify-center tw-items-center tw-pr-2 tw-pl-6 tw-m-0 tw-bg-transparent tw-text-header-color tw-border-none tw-outline-none tw-cursor-pointer header__search-close "><svg class="" width="14" height="14"
        xmlns="http://www.w3.org/2000/svg">
        <path d="m3 3 8.485 8.485m0-8.485L3 11.485" stroke="currentColor" stroke-width="1.6" stroke-linecap="square"></path>
      </svg></button>
  </div>
</form>

<form class="product-info product-info-387037bb-504a-47f0-af33-91fdc9ceb9cc">
  <style>
    .product-info__body>.product-info__block:first-child {
      margin-top: 0;
    }

    .product-info__body>.product-info__block:last-child {
      margin-bottom: 0;
    }

    @media (max-width: 959.98px) {
      [data-section-id="1539149753700"].card-spacing {
        padding-top: 0px;
      }
    }
  </style>
  <input type="hidden" name="product_id" value="387037bb-504a-47f0-af33-91fdc9ceb9cc">
  <input type="hidden" name="variant_id" id="selected_variant_id_387037bb-504a-47f0-af33-91fdc9ceb9cc" class="selected_variant_id_387037bb-504a-47f0-af33-91fdc9ceb9cc" value="8a4f5cb8-2679-4990-8289-744a17435d8d">
  <div class="tw-relative product-info__body" data-sold-out="Sorry, the goods have been sold out." data-unavailable="This combination does not exist, please try other.">
    <div class="product-info__header  product-info__block tw-my-3">
      <h1 class="tw-mt-0 tw-mb-0 tw-title-sm type-title-font-family tw-break-words  product-title-transform product-info__header_title">Powerful Protection for Your new phone screen - Dust-Proof Screen Protector</h1>
    </div>
    <div class="product-info__header_price-wrapper product-info__block tw-my-6">
      <div class="tw-body-plus-1 tw-leading-none tw-font-semibold">Price</div>
      <div class="tw-flex tw-justify-between tw-items-center tw-mt-3 lg:tw-mt-[10px]">
        <div class="tw-flex tw-flex-wrap">
          <del class="tw-text-price-color tw-mr-3 product-info__header_compare-at-price money notranslate">€36.79</del>
          <div class="tw-text-price-color tw-mr-3 product-info__header_price money notranslate">€18.39</div>
          <div class="tw-flex   tw-items-center tw-text-save-color product-info__save"> Save&nbsp; <span class="product-info__header_save-amount money notranslate">€18.39</span>
          </div>
        </div>
      </div>
    </div>
    <div class="bootstrap">
      <div class="plugin__wrappers d-flex flex-column">
        <div class="plugin_modals position-relative plugin_modals-rebate" id="Modal206974" style="order: 8">
          <style>
            #Modal206974 {
              --modal_background: linear-gradient(0deg, #ebc19e, #fff3e8 100%);
              --modal_caret_background: #fff2e9;
              --modal_title_color: #B83D07;
              --modal_close_color: #FFFFFF;
              --modal_close_background_color: #F03010;
              --list_border_color: #dddddd;
            }

            @media (max-width: 767.98px) {
              #Modal206974 .coupon_plugin__coupon:last-child {
                padding-bottom: 0;
              }
            }

            #Modal206974 .modal-footer {
              position: relative;
              margin-top: -30px;
            }

            #Modal206974 .modal-footer::before {
              content: '';
              position: absolute;
              bottom: 0;
              left: 0;
              right: 0;
              height: 150%;
              background-image: url(//img.fantaskycdn.com/oss/operation/e8ebb03dbb710457ca3b4b6a70898ab2.svg);
              background-repeat: no-repeat;
              background-size: 100%;
              pointer-events: none;
            }

            @media (max-width: 767.98px) {
              #Modal206974 .discount-present-item:last-child {
                padding-bottom: 40px;
              }

              #Modal206974 .plugin_modals__wrapper-list>a:last-child {
                padding-bottom: 14px;
              }
            }
          </style>
          <!-- 入口 -->
          <div class="plugin_modals__list" data-toggle="modal" data-target="#target_Modal206974" impr="1" imprevt="1">
            <div class="plugin_modals__list-name">
              <style>
                a.product_detail_rebate_list {
                  display: inline-flex;
                  gap: 4px;
                  align-items: start;
                  color: #EB391B;
                }

                a.product_detail_rebate_list:hover {
                  color: #EB391B;
                }

                a.product_detail_rebate_list .money {
                  white-space: nowrap;
                }

                .plugin_modals__modal .rebate-icon {
                  display: none;
                }

                .rebate-icon {
                  padding-top: 4px;
                }
              </style>
              <a class="product_detail_rebate_list" impr="1" imprevt="1" href="/promotions/rebate/744da5cc-61cf-4a9e-b882-87022f58256d">
    <svg xmlns="http://www.w3.org/2000/svg" width="16" height="24" fill="none" class="rebate-icon">
      <g clip-path="url(#a)">
        <path fill="#EB391B" fill-rule="evenodd" d="M9.127 1.275a1.576 1.576 0 0 0-2.255 0l-.693.709a1.576 1.576 0 0 1-1.146.475l-.991-.012a1.576 1.576 0 0 0-1.595 1.595l.011.991a1.576 1.576 0 0 1-.475 1.146l-.708.693a1.576 1.576 0 0 0 0 2.255l.709.693c.308.3.48.716.475 1.146l-.012.992a1.576 1.576 0 0 0 1.595 1.594l.991-.011a1.577 1.577 0 0 1 1.146.475l.693.709a1.575 1.575 0 0 0 2.255 0l.693-.71a1.576 1.576 0 0 1 1.146-.475l.992.012a1.575 1.575 0 0 0 1.594-1.594l-.011-.992a1.577 1.577 0 0 1 .475-1.146l.709-.693a1.575 1.575 0 0 0 0-2.255l-.71-.693a1.576 1.576 0 0 1-.475-1.146l.012-.991a1.576 1.576 0 0 0-1.594-1.595l-.992.011a1.576 1.576 0 0 1-1.146-.475l-.693-.708ZM5.84 6.92a1.08 1.08 0 1 0 0-2.16 1.08 1.08 0 0 0 0 2.16Zm4.32 4.32a1.08 1.08 0 1 0 0-2.161 1.08 1.08 0 0 0 0 2.16Zm.56-5.96a.793.793 0 0 1 0 1.12L6.4 10.72A.792.792 0 0 1 5.28 9.6L9.6 5.28a.792.792 0 0 1 1.12 0Z" clip-rule="evenodd"></path>
      </g>
      <defs>
        <clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"></path></clipPath>
      </defs>
    </svg>
    <div style="flex: 1;word-break: break-word">
      
        <li id="pdr__rule" class="pdr__rule">
          Buy <b><span class="money notranslate">€92.04</span></b> more and save <b>10%</b> off
        </li>
      
        <li id="pdr__rule" class="pdr__rule">
          Buy <b><span class="money notranslate">€138.06</span></b> more and save <b>15%</b> off
        </li>
      
    </div>
  </a>
            </div>
            <div class="plugin_modals__list-labels text-right"></div>
          </div>
        </div>
      </div>
    </div>
    <div class="tw-space-y-6  product-info__variants product-info__block tw-my-6">
      <div class="product-info__variants-wrapper   slider-switch product-info__variants_items !tw--mb-4" data-selected-variant="false">
        <div class="tw-body-plus-1 tw-font-semibold tw-capitalize product-info__variants_title">Style</div>
        <div class="tw-mt-[10px] tw-flex tw-flex-wrap product-info__variants_value-wrapper">
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option1-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option1-0-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="High-definition" checked="">
            <label for="option1-0-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="High-definition" data-options-order="0" data-click="select" data-track="switch_variants"> High-definition </label>
          </div>
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option1-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option1-1-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="Anti-peep">
            <label for="option1-1-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="Anti-peep" data-options-order="1" data-click="select" data-track="switch_variants"> Anti-peep </label>
          </div>
        </div>
        <div class="product-info__variant-tips tw-mt-[-6px] tw-pb-[15px] tw-text-[15px] tw-leading-none tw-text-[#F0672C] tw-font-bold tw-hidden">Please select a style</div>
      </div>
      <div class="product-info__variants-wrapper   slider-switch product-info__variants_items !tw--mb-4" data-selected-variant="false">
        <div class="tw-body-plus-1 tw-font-semibold tw-capitalize product-info__variants_title">Models</div>
        <div class="tw-mt-[10px] tw-flex tw-flex-wrap product-info__variants_value-wrapper">
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option2-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option2-0-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="For iPhone 16 Pro Max" checked="">
            <label for="option2-0-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="For iPhone 16 Pro Max" data-options-order="0" data-click="select" data-track="switch_variants"> For iPhone 16 Pro Max </label>
          </div>
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option2-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option2-1-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="For iPhone 16 Pro">
            <label for="option2-1-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="For iPhone 16 Pro" data-options-order="1" data-click="select" data-track="switch_variants"> For iPhone 16 Pro </label>
          </div>
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option2-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option2-2-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="For iPhone 15 Pro Max">
            <label for="option2-2-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="For iPhone 15 Pro Max" data-options-order="2" data-click="select" data-track="switch_variants"> For iPhone 15 Pro Max </label>
          </div>
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option2-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option2-3-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="For iPhone 15 Pro">
            <label for="option2-3-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="For iPhone 15 Pro" data-options-order="3" data-click="select" data-track="switch_variants"> For iPhone 15 Pro </label>
          </div>
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option2-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option2-4-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="For iPhone 15 Plus">
            <label for="option2-4-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="For iPhone 15 Plus" data-options-order="4" data-click="select" data-track="switch_variants"> For iPhone 15 Plus </label>
          </div>
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option2-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option2-5-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="For iPhone 15">
            <label for="option2-5-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="For iPhone 15" data-options-order="5" data-click="select" data-track="switch_variants"> For iPhone 15 </label>
          </div>
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option2-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option2-6-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="For iPhone 14 Pro Max">
            <label for="option2-6-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="For iPhone 14 Pro Max" data-options-order="6" data-click="select" data-track="switch_variants"> For iPhone 14 Pro Max </label>
          </div>
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option2-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option2-7-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="For iPhone 14 Pro">
            <label for="option2-7-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="For iPhone 14 Pro" data-options-order="7" data-click="select" data-track="switch_variants"> For iPhone 14 Pro </label>
          </div>
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option2-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option2-8-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="For iPhone 14 Plus">
            <label for="option2-8-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="For iPhone 14 Plus" data-options-order="8" data-click="select" data-track="switch_variants"> For iPhone 14 Plus </label>
          </div>
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option2-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option2-9-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="For iPhone 14">
            <label for="option2-9-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="For iPhone 14" data-options-order="9" data-click="select" data-track="switch_variants"> For iPhone 14 </label>
          </div>
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option2-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option2-10-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="For iPhone 13 Pro Max">
            <label for="option2-10-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="For iPhone 13 Pro Max" data-options-order="10" data-click="select" data-track="switch_variants"> For iPhone 13 Pro Max </label>
          </div>
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option2-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option2-11-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="For iPhone 13 Pro">
            <label for="option2-11-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="For iPhone 13 Pro" data-options-order="11" data-click="select" data-track="switch_variants"> For iPhone 13 Pro </label>
          </div>
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option2-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option2-12-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="For iPhone 13">
            <label for="option2-12-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="For iPhone 13" data-options-order="12" data-click="select" data-track="switch_variants"> For iPhone 13 </label>
          </div>
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option2-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option2-13-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="For iPhone 12 Pro Max">
            <label for="option2-13-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="For iPhone 12 Pro Max" data-options-order="13" data-click="select" data-track="switch_variants"> For iPhone 12 Pro Max </label>
          </div>
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option2-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option2-14-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="For iPhone 12 Pro">
            <label for="option2-14-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="For iPhone 12 Pro" data-options-order="14" data-click="select" data-track="switch_variants"> For iPhone 12 Pro </label>
          </div>
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option2-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option2-15-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="For iPhone 12">
            <label for="option2-15-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="For iPhone 12" data-options-order="15" data-click="select" data-track="switch_variants"> For iPhone 12 </label>
          </div>
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option2-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option2-16-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="For iPhone 11/XR">
            <label for="option2-16-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="For iPhone 11/XR" data-options-order="16" data-click="select" data-track="switch_variants"> For iPhone 11/XR </label>
          </div>
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option2-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option2-17-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="For iPhone 11 Pro/XS/X">
            <label for="option2-17-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="For iPhone 11 Pro/XS/X" data-options-order="17" data-click="select" data-track="switch_variants"> For iPhone 11 Pro/XS/X </label>
          </div>
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option2-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option2-18-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="For iPhone 11 Pro Max/XS Max">
            <label for="option2-18-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="For iPhone 11 Pro Max/XS Max" data-options-order="18" data-click="select" data-track="switch_variants"> For iPhone 11 Pro Max/XS Max </label>
          </div>
        </div>
        <div class="product-info__variant-tips tw-mt-[-6px] tw-pb-[15px] tw-text-[15px] tw-leading-none tw-text-[#F0672C] tw-font-bold tw-hidden">Please select a models</div>
      </div>
      <div class="product-info__variants-wrapper   slider-switch product-info__variants_items !tw--mb-4" data-selected-variant="false">
        <div class="tw-body-plus-1 tw-font-semibold tw-capitalize product-info__variants_title">BUY MORE GET MORE</div>
        <div class="tw-mt-[10px] tw-flex tw-flex-wrap product-info__variants_value-wrapper">
          <div class="tw-relative tw-flex tw-items-center tw-mb-4 tw-mr-2 product-info__variants_value notranslate">
            <input type="radio" class="tw-hidden product-info__variants_radio" name="option3-387037bb-504a-47f0-af33-91fdc9ceb9cc" id="option3-0-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" value="Buy 2 Get 1 Free (Each Only $6.66)"
              checked="">
            <label for="option3-0-387037bb-504a-47f0-af33-91fdc9ceb9cc-1539149753700" class="tw-flex tw-items-center tw-justify-center tw-min-w-[42px] tw-h-[42px] lg:tw-h-10 tw-px-4 tw-cursor-pointer tw-rounded-[1px] product-info__label"
              data-variants-value="Buy 2 Get 1 Free (Each Only $6.66)" data-options-order="0" data-click="select" data-track="switch_variants"> Buy 2 Get 1 Free (Each Only $6.66) </label>
          </div>
        </div>
        <div class="product-info__variant-tips tw-mt-[-6px] tw-pb-[15px] tw-text-[15px] tw-leading-none tw-text-[#F0672C] tw-font-bold tw-hidden">Please select a buy more get more</div>
      </div>
    </div>
    <div class="product-info__block tw-my-6 product-info__qty_container">
      <div class="tw-body-plus-1 tw-font-semibold">Quantity</div>
      <div class="tw-relative tw-flex tw-w-25 tw-h-[46px] lg:tw-h-11 tw-mt-[10px] tw-border tw-border-solid tw-border-line tw-rounded-[1px] product-info__qty notranslate" data-qty-type="select">
        <select class="tw-absolute tw-inset-0 tw-w-full tw-h-full tw-pr-8 tw-pl-[14px] tw-z-10 type-body-font-family tw-body-plus-4 lg:tw-body-plus-2 tw-text-current tw-bg-transparent tw-border-none tw-cursor-pointer tw-appearance-none">
          <option value="1" selected="">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <option value="5">5</option>
          <option value="6">6</option>
          <option value="7">7</option>
          <option value="8">8</option>
          <option value="9">9</option>
          <option value="10">10+</option>
        </select>
        <input id="product_quantity_387037bb-504a-47f0-af33-91fdc9ceb9cc" name="quantity" type="text" value="1"
          class="tw-box-border tw-absolute tw-inset-0 tw-w-full tw-h-full tw-px-4 tw-body-plus-4 lg:tw-body-plus-2 tw-bg-transparent tw-border-none tw-appearance-none type-body-font-family product-info__qty_num product_quantity_387037bb-504a-47f0-af33-91fdc9ceb9cc">
        <div class="tw-absolute tw-flex tw-top-1/2 tw-right-3 tw-transform tw--translate-y-1/2 tw-pointer-events-none select-icon"><svg class="" width="12" height="10" xmlns="http://www.w3.org/2000/svg">
            <path d="M10.945 2.54a.65.65 0 0 1 .068.84l-.068.08-4.243 4.242a.647.647 0 0 1-.36.183l-.1.008a.648.648 0 0 1-.378-.122l-.081-.069L1.54 3.46a.65.65 0 0 1 .84-.988l.08.068 3.782 3.783 3.784-3.783a.65.65 0 0 1 .919 0z" fill="currentColor"
              fill-rule="nonzero"></path>
          </svg></div>
      </div>
    </div>
    <style>
      @keyframes free__shipping-progress-bar-stripes {
        0% {
          background-position-x: -16px;
        }
      }

      @keyframes free__shipping-progress-bar-stripes-rtl {
        0% {
          background-position-x: 16px;
        }
      }

      .product-info__free-shipping {
        background: white;
        color: black;
        border: 1px solid var(--color-primary-btn-bg);
      }

      [data-section-id="1539149753700"] .free__shipping-progress-bar {
        background: linear-gradient(to right, rgba(255, 204, 213, 1), rgba(249, 125, 187, 1));
        transition: width 1.2s ease;
      }

      [data-section-id="1539149753700"] .free__shipping-progress-bar-striped::before {
        content: "";
        display: block;
        width: 100%;
        height: 100%;
        background-image: linear-gradient(135deg,
            rgba(255, 255, 255, .1) 25%,
            transparent 25%,
            transparent 50%,
            rgba(255, 255, 255, .1) 50%,
            rgba(255, 255, 255, .1) 75%,
            transparent 75%,
            transparent);
        background-size: 16px 16px;
        animation: 1s linear infinite free__shipping-progress-bar-stripes;
      }

      [data-section-id="1539149753700"] .free__shipping-text {
        text-shadow: 0 1px 1px rgba(46, 22, 4, 0.25);
      }

      html[dir="rtl"] [data-section-id="1539149753700"] .free__shipping-progress-bar {
        left: initial;
        right: 0;
        background: linear-gradient(to left, rgba(255, 204, 213, 1), rgba(249, 125, 187, 1));
      }

      html[dir="rtl"] [data-section-id="1539149753700"] .free__shipping-progress-bar-striped::before {
        background-image: linear-gradient(45deg,
            rgba(255, 255, 255, .1) 25%,
            transparent 25%,
            transparent 50%,
            rgba(255, 255, 255, .1) 50%,
            rgba(255, 255, 255, .1) 75%,
            transparent 75%,
            transparent);
        animation-name: free__shipping-progress-bar-stripes-rtl;
      }
    </style>
    <div class="product-info__free-shipping tw-relative tw-h-[30px] tw-mt-6 tw-text-white tw-bg-[#403934] tw-bg-opacity-[96] tw-rounded-sm tw-overflow-hidden">
      <div class="free__shipping-progress-bar free__shipping-progress-bar-striped tw-absolute tw-top-0 tw-left-0 tw-h-full tw-w-0" style="width: 0%;"></div>
      <div class="tw-absolute tw-inset-0">
        <div class="tw-box-border tw-px-6 tw-flex tw-justify-center tw-leading-[30px]">
          <svg class="tw-flex-shrink-0 tw-mt-[3px]" width="24" height="24" xmlns="http://www.w3.org/2000/svg">
            <path fill-rule="evenodd" clip-rule="evenodd"
              d="M14.698 7.522V5.631A.633.633 0 0 0 14.063 5H2.635A.633.633 0 0 0 2 5.63v10.721c0 .349.284.63.635.63H4.59A2.536 2.536 0 0 0 7.08 19a2.536 2.536 0 0 0 2.488-2.018h5.816A2.536 2.536 0 0 0 17.873 19a2.536 2.536 0 0 0 2.489-2.018h1.003c.35 0 .635-.282.635-.63v-3.62a.628.628 0 0 0-.081-.308l-2.594-4.58a.636.636 0 0 0-.553-.322h-4.074zm-.952-1.26a.316.316 0 0 0-.317-.316H3.269a.316.316 0 0 0-.317.315v9.46c0 .174.143.315.318.315h1.308a2.536 2.536 0 0 1 2.501-2.081c1.251 0 2.291.898 2.501 2.08h4.166V6.262zm.952 2.206v7.568h.674l-.004.026a2.535 2.535 0 0 1 2.505-2.107c1.251 0 2.29.898 2.5 2.081h.357a.316.316 0 0 0 .318-.315v-2.744h-3.27a.316.316 0 0 1-.318-.315V9.95c0-.174.142-.315.318-.315h1.469l-.661-1.167h-3.888zm-6.031 8.01c0 .87-.711 1.576-1.588 1.576a1.582 1.582 0 0 1-1.587-1.576c0-.871.71-1.577 1.587-1.577s1.588.706 1.588 1.576zm9.206 1.576c.877 0 1.587-.706 1.587-1.576 0-.871-.71-1.577-1.587-1.577s-1.587.706-1.587 1.576c0 .871.71 1.577 1.587 1.577zm.413-7.399c0-.11.09-.2.2-.2h1.225l.964 1.703h-2.19a.2.2 0 0 1-.2-.2v-1.303z"
              fill="currentColor"></path>
          </svg>
          <span class="free__shipping-text tw-ml-2 tw-text-xs tw-leading-[30px] tw-font-bold tw-break-all">Buy <span class="money notranslate">€54.30</span> more to enjoy FREE Shipping</span>
        </div>
      </div>
    </div>
    <div class="tw-space-y-3 product-info__block tw-my-6">
      <div class="tw-flex tw-items-center">
        <svg class="tw-flex-shrink-0" width="20" height="20" xmlns="http://www.w3.org/2000/svg">
          <path
            d="M17.14 13.65h-3.457c.327-1.022.517-2.081.568-3.164h3.751a7.954 7.954 0 0 1-.862 3.165zm-5.784 4.259a13.405 13.405 0 0 0 1.968-3.285h3.226a8.038 8.038 0 0 1-5.194 3.285zM3.45 14.624h3.227a13.407 13.407 0 0 0 1.968 3.285 8.039 8.039 0 0 1-5.195-3.285zm-1.451-4.138h3.751c.051 1.083.24 2.142.568 3.165H2.86a7.97 7.97 0 0 1-.862-3.165zM2.86 6.35h3.457a12.244 12.244 0 0 0-.568 3.164H1.998A7.97 7.97 0 0 1 2.86 6.35zm5.784-4.258a13.416 13.416 0 0 0-1.968 3.285H3.449a8.04 8.04 0 0 1 5.195-3.285zm7.906 3.285h-3.226a13.414 13.414 0 0 0-1.968-3.285 8.04 8.04 0 0 1 5.194 3.285zm-4.3 0h-4.5A12.805 12.805 0 0 1 10 2.007a12.807 12.807 0 0 1 2.25 3.37zM6.734 9.513C6.79 8.43 7 7.37 7.358 6.35h5.284c.359 1.02.568 2.08.624 3.164H6.734zm.624 4.138a11.26 11.26 0 0 1-.624-3.165h6.532a11.26 11.26 0 0 1-.624 3.165H7.358zm.392.973h4.5A12.799 12.799 0 0 1 10 17.992a12.797 12.797 0 0 1-2.25-3.368zm10.252-5.11h-3.75a12.265 12.265 0 0 0-.569-3.165h3.457c.493.96.794 2.03.862 3.164zM1 10c0 4.963 4.037 9 9 9s9-4.037 9-9-4.037-9-9-9-9 4.037-9 9z"
            fill="currentColor"></path>
        </svg>
        <div class="product-info__sales_points-item tw-body-minus-1 tw-pl-3">Worldwide shipping</div>
      </div>
      <div class="tw-flex tw-items-center">
        <svg class="tw-flex-shrink-0" width="20" height="20" xmlns="http://www.w3.org/2000/svg">
          <path
            d="M18.41 14.672a1.811 1.811 0 0 0-1.743-1.359c-.834 0-1.538.578-1.743 1.359H13.81v-4.366h5.238v4.366h-.638zm-1.743 1.552a1.04 1.04 0 0 1-.929-.582 1.042 1.042 0 0 1 0-.97 1.04 1.04 0 0 1 .929-.582c.404 0 .757.237.928.582a1.042 1.042 0 0 1 0 .97 1.04 1.04 0 0 1-.928.582zm-3.81-1.552h-5.4a1.811 1.811 0 0 0-1.743-1.359c-.833 0-1.538.578-1.743 1.359H.952V4.97h11.905v9.702zm-7.143 1.552a1.04 1.04 0 0 1-.928-.582 1.042 1.042 0 0 1 0-.97 1.04 1.04 0 0 1 .928-.582c.405 0 .757.237.929.582a1.042 1.042 0 0 1 0 .97 1.04 1.04 0 0 1-.929.582zM16.9 6.91l1.699 2.426h-4.79V6.91H16.9zm.486-.97H13.81V4H0v11.642h3.971c.205.78.91 1.358 1.743 1.358.834 0 1.538-.577 1.743-1.358H14.924c.205.78.91 1.358 1.743 1.358.833 0 1.538-.577 1.743-1.358H20V9.666L17.386 5.94z"
            fill="currentColor"></path>
        </svg>
        <div class="product-info__sales_points-item tw-body-minus-1 tw-pl-3">Free returns</div>
      </div>
      <div class="tw-flex tw-items-center">
        <svg class="tw-flex-shrink-0" width="20" height="20" xmlns="http://www.w3.org/2000/svg">
          <path
            d="M9.496 0 0 5.45v8.993L9.5 20l9.5-5.522V5.281L9.496 0zm-7.96 5.745 7.968-4.573 3.01 1.673-7.67 4.77-3.308-1.87zm4.321 2.442 7.678-4.775 3.929 2.183-7.968 4.648-3.639-2.056zm4.149 2.94 7.983-4.657v7.416l-7.983 4.64v-7.4zM1.01 13.852V6.62l3.34 1.888v3.007l1.012.45V9.079l3.631 2.052v7.391l-7.983-4.67z"
            fill="currentColor"></path>
        </svg>
        <div class="product-info__sales_points-item tw-body-minus-1 tw-pl-3">24/7 customer support</div>
      </div>
      <div class="tw-flex tw-items-center">
        <svg class="tw-flex-shrink-0" width="20" height="20" xmlns="http://www.w3.org/2000/svg">
          <path
            d="M9.5 1c2.757 0 5 2.243 5 5v.813H18v12.34H1V6.814h3.5V6c0-2.757 2.243-5 5-5zM17 7.813H2v10.34h15V7.814zM9.5 10.5a1.25 1.25 0 0 1 .5 2.394v2.318H9v-2.318a1.25 1.25 0 0 1 .5-2.394zm0-8.5c-2.205 0-4 1.794-4 4v.813h8V6c0-2.206-1.794-4-4-4z"
            fill="currentColor"></path>
        </svg>
        <div class="product-info__sales_points-item tw-body-minus-1 tw-pl-3">Secure payments</div>
      </div>
    </div>
    <div class="product-info__btn product-info__block tw-flex tw-flex-col tw-mt-6 tw-space-y-[10px]">
      <button type="button" class="tw-relative tw-mx-0  tw-h-[54px]  tw-body-plus-2 tw-font-semibold tw-cursor-pointer tw-rounded-btn  tw-secondary-btn     product-info__add-to-cart" data-click="addToCart" data-on-sale="Add to Cart"
        data-adding="Adding" data-added="Added" data-unavailable="Unavailable" data-sold-out="Sold out" data-btn-class=" tw-secondary-btn "> Add to Cart </button>
      <button type="button" class="tw-h-[54px] tw-mx-0  tw-primary-btn  tw-border-none tw-body-plus-2 tw-font-semibold tw-rounded-btn    product-info__buy-now" data-click="submit"> Buy Now </button>
      <div class="paypal-express-button-container notranslate" id="paypal-express-button-container1539149753700">
        <div id="zoid-paypal-buttons-uid_241d9772e4_mdi6mjk6ntg" class="paypal-buttons paypal-buttons-context-iframe paypal-buttons-label-unknown paypal-buttons-layout-horizontal" data-paypal-smart-button-version="5.0.461"
          style="height: 54px; transition: 0.2s ease-in-out;">
          <style nonce="">
            #zoid-paypal-buttons-uid_241d9772e4_mdi6mjk6ntg {
              position: relative;
              display: inline-block;
              width: 100%;
              min-height: 25px;
              min-width: 150px;
              font-size: 0;
            }

            #zoid-paypal-buttons-uid_241d9772e4_mdi6mjk6ntg>iframe {
              position: absolute;
              top: 0;
              left: 0;
              width: 100%;
              height: 100%;
            }

            #zoid-paypal-buttons-uid_241d9772e4_mdi6mjk6ntg>iframe.component-frame {
              z-index: 100;
            }

            #zoid-paypal-buttons-uid_241d9772e4_mdi6mjk6ntg>iframe.prerender-frame {
              transition: opacity .2s linear;
              z-index: 200;
            }

            #zoid-paypal-buttons-uid_241d9772e4_mdi6mjk6ntg>iframe.visible {
              opacity: 1;
            }

            #zoid-paypal-buttons-uid_241d9772e4_mdi6mjk6ntg>iframe.invisible {
              opacity: 0;
              pointer-events: none;
            }

            #zoid-paypal-buttons-uid_241d9772e4_mdi6mjk6ntg>.smart-menu {
              position: absolute;
              z-index: 300;
              top: 0;
              left: 0;
              width: 100%;
            }
          </style><iframe allowtransparency="true"
            name="__zoid__paypal_buttons__eyJzZW5kZXIiOnsiZG9tYWluIjoiaHR0cHM6Ly93d3cubHVja3llby5jb20ifSwibWV0YURhdGEiOnsid2luZG93UmVmIjp7InR5cGUiOiJwYXJlbnQiLCJkaXN0YW5jZSI6MH19LCJyZWZlcmVuY2UiOnsidHlwZSI6InJhdyIsInZhbCI6IntcInVpZFwiOlwiem9pZC1wYXlwYWwtYnV0dG9ucy11aWRfMjQxZDk3NzJlNF9tZGk2bWprNm50Z1wiLFwiY29udGV4dFwiOlwiaWZyYW1lXCIsXCJ0YWdcIjpcInBheXBhbC1idXR0b25zXCIsXCJjaGlsZERvbWFpbk1hdGNoXCI6e1wiX190eXBlX19cIjpcInJlZ2V4XCIsXCJfX3ZhbF9fXCI6XCJcXFxcLnBheXBhbFxcXFwuKGNvbXxjbikoOlxcXFxkKyk/JFwifSxcInZlcnNpb25cIjpcIjEwXzNfM1wiLFwicHJvcHNcIjp7XCJlbnZcIjpcInByb2R1Y3Rpb25cIixcImNvbW1pdFwiOnRydWUsXCJzdHlsZVwiOntcImxhYmVsXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImxheW91dFwiOlwiaG9yaXpvbnRhbFwiLFwiY29sb3JcIjpcImdvbGRcIixcInNoYXBlXCI6XCJyZWN0XCIsXCJ0YWdsaW5lXCI6ZmFsc2UsXCJoZWlnaHRcIjo1NCxcInBlcmlvZFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJtZW51UGxhY2VtZW50XCI6XCJiZWxvd1wiLFwiZGlzYWJsZU1heFdpZHRoXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImRpc2FibGVNYXhIZWlnaHRcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiYm9yZGVyUmFkaXVzXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifX0sXCJmdW5kaW5nXCI6e1wiZGlzYWxsb3dlZFwiOltcImNyZWRpdFwiXX0sXCJvbkFwcHJvdmVcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF8wMzcyODcyMjUzX21kaTZtams2bnRnXCIsXCJuYW1lXCI6XCJvbkFwcHJvdmVcIn19LFwiY3JlYXRlT3JkZXJcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF84YzhmNWIyNTgyX21kaTZtams2bnRnXCIsXCJuYW1lXCI6XCJjcmVhdGVPcmRlclwifX0sXCJjc3BOb25jZVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJhbGxvd0JpbGxpbmdQYXltZW50c1wiOnRydWUsXCJhbW91bnRcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiYXBpU3RhZ2VIb3N0XCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImFwcGxlUGF5XCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImFwcGxlUGF5U3VwcG9ydFwiOmZhbHNlLFwiYnJhbmRlZFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJidXR0b25Mb2NhdGlvblwiOlwid3d3Lmx1Y2t5ZW8uY29tXCIsXCJidXR0b25TZXNzaW9uSURcIjpcInVpZF82ZTVhOTc3Nzc1X21kaTZtams2bnRnXCIsXCJidXR0b25TaXplXCI6XCJodWdlXCIsXCJidXllckNvdW50cnlcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiY2xpZW50QWNjZXNzVG9rZW5cIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiY3VzdG9tZXJJZFwiOlwiXCIsXCJjbGllbnRJRFwiOlwiQVV3b1JsdjNpWjNqdDNvM2hoY2Z0X3RaNWc2dHZlZkVwakNmOVlOR2VIN3E4cF9XcmFsZWl0a0tmTG5XSXM4SExwemFsZ1JBNUFNVDBCWU9cIixcImNsaWVudE1ldGFkYXRhSURcIjpcInVpZF80ZjkxZWZjMDlkX21kaTZtams2bnRnXCIsXCJjb21wb25lbnRzXCI6W1wiYnV0dG9uc1wiXSxcImNyZWF0ZUJpbGxpbmdBZ3JlZW1lbnRcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiY3JlYXRlU3Vic2NyaXB0aW9uXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImNyZWF0ZVZhdWx0U2V0dXBUb2tlblwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJjc3BcIjp7XCJub25jZVwiOlwiXCJ9LFwiY3VycmVuY3lcIjpcIlVTRFwiLFwiZGVidWdcIjpmYWxzZSxcImRpc2FibGVDYXJkXCI6W10sXCJkaXNhYmxlRnVuZGluZ1wiOltcImNhcmRcIixcImJhbmNvbnRhY3RcIixcImJsaWtcIixcImVwc1wiLFwiZ2lyb3BheVwiLFwiaWRlYWxcIixcIm1lcmNhZG9wYWdvXCIsXCJteWJhbmtcIixcInAyNFwiLFwic2VwYVwiLFwic29mb3J0XCIsXCJ2ZW5tb1wiXSxcImRpc2FibGVTZXRDb29raWVcIjp0cnVlLFwiZGlzcGxheU9ubHlcIjpbXSxcImVuYWJsZUZ1bmRpbmdcIjpbXCJwYXlsYXRlclwiXSxcImVuYWJsZVRocmVlRG9tYWluU2VjdXJlXCI6ZmFsc2UsXCJlbmFibGVWYXVsdFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJleHBlcmltZW50XCI6e1wiZW5hYmxlVmVubW9cIjpmYWxzZSxcInZlbm1vVmF1bHRXaXRob3V0UHVyY2hhc2VcIjpmYWxzZSxcInZlbm1vV2ViRW5hYmxlZFwiOmZhbHNlfSxcImV4cGVyaW1lbnRhdGlvblwiOnt9LFwiZmxvd1wiOlwicHVyY2hhc2VcIixcImZ1bmRpbmdFbGlnaWJpbGl0eVwiOntcInBheXBhbFwiOntcImVsaWdpYmxlXCI6dHJ1ZSxcInZhdWx0YWJsZVwiOmZhbHNlfSxcInBheWxhdGVyXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhdWx0YWJsZVwiOmZhbHNlLFwicHJvZHVjdHNcIjp7XCJwYXlJbjNcIjp7XCJlbGlnaWJsZVwiOmZhbHNlLFwidmFyaWFudFwiOm51bGx9LFwicGF5SW40XCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhcmlhbnRcIjpudWxsfSxcInBheWxhdGVyXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhcmlhbnRcIjpudWxsfX19LFwiY2FyZFwiOntcImVsaWdpYmxlXCI6ZmFsc2UsXCJicmFuZGVkXCI6dHJ1ZSxcImluc3RhbGxtZW50c1wiOmZhbHNlLFwidmVuZG9yc1wiOntcInZpc2FcIjp7XCJlbGlnaWJsZVwiOnRydWUsXCJ2YXVsdGFibGVcIjp0cnVlfSxcIm1hc3RlcmNhcmRcIjp7XCJlbGlnaWJsZVwiOnRydWUsXCJ2YXVsdGFibGVcIjp0cnVlfSxcImFtZXhcIjp7XCJlbGlnaWJsZVwiOnRydWUsXCJ2YXVsdGFibGVcIjp0cnVlfSxcImRpc2NvdmVyXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhdWx0YWJsZVwiOnRydWV9LFwiaGlwZXJcIjp7XCJlbGlnaWJsZVwiOmZhbHNlLFwidmF1bHRhYmxlXCI6ZmFsc2V9LFwiZWxvXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhdWx0YWJsZVwiOnRydWV9LFwiamNiXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhdWx0YWJsZVwiOnRydWV9LFwibWFlc3Ryb1wiOntcImVsaWdpYmxlXCI6dHJ1ZSxcInZhdWx0YWJsZVwiOnRydWV9LFwiZGluZXJzXCI6e1wiZWxpZ2libGVcIjp0cnVlLFwidmF1bHRhYmxlXCI6dHJ1ZX0sXCJjdXBcIjp7XCJlbGlnaWJsZVwiOmZhbHNlLFwidmF1bHRhYmxlXCI6dHJ1ZX19LFwiZ3Vlc3RFbmFibGVkXCI6dHJ1ZX0sXCJ2ZW5tb1wiOntcImVsaWdpYmxlXCI6ZmFsc2UsXCJ2YXVsdGFibGVcIjpmYWxzZX0sXCJpdGF1XCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJjcmVkaXRcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcImFwcGxlcGF5XCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJzZXBhXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJpZGVhbFwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwiYmFuY29udGFjdFwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwiZ2lyb3BheVwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwiZXBzXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJzb2ZvcnRcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcIm15YmFua1wiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwicDI0XCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJ3ZWNoYXRwYXlcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcInBheXVcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcImJsaWtcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcInRydXN0bHlcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcIm94eG9cIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcImJvbGV0b1wiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwiYm9sZXRvYmFuY2FyaW9cIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcIm1lcmNhZG9wYWdvXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJtdWx0aWJhbmNvXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJzYXRpc3BheVwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwicGFpZHlcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfX0sXCJmdW5kaW5nU291cmNlXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImdldFBhZ2VVcmxcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF8wZTI2NWJmZTYxX21kaTZtams2bnRnXCIsXCJuYW1lXCI6XCJnZXRQYWdlVXJsXCJ9fSxcImdldFBvcHVwQnJpZGdlXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfZWIyYTZkYjdkN19tZGk2bWprNm50Z1wiLFwibmFtZVwiOlwiZ2V0UG9wdXBCcmlkZ2VcIn19LFwiZ2V0UHJlcmVuZGVyRGV0YWlsc1wiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzdiOThhZGI3MzBfbWRpNm1qazZudGdcIixcIm5hbWVcIjpcImdldFByZXJlbmRlckRldGFpbHNcIn19LFwiZ2V0UXVlcmllZEVsaWdpYmxlRnVuZGluZ1wiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkX2U4M2NiZTZhMWZfbWRpNm1qazZudGdcIixcIm5hbWVcIjpcImdldFF1ZXJpZWRFbGlnaWJsZUZ1bmRpbmdcIn19LFwiaG9zdGVkQnV0dG9uSWRcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiaW50ZW50XCI6XCJjYXB0dXJlXCIsXCJqc1Nka0xpYnJhcnlcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwibG9jYWxlXCI6e1wiY291bnRyeVwiOlwiVVNcIixcImxhbmdcIjpcImVuXCJ9LFwibWVyY2hhbnRJRFwiOltcIkI4Rzg5VTdGNkJWU1NcIl0sXCJtZXJjaGFudFJlcXVlc3RlZFBvcHVwc0Rpc2FibGVkXCI6ZmFsc2UsXCJtZXNzYWdlXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcIm5vbmNlXCI6XCJcIixcIm9uQ2FuY2VsXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcIm9uQ2xpY2tcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwib25Db21wbGV0ZVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJvbkluaXRcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF8wNzFhYjAwZGYzX21kaTZtams2bnRnXCIsXCJuYW1lXCI6XCJvbkluaXRcIn19LFwib25NZXNzYWdlQ2xpY2tcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF85ZDE0MTUzZmY3X21kaTZtams2bnRnXCIsXCJuYW1lXCI6XCJvbk1lc3NhZ2VDbGlja1wifX0sXCJvbk1lc3NhZ2VIb3ZlclwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzUwN2I2NTdkOGFfbWRpNm1qazZudGdcIixcIm5hbWVcIjpcIm9uTWVzc2FnZUhvdmVyXCJ9fSxcIm9uTWVzc2FnZVJlYWR5XCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfYmQyNGZkMDBiN19tZGk2bWprNm50Z1wiLFwibmFtZVwiOlwib25NZXNzYWdlUmVhZHlcIn19LFwib25TaGlwcGluZ0FkZHJlc3NDaGFuZ2VcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwib25TaGlwcGluZ0NoYW5nZVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJvblNoaXBwaW5nT3B0aW9uc0NoYW5nZVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJoYXNTaGlwcGluZ0NhbGxiYWNrXCI6ZmFsc2UsXCJwYWdlVHlwZVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJwYXJ0bmVyQXR0cmlidXRpb25JRFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJwYXltZW50TWV0aG9kTm9uY2VcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwicGF5bWVudE1ldGhvZFRva2VuXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcInBheW1lbnRSZXF1ZXN0XCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcInBsYXRmb3JtXCI6XCJkZXNrdG9wXCIsXCJyZWZlcnJlckRvbWFpblwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJyZW1lbWJlclwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzI1NTQzODRmY2VfbWRpNm1qazZudGdcIixcIm5hbWVcIjpcInJlbWVtYmVyXCJ9fSxcInJlbWVtYmVyZWRcIjpbXSxcInJlbmRlcmVkQnV0dG9uc1wiOltcInBheXBhbFwiXSxcInNlc3Npb25JRFwiOlwidWlkXzRmOTFlZmMwOWRfbWRpNm1qazZudGdcIixcInNka0NvcnJlbGF0aW9uSURcIjpcImY2MjU2NDEzZGM2NDhcIixcInNlc3Npb25TdGF0ZVwiOntcImdldFwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzYzNGM2ZDFjZGFfbWRpNm1qazZudGdcIixcIm5hbWVcIjpcImdldFwifX0sXCJzZXRcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF8zZmZiNjA5OGUyX21kaTZtams2bnRnXCIsXCJuYW1lXCI6XCJzZXRcIn19fSxcImdldFNob3BwZXJJbnNpZ2h0c1VzZWRcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF9lMWY3ZDQ4NDAwX21kaTZtams2bnRnXCIsXCJuYW1lXCI6XCJDclwifX0sXCJzdGFnZUhvc3RcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwic3RvcmFnZUlEXCI6XCJ1aWRfYzM2NzJkMjYxYl9tZGk2bWprNm50Z1wiLFwic3RvcmFnZVN0YXRlXCI6e1wiZ2V0XCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfZWEyMmJiMjQwOV9tZGk2bWprNm50Z1wiLFwibmFtZVwiOlwiZ2V0XCJ9fSxcInNldFwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzAyZTYyN2VjN2VfbWRpNm1qazZudGdcIixcIm5hbWVcIjpcInNldFwifX19LFwic3VwcG9ydGVkTmF0aXZlQnJvd3NlclwiOmZhbHNlLFwic3VwcG9ydHNQb3B1cHNcIjp0cnVlLFwidGVzdFwiOntcImFjdGlvblwiOlwiY2hlY2tvdXRcIn0sXCJ1c2VyRXhwZXJpZW5jZUZsb3dcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwidXNlcklEVG9rZW5cIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwidmF1bHRcIjpmYWxzZSxcIndhbGxldFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn19LFwiZXhwb3J0c1wiOntcImluaXRcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF9kZmMxMjgyZTM0X21kaTZtams2bnRnXCIsXCJuYW1lXCI6XCJpbml0XCJ9fSxcImNsb3NlXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfYzViMzYyNDYxM19tZGk2bWprNm50Z1wiLFwibmFtZVwiOlwiY2xvc2U6Om1lbW9pemVkXCJ9fSxcImNoZWNrQ2xvc2VcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF9lYWI1YzRjODk4X21kaTZtams2bnRnXCIsXCJuYW1lXCI6XCJjaGVja0Nsb3NlXCJ9fSxcInJlc2l6ZVwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzI0N2JiOGQxOGZfbWRpNm1qazZudGdcIixcIm5hbWVcIjpcIl9uXCJ9fSxcIm9uRXJyb3JcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF81MDViN2ZiZDk2X21kaTZtams2bnRnXCIsXCJuYW1lXCI6XCJxblwifX0sXCJzaG93XCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfNGRmNzAwZTNjMV9tZGk2bWprNm50Z1wiLFwibmFtZVwiOlwiZ25cIn19LFwiaGlkZVwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzBmYWEyNzZjOThfbWRpNm1qazZudGdcIixcIm5hbWVcIjpcInZuXCJ9fSxcImV4cG9ydFwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkX2RiYmU0NzhiOGRfbWRpNm1qazZudGdcIixcIm5hbWVcIjpcIlduXCJ9fX19In19__"
            title="PayPal" allowpaymentrequest="allowpaymentrequest" scrolling="no" id="jsx-iframe-7cea341285" class="component-frame visible" style="background-color: transparent; border: none;"></iframe>
          <div id="smart-menu" class="smart-menu"></div>
          <div id="installments-modal" class="installments-modal"></div><iframe name="__detect_close_uid_ed5af17d0a_mdi6mjk6ntg__" style="display: none;"></iframe>
        </div>
      </div>
      <div class="product-info__tips empty:tw-hidden tw-mt-3 tw-text-center tw-font-medium tw-text-sm tw-opacity-70 lg:tw-text-[17px] lg:tw-leading-6" data-unavailable="Product is unavailable." data-out-of-stock="Product was out of stock."></div>
    </div>
    <div class="product-info__share-wrapper tw-flex tw-space-x-5 product-info__block tw-my-6">
      <a target="_blank" data-track="social_share" href="//www.facebook.com/sharer.php?u=https://www.luckyeo.com/products/dust-proof-screen-protector" class="tw-flex tw-items-center tw-text-current tw-no-underline share-facebook dj_skin_text">
        <svg class="" width="20" height="20" xmlns="http://www.w3.org/2000/svg"><path d="M11.605 2c-.48 0-.932.057-1.464.283-1.092.48-1.624 1.555-1.624 3.279V7.23H7V10h1.517v8h3.088v-8h2.102L14 7.23h-2.395V5.986c0-.396.026-.679.133-.82.133-.254.399-.367.825-.367h1.41v-2.77h-2.368V2z" fill="currentColor"></path></svg>
        <span class="product-info__share-item-label tw-pl-2 tw-body-sm">Share</span>
      </a>
      <a target="_blank" data-track="social_share" href="//twitter.com/share?text=&amp;url=https://www.luckyeo.com/products/dust-proof-screen-protector" class="tw-flex tw-items-center tw-text-current tw-no-underline share-twitter dj_skin_text">
        <svg class="" width="20" height="20" xmlns="http://www.w3.org/2000/svg"><path d="M17.423 6.564c0 6.41-4.21 11.026-10.404 11.228C4.4 17.995 2.606 17.2 1 15.998c1.794.202 4.21-.39 5.397-1.606-1.794 0-2.807-1.013-3.4-2.388h1.606C2.997 11.397 1.78 10.196 1.78 8.2c.391.202.796.39 1.606.39-1.403-.795-2.199-3.4-1.2-5.006C3.98 5.58 6.18 7.39 9.811 7.577c-1.013-3.994 4.21-6.02 6.41-3.4 1.013-.203 1.606-.594 2.387-1.014-.202 1.013-.795 1.607-1.606 1.997.796 0 1.404-.202 1.997-.593-.188.796-.984 1.606-1.577 1.997z" fill="currentColor"></path></svg>
        <span class="product-info__share-item-label tw-pl-2 tw-body-sm">Tweet</span>
      </a>
      <a target="_blank" data-track="social_share" href="//pinterest.com/pin/create/button/?url=https://www.luckyeo.com/products/dust-proof-screen-protector&amp;media=&amp;description=" class="tw-flex tw-items-center tw-text-current tw-no-underline share-pinterest dj_skin_text">
        <svg class="" width="20" height="20" xmlns="http://www.w3.org/2000/svg"><path d="M11.719 13.817a2.784 2.784 0 0 1-2.34-1.132l-.636 2.338c-.304.912-.731 1.78-1.272 2.583-.045.132-.417.394-.417.394a1.716 1.716 0 0 1-.25-.653 9.155 9.155 0 0 1 .035-2.824c.185-.769 1.193-4.891 1.193-4.891a3.468 3.468 0 0 1-.304-1.462c0-1.367.82-2.391 1.84-2.391.705-.01 1.286.535 1.297 1.218.001.056-.002.112-.009.168a19.2 19.2 0 0 1-.842 3.278c-.2.765.28 1.542 1.07 1.735.14.035.287.05.432.042 1.807 0 3.199-1.844 3.199-4.506.067-2.144-1.676-3.934-3.892-4a3.83 3.83 0 0 0-.363.005c-2.43-.1-4.484 1.724-4.588 4.075a3.748 3.748 0 0 0 .747 2.445c.073.076.1.183.072.283-.076.308-.25.985-.284 1.12-.045.185-.145.223-.34.135-1.328-.837-2.11-2.282-2.065-3.814 0-3.102 2.333-5.956 6.723-5.956 3.295-.16 6.101 2.293 6.267 5.481.005.07.007.14.008.21.01 3.387-2.203 6.12-5.281 6.12" fill="currentColor"></path></svg>
        <span class="product-info__share-item-label tw-pl-2 tw-body-sm">Pin it</span>
      </a>
    </div>
    <div class="product-info__block tw-my-6 tw-relative tw-block tw-w-full tw-rounded-global" style="padding-bottom:9.533%;">
      <img class="tw-absolute tw-inset-0 tw-m-auto tw-w-full tw-h-full tw-object-cover tw-rounded-global lazyautosizes lazyloaded"
        src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAABlBMVEXx8fH///8wmV1OAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAACklEQVQImWNgAAAAAgAB9HFkpgAAAABJRU5ErkJggg==" data-sizes="auto" alt=""
        data-srcset="//img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 48w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 180w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 540w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 720w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 900w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 1024w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 1280w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 1366w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 1440w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 1536w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 1600w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 1920w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 2056w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 2560w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 2732w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 2880w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 3072w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 3200w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 3840w"
        sizes="616px"
        srcset="//img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 48w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 180w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 540w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 720w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 900w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 1024w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 1280w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 1366w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 1440w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 1536w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 1600w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 1920w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 2056w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 2560w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 2732w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 2880w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 3072w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 3200w, //img.fantaskycdn.com/8a4d380b79aad4086bc793bdd43d100a_720x.jpg 3840w">
    </div>
    <div class="bundle-combination-container">
      <div class="common__product-row">
        <bundle-product-list data-version="0112 15:08" class="bundle-main" style-type="sutra" is-quick-shop="true" pid="387037bb-504a-47f0-af33-91fdc9ceb9cc" title-text="Buy Together Get More OFF!! " title-color="rgba(208, 44, 36, 1)"
          btn-bg-color="rgba(12, 68, 55, 1)" btn-text-color="#ffffff" impr="1" imprevt="1" style="cursor: wait; pointer-events: none;"></bundle-product-list>
      </div>
    </div>
    <style>
      .bundle-combination-container {
        --color_price: #CD201A;
        --color_title: rgba(208, 44, 36, 1);
        --color_btn_bg: rgba(12, 68, 55, 1);
        --color_btn_color: #ffffff;
        --color_origin_price: rgba(171, 171, 171, 1);
      }

      .app-container {
        padding: var(--general-layout-spacing, var(--page-spacing, 40px));
        max-width: var(--general-layout-width, var(--layout-width, var(--page-width, 1140px)));
        margin: 0 auto;
      }
    </style>
    <script id="apps_bundle-1539149753700">
      try {
        (() => {
          const productInfo = document.querySelector('.product-info');
          const productInfoBody = document.querySelector('.product-info-body');
          const curProductInfo = productInfo || productInfoBody;
          const productInfoIn = !document.querySelector('div[data-section-type*="//apps/appbundle/blocks/bundle-combination/"] bundle-product-list');
          // 仅针对 Hero 做处理 ,debug APPS-2880
          if (window.C_SETTINGS.theme.merchant_theme_name === 'Hero' && productInfoIn) {
            const $target = curProductInfo?.parentElement;
            if ($target) {
              const $targetZIndex = window.getComputedStyle($target)['zIndex'];
              let newIndex = $targetZIndex === ' auto' ? 1 : parseInt($targetZIndex) + 1;
              $target.style.zIndex = newIndex;
            }
          }
          // Flash主题的遮挡问题,低于20,被兄弟节点图片覆盖,超过100,盖住了底部满减优惠,超过1000盖住了顶部吸附,只能取20-100之间
          if (curProductInfo && window?.C_SETTINGS?.theme.merchant_theme_name === "Flash") {
            curProductInfo.style.zIndex = 20;
          }
          try {
            ! function(t) {
              "function" == typeof define && define.amd ? define(t) : t()
            }((function() {
              "use strict";

              function t(t, e, i, o) {
                var n, s = arguments.length,
                  r = s < 3 ? e : null === o ? o = Object.getOwnPropertyDescriptor(e, i) : o;
                if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(t, e, i, o);
                else
                  for (var l = t.length - 1; l >= 0; l--)(n = t[l]) && (r = (s < 3 ? n(r) : s > 3 ? n(e, i, r) : n(e, i)) || r);
                return s > 3 && r && Object.defineProperty(e, i, r), r
              }

              function e(t, e, i, o) {
                return new(i || (i = Promise))((function(n, s) {
                  function r(t) {
                    try {
                      a(o.next(t))
                    } catch (t) {
                      s(t)
                    }
                  }

                  function l(t) {
                    try {
                      a(o.throw(t))
                    } catch (t) {
                      s(t)
                    }
                  }

                  function a(t) {
                    var e;
                    t.done ? n(t.value) : (e = t.value, e instanceof i ? e : new i((function(t) {
                      t(e)
                    }))).then(r, l)
                  }
                  a((o = o.apply(t, e || [])).next())
                }))
              }
              "function" == typeof SuppressedError && SuppressedError;
              const i = window,
                o = i.ShadowRoot && (void 0 === i.ShadyCSS || i.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype,
                n = Symbol(),
                s = new WeakMap;
              class r {
                constructor(t, e, i) {
                  if (this._$cssResult$ = !0, i !== n) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
                  this.cssText = t, this.t = e
                }
                get styleSheet() {
                  let t = this.o;
                  const e = this.t;
                  if (o && void 0 === t) {
                    const i = void 0 !== e && 1 === e.length;
                    i && (t = s.get(e)), void 0 === t && ((this.o = t = new CSSStyleSheet).replaceSync(this.cssText), i && s.set(e, t))
                  }
                  return t
                }
                toString() {
                  return this.cssText
                }
              }
              const l = (t, ...e) => {
                  const i = 1 === t.length ? t[0] : e.reduce(((e, i, o) => e + (t => {
                    if (!0 === t._$cssResult$) return t.cssText;
                    if ("number" == typeof t) return t;
                    throw Error("Value passed to 'css' function must be a 'css' function result: " + t + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")
                  })(i) + t[o + 1]), t[0]);
                  return new r(i, t, n)
                },
                a = o ? t => t : t => t instanceof CSSStyleSheet ? (t => {
                  let e = "";
                  for (const i of t.cssRules) e += i.cssText;
                  return (t => new r("string" == typeof t ? t : t + "", void 0, n))(e)
                })(t) : t;
              var d;
              const c = window,
                p = c.trustedTypes,
                h = p ? p.emptyScript : "",
                u = c.reactiveElementPolyfillSupport,
                f = {
                  toAttribute(t, e) {
                    switch (e) {
                      case Boolean:
                        t = t ? h : null;
                        break;
                      case Object:
                      case Array:
                        t = null == t ? t : JSON.stringify(t)
                    }
                    return t
                  },
                  fromAttribute(t, e) {
                    let i = t;
                    switch (e) {
                      case Boolean:
                        i = null !== t;
                        break;
                      case Number:
                        i = null === t ? null : Number(t);
                        break;
                      case Object:
                      case Array:
                        try {
                          i = JSON.parse(t)
                        } catch (t) {
                          i = null
                        }
                    }
                    return i
                  }
                },
                v = (t, e) => e !== t && (e == e || t == t),
                m = {
                  attribute: !0,
                  type: String,
                  converter: f,
                  reflect: !1,
                  hasChanged: v
                },
                g = "finalized";
              class y extends HTMLElement {
                constructor() {
                  super(), this._$Ei = new Map, this.isUpdatePending = !1, this.hasUpdated = !1, this._$El = null, this._$Eu()
                }
                static addInitializer(t) {
                  var e;
                  this.finalize(), (null !== (e = this.h) && void 0 !== e ? e : this.h = []).push(t)
                }
                static get observedAttributes() {
                  this.finalize();
                  const t = [];
                  return this.elementProperties.forEach(((e, i) => {
                    const o = this._$Ep(i, e);
                    void 0 !== o && (this._$Ev.set(o, i), t.push(o))
                  })), t
                }
                static createProperty(t, e = m) {
                  if (e.state && (e.attribute = !1), this.finalize(), this.elementProperties.set(t, e), !e.noAccessor && !this.prototype.hasOwnProperty(t)) {
                    const i = "symbol" == typeof t ? Symbol() : "__" + t,
                      o = this.getPropertyDescriptor(t, i, e);
                    void 0 !== o && Object.defineProperty(this.prototype, t, o)
                  }
                }
                static getPropertyDescriptor(t, e, i) {
                  return {
                    get() {
                      return this[e]
                    },
                    set(o) {
                      const n = this[t];
                      this[e] = o, this.requestUpdate(t, n, i)
                    },
                    configurable: !0,
                    enumerable: !0
                  }
                }
                static getPropertyOptions(t) {
                  return this.elementProperties.get(t) || m
                }
                static finalize() {
                  if (this.hasOwnProperty(g)) return !1;
                  this[g] = !0;
                  const t = Object.getPrototypeOf(this);
                  if (t.finalize(), void 0 !== t.h && (this.h = [...t.h]), this.elementProperties = new Map(t.elementProperties), this._$Ev = new Map, this.hasOwnProperty("properties")) {
                    const t = this.properties,
                      e = [...Object.getOwnPropertyNames(t), ...Object.getOwnPropertySymbols(t)];
                    for (const i of e) this.createProperty(i, t[i])
                  }
                  return this.elementStyles = this.finalizeStyles(this.styles), !0
                }
                static finalizeStyles(t) {
                  const e = [];
                  if (Array.isArray(t)) {
                    const i = new Set(t.flat(1 / 0).reverse());
                    for (const t of i) e.unshift(a(t))
                  } else void 0 !== t && e.push(a(t));
                  return e
                }
                static _$Ep(t, e) {
                  const i = e.attribute;
                  return !1 === i ? void 0 : "string" == typeof i ? i : "string" == typeof t ? t.toLowerCase() : void 0
                }
                _$Eu() {
                  var t;
                  this._$E_ = new Promise((t => this.enableUpdating = t)), this._$AL = new Map, this._$Eg(), this.requestUpdate(), null === (t = this.constructor.h) || void 0 === t || t.forEach((t => t(this)))
                }
                addController(t) {
                  var e, i;
                  (null !== (e = this._$ES) && void 0 !== e ? e : this._$ES = []).push(t), void 0 !== this.renderRoot && this.isConnected && (null === (i = t.hostConnected) || void 0 === i || i.call(t))
                }
                removeController(t) {
                  var e;
                  null === (e = this._$ES) || void 0 === e || e.splice(this._$ES.indexOf(t) >>> 0, 1)
                }
                _$Eg() {
                  this.constructor.elementProperties.forEach(((t, e) => {
                    this.hasOwnProperty(e) && (this._$Ei.set(e, this[e]), delete this[e])
                  }))
                }
                createRenderRoot() {
                  var t;
                  const e = null !== (t = this.shadowRoot) && void 0 !== t ? t : this.attachShadow(this.constructor.shadowRootOptions);
                  return ((t, e) => {
                    o ? t.adoptedStyleSheets = e.map((t => t instanceof CSSStyleSheet ? t : t.styleSheet)) : e.forEach((e => {
                      const o = document.createElement("style"),
                        n = i.litNonce;
                      void 0 !== n && o.setAttribute("nonce", n), o.textContent = e.cssText, t.appendChild(o)
                    }))
                  })(e, this.constructor.elementStyles), e
                }
                connectedCallback() {
                  var t;
                  void 0 === this.renderRoot && (this.renderRoot = this.createRenderRoot()), this.enableUpdating(!0), null === (t = this._$ES) || void 0 === t || t.forEach((t => {
                    var e;
                    return null === (e = t.hostConnected) || void 0 === e ? void 0 : e.call(t)
                  }))
                }
                enableUpdating(t) {}
                disconnectedCallback() {
                  var t;
                  null === (t = this._$ES) || void 0 === t || t.forEach((t => {
                    var e;
                    return null === (e = t.hostDisconnected) || void 0 === e ? void 0 : e.call(t)
                  }))
                }
                attributeChangedCallback(t, e, i) {
                  this._$AK(t, i)
                }
                _$EO(t, e, i = m) {
                  var o;
                  const n = this.constructor._$Ep(t, i);
                  if (void 0 !== n && !0 === i.reflect) {
                    const s = (void 0 !== (null === (o = i.converter) || void 0 === o ? void 0 : o.toAttribute) ? i.converter : f).toAttribute(e, i.type);
                    this._$El = t, null == s ? this.removeAttribute(n) : this.setAttribute(n, s), this._$El = null
                  }
                }
                _$AK(t, e) {
                  var i;
                  const o = this.constructor,
                    n = o._$Ev.get(t);
                  if (void 0 !== n && this._$El !== n) {
                    const t = o.getPropertyOptions(n),
                      s = "function" == typeof t.converter ? {
                        fromAttribute: t.converter
                      } : void 0 !== (null === (i = t.converter) || void 0 === i ? void 0 : i.fromAttribute) ? t.converter : f;
                    this._$El = n, this[n] = s.fromAttribute(e, t.type), this._$El = null
                  }
                }
                requestUpdate(t, e, i) {
                  let o = !0;
                  void 0 !== t && (((i = i || this.constructor.getPropertyOptions(t)).hasChanged || v)(this[t], e) ? (this._$AL.has(t) || this._$AL.set(t, e), !0 === i.reflect && this._$El !== t && (void 0 === this._$EC && (this._$EC =
                    new Map), this._$EC.set(t, i))) : o = !1), !this.isUpdatePending && o && (this._$E_ = this._$Ej())
                }
                async _$Ej() {
                  this.isUpdatePending = !0;
                  try {
                    await this._$E_
                  } catch (t) {
                    Promise.reject(t)
                  }
                  const t = this.scheduleUpdate();
                  return null != t && await t, !this.isUpdatePending
                }
                scheduleUpdate() {
                  return this.performUpdate()
                }
                performUpdate() {
                  var t;
                  if (!this.isUpdatePending) return;
                  this.hasUpdated, this._$Ei && (this._$Ei.forEach(((t, e) => this[e] = t)), this._$Ei = void 0);
                  let e = !1;
                  const i = this._$AL;
                  try {
                    e = this.shouldUpdate(i), e ? (this.willUpdate(i), null === (t = this._$ES) || void 0 === t || t.forEach((t => {
                      var e;
                      return null === (e = t.hostUpdate) || void 0 === e ? void 0 : e.call(t)
                    })), this.update(i)) : this._$Ek()
                  } catch (t) {
                    throw e = !1, this._$Ek(), t
                  }
                  e && this._$AE(i)
                }
                willUpdate(t) {}
                _$AE(t) {
                  var e;
                  null === (e = this._$ES) || void 0 === e || e.forEach((t => {
                    var e;
                    return null === (e = t.hostUpdated) || void 0 === e ? void 0 : e.call(t)
                  })), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(t)), this.updated(t)
                }
                _$Ek() {
                  this._$AL = new Map, this.isUpdatePending = !1
                }
                get updateComplete() {
                  return this.getUpdateComplete()
                }
                getUpdateComplete() {
                  return this._$E_
                }
                shouldUpdate(t) {
                  return !0
                }
                update(t) {
                  void 0 !== this._$EC && (this._$EC.forEach(((t, e) => this._$EO(e, this[e], t))), this._$EC = void 0), this._$Ek()
                }
                updated(t) {}
                firstUpdated(t) {}
              }
              var b;
              y[g] = !0, y.elementProperties = new Map, y.elementStyles = [], y.shadowRootOptions = {
                mode: "open"
              }, null == u || u({
                ReactiveElement: y
              }), (null !== (d = c.reactiveElementVersions) && void 0 !== d ? d : c.reactiveElementVersions = []).push("1.6.3");
              const x = window,
                w = x.trustedTypes,
                _ = w ? w.createPolicy("lit-html", {
                  createHTML: t => t
                }) : void 0,
                $ = "$lit$",
                S = `lit$${(Math.random()+"").slice(9)}$`,
                C = "?" + S,
                k = `<${C}>`,
                E = document,
                T = () => E.createComment(""),
                P = t => null === t || "object" != typeof t && "function" != typeof t,
                A = Array.isArray,
                I = "[ \t\n\f\r]",
                z = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,
                O = /-->/g,
                H = />/g,
                L = RegExp(`>|${I}(?:([^\\s"'>=/]+)(${I}*=${I}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`, "g"),
                B = /'/g,
                j = /"/g,
                N = /^(?:script|style|textarea|title)$/i,
                R = (t => (e, ...i) => ({
                  _$litType$: t,
                  strings: e,
                  values: i
                }))(1),
                q = Symbol.for("lit-noChange"),
                V = Symbol.for("lit-nothing"),
                M = new WeakMap,
                U = E.createTreeWalker(E, 129, null, !1);

              function D(t, e) {
                if (!Array.isArray(t) || !t.hasOwnProperty("raw")) throw Error("invalid template strings array");
                return void 0 !== _ ? _.createHTML(e) : e
              }
              const W = (t, e) => {
                const i = t.length - 1,
                  o = [];
                let n, s = 2 === e ? "<svg>" : "",
                  r = z;
                for (let e = 0; e < i; e++) {
                  const i = t[e];
                  let l, a, d = -1,
                    c = 0;
                  for (; c < i.length && (r.lastIndex = c, a = r.exec(i), null !== a);) c = r.lastIndex, r === z ? "!--" === a[1] ? r = O : void 0 !== a[1] ? r = H : void 0 !== a[2] ? (N.test(a[2]) && (n = RegExp("</" + a[2], "g")), r = L) :
                    void 0 !== a[3] && (r = L) : r === L ? ">" === a[0] ? (r = null != n ? n : z, d = -1) : void 0 === a[1] ? d = -2 : (d = r.lastIndex - a[2].length, l = a[1], r = void 0 === a[3] ? L : '"' === a[3] ? j : B) : r === j ||
                    r === B ? r = L : r === O || r === H ? r = z : (r = L, n = void 0);
                  const p = r === L && t[e + 1].startsWith("/>") ? " " : "";
                  s += r === z ? i + k : d >= 0 ? (o.push(l), i.slice(0, d) + $ + i.slice(d) + S + p) : i + S + (-2 === d ? (o.push(void 0), e) : p)
                }
                return [D(t, s + (t[i] || "<?>") + (2 === e ? "</svg>" : "")), o]
              };
              class F {
                constructor({
                  strings: t,
                  _$litType$: e
                }, i) {
                  let o;
                  this.parts = [];
                  let n = 0,
                    s = 0;
                  const r = t.length - 1,
                    l = this.parts,
                    [a, d] = W(t, e);
                  if (this.el = F.createElement(a, i), U.currentNode = this.el.content, 2 === e) {
                    const t = this.el.content,
                      e = t.firstChild;
                    e.remove(), t.append(...e.childNodes)
                  }
                  for (; null !== (o = U.nextNode()) && l.length < r;) {
                    if (1 === o.nodeType) {
                      if (o.hasAttributes()) {
                        const t = [];
                        for (const e of o.getAttributeNames())
                          if (e.endsWith($) || e.startsWith(S)) {
                            const i = d[s++];
                            if (t.push(e), void 0 !== i) {
                              const t = o.getAttribute(i.toLowerCase() + $).split(S),
                                e = /([.?@])?(.*)/.exec(i);
                              l.push({
                                type: 1,
                                index: n,
                                name: e[2],
                                strings: t,
                                ctor: "." === e[1] ? Z : "?" === e[1] ? X : "@" === e[1] ? tt : Y
                              })
                            } else l.push({
                              type: 6,
                              index: n
                            })
                          } for (const e of t) o.removeAttribute(e)
                      }
                      if (N.test(o.tagName)) {
                        const t = o.textContent.split(S),
                          e = t.length - 1;
                        if (e > 0) {
                          o.textContent = w ? w.emptyScript : "";
                          for (let i = 0; i < e; i++) o.append(t[i], T()), U.nextNode(), l.push({
                            type: 2,
                            index: ++n
                          });
                          o.append(t[e], T())
                        }
                      }
                    } else if (8 === o.nodeType)
                      if (o.data === C) l.push({
                        type: 2,
                        index: n
                      });
                      else {
                        let t = -1;
                        for (; - 1 !== (t = o.data.indexOf(S, t + 1));) l.push({
                          type: 7,
                          index: n
                        }), t += S.length - 1
                      } n++
                  }
                }
                static createElement(t, e) {
                  const i = E.createElement("template");
                  return i.innerHTML = t, i
                }
              }

              function G(t, e, i = t, o) {
                var n, s, r, l;
                if (e === q) return e;
                let a = void 0 !== o ? null === (n = i._$Co) || void 0 === n ? void 0 : n[o] : i._$Cl;
                const d = P(e) ? void 0 : e._$litDirective$;
                return (null == a ? void 0 : a.constructor) !== d && (null === (s = null == a ? void 0 : a._$AO) || void 0 === s || s.call(a, !1), void 0 === d ? a = void 0 : (a = new d(t), a._$AT(t, i, o)), void 0 !== o ? (null !== (r = (l =
                  i)._$Co) && void 0 !== r ? r : l._$Co = [])[o] = a : i._$Cl = a), void 0 !== a && (e = G(t, a._$AS(t, e.values), a, o)), e
              }
              class Q {
                constructor(t, e) {
                  this._$AV = [], this._$AN = void 0, this._$AD = t, this._$AM = e
                }
                get parentNode() {
                  return this._$AM.parentNode
                }
                get _$AU() {
                  return this._$AM._$AU
                }
                u(t) {
                  var e;
                  const {
                    el: {
                      content: i
                    },
                    parts: o
                  } = this._$AD, n = (null !== (e = null == t ? void 0 : t.creationScope) && void 0 !== e ? e : E).importNode(i, !0);
                  U.currentNode = n;
                  let s = U.nextNode(),
                    r = 0,
                    l = 0,
                    a = o[0];
                  for (; void 0 !== a;) {
                    if (r === a.index) {
                      let e;
                      2 === a.type ? e = new J(s, s.nextSibling, this, t) : 1 === a.type ? e = new a.ctor(s, a.name, a.strings, this, t) : 6 === a.type && (e = new et(s, this, t)), this._$AV.push(e), a = o[++l]
                    }
                    r !== (null == a ? void 0 : a.index) && (s = U.nextNode(), r++)
                  }
                  return U.currentNode = E, n
                }
                v(t) {
                  let e = 0;
                  for (const i of this._$AV) void 0 !== i && (void 0 !== i.strings ? (i._$AI(t, i, e), e += i.strings.length - 2) : i._$AI(t[e])), e++
                }
              }
              class J {
                constructor(t, e, i, o) {
                  var n;
                  this.type = 2, this._$AH = V, this._$AN = void 0, this._$AA = t, this._$AB = e, this._$AM = i, this.options = o, this._$Cp = null === (n = null == o ? void 0 : o.isConnected) || void 0 === n || n
                }
                get _$AU() {
                  var t, e;
                  return null !== (e = null === (t = this._$AM) || void 0 === t ? void 0 : t._$AU) && void 0 !== e ? e : this._$Cp
                }
                get parentNode() {
                  let t = this._$AA.parentNode;
                  const e = this._$AM;
                  return void 0 !== e && 11 === (null == t ? void 0 : t.nodeType) && (t = e.parentNode), t
                }
                get startNode() {
                  return this._$AA
                }
                get endNode() {
                  return this._$AB
                }
                _$AI(t, e = this) {
                  t = G(this, t, e), P(t) ? t === V || null == t || "" === t ? (this._$AH !== V && this._$AR(), this._$AH = V) : t !== this._$AH && t !== q && this._(t) : void 0 !== t._$litType$ ? this.g(t) : void 0 !== t.nodeType ? this.$(
                    t) : (t => A(t) || "function" == typeof(null == t ? void 0 : t[Symbol.iterator]))(t) ? this.T(t) : this._(t)
                }
                k(t) {
                  return this._$AA.parentNode.insertBefore(t, this._$AB)
                }
                $(t) {
                  this._$AH !== t && (this._$AR(), this._$AH = this.k(t))
                }
                _(t) {
                  this._$AH !== V && P(this._$AH) ? this._$AA.nextSibling.data = t : this.$(E.createTextNode(t)), this._$AH = t
                }
                g(t) {
                  var e;
                  const {
                    values: i,
                    _$litType$: o
                  } = t, n = "number" == typeof o ? this._$AC(t) : (void 0 === o.el && (o.el = F.createElement(D(o.h, o.h[0]), this.options)), o);
                  if ((null === (e = this._$AH) || void 0 === e ? void 0 : e._$AD) === n) this._$AH.v(i);
                  else {
                    const t = new Q(n, this),
                      e = t.u(this.options);
                    t.v(i), this.$(e), this._$AH = t
                  }
                }
                _$AC(t) {
                  let e = M.get(t.strings);
                  return void 0 === e && M.set(t.strings, e = new F(t)), e
                }
                T(t) {
                  A(this._$AH) || (this._$AH = [], this._$AR());
                  const e = this._$AH;
                  let i, o = 0;
                  for (const n of t) o === e.length ? e.push(i = new J(this.k(T()), this.k(T()), this, this.options)) : i = e[o], i._$AI(n), o++;
                  o < e.length && (this._$AR(i && i._$AB.nextSibling, o), e.length = o)
                }
                _$AR(t = this._$AA.nextSibling, e) {
                  var i;
                  for (null === (i = this._$AP) || void 0 === i || i.call(this, !1, !0, e); t && t !== this._$AB;) {
                    const e = t.nextSibling;
                    t.remove(), t = e
                  }
                }
                setConnected(t) {
                  var e;
                  void 0 === this._$AM && (this._$Cp = t, null === (e = this._$AP) || void 0 === e || e.call(this, t))
                }
              }
              class Y {
                constructor(t, e, i, o, n) {
                  this.type = 1, this._$AH = V, this._$AN = void 0, this.element = t, this.name = e, this._$AM = o, this.options = n, i.length > 2 || "" !== i[0] || "" !== i[1] ? (this._$AH = Array(i.length - 1).fill(new String), this
                    .strings = i) : this._$AH = V
                }
                get tagName() {
                  return this.element.tagName
                }
                get _$AU() {
                  return this._$AM._$AU
                }
                _$AI(t, e = this, i, o) {
                  const n = this.strings;
                  let s = !1;
                  if (void 0 === n) t = G(this, t, e, 0), s = !P(t) || t !== this._$AH && t !== q, s && (this._$AH = t);
                  else {
                    const o = t;
                    let r, l;
                    for (t = n[0], r = 0; r < n.length - 1; r++) l = G(this, o[i + r], e, r), l === q && (l = this._$AH[r]), s || (s = !P(l) || l !== this._$AH[r]), l === V ? t = V : t !== V && (t += (null != l ? l : "") + n[r + 1]), this
                      ._$AH[r] = l
                  }
                  s && !o && this.j(t)
                }
                j(t) {
                  t === V ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, null != t ? t : "")
                }
              }
              class Z extends Y {
                constructor() {
                  super(...arguments), this.type = 3
                }
                j(t) {
                  this.element[this.name] = t === V ? void 0 : t
                }
              }
              const K = w ? w.emptyScript : "";
              class X extends Y {
                constructor() {
                  super(...arguments), this.type = 4
                }
                j(t) {
                  t && t !== V ? this.element.setAttribute(this.name, K) : this.element.removeAttribute(this.name)
                }
              }
              class tt extends Y {
                constructor(t, e, i, o, n) {
                  super(t, e, i, o, n), this.type = 5
                }
                _$AI(t, e = this) {
                  var i;
                  if ((t = null !== (i = G(this, t, e, 0)) && void 0 !== i ? i : V) === q) return;
                  const o = this._$AH,
                    n = t === V && o !== V || t.capture !== o.capture || t.once !== o.once || t.passive !== o.passive,
                    s = t !== V && (o === V || n);
                  n && this.element.removeEventListener(this.name, this, o), s && this.element.addEventListener(this.name, this, t), this._$AH = t
                }
                handleEvent(t) {
                  var e, i;
                  "function" == typeof this._$AH ? this._$AH.call(null !== (i = null === (e = this.options) || void 0 === e ? void 0 : e.host) && void 0 !== i ? i : this.element, t) : this._$AH.handleEvent(t)
                }
              }
              class et {
                constructor(t, e, i) {
                  this.element = t, this.type = 6, this._$AN = void 0, this._$AM = e, this.options = i
                }
                get _$AU() {
                  return this._$AM._$AU
                }
                _$AI(t) {
                  G(this, t)
                }
              }
              const it = x.litHtmlPolyfillSupport;
              null == it || it(F, J), (null !== (b = x.litHtmlVersions) && void 0 !== b ? b : x.litHtmlVersions = []).push("2.8.0");
              var ot, nt;
              class st extends y {
                constructor() {
                  super(...arguments), this.renderOptions = {
                    host: this
                  }, this._$Do = void 0
                }
                createRenderRoot() {
                  var t, e;
                  const i = super.createRenderRoot();
                  return null !== (t = (e = this.renderOptions).renderBefore) && void 0 !== t || (e.renderBefore = i.firstChild), i
                }
                update(t) {
                  const e = this.render();
                  this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = ((t, e, i) => {
                    var o, n;
                    const s = null !== (o = null == i ? void 0 : i.renderBefore) && void 0 !== o ? o : e;
                    let r = s._$litPart$;
                    if (void 0 === r) {
                      const t = null !== (n = null == i ? void 0 : i.renderBefore) && void 0 !== n ? n : null;
                      s._$litPart$ = r = new J(e.insertBefore(T(), t), t, void 0, null != i ? i : {})
                    }
                    return r._$AI(t), r
                  })(e, this.renderRoot, this.renderOptions)
                }
                connectedCallback() {
                  var t;
                  super.connectedCallback(), null === (t = this._$Do) || void 0 === t || t.setConnected(!0)
                }
                disconnectedCallback() {
                  var t;
                  super.disconnectedCallback(), null === (t = this._$Do) || void 0 === t || t.setConnected(!1)
                }
                render() {
                  return q
                }
              }
              st.finalized = !0, st._$litElement$ = !0, null === (ot = globalThis.litElementHydrateSupport) || void 0 === ot || ot.call(globalThis, {
                LitElement: st
              });
              const rt = globalThis.litElementPolyfillSupport;
              null == rt || rt({
                LitElement: st
              }), (null !== (nt = globalThis.litElementVersions) && void 0 !== nt ? nt : globalThis.litElementVersions = []).push("3.3.3");
              const lt = (t, e) => "method" === e.kind && e.descriptor && !("value" in e.descriptor) ? {
                  ...e,
                  finisher(i) {
                    i.createProperty(e.key, t)
                  }
                } : {
                  kind: "field",
                  key: Symbol(),
                  placement: "own",
                  descriptor: {},
                  originalKey: e.key,
                  initializer() {
                    "function" == typeof e.initializer && (this[e.key] = e.initializer.call(this))
                  },
                  finisher(i) {
                    i.createProperty(e.key, t)
                  }
                },
                at = (t, e, i) => {
                  e.constructor.createProperty(i, t)
                };

              function dt(t) {
                return (e, i) => void 0 !== i ? at(t, e, i) : lt(t, e)
              }

              function ct(t) {
                return dt({
                  ...t,
                  state: !0
                })
              }
              const pt = ({
                finisher: t,
                descriptor: e
              }) => (i, o) => {
                var n;
                if (void 0 === o) {
                  const o = null !== (n = i.originalKey) && void 0 !== n ? n : i.key,
                    s = null != e ? {
                      kind: "method",
                      placement: "prototype",
                      key: o,
                      descriptor: e(i.key)
                    } : {
                      ...i,
                      key: o
                    };
                  return null != t && (s.finisher = function(e) {
                    t(e, o)
                  }), s
                } {
                  const n = i.constructor;
                  void 0 !== e && Object.defineProperty(i, o, e(o)), null == t || t(n, o)
                }
              };

              function ht(t, e) {
                return pt({
                  descriptor: i => {
                    const o = {
                      get() {
                        var e, i;
                        return null !== (i = null === (e = this.renderRoot) || void 0 === e ? void 0 : e.querySelector(t)) && void 0 !== i ? i : null
                      },
                      enumerable: !0,
                      configurable: !0
                    };
                    if (e) {
                      const e = "symbol" == typeof i ? Symbol() : "__" + i;
                      o.get = function() {
                        var i, o;
                        return void 0 === this[e] && (this[e] = null !== (o = null === (i = this.renderRoot) || void 0 === i ? void 0 : i.querySelector(t)) && void 0 !== o ? o : null), this[e]
                      }
                    }
                    return o
                  }
                })
              }
              var ut;

              function ft(t) {
                return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t
              }
              null === (ut = window.HTMLSlotElement) || void 0 === ut || ut.prototype.assignedElements;
              var vt = {
                exports: {}
              };
              ! function(t) {
                function e(i) {
                  return t.exports = e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                    return typeof t
                  } : function(t) {
                    return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
                  }, t.exports.__esModule = !0, t.exports.default = t.exports, e(i)
                }
                t.exports = e, t.exports.__esModule = !0, t.exports.default = t.exports
              }(vt);
              var mt, gt, yt = ft(vt.exports),
                bt = {
                  exports: {}
                },
                xt = {
                  exports: {}
                },
                wt = {
                  exports: {}
                };
              ! function(t) {
                var e = vt.exports.default;
                t.exports = function(t, i) {
                  if ("object" !== e(t) || null === t) return t;
                  var o = t[Symbol.toPrimitive];
                  if (void 0 !== o) {
                    var n = o.call(t, i || "default");
                    if ("object" !== e(n)) return n;
                    throw new TypeError("@@toPrimitive must return a primitive value.")
                  }
                  return ("string" === i ? String : Number)(t)
                }, t.exports.__esModule = !0, t.exports.default = t.exports
              }(wt),
              function(t) {
                var e = vt.exports.default,
                  i = wt.exports;
                t.exports = function(t) {
                  var o = i(t, "string");
                  return "symbol" === e(o) ? o : String(o)
                }, t.exports.__esModule = !0, t.exports.default = t.exports
              }(xt), gt = xt.exports, (mt = bt).exports = function(t, e, i) {
                return (e = gt(e)) in t ? Object.defineProperty(t, e, {
                  value: i,
                  enumerable: !0,
                  configurable: !0,
                  writable: !0
                }) : t[e] = i, t
              }, mt.exports.__esModule = !0, mt.exports.default = mt.exports;
              var _t = ft(bt.exports),
                $t = {
                  exports: {}
                };
              ! function(t) {
                function e(t, e, i, o, n, s, r) {
                  try {
                    var l = t[s](r),
                      a = l.value
                  } catch (t) {
                    return void i(t)
                  }
                  l.done ? e(a) : Promise.resolve(a).then(o, n)
                }
                t.exports = function(t) {
                  return function() {
                    var i = this,
                      o = arguments;
                    return new Promise((function(n, s) {
                      var r = t.apply(i, o);

                      function l(t) {
                        e(r, n, s, l, a, "next", t)
                      }

                      function a(t) {
                        e(r, n, s, l, a, "throw", t)
                      }
                      l(void 0)
                    }))
                  }
                }, t.exports.__esModule = !0, t.exports.default = t.exports
              }($t);
              var St = ft($t.exports),
                Ct = {
                  exports: {}
                };
              ! function(t) {
                var e = vt.exports.default;

                function i() {
                  t.exports = i = function() {
                    return n
                  }, t.exports.__esModule = !0, t.exports.default = t.exports;
                  var o, n = {},
                    s = Object.prototype,
                    r = s.hasOwnProperty,
                    l = Object.defineProperty || function(t, e, i) {
                      t[e] = i.value
                    },
                    a = "function" == typeof Symbol ? Symbol : {},
                    d = a.iterator || "@@iterator",
                    c = a.asyncIterator || "@@asyncIterator",
                    p = a.toStringTag || "@@toStringTag";

                  function h(t, e, i) {
                    return Object.defineProperty(t, e, {
                      value: i,
                      enumerable: !0,
                      configurable: !0,
                      writable: !0
                    }), t[e]
                  }
                  try {
                    h({}, "")
                  } catch (o) {
                    h = function(t, e, i) {
                      return t[e] = i
                    }
                  }

                  function u(t, e, i, o) {
                    var n = e && e.prototype instanceof x ? e : x,
                      s = Object.create(n.prototype),
                      r = new O(o || []);
                    return l(s, "_invoke", {
                      value: P(t, i, r)
                    }), s
                  }

                  function f(t, e, i) {
                    try {
                      return {
                        type: "normal",
                        arg: t.call(e, i)
                      }
                    } catch (t) {
                      return {
                        type: "throw",
                        arg: t
                      }
                    }
                  }
                  n.wrap = u;
                  var v = "suspendedStart",
                    m = "suspendedYield",
                    g = "executing",
                    y = "completed",
                    b = {};

                  function x() {}

                  function w() {}

                  function _() {}
                  var $ = {};
                  h($, d, (function() {
                    return this
                  }));
                  var S = Object.getPrototypeOf,
                    C = S && S(S(H([])));
                  C && C !== s && r.call(C, d) && ($ = C);
                  var k = _.prototype = x.prototype = Object.create($);

                  function E(t) {
                    ["next", "throw", "return"].forEach((function(e) {
                      h(t, e, (function(t) {
                        return this._invoke(e, t)
                      }))
                    }))
                  }

                  function T(t, i) {
                    function o(n, s, l, a) {
                      var d = f(t[n], t, s);
                      if ("throw" !== d.type) {
                        var c = d.arg,
                          p = c.value;
                        return p && "object" == e(p) && r.call(p, "__await") ? i.resolve(p.__await).then((function(t) {
                          o("next", t, l, a)
                        }), (function(t) {
                          o("throw", t, l, a)
                        })) : i.resolve(p).then((function(t) {
                          c.value = t, l(c)
                        }), (function(t) {
                          return o("throw", t, l, a)
                        }))
                      }
                      a(d.arg)
                    }
                    var n;
                    l(this, "_invoke", {
                      value: function(t, e) {
                        function s() {
                          return new i((function(i, n) {
                            o(t, e, i, n)
                          }))
                        }
                        return n = n ? n.then(s, s) : s()
                      }
                    })
                  }

                  function P(t, e, i) {
                    var n = v;
                    return function(s, r) {
                      if (n === g) throw new Error("Generator is already running");
                      if (n === y) {
                        if ("throw" === s) throw r;
                        return {
                          value: o,
                          done: !0
                        }
                      }
                      for (i.method = s, i.arg = r;;) {
                        var l = i.delegate;
                        if (l) {
                          var a = A(l, i);
                          if (a) {
                            if (a === b) continue;
                            return a
                          }
                        }
                        if ("next" === i.method) i.sent = i._sent = i.arg;
                        else if ("throw" === i.method) {
                          if (n === v) throw n = y, i.arg;
                          i.dispatchException(i.arg)
                        } else "return" === i.method && i.abrupt("return", i.arg);
                        n = g;
                        var d = f(t, e, i);
                        if ("normal" === d.type) {
                          if (n = i.done ? y : m, d.arg === b) continue;
                          return {
                            value: d.arg,
                            done: i.done
                          }
                        }
                        "throw" === d.type && (n = y, i.method = "throw", i.arg = d.arg)
                      }
                    }
                  }

                  function A(t, e) {
                    var i = e.method,
                      n = t.iterator[i];
                    if (n === o) return e.delegate = null, "throw" === i && t.iterator.return && (e.method = "return", e.arg = o, A(t, e), "throw" === e.method) || "return" !== i && (e.method = "throw", e.arg = new TypeError(
                      "The iterator does not provide a '" + i + "' method")), b;
                    var s = f(n, t.iterator, e.arg);
                    if ("throw" === s.type) return e.method = "throw", e.arg = s.arg, e.delegate = null, b;
                    var r = s.arg;
                    return r ? r.done ? (e[t.resultName] = r.value, e.next = t.nextLoc, "return" !== e.method && (e.method = "next", e.arg = o), e.delegate = null, b) : r : (e.method = "throw", e.arg = new TypeError(
                      "iterator result is not an object"), e.delegate = null, b)
                  }

                  function I(t) {
                    var e = {
                      tryLoc: t[0]
                    };
                    1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e)
                  }

                  function z(t) {
                    var e = t.completion || {};
                    e.type = "normal", delete e.arg, t.completion = e
                  }

                  function O(t) {
                    this.tryEntries = [{
                      tryLoc: "root"
                    }], t.forEach(I, this), this.reset(!0)
                  }

                  function H(t) {
                    if (t || "" === t) {
                      var i = t[d];
                      if (i) return i.call(t);
                      if ("function" == typeof t.next) return t;
                      if (!isNaN(t.length)) {
                        var n = -1,
                          s = function e() {
                            for (; ++n < t.length;)
                              if (r.call(t, n)) return e.value = t[n], e.done = !1, e;
                            return e.value = o, e.done = !0, e
                          };
                        return s.next = s
                      }
                    }
                    throw new TypeError(e(t) + " is not iterable")
                  }
                  return w.prototype = _, l(k, "constructor", {
                    value: _,
                    configurable: !0
                  }), l(_, "constructor", {
                    value: w,
                    configurable: !0
                  }), w.displayName = h(_, p, "GeneratorFunction"), n.isGeneratorFunction = function(t) {
                    var e = "function" == typeof t && t.constructor;
                    return !!e && (e === w || "GeneratorFunction" === (e.displayName || e.name))
                  }, n.mark = function(t) {
                    return Object.setPrototypeOf ? Object.setPrototypeOf(t, _) : (t.__proto__ = _, h(t, p, "GeneratorFunction")), t.prototype = Object.create(k), t
                  }, n.awrap = function(t) {
                    return {
                      __await: t
                    }
                  }, E(T.prototype), h(T.prototype, c, (function() {
                    return this
                  })), n.AsyncIterator = T, n.async = function(t, e, i, o, s) {
                    void 0 === s && (s = Promise);
                    var r = new T(u(t, e, i, o), s);
                    return n.isGeneratorFunction(e) ? r : r.next().then((function(t) {
                      return t.done ? t.value : r.next()
                    }))
                  }, E(k), h(k, p, "Generator"), h(k, d, (function() {
                    return this
                  })), h(k, "toString", (function() {
                    return "[object Generator]"
                  })), n.keys = function(t) {
                    var e = Object(t),
                      i = [];
                    for (var o in e) i.push(o);
                    return i.reverse(),
                      function t() {
                        for (; i.length;) {
                          var o = i.pop();
                          if (o in e) return t.value = o, t.done = !1, t
                        }
                        return t.done = !0, t
                      }
                  }, n.values = H, O.prototype = {
                    constructor: O,
                    reset: function(t) {
                      if (this.prev = 0, this.next = 0, this.sent = this._sent = o, this.done = !1, this.delegate = null, this.method = "next", this.arg = o, this.tryEntries.forEach(z), !t)
                        for (var e in this) "t" === e.charAt(0) && r.call(this, e) && !isNaN(+e.slice(1)) && (this[e] = o)
                    },
                    stop: function() {
                      this.done = !0;
                      var t = this.tryEntries[0].completion;
                      if ("throw" === t.type) throw t.arg;
                      return this.rval
                    },
                    dispatchException: function(t) {
                      if (this.done) throw t;
                      var e = this;

                      function i(i, n) {
                        return l.type = "throw", l.arg = t, e.next = i, n && (e.method = "next", e.arg = o), !!n
                      }
                      for (var n = this.tryEntries.length - 1; n >= 0; --n) {
                        var s = this.tryEntries[n],
                          l = s.completion;
                        if ("root" === s.tryLoc) return i("end");
                        if (s.tryLoc <= this.prev) {
                          var a = r.call(s, "catchLoc"),
                            d = r.call(s, "finallyLoc");
                          if (a && d) {
                            if (this.prev < s.catchLoc) return i(s.catchLoc, !0);
                            if (this.prev < s.finallyLoc) return i(s.finallyLoc)
                          } else if (a) {
                            if (this.prev < s.catchLoc) return i(s.catchLoc, !0)
                          } else {
                            if (!d) throw new Error("try statement without catch or finally");
                            if (this.prev < s.finallyLoc) return i(s.finallyLoc)
                          }
                        }
                      }
                    },
                    abrupt: function(t, e) {
                      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
                        var o = this.tryEntries[i];
                        if (o.tryLoc <= this.prev && r.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
                          var n = o;
                          break
                        }
                      }
                      n && ("break" === t || "continue" === t) && n.tryLoc <= e && e <= n.finallyLoc && (n = null);
                      var s = n ? n.completion : {};
                      return s.type = t, s.arg = e, n ? (this.method = "next", this.next = n.finallyLoc, b) : this.complete(s)
                    },
                    complete: function(t, e) {
                      if ("throw" === t.type) throw t.arg;
                      return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), b
                    },
                    finish: function(t) {
                      for (var e = this.tryEntries.length - 1; e >= 0; --e) {
                        var i = this.tryEntries[e];
                        if (i.finallyLoc === t) return this.complete(i.completion, i.afterLoc), z(i), b
                      }
                    },
                    catch: function(t) {
                      for (var e = this.tryEntries.length - 1; e >= 0; --e) {
                        var i = this.tryEntries[e];
                        if (i.tryLoc === t) {
                          var o = i.completion;
                          if ("throw" === o.type) {
                            var n = o.arg;
                            z(i)
                          }
                          return n
                        }
                      }
                      throw new Error("illegal catch attempt")
                    },
                    delegateYield: function(t, e, i) {
                      return this.delegate = {
                        iterator: H(t),
                        resultName: e,
                        nextLoc: i
                      }, "next" === this.method && (this.arg = o), b
                    }
                  }, n
                }
                t.exports = i, t.exports.__esModule = !0, t.exports.default = t.exports
              }(Ct);
              var kt = Ct.exports(),
                Et = kt;
              try {
                regeneratorRuntime = kt
              } catch (t) {
                "object" == typeof globalThis ? globalThis.regeneratorRuntime = kt : Function("r", "regeneratorRuntime = r")(kt)
              }
              var Tt, Pt;

              function At(t, e) {
                if ("string" == typeof t && "string" == typeof e) {
                  if (!e.startsWith("/")) throw new Error("prefixionPath: urlPath must be start with /");
                  if (!t.startsWith("/")) throw new Error("prefixionPath: prefix must be start with /");
                  return t + e
                }
              }

              function It(t) {
                if ("string" != typeof t) throw new Error("globalizePath: urlPath must be string");
                if (t.startsWith("http")) throw new Error("globalizePath: urlPath can't be http url");
                t.startsWith("/") || (t = "/" + t);
                var e = function() {
                  var t = window.C_SETTINGS && window.C_SETTINGS.routes && window.C_SETTINGS.routes.root || "";
                  return t.length > 0 && (t.startsWith("/") || (t = "/" + t)), t
                }();
                return e.length > 0 && !t.startsWith(e) || "/ca" === e && t.startsWith("/cart") ? At(e, t) : t
              }

              function zt(t, e) {
                var i = Object.keys(t);
                if (Object.getOwnPropertySymbols) {
                  var o = Object.getOwnPropertySymbols(t);
                  e && (o = o.filter((function(e) {
                    return Object.getOwnPropertyDescriptor(t, e).enumerable
                  }))), i.push.apply(i, o)
                }
                return i
              }

              function Ot(t) {
                for (var e = 1; e < arguments.length; e++) {
                  var i = null != arguments[e] ? arguments[e] : {};
                  e % 2 ? zt(Object(i), !0).forEach((function(e) {
                    _t(t, e, i[e])
                  })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(i)) : zt(Object(i)).forEach((function(e) {
                    Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(i, e))
                  }))
                }
                return t
              }
              var Ht = function(t) {
                  var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 50,
                    i = null;
                  return function() {
                    for (var o = arguments.length, n = new Array(o), s = 0; s < o; s++) n[s] = arguments[s];
                    var r = this;
                    i && clearTimeout(i), i = setTimeout((function() {
                      t.apply(r, n)
                    }), e)
                  }
                },
                Lt = function(t, e) {
                  var i = null;
                  return function() {
                    var o = this,
                      n = arguments;
                    i || (i = setTimeout((function() {
                      t.apply(o, n), clearTimeout(i), i = null
                    }), e))
                  }
                },
                Bt = {
                  ROOT_URL: C_SETTINGS && C_SETTINGS.routes && C_SETTINGS.routes.root || "",
                  post: function(t) {
                    return (Tt = Tt || St(Et.mark((function t(e) {
                      var i, o, n, s = arguments;
                      return Et.wrap((function(t) {
                        for (;;) switch (t.prev = t.next) {
                          case 0:
                            return i = s.length > 1 && void 0 !== s[1] ? s[1] : {}, t.prev = 1, t.next = 4, fetch(Bt.ROOT_URL + e, Ot(Ot({
                              method: "POST",
                              headers: {
                                "Content-Type": "application/json"
                              }
                            }, i), {}, {
                              body: JSON.stringify(i.body)
                            }));
                          case 4:
                            return o = t.sent, t.next = 7, o.json();
                          case 7:
                            return n = t.sent, t.abrupt("return", n);
                          case 11:
                            throw t.prev = 11, t.t0 = t.catch(1), new Error("post request error" + t.t0);
                          case 14:
                          case "end":
                            return t.stop()
                        }
                      }), t, null, [
                        [1, 11]
                      ])
                    })))).apply(this, arguments)
                  },
                  get: function(t) {
                    return (Pt = Pt || St(Et.mark((function t(e) {
                      var i, o;
                      return Et.wrap((function(t) {
                        for (;;) switch (t.prev = t.next) {
                          case 0:
                            return t.prev = 1, t.next = 4, fetch(Bt.ROOT_URL + e);
                          case 4:
                            return i = t.sent, t.next = 7, i.json();
                          case 7:
                            return o = t.sent, t.abrupt("return", o);
                          case 11:
                            throw t.prev = 11, t.t0 = t.catch(1), new Error("get request error" + t.t0);
                          case 14:
                          case "end":
                            return t.stop()
                        }
                      }), t, null, [
                        [1, 11]
                      ])
                    })))).apply(this, arguments)
                  }
                },
                jt = function(t, e) {
                  var i, o = {
                      amount: {
                        n: 2,
                        x: 3,
                        s: ",",
                        c: "."
                      },
                      amount_no_decimals: {
                        n: 0,
                        x: 3,
                        s: ",",
                        c: ""
                      },
                      amount_with_comma_separator: {
                        n: 2,
                        x: 3,
                        s: ".",
                        c: ","
                      },
                      amount_no_decimals_with_comma_separator: {
                        n: 0,
                        x: 3,
                        s: ".",
                        c: ""
                      },
                      amount_with_apostrophe_separator: {
                        n: 2,
                        x: 3,
                        s: "'",
                        c: "."
                      }
                    } [e] || "amount",
                    n = "\\d(?=(\\d{" + (o.x || 3) + "})+" + (o.n > 0 ? "\\D" : "$") + ")";
                  return i = 0 === o.n ? t.toFixed(0) : parseFloat(t).toFixed(o.n + 1).slice(0, -1), (o.c ? i.replace(".", o.c) : i).replace(new RegExp(n, "g"), "$&" + (o.s || ","))
                },
                Nt = function(t) {
                  if (window.C_APPS_MULTI_CURRENCY && window.C_APPS_MULTI_CURRENCY.globalFinance) return window.C_APPS_MULTI_CURRENCY.globalFinance(Number(t));
                  var e = window.C_SETTINGS.currency_symbol,
                    i = window.C_SETTINGS ? window.C_SETTINGS.currency_symbol_pos : "left",
                    o = window.C_SETTINGS ? window.C_SETTINGS.money_format : "amount";
                  return "right" === i ? jt(1 * Number(t), o) + e : e + jt(1 * Number(t), o)
                },
                Rt = !!window.$;

              function qt(t) {
                var e = document.querySelector(".product-info"),
                  i = document.querySelector(".product-info-body"),
                  o = document.querySelector(".product-info__body"),
                  n = e || i || o,
                  s = document.querySelector("bundle-product-list"),
                  r = document.querySelector('div[data-section-type*="//apps/appbundle/blocks/bundle-combination/"]'),
                  l = r && r.contains(s),
                  a = {
                    isInProductInfo: n ? n.contains(s) : !l,
                    productInfo: n || null
                  };
                if (t) {
                  var d = Number(window.getComputedStyle(n).paddingLeft.replace(/[^/.\d]/g, "")),
                    c = Number(n.offsetWidth) - d;
                  return Ot(Ot({}, a), {}, {
                    productInfoWidth: c
                  })
                }
                return a
              }
              const Vt = {
                  FASHION_HORIZONTAL: "fashionHorizontal",
                  FASHION_VERTICAL: "fashionVertical"
                },
                Mt = "fixed_price",
                Ut = "fixed_amount",
                Dt = "percentage",
                Wt = "multi",
                Ft = "single";
              class Gt extends st {
                constructor() {
                  super(...arguments), this.titleText = "", this.switchable = !1, this.titleColor = "", this.btnBgColor = "", this.btnTextColor = "", this.pid = "", this.discount_ids = "", this.styleType = "sutra", this.isQuickShop = "false",
                    this.atcBtnStyle = void 0, this.selected_all = !0, this.select_one = !1, this.selectedInfo = [], this.modalVisible = !1, this.loading = !1, this.success = !1, this.onResize = () => {}
                }
                requestUpdate() {
                  super.requestUpdate()
                }
                connectedCallback() {
                  this.onResize = Lt(this.computeWidth, 50), super.connectedCallback(), window.addEventListener("resize", this.onResize)
                }
                disconnectedCallback() {
                  super.disconnectedCallback(), window.removeEventListener("resize", this.onResize)
                }
                computeWidth() {
                  var t, e;
                  const {
                    isInProductInfo: i,
                    productInfo: o,
                    productInfoWidth: n
                  } = qt(!0), s = null === (t = this.shadowRoot) || void 0 === t ? void 0 : t.querySelector(".main");
                  if (s)
                    if (i) {
                      if (o) {
                        let t = n;
                        "Flash" === (null === (e = null === window || void 0 === window ? void 0 : window.SHOPLAZZA) || void 0 === e ? void 0 : e.theme.merchant_theme_name) && (null === window || void 0 === window ? void 0 : window
                          .innerWidth) < 960 && (t -= 32), s.style.maxWidth = `${t}px`, s.classList.add("main--in")
                      }
                    } else o && this.styleType === Vt.FASHION_VERTICAL && (s.style.maxWidth = `${n}px`), s.classList.remove("main--in")
                }
                showToast(t) {
                  const e = document.createElement("bundle-toast");
                  t && (e.text = t), document.body.appendChild(e)
                }
                buySelectedProduct() {
                  return e(this, void 0, void 0, (function*() {
                    if (this.selectedInfo.every((t => !t.is_selected))) return;
                    this.loading = !0;
                    const t = this.bundleInfo.entitled_products.filter((t => t.is_selected)),
                      i = t.map((t => ({
                        product_id: t.id,
                        variant_id: t.selected_id,
                        quantity: Number(t.count),
                        note: t.note || "",
                        price: t.variants.find((e => e.id === t.selected_id)).price,
                        available: "true",
                        selected: "true"
                      })));
                    let o = [];
                    o.push(this.bundleInfo.id), Bt.post("/api/bundle-sales/cart", {
                      body: {
                        cart: {
                          line_items: i
                        },
                        action_type: "buy_now",
                        bundle_sale_ids: o
                      }
                    }).then((t => {
                      const o = {
                        line_items: (i || []).map((t => ({
                          quantity: Number(t.quantity),
                          variant_id: t.variant_id,
                          note: t.note || "",
                          properties: t.properties || {}
                        }))),
                        refer_info: {
                          source: "buy_now"
                        }
                      };
                      fetch(It("/api/checkout/order"), {
                        method: "POST",
                        body: JSON.stringify(o),
                        headers: {
                          "Content-Type": "application/json;charset=utf-8"
                        }
                      }).then((t => e(this, void 0, void 0, (function*() {
                        if (t.redirected && t.url.includes("/account/login")) return window.location.href = It(`/account/login?_returnUrl=${encodeURIComponent(window.location.pathname)}`);
                        const e = yield t.json();
                        if ("success" !== e.state) this.showToast(e.message || e.errors[0] || "Unknown error"), location.reload();
                        else {
                          const t = e && e.data && e.data.order_token;
                          t && (window.safeHref ? window.safeHref = It(`/checkout/${t}?step=contact_information`) : window.location.href = It(`/checkout/${t}?step=contact_information`))
                        }
                      }))))
                    }))
                  }))
                }
                addSelectedToCart() {
                  var t;
                  return e(this, void 0, void 0, (function*() {
                    if (this.selectedInfo.every((t => !t.is_selected))) return;
                    this.loading = !0;
                    const e = this.bundleInfo.entitled_products.filter((t => t.is_selected)),
                      i = e.map((t => ({
                        product_id: t.id,
                        variant_id: t.selected_id,
                        quantity: t.count
                      })));
                    try {
                      const e = {
                        discount_id: this.bundleInfo.id,
                        value_type: this.bundleInfo.value_type,
                        popups_setting: this.bundleInfo.popups_setting,
                        global_show_text: this.bundleInfo.global_show_text,
                        target_selection: this.bundleInfo.target_selection,
                        page: null === (t = window.SHOP_PARAMS) || void 0 === t ? void 0 : t.template_type,
                        product_ids: this.bundleInfo.entitled_products.map((t => t.id)),
                        block: !0,
                        operation_type: this.bundleInfo.operation_type,
                        entitled_product_ids: this.bundleInfo.entitled_product_ids.join(",")
                      };
                      window.sa && window.sa.track("plugin_bundle_combination_click_atc", e)
                    } catch (t) {}
                    const o = yield Bt.post("/api/cart/batch", {
                      body: {
                        line_items: i
                      }
                    });
                    if (this.loading = !1, o.errors && o.errors[0]) this.showToast(o.errors[0]);
                    else {
                      this.success = !0;
                      try {
                        const t = sessionStorage.bundle_sale_ids && JSON.parse(sessionStorage.bundle_sale_ids) || [];
                        t.includes(this.bundleInfo.id) || (t.push(this.bundleInfo.id), sessionStorage.setItem("bundle_sale_ids", JSON.stringify(t)))
                      } catch (t) {}
                      e.forEach((t => {
                        var e;
                        const i = {
                          id: t.id,
                          product_id: t.id,
                          number: t.count || 1,
                          quantity: t.count || 1,
                          variant_id: t.selected_id,
                          childrenId: t.selected_id,
                          item_price: null === (e = t.variants.find((e => e.id === t.selected_id))) || void 0 === e ? void 0 : e.price,
                          name: t.title,
                          type: "",
                          source: "bundle"
                        };
                        Rt ? window.$(document.body).trigger("dj.addToCart", i) : document.dispatchEvent(new CustomEvent("dj.addToCart", {
                          detail: i
                        }))
                      })), setTimeout((() => {
                        window.safeHref ? window.safeHref = It("/cart") : window.location.href = It("/cart")
                      }))
                    }
                  }))
                }
                switch () {
                  this.dispatchEvent(new CustomEvent("bundle-combination-switch"))
                }
                clickSelect() {
                  var t, e;
                  this.select_one = this.selectedInfo.filter((t => t.is_selected)).length <= 1, this.selectedInfo.every((t => t.is_selected)) && (null === (e = null === (t = this.bundleInfo) || void 0 === t ? void 0 : t.entitled_products) ||
                    void 0 === e ? void 0 : e.length) === this.selectedInfo.length ? (this.selected_all = !0, this.requestUpdate()) : this.selected_all = !1
                }
                clickProduct(t) {
                  const e = t.detail;
                  "true" === this.isQuickShop && (this.modalProduct = e, this.modalVisible = !0);
                  const i = {
                    block: !0,
                    discount_ids: this.discount_ids,
                    product_id: this.pid,
                    discount_id: this.bundleInfo.id,
                    CurrProd_id: e.id,
                    operation_type: this.bundleInfo.operation_type,
                    entitled_product_ids: this.bundleInfo.entitled_product_ids.join(",")
                  };
                  window.sa && window.sa.track("plugin_bundle_combination_product_click", i)
                }
                renderImgs(t, e) {
                  var i;
                  const o = this.parentNode.offsetWidth > 960;
                  return null === (i = this.selectedInfo) || void 0 === i ? void 0 : i.slice(t, e).map(((e, i) => {
                    var n, s, r;
                    const l = null === (n = e.variants) || void 0 === n ? void 0 : n.find((t => t.id === e.selected_id)),
                      a = (null === (s = null == l ? void 0 : l.image) || void 0 === s ? void 0 : s.src) || (null === (r = e.image) || void 0 === r ? void 0 : r.src);
                    return R`<div class="img-item">${0!==i||3===t?R`<svg style="${o?"":"padding: 0 12px;"}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none"><path d="M18.573 8.571h-7.145V1.428a1.427 1.427 0 1 0-2.856 0V8.57H1.428a1.428 1.428 0 0 0 0 2.856h7.144v7.144a1.428 1.428 0 0 0 2.856 0v-7.145h7.144a1.428 1.428 0 0 0 0-2.855z" fill="#C5C5C5"/></svg>`:""}<bundle-product-img class="${o?"":"main--in"}" ?is-select="${e.is_selected}" .isQuickShop="${"true"===this.isQuickShop}" .count="${e.count}" .href="${e.url}" .src="${a}" @click="${()=>this.clickProduct(e)}"></bundle-product-img></div>`
                  }))
                }
                getlowestPricedProduct(t, e) {
                  let i = [],
                    o = [],
                    n = e;
                  const s = [...t];
                  return s.sort(((t, e) => Number(t.price) - Number(e.price))), s.forEach((t => {
                    if (0 === n) o.push(t);
                    else {
                      const e = Number(t.count);
                      e <= n ? (i.push(t), n -= e) : (i.push(Object.assign(Object.assign({}, t), {
                        count: `${n}`
                      })), o.push(Object.assign(Object.assign({}, t), {
                        count: "" + (e - n)
                      })), n = 0)
                    }
                  })), [i, o]
                }
                getPrice(t, e = "price") {
                  let i = 0;
                  return t.filter((t => t.is_selected)).forEach((t => {
                    var o;
                    const n = null === (o = t.variants) || void 0 === o ? void 0 : o.find((e => e.id === t.selected_id)),
                      s = +(n && n[e] || 0);
                    i += +t.count * s
                  })), i
                }
                handlePriceValue() {
                  const t = this.getPrice(this.selectedInfo);
                  let e = t,
                    i = 0;
                  if (this.bundleInfo.layer_type === Wt) {
                    const t = this.selectedInfo.filter((t => t.is_selected));
                    if (!this.bundleInfo.target_product_id || this.bundleInfo.target_product_id && this.selectedInfo.filter((t => t.is_selected)).some((t => t.id === this.bundleInfo.target_product_id))) {
                      let o = 0,
                        n = 0;
                      const s = t.reduce(((t, e) => t + Number(e.count)), 0),
                        r = this.bundleInfo.prerequisite_quantity_range;
                      for (let t = r.length - 1; t >= 0; t--) {
                        const e = r[t],
                          {
                            value: i,
                            greater_than_or_equal_to: l
                          } = e;
                        if (s >= Number(l)) {
                          o = Number(i), n = Number(l);
                          break
                        }
                      }
                      if (this.bundleInfo.value_type === Ut) i = o, e -= o;
                      else if (this.bundleInfo.value_type === Dt) {
                        const [s, r] = this.getlowestPricedProduct(t, n), l = this.getPrice(s), a = this.getPrice(r);
                        i = Math.round(l * (o / 100) * 100) / 100, e = l - i + a
                      }
                    }
                  } else {
                    const o = Number(this.bundleInfo.value);
                    this.bundleInfo.value_type === Mt ? o < Number(e) && (e = o, i = t - o) : this.bundleInfo.value_type === Ut ? (i = o, e -= o) : this.bundleInfo.value_type === Dt && (i = Math.round(e * (o / 100) * 100) / 100, e -= i)
                  }
                  return e = e < 0 ? 0 : e, this.bundleInfo.totalPrice = e.toFixed(2), {
                    salePrice: t.toFixed(2),
                    savePrice: i.toFixed(2)
                  }
                }
                updated() {
                  var t;
                  if (this.computeWidth(), this.modalVisible) {
                    const e = document.createElement("bundle-product-modal");
                    e.data = this.modalProduct, e.setAttribute("btn-bg-color", this.btnBgColor), e.setAttribute("btn-text-color", this.btnTextColor), e.setAttribute("top", document.documentElement.scrollTop.toString()), e.close = () => {
                      this.modalVisible = !1, e.remove()
                    }, null === (t = document.querySelector(".bundle-combination-container")) || void 0 === t || t.appendChild(e)
                  }
                }
                changeCheckBox(t) {
                  const {
                    index: e
                  } = t.detail, i = this.selectedInfo[e].is_selected;
                  this.selectedInfo[e].is_selected = !i, this.requestUpdate(), window.sa && window.sa.track("plugin_bundle_combination_product_select", {
                    block: !0
                  })
                }
                render() {
                  var t, e;
                  if (!this.bundleInfo) return;
                  const i = this.parentNode.offsetWidth > 960;
                  i && (null === (e = null === (t = document.querySelector(".bundle-combination-container")) || void 0 === t ? void 0 : t.classList) || void 0 === e || e.add("app-container")), this.selectedInfo = this.bundleInfo ? this
                    .bundleInfo.entitled_products.filter((t => t.published)) : [], this.clickSelect();
                  const {
                    salePrice: o,
                    savePrice: n
                  } = this.handlePriceValue();
                  let s = "";
                  return [Vt.FASHION_HORIZONTAL, Vt.FASHION_VERTICAL].includes(this.styleType) && (s = this.styleType),
                    R`<div class="main ${s}"><div class="header" style="${s?"margin-bottom: 20px;":""}"><div class="title" style="${i?"":"font-size: 20px;"}"><span style="color:${this.titleColor}">${this.titleText}</span></div>${this.switchable?R`<div class="switch" @click="${this.switch}" style="${i?"":"font-size: 14px;"}">Related Items</div>`:""}</div>${s?R`<bundle-fashion .overWidth="${i}" title-text="${this.titleText}" switchable="${this.switchable}" title-color="${this.titleColor}" btn-bg-color="${this.btnBgColor}" btn-text-color="${this.btnTextColor}" styleTypeClass="${s}" .isQuickShop="${"true"===this.isQuickShop}" .atcBtnStyle="${this.atcBtnStyle}" .select_one="${this.select_one}" .loading="${this.loading}" .success="${this.success}" .selected_all="${this.selected_all}" .selectedInfo="${this.selectedInfo}" .bundleInfo="${this.bundleInfo}" .salePrice="${o}" .savePrice="${n}" @clickSelect="${this.clickSelect}" @clickProduct="${this.clickProduct}" @changeCheckBox="${this.changeCheckBox}" @addToCart="${this.addSelectedToCart}" @buySelectedProduct="${this.buySelectedProduct}"></bundle-fashion>`:R`<bundle-sutra .overWidth="${i}" title-text="${this.titleText}" switchable="${this.switchable}" title-color="${this.titleColor}" btn-bg-color="${this.btnBgColor}" btn-text-color="${this.btnTextColor}" styleTypeClass="${s}" .isQuickShop="${"true"===this.isQuickShop}" .atcBtnStyle="${this.atcBtnStyle}" .select_one="${this.select_one}" .loading="${this.loading}" .success="${this.success}" .selected_all="${this.selected_all}" .selectedInfo="${this.selectedInfo}" .bundleInfo="${this.bundleInfo}" .salePrice="${o}" .savePrice="${n}" @clickSelect="${this.clickSelect}" @clickProduct="${this.clickProduct}" @changeCheckBox="${this.changeCheckBox}" @addToCart="${this.addSelectedToCart}" @buySelectedProduct="${this.buySelectedProduct}"></bundle-sutra>`}</div>${""}`
                }
              }
              Gt.styles = [
                l`.main{padding:20px 0;margin-left:auto;margin-right:auto;max-width:var(--layout-width,1366px)}.header{display:flex;align-items:center}.title{font-size:24px;line-height:24px}.switch{cursor:pointer;text-decoration:underline;font-size:16px;white-space:nowrap;margin-left:10px}.main--in.main{padding:20px 0}.main--in .header{flex-direction:column;align-items:flex-start}.main--in .switch{font-size:14px;margin-top:4px;margin-left:0}@media (max-width:960px){.main{padding:20px 0;max-width:unset}.header{flex-direction:column;align-items:flex-start;margin-bottom:8px}.title{font-size:16px!important}.switch{font-size:14px;margin-top:4px;margin-left:0}}`,
                l`.fashionHorizontal .title{font-size:22px;line-height:24px}.fashionHorizontal .switch{color:val(--color-body-text,#292929);font-weight:400}.fashionHorizontal .header{justify-content:space-between}.fashionVertical .header{flex-direction:column;align-items:flex-start}.fashionVertical .switch{margin-top:10px;margin-left:0}.fashionVertical.main{margin-right:initial}.main--in.fashionHorizontal .header{flex-direction:column;align-items:flex-start;justify-content:flex-start}.main--in.fashionHorizontal .switch{margin-top:4px;margin-left:0}.main--in.fashionHorizontal.main{padding:20px 0}.main--in.fashionVertical.main{padding:20px 0!important;margin-left:0}.main--in.fashionVertical.main{margin-right:auto}@media (max-width:960px){.fashionVertical.main{margin-right:auto}}`
              ], t([dt({
                type: String,
                attribute: "title-text"
              })], Gt.prototype, "titleText", void 0), t([dt()], Gt.prototype, "switchable", void 0), t([dt({
                type: String,
                attribute: "title-color"
              })], Gt.prototype, "titleColor", void 0), t([dt({
                type: String,
                attribute: "btn-bg-color"
              })], Gt.prototype, "btnBgColor", void 0), t([dt({
                type: String,
                attribute: "btn-text-color"
              })], Gt.prototype, "btnTextColor", void 0), t([dt({
                type: String,
                attribute: !1
              })], Gt.prototype, "pid", void 0), t([dt({
                type: String,
                attribute: !1
              })], Gt.prototype, "discount_ids", void 0), t([dt({
                attribute: !1
              })], Gt.prototype, "bundleInfo", void 0), t([dt({
                type: String,
                attribute: "style-type"
              })], Gt.prototype, "styleType", void 0), t([dt({
                attribute: "is-quick-shop"
              })], Gt.prototype, "isQuickShop", void 0), t([dt({
                attribute: !1
              })], Gt.prototype, "atcBtnStyle", void 0), t([ct()], Gt.prototype, "selected_all", void 0), t([ct()], Gt.prototype, "select_one", void 0), t([ct()], Gt.prototype, "selectedInfo", void 0), t([ct()], Gt.prototype, "modalProduct",
                void 0), t([ct()], Gt.prototype, "modalVisible", void 0), t([ct()], Gt.prototype, "loading", void 0), t([ct()], Gt.prototype, "success", void 0), t([ct()], Gt.prototype, "onResize", void 0), window.customElements.get(
                "bundle-product-list") || window.customElements.define("bundle-product-list", Gt);
              class Qt extends st {
                constructor() {
                  super(...arguments), this.src = "", this.href = "", this.styleTypeClass = "", this.isFirst = !1, this.isSelect = !0, this.isQuickShop = !1, this.count = 1, this.icon = R`<div class="icon"></div>`
                }
                updated() {
                  if (window.innerWidth < 960) return;
                  const {
                    isInProductInfo: t,
                    productInfoWidth: e
                  } = qt(!0);
                  if (!t) return;
                  this.item.classList.add("product-img--in");
                  const i = e || 500;
                  if (this.styleTypeClass === Vt.FASHION_HORIZONTAL) {
                    const t = (i - 32) / 3;
                    this.item.style.width = `${t}px`, this.item.style.height = 4 * t / 3 + "px"
                  } else if (this.styleTypeClass === Vt.FASHION_VERTICAL);
                  else {
                    const t = (i - 88) / 3;
                    this.item.style.height = `${t}px`, this.item.style.width = `${t}px`
                  }
                }
                render() {
                  return R`<div class="product-img"><a .href="${this.isQuickShop?"javascript:void(0);":It(this.href)}"><img src="${this.src}" class="${this.isSelect?"select":""} lazyload" alt="appbundle"> </a>${this.count>1?R`<div class="count notranslate ${this.isSelect?"select":""}">x ${this.count}</div>`:""}</div>`
                }
              }
              Qt.styles = [
                l`:host{display:flex;align-items:center}:host(.sutra) .product-img{position:relative;max-width:160px;max-height:160px;width:9vw;height:9vw;border-radius:4px;overflow:hidden}a{position:relative;display:block;width:100%;height:100%}img{position:absolute;left:0;right:0;top:0;bottom:0;max-width:100%;max-height:100%;display:block;margin:auto;opacity:.2}.product-img .select{opacity:1}.icon{padding:0 16px}.count{position:absolute;top:0;right:0;background-color:#ec9154;color:#fff;font-size:12px;line-height:1;padding:4px 6px;font-weight:800;border-bottom-left-radius:4px;opacity:.2}@media (max-width:960px){:host(.sutra) .product-img{width:90px!important;height:90px!important}}`,
                l`:host(.fashionHorizontal) .product-img{width:100%;height:260px;position:relative}:host(.fashionHorizontal) .count{top:initial;bottom:0;right:0;border-bottom-left-radius:0;padding:6px 10px;background:rgba(41,41,41,.4);font-family:Jost;font-size:14px;font-style:normal;font-weight:400;line-height:14px}:host(.fashionHorizontal) .product-img--in.product-img{height:200px}:host(.fashionHorizontal) .product-img--in .count{padding:2px 4px;font-size:12px}@media (max-width:960px){:host(.fashionHorizontal) .product-img{height:200px}:host(.fashionHorizontal) .count{padding:4px 8px;font-size:12px}}`,
                l`:host(.fashionVertical){height:100%;margin:0 16px;position:relative}:host(.fashionVertical) .product-img{width:103px;height:138px}:host(.fashionVertical) .count{top:initial;bottom:0;right:0;border-bottom-left-radius:0;padding:6px 10px;background:rgba(41,41,41,.4);font-family:Jost;font-size:14px;font-style:normal;font-weight:400;line-height:14px}:host(.fashionVertical) .product-img--in.product-img{width:85px;height:113px}:host(.fashionVertical) .product-img--in.count{padding:2px 4px;font-size:12px}@media (max-width:960px){:host(.fashionVertical) .product-img{width:85px;height:113px}:host(.fashionVertical) .count{padding:4px 8px;font-size:12px}}`
              ], t([dt({
                type: String
              })], Qt.prototype, "src", void 0), t([dt({
                type: String
              })], Qt.prototype, "href", void 0), t([dt()], Qt.prototype, "styleTypeClass", void 0), t([dt({
                type: Boolean,
                attribute: "is-first"
              })], Qt.prototype, "isFirst", void 0), t([dt({
                type: Boolean,
                attribute: "is-select"
              })], Qt.prototype, "isSelect", void 0), t([dt({
                type: Boolean
              })], Qt.prototype, "isQuickShop", void 0), t([dt({
                type: Number
              })], Qt.prototype, "count", void 0), t([ht(".product-img")], Qt.prototype, "item", void 0), window.customElements.get("bundle-product-img") || window.customElements.define("bundle-product-img", Qt);
              const Jt = R`<svg xmlns="http://www.w3.org/2000/svg" width="10" height="16" viewBox="0 0 10 16" fill="none"><path d="M8.5 0.928955L1.42893 8.00002L8.5 15.0711" stroke="#222222" stroke-width="2"/></svg>`,
                Yt = R`<svg xmlns="http://www.w3.org/2000/svg" width="10" height="16" viewBox="0 0 10 16" fill="none"><path d="M1.5 0.928955L8.57107 8.00002L1.5 15.0711" stroke="#222222" stroke-width="2"/></svg>`,
                Zt =
                R`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><rect x="1" y="1" width="22" height="22" rx="1" fill="#292929"/><path d="M5.3938 12.4719L10.8058 17.0053L18.6062 6.99475" stroke="white" stroke-width="2.2"/><rect x="1" y="1" width="22" height="22" rx="1" stroke="#292929" stroke-width="2"/></svg>`,
                Kt =
                R`<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect width="16" height="16" rx="2" fill="#2C77F6"/><path d="M12.328 3.75l1.422 1.408-7.163 7.092L2.25 7.956l1.422-1.409 2.915 2.886 5.74-5.683z" fill="#fff"/></svg>`,
                Xt =
                R`<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="1" width="14" height="14" rx="1" fill="#fff"/><path fill-rule="evenodd" clip-rule="evenodd" d="M16 1.994C16 .894 15.107 0 14.006 0H1.994C.894 0 0 .893 0 1.994v12.012C0 15.106.893 16 1.994 16h12.012c1.1 0 1.994-.893 1.994-1.994V1.994zM1.994 1h12.012l.116.007a.996.996 0 0 1 .878.987v12.012l-.007.116a.996.996 0 0 1-.987.878H1.994l-.116-.007A.995.995 0 0 1 1 14.006V1.994l.007-.116A.996.996 0 0 1 1.994 1z" fill="#D8DBE6"/></svg>`,
                te =
                R`<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path opacity=".01" fill="#fff" d="M0 0h16v16H0z"/><path d="M8 11.048a.748.748 0 0 0 .57-.26l4.555-4.556a.75.75 0 0 0-1.06-1.06L8 9.236 3.936 5.172a.75.75 0 0 0-1.061 1.06l4.555 4.556a.748.748 0 0 0 .57.26z" fill="#0A1533"/></svg>`,
                ee =
                R`<svg style="display:block;margin:auto" width="22" height="22" viewBox="0 0 50 50"><path fill="currentColor" fill-opacity=".6" d="M43.935 25.145c0-10.318-8.364-18.683-18.683-18.683-10.318 0-18.683 8.365-18.683 18.683h4.068c0-8.071 6.543-14.615 14.615-14.615s14.615 6.543 14.615 14.615h4.068z"><animateTransform attributeName="transform" attributeType="xml" dur="0.6s" from="0 25 25" repeatCount="indefinite" to="360 25 25" type="rotate"/></path></svg>`,
                ie = document.querySelector("bundle-product-list");
              class oe extends st {
                constructor() {
                  super(...arguments), this.backgroundColor = (null == ie ? void 0 : ie.getAttribute("btn-bg-color")) || "#EE7C30", this.textColor = (null == ie ? void 0 : ie.getAttribute("btn-text-color")) || "#FFFFFF", this.disabled = !1,
                    this.loading = !1, this.success = !1, this.successHtml =
                    R`<svg width="16" height="17" viewBox="0 0 16 17"><path d="M8 16.5a8 8 0 1 1 .001-16A8 8 0 0 1 8 16.5zM8 2.043c-3.787 0-6.457 2.67-6.457 6.457S4.213 14.957 8 14.957s6.457-2.67 6.457-6.457S11.787 2.043 8 2.043zm-.74 9.148l-.138.137-.027-.027a.555.555 0 0 1-.238.056.559.559 0 0 1-.321-.111l-.014.013-.068-.068-.001-.002-2.355-2.354.808-.808 1.951 1.95 4.306-4.306.808.809-4.71 4.71z" fill="currentColor"/></svg> Added`
                }
                render() {
                  let t = null;
                  return this.loading && (t = ee), this.success && (t = this.successHtml),
                    R`<div class="button" style="${`background-color: ${this.backgroundColor};color: ${this.textColor};${this.disabled?"background-color: #D9DADB;":""}`}">${t||R`<slot></slot>`}</div>`
                }
              }
              oe.styles = [
                l`.button{font-size:14px;line-height:24px;font-weight:500;justify-content:center;align-items:center;padding:12px 20px;border-radius:4px 4px 4px 4px;cursor:pointer;white-space:initial;word-break:keep-all}@media (max-width:960px){.button{text-align:center}}`,
                l`:host(.fashionHorizontal) .button{border-radius:0;text-align:center}`, l`:host(.fashionVertical) .button{border-radius:0}`
              ], t([dt({
                type: String,
                attribute: "bg-color"
              })], oe.prototype, "backgroundColor", void 0), t([dt({
                type: String,
                attribute: "text-color"
              })], oe.prototype, "textColor", void 0), t([dt({
                type: Boolean
              })], oe.prototype, "disabled", void 0), t([dt({
                type: Boolean
              })], oe.prototype, "loading", void 0), t([dt({
                type: Boolean
              })], oe.prototype, "success", void 0), window.customElements.get("bundle-button") || window.customElements.define("bundle-button", oe);
              const ne = l`:host(fashion-horizontal) .content_flex{display:flex}`;
              class se extends st {
                constructor() {
                  super(...arguments), this.index = 0, this.isSelect = !1, this.selectedOptions = {}, this.thisOne = !1, this.styleTypeClass = "", this.price = "", this.compare_at_price = "", this.modalWidth = 260, this.modalLeft = 0, this
                    .modalTop = 0, this.showModal = t => {
                      if (window.innerWidth < 960 || /none/.test(t.target.classList)) return;
                      const e = t.clientX - t.offsetX;
                      e + 300 > window.innerWidth ? this.modalLeft = e - (this.modalWidth - t.target.offsetWidth) : this.modalLeft = e, this.modalTop = t.clientY - t.offsetY + t.target.offsetHeight, this.isSelect = !0, this.eva(this.isSelect)
                    }, this.hideModal = () => {
                      window.innerWidth < 960 || (this.isSelect = !1, this.eva(this.isSelect))
                    }
                }
                requestUpdate() {
                  super.requestUpdate()
                }
                willUpdate() {
                  if (this.data.variants) {
                    if (this.data.selected_options) this.selectedOptions = Object.assign({}, this.data.selected_options);
                    else
                      for (let t of this.data.variants)
                        if (t.available) {
                          this.selectedOptions.option1 = t.option1, this.selectedOptions.option2 = t.option2, this.selectedOptions.option3 = t.option3;
                          break
                        } this.data.selected_id ? this.data.variants.forEach((t => {
                      t.id === this.data.selected_id && (this.price = t.price, this.compare_at_price = t.compare_at_price)
                    })) : (this.price = this.data.variants[0].price, this.compare_at_price = this.data.variants[0].compare_at_price)
                  }
                }
                updated() {
                  const {
                    isInProductInfo: t
                  } = qt();
                  t && this.bundleProductSelect && (t ? this.bundleProductSelect.classList.add("bundle-product-select--in") : this.bundleProductSelect.classList.remove("bundle-product-select--in"))
                }
                eva(t) {
                  const e = !document.querySelector('div[data-section-type*="//apps/appbundle/blocks/bundle-combination/"] bundle-product-list');
                  if ("Eva" === window.C_SETTINGS.theme.merchant_theme_name && e) {
                    const e = document.querySelector(".product-info__body");
                    e && (t ? e.classList.remove("tw-overflow-hidden") : e.classList.add("tw-overflow-hidden"))
                  }
                }
                clickBundle() {
                  if (window.innerWidth > 960) return;
                  const t = this.data.options && 0 === this.data.options.length,
                    e = this.data.options && this.data.options.length > 0 && 1 === this.data.variants.length;
                  t || e || (this.isSelect = !this.isSelect, this.eva(this.isSelect))
                }
                variantClick(t) {
                  var e, i;
                  const o = this;
                  Object.assign(this.selectedOptions, t.detail), null === (i = null === (e = this.data) || void 0 === e ? void 0 : e.variants) || void 0 === i || i.forEach((function(t) {
                    t.option1 === o.selectedOptions.option1 && t.option2 === ((null == o ? void 0 : o.selectedOptions.option2) || "") && t.option3 === ((null == o ? void 0 : o.selectedOptions.option3) || "") && (o.data.selected_id = t
                      .id, o.price = t.price, o.compare_at_price = t.compare_at_price)
                  })), this.data.selected_options = Object.assign({}, this.selectedOptions)
                }
                onChange() {
                  this.dispatchEvent(new CustomEvent("changeCheckBox", {
                    detail: {
                      index: this.index
                    },
                    bubbles: !0,
                    composed: !0
                  }))
                }
                render() {
                  var t;
                  const e = this.data.options && 0 === this.data.options.length || !this.data.options,
                    i = this.data.options && this.data.options.length > 0 && 1 === this.data.variants.length,
                    o = R`<div class="price money notranslate">${Nt(Number(this.price).toFixed(2))}</div>`;
                  return R`<div class="bundle-product-select"><div class="title" @click="${this.onChange}">${this.thisOne?R`<span style="font-weight:800">This item: </span>`:""}${this.data.title}</div>${this.styleTypeClass?R`<div class="price-wrap">${o}</div>`:""}<div class="content_flex select notranslate ${e||i?"none":""}" @mouseenter="${this.showModal}" @mouseleave="${this.hideModal}">${e?"":R`<div class="label ${this.isSelect?" lable-select":""} ${i?"one-option":""}" @click="${this.clickBundle}"><div class="selected-variant ${i?"white-space: normal;":""}">${Object.values(this.selectedOptions).filter((t=>!!t)).join("/")}</div>${i?"":te}</div>`} ${this.styleTypeClass?"":o} ${this.isSelect?R`<bundle-select-modal @variantClick="${this.variantClick}" @closeModal="${()=>{setTimeout((()=>{this.isSelect=!1,this.eva(this.isSelect)}),200)}}" class="option_overlay ${this.isSelect?"":"hidden"}" style="${window.innerWidth>960?`left: ${this.modalLeft}px; top: ${this.modalTop}px;`:""}width:${this.modalWidth}" .selectedOptions="${this.data.selected_options||this.selectedOptions}" .options="${null===(t=this.data)||void 0===t?void 0:t.options}" .data="${this.data}" .isSelect="${this.isSelect}" top="${document.documentElement.scrollTop.toString()}"></bundle-select-modal>`:""}<div class="dropdown-overlay ${this.isSelect?"":"hidden"}" @click="${()=>this.isSelect=!1}"></div></div></div>`
                }
              }
              se.styles = [ne, l`.content_flex{display:flex;align-items:center;position:relative;max-width:100%}.price{white-space:nowrap;color:var(--color_price)}.label{cursor:pointer}`,
                  l`:host(.sutra) .bundle-product-select{display:flex}:host(.sutra) .title{margin-left:16px;margin-right:16px;width:372px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;cursor:pointer;line-height:16px;color:#212b36;align-self:center}input{width:16px;height:16px;margin:0;padding:0;margin-right:12px;cursor:pointer}:host(.sutra) .label{display:flex;align-items:center;justify-content:space-between;width:260px;min-width:0;margin-right:16px;padding:6px 12px;border-radius:2px 2px 2px 2px;border:1px solid #d8dbe6;box-sizing:border-box}.one-option{padding-left:0;padding-right:0;border:none;width:auto!important}.label>svg{flex-shrink:0;margin-left:10px}.hidden{display:none!important}.lable-select{border:1px solid #30354d!important}.options{max-width:212px}:host(.sutra) .price{margin-right:auto;flex-shrink:0;font-size:16px}.selected-variant{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#212b36}.option_overlay{position:fixed;box-sizing:border-box;top:100%;left:0;max-height:300px;width:260px;overflow-y:scroll;background:#fff;box-shadow:0 2px 10px 1px rgba(0,0,0,.10000000149011612),0 0 4px 1px rgba(0,0,0,.03999999910593033);display:none;z-index:1100;padding:16px;padding-bottom:0;display:block;scrollbar-width:none;-ms-overflow-style:none}.option_overlay::-webkit-scrollbar{display:none}:host(.w-full) .bundle-product-select{flex-direction:column}:host(.w-full) .bundle-product-select .title{align-self:auto}:host(.w-full) .select{justify-content:space-between;margin-top:8px;margin-left:16px;box-sizing:border-box}:host(.w-full) .content,:host(.w-full) .content_flex,:host(.w-full) .title{width:auto}:host(.w-full) .label{flex:1}@media (max-width:960px){.bundle-product-select{flex-direction:column}.bundle-product-select .title{align-self:auto}.content,.content_flex,.title{width:auto}:host(.sutra) .label{flex:1}:host(.sutra) .bundle-product-select{flex-direction:column}.option_overlay{position:fixed;max-height:80vh;top:50%;left:50%!important;overflow-y:auto;transform:translate(-50%,-50%);z-index:1101;border-radius:4px;width:90%!important;padding:0}:host(.sutra) .title{width:auto}:host(.sutra) .price{font-size:14px}.dropdown-overlay{position:fixed;top:0;bottom:0;left:0;right:0;display:block;background-color:rgba(0,0,0,.5);z-index:1100}:host(.sutra) .select{justify-content:space-between;margin-top:8px;margin-left:16px;box-sizing:border-box}}`,
                  l`:host(.fashionHorizontal) .title,:host(.fashionVertical) .title{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgba(41,41,41,.75);font-family:Jost;font-size:14px;font-style:normal;font-weight:400;margin-bottom:10px}:host(.fashionHorizontal) .price-wrap{display:flex;flex-wrap:wrap;align-items:baseline;margin-bottom:20px}:host(.fashionHorizontal) .price,:host(.fashionVertical) .price{font-size:22px;margin-right:8px;line-height:18px;overflow:hidden;text-overflow:ellipsis}:host(.fashionHorizontal) .originPrice,:host(.fashionVertical) .originPrice{color:var(--color_price);color:#9f9f9f;font-family:Jost;font-size:16px;font-style:normal;font-weight:400;text-decoration:line-through;line-height:18px}:host(.fashionHorizontal) .label{display:flex;align-items:center;justify-content:center;width:100%;max-width:200px;border:1px solid #e6e6e6;box-sizing:border-box;padding:10px 20px}:host(.fashionHorizontal) .option_overlay{position:fixed}:host(.fashion-full.fashionHorizontal) .label{padding:4px 8px}:host(.fashion-full.fashionHorizontal) .price-wrap{display:block;margin-bottom:10px}:host(.fashion-full.fashionHorizontal) .price{margin-right:0;margin-bottom:8px;font-size:14px;white-space:initial}@media (max-width:960px){:host(.fashionHorizontal) .label{padding:4px 8px}:host(.fashionHorizontal) .price{font-size:14px}}`,
                  l`:host(.fashionVertical) .select{margin-right:auto}:host(.fashionVertical) .bundle-product-select{display:flex;flex-direction:column;min-height:128px;height:100%}:host(.fashionVertical) .price-wrap{display:flex;flex-wrap:wrap;align-items:baseline;margin-bottom:auto}:host(.fashionVertical) .label{display:flex;align-items:center;justify-content:center;width:auto;max-width:100%;border:1px solid #e6e6e6;box-sizing:border-box;padding:10px 20px;margin-top:10px}:host(.fashion-full.fashionVertical) .label{padding:4px 8px}:host(.fashionVertical) .bundle-product-select--in .price{font-size:14px}:host(.fashion-full.fashionVertical) .bundle-product-select{min-height:100px}:host(.fashion-full.fashionVertical) .select{width:auto}@media (min-width:960px){:host(.fashionVertical) .bundle-product-select--in .label>svg{margin-left:0}}@media (max-width:960px){:host(.fashionVertical) .label{padding:4px 8px}:host(.fashionVertical) .bundle-product-select{min-height:100px}:host(.fashionVertical) .select{margin-right:initial;width:auto}:host(.fashionVertical) .price{font-size:14px}}`
                ], t([dt()], se.prototype, "data", void 0), t([dt({
                  type: Number,
                  attribute: "index"
                })], se.prototype, "index", void 0), t([dt({
                  type: Boolean
                })], se.prototype, "isSelect", void 0), t([dt()], se.prototype, "selectedOptions", void 0), t([dt({
                  type: Boolean,
                  attribute: "this-one"
                })], se.prototype, "thisOne", void 0), t([dt()], se.prototype, "styleTypeClass", void 0), t([ht(".option_overlay")], se.prototype, "modalEl", void 0), t([ht(".label")], se.prototype, "labelEl", void 0), t([ht(
                  ".bundle-product-select")], se.prototype, "bundleProductSelect", void 0), t([ht(".dropdown-overlay")], se.prototype, "maskEl", void 0), t([ct()], se.prototype, "price", void 0), t([ct()], se.prototype, "compare_at_price",
                  void 0), t([ct()], se.prototype, "modalWidth", void 0), t([ct()], se.prototype, "modalLeft", void 0), t([ct()], se.prototype, "modalTop", void 0), window.customElements.get("bundle-product-select") || window.customElements
                .define("bundle-product-select", se);
              var re = !1;
              if ("undefined" != typeof window) {
                var le = {
                  get passive() {
                    re = !0
                  }
                };
                window.addEventListener("testPassive", null, le), window.removeEventListener("testPassive", null, le)
              }
              var ae = "undefined" != typeof window && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || "MacIntel" === window.navigator.platform && window.navigator.maxTouchPoints > 1),
                de = [],
                ce = !1,
                pe = -1,
                he = void 0,
                ue = void 0,
                fe = void 0,
                ve = function(t) {
                  return de.some((function(e) {
                    return !(!e.options.allowTouchMove || !e.options.allowTouchMove(t))
                  }))
                },
                me = function(t) {
                  var e = t || window.event;
                  return !!ve(e.target) || (e.touches.length > 1 || (e.preventDefault && e.preventDefault(), !1))
                },
                ge = function(t, e) {
                  if (t) {
                    if (!de.some((function(e) {
                        return e.targetElement === t
                      }))) {
                      var i = {
                        targetElement: t,
                        options: e || {}
                      };
                      de = [].concat(function(t) {
                        if (Array.isArray(t)) {
                          for (var e = 0, i = Array(t.length); e < t.length; e++) i[e] = t[e];
                          return i
                        }
                        return Array.from(t)
                      }(de), [i]), ae ? window.requestAnimationFrame((function() {
                        if (void 0 === ue) {
                          ue = {
                            position: document.body.style.position,
                            top: document.body.style.top,
                            left: document.body.style.left
                          };
                          var t = window,
                            e = t.scrollY,
                            i = t.scrollX,
                            o = t.innerHeight;
                          document.body.style.position = "fixed", document.body.style.top = -e, document.body.style.left = -i, setTimeout((function() {
                            return window.requestAnimationFrame((function() {
                              var t = o - window.innerHeight;
                              t && e >= o && (document.body.style.top = -(e + t))
                            }))
                          }), 300)
                        }
                      })) : function(t) {
                        if (void 0 === fe) {
                          var e = !!t && !0 === t.reserveScrollBarGap,
                            i = window.innerWidth - document.documentElement.clientWidth;
                          if (e && i > 0) {
                            var o = parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right"), 10);
                            fe = document.body.style.paddingRight, document.body.style.paddingRight = o + i + "px"
                          }
                        }
                        void 0 === he && (he = document.body.style.overflow, document.body.style.overflow = "hidden")
                      }(e), ae && (t.ontouchstart = function(t) {
                        1 === t.targetTouches.length && (pe = t.targetTouches[0].clientY)
                      }, t.ontouchmove = function(e) {
                        1 === e.targetTouches.length && function(t, e) {
                          var i = t.targetTouches[0].clientY - pe;
                          !ve(t.target) && (e && 0 === e.scrollTop && i > 0 || function(t) {
                            return !!t && t.scrollHeight - t.scrollTop <= t.clientHeight
                          }(e) && i < 0 ? me(t) : t.stopPropagation())
                        }(e, t)
                      }, ce || (document.addEventListener("touchmove", me, re ? {
                        passive: !1
                      } : void 0), ce = !0))
                    }
                  } else console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.")
                },
                ye = function(t) {
                  t ? (de = de.filter((function(e) {
                    return e.targetElement !== t
                  })), ae && (t.ontouchstart = null, t.ontouchmove = null, ce && 0 === de.length && (document.removeEventListener("touchmove", me, re ? {
                    passive: !1
                  } : void 0), ce = !1)), ae ? function() {
                    if (void 0 !== ue) {
                      var t = -parseInt(document.body.style.top, 10),
                        e = -parseInt(document.body.style.left, 10);
                      document.body.style.position = ue.position, document.body.style.top = ue.top, document.body.style.left = ue.left, window.scrollTo(e, t), ue = void 0
                    }
                  }() : (void 0 !== fe && (document.body.style.paddingRight = fe, fe = void 0), void 0 !== he && (document.body.style.overflow = he, he = void 0))) : console.error(
                    "enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.")
                };
              let be;
              class xe extends st {
                constructor() {
                  super(...arguments), this.selectedOptions = {}, this.options = [], this.data = {}, this.top = "", this.price = "", this.compareAtPrice = "", this.image = {}, this.isSelect = !1, this.priceScope = "", this.backgroundColor =
                    "#EE7C30"
                }
                willUpdate() {
                  var t, e, i;
                  const o = this;
                  null === (e = null === (t = this.data) || void 0 === t ? void 0 : t.variants) || void 0 === e || e.forEach((function(t, e) {
                    var i;
                    t.option1 === o.selectedOptions.option1 && t.option2 === ((null == o ? void 0 : o.selectedOptions.option2) || "") && t.option3 === ((null == o ? void 0 : o.selectedOptions.option3) || "") && (o.image = (null === (i =
                      null == t ? void 0 : t.image) || void 0 === i ? void 0 : i.src) ? null == t ? void 0 : t.image : o.data.image, o.price = t.price, o.compareAtPrice = t.compare_at_price)
                  })), null === (i = this.modalInputEl) || void 0 === i || i.focus()
                }
                attributeChangedCallback(t, e, i) {
                  "top" === t && +i > 0 && (be = +i)
                }
                closeModal() {
                  var t;
                  window.innerWidth < 960 && ye(null === (t = this.shadowRoot) || void 0 === t ? void 0 : t.querySelector(".select")), document.documentElement.scrollTop = be, this.dispatchEvent(new CustomEvent("closeModal", {
                    bubbles: !0,
                    composed: !0,
                    cancelable: !0
                  }))
                }
                firstUpdated() {
                  window.innerWidth < 960 || (this.modalEl.addEventListener("mousedown", (t => {
                    this.closeIconEl.contains(t.target) || t.preventDefault()
                  })), this.modalInputEl.addEventListener("blur", (() => {
                    this.closeModal()
                  })))
                }
                variantChange(t) {
                  this.priceScope = t.detail
                }
                render() {
                  var t, e;
                  this.isSelect && window.innerWidth < 960 && ge(this.selectEl);
                  const i = (null === (t = this.selectEl) || void 0 === t ? void 0 : t.scrollHeight) > (null === (e = this.selectEl) || void 0 === e ? void 0 : e.clientHeight);
                  return R`<input id="modal" readonly="readonly"> <label class="modal notranslate" for="modal"><div class="modal_content"><div class="modal_header"><div class="modal_header_img"><img src="${this.image.src}" class="lazyload" alt="appbundle"></div><div class="modal_header_info"><div class="modal_header_title">${this.data.title}</div><div class="prices"><div class="modal_header_price money notranslate">${this.priceScope||Nt(this.price)}</div><div class="modal_compare_price money notranslate">${Nt(this.compareAtPrice)}</div></div></div><div class="modal_close_icon" @click="${this.closeModal}"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="none"><path fill="#000" d="m17.41 16.02 4.24 4.24a1.002 1.002 0 0 1-1.418 1.416l-4.241-4.24-4.269 4.269a1.009 1.009 0 0 1-1.427-1.427l4.27-4.27-4.24-4.24a1 1 0 0 1 1.414-1.416l4.241 4.241 4.298-4.298a1.009 1.009 0 0 1 1.427 1.427l-4.296 4.299Z"/></svg></div></div><div class="options"><bundle-product-option class="select" .isSelect="${this.isSelect}" .selectedOptions="${this.selectedOptions}" .options="${this.options}" .data="${this.data}" @variantClick="${()=>this.priceScope=""}" @variantChange="${this.variantChange}"></bundle-product-option></div></div></label><div class="btn" style="${i?"box-shadow: 0px 2px 10px 1px rgb(0 0 0 / 10%);":""}"><bundle-button @click="${this.closeModal}">confirm</bundle-button></div>`
                }
              }
              xe.styles =
                l`:host{position:relative}.modal_header{display:none}input#modal{height:0;opacity:0;border:0;position:absolute}.btn{display:none}@media(max-width:960px){.modal{display:flex;max-height:80vh;overflow:hidden}.modal_content{display:flex;flex-direction:column;overflow:hidden;width:100%}.modal_header{display:flex;position:relative;margin-bottom:16px;padding:16px;padding-bottom:0;flex-shrink:0}.modal_header .modal_close_icon{position:absolute;top:8px;right:6px}.modal_header_img img{margin-right:16px;flex-shrink:0}.modal_header_img{height:66px}.modal_header_img img{width:66px;height:66px;object-fit:cover;border-radius:4px 4px 4px 4px}.modal_header_info{margin-right:36px}.prices{display:flex;align-items:baseline}.modal_header_title{width:100%;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:16px}.modal_header_price{color:var(--color_price);font-size:16px;font-weight:500}.modal_compare_price{color:var(--color_origin_price);font-size:14px;margin-left:8px;text-decoration:line-through;font-weight:400}.options_wrap{padding:0 16px 78px 16px;flex:1;overflow:hidden}.options{flex:1;display:flex;overflow:hidden;padding-bottom:74px}.select{overflow:auto;padding:0 16px}.btn{display:block;position:fixed;bottom:0;left:0;width:100%;box-sizing:border-box;padding:16px;background-color:#fff;font-size:16px}}`,
                t([dt({})], xe.prototype, "selectedOptions", void 0), t([dt({
                  type: Array
                })], xe.prototype, "options", void 0), t([dt()], xe.prototype, "data", void 0), t([dt()], xe.prototype, "top", void 0), t([dt()], xe.prototype, "price", void 0), t([dt()], xe.prototype, "compareAtPrice", void 0), t([dt()], xe
                  .prototype, "image", void 0), t([dt({
                  type: Boolean
                })], xe.prototype, "isSelect", void 0), t([ht("label.modal")], xe.prototype, "modalEl", void 0), t([ht("input#modal")], xe.prototype, "modalInputEl", void 0), t([ht(".modal_close_icon")], xe.prototype, "closeIconEl", void 0), t(
                  [ht(".select")], xe.prototype, "selectEl", void 0), t([ct()], xe.prototype, "priceScope", void 0), t([dt({
                  type: String,
                  attribute: "background-color"
                })], xe.prototype, "backgroundColor", void 0), window.customElements.get("bundle-select-modal") || window.customElements.define("bundle-select-modal", xe);
              class we extends st {
                constructor() {
                  super(...arguments), this.options = [], this.selectedOptions = {}, this.overlay = !1, this.index = 0, this.isSelect = !1
                }
                variantsTypeChange(t) {
                  var e, i;
                  let o = t.currentTarget;
                  if (o.classList.contains("option_container_selected")) o.classList.remove("option_container_selected");
                  else {
                    null === (e = o.parentElement.querySelector(".option_container_selected")) || void 0 === e || e.classList.remove("option_container_selected"), o.classList.add("option_container_selected");
                    if (this.options.length === ((null === (i = this.shadowRoot.querySelectorAll(".option_container_selected")) || void 0 === i ? void 0 : i.length) || 0)) {
                      let t = {};
                      for (let e = 0; e < this.options.length; e++) t[`option${e+1}`] = this.contentEls[e].querySelector(".option_container_selected").getAttribute("val");
                      this.dispatchEvent(new CustomEvent("variantClick", {
                        detail: t,
                        bubbles: !0,
                        composed: !0,
                        cancelable: !0
                      }))
                    }
                  }
                  this.requestUpdate(), setTimeout((() => {
                    var t;
                    if (this.options.length === ((null === (t = this.shadowRoot.querySelectorAll(".option_container_selected")) || void 0 === t ? void 0 : t.length) || 0)) return;
                    let e = this.data.variants.slice();
                    const i = this.data.options;
                    this.shadowRoot.querySelectorAll(".option_container_selected").forEach((t => {
                      const o = t.id.split("-"),
                        n = parseInt(o[0].substring(6), 10) - 1,
                        s = parseInt(o[1], 10);
                      e = e.filter((t => t[o[0]] == i[n].values[s]))
                    }));
                    const o = e.reduce(((t, e) => parseFloat(t.price) > parseFloat(e.price) ? e : t), e[0]).price,
                      n = e.reduce(((t, e) => parseFloat(t.price) < parseFloat(e.price) ? e : t), e[0]).price,
                      s = o === n ? Nt(o) : `${Nt(o)} - ${Nt(n)}`;
                    this.dispatchEvent(new CustomEvent("variantChange", {
                      detail: s
                    }))
                  }), 50)
                }
                updated() {
                  var t = this.data.variants.slice();
                  const e = this.data.options;
                  let i = [];
                  this.shadowRoot.querySelectorAll(".option_container_selected").forEach((o => {
                    var n = o.id.split("-"),
                      s = parseInt(n[0].substring(6), 10) - 1,
                      r = parseInt(n[1], 10);
                    i.push(n[0]), t = t.filter((t => t[n[0]] == e[s].values[r]))
                  }));
                  this.shadowRoot.querySelectorAll(".option_container:not(.option_container_selected)").forEach((o => {
                    var n = o.id.split("-"),
                      s = parseInt(n[0].substring(6), 10) - 1,
                      r = parseInt(n[1], 10),
                      l = Object.assign({}, t[0]);
                    l[n[0]] = e[s].values[r];
                    var a = i.slice(); - 1 == a.indexOf(n[0]) && a.push(n[0]);
                    var d = 0 == this.data.variants.filter((t => (t.option1 == l.option1 || -1 === a.indexOf("option1")) && (t.option2 == l.option2 || -1 === a.indexOf("option2")) && (t.option3 == l.option3 || -1 === a.indexOf(
                      "option3")) && +t.available_quantity > 0)).length;
                    d ? o.classList.add("disabled") : o.classList.remove("disabled")
                  }))
                }
                render() {
                  var t;
                  return R`<div class="product_option notranslate">${null===(t=this.options)||void 0===t?void 0:t.map(((t,e)=>R`<div class="option_name">${t.name}</div><div class="option_content" index="${e}">${t.values.map(((t,i)=>R`<div val="${t}" option="${`option${e+1}`}" id="${`option${e+1}-${i}`}" class="option_container ${this.selectedOptions["option"+(+e+1)]===t?"option_container_selected":""}" @click="${this.variantsTypeChange}">${t}</div>`))}</div>`))}</div>`
                }
              }
              we.styles =
                l`@media(max-width:960px){:host(.select) .product_option{max-height:70vh}}.option_content{display:flex;flex-wrap:wrap;margin-bottom:8px;margin-top:8px}.option_name{font-size:12px;line-height:16px}.option_container{min-width:36px;min-height:36px;box-shadow:inset 0 0 0 1px rgba(33,43,54,.25),inset 0 0 0 3px transparent;padding:6px 12px;margin-right:8px;margin-bottom:8px;display:flex;justify-content:center;align-items:center;box-sizing:border-box;border-radius:2px;font-size:14px;cursor:pointer;word-break:break-word}.option_container_selected{box-shadow:inset 0 0 0 2px var(--color-body-text,#212b36)}.disabled{background-color:#efefef;pointer-events:none}@media(max-width:960px){.option_name{font-size:14px}.option_content{font-size:16px}.option_container{min-width:42px;min-height:42px}.product_option{scrollbar-width:none;-ms-overflow-style:none}.product_option::-webkit-scrollbar{display:none}}`,
                t([function(t) {
                  return pt({
                    descriptor: e => ({
                      get() {
                        var e, i;
                        return null !== (i = null === (e = this.renderRoot) || void 0 === e ? void 0 : e.querySelectorAll(t)) && void 0 !== i ? i : []
                      },
                      enumerable: !0,
                      configurable: !0
                    })
                  })
                }(".option_content")], we.prototype, "contentEls", void 0), t([dt()], we.prototype, "options", void 0), t([dt()], we.prototype, "data", void 0), t([dt({})], we.prototype, "selectedOptions", void 0), t([dt({
                  type: Boolean
                })], we.prototype, "overlay", void 0), t([dt({
                  type: Number
                })], we.prototype, "index", void 0), t([dt({
                  type: Boolean
                })], we.prototype, "isSelect", void 0), window.customElements.get("bundle-product-option") || window.customElements.define("bundle-product-option", we);
              const _e = window.C_SETTINGS.shop.wholesale_enabled;
              class $e extends st {
                constructor() {
                  super(...arguments), this.data = {}, this.selectedOptions = {}, this.options = [], this.numDropDown = 1, this.imgList = [], this.currentImgIndex = 0, this.currentPosition = 1, this.loading = !1, this.priceScope = "", this
                    .icon =
                    R`<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path opacity=".01" fill="#fff" d="M0 0h16v16H0z"/><path d="M8 11.048a.748.748 0 0 0 .57-.26l4.555-4.556a.75.75 0 0 0-1.06-1.06L8 9.236 3.936 5.172a.75.75 0 0 0-1.061 1.06l4.555 4.556a.748.748 0 0 0 .57.26z" fill="#0A1533"/></svg>`,
                    this.closeIcon =
                    R`<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M3.404 2.343l4.595 4.595 4.597-4.595a.75.75 0 1 1 1.06 1.06L9.06 8l4.597 4.597a.75.75 0 1 1-1.06 1.06L7.998 9.06l-4.595 4.597a.75.75 0 1 1-1.06-1.06l4.594-4.598-4.595-4.595a.75.75 0 1 1 1.06-1.06z" fill="currentColor"/></svg>`
                }
                firstUpdated() {
                  var t, e, i, o, n;
                  if (ge(null === (t = this.shadowRoot) || void 0 === t ? void 0 : t.querySelector(".content")), this.imgList = this.data.images.map((t => t.src)) || [], null === (e = this.data) || void 0 === e ? void 0 : e.variants) {
                    if (this.data.selected_options) this.selectedOptions = Object.assign({}, this.data.selected_options);
                    else
                      for (let t of this.data.variants)
                        if (t.available) {
                          this.selectedOptions.option1 = t.option1, this.selectedOptions.option2 = t.option2, this.selectedOptions.option3 = t.option3;
                          break
                        } this.data.selected_id && this.data.variants.forEach(((t, e) => {
                      if (t.id === this.data.selected_id) {
                        let e = this.imgList.findIndex((e => {
                          var i;
                          return (null === (i = t.image) || void 0 === i ? void 0 : i.src) === e
                        }));
                        e > -1 && (this.currentImgIndex = e), this.changeNextOrPrev(0, 1)
                      }
                    }))
                  }
                  this.listEl.addEventListener("scroll", Lt((t => {
                    const e = this.listEl.scrollLeft,
                      i = .75 * document.body.offsetWidth;
                    this.currentPosition = Math.round(e / i) + 1
                  }), 100)), this.shadowRoot.querySelector(".modal").addEventListener("touchstart", (t => {
                    t.stopPropagation()
                  }));
                  (null === (i = this.shadowRoot) || void 0 === i ? void 0 : i.querySelector(".num_input")).addEventListener("blur", (t => {
                    if (t.target.value = t.target.value.replace(/[^\d]/g, ""), "" === t.target.value.trim() || +t.target.value.trim() < 1) return t.target.value = 1, void(this.numDropDown = 1);
                    this.numDropDown = +t.target.value
                  }));
                  const s = null === (o = this.shadowRoot) || void 0 === o ? void 0 : o.querySelector(".num_item_sub"),
                    r = null === (n = this.shadowRoot) || void 0 === n ? void 0 : n.querySelector(".num_item_add");
                  1 === this.numDropDown && s.classList.add("num_item_not_allow"), s.addEventListener("click", (t => {
                    this.numDropDown > 1 && this.numDropDown--
                  })), r.addEventListener("click", (t => {
                    var e, i, o;
                    const n = this.data.variants.find((t => t.id === this.data.selected_id)); + n.available_quantity > +this.numDropDown && (this.numDropDown++, null === (o = null === (i = null === (e = this.shadowRoot) || void 0 ===
                      e ? void 0 : e.querySelector(".num_item_not_allow")) || void 0 === i ? void 0 : i.classList) || void 0 === o || o.remove("num_item_not_allow"))
                  }))
                }
                variantChange(t) {
                  this.priceScope = t.detail
                }
                getQualifiedWPriceClassName(t) {
                  let e = "";
                  return t.max_quantity ? this.numDropDown <= t.max_quantity && this.numDropDown >= t.min_quantity && (e = "w-price-qualified") : this.numDropDown >= t.min_quantity && (e = "w-price-qualified"), e
                }
                variantClick(t) {
                  var e, i;
                  Object.assign(this.selectedOptions, t.detail), null === (i = null === (e = this.data) || void 0 === e ? void 0 : e.variants) || void 0 === i || i.forEach(((t, e) => {
                    if (t.option1 === this.selectedOptions.option1 && t.option2 === ((null == this ? void 0 : this.selectedOptions.option2) || "") && t.option3 === ((null == this ? void 0 : this.selectedOptions.option3) || "")) {
                      const e = this.imgList.findIndex((e => {
                        var i;
                        return (null === (i = t.image) || void 0 === i ? void 0 : i.src) === e
                      }));
                      this.data.selected_id = t.id, -1 !== e && (this.currentImgIndex = e)
                    }
                  })), this.data.selected_options = Object.assign({}, this.selectedOptions), this.scrollList(), this.changeNextOrPrev(0);
                  const o = this.data.variants.find((t => t.id === this.data.selected_id)); + this.numDropDown > +o.available_quantity && (this.numDropDown = +o.available_quantity), this.priceScope = "", this.requestUpdate()
                }
                changeImage(t) {
                  this.currentImgIndex = t, this.scrollList(), this.changeNextOrPrev(0)
                }
                scrollList() {
                  setTimeout((() => {
                    try {
                      const t = this.shadowRoot.querySelector(".img-item-selected");
                      t.parentElement.scrollTo({
                        left: t.offsetLeft,
                        behavior: "smooth"
                      })
                    } catch (t) {
                      console.error(t)
                    }
                  }))
                }
                changeNextOrPrev(t, e) {
                  const i = this.currentImgIndex + t;
                  i < 0 || i > this.imgList.length - 1 || (this.currentImgIndex += t, e ? setTimeout((() => {
                    this.shadowRoot.querySelector(".img-item-selected").scrollIntoView({
                      inline: "start"
                    })
                  })) : this.scrollList())
                }
                closeModal() {
                  var t;
                  ye(null === (t = this.shadowRoot) || void 0 === t ? void 0 : t.querySelector(".content")), document.documentElement.scrollTop = this.currentScrollTop, this.close()
                }
                buyNowProcess(t) {
                  var i;
                  return e(this, void 0, void 0, (function*() {
                    let e = t.properties || {};
                    const o = yield Bt.post("/api/checkout/order", {
                      body: {
                        line_items: [{
                          quantity: +this.numDropDown || 1,
                          variant_id: t.selected_id,
                          note: "",
                          properties: e
                        }],
                        refer_info: {
                          source: "buy_now"
                        }
                      }
                    });
                    if ("success" === o.state) return window.safeHref = It(`/checkout/${null===(i=o.data)||void 0===i?void 0:i.order_token}?step=contact_information`)
                  }))
                }
                addToCart() {
                  var t, i;
                  return e(this, void 0, void 0, (function*() {
                    if ("" !== this.priceScope) return void this.showToast('Please select a variant at least');
                    this.loading = !0;
                    const e = {
                        product_id: this.data.id,
                        variant_id: this.data.selected_id,
                        quantity: +this.numDropDown || 1
                      },
                      o = yield Bt.post("/api/cart/batch", {
                        body: {
                          line_items: [e]
                        }
                      });
                    if (o.errors) return this.showToast(o.errors[0]), this.loading = !1, void this.closeModal();
                    this.loading = !1;
                    const n = ((null === (t = window.SHOP_PARAMS) || void 0 === t ? void 0 : t.product_settings) || {}).add_to_cart_process;
                    "to_cart" === n && "page" === n || (Rt ? window.$(document).trigger("dj.common.cart.change") : document.dispatchEvent(new CustomEvent("dj.cartChange")));
                    const s = {
                      id: this.data.id,
                      product_id: this.data.id,
                      number: this.data.count || 1,
                      quantity: this.numDropDown || 1,
                      variant_id: this.data.selected_id,
                      childrenId: this.data.selected_id,
                      item_price: this.data.variants.find((t => t.id === this.data.selected_id)).price,
                      name: this.data.title,
                      type: "",
                      source: "bundle",
                      process: ((null === (i = window.SHOP_PARAMS) || void 0 === i ? void 0 : i.product_settings) || {}).add_to_cart_process
                    };
                    Rt ? window.$(document.body).trigger("dj.addToCart", s) : document.dispatchEvent(new CustomEvent("dj.addToCart", {
                      detail: s
                    })), this.closeModal(), "to_cart" === n || "page" === n ? window.safeHref ? window.safeHref = It("/cart") : window.location.href = It("/cart") : "to_checkout" === n && this.buyNowProcess(this.data), this
                    .showToast()
                  }))
                }
                showToast(t) {
                  const e = document.createElement("bundle-toast");
                  t && (e.text = t), document.body.appendChild(e)
                }
                render() {
                  const t = this.data.variants.find((t => t.id === this.data.selected_id)),
                    e = null == t ? void 0 : t.price,
                    i = null == t ? void 0 : t.compare_at_price,
                    o = window.innerWidth < 960,
                    n = this.currentImgIndex > 0,
                    s = this.currentImgIndex < this.imgList.length - 1;
                  return R`<div class="modal"><div class="content"><div class="slider"><div class="image"><img src="${this.imgList[this.currentImgIndex]}" class="lazyload" alt="appbundle"> ${n?R`<div class="arrow arrow-l" @click="${()=>this.changeNextOrPrev(-1)}"><svg viewBox="0 0 100 100"><path d="M30 50l25 25 5-5-20-20 20-20-5-5z" fill="#fff"/></svg></div>`:""} ${s?R`<div class="arrow arrow-r" @click="${()=>this.changeNextOrPrev(1)}"><svg viewBox="0 0 100 100"><path d="M70 50L45 25l-5 5 20 20-20 20 5 5z" fill="#fff"/></svg></div>`:""}</div><div class="list" style="grid-template-columns:repeat(${this.imgList.length},${o?this.imgList.length>1?"75%":"100%":"68px"})">${this.imgList.map(((t,e)=>R`<img alt="appbundle" class="lazyload img-item ${e===this.currentImgIndex?"img-item-selected":""} ${1===this.imgList.length?"lonely":""}" src="${t}" @click="${()=>this.changeImage(e)}">`))} ${this.imgList.length>1?R`<div class="position notranslate">${this.currentPosition}/${this.imgList.length}</div>`:""}</div></div><div class="body"><div class="header"><div class="title">${this.data.title}</div>${_e?R`<div><a href="${It(this.data.url)}" class="see-detail see-detail-trial">See detail${this.icon}</a></div><div class="w-price-list notranslate">${((null==t?void 0:t.wholesale_price)||[]).map((t=>R`<div class="w-price-item"><div class="w-price ${this.getQualifiedWPriceClassName(t)}">${Nt(t.price)}</div><div class="w-item">${t.max_quantity?`${t.min_quantity} - ${t.max_quantity} Pieces`:`>= ${t.min_quantity} Pieces`}</div></div>`))}</div>`:R`<div class="sub"><div class="prices"><span class="price money notranslate">${this.priceScope||Nt(e)}</span> <span class="compare-price money notranslate">${Nt(i)}</span></div><a href="${It(this.data.url)}" class="see-detail">See detail${this.icon}</a></div>`}</div>${o?R`<div class="divider"></div>`:""}<div class="options"><bundle-product-option .selectedOptions="${this.selectedOptions}" .options="${this.data.options}" .data="${this.data}" @variantClick="${this.variantClick}" @variantChange="${this.variantChange}"></bundle-product-option></div><div class="quantity"><div class="quantity_title">Quantity</div><div class="num_select_mobile"><div class="num_item_sub ${1==+this.numDropDown?"num_item_not_allow":""}"><svg fill="currentColor" width="13" height="14" xmlns="http://www.w3.org/2000/svg"><rect y="6" width="13" height="1" rx=".5" transform="translate(0 .5)" fill-rule="evenodd"></rect></svg></div><input type="tel" class="num_input" .value="${this.numDropDown}"><div class="num_item_add ${+this.numDropDown>=t.available_quantity?"num_item_not_allow":""}"><svg width="13" height="14" xmlns="http://www.w3.org/2000/svg"><path d="M6.5 0a.5.5 0 0 1 .5.5V6h5.5a.5.5 0 1 1 0 1H7v5.5a.5.5 0 1 1-1 0V7H.5a.5.5 0 0 1 0-1H6V.5a.5.5 0 0 1 .5-.5z" fill="currentColor"></path></svg></div></div></div><div class="btn"><bundle-button text-color="${this.btnTextColor}" bg-color="${this.btnBgColor}" @click="${this.addToCart}" ?loading="${this.loading}">Add to Cart</bundle-button></div></div><div class="close-icon" @click="${this.closeModal}">${this.closeIcon}</div></div><div class="mask" @click="${this.closeModal}"></div></div>`
                }
              }
              $e.styles =
                l`.content{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1101;background-color:#fff;display:flex}@media (max-width:960px){.content{top:68px;left:0;right:0;bottom:0;transform:unset;flex-direction:column;overflow:scroll;padding-bottom:86px}}.slider{position:relative;flex-shrink:0;padding:24px;width:360px;user-select:none;padding-inline-end:0}@media (max-width:960px){.slider{width:100%;padding:0}}.title{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#212b36;line-height:22px;font-size:16px}.price{font-size:22px;font-weight:500;color:var(--color_price);line-height:22px}.prices{display:flex;align-items:center}.compare-price{margin-left:8px;font-size:16px;font-weight:400;color:var(--color_origin_price);line-height:22px;text-decoration:line-through}@media (min-width:960px){.options{max-height:420px;overflow:scroll;scrollbar-width:none;-ms-overflow-style:none}.options::-webkit-scrollbar{display:none}}.image{position:relative;width:100%;height:480px}@media (max-width:960px){.image{display:none}}.image>img{width:100%;height:100%;object-fit:contain}.arrow{position:absolute;top:50%;width:40px;height:40px;background-color:rgba(0,0,0,.14);border-radius:50%;cursor:pointer;z-index:1}.arrow-not-allow{opacity:.7}.arrow-l{left:16px;transform:translate(0,-50%)}.arrow-r{right:16px;transform:translate(0,-50%)}.body{display:flex;flex-direction:column;width:350px;padding:24px 48px 24px 40px}.quantity{font-size:14px}.quantity_title{margin-bottom:8px}.num_select_mobile{display:none}.num_select_mobile{display:flex;align-items:center;justify-content:center;width:120px}.num_item_add,.num_item_sub{border:1px solid #ddd;cursor:pointer}.num_item_add,.num_item_sub,.num_item_val{display:flex;align-items:center;justify-content:center;width:38px;height:38px}.num_item_not_allow{background-color:#e6e6e6;color:rgba(16,16,16,.3)}.num_input{box-sizing:border-box;border:1px solid transparent;width:36px;height:40px;outline:0;font-size:16px;text-align:center}.quantity_select{display:flex}.select_icon{margin-top:10px;margin-left:-26px;pointer-events:none}@media (max-width:960px){.body{width:100%;padding:16px;box-sizing:border-box}}.header{display:flex;flex-direction:column}.sub{display:flex;align-items:center;padding:16px 0}.see-detail{display:flex;align-items:center;margin-left:auto;color:#30354d;font-size:14px;text-decoration:auto;cursor:pointer;white-space:nowrap;flex-shrink:0}.see-detail svg{margin-left:4px;transform:rotateZ(270deg)}.see-detail-trial{margin-top:8px}.w-price-list{display:flex;padding:12px 16px;background:#f9f9fa;border-radius:4px;overflow-x:scroll;margin-top:8px}.w-price-list::-webkit-scrollbar{height:4px}.w-price-list::-webkit-scrollbar-track{background:#f9f9fa}.w-price-list::-webkit-scrollbar-thumb{background:#cccbcb;border-radius:2px}.w-price-list::-webkit-scrollbar-thumb:hover{background:#888}.w-price-item{margin-right:32px;flex-shrink:0}.w-price-item:last-child{margin-right:0}.w-price{font-weight:500;font-size:16px;line-height:23px;color:val(--color-body-text,#292929)}.w-price-qualified{color:#ff3f02}.w-item{font-weight:400;font-size:12px;line-height:17px;color:rgba(41,41,41,.7);margin-top:4px}.list{display:grid;grid-column-gap:8px;overflow-x:scroll;width:100%;margin-top:8px;scrollbar-width:none;-ms-overflow-style:none}.list::-webkit-scrollbar{display:none}@media (max-width:960px){.list{scroll-snap-type:x mandatory;margin-top:0}.sub{padding:8px 0}.price{font-size:20px}.divider{border-bottom:1px solid #d8dbe6;margin:12px 0 20px 0}.see-detail{font-size:12px}}@media (min-width:960px){.position{display:none}}.position{position:absolute;right:12px;bottom:12px;z-index:1;background:rgba(0,0,0,.4);border-radius:17px 17px 17px 17px;padding:4px 8px;font-size:12px;color:#fff;line-height:14px}.img-item{width:68px;height:68px;object-fit:cover;border-radius:4px;box-sizing:border-box}@media (max-width:960px){.img-item{width:100%;height:75vw;scroll-snap-align:start;border-radius:0}.lonely{height:80vw;object-fit:contain;background-color:#f9f9f9}}@media (min-width:960px){.img-item-selected{padding:3px;border:1px solid #212b36}}.btn{margin-top:auto;text-align:center;padding-top:16px;margin-bottom:-8px}@media (max-width:960px){.btn{position:fixed;bottom:0;left:0;width:100%;box-sizing:border-box;padding:16px;box-shadow:0 2px 10px 1px rgb(0 0 0 / 10%);background-color:#fff;margin-bottom:0}.title{font-size:14px;line-height:16px}}.mask{position:fixed;top:0;left:0;bottom:0;right:0;z-index:1100;background-color:rgba(0,0,0,.7)}.close-icon{position:absolute;top:8px;right:8px;display:flex;justify-content:center;align-items:center;color:#0a1533;width:36px;height:36px;background-color:transparent;cursor:pointer;z-index:1}html[dir=rtl] .close-icon{left:8px;right:unset}@media (max-width:960px){.close-icon{position:fixed;top:80px;right:12px;color:#fff;border-radius:50%;background-color:rgba(0,0,0,.2)}}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}`,
                t([ht(".list")], $e.prototype, "listEl", void 0), t([dt()], $e.prototype, "data", void 0), t([dt()], $e.prototype, "selectedOptions", void 0), t([dt({
                  type: Array
                })], $e.prototype, "options", void 0), t([dt()], $e.prototype, "close", void 0), t([dt()], $e.prototype, "numDropDown", void 0), t([dt({
                  attribute: "btn-bg-color"
                })], $e.prototype, "btnBgColor", void 0), t([dt({
                  attribute: "btn-text-color"
                })], $e.prototype, "btnTextColor", void 0), t([dt({
                  attribute: "top"
                })], $e.prototype, "currentScrollTop", void 0), t([ct()], $e.prototype, "imgList", void 0), t([ct()], $e.prototype, "currentImgIndex", void 0), t([ct()], $e.prototype, "currentPosition", void 0), t([ct()], $e.prototype,
                  "loading", void 0), t([ct()], $e.prototype, "priceScope", void 0), window.customElements.get("bundle-product-modal") || window.customElements.define("bundle-product-modal", $e);
              class Se extends st {
                updated() {
                  var t;
                  const e = window.innerWidth < 960,
                    i = !document.querySelector('div[data-section-type*="//apps/appbundle/blocks/bundle-combination/"] bundle-product-list'),
                    o = this.shadowRoot.querySelector(".wrap"),
                    n = this.shadowRoot.querySelector(".skeleton");
                  i && !e && (o.style.padding = "40px 0", n.style.padding = "40px 8px 12px", null === (t = this.shadowRoot.querySelector(".skeleton br")) || void 0 === t || t.remove()), i && e && (o.style.padding = "16px 0"), i || e || (o
                    .style.padding = "40px 0"), !i && e && (o.style.padding = "16px 0")
                }
                render() {
                  return R`<div class="wrap"><div class="skeleton">The current item does not participate in the bundling. Switch the participating items to check the design.<br>(This prompt will not be displayed on the client-side)</div></div>`
                }
              }
              Se.styles =
                l`.wrap{max-width:var(--layout-width,1000px);margin:0 auto}.skeleton{position:relative;border-radius:4px;border:2px dashed #000;color:#000;line-height:20px!important;text-align:center;font-size:14px;padding:24px 16px;font-weight:500}@media (max-width:960px){.skeleton{font-size:12px;padding:40px 8px 12px!important}.skeleton::before{font-size:12px}}.skeleton::before{content:"Bundle sales";position:absolute;top:-2px;left:-2px;padding:8px 12px;font-size:14px;background-color:#000;color:#fff;border-radius:4px 0 4px 0;text-align:center;font-weight:500}`,
                window.customElements.get("bundle-skeleton") || window.customElements.define("bundle-skeleton", Se);
              class Ce extends st {
                constructor() {
                  super(...arguments), this.text = "", this.successHtml =
                    R`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M12 24C5.373 24 0 18.628 0 12S5.373 0 12 0s12 5.373 12 12-5.373 12-12 12zm0-21.685c-5.68 0-9.686 4.006-9.686 9.686S6.32 21.686 12 21.686s9.686-4.005 9.686-9.685c0-5.68-4.006-9.686-9.686-9.686zm-1.11 13.721l-.207.207-.04-.04a.833.833 0 0 1-.357.084.838.838 0 0 1-.482-.168l-.02.02-.103-.103-.002-.001-3.532-3.533 1.212-1.212 2.927 2.927 6.458-6.46 1.213 1.213-7.064 7.065-.002.001z" fill="#EE7C30"/></svg>`
                }
                firstUpdated() {
                  setTimeout((() => {
                    const t = document.querySelector("bundle-toast");
                    null == t || t.remove()
                  }), 3e3)
                }
                render() {
                  return R`<div class="toast">${this.text?"":R`<div class="icon">${this.successHtml}</div>`} ${this.text||'Added'}</div>`
                }
              }
              Ce.styles =
                l`.toast{position:fixed;z-index:1250;left:50%;transform:translateX(-50%);display:flex;justify-content:center;align-items:center;padding:12px 120px;background-color:rgba(0,0,0,.8);font-size:16px;color:#fff;animation:fade_pc 3s;animation-fill-mode:forwards;border-radius:4px;text-align:center}.icon{display:flex;align-items:center;margin-right:12px}@media (max-width:960px){.toast{padding:12px 28px;animation:fade_mobile 3s;animation-fill-mode:forwards}}@keyframes fade_pc{0%{opacity:.1;top:20px}20%{opacity:1;top:100px}80%{opacity:1;top:100px}100%{opacity:0;top:20px}}@keyframes fade_mobile{0%{opacity:.1;top:0}20%{opacity:1;top:50px}80%{opacity:1;top:50px}100%{opacity:0;top:0}}`,
                t([dt()], Ce.prototype, "text", void 0), window.customElements.get("bundle-toast") || window.customElements.define("bundle-toast", Ce);
              class ke extends st {
                constructor() {
                  super(...arguments), this.overWidth = !1, this.titleText = "", this.savePrice = "", this.salePrice = "", this.switchable = !1, this.atcBtnStyle = 1, this.titleColor = "", this.btnBgColor = "", this.btnTextColor = "", this
                    .bundleInfo = {}, this.styleType = "sutra", this.isQuickShop = !1, this.selected_all = !1, this.select_one = !1, this.selectedInfo = [], this.loading = !1, this.success = !1, this.styleTypeClass = ""
                }
                renderImgs(t, e) {
                  var i;
                  const o = this.overWidth;
                  return null === (i = this.selectedInfo) || void 0 === i ? void 0 : i.slice(t, e).map(((e, i) => {
                    var n, s, r;
                    const l = null === (n = e.variants) || void 0 === n ? void 0 : n.find((t => t.id === e.selected_id)),
                      a = (null === (s = null == l ? void 0 : l.image) || void 0 === s ? void 0 : s.src) || (null === (r = e.image) || void 0 === r ? void 0 : r.src);
                    return R`<div class="img-item">${0!==i||3===t?R`<svg style="${o?"":"padding: 0 12px;"}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none"><path d="M18.573 8.571h-7.145V1.428a1.427 1.427 0 1 0-2.856 0V8.57H1.428a1.428 1.428 0 0 0 0 2.856h7.144v7.144a1.428 1.428 0 0 0 2.856 0v-7.145h7.144a1.428 1.428 0 0 0 0-2.855z" fill="#C5C5C5"/></svg>`:""}<bundle-product-img class="sutra ${o?"":"w-full"}" ?is-select="${e.is_selected}" .isQuickShop="${this.isQuickShop}" .count="${e.count}" .href="${e.url}" .src="${a}" @click="${()=>this.clickProduct(e)}"></bundle-product-img></div>`
                  }))
                }
                clickProduct(t) {
                  this.dispatchEvent(new CustomEvent("clickProduct", {
                    detail: t
                  }))
                }
                clickSelect() {
                  this.dispatchEvent(new CustomEvent("clickSelect"))
                }
                render() {
                  const t = this.overWidth,
                    e =
                    R`<bundle-add-cart class="sutra ${t?"":"w-full"}" styleTypeClass="${this.styleTypeClass}" layer_type="${this.bundleInfo.layer_type}" total_price="${this.bundleInfo.totalPrice}" value="${this.bundleInfo.value}" value_type="${this.bundleInfo.value_type}" .atcBtnStyle="${this.atcBtnStyle}" .salePrice="${this.salePrice}" .savePrice="${this.savePrice}" .selectedInfo="${this.selectedInfo}" .selected_all="${this.selected_all}" .success="${this.success}" .loading="${this.loading}" .btnTextColor="${this.btnTextColor}" .btnBgColor="${this.btnBgColor}" .select_one="${this.select_one}"></bundle-add-cart>`;
                  return R`<div class="container"><div class="content-list"><div class="img-list" style="${t?"":"justify-content:center; flex-wrap: wrap"}"><div class="first-list">${this.renderImgs(0,3)}</div><div class="second-list">${this.renderImgs(3)}</div></div>${t?e:""}</div><div class="select-list">${this.selectedInfo.map(((e,i)=>R`<div class="content"><div class="checkbox-wrap ${t?"":"checkbox-top"}"><bundle-check-box class="${this.styleTypeClass}" styleTypeClass="${this.styleTypeClass}" .data="${e}" .index="${i}" ?this-one="${e.thisOne}"></bundle-check-box></div><div class="select-wrap"><bundle-product-select class="sutra ${t?"":"w-full"}" ?this-one="${e.thisOne}" .data="${e}" .index="${i}" @click="${this.clickSelect}"></bundle-product-select></div></div>`))}</div>${t?"":e}</div>`
                }
              }
              ke.styles =
                l`.select-list{width:100%}.container{display:flex;flex-wrap:wrap}.checkbox-wrap{flex-shrink:0}.select-wrap{flex:1;width:0}.content{position:relative;display:flex;flex-wrap:wrap;align-items:center;margin-bottom:16px;flex-wrap:wrap;font-size:14px}.content-list{display:flex;margin-bottom:24px}.content-list svg{width:20px;height:20px;padding:0 16px}.img-list{display:flex}.img-item{display:flex;align-items:center;margin-top:32px}.grow-1{flex-grow:1;text-align:center}.first-list,.second-list{display:flex}.checkbox-top{align-self:flex-start}@media (max-width:960px){.checkbox-wrap{align-self:flex-start}.content-list svg{width:12px;height:12px;padding:0 8px!important}.bundle_money{color:var(--color_price)}.origin_money{font-size:14px}.img-item{margin-top:16px}.first-list{width:100%;justify-content:center}.second-list{width:100%;margin-left:50px}}`,
                t([dt({
                  type: Boolean
                })], ke.prototype, "overWidth", void 0), t([dt({
                  type: String,
                  attribute: "title-text"
                })], ke.prototype, "titleText", void 0), t([dt({
                  attribute: "savePrice"
                })], ke.prototype, "savePrice", void 0), t([dt({
                  attribute: "salePrice"
                })], ke.prototype, "salePrice", void 0), t([dt()], ke.prototype, "switchable", void 0), t([dt({
                  attribute: "atcBtnStyle"
                })], ke.prototype, "atcBtnStyle", void 0), t([dt({
                  type: String,
                  attribute: "title-color"
                })], ke.prototype, "titleColor", void 0), t([dt({
                  type: String,
                  attribute: "btn-bg-color"
                })], ke.prototype, "btnBgColor", void 0), t([dt({
                  type: String,
                  attribute: "btn-text-color"
                })], ke.prototype, "btnTextColor", void 0), t([dt({
                  type: Object,
                  attribute: "bundleInfo"
                })], ke.prototype, "bundleInfo", void 0), t([dt({
                  type: String,
                  attribute: "style-type"
                })], ke.prototype, "styleType", void 0), t([dt({
                  type: Boolean
                })], ke.prototype, "isQuickShop", void 0), t([dt({
                  type: Boolean,
                  attribute: "selected_all"
                })], ke.prototype, "selected_all", void 0), t([dt({
                  type: Boolean,
                  attribute: "select_one"
                })], ke.prototype, "select_one", void 0), t([dt({
                  type: Object,
                  attribute: "selectedInfo",
                  reflect: !0
                })], ke.prototype, "selectedInfo", void 0), t([dt({
                  type: Boolean,
                  attribute: "loading"
                })], ke.prototype, "loading", void 0), t([dt({
                  type: Boolean,
                  attribute: "success"
                })], ke.prototype, "success", void 0), t([dt()], ke.prototype, "styleTypeClass", void 0), window.customElements.get("bundle-sutra") || window.customElements.define("bundle-sutra", ke);
              class Ee extends st {
                constructor() {
                  super(...arguments), this.overWidth = !1, this.titleText = "", this.salePrice = "", this.savePrice = "", this.switchable = !1, this.atcBtnStyle = 1, this.titleColor = "", this.btnBgColor = "", this.btnTextColor = "", this
                    .bundleInfo = {}, this.styleType = "sutra", this.isQuickShop = !1, this.selected_all = !1, this.select_one = !1, this.selectedInfo = [], this.loading = !1, this.success = !1, this.styleTypeClass = "", this.vertical = !1,
                    this.scrollTimer = null, this.isShowArrow = !1, this.isArSa = "ar-SA" === document.documentElement.lang
                }
                clickProduct(t) {
                  this.dispatchEvent(new CustomEvent("clickProduct", {
                    detail: t
                  }))
                }
                clickSelect() {
                  this.dispatchEvent(new CustomEvent("clickSelect"))
                }
                shiftMove(t) {
                  if (this.scrollContainer) {
                    let e = this.scrollContainer.scrollLeft;
                    if (t) e -= 230, this.isArSa || (e = e < 0 ? 0 : e);
                    else {
                      const t = this.scrollContainer.offsetWidth,
                        i = this.scrollContainer.scrollWidth - t;
                      e += 230, e = e > i ? i : e
                    }
                    this.scrollContainer.scrollTo ? this.scrollContainer.scrollTo({
                      left: e,
                      behavior: "smooth"
                    }) : this.scrollContainer.scrollLeft = e
                  }
                }
                shiftLeft() {
                  this.shiftMove(!0)
                }
                shiftRight() {
                  this.shiftMove(!1)
                }
                showArrow() {
                  this.isShowArrow = !0
                }
                hideArrow() {
                  this.isShowArrow = !1
                }
                updated() {
                  if (window.innerWidth < 960) return;
                  const {
                    isInProductInfo: t
                  } = qt(!1);
                  t ? this.fashionContainer.classList.add("fashion--in") : this.fashionContainer.classList.remove("fashion--in")
                }
                render() {
                  var t;
                  const e = this.styleTypeClass === Vt.FASHION_VERTICAL;
                  let i = !1;
                  return this.scrollContainer && (i = this.scrollContainer.scrollWidth > this.scrollContainer.offsetWidth),
                    R`<div class="fashion-container ${this.styleTypeClass}"><div class="container" @mouseenter="${this.showArrow}" @mouseleave="${this.hideArrow}"><div class="container-scroll"><div class="container-scroll-inner">${null===(t=this.selectedInfo)||void 0===t?void 0:t.map(((t,e)=>{var i,o,n;const s=null===(i=t.variants)||void 0===i?void 0:i.find((e=>e.id===t.selected_id)),r=(null===(o=null==s?void 0:s.image)||void 0===o?void 0:o.src)||(null===(n=t.image)||void 0===n?void 0:n.src);return R`<div class="container-img"><div class="img-checkbox"><bundle-check-box class="${this.styleTypeClass} ${this.overWidth?"":"fashion-full"}" styleTypeClass="${this.styleTypeClass}" .data="${t}" .index="${e}" ?this-one="${t.thisOne}"></bundle-check-box></div><div class="img-wrap"><bundle-product-img class="${this.styleTypeClass} ${this.overWidth?"":"fashion-full"}" styleTypeClass="${this.styleTypeClass}" ?is-select="${t.is_selected}" .isQuickShop="${this.isQuickShop}" .count="${t.count}" .href="${t.url}" .src="${r}" @click="${()=>this.clickProduct(t)}"></bundle-product-img></div><div class="select-specification"><bundle-product-select class="${this.styleTypeClass} ${this.overWidth?"":"fashion-full"}" styleTypeClass="${this.styleTypeClass}" ?this-one="${t.thisOne}" .data="${t}" .index="${e}" @click="${this.clickSelect}"></bundle-product-select></div></div>`}))}</div></div>${e?"":R`<div class="container-arrow-left container-arrow flex-center ${this.isShowArrow&&i?"container-arrow--show":""}" @mouseup="${this.shiftLeft}">${Jt}</div>`} ${e?"":R`<div class="container-arrow-right container-arrow flex-center ${this.isShowArrow&&i?"container-arrow--show":""}" @mouseup="${this.shiftRight}">${Yt}</div>`}</div><div class="interval"></div><div class="totalinfo">${R`<bundle-add-cart class="${this.styleTypeClass} ${this.overWidth?"":"fashion-full"}" styleTypeClass="${this.styleTypeClass}" total_price="${this.bundleInfo.totalPrice}" layer_type="${this.bundleInfo.layer_type}" value="${this.bundleInfo.value}" value_type="${this.bundleInfo.value_type}" .atcBtnStyle="${this.atcBtnStyle}" .salePrice="${this.salePrice}" .savePrice="${this.savePrice}" .selectedInfo="${this.selectedInfo}" .selected_all="${this.selected_all}" .success="${this.success}" .loading="${this.loading}" .btnTextColor="${this.btnTextColor}" .btnBgColor="${this.btnBgColor}" .select_one="${this.select_one}"></bundle-add-cart>`}</div></div>`
                }
              }
              Ee.styles = [l`.fashion-container{overflow:hidden;display:flex;border:1px solid #e6e6e6}.flex-center{display:flex;align-items:center;justify-content:center}`,
                l`.fashionHorizontal.fashion-container{flex-direction:row;padding:20px;display:inline-flex;max-width:100%;box-sizing:border-box}.fashionHorizontal .container{flex:1;min-width:0;position:relative}.fashionHorizontal .container-scroll{overflow:overlay;width:100%;height:100%}.fashionHorizontal .container-scroll::-webkit-scrollbar{width:0;height:0}.fashionHorizontal .container-scroll-inner{display:flex;height:100%}.fashionHorizontal .container-img{position:relative;width:210px;display:flex;flex-direction:column;flex-shrink:0}.fashionHorizontal .container-img:not(:first-child){margin-left:20px}.fashionHorizontal .img-checkbox{position:absolute;top:10px;right:10px;z-index:10}.fashionHorizontal .container-arrow{position:absolute;width:40px;height:40px;top:50%;border-radius:50%;border:1px solid #e6e6e6;transform:translateY(-50%);background-color:#fff;cursor:pointer;opacity:0;transition:opacity .3s cubic-bezier(.455,.03,.515,.955)}.fashionHorizontal .container-arrow--show{opacity:1}.fashionHorizontal .container-arrow-left{left:10px}.fashionHorizontal .container-arrow-right{right:10px}.fashionHorizontal .interval{border-left:1px solid #e6e6e6;margin:0 20px;flex-shrink:0}.fashionHorizontal .select-specification{margin-top:12px}.fashionHorizontal .totalinfo{display:flex;align-items:center;padding:0 30px;width:220px;flex-shrink:0;box-sizing:border-box}.fashion--in.fashionHorizontal.fashion-container{flex-direction:column;padding:16px;display:flex}.fashion--in.fashionHorizontal .container{width:auto}.fashion--in.fashionHorizontal .interval{border-top:1px solid #e6e6e6;margin:20px 0;flex-shrink:0}.fashion--in.fashionHorizontal .container-img{width:calc((100% - 32px)/ 3)}.fashion--in.fashionHorizontal .container-img:not(:first-child){margin-left:16px}.fashion--in.fashionHorizontal .select-specification{margin-top:10px}.fashion--in.fashionHorizontal .totalinfo{width:auto;padding:0}@media (max-width:960px){.fashionHorizontal.fashion-container{flex-direction:column;padding:16px;display:flex}.fashionHorizontal .container{width:auto}.fashionHorizontal .interval{border-top:1px solid #e6e6e6;margin:20px 0;flex-shrink:0}.fashionHorizontal .container-img{width:120px}.fashion--in.fashionHorizontal .container-img{width:120px}.fashionHorizontal .container-img:not(:first-child){margin-left:16px}.fashionHorizontal .select-specification{margin-top:10px}.fashionHorizontal .totalinfo{width:auto;padding:0}}`,
                l`.fashionVertical.fashion-container{flex-direction:column;padding:10px 0}.fashionVertical .container-img{display:flex;padding:20px}.fashionVertical .img-checkbox{flex-shrink:0;display:flex;align-items:center}.fashionVertical .select-specification{flex:1;width:0}.fashionVertical .interval{border-top:1px solid #e6e6e6;margin:10px 20px;flex-shrink:0}.fashionVertical .totalinfo{display:flex;flex-direction:column;padding:20px}.fashion--in.fashionVertical .container-img{padding:20px 16px}.fashion--in.fashionVertical .interval{margin:0 16px}.fashion--in.fashionVertical .totalinfo{padding:20px 16px}@media (max-width:960px){.fashionVertical .container-img{padding:20px 16px}.fashionVertical .interval{margin:0 16px}.fashionVertical .totalinfo{padding:20px 16px}}`
              ], t([dt({
                type: Boolean
              })], Ee.prototype, "overWidth", void 0), t([dt({
                type: String,
                attribute: "title-text"
              })], Ee.prototype, "titleText", void 0), t([dt({
                attribute: "salePrice"
              })], Ee.prototype, "salePrice", void 0), t([dt({
                attribute: "savePrice"
              })], Ee.prototype, "savePrice", void 0), t([dt()], Ee.prototype, "switchable", void 0), t([dt({
                attribute: "atcBtnStyle"
              })], Ee.prototype, "atcBtnStyle", void 0), t([dt({
                type: String,
                attribute: "title-color"
              })], Ee.prototype, "titleColor", void 0), t([dt({
                type: String,
                attribute: "btn-bg-color"
              })], Ee.prototype, "btnBgColor", void 0), t([dt({
                type: String,
                attribute: "btn-text-color"
              })], Ee.prototype, "btnTextColor", void 0), t([dt({
                type: Object,
                attribute: "bundleInfo"
              })], Ee.prototype, "bundleInfo", void 0), t([dt({
                type: String,
                attribute: "style-type"
              })], Ee.prototype, "styleType", void 0), t([dt({
                type: Boolean
              })], Ee.prototype, "isQuickShop", void 0), t([dt({
                type: Boolean,
                attribute: "selected_all"
              })], Ee.prototype, "selected_all", void 0), t([dt({
                type: Boolean,
                attribute: "select_one"
              })], Ee.prototype, "select_one", void 0), t([dt({
                type: Object,
                attribute: "selectedInfo",
                reflect: !0
              })], Ee.prototype, "selectedInfo", void 0), t([dt({
                type: Boolean,
                attribute: "loading"
              })], Ee.prototype, "loading", void 0), t([dt({
                type: Boolean,
                attribute: "success"
              })], Ee.prototype, "success", void 0), t([dt()], Ee.prototype, "styleTypeClass", void 0), t([ht(".fashion-container")], Ee.prototype, "fashionContainer", void 0), t([ht(".container-scroll")], Ee.prototype, "scrollContainer",
                void 0), t([ct()], Ee.prototype, "vertical", void 0), t([ct()], Ee.prototype, "scrollTimer", void 0), t([ct()], Ee.prototype, "isShowArrow", void 0), t([ct()], Ee.prototype, "isArSa", void 0), window.customElements.get(
                "bundle-fashion") || window.customElements.define("bundle-fashion", Ee);
              class Te extends st {
                constructor() {
                  super(...arguments), this.layer_type = Ft, this.value = "", this.value_type = "", this.total_price = "", this.atcBtnStyle = 1, this.selectedInfo = [], this.selected_all = !1, this.salePrice = "", this.savePrice = "", this
                    .loading = !1, this.success = !1, this.select_one = !1, this.btnTextColor = "", this.btnBgColor = "", this.styleTypeClass = ""
                }
                updated() {
                  if (window.innerWidth < 960) return;
                  const {
                    isInProductInfo: t
                  } = qt();
                  t && this.addCartPanel.classList.add("addCartPanel--in")
                }
                addToCart() {
                  this.dispatchEvent(new CustomEvent("addToCart", {
                    bubbles: !0,
                    composed: !0
                  }))
                }
                buySelectedProduct() {
                  this.dispatchEvent(new CustomEvent("buySelectedProduct", {
                    bubbles: !0,
                    composed: !0
                  }))
                }
                render() {
                  const t = this.layer_type === Wt && 0 !== Number(this.savePrice),
                    e = !t && this.selected_all,
                    i = t || e ? this.total_price : this.salePrice,
                    o = this.value_type === Mt && !t && Number(this.value) >= Number(this.salePrice),
                    n = !t && !this.selected_all || "none" === this.value_type || o ? "display: none" : "",
                    s = this.selectedInfo.every((t => !t.is_selected));
                  return R`<div class="addCartPanel ${this.styleTypeClass}">${this.styleTypeClass&&0!==Number(this.savePrice)&&(t||this.selected_all)?R`<div class="discountAmount"><span>save</span> <span class="money notranslate">${` ${Nt(this.savePrice)}`}</span></div>`:""}<div class="price"><span class="price-title">Total price:</span> <span class="bundle_money money notranslate">${Nt(i)}</span> <span class="origin_money money notranslate money_delete" style="${n}">${Nt(this.salePrice)}</span></div><div class="add-cart-btn"><bundle-button class="${this.styleTypeClass}" text-color="${this.btnTextColor}" bg-color="${this.btnBgColor}" ?disabled="${s}" ?loading="${this.loading}" ?success="${this.success}" @click="${2===this.atcBtnStyle?this.buySelectedProduct:this.addToCart}">${2===this.atcBtnStyle?'Buy Now':this.select_one?'Add to Cart':'Add selected to cart'}</bundle-button></div></div>`
                }
              }
              Te.styles = [
                  l`.addCartPanel{flex-shrink:0}.discountAmount{display:inline-block;border:1px solid var(--color-text-critical,#db393a);color:var(--color-text-critical,#db393a);font-size:14px;font-weight:400;padding:4px 8px}.price-title{white-space:nowrap}.bundle_money{color:var(--color_price,#db393a);font-weight:500;white-space:nowrap}.origin_money{color:var(--color_price);font-weight:500;font-size:16px;white-space:nowrap}.money_delete{text-decoration:line-through;color:var(--color_origin_price)}`,
                  l`:host(.sutra){width:100%}:host(.sutra) .addCartPanel{margin-top:56px;text-align:center;margin-left:60px;white-space:nowrap}:host(.sutra) .price{display:flex;justify-content:center;align-items:center;margin-bottom:16px;line-height:20px;font-size:16px}:host(.sutra) .price-title{margin-right:8px}:host(.sutra) .bundle_money{margin-right:8px}:host(.sutra) .origin_money{margin-right:8px}:host(.w-full) .addCartPanel{width:100%;text-align:center;margin-top:8px;margin-left:0}@media (max-width:960px){:host(.sutra) .addCartPanel{width:100%;text-align:center;margin-top:8px;margin-left:0}}`,
                  l`:host(.fashionHorizontal){width:100%}.fashionHorizontal .discountAmount{margin-bottom:20px}.fashionHorizontal .price{margin-bottom:40px;display:flex;flex-wrap:wrap;align-items:baseline}.fashionHorizontal .price-title{width:100%;margin-bottom:8px;color:val(--color-body-text,#292929);font-family:Jost;font-size:18px;font-style:normal;font-weight:500;line-height:20px;text-transform:capitalize}.fashionHorizontal .bundle_money{margin-right:10px;font-size:24px}.fashionHorizontal .origin_money{font-weight:400}.addCartPanel--in.fashionHorizontal .price-title{width:auto}.addCartPanel--in.fashionHorizontal.addCartPanel{display:flex;flex-direction:column;align-items:flex-end}.addCartPanel--in.fashionHorizontal .price{text-align:right;margin-bottom:30px;justify-content:flex-end}.addCartPanel--in.fashionHorizontal .bundle_money{margin:0 10px}.addCartPanel--in.fashionHorizontal .add-cart-btn{width:auto}@media (max-width:960px){.addCartPanel--in.fashionHorizontal.addCartPanel,.fashionHorizontal.addCartPanel{display:flex;flex-direction:column;align-items:center}.fashionHorizontal .price-title{width:auto}.fashionHorizontal .price{margin-bottom:30px}.fashionHorizontal .bundle_money{margin:0 10px}.addCartPanel--in.fashionHorizontal .add-cart-btn,.fashionHorizontal .add-cart-btn{width:100%}}`,
                  l`.fashionVertical{text-align:right;white-space:nowrap}.fashionVertical .discountAmount{margin-bottom:10px}.fashionVertical .price{margin-bottom:30px;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:baseline}.fashionVertical .price-title{margin-bottom:8px;color:val(--color-body-text,#292929);font-family:Jost;font-size:18px;font-style:normal;font-weight:500;line-height:20px;text-transform:capitalize}.fashionVertical .bundle_money{margin:0 10px;font-size:22px}.fashionVertical .origin_money{font-weight:400}.fashionVertical .add-cart-btn{width:auto;display:inline-block;margin-left:auto}:host(.fashion-full) .fashionVertical .add-cart-btn{width:auto}@media (max-width:960px){.fashionVertical .add-cart-btn,:host(.fashion-full) .fashionVertical .add-cart-btn{width:100%}}`
                ], t([dt()], Te.prototype, "layer_type", void 0), t([dt()], Te.prototype, "value", void 0), t([dt()], Te.prototype, "value_type", void 0), t([dt()], Te.prototype, "total_price", void 0), t([dt({
                  attribute: "atcBtnStyle"
                })], Te.prototype, "atcBtnStyle", void 0), t([dt({
                  type: Object,
                  attribute: "selectedInfo",
                  reflect: !0
                })], Te.prototype, "selectedInfo", void 0), t([dt({
                  type: Boolean,
                  attribute: "selected_all"
                })], Te.prototype, "selected_all", void 0), t([dt({
                  attribute: "salePrice"
                })], Te.prototype, "salePrice", void 0), t([dt({
                  attribute: "savePrice"
                })], Te.prototype, "savePrice", void 0), t([dt({
                  type: Boolean,
                  attribute: "loading"
                })], Te.prototype, "loading", void 0), t([dt({
                  type: Boolean,
                  attribute: "success"
                })], Te.prototype, "success", void 0), t([dt({
                  type: Boolean,
                  attribute: "select_one"
                })], Te.prototype, "select_one", void 0), t([dt({
                  attribute: "btnTextColor"
                })], Te.prototype, "btnTextColor", void 0), t([dt({
                  attribute: "btnBgColor"
                })], Te.prototype, "btnBgColor", void 0), t([dt()], Te.prototype, "styleTypeClass", void 0), t([ht(".addCartPanel")], Te.prototype, "addCartPanel", void 0), window.customElements.get("bundle-add-cart") || window.customElements
                .define("bundle-add-cart", Te);
              class Pe extends st {
                constructor() {
                  super(...arguments), this.data = {}, this.styleTypeClass = "", this.thisOne = !1, this.index = 0
                }
                onChange() {
                  this.dispatchEvent(new CustomEvent("changeCheckBox", {
                    detail: {
                      index: this.index
                    },
                    bubbles: !0,
                    composed: !0
                  }))
                }
                requestUpdate() {
                  super.requestUpdate()
                }
                render() {
                  return R`<div class="content_flex"><input style="display:none" type="checkbox" class="bundle-checked" id="bundle-checked" .checked="${this.data.is_selected}" @click="${this.onChange}"> <label for="bundle-checked" class="check-label"><div class="close-icon">${this.data.is_selected?this.styleTypeClass?Zt:Kt:Xt}</div></label></div>`
                }
              }
              Pe.styles =
                l`.content_flex{display:flex;align-items:center;position:relative}.check-label{display:flex;align-items:center}.close-icon{display:flex;cursor:pointer}:host(.fashionHorizontal) .close-icon svg,:host(.fashionVertical) .close-icon svg{width:24px;height:24px}:host(.fashion-full.fashionHorizontal) .close-icon svg,:host(.fashion-full.fashionVertical) .close-icon svg{width:16px;height:16px}@media (max-width:960px){:host(.fashionHorizontal) .close-icon svg,:host(.fashionVertical) .close-icon svg{width:16px;height:16px}}`,
                t([dt()], Pe.prototype, "data", void 0), t([dt()], Pe.prototype, "styleTypeClass", void 0), t([dt({
                  type: Boolean,
                  attribute: "thisOne"
                })], Pe.prototype, "thisOne", void 0), t([dt({
                  type: Number,
                  attribute: "index"
                })], Pe.prototype, "index", void 0), window.customElements.get("bundle-check-box") || window.customElements.define("bundle-check-box", Pe), e(void 0, void 0, void 0, (function*() {
                  var t, i;
                  let o = [];
                  const n = t => e(void 0, void 0, void 0, (function*() {
                      if (!t) return [];
                      const {
                        data: e
                      } = yield Bt.get(
                        `/api/product/list?${function(t){var e=[],i=function(t,i){i=null==(i="function"==typeof i?i():i)?"":i,e[e.length]=encodeURIComponent(t)+"="+encodeURIComponent(i)};return function t(o,n){var s,r,l;if(o)if(Array.isArray(n))for(s=0,r=n.length;s<r;s++)t(o+"["+("object"==yt(n[s])&&n[s]?s:"")+"]",n[s]);else if("[object Object]"===Object.prototype.toString.call(n))for(l in n)t(o+"["+l+"]",n[l]);else i(o,n);else if(Array.isArray(n))for(s=0,r=n.length;s<r;s++)i(n[s].name,n[s].value);else for(l in n)t(l,n[l]);return e}("",t).join("&")}({ids:t,limit:t.length,page:1})}`
                        ), i = e.list;
                      return i.forEach((t => {
                        window.C_SETTINGS.store_trial && (t.variant || []).forEach((t => {
                          (t.wholesale_price || []).forEach(((e, i) => {
                            const o = t.wholesale_price[i + 1];
                            o && (e.max_quantity = o.min_quantity - 1)
                          }))
                        }))
                      })), i
                    })),
                    s = t => e(void 0, void 0, void 0, (function*() {
                      if (d && (d.style.cursor = "wait", d.pid = t, d.style.pointerEvents = "none", d.switchable = p.bundle_sales.length > 1), 0 === p.bundle_sales.length) return void r(d);
                      const e = p.bundle_sales[a];
                      e.entitled_products.forEach((t => Object.assign(t, o.find((e => e.id === t.id)))));
                      const i = e.entitled_products.find((e => e.id === t)),
                        n = e.entitled_products.findIndex((e => e.id === t));
                      e.entitled_products.splice(n, 1), e.entitled_products.unshift(i), e.isRequested = !0, d && (d.bundleInfo = e, d.discount_ids = p.bundle_sales.map((t => t.id)).join(","), d.bundleInfo.entitled_products.filter((t =>
                          t.price)).forEach((e => {
                          e.is_selected = !0, e.selected_id = e.variants.filter((t => t.available))[0].id, e.id === t && (e.thisOne = !0)
                        })), d.style.cursor = "", d.style.pointerEvents = ""),
                        function(t, e) {
                          var i = document.querySelector(t),
                            o = function() {
                              e()
                            };
                          i && !i.getAttribute("imprsd") ? i.addEventListener("impress", o) : o()
                        }("bundle-product-list", (() => {
                          var e, i;
                          const o = p.bundle_sales[a],
                            n = {
                              discount_id: o.id,
                              value_type: o.value_type,
                              popups_setting: o.popups_setting,
                              global_show_text: o.global_show_text,
                              target_selection: o.target_selection,
                              page: null === (e = window.SHOP_PARAMS) || void 0 === e ? void 0 : e.template_type,
                              product_id: t,
                              plugin_timestamp: Date.now(),
                              show_related_items: p.bundle_sales.length > 1,
                              block: !0,
                              discount_ids: p.bundle_sales.map((t => t.id)).join(","),
                              operation_type: o.operation_type,
                              entitled_product_ids: o.entitled_product_ids
                            };
                          window.sa && (null === (i = window.sa) || void 0 === i || i.track("plugin_bundle_combination_pv", n))
                        }))
                    })),
                    r = t => {
                      var e;
                      if (!document.querySelector("bundle-skeleton") && window.self !== window.top) {
                        const i = document.createElement("bundle-skeleton");
                        null === (e = null == t ? void 0 : t.parentElement) || void 0 === e || e.insertBefore(i, t)
                      }
                    };
                  let l = window.innerWidth;
                  window.addEventListener("resize", Ht((() => {
                    window.innerWidth !== l && window.top !== window.self && window.location.reload()
                  }), 500));
                  let a = 0;
                  const d = document.querySelector('[data-section-id="1539149753700"] .bundle-main'),
                    c = d.getAttribute("pid") || "",
                    p = yield Bt.get(`/api/bundle-sales?product_id=${c}`);
                  yield e(void 0, void 0, void 0, (function*() {
                    const t = yield Bt.get("/api/bundle-sales/setting?type=discount_code");
                    d && (d.atcBtnStyle = t.style || 1)
                  })), yield e(void 0, void 0, void 0, (function*() {
                    const t = p.bundle_sales.map((t => t.entitled_product_ids)).flat();
                    o = yield n(t);
                    const e = [];
                    p.bundle_sales.forEach((t => {
                      t.entitled_product_ids.every((t => null == o ? void 0 : o.find((e => e.id === t && e.available)))) && e.push(t)
                    })), p.bundle_sales = e
                  })), yield s(c);
                  const {
                    isInProductInfo: h
                  } = qt();
                  h || null === (i = null === (t = document.querySelector(".bundle-combination-container")) || void 0 === t ? void 0 : t.classList) || void 0 === i || i.add("tw-container", "container", "container-gap", "page-width"),
                    null == d || d.addEventListener("bundle-combination-switch", Ht((() => e(void 0, void 0, void 0, (function*() {
                      var t;
                      if (a = a === p.bundle_sales.length - 1 ? 0 : a + 1, p.bundle_sales[a].isRequested) return void(d.bundleInfo = p.bundle_sales[a]);
                      yield s(c);
                      const e = p.bundle_sales[a];
                      window.sa && (null === (t = window.sa) || void 0 === t || t.track("plugin_bundle_combination_related_item_click", {
                        discount_ids: p.bundle_sales.map((t => t.id)),
                        product_id: c,
                        block: !0,
                        discount_id: e.id,
                        operation_type: e.operation_type,
                        entitled_product_ids: e.entitled_product_ids.join(",")
                      }))
                    }))), 300))
                }))
            }));
          } catch (err) {
            console.log('bundle sales error' + err)
          }
        })()
      } catch (e) {
        console.error(e)
      }
    </script>
  </div>
  <div class="plugin__buy_on_others empty:tw-hidden"></div>
</form>

POST //translate.googleapis.com/translate_voting?client=te

<form id="goog-gt-votingForm" action="//translate.googleapis.com/translate_voting?client=te" method="post" target="votingFrame" class="VIpgJd-yAWNEb-hvhgNd-aXYTce"><input type="text" name="sl" id="goog-gt-votingInputSrcLang"><input type="text"
    name="tl" id="goog-gt-votingInputTrgLang"><input type="text" name="query" id="goog-gt-votingInputSrcText"><input type="text" name="gtrans" id="goog-gt-votingInputTrgText"><input type="text" name="vote" id="goog-gt-votingInputVote"></form>

Text Content

FREE SHIPPING OVER $59


Powered by Google Übersetzer
English,简体中文,Português,español,français,Italiano,Deutsch,Nederlands,svenska,Norsk,suomi,dansk,עברית
EUR
 * United States Dollars (USD)
 * Euro (EUR)
 * United Kingdom Pounds (GBP)
 * Canadian Dollars (CAD)
 * Australian Dollars (AUD)
 * Brazilian Real (BRL)
 * Danish Kroner (DKK)
 * Israeli New Shekel (NIS)
 * Mexican Pesos (MXN)
 * Norwegian Kroner (NOK)
 * New Zealand Dollars (NZD)
 * Swedish Kronor (SEK)
 * Swiss Francs (CHF)


Search

LUCKYEO


English,简体中文,Português,español,français,Italiano,Deutsch,Nederlands,svenska,Norsk,suomi,dansk,עברית
EUR
 * United States Dollars (USD)
 * Euro (EUR)
 * United Kingdom Pounds (GBP)
 * Canadian Dollars (CAD)
 * Australian Dollars (AUD)
 * Brazilian Real (BRL)
 * Danish Kroner (DKK)
 * Israeli New Shekel (NIS)
 * Mexican Pesos (MXN)
 * Norwegian Kroner (NOK)
 * New Zealand Dollars (NZD)
 * Swedish Kronor (SEK)
 * Swiss Francs (CHF)

Search Search
Account
 * Log in
 * Create an account

0 Cart
Close

 * 🏠 Home
 * Hot🔥
 * New
 * Clothing
    * Clothing
    * Women
      * Women
      * Dresses
      * Women Tops
      * Women Pants
      * Bras & Underpants
      * Two-piece Suit
      * Jumpsuits
      * Coats
    * Men
      * Men
      * Men Tops
      * Men Pants
      * Men Underpants
      * Men Shirt Suits
      * Men Coat
    * Shoes & Socks
      * Shoes & Socks
      * Women Shoes
      * Men Shoes
      * Socks
    * Accessories
      * Accessories
      * Jewelry
      * Bags
      * Hats

 * Houseware
 * Electronics
 * Tools
 * Beauty
 * Car
 * Toys & Kids
 * Pets
 * Outdoors
 * GIFTS
    * GIFTS
    * GIFTS BY RECIPIENT
      * GIFTS BY RECIPIENT
      * For Lovers
      * For Students
      * For Kids
      * For Parents
      * For Dad
      * For Mom
      * For Pets
      * For Friends
    * SHOP BY OCCASION
      * SHOP BY OCCASION
      * Anniversary
      * Birthday
      * Graduation Gifts
      * Back to School
      * Housewarming Gifts
      * Wedding Gifts
    * SHOP BY BUDGET
      * SHOP BY BUDGET
      * Under $29.9
      * Under $19.9
      * Under $9.9

   Log in
   
   English,简体中文,Português,español,français,Italiano,Deutsch,Nederlands,svenska,Norsk,suomi,dansk,עברית
   EUR
    * United States Dollars (USD)
    * Euro (EUR)
    * United Kingdom Pounds (GBP)
    * Canadian Dollars (CAD)
    * Australian Dollars (AUD)
    * Brazilian Real (BRL)
    * Danish Kroner (DKK)
    * Israeli New Shekel (NIS)
    * Mexican Pesos (MXN)
    * Norwegian Kroner (NOK)
    * New Zealand Dollars (NZD)
    * Swedish Kronor (SEK)
    * Swiss Francs (CHF)

 * 🏠 Home
 * Hot🔥
 * New
 * Clothing
    * Women Dresses Women Tops Women Pants Bras & Underpants Two-piece Suit
      Jumpsuits Coats
    * Men Men Tops Men Pants Men Underpants Men Shirt Suits Men Coat
    * Shoes & Socks Women Shoes Men Shoes Socks
    * Accessories Jewelry Bags Hats

 * Houseware
 * Electronics
 * Tools
 * Beauty
 * Car
 * Toys & Kids
 * Pets
 * Outdoors
 * GIFTS
    * GIFTS BY RECIPIENT For Lovers For Students For Kids For Parents For Dad
      For Mom For Pets For Friends
    * SHOP BY OCCASION Anniversary Birthday Graduation Gifts Back to School
      Housewarming Gifts Wedding Gifts
    * SHOP BY BUDGET Under $29.9 Under $19.9 Under $9.9

 * More links







POWERFUL PROTECTION FOR YOUR NEW PHONE SCREEN - DUST-PROOF SCREEN PROTECTOR

Price
€36.79
€18.39
Save  €18.39
Buy €92.04 more and save 10% off Buy €138.06 more and save 15% off

Style
High-definition
Anti-peep
Please select a style
Models
For iPhone 16 Pro Max
For iPhone 16 Pro
For iPhone 15 Pro Max
For iPhone 15 Pro
For iPhone 15 Plus
For iPhone 15
For iPhone 14 Pro Max
For iPhone 14 Pro
For iPhone 14 Plus
For iPhone 14
For iPhone 13 Pro Max
For iPhone 13 Pro
For iPhone 13
For iPhone 12 Pro Max
For iPhone 12 Pro
For iPhone 12
For iPhone 11/XR
For iPhone 11 Pro/XS/X
For iPhone 11 Pro Max/XS Max
Please select a models
BUY MORE GET MORE
Buy 2 Get 1 Free (Each Only $6.66)
Please select a buy more get more
Quantity
1 2 3 4 5 6 7 8 9 10+

Buy €54.30 more to enjoy FREE Shipping
Worldwide shipping
Free returns
24/7 customer support
Secure payments
Add to Cart Buy Now


Share Tweet Pin it





Description


SILK SCREEN DUST-FREE ROOM TEMPERED FILM

Experience Ultimate Protection and Clarity!
Transform your device with our Silk Screen Dust-Free Room Tempered Film. Say
goodbye to dust and bubbles while ensuring your screen stays pristine! 




KEY FEATURES:

Automatic Dust Removal:??This innovative film applies seamlessly in seconds with
zero bubbles, making installation a breeze! 

Perfect Fit: Designed for an extreme, all-encompassing fit, it offers excellent
dust protection. Enjoy a clean screen without compromising style!

3D Curved Edge Coverage:Our new large arc design ensures full coverage without
unsightly white edges or lift-off. Your device will look sleek and polished! 

Integrated Dust Protection:The built-in dust mesh keeps your earpiece clear of
dust while ensuring optimal sound quality no more worrying about blockages! 




LONG-LASTING PROTECTION:

Scratch-Resistant:This ultra-thin film provides a seamless layer of protection
against scratches and everyday wear and tear. 

Invisible Shield:Maintain the beauty of your device while ensuring it remains
safe from harm.

Upgrade your device with our Silk Screen Dust-Free Room Tempered Film today and
enjoy the ultimate protection and clarity! 


NOTES

 * Due to manual measurements, please allow slight measurement deviations.
 * Due to the different display and lighting effects, the actual color of the
   item may be slightly different from the color displayed on the picture.




Service
 * FAQ
 * About Us
 * Contact Us
 * Why Choose Us?
 * Intellectual Property Rights

Policy
 * Privacy Policy
 * Payment Policy
 * Shipping Policy
 * Return & Refund Policy
 * Terms & Conditions

Get in touch
Thank you for visiting us! If you have any questions about our products, please
contact us online or mail to: service@luckyeo.com



We accept
Visa Mastercard JCB Diners Club American Express Discover PayPal Klarna

DMCA report ©  2024 luckyeo



SIGN UP AND SAVE

Entice customers to sign up for your mailing list with discounts or exclusive
offers. Include an image for extra impact.
Subscribe
Thanks for subscribing
Optional button





111
GIFTS

POINTS



word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
Originaltext

Diese Übersetzung bewerten
Mit deinem Feedback können wir Google Übersetzer weiter verbessern