{
  "version": 3,
  "sources": ["/cdn/shop/t/111/assets/skio-plan-picker-component.js?cb=%22+defer"],
  "sourcesContent": ["import { LitElement, html, css, unsafeHTML } from 'https://cdn.jsdelivr.net/gh/lit/dist@3/all/lit-all.min.js'\r\n\r\n/**\r\n * Skio Universal Plan Picker\r\n * @docs https://integrate.skio.com/\r\n *\r\n * Uses LitJS (<5kb) https://lit.dev/ for reactive web components\r\n */\r\n\r\nexport class SkioPlanPicker extends LitElement {\r\n  static properties = {\r\n    isAdding: { state: true },\r\n    key: { type: String },\r\n\r\n    product: { type: Object },\r\n    productHandle: { type: String },\r\n    selectedVariant: { type: Object },\r\n\r\n    options: { type: Object },\r\n\r\n    quantity: { type: Number },\r\n    rules: { type: Array },\r\n    rule: { type: Object },\r\n    cart: { type: Object },\r\n    additionalDiscount: {type: Number},\r\n\r\n    availableSellingPlanGroups: { state: true },\r\n    selectedSellingPlanGroup: { type: Object },\r\n    selectedSellingPlan: { type: Object },\r\n\r\n    disableUrl: { type: Boolean },\r\n\r\n    debug: { type: Boolean },\r\n productHandle: { type: String, attribute: 'product-handle' },\r\n    selectedBlockSwatch: {type: Number}\r\n\r\n\r\n  }\r\n\r\n  static styles = [\r\n    css`\r\n      :host {\r\n        width: 100%;\r\n        max-width: 440px;\r\n      }\r\n\r\n      .d-none{\r\n        display:none !important;\r\n      }\r\n\r\n      .skio-plan-picker {\r\n        display: flex;\r\n        gap: 1rem;\r\n        padding: 0;\r\n        border: 0;\r\n        font-size: 15px;\r\n        color: black;\r\n        width: 100%;\r\n        margin-bottom: 1rem;\r\n        font-family: inherit;\r\n      }\r\n\r\n      :host([layout='hidden']) .skio-plan-picker {\r\n        display: none;\r\n      }\r\n\r\n      :host([layout='vertical']) .skio-plan-picker {\r\n        flex-direction: column;\r\n      }\r\n\r\n      :host([layout='horizontal']) .skio-plan-picker {\r\n        flex-direction: row;\r\n        flex-wrap: wrap;\r\n      }\r\n\r\n      .sr-only {\r\n        position: absolute;\r\n        overflow: hidden;\r\n        clip: rect(0, 0, 0, 0);\r\n        width: 1px;\r\n        height: 1px;\r\n        margin: -1px;\r\n        padding: 0;\r\n        border: 0;\r\n      }\r\n\r\n      .group-container {\r\n        display: block;\r\n        position: relative;\r\n        transition: border-color 0.2s ease;\r\n        border: 1px solid #cdd1d2;\r\n        border-radius: 30px;\r\n        background-color: #f9f9f9;\r\n        color: var(--skio-group-text-color, #000);\r\n        box-shadow: 0 0 5px rgba(23, 24, 24, 0.05), 0 1px 2px rgba(0, 0, 0, 0.07);\r\n      }\r\n\r\n      @media screen and (max-width: 999px) {\r\n        .group-container:has(.skio-savings.hidden) {\r\n          border-top-left-radius: 30px;\r\n          border-top-right-radius: 30px;\r\n          /* border-top: 0px; */\r\n        }\r\n      }\r\n\r\n      .group-container--selected {\r\n        border-color: #3e89a0 !important;\r\n        background-color: #3E89A014;\r\n        border-width: 2px;\r\n        color: var(--skio-group-text-selected-color, #000);\r\n      }\r\n\r\n      .group-container--last {\r\n        order: 1;\r\n      }\r\n\r\n      :host([layout='horizontal']) .group-container {\r\n        width: calc(50% - 0.5rem - calc(2 * var(--skio-group-border-width, 1px)));\r\n      }\r\n\r\n      .group-input {\r\n        position: absolute;\r\n        opacity: 0;\r\n        width: 0px;\r\n        height: 0px;\r\n      }\r\n\r\n      .group-input:focus-visible ~ .group-label {\r\n        outline: 2px #ccc solid;\r\n        outline-offset: 4px;\r\n      }\r\n\r\n      .group-label {\r\n        display: flex;\r\n        flex-direction: column;\r\n        padding: 20px 30px;\r\n        cursor: pointer;\r\n      }\r\n\r\n      .group-topline {\r\n        display: flex;\r\n        align-items: center;\r\n        width: 100%;\r\n        white-space: nowrap;\r\n        gap: 8px;\r\n      }\r\n\r\n      .group-container--selected .group-topline {\r\n        font-weight: 500;\r\n        color: #1a1a1a;\r\n        padding: 0 0 4px 0;\r\n      }\r\n\r\n      :host([layout='horizontal']) .group-topline {\r\n        flex-direction: column;\r\n        text-align: center;\r\n      }\r\n\r\n      .skio-radio__container {\r\n        display: flex;\r\n        color: var(--skio-group-border-color, #333);\r\n      }\r\n\r\n      .group-container--selected .skio-radio__container {\r\n        color: #3e89a0;\r\n      }\r\n\r\n      .skio-radio {\r\n        transform-origin: center;\r\n        opacity: 0;\r\n        transform: scale(0);\r\n        transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\r\n      }\r\n\r\n      .group-label:hover .skio-radio {\r\n        opacity: 0.75;\r\n        transform: scale(1);\r\n      }\r\n\r\n      .group-container--selected .group-label .skio-radio {\r\n        opacity: 1;\r\n        transform: scale(1);\r\n      }\r\n\r\n      .skio-price {\r\n        display: flex;\r\n        justify-content: flex-start;\r\n        flex-wrap: wrap;\r\n        align-items: center;\r\n        text-align: right;\r\n        line-height: 1;\r\n        vertical-align: middle;\r\n        font-weight: 600;\r\n        margin-left: -8px;\r\n      }\r\n\r\n      .skio-price {\r\n      /* Default styles */\r\n      }\r\n\r\n      /* Mobile styles */\r\n      @media only screen and (max-width: 767px) {\r\n          .skio-price {\r\n              margin-left: -8px;\r\n          }\r\n      }\r\n\r\n      .skio-price s {\r\n        font-size: 13px;\r\n        font-weight: 600;\r\n        opacity: 0.75;\r\n      }\r\n\r\n      :host([layout='horizontal']) .skio-price {\r\n        text-align: center;\r\n        margin-right: auto;\r\n      }\r\n\r\n      .group-content {\r\n        display: flex;\r\n        flex-direction: column;\r\n        opacity: 1;\r\n        width: auto;\r\n        max-height: 1000px;\r\n        transition: max-height 0.15s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1);\r\n      }\r\n\r\n      .group-content.margin-left {\r\n        /* margin-left: 25px; */\r\n      }\r\n\r\n      .group-content p {\r\n        margin: 0.5rem 0 0 0;\r\n        font-size: 13px;\r\n        color: #000;\r\n      }\r\n\r\n      :host([layout='horizontal']) .group-content {\r\n        width: 100%;\r\n      }\r\n\r\n      /* Hide frequency if not selected */\r\n      .group-container:not(.group-container--selected) .group-content {\r\n        pointer-events: none;\r\n        opacity: 0;\r\n        max-height: 0;\r\n        visibility: hidden;\r\n      }\r\n\r\n      :host([layout='horizontal']) .group-container:not(.group-container--selected) + .group-content {\r\n        pointer-events: none;\r\n        opacity: 0;\r\n        max-height: 0;\r\n        visibility: hidden;\r\n      }\r\n\r\n      .group-title {\r\n        max-width: 80%;\r\n        font-size: 22px;\r\n        font-weight: 700;\r\n        line-height: 1.5;\r\n        color: #1A1A1A;\r\n      }\r\n\r\n      :host([layout='horizontal']) .group-title {\r\n        max-width: 100%;\r\n      }\r\n\r\n      .savings {\r\n        color: var(--skio-discount-text-color, #fff);\r\n        font-weight: 600;\r\n      }\r\n\r\n      .savings.bubble {\r\n        padding: 3px 13px;\r\n        background-color: #C7F1C5;\r\n        border: 2px solid #3e899f;\r\n        border-radius: 20px;\r\n        font-size: 16px;\r\n        font-weight: 700;\r\n        color: #000000;\r\n        white-space: nowrap;\r\n        font-family: Assistant;\r\n        margin-left: 8px;\r\n      }\r\n\r\n      .selling-plan-dropdown {\r\n        appearance: none;\r\n        color: #1A1A1A;\r\n        font-family: 'Assistant';\r\n        font-weight: 500;\r\n        -webkit-appearance: none;\r\n        -moz-appearance: none;\r\n        display: flex;\r\n        align-items: center;\r\n        gap: 5px;\r\n        width: 100%;\r\n        margin-top: 5px;\r\n        padding: 11px 20px;\r\n        background-color: #e7eff1;\r\n        background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-6 w-6' fill='none' viewBox='0 0 24 24' stroke='currentColor' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19 9l-7 7-7-7' /%3E%3C/svg%3E\");\r\n        background-repeat: no-repeat;\r\n        background-position: right 10px top 50%;\r\n        background-size: 16px;\r\n        border: 2px solid #3e899f;\r\n        border-radius: 37px;\r\n        font-size: 18px;\r\n        text-overflow: ellipsis;\r\n        white-space: nowrap;\r\n        margin-bottom: 20px;\r\n      }\r\n\r\n      .selling-plan-dropdown:focus-visible {\r\n        outline: 0px !important;\r\n      }\r\n\r\n      .selling-plan-dropdown-label {\r\n        color: #666666;\r\n        font-weight: 500;\r\n      }\r\n\r\n      .selling-plan-dropdown--one {\r\n        background-image: none;\r\n        pointer-events: none;\r\n        background: transparent;\r\n      }\r\n\r\n      .selling-plan-buttons {\r\n        display: grid;\r\n        grid-template-columns: repeat(auto-fill, minmax(var(--skio-button-plan-selector-width, 20px), 1fr));\r\n        gap: 10px;\r\n        padding: 0.75rem 0;\r\n        border: 0;\r\n        font-size: 13px;\r\n      }\r\n\r\n      .selling-plan-buttons input[type='radio'] {\r\n        position: absolute;\r\n        opacity: 0;\r\n        width: 0;\r\n        height: 0;\r\n      }\r\n\r\n      .selling-plan-buttons label {\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        cursor: pointer;\r\n        border: 1px solid #ccc;\r\n        text-align: center;\r\n        padding: 1rem 0.5rem;\r\n      }\r\n\r\n      .selling-plan-buttons input[type='radio']:checked + label {\r\n        border-color: #000;\r\n      }\r\n\r\n      .selling-plan-buttons input:focus-visible + label {\r\n        outline: 2px #ccc solid;\r\n        outline-offset: 4px;\r\n      }\r\n\r\n      .skio-details {\r\n        --text-color: #333;\r\n        --text-color-secondary: #888;\r\n\r\n        user-select: none;\r\n        -webkit-user-select: none;\r\n        margin-bottom: 20px;\r\n        order: 3;\r\n        max-width: max-content;\r\n      }\r\n\r\n      .skio-details summary::-webkit-details-marker,\r\n      .skio-details summary::marker,\r\n      .skio-details slot {\r\n        color: rgba(0, 0, 0, 0) !important;\r\n      }\r\n\r\n      .skio-details summary {\r\n        margin-top: 15px;\r\n      }\r\n\r\n      .skio-details summary span {\r\n        font-size: 0.9em;\r\n        display: flex;\r\n        padding: 0.5em 0;\r\n        cursor: pointer;\r\n        align-items: center;\r\n        gap: 10px;\r\n        text-decoration: underline;\r\n\r\n        margin-top: -40px;\r\n        color: #000;\r\n      }\r\n\r\n      @keyframes fadeInDown {\r\n        0% {\r\n          opacity: 0;\r\n          transform: translateY(-15px);\r\n        }\r\n        100% {\r\n          opacity: 1;\r\n          transform: translateY(0px);\r\n        }\r\n      }\r\n      .skio-details[open] > .skio-details--content {\r\n        animation-name: fadeInDown;\r\n        animation-duration: 0.3s;\r\n      }\r\n\r\n      .skio-details--content {\r\n        position: absolute;\r\n        z-index: 1020;\r\n        padding: 1em;\r\n        width: fit-content;\r\n        border-radius: 5px;\r\n        background: white;\r\n        box-shadow: 0 0 5px rgb(23 24 24 / 5%), 0 1px 2px rgb(0 0 0 / 7%);\r\n      }\r\n\r\n      .skio-details ul {\r\n        margin: 0;\r\n        padding: 0;\r\n      }\r\n\r\n      .skio-details ul li {\r\n        display: flex;\r\n        align-items: flex-start;\r\n        gap: 0.75em;\r\n\r\n        margin-bottom: 1em;\r\n      }\r\n\r\n      .skio-details .skio-content {\r\n        display: flex;\r\n        flex-direction: column;\r\n      }\r\n\r\n      .skio-details .skio-content p {\r\n        font-size: 0.9em;\r\n\r\n        margin-top: 0;\r\n        margin-bottom: 0;\r\n\r\n        letter-spacing: 0;\r\n        line-height: 1.5;\r\n\r\n        color: var(--text-color);\r\n      }\r\n\r\n      .skio-details ul li small {\r\n        font-size: 0.7em;\r\n        color: var(--text-color-secondary);\r\n      }\r\n\r\n      .skio-details .skio-icon {\r\n        display: flex;\r\n\r\n        width: 2.25em;\r\n        height: 2.25em;\r\n\r\n        color: var(--text-color);\r\n        background: #f8f8f8;\r\n        border-radius: 100%;\r\n\r\n        flex-shrink: 0;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n\r\n      .skio-details .skio-icon svg {\r\n        width: 1.25em;\r\n        height: 1.25em;\r\n\r\n        color: inherit;\r\n      }\r\n\r\n      .skio-details--footer {\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: space-between;\r\n        font-size: 0.9em;\r\n      }\r\n\r\n      .skio-details--footer a {\r\n        color: var(--text-color);\r\n      }\r\n\r\n      .skio-manage-link {\r\n        text-decoration: underline;\r\n      }\r\n\r\n      .powered-by-skio {\r\n        font-size: 0.8em;\r\n\r\n        display: flex;\r\n        text-decoration: none;\r\n\r\n        align-items: center;\r\n        gap: 3px;\r\n      }\r\n\r\n      .setupMode {\r\n        position: relative;\r\n        color: black;\r\n        padding: 1rem;\r\n        display: flex;\r\n        flex-direction: column;\r\n        gap: 10px;\r\n        margin-bottom: 1rem;\r\n        font-size: 14px;\r\n        border-style: solid;\r\n        border-width: 4px;\r\n        border-image: repeating-linear-gradient(-55deg, #000, #000 20px, #ffb101 20px, #ffb101 40px) 10;\r\n      }\r\n\r\n      .setupMode:after {\r\n        content: 'Setup Mode';\r\n        position: absolute;\r\n        top: 0;\r\n        right: 0;\r\n        background-color: black;\r\n        color: white;\r\n        padding: 0.25rem 1rem;\r\n        font-size: 13px;\r\n      }\r\n\r\n      .setupMode .detection {\r\n        display: grid;\r\n        grid-template-columns: auto 1fr;\r\n        gap: 10px;\r\n      }\r\n\r\n      .setupMode .detection small {\r\n        grid-column: 1/-1;\r\n      }\r\n\r\n      .skio-subscription__top-header {\r\n        display: flex;\r\n        flex-direction: row;\r\n        justify-content: space-between;\r\n        align-items: center;\r\n      }\r\n\r\n      .select_frequency {\r\n        font-size: 1.8rem;\r\n        font-weight: 600;\r\n        margin: 0;\r\n      }\r\n\r\n      .learn_more__button {\r\n        margin:0;\r\n        color: var(--skio-group-border-selected-color, #333);\r\n        text-decoration: underline;\r\n        cursor: pointer;\r\n      }\r\n\r\n      .learn_more__button:hover {\r\n        color: #00f;\r\n      }\r\n\r\n      .subscription-group {\r\n        display: flex;\r\n        gap: 0.7rem;\r\n      }\r\n\r\n      .subscription_savings {\r\n        display: flex;\r\n        width: 100%;\r\n        justify-content: space-around;\r\n        align-items: center;\r\n      }\r\n\r\n      .full-widths {\r\n        width: 100%;\r\n      }\r\n\r\n      .selected_plan__price {\r\n        color: #1a1a1a;\r\n        font-weight: 700;\r\n        font-size: 24px;\r\n        right: 1rem;\r\n      }\r\n\r\n      .selected_plan__price_normal {\r\n        font-size: 20px !important;\r\n      }\r\n\r\n      @media (max-width: 767px) {\r\n       /* .subscription_savings {\r\n          flex-direction: column;\r\n          align-items: flex-end;\r\n        }\r\n      */\r\n        .selected_plan__price {\r\n          position: relative;\r\n          margin-right: -16px;\r\n        }\r\n      }\r\n\r\n      .one-time__price_text {\r\n        position: absolute;\r\n        color: #1a1a1a;\r\n        font-weight: 700;\r\n        right: 1rem;\r\n        font-size: 1.5rem;\r\n        line-height: 100%;\r\n        letter-spacing: 0%;\r\n        text-align: right;\r\n       /*  display: none; */\r\n        gap: 8px !important;\r\n        align-items: flex-end;\r\n      }\r\n\r\n      .one-time__price_text_normal {\r\n        font-size: 20px !important;\r\n      }\r\n\r\n      /* Gum Skio Widget Style */\r\n\r\n      .group-container--selected .gum_skio_widget {\r\n      }\r\n\r\n      /* End Gum Skio Widget Style */\r\n\r\n      .one-time__price_prefix {\r\n        display: none;\r\n        font-size: 20px;\r\n        line-height: 110%;\r\n      }\r\n\r\n      .product-price {\r\n        font-family: Assistant;\r\n        font-weight: 400;\r\n        font-size: 17px;\r\n        line-height: 100%;\r\n        letter-spacing: 0%;\r\n        text-decoration: line-through;\r\n      }\r\n\r\n      .skio-savings {\r\n        margin-left: 4px;\r\n      }\r\n\r\n      .top-skio-savings {\r\n        display: none;\r\n      }\r\n\r\n\r\n      @media screen and (min-width:1000px){\r\n      .subscription_savings {\r\n        justify-content: space-between;\r\n      }\r\n      }\r\n\r\n    @media screen and (max-width:1200px){\r\n      .skio-savings.hidden {\r\n          display: none;\r\n        }\r\n\r\n      .per-piece-text {\r\n        font-size: 17px;\r\n      }\r\n\r\n      .subscription_savings {\r\n       justify-content: end;\r\n      }\r\n\r\n        .top-skio-savings {\r\n          background-color: #C7F1C5;\r\n          width: 100%;\r\n          height: 35px;\r\n          margin-bottom: -10px;\r\n          border-top-left-radius: 30px;\r\n          border-top-right-radius: 30px;\r\n          font-size: 16px;\r\n          font-weight: 700;\r\n          color: #000000;\r\n          align-items: center;\r\n          justify-content: center;\r\n        }\r\n\r\n /*       .top-skio-savings.show {\r\n          display: flex;\r\n        border-top: 2px solid rgb(62, 137, 159);\r\n        border-left: 2px solid rgb(62, 137, 159);\r\n        border-right: 2px solid rgb(62, 137, 159);\r\n        width: 99%;\r\n        }\r\n*/\r\n\r\n.top-skio-savings.show {\r\n  display: flex;\r\n  /* border: 1px solid #cdd1d2; */\r\n  border-bottom: 0;\r\n  width: 100%;\r\n}\r\n\r\n/*.group-container--selected .top-skio-savings.show {\r\n  border-color: #3e89a0;\r\n}*/\r\n      .group-container:has(.skio-savings.hidden) {\r\n  border-top-left-radius: 30px;\r\n  border-top-right-radius: 30px;\r\n/*  border-top: 2px solid #3e89a0;\r\n  border-right: 2px solid #3e89a0;\r\n  border-bottom: 2px solid #3e89a0;\r\n  border-left: 2px solid #3e89a0; */\r\n}\r\n      }\r\n\r\n\r\n\r\n      @media screen and (max-width: 999px) {\r\n        .skio-savings.hidden {\r\n          display: none;\r\n        }\r\n\r\n        .top-skio-savings {\r\n          background-color: #C7F1C5;\r\n          width: 100%;\r\n          height: 35px;\r\n          margin-bottom: -10px;\r\n          border-top-left-radius: 30px;\r\n          border-top-right-radius: 30px;\r\n          font-size: 16px;\r\n          font-weight: 700;\r\n          color: #000000;\r\n          align-items: center;\r\n          justify-content: center;\r\n        }\r\n\r\n        .top-skio-savings.show {\r\n          display: flex;\r\n        }\r\n\r\n        .subscription_savings {\r\n          justify-content: end;\r\n        }\r\n      }\r\n\r\n      .skio-return__container {\r\n        display: flex;\r\n        align-items: center;\r\n      }\r\n\r\n      .size-option-selector .h-stack {\r\n        display: none;\r\n      }\r\n\r\n      .group-container .variant-picker__option-values {\r\n        display: flex;\r\n        flex-direction: column;\r\n        gap: 12px;\r\n        padding: 20px 0px 12px;\r\n      }\r\n\r\n      .group-container .block-swatch {\r\n        place-items: center;\r\n        gap: var(--spacing-3);\r\n        height: fit-content !important;\r\n        border: 2px solid #ADB0B1;\r\n        border-radius: 22px !important;\r\n        background: white no-repeat;\r\n        padding-inline-start: var(--spacing-5);\r\n        padding-inline-end: var(--spacing-5);\r\n        display: flex;\r\n        position: relative;\r\n        cursor: pointer;\r\n      }\r\n\r\n      .selected_option {\r\n        box-shadow: 0 0 0 2px #3e89a0 !important;\r\n        background-color: #e7eff1 !important;\r\n        border: 2px solid transparent !important;\r\n      }\r\n\r\n      .option-label {\r\n        font-family: Assistant;\r\n        font-weight: 700;\r\n        font-size: 20px;\r\n        line-height: 100%;\r\n        letter-spacing: 0%;\r\n      }\r\n\r\n      .option-piece-total {\r\n        font-family: Assistant;\r\n        font-weight: 400;\r\n        font-size: 18px;\r\n        line-height: 100%;\r\n        letter-spacing: 0%;\r\n      }\r\n\r\n      .option-price {\r\n        display: none;\r\n        flex-direction: row;\r\n        align-items: end;\r\n        gap: 4px;\r\n      }\r\n\r\n      .option-price-new {\r\n        font-family: Assistant;\r\n        font-weight: 700;\r\n        font-size: 1.8rem;\r\n        line-height: 100%;\r\n        letter-spacing: 0%;\r\n      }\r\n\r\n      .option-price-old {\r\n        font-family: Assistant;\r\n        font-weight: 400;\r\n        font-size: 17px;\r\n        line-height: 140%;\r\n        letter-spacing: 0%;\r\n        text-decoration: line-through;\r\n      }\r\n\r\n      .option-savings-total {\r\n        color: #17667E;\r\n        font-family: Assistant;\r\n        font-weight: 700;\r\n        font-size: 16px;\r\n        line-height: 100%;\r\n        letter-spacing: 0%;\r\n        border-radius: 20px;\r\n        padding: 5px 15px;\r\n        opacity: 0;\r\n      }\r\n\r\n      .option-piece-price {\r\n        font-family: Assistant;\r\n        font-weight: 700;\r\n        font-size: 17px;\r\n        line-height: 100%;\r\n        letter-spacing: 0%;\r\n        color: #17667E;\r\n      }\r\n\r\n      .skio-title {\r\n        font-family: Assistant;\r\n        font-weight: 400;\r\n        font-size: 20px;\r\n        line-height: 100%;\r\n        color: #5C5C5C;\r\n        padding-bottom: 10px;\r\n      }\r\n\r\n      .icon-group-wrapper {\r\n        display: grid;\r\n        grid-template-columns: repeat(2, 1fr);\r\n        gap: 20px;\r\n        padding-top: 14px;\r\n        padding-bottom: 20px;\r\n      }\r\n\r\n      .icon-group-wrapper2 {\r\n        display: grid;\r\n        grid-template-columns: repeat(2, 1fr);\r\n        /* gap: 6px;*/\r\n        padding-top: 10px;\r\n        padding-bottom: 10px;\r\n      }\r\n\r\n      .plan-icon-title {\r\n        font-family: Assistant;\r\n        font-weight: 600;\r\n        font-size: 20px;\r\n        line-height: 100%;\r\n        color: #000000;\r\n        display: flex;\r\n        flex-direction: row;\r\n        align-items: center;\r\n        gap: 10px;\r\n        /* padding-left: 20px; */\r\n      }\r\n\r\n      .plan-icon-title2 {\r\n        font-family: Assistant;\r\n        font-weight: 500;\r\n        font-size: 18px;\r\n        line-height: 100%;\r\n        color: #000000;\r\n        display: flex;\r\n        flex-direction: row;\r\n        align-items: center;\r\n        gap: 2px;\r\n        /* padding-left: 20px; */\r\n      }\r\n\r\n      @media (max-width: 500px) {\r\n        .icon-group-wrapper, .icon-group-wrapper2 {\r\n          grid-template-columns: repeat(1, 1fr);\r\n          padding-top: 10px !important;\r\n        }\r\n\r\n        .group-content.margin-left {\r\n          margin-left: 0px !important;\r\n        }\r\n\r\n        .plan-icon-title, .plan-icon-title2 {\r\n          /* padding-left: 8px !important; */\r\n        }\r\n      }\r\n\r\n      .skio-plan-picker-container {\r\n        display: flex;\r\n        flex-direction: column;\r\n        gap: 10px;\r\n      }\r\n\r\n      .skio-plan-picker-container-reverse {\r\n        display: flex;\r\n        flex-direction: column-reverse;\r\n        gap: 10px;\r\n      }\r\n\r\n      /* --- Packs row placed above the widget --- */\r\n.size-option-selector {\r\n  gap: 12px;\r\n  margin-bottom: 18px;\r\n}\r\n  .variant-picker__option-values.wrap.gap-2 {\r\n    display: flex;\r\n    justify-content: space-between;\r\n    gap:10px;\r\n;\r\n}\r\n\r\n/* pill buttons (reuses your .block-swatch look but tightens spacing) */\r\n.size-option-selector .block-swatch {\r\n  display: grid;\r\n  grid-template-columns: 1fr auto;\r\n  grid-template-rows: auto auto;\r\n  align-items: end;\r\n  gap: 2px 10px;\r\n  padding: 14px 16px;\r\n  border-radius: 20px !important;\r\n  border: 2px solid #ADB0B1;\r\n  background: #fff;\r\n  flex-grow:1;\r\n}\r\n\r\n.size-option-selector .block-swatch .option-label {\r\n  grid-column: 1/2;\r\n  grid-row: 1/2;\r\n  font-weight: 700;\r\n  font-size: 20px;\r\n}\r\n  .size-option-label-container-inner {\r\n    flex-wrap: wrap;\r\n}\r\n\r\n.size-option-selector .block-swatch .option-savings-total {\r\n    padding: 5px 0;\r\n    text-align: center;\r\n}\r\n\r\n.size-option-selector .block-swatch .option-piece-total {\r\n  grid-column: 1/2;\r\n  grid-row: 2/3;\r\n  font-size: 14px;\r\n  color: #1A1A1A;\r\n}\r\n\r\n.size-option-selector .block-swatch .option-price {\r\n  grid-column: 2/3;\r\n  grid-row: 1/2;\r\n  display: flex;\r\n  align-items: baseline;\r\n  gap: 6px;\r\n}\r\n\r\n.size-option-selector .block-swatch .option-savings-total {\r\n  grid-column: 2/3;\r\n  grid-row: 2/3;\r\n  justify-self: end;\r\n  font-size: 12px;\r\n  padding: 4px 8px;\r\nfont-weight: 700;\r\nfont-style: Bold;\r\nfont-size: 0.9em;\r\npadding: 0 5px 5px;\r\n    text-align: center;\r\n}\r\n\r\n/* active/selected state */\r\n.size-option-selector .block-swatch.selected_option {\r\n  box-shadow: 0 0 0 2px #3e89a0 !important;\r\n  background-color: #e7eff1 !important;\r\n  border: 1.5px solid transparent !important;\r\n}\r\n\r\n/* --- Price summary block (right of packs row in Figma, we render under it) --- */\r\n.pack-price-summary {\r\n  display: flex;\r\n  align-items: baseline;\r\n  justify-content: flex-end;\r\n  gap: 10px;\r\n  margin-bottom: 12px;\r\n}\r\n\r\n.pack-price-summary .price-now {\r\n  font-weight: 800;\r\n  font-size: 28px;\r\n  line-height: 1;\r\n  color: #1a1a1a;\r\n}\r\n\r\n.pack-price-summary .price-was {\r\n  font-size: 14px;\r\n  text-decoration: line-through;\r\n  color: #8a8a8a;\r\n}\r\n\r\n.pack-price-summary .per-piece {\r\n  font-size: 12px;\r\n  color: #17667E;\r\n}\r\n\r\n.pack-price-summary .save-pill {\r\n  font-size: 12px;\r\n  font-weight: 700;\r\n  padding: 4px 8px;\r\n  border-radius: 999px;\r\n  background: #C7F1C5;\r\n  color: #000000;\r\n}\r\n\r\n.skio-custom_atc-button{\r\n    border-radius: 47px;\r\nbackground: #3E899F;\r\nwidth:100%;\r\npadding-top: 16px;\r\npadding-bottom:16px;\r\ncolor: #FFF;\r\ntext-align: center;\r\nfont-family: Assistant;\r\nfont-size: 22px;\r\nfont-style: normal;\r\nfont-weight: 700;\r\nline-height: normal;\r\nletter-spacing: 0.44px;\r\nborder:none;\r\ncursor: pointer;\r\n}\r\n\r\n/* badge above the 2nd block-swatch */\r\n.size-option-selector .block-swatch { position: relative; }\r\n.size-option-selector .block-swatch .most-popular-badge{\r\n  position: absolute;\r\n  top: -24px;\r\n  left: 50%;\r\n  transform: translateX(-50%);\r\n  padding: 2px 10px;\r\n  border: 2px solid #3e899f;\r\n  border-radius: 9px 9px 0 0;\r\n  font-weight: 700;\r\n  font-size: 12px;\r\n  background: rgb(199, 241, 197); /* teal */\r\n  color: black;\r\n  box-shadow: 0 1px 2px rgba(0,0,0,.12);\r\n  white-space: nowrap;\r\n}\r\n\r\n.size-option-selector .block-swatch .most-popular-badge.badge-yellow{\r\ncolor:black;\r\nbackground: #FDDB45;\r\nz-index: -1;\r\ntop: -25px;\r\n}\r\n\r\n.savings.bubble.badge-yellow {\r\n    color:black;\r\nbackground: #FDDB45;\r\nborder:1px solid #FDDB45;\r\n}\r\n\r\n.skio-radio__container {\r\n    display: none;\r\n    color: var(--skio-group-border-color, #333);\r\n}\r\n\r\n@media (max-width: 520px){\r\n  .size-option-selector .block-swatch .most-popular-badge{\r\n  font-size:11px;\r\n  }\r\n\r\n  .size-option-selector .block-swatch {\r\npadding:8px 3px;\r\ndisplay: flex;\r\n}\r\n.option-piece-total{\r\n    color: #1A1A1A;\r\nfont-size: 12px;\r\nfont-style: normal;\r\nfont-weight: 300;\r\nline-height: normal;\r\nletter-spacing: -0.48px;\r\n}\r\n\r\n.skio-title {\r\n    font-size: 16px;\r\n}\r\n\r\n.variant-picker__option-values.wrap.gap-2 {\r\n    gap: 5px;\r\n}\r\n\r\n.group-title{\r\n    font-size:18px;\r\n        line-height: 1;\r\n}\r\n\r\n.subscription_savings {\r\n        flex-direction: column;\r\n        align-items: flex-end;\r\n        flex-direction: row;\r\n        align-items: start;\r\n        justify-content: end;\r\n    }\r\n\r\n.selected_plan__price, .one-time__price_text {\r\n    font-size: 1.1rem;\r\n}\r\n\r\n.savings.bubble {\r\n    font-size: 12px;\r\n    margin-left:-5px;\r\n    padding:3px 7px;\r\n}\r\n\r\n.group-label {\r\n    padding: 16px 17px;\r\n}\r\n\r\n.group-topline {\r\n    align-items: start;\r\n}\r\n.product-price {\r\nfont-size:14px;\r\n  }\r\n\r\n  .size-option-selector .block-swatch .most-popular-badge{\r\n  top: -23px;\r\n}\r\n\r\n.subscribe-order.plan-icon-title{\r\n    font-size:15px;\r\n    padding-left: 0 !important;\r\n}\r\n\r\n\r\n}\r\n\r\n\r\n\r\n}\r\n.selected_plan__price{\r\n  display: flex;\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 4px;\r\n}\r\n.per-piece-text{\r\n  font-family: Assistant;\r\n  font-weight: 700;\r\n  font-size: 14px;\r\n  line-height: 1;\r\n  color: #17667E; /* blue from your screenshot */\r\n}\r\n\r\n.selected_plan__price{\r\n  display: flex;\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 4px;\r\n}\r\n.per-piece-text{\r\n  font-family: Assistant;\r\n  font-weight: 700;\r\n  font-size: 14px;\r\n  line-height: 1;\r\n  color: #17667E;\r\n}\r\n\r\n @media screen and (max-width:1200px){\r\n\r\n        .per-piece-text {\r\n    font-size: 17px;\r\n}\r\n  }\r\n\r\n@media (max-width: 430px){\r\n    .group-title {\r\n        font-size: 18px;\r\n        line-height: 1;\r\n    }\r\n\r\n    .selected_plan__price, .one-time__price_text {\r\n        font-size: 18px;\r\n    }\r\n\r\n    .size-option-selector .block-swatch .option-label {\r\n    font-size: 18px;\r\n}\r\n}\r\n\r\n@media (max-width: 390px){\r\n\r\n   .size-option-selector .block-swatch span.option-label,\r\n   .size-option-selector .block-swatch span.option-piece-total{\r\n      font-size:15px;\r\n    }\r\n   .size-option-selector .block-swatch span.option-piece-total {\r\n      font-size:13px;\r\n    }\r\n.option-savings-total{\r\n    font-size:14px;\r\n}\r\n    .skio-title {\r\n    padding-bottom: 25px;\r\n   }\r\n\r\n    .selected_plan__price, .one-time__price_text {\r\n        font-size: 1.3em;\r\n    }\r\n\r\n    .group-title.subscription-group.full-width{\r\n      font-size: 20px;\r\n      letter-spacing: -1px;\r\n    }\r\n      .size-option-selector .block-swatch .most-popular-badge {\r\n        top: -22px;\r\n        font-size: 12px;\r\n    }\r\n}\r\n\r\n@media (max-width: 365px) {\r\n    .group-title.subscription-group.full-width{\r\n      font-size: 15px;\r\n    }\r\n      .size-option-selector .block-swatch .most-popular-badge {\r\n        top: -18px;\r\n        font-size: 10px;\r\n    }\r\n}\r\n\r\n@media (max-width: 355px) {\r\n    .subscription_savings {\r\n        flex-direction: column;\r\n        align-items: end;\r\n        justify-content: end;\r\n        gap: 10px;\r\n    }\r\n\r\n    .group-title.subscription-group.full-width{\r\n      font-size: 16px;\r\n      letter-spacing: 1px;\r\n    }\r\n\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n    `,\r\n  ]\r\n\r\n  constructor() {\r\n    super()\r\n    this.lastSelectedPackLabel = null;\r\n    this.selectedBlockSwatch = 0;\r\n    this.currency = window.Shopify.currency.active || 'USD'\r\n    this.language = window.Shopify.locale || 'en-US'\r\n    this.moneyFormatter = new Intl.NumberFormat(this.language, {\r\n      style: 'currency',\r\n      currency: this.currency,\r\n      minimumFractionDigits: 2,\r\n      maximumFractionDigits: 2,\r\n    })\r\n\r\n    // Start - Debug Variables\r\n    this.debug = window?.Shopify?.designMode\r\n    this.variantChanged = false\r\n    // End - Debug Variables\r\n\r\n    this.rules = []\r\n    this.rule = null\r\n    this.quantity = 1\r\n    this.showDetailsHover = false\r\n    this.selectedSellingPlanGroup = null\r\n\r\n    // Load selling plan from localStorage if exists\r\n    this.loadSellingPlanFromStorage()\r\n    this.isAdding = false\r\n\r\n    // Variety Pack restriction + event-driven UI scheduling (PL)\r\n    this.varietyPackVariantId = '46951057129693'\r\n    this.varietyPackOnly = false\r\n    this._swatchUpdateFrame = null\r\n    this._varietySyncFrame = null\r\n    this._sizePickerRetryTimer = null\r\n    this._sizePickerRetryCount = 0\r\n    this._varietyEventsBound = false\r\n    this.handleNativeFlavorClick = this.handleNativeFlavorClick.bind(this)\r\n  }\r\n\r\n  // \uD83D\uDD11 Normalize where the \"pack\" text comes from (option2 OR option1)\r\npackLabelForVariant(v) {\r\n  return (v?.option2 || v?.option1 || '').trim();\r\n}\r\n\r\nhasVariantInURL() {\r\n  try {\r\n    const url = new URL(window.location.href);\r\n    return url.searchParams.has('variant');\r\n  } catch (e) {\r\n    return false;\r\n  }\r\n}\r\n\r\n  hasTag(tag) {\r\n  return Array.isArray(this.product?.tags) && this.product.tags.some(t => t.toLowerCase() === tag.toLowerCase());\r\n}\r\n\r\n/*Variety pack*/\r\nisVarietyPack() {\r\n  const t = (s) => (s || '').toString().toLowerCase();\r\n  const v = this.selectedVariant;\r\n  return (\r\n    t(this.product?.title).includes('variety') ||\r\n    t(v?.title).includes('variety') ||\r\n    t(v?.option1).includes('variety') ||\r\n    t(v?.option2).includes('variety') ||\r\n    t(v?.option3).includes('variety')\r\n  );\r\n}\r\n\r\ngetVarietyPackVariant() {\r\n  return this.product?.variants?.find(\r\n    variant => String(variant.id) === this.varietyPackVariantId\r\n  ) || null;\r\n}\r\n\r\ngetLabelControl(label) {\r\n  if (!label) return null;\r\n  if (label.control) return label.control;\r\n\r\n  const inputId = label.getAttribute('for');\r\n  return inputId ? document.getElementById(inputId) : null;\r\n}\r\n\r\ngetNativeOptionFieldset(optionName) {\r\n  if (!this.form) return null;\r\n\r\n  return Array.from(\r\n    document.querySelectorAll(`fieldset.variant-picker__option[target=\"${optionName}\"]`)\r\n  ).find(fieldset =>\r\n    Array.from(fieldset.querySelectorAll('input')).some(input => input.form === this.form)\r\n  ) || null;\r\n}\r\n\r\ngetNativeFlavorLabel(target) {\r\n  let label = target?.closest?.('label[class*=\"flavor-nav-\"]') || null;\r\n\r\n  if (!label && target?.matches?.('input')) {\r\n    label = Array.from(\r\n      document.querySelectorAll('label[class*=\"flavor-nav-\"]')\r\n    ).find(candidate => this.getLabelControl(candidate) === target) || null;\r\n  }\r\n\r\n  const input = this.getLabelControl(label);\r\n  return input?.form === this.form ? label : null;\r\n}\r\n\r\nisNativeVarietySelected() {\r\n  const label = Array.from(\r\n    document.querySelectorAll('label.flavor-nav-varietypack')\r\n  ).find(candidate => this.getLabelControl(candidate)?.form === this.form);\r\n\r\n  return Boolean(this.getLabelControl(label)?.checked);\r\n}\r\n\r\nforceNativeFourPacks() {\r\n  const sizeFieldset = this.getNativeOptionFieldset('Sizes');\r\n  if (!sizeFieldset) return false;\r\n\r\n  const fourPackLabel = Array.from(\r\n    sizeFieldset.querySelectorAll('label.block-swatch')\r\n  ).find(label =>\r\n    label.querySelector('.option-label')?.textContent?.trim().toLowerCase() === '4 packs'\r\n  );\r\n\r\n  const fourPackInput = this.getLabelControl(fourPackLabel);\r\n  if (!fourPackInput) return false;\r\n\r\n  this.lastSelectedPackLabel = '4 Packs';\r\n\r\n  if (!fourPackInput.checked) {\r\n    fourPackInput.checked = true;\r\n    fourPackInput.dispatchEvent(new Event('change', { bubbles: true }));\r\n  }\r\n\r\n  return true;\r\n}\r\n\r\napplyVarietyPackVisibility() {\r\n  const varietyActive = Boolean(\r\n    this.varietyPackOnly ||\r\n    this.isNativeVarietySelected() ||\r\n    String(this.selectedVariant?.id) === this.varietyPackVariantId ||\r\n    String(this.variantInput?.value) === this.varietyPackVariantId\r\n  );\r\n\r\n  this.varietyPackOnly = varietyActive;\r\n\r\n  const setHidden = (element, hidden) => {\r\n    if (!element) return;\r\n\r\n    if (hidden) {\r\n      element.style.setProperty('display', 'none', 'important');\r\n      element.setAttribute('aria-hidden', 'true');\r\n    } else {\r\n      element.style.removeProperty('display');\r\n      element.removeAttribute('aria-hidden');\r\n    }\r\n  };\r\n\r\n  const updatePackLabels = labels => {\r\n    labels.forEach(label => {\r\n      const packLabel =\r\n        label\r\n          .querySelector('.option-label')\r\n          ?.textContent\r\n          ?.trim()\r\n          .toLowerCase() || '';\r\n\r\n      setHidden(\r\n        label,\r\n        varietyActive &&\r\n          packLabel !== '' &&\r\n          packLabel !== '4 packs'\r\n      );\r\n    });\r\n  };\r\n\r\n  const nativeSizeFieldset =\r\n    this.getNativeOptionFieldset('Sizes');\r\n\r\n  if (nativeSizeFieldset) {\r\n    updatePackLabels(\r\n      nativeSizeFieldset.querySelectorAll(\r\n        'label.block-swatch'\r\n      )\r\n    );\r\n\r\n    nativeSizeFieldset\r\n      .querySelectorAll('.most-popular-badge')\r\n      .forEach(badge =>\r\n        setHidden(badge, varietyActive)\r\n      );\r\n  }\r\n\r\n  const root = this.renderRoot || this;\r\n\r\n  updatePackLabels(\r\n    root.querySelectorAll(\r\n      '.size-option-selector label.block-swatch'\r\n    )\r\n  );\r\n\r\n  root\r\n    .querySelectorAll(\r\n      '.size-option-selector .most-popular-badge'\r\n    )\r\n    .forEach(badge =>\r\n      setHidden(badge, varietyActive)\r\n    );\r\n}\r\n\r\nsetVarietyPackMode(active) {\r\n  if (!this.getVarietyPackVariant()) return;\r\n\r\n  this.varietyPackOnly = Boolean(active);\r\n\r\n  if (this.varietyPackOnly) {\r\n    const varietyVariant = this.getVarietyPackVariant();\r\n    this.lastSelectedPackLabel = '4 Packs';\r\n    this.selectedVariant = varietyVariant;\r\n    this.variantChanged = true;\r\n    this.syncVariantInput(varietyVariant.id);\r\n  }\r\n\r\n  this.applyVarietyPackVisibility();\r\n  this.scheduleBlockSwatchUpdate();\r\n}\r\n\r\nhandleNativeFlavorClick(event) {\r\n  if (!this.getVarietyPackVariant()) return;\r\n\r\n  const label = this.getNativeFlavorLabel(event.target);\r\n  if (!label) return;\r\n\r\n  const selectingVariety = label.classList.contains('flavor-nav-varietypack');\r\n\r\n  // Run before the theme resolves the new flavor + size combination.\r\n  if (selectingVariety) {\r\n    this.forceNativeFourPacks();\r\n  }\r\n\r\n  this.varietyPackOnly = selectingVariety;\r\n  this.applyVarietyPackVisibility();\r\n\r\n  if (this._varietySyncFrame) {\r\n    cancelAnimationFrame(this._varietySyncFrame);\r\n  }\r\n\r\n  this._varietySyncFrame = requestAnimationFrame(() => {\r\n    this._varietySyncFrame = null;\r\n    this.setVarietyPackMode(\r\n      selectingVariety || this.isNativeVarietySelected()\r\n    );\r\n  });\r\n}\r\n\r\nbindVarietyPackEvents() {\r\n  if (this._varietyEventsBound || !this.getVarietyPackVariant()) return;\r\n\r\n  // pointerdown runs before theme/Skio mousedown handlers; click covers keyboard activation.\r\n  document.addEventListener('pointerdown', this.handleNativeFlavorClick, true);\r\n  document.addEventListener('click', this.handleNativeFlavorClick, true);\r\n  this._varietyEventsBound = true;\r\n}\r\n\r\nscheduleBlockSwatchUpdate() {\r\n  if (this._swatchUpdateFrame) return;\r\n\r\n  this._swatchUpdateFrame = requestAnimationFrame(() => {\r\n    this._swatchUpdateFrame = null;\r\n    this.updateBlockSwatches();\r\n  });\r\n}\r\n\r\n  // Keep the form's hidden variant input in sync\r\nsyncVariantInput(id) {\r\n  if (this.variantInput && String(this.variantInput.value) !== String(id)) {\r\n    this.variantInput.value = String(id);\r\n    // fire a real change so Shopify/theme listeners run\r\n    this.variantInput.dispatchEvent(new Event('change', { bubbles: true }));\r\n  }\r\n}\r\n\r\n// Pick a variant by its option2 label (e.g. \"4 Packs\")\r\n// Pick a variant by its pack label (e.g. \"4 Packs\", \"2 Packs\")\r\nselectVariantByOption2(label) {\r\n  if (!this.product?.variants?.length) return;\r\n  const targetLabel = (label || '').toLowerCase();\r\n\r\n  const v =\r\n    this.product.variants.find(variant =>\r\n      this.packLabelForVariant(variant).toLowerCase() === targetLabel\r\n    ) || this.product.variants[0];\r\n\r\n  this.selectedVariant = v;\r\n  this.selectedBlockSwatch = this.packLabelForVariant(v).toLowerCase() === '4 packs' ? 1 : 0;\r\n  this.lastSelectedPackLabel = this.packLabelForVariant(v) || null;\r\n  this.syncVariantInput(v.id);\r\n\r\n  this.scheduleBlockSwatchUpdate();\r\n}\r\n\r\n\r\n\r\npiecesForVariant(v) {\r\n  // \uD83C\uDF6F Variety pack always has 72 pieces (4 packs \u00D7 18, mixed flavors)\r\n  const t = (s) => (s || '').toString().toLowerCase();\r\n  const isVariety =\r\n    t(this.product?.title).includes('variety') ||\r\n    t(v?.title).includes('variety') ||\r\n    t(v?.option1).includes('variety') ||\r\n    t(v?.option2).includes('variety') ||\r\n    t(v?.option3).includes('variety');\r\n\r\n  if (isVariety) return 72;\r\n\r\n  const label = this.packLabelForVariant(v);\r\n  const m = (label || '').match(/\\d+/);\r\n  if (m) {\r\n    const packs = parseInt(m[0], 10) || 1;\r\n    const PIECES_PER_PACK = 18;\r\n    return packs * PIECES_PER_PACK;\r\n  } else {\r\n    return '';\r\n  }\r\n}\r\n\r\n\r\n  // Use for SUBSCRIBE price per piece (applies your selling plan + rule logic via price())\r\n  perPieceTextSubscribe(selling_plan) {\r\n  if (!this.selectedVariant) return '';\r\n  // \uD83E\uDDE0 only show for products tagged \"gum\"\r\n  // if (!this.hasTag('gum')) return '';\r\n\r\n  const pieces = this.piecesForVariant(this.selectedVariant) || null;\r\n  const totalCents = this.price(selling_plan, /*formatted*/ false);\r\n  if (!totalCents || !pieces) return '';\r\n  const per = Math.round(totalCents / pieces);\r\n  return `${this.money(per)} per piece`;\r\n}\r\n\r\n// Use for ONE-TIME (explicitly ignores rule/subscribe discounts)\r\nperPieceTextOneTime() {\r\n  if (!this.selectedVariant) return '';\r\n  // \uD83E\uDDE0 only show for products tagged \"gum\"\r\n  // if (!this.hasTag('gum')) return '';\r\n\r\n  const pieces = this.piecesForVariant(this.selectedVariant) || 1;\r\n  const totalCents = this.selectedVariant.price || 0;\r\n  if (!totalCents || !pieces) return '';\r\n  const per = Math.round(totalCents / pieces);\r\n  return `${this.money(per)} per piece`;\r\n}\r\n\r\n\r\n\r\n  // Save selling plan to localStorage\r\n  saveSellingPlanToStorage() {\r\n    if (this.selectedSellingPlan) {\r\n      localStorage.setItem('skio_selling_plan', this.selectedSellingPlan.id)\r\n    } else {\r\n      localStorage.removeItem('skio_selling_plan')\r\n    }\r\n  }\r\n\r\n  // Load selling plan from localStorage\r\n  loadSellingPlanFromStorage() {\r\n    const savedPlanId = localStorage.getItem('skio_selling_plan')\r\n    if (savedPlanId && this.availableSellingPlanGroups) {\r\n      this.selectSellingPlan(savedPlanId)\r\n    }\r\n  }\r\n\r\n  async connectedCallback() {\r\n    super.connectedCallback();\r\n    this.log('Mounted');\r\n\r\n    if (this.productHandle) {\r\n      this.loading = true;\r\n      await this.fetchProduct(this.productHandle);\r\n    }\r\n\r\n    this.bindFormEvents();\r\n    this.bindCartEvents();\r\n\r\n    // Use the variant already resolved by the theme when available.\r\n    const formVariant = (this.product?.variants || []).find(\r\n      variant => String(variant.id) === String(this.variantInput?.value)\r\n    );\r\n\r\n    if (formVariant) {\r\n      this.selectedVariant = formVariant;\r\n    } else if (this.selectedVariant) {\r\n      this.syncVariantInput(this.selectedVariant.id);\r\n    }\r\n\r\n    this.bindVarietyPackEvents();\r\n\r\n    const initialVarietyMode =\r\n      this.isNativeVarietySelected() ||\r\n      String(this.variantInput?.value) === this.varietyPackVariantId;\r\n\r\n    if (initialVarietyMode) {\r\n      this.forceNativeFourPacks();\r\n      this.setVarietyPackMode(true);\r\n    }\r\n\r\n    await this.updateComplete;\r\n\r\n    this.rules = await this.fetchRules();\r\n    await this.getRule();\r\n\r\n    // Preserve the existing 4 Packs default without overriding Variety Pack or URL state.\r\n    if (!this.hasVariantInURL() && !this.varietyPackOnly) {\r\n      this.selectVariantByOption2('4 Packs');\r\n    }\r\n\r\n    this.loadSellingPlanFromStorage();\r\n    this.moveSizeVariantPicker();\r\n\r\n    await this.updateComplete;\r\n    this.scheduleBlockSwatchUpdate();\r\n  }\r\n\r\n  disconnectedCallback() {\r\n    if (this._varietyEventsBound) {\r\n      document.removeEventListener('pointerdown', this.handleNativeFlavorClick, true);\r\n      document.removeEventListener('click', this.handleNativeFlavorClick, true);\r\n      this._varietyEventsBound = false;\r\n    }\r\n\r\n    if (this._varietySyncFrame) {\r\n      cancelAnimationFrame(this._varietySyncFrame);\r\n      this._varietySyncFrame = null;\r\n    }\r\n\r\n    if (this._sizePickerRetryTimer) {\r\n      clearTimeout(this._sizePickerRetryTimer);\r\n      this._sizePickerRetryTimer = null;\r\n    }\r\n\r\n    if (this._swatchUpdateFrame) {\r\n      cancelAnimationFrame(this._swatchUpdateFrame);\r\n      this._swatchUpdateFrame = null;\r\n    }\r\n\r\n    super.disconnectedCallback();\r\n  }\r\n\r\nupdateBlockSwatches() {\r\n  const variantId = this.variantInput?.value;\r\n  const root = this.renderRoot || this;\r\n  const blockSwatches = root.querySelectorAll('.size-option-selector .block-swatch');\r\n\r\n  const planPicker = root.querySelector('.skio-plan-picker');\r\n  if (planPicker && this.options?.layout !== 'hidden') {\r\n    planPicker.style.display = 'flex';\r\n  }\r\n\r\n  if (blockSwatches.length === 0) {\r\n    return;\r\n  }\r\n\r\n  const currentVariant =\r\n    (variantId && this.product?.variants?.find(v => String(v.id) === String(variantId))) ||\r\n    this.selectedVariant ||\r\n    null;\r\n\r\n  blockSwatches.forEach((swatch, index) => {\r\n    const optionLabel = swatch.querySelector('.option-label');\r\n    const currentLabel = currentVariant ? this.packLabelForVariant(currentVariant) : '';\r\n\r\n    if (currentVariant && optionLabel && optionLabel.textContent.trim() === currentLabel) {\r\n      swatch.classList.add('selected_option');\r\n      this.selectedBlockSwatch = index;\r\n    } else {\r\n      swatch.classList.remove('selected_option');\r\n    }\r\n\r\n    this.updatePieceTotal(swatch);\r\n    this.updateOptionPrice(swatch, index);\r\n  });\r\n\r\n  this.applyVarietyPackVisibility();\r\n}\r\n\r\n\r\n\r\n  // Add event listener for URL changes\r\n  bindUrlChangeEvents() {\r\n    // Method removed as we're using localStorage instead\r\n  }\r\n\r\n  // SECTION: Element Templates\r\n  radioTemplate() {\r\n    return html`\r\n      <div class=\"skio-radio__container\">\r\n        <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n          <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"1\"></circle>\r\n          <circle class=\"skio-radio\" cx=\"12\" cy=\"12\" r=\"7\" fill=\"currentColor\"></circle>\r\n        </svg>\r\n      </div>\r\n    `\r\n  }\r\n\r\n  returnTemplate() {\r\n    return html`\r\n      <div class=\"skio-return__container\">\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20px\" height=\"20px\" viewBox=\"0 0 20 20\" version=\"1.1\">\r\n        <g id=\"surface1\">\r\n          <path style=\" stroke:none;fill-rule:nonzero;fill:rgb(38.431373%,74.117647%,47.843137%);fill-opacity:1;\" d=\"M 15.996094 4.035156 C 16.335938 4.320312 16.636719 4.660156 16.921875 5 C 17.066406 5.171875 17.199219 5.34375 17.332031 5.519531 C 17.347656 5.542969 17.367188 5.566406 17.382812 5.589844 C 17.269531 5.433594 17.34375 5.535156 17.371094 5.574219 C 17.40625 5.625 17.445312 5.675781 17.480469 5.730469 C 17.554688 5.835938 17.625 5.945312 17.691406 6.054688 C 18 6.53125 18.265625 7.039062 18.484375 7.566406 C 18.5 7.601562 18.515625 7.636719 18.527344 7.667969 C 18.558594 7.746094 18.476562 7.542969 18.507812 7.617188 C 18.515625 7.636719 18.519531 7.652344 18.527344 7.671875 C 18.558594 7.746094 18.585938 7.820312 18.613281 7.898438 C 18.664062 8.046875 18.714844 8.199219 18.757812 8.347656 C 18.851562 8.664062 18.921875 8.984375 18.976562 9.308594 C 18.992188 9.386719 19.003906 9.46875 19.011719 9.550781 C 19.019531 9.589844 19.03125 9.675781 19.007812 9.496094 C 19.011719 9.519531 19.011719 9.539062 19.015625 9.558594 C 19.019531 9.605469 19.023438 9.65625 19.03125 9.703125 C 19.046875 9.875 19.058594 10.050781 19.0625 10.226562 C 19.074219 10.589844 19.054688 10.957031 19.015625 11.316406 C 19.011719 11.355469 19 11.449219 19.019531 11.277344 C 19.015625 11.296875 19.015625 11.320312 19.011719 11.34375 C 19.003906 11.390625 19 11.433594 18.992188 11.480469 C 18.976562 11.578125 18.957031 11.679688 18.9375 11.777344 C 18.902344 11.972656 18.855469 12.167969 18.804688 12.359375 C 18.75 12.558594 18.6875 12.757812 18.617188 12.953125 C 18.582031 13.050781 18.546875 13.148438 18.507812 13.242188 C 18.574219 13.082031 18.503906 13.257812 18.488281 13.296875 C 18.464844 13.351562 18.4375 13.410156 18.414062 13.464844 C 18.222656 13.898438 18 14.316406 17.753906 14.714844 C 17.621094 14.933594 17.480469 15.144531 17.332031 15.355469 C 17.3125 15.378906 17.296875 15.40625 17.277344 15.429688 C 17.355469 15.320312 17.289062 15.410156 17.273438 15.433594 C 17.238281 15.484375 17.199219 15.539062 17.160156 15.589844 C 17.074219 15.703125 16.984375 15.816406 16.894531 15.925781 C 16.445312 16.484375 15.957031 17 15.445312 17.488281 C 15.152344 17.769531 14.847656 18.035156 14.542969 18.296875 C 14.507812 18.324219 14.476562 18.351562 14.445312 18.378906 C 14.433594 18.390625 14.296875 18.5 14.375 18.4375 C 14.285156 18.507812 14.195312 18.582031 14.105469 18.652344 C 13.933594 18.792969 13.757812 18.929688 13.578125 19.0625 C 13.40625 19.195312 13.304688 19.394531 13.363281 19.625 C 13.414062 19.824219 13.609375 20.007812 13.8125 19.988281 C 14.902344 19.890625 15.996094 19.789062 17.085938 19.691406 C 17.460938 19.65625 17.835938 19.621094 18.210938 19.585938 C 18.464844 19.5625 18.679688 19.378906 18.679688 19.089844 C 18.679688 18.835938 18.464844 18.570312 18.210938 18.59375 C 17.121094 18.691406 16.03125 18.792969 14.941406 18.890625 C 14.566406 18.925781 14.191406 18.960938 13.8125 18.996094 C 13.890625 19.304688 13.972656 19.613281 14.050781 19.921875 C 15.960938 18.476562 17.792969 16.746094 18.945312 14.539062 C 19.703125 13.082031 20.117188 11.414062 19.964844 9.742188 C 19.847656 8.40625 19.410156 7.128906 18.757812 5.984375 C 18.300781 5.175781 17.738281 4.429688 17.109375 3.769531 C 16.964844 3.617188 16.816406 3.464844 16.65625 3.332031 C 16.457031 3.164062 16.191406 3.125 15.996094 3.332031 C 15.832031 3.507812 15.796875 3.863281 15.996094 4.035156 Z M 15.996094 4.035156 \"/>\r\n          <path style=\" stroke:none;fill-rule:nonzero;fill:rgb(38.431373%,74.117647%,47.843137%);fill-opacity:1;\" d=\"M 14.496094 15.339844 C 14.175781 16.472656 13.859375 17.605469 13.539062 18.742188 C 13.480469 18.945312 13.421875 19.152344 13.363281 19.359375 C 13.292969 19.621094 13.449219 19.902344 13.691406 19.972656 C 13.9375 20.042969 14.191406 19.882812 14.261719 19.625 C 14.582031 18.492188 14.902344 17.359375 15.21875 16.222656 C 15.277344 16.019531 15.335938 15.8125 15.394531 15.605469 C 15.46875 15.34375 15.308594 15.0625 15.070312 14.992188 C 14.820312 14.921875 14.566406 15.082031 14.496094 15.339844 Z M 14.496094 15.339844 \"/>\r\n          <path style=\" stroke:none;fill-rule:nonzero;fill:rgb(38.431373%,74.117647%,47.843137%);fill-opacity:1;\" d=\"M 4.019531 15.957031 C 3.679688 15.671875 3.378906 15.332031 3.09375 14.988281 C 2.949219 14.820312 2.816406 14.648438 2.683594 14.46875 C 2.667969 14.449219 2.648438 14.425781 2.632812 14.402344 C 2.746094 14.558594 2.671875 14.457031 2.644531 14.417969 C 2.609375 14.367188 2.570312 14.316406 2.535156 14.261719 C 2.460938 14.15625 2.390625 14.046875 2.324219 13.9375 C 2.015625 13.460938 1.75 12.953125 1.53125 12.425781 C 1.515625 12.390625 1.5 12.355469 1.488281 12.324219 C 1.457031 12.246094 1.539062 12.449219 1.507812 12.371094 C 1.5 12.355469 1.496094 12.339844 1.488281 12.320312 C 1.457031 12.246094 1.429688 12.171875 1.402344 12.09375 C 1.351562 11.945312 1.300781 11.792969 1.257812 11.640625 C 1.164062 11.328125 1.09375 11.007812 1.039062 10.683594 C 1.023438 10.605469 1.011719 10.523438 1.003906 10.441406 C 0.996094 10.402344 0.984375 10.316406 1.007812 10.492188 C 1.003906 10.472656 1.003906 10.453125 1 10.433594 C 0.996094 10.386719 0.992188 10.335938 0.984375 10.289062 C 0.96875 10.117188 0.957031 9.941406 0.953125 9.765625 C 0.941406 9.402344 0.960938 9.035156 1 8.675781 C 1.003906 8.636719 1.015625 8.542969 0.996094 8.714844 C 1 8.695312 1 8.671875 1.003906 8.648438 C 1.011719 8.601562 1.015625 8.558594 1.023438 8.511719 C 1.039062 8.414062 1.058594 8.3125 1.078125 8.214844 C 1.113281 8.019531 1.160156 7.824219 1.210938 7.632812 C 1.265625 7.433594 1.328125 7.234375 1.398438 7.039062 C 1.433594 6.941406 1.46875 6.84375 1.507812 6.746094 C 1.441406 6.910156 1.511719 6.734375 1.527344 6.695312 C 1.550781 6.640625 1.578125 6.582031 1.601562 6.523438 C 1.792969 6.09375 2.015625 5.675781 2.261719 5.277344 C 2.394531 5.058594 2.535156 4.847656 2.683594 4.636719 C 2.703125 4.613281 2.71875 4.585938 2.738281 4.5625 C 2.660156 4.671875 2.726562 4.578125 2.742188 4.558594 C 2.777344 4.507812 2.816406 4.453125 2.855469 4.402344 C 2.941406 4.289062 3.03125 4.175781 3.121094 4.066406 C 3.570312 3.507812 4.058594 2.992188 4.570312 2.503906 C 4.863281 2.222656 5.167969 1.957031 5.472656 1.695312 C 5.507812 1.667969 5.539062 1.640625 5.570312 1.613281 C 5.582031 1.601562 5.71875 1.492188 5.640625 1.554688 C 5.730469 1.480469 5.820312 1.410156 5.910156 1.339844 C 6.082031 1.199219 6.257812 1.0625 6.4375 0.929688 C 6.609375 0.796875 6.710938 0.597656 6.652344 0.367188 C 6.601562 0.167969 6.40625 -0.015625 6.203125 0.00390625 C 5.113281 0.101562 4.019531 0.203125 2.929688 0.300781 C 2.554688 0.335938 2.179688 0.371094 1.804688 0.40625 C 1.550781 0.425781 1.335938 0.613281 1.335938 0.902344 C 1.335938 1.15625 1.550781 1.421875 1.804688 1.398438 C 2.894531 1.296875 3.984375 1.199219 5.074219 1.097656 C 5.449219 1.066406 5.824219 1.03125 6.203125 0.996094 C 6.125 0.6875 6.042969 0.378906 5.964844 0.0703125 C 4.054688 1.515625 2.222656 3.246094 1.070312 5.453125 C 0.3125 6.910156 -0.101562 8.578125 0.0507812 10.25 C 0.167969 11.585938 0.605469 12.863281 1.257812 14.007812 C 1.714844 14.8125 2.277344 15.5625 2.90625 16.222656 C 3.050781 16.375 3.199219 16.527344 3.359375 16.660156 C 3.558594 16.828125 3.824219 16.867188 4.019531 16.660156 C 4.183594 16.484375 4.21875 16.128906 4.019531 15.957031 Z M 4.019531 15.957031 \"/>\r\n          <path style=\" stroke:none;fill-rule:nonzero;fill:rgb(38.431373%,74.117647%,47.843137%);fill-opacity:1;\" d=\"M 5.519531 4.652344 C 5.839844 3.519531 6.15625 2.382812 6.476562 1.25 C 6.535156 1.042969 6.59375 0.839844 6.652344 0.632812 C 6.722656 0.371094 6.566406 0.0898438 6.324219 0.0195312 C 6.078125 -0.0546875 5.824219 0.109375 5.753906 0.367188 C 5.433594 1.5 5.113281 2.632812 4.796875 3.765625 C 4.738281 3.972656 4.679688 4.179688 4.621094 4.386719 C 4.546875 4.644531 4.707031 4.925781 4.945312 5 C 5.195312 5.070312 5.449219 4.910156 5.519531 4.652344 Z M 5.519531 4.652344 \"/>\r\n          <path style=\" stroke:none;fill-rule:nonzero;fill:rgb(38.431373%,74.117647%,47.843137%);fill-opacity:1;\" d=\"M 10.007812 9.5 C 9.882812 9.496094 9.761719 9.488281 9.640625 9.472656 C 9.792969 9.492188 9.589844 9.460938 9.554688 9.453125 C 9.484375 9.4375 9.417969 9.421875 9.351562 9.402344 C 9.292969 9.382812 9.238281 9.363281 9.183594 9.34375 C 9.148438 9.332031 8.964844 9.25 9.101562 9.3125 C 8.984375 9.261719 8.871094 9.195312 8.765625 9.128906 C 8.714844 9.097656 8.664062 9.0625 8.617188 9.027344 C 8.59375 9.007812 8.570312 8.992188 8.546875 8.972656 C 8.464844 8.90625 8.628906 9.042969 8.550781 8.976562 C 8.449219 8.890625 8.359375 8.800781 8.273438 8.703125 C 8.230469 8.660156 8.191406 8.613281 8.15625 8.566406 C 8.136719 8.542969 8.117188 8.519531 8.101562 8.496094 C 8.035156 8.410156 8.164062 8.585938 8.101562 8.5 C 8.027344 8.390625 7.960938 8.277344 7.898438 8.160156 C 7.871094 8.105469 7.84375 8.050781 7.820312 7.992188 C 7.804688 7.964844 7.792969 7.9375 7.78125 7.90625 C 7.835938 8.039062 7.796875 7.9375 7.785156 7.910156 C 7.738281 7.78125 7.703125 7.652344 7.671875 7.519531 C 7.65625 7.457031 7.644531 7.394531 7.632812 7.328125 C 7.628906 7.300781 7.613281 7.183594 7.632812 7.335938 C 7.628906 7.300781 7.625 7.269531 7.625 7.238281 C 7.609375 7.09375 7.609375 6.953125 7.613281 6.808594 C 7.613281 6.742188 7.621094 6.679688 7.625 6.613281 C 7.628906 6.582031 7.644531 6.46875 7.625 6.617188 C 7.628906 6.585938 7.632812 6.550781 7.640625 6.519531 C 7.664062 6.386719 7.695312 6.25 7.734375 6.121094 C 7.753906 6.058594 7.773438 6 7.796875 5.941406 C 7.835938 5.839844 7.753906 6.046875 7.792969 5.945312 C 7.804688 5.917969 7.820312 5.890625 7.832031 5.859375 C 7.886719 5.738281 7.949219 5.621094 8.019531 5.511719 C 8.050781 5.457031 8.085938 5.40625 8.121094 5.359375 C 8.03125 5.484375 8.152344 5.320312 8.175781 5.292969 C 8.257812 5.191406 8.34375 5.09375 8.4375 5.007812 C 8.480469 4.964844 8.527344 4.925781 8.570312 4.886719 C 8.457031 4.984375 8.613281 4.859375 8.640625 4.839844 C 8.746094 4.761719 8.855469 4.695312 8.96875 4.632812 C 9 4.617188 9.179688 4.535156 9.042969 4.59375 C 9.097656 4.570312 9.152344 4.546875 9.210938 4.527344 C 9.332031 4.484375 9.457031 4.449219 9.585938 4.421875 C 9.613281 4.414062 9.644531 4.410156 9.671875 4.40625 C 9.78125 4.386719 9.5625 4.417969 9.667969 4.40625 C 9.730469 4.398438 9.792969 4.390625 9.851562 4.386719 C 9.988281 4.378906 10.121094 4.382812 10.253906 4.394531 C 10.285156 4.398438 10.316406 4.402344 10.347656 4.40625 C 10.453125 4.417969 10.234375 4.386719 10.34375 4.40625 C 10.402344 4.414062 10.460938 4.429688 10.519531 4.441406 C 10.644531 4.472656 10.769531 4.511719 10.890625 4.558594 C 10.917969 4.570312 10.945312 4.582031 10.972656 4.59375 C 10.847656 4.539062 10.941406 4.582031 10.96875 4.59375 C 11.019531 4.621094 11.074219 4.648438 11.125 4.675781 C 11.238281 4.742188 11.34375 4.8125 11.445312 4.890625 C 11.46875 4.90625 11.550781 4.976562 11.445312 4.886719 C 11.464844 4.90625 11.488281 4.925781 11.511719 4.945312 C 11.554688 4.984375 11.597656 5.027344 11.640625 5.070312 C 11.734375 5.160156 11.816406 5.257812 11.898438 5.363281 C 11.914062 5.382812 11.976562 5.472656 11.894531 5.359375 C 11.914062 5.382812 11.929688 5.410156 11.949219 5.433594 C 11.980469 5.484375 12.011719 5.535156 12.042969 5.589844 C 12.109375 5.703125 12.167969 5.824219 12.222656 5.945312 C 12.242188 5.996094 12.238281 5.984375 12.207031 5.914062 C 12.214844 5.933594 12.222656 5.953125 12.230469 5.972656 C 12.25 6.019531 12.265625 6.070312 12.28125 6.121094 C 12.3125 6.21875 12.335938 6.324219 12.359375 6.425781 C 12.367188 6.46875 12.375 6.511719 12.382812 6.550781 C 12.382812 6.574219 12.386719 6.59375 12.390625 6.617188 C 12.367188 6.46875 12.386719 6.582031 12.390625 6.613281 C 12.402344 6.722656 12.40625 6.832031 12.40625 6.941406 C 12.40625 7.210938 12.617188 7.4375 12.871094 7.4375 C 13.125 7.4375 13.339844 7.210938 13.339844 6.941406 C 13.332031 5.734375 12.757812 4.628906 11.820312 3.960938 C 11.355469 3.628906 10.808594 3.453125 10.253906 3.402344 C 9.6875 3.347656 9.121094 3.480469 8.605469 3.722656 C 7.632812 4.179688 6.90625 5.207031 6.730469 6.320312 C 6.546875 7.511719 6.917969 8.738281 7.757812 9.558594 C 8.371094 10.15625 9.175781 10.488281 10.007812 10.492188 C 10.261719 10.492188 10.472656 10.265625 10.472656 9.996094 C 10.472656 9.722656 10.261719 9.5 10.007812 9.5 Z M 10.007812 9.5 \"/>\r\n          <path style=\" stroke:none;fill-rule:nonzero;fill:rgb(38.431373%,74.117647%,47.843137%);fill-opacity:1;\" d=\"M 10.007812 10.5 C 10.132812 10.5 10.253906 10.507812 10.375 10.523438 C 10.222656 10.503906 10.425781 10.535156 10.460938 10.542969 C 10.53125 10.558594 10.597656 10.574219 10.664062 10.597656 C 10.722656 10.613281 10.777344 10.632812 10.832031 10.652344 C 10.867188 10.664062 11.050781 10.746094 10.914062 10.683594 C 11.03125 10.738281 11.144531 10.800781 11.25 10.867188 C 11.300781 10.902344 11.351562 10.933594 11.398438 10.96875 C 11.421875 10.988281 11.445312 11.003906 11.46875 11.023438 C 11.550781 11.089844 11.386719 10.953125 11.464844 11.019531 C 11.566406 11.105469 11.65625 11.195312 11.742188 11.292969 C 11.785156 11.335938 11.824219 11.382812 11.859375 11.429688 C 11.878906 11.453125 11.898438 11.476562 11.914062 11.5 C 11.980469 11.585938 11.851562 11.410156 11.914062 11.496094 C 11.988281 11.605469 12.054688 11.71875 12.117188 11.835938 C 12.144531 11.890625 12.171875 11.949219 12.195312 12.003906 C 12.210938 12.03125 12.222656 12.058594 12.234375 12.089844 C 12.179688 11.957031 12.21875 12.058594 12.230469 12.085938 C 12.277344 12.214844 12.316406 12.34375 12.34375 12.480469 C 12.359375 12.539062 12.371094 12.605469 12.382812 12.667969 C 12.386719 12.695312 12.402344 12.8125 12.382812 12.664062 C 12.386719 12.695312 12.390625 12.726562 12.390625 12.757812 C 12.40625 12.902344 12.410156 13.046875 12.402344 13.1875 C 12.402344 13.253906 12.394531 13.320312 12.390625 13.382812 C 12.386719 13.414062 12.371094 13.53125 12.390625 13.378906 C 12.386719 13.414062 12.382812 13.445312 12.375 13.476562 C 12.351562 13.613281 12.320312 13.746094 12.28125 13.875 C 12.261719 13.9375 12.242188 13.996094 12.21875 14.054688 C 12.179688 14.160156 12.261719 13.949219 12.222656 14.050781 C 12.210938 14.078125 12.195312 14.109375 12.183594 14.136719 C 12.128906 14.257812 12.066406 14.375 11.996094 14.488281 C 11.964844 14.539062 11.929688 14.589844 11.894531 14.636719 C 11.984375 14.511719 11.863281 14.675781 11.839844 14.707031 C 11.761719 14.808594 11.671875 14.902344 11.578125 14.992188 C 11.535156 15.03125 11.488281 15.070312 11.445312 15.109375 C 11.558594 15.011719 11.402344 15.136719 11.375 15.160156 C 11.269531 15.234375 11.160156 15.300781 11.046875 15.363281 C 11.015625 15.378906 10.835938 15.464844 10.972656 15.402344 C 10.917969 15.425781 10.863281 15.449219 10.804688 15.46875 C 10.683594 15.511719 10.558594 15.546875 10.433594 15.574219 C 10.402344 15.582031 10.371094 15.585938 10.34375 15.589844 C 10.234375 15.609375 10.453125 15.578125 10.347656 15.589844 C 10.285156 15.597656 10.222656 15.605469 10.164062 15.609375 C 10.027344 15.617188 9.894531 15.613281 9.761719 15.601562 C 9.730469 15.597656 9.699219 15.59375 9.667969 15.589844 C 9.5625 15.578125 9.78125 15.609375 9.671875 15.589844 C 9.613281 15.582031 9.554688 15.570312 9.496094 15.554688 C 9.371094 15.523438 9.246094 15.484375 9.125 15.4375 C 9.097656 15.425781 9.070312 15.414062 9.042969 15.402344 C 9.171875 15.457031 9.074219 15.414062 9.046875 15.402344 C 8.996094 15.375 8.941406 15.347656 8.890625 15.320312 C 8.78125 15.257812 8.671875 15.183594 8.570312 15.105469 C 8.546875 15.089844 8.464844 15.019531 8.570312 15.109375 C 8.550781 15.089844 8.527344 15.070312 8.503906 15.050781 C 8.460938 15.011719 8.417969 14.96875 8.375 14.929688 C 8.28125 14.835938 8.199219 14.738281 8.117188 14.636719 C 8.101562 14.613281 8.039062 14.523438 8.121094 14.636719 C 8.101562 14.613281 8.085938 14.589844 8.070312 14.5625 C 8.035156 14.511719 8.003906 14.460938 7.972656 14.410156 C 7.90625 14.292969 7.847656 14.171875 7.792969 14.050781 C 7.773438 14.003906 7.777344 14.011719 7.808594 14.082031 C 7.800781 14.0625 7.792969 14.042969 7.785156 14.023438 C 7.765625 13.976562 7.75 13.925781 7.734375 13.875 C 7.703125 13.777344 7.679688 13.671875 7.65625 13.570312 C 7.648438 13.527344 7.640625 13.488281 7.632812 13.445312 C 7.632812 13.421875 7.628906 13.402344 7.625 13.378906 C 7.648438 13.527344 7.628906 13.414062 7.625 13.382812 C 7.613281 13.273438 7.609375 13.164062 7.609375 13.054688 C 7.609375 12.785156 7.398438 12.558594 7.144531 12.558594 C 6.890625 12.558594 6.675781 12.785156 6.675781 13.054688 C 6.683594 14.261719 7.257812 15.367188 8.195312 16.035156 C 8.660156 16.367188 9.207031 16.542969 9.761719 16.59375 C 10.328125 16.652344 10.894531 16.519531 11.410156 16.273438 C 12.382812 15.816406 13.113281 14.789062 13.285156 13.675781 C 13.46875 12.488281 13.097656 11.257812 12.257812 10.4375 C 11.644531 9.839844 10.839844 9.507812 10.007812 9.503906 C 9.753906 9.503906 9.542969 9.730469 9.542969 10 C 9.542969 10.273438 9.753906 10.496094 10.007812 10.5 Z M 10.007812 10.5 \"/>\r\n          <path style=\" stroke:none;fill-rule:nonzero;fill:rgb(38.431373%,74.117647%,47.843137%);fill-opacity:1;\" d=\"M 9.535156 2.457031 C 9.535156 3.027344 9.535156 3.59375 9.535156 4.160156 C 9.535156 5.496094 9.535156 6.832031 9.535156 8.167969 C 9.535156 9.71875 9.535156 11.269531 9.535156 12.820312 C 9.535156 14.03125 9.535156 15.246094 9.535156 16.460938 C 9.535156 16.816406 9.535156 17.175781 9.535156 17.53125 C 9.535156 17.804688 9.746094 18.03125 10 18.03125 C 10.253906 18.03125 10.464844 17.804688 10.464844 17.53125 C 10.464844 16.964844 10.464844 16.398438 10.464844 15.828125 C 10.464844 14.496094 10.464844 13.160156 10.464844 11.824219 C 10.464844 10.273438 10.464844 8.722656 10.464844 7.171875 C 10.464844 5.960938 10.464844 4.746094 10.464844 3.53125 C 10.464844 3.175781 10.464844 2.816406 10.464844 2.457031 C 10.464844 2.1875 10.253906 1.960938 10 1.960938 C 9.746094 1.960938 9.535156 2.1875 9.535156 2.457031 Z M 9.535156 2.457031 \"/>\r\n        </g>\r\n      </svg>\r\n      </div>\r\n    `\r\n  }\r\n\r\n  sellingPlanDropdown(group) {\r\n    return html`\r\n      <select\r\n        class=\"selling-plan-dropdown ${this.getAvailableSellingPlans(group).length == 1 ? 'selling-plan-dropdown--one' : ''}\"\r\n        @change=${e => {\r\n          this.selectSellingPlan(e.target.value)\r\n        }}\r\n      >\r\n        ${group\r\n          ? this.getAvailableSellingPlans(group).map(\r\n              selling_plan => html` <option ?selected=${group.selected_selling_plan.id === selling_plan.id} value=${selling_plan.id}>${selling_plan.name}</option> `\r\n            )\r\n          : ''}\r\n      </select>\r\n    `\r\n  }\r\n\r\n  sellingPlanButtons(group) {\r\n    return html`\r\n      <fieldset class=\"selling-plan-buttons\">\r\n        <legend class=\"sr-only\">Select subscription interval</legend>\r\n        ${group\r\n          ? this.getAvailableSellingPlans(group).map(\r\n              selling_plan => html`\r\n                <input\r\n                  type=\"radio\"\r\n                  name=\"selling_plan_button\"\r\n                  value=\"${selling_plan}\"\r\n                  id=\"selling_plan_button-${selling_plan.id}\"\r\n                  @change=\"${e => this.selectSellingPlan(selling_plan.id)}\"\r\n                  ?checked=${group.selected_selling_plan === selling_plan}\r\n                />\r\n\r\n                <label for=\"selling_plan_button-${selling_plan.id}\"> ${selling_plan.name} </label>\r\n              `\r\n            )\r\n          : ''}\r\n      </fieldset>\r\n    `\r\n  }\r\n\r\n  invalidIcon() {\r\n    return html`\r\n      <svg width=\"24\" height=\"24\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"#D22B2B\" class=\"w-6 h-6\">\r\n        <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9.75 9.75l4.5 4.5m0-4.5l-4.5 4.5M21 12a9 9 0 11-18 0 9 9 0 0118 0z\" />\r\n      </svg>\r\n    `\r\n  }\r\n\r\n  validIcon() {\r\n    return html`\r\n      <svg width=\"24\" height=\"24\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"#0BDA51\" class=\"w-6 h-6\">\r\n        <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z\" />\r\n      </svg>\r\n    `\r\n  }\r\n\r\n  setupMode() {\r\n    return html`\r\n      <div class=\"setupMode\">\r\n        Skio Plan Picker\r\n        <small>This will not appear on the live site.</small>\r\n\r\n        <small>Key: ${this.key}</small>\r\n\r\n        <div class=\"detection\">${this.product ? this.validIcon() : this.invalidIcon()} Product</div>\r\n\r\n        <div class=\"detection\">${this.selectedVariant ? this.validIcon() : this.invalidIcon()} Selected Variant</div>\r\n\r\n        <div class=\"detection\">${this.form ? this.validIcon() : this.invalidIcon()} Form</div>\r\n\r\n        <div class=\"detection\">${this.variantInput ? this.validIcon() : this.invalidIcon()} Variant Input</div>\r\n\r\n        <div class=\"detection\">\r\n          ${this.variantChanged ? this.validIcon() : this.invalidIcon()} Variant Change Detection\r\n          <small>Please attempt to change the selected variant.</small>\r\n        </div>\r\n\r\n        <small>If any of these don't pass please troubleshoot using our <a target=\"_blank\" rel=\"noreferrer\" href=\"https://integrate.skio.com/troubleshooting\">troubleshooting guide</a>.</small>\r\n      </div>\r\n    `\r\n  }\r\n\r\n  groupContent(group) {\r\n    return html`\r\n      <div class=\"group-content ${this.options?.layout == 'horizontal' ? '' : this.options?.show_radio_selector && this.options?.dropdownPosition == 'inside' ? 'margin-left' : ''}\">\r\n\r\n        <div class='icon-group-wrapper'>\r\n                 <div class=\"subscribe-order plan-icon-title\">\r\n  ${this.isVarietyPack()\r\n    ? html`\r\n        <img\r\n          src=\"https://cdn.shopify.com/s/files/1/0713/6113/4813/files/Seasonal.svg?v=1777390130\"\r\n          alt=\"\"\r\n          width=\"27\"\r\n          height=\"27\"\r\n          style=\"object-fit:contain;border-radius:6px;\"\r\n        />\r\n        Top flavors & seasonal releases\r\n      `\r\n    : html`\r\n        <svg width=\"29\" height=\"24\" viewBox=\"0 0 29 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n          <path d=\"M28.3892 10.9092L23.5211 5.77091C23.3256 5.56637 23.0615 5.45318 22.7857 5.45455H18.6429V2.18182C18.6429 1.60364 18.4241 1.04864 18.0357 0.639535C17.6473 0.230429 17.1204 0 16.5714 0H2.07143C0.926951 0 0 0.976349 0 2.18182V18.5455C0 19.1236 0.218795 19.6786 0.607177 20.0877C0.995559 20.4968 1.5225 20.7273 2.07143 20.7273H4.14286C4.14286 22.5341 5.53461 24 7.25 24C8.96539 24 10.3571 22.5341 10.3571 20.7273H19.6786C19.6786 22.5341 21.0703 24 22.7857 24C24.5011 24 25.8929 22.5341 25.8929 20.7273H26.9286C27.4775 20.7273 28.0044 20.4968 28.3928 20.0877C28.7812 19.6787 29 19.1236 29 18.5455V12.4471C28.9974 11.8689 28.7776 11.317 28.3892 10.9092ZM7.25041 2.18196H11.3933V6.09847L10.0572 4.68029C9.86301 4.47438 9.59759 4.35712 9.32184 4.35712C9.04609 4.35712 8.78068 4.47439 8.58649 4.68029L7.25041 6.09847V2.18196ZM7.25041 21.8183C6.83094 21.8183 6.45421 21.5524 6.29366 21.1447C6.13311 20.737 6.22246 20.2679 6.51764 19.9556C6.8141 19.6447 7.25946 19.5506 7.64657 19.7197C8.03367 19.8888 8.28611 20.2856 8.28611 20.7274C8.28611 21.0165 8.17736 21.2947 7.98316 21.4992C7.78896 21.7038 7.52487 21.8183 7.25041 21.8183ZM22.7864 21.8183C22.3669 21.8183 21.9902 21.5524 21.8297 21.1447C21.6691 20.737 21.7584 20.2679 22.0536 19.9556C22.3501 19.6447 22.7954 19.5506 23.1826 19.7197C23.5697 19.8888 23.8221 20.2856 23.8221 20.7274C23.8221 21.0165 23.7134 21.2947 23.5191 21.4992C23.3249 21.7038 23.0609 21.8183 22.7864 21.8183ZM26.9293 18.5456H25.0857C24.4966 17.8638 23.6616 17.4738 22.7864 17.4738C21.9112 17.4738 21.0762 17.8638 20.4871 18.5456H18.6435V7.63651H22.3619L25.469 10.9092H22.7865C22.2143 10.9092 21.7508 11.3974 21.7508 12.0001C21.7508 12.6029 22.2143 13.0911 22.7865 13.0911H26.9294L26.9293 18.5456Z\" fill=\"#3E89A0\"/>\r\n        </svg>\r\n        ${this.selectedVariant?.option2 == \"8 Packs\" ? \"FREE & Fast Delivery \" : \"Fast Delivery  \"}\r\n      `}\r\n</div>\r\n          <div class=\"subscribe-order plan-icon-title\">\r\n            <svg width=\"27\" height=\"27\" viewBox=\"0 0 27 27\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n              <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.4044 1.06953C14.7307 -0.35651 12.269 -0.35651 10.5953 1.06953L9.48834 2.01276C9.13008 2.31785 8.68367 2.50256 8.21486 2.54035L6.76505 2.65651C4.57213 2.83144 2.83139 4.57235 2.65614 6.76392L2.54139 8.21373C2.5036 8.68394 2.31888 9.12896 2.01379 9.48721L1.07056 10.5942C-0.356854 12.2679 -0.356854 14.7308 1.07056 16.4048L2.01379 17.5118C2.31888 17.87 2.50359 18.3164 2.54139 18.7852L2.65614 20.235C2.83107 22.428 4.57198 24.1675 6.76505 24.3425L8.21486 24.4586C8.68367 24.4964 9.13008 24.6811 9.48834 24.9862L10.5953 25.9294C12.269 27.3569 14.7308 27.3569 16.4044 25.9294L17.5114 24.9862C17.871 24.6811 18.3161 24.4964 18.7863 24.4586L20.2361 24.3425C22.4276 24.1675 24.1685 22.428 24.3435 20.235L24.4596 18.7852C24.4974 18.3164 24.6822 17.87 24.9872 17.5118L25.9305 16.4048C27.3565 14.7311 27.3565 12.2681 25.9305 10.5942L24.9872 9.48721C24.6822 9.12896 24.4974 8.68394 24.4596 8.21373L24.3435 6.76392C24.1686 4.57241 22.4277 2.83146 20.2361 2.65651L18.7863 2.54035C18.3161 2.50257 17.871 2.31784 17.5114 2.01276L16.4044 1.06953ZM12.048 2.77406C12.8849 2.06035 14.1164 2.06035 14.9532 2.77406L16.0602 3.71729C16.7767 4.32746 17.6681 4.69688 18.6086 4.77247L20.0584 4.88863C21.1541 4.97539 22.0246 5.84583 22.1114 6.94162L22.2275 8.39143C22.3031 9.33045 22.6711 10.2233 23.2827 10.9398L24.2259 12.0468C24.9397 12.8836 24.9397 14.1151 24.2259 14.952L23.2827 16.0589C22.6712 16.7754 22.3031 17.6683 22.2275 18.6073L22.1114 20.0571C22.0246 21.1529 21.1542 22.0233 20.0584 22.1101L18.6086 22.2263C17.6681 22.3018 16.7767 22.6713 16.0602 23.2814L14.9532 24.2261C14.1164 24.9384 12.8849 24.9384 12.048 24.2261L10.9411 23.2814C10.2246 22.6713 9.33172 22.3018 8.3927 22.2263L6.94289 22.1101C5.84714 22.0233 4.97669 21.1529 4.88853 20.0571L4.77377 18.6073C4.69821 17.6683 4.32876 16.7754 3.71718 16.0589L2.77395 14.952C2.06165 14.1151 2.06165 12.8836 2.77395 12.0468L3.71718 10.9398C4.32873 10.2233 4.69818 9.33045 4.77377 8.39143L4.88853 6.94162C4.97669 5.84586 5.84714 4.97542 6.94289 4.88863L8.3927 4.77247C9.33172 4.69691 10.2246 4.32746 10.9411 3.71729L12.048 2.77406Z\" fill=\"#3E89A0\"/>\r\n              <path d=\"M12.048 2.77406C12.8849 2.06035 14.1164 2.06035 14.9532 2.77406L16.0602 3.71729C16.7767 4.32746 17.6681 4.69688 18.6086 4.77247L20.0584 4.88863C21.1541 4.97539 22.0246 5.84583 22.1114 6.94162L22.2275 8.39143C22.3031 9.33045 22.6711 10.2233 23.2827 10.9398L24.2259 12.0468C24.9397 12.8836 24.9397 14.1151 24.2259 14.952L23.2827 16.0589C22.6712 16.7754 22.3031 17.6683 22.2275 18.6073L22.1114 20.0571C22.0246 21.1529 21.1542 22.0233 20.0584 22.1101L18.6086 22.2263C17.6681 22.3018 16.7767 22.6713 16.0602 23.2814L14.9532 24.2261C14.1164 24.9384 12.8849 24.9384 12.048 24.2261L10.9411 23.2814C10.2246 22.6713 9.33172 22.3018 8.3927 22.2263L6.94289 22.1101C5.84714 22.0233 4.97669 21.1529 4.88853 20.0571L4.77377 18.6073C4.69821 17.6683 4.32876 16.7754 3.71718 16.0589L2.77395 14.952C2.06165 14.1151 2.06165 12.8836 2.77395 12.0468L3.71718 10.9398C4.32873 10.2233 4.69818 9.33045 4.77377 8.39143L4.88853 6.94162C4.97669 5.84586 5.84714 4.97542 6.94289 4.88863L8.3927 4.77247C9.33172 4.69691 10.2246 4.32746 10.9411 3.71729L12.048 2.77406Z\" fill=\"#3E89A0\"/>\r\n              <path d=\"M8.61866 11.1681C9.32245 11.8731 10.4645 11.8731 11.1683 11.1681C11.8734 10.4643 11.8734 9.32222 11.1683 8.61843C10.4645 7.91464 9.32245 7.91464 8.61866 8.61843C7.91487 9.32222 7.91487 10.4643 8.61866 11.1681Z\" fill=\"#F9F9F9\"/>\r\n              <path d=\"M15.8315 18.3816C16.5353 19.0853 17.6774 19.0853 18.3812 18.3816C19.085 17.6778 19.085 16.5357 18.3812 15.8319C17.6774 15.1269 16.5353 15.1269 15.8315 15.8319C15.1265 16.5357 15.1265 17.6778 15.8315 18.3816Z\" fill=\"#F9F9F9\"/>\r\n              <path d=\"M17.6709 9.32906C18.1097 9.76922 18.1097 10.4808 17.6709 10.9209L10.9209 17.6709C10.4808 18.1097 9.76919 18.1097 9.32906 17.6709C8.89031 17.2308 8.89031 16.5192 9.32906 16.0791L16.0791 9.32906C16.5192 8.89031 17.2308 8.89031 17.6709 9.32906Z\" fill=\"#F9F9F9\"/>\r\n            </svg>\r\n<!-- UMG progo: was this.discountText(this.selectedSellingPlan, true) \u2014 swapped to futureOrderDiscountText so 30% plans show \"20% Off\" here only -->\r\n            ${this.futureOrderDiscountText(this.selectedSellingPlan, true)} on Future Orders\r\n          </div>\r\n          <div class=\"subscribe-order plan-icon-title\">\r\n            <svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n              <path d=\"M9.30001 3.34714L11 6.22404H7.42227C6.87051 6.28284 6.31965 6.10554 5.90697 5.73617C5.49429 5.3668 5.25855 4.84029 5.25855 4.28767C5.25855 3.73504 5.49429 3.20855 5.90697 2.83916C6.31965 2.4698 6.87051 2.29248 7.42227 2.35129H7.52779C8.25424 2.34607 8.92887 2.72517 9.30005 3.34712L9.30001 3.34714ZM3.12781 4.2766C3.13053 4.95484 3.29627 5.62264 3.61112 6.22404H1.56115C1.1471 6.22404 0.749974 6.38784 0.457267 6.67941C0.16449 6.97091 0 7.36639 0 7.77872V10.8935V10.8934C0 11.3058 0.164479 11.7012 0.457267 11.9927C0.749974 12.2843 1.1471 12.4481 1.56115 12.4481H23.4389C23.8529 12.4481 24.25 12.2843 24.5427 11.9927C24.8355 11.7012 25 11.3058 25 10.8934V7.77863C25 7.3663 24.8355 6.97082 24.5427 6.67932C24.25 6.38776 23.8529 6.22395 23.4389 6.22395H21.3889C21.8367 5.35221 21.9704 4.35385 21.7679 3.39569C21.5654 2.43751 21.0388 1.57755 20.2762 0.959545C19.5135 0.341541 18.561 0.00279036 17.5778 1.05811e-06H17.5C16.7338 1.05811e-06 15.9807 0.199005 15.3152 0.577387C14.6498 0.955764 14.095 1.50046 13.7055 2.15772L12.5 4.14938L11.3223 2.15772C10.9333 1.50012 10.3785 0.955142 9.71304 0.576672C9.04744 0.198203 8.29422 -0.00052914 7.52781 1.05811e-06H7.42229C6.28333 1.05811e-06 5.19102 0.4506 4.38573 1.25256C3.58033 2.05461 3.12795 3.14237 3.12795 4.27653L3.12781 4.2766ZM19.5333 4.2766C19.5333 4.79311 19.3273 5.28847 18.9606 5.65369C18.5938 6.01883 18.0964 6.22404 17.5778 6.22404H14L15.7 3.34714H15.6999C15.8826 3.03432 16.1456 2.77561 16.462 2.59767C16.7784 2.41974 17.1367 2.32898 17.5 2.33474H17.6055C18.1184 2.34194 18.6078 2.54959 18.9684 2.91284C19.329 3.27609 19.5318 3.76586 19.5333 4.2766H19.5333ZM1.56115 14.1065V22.6653C1.56115 23.2845 1.8081 23.8784 2.24782 24.3162C2.68744 24.754 3.28378 25 3.90552 25H10.9388V14.1065L1.56115 14.1065ZM14.0611 25H21.0944C21.7162 25 22.3125 24.754 22.7521 24.3162C23.1918 23.8784 23.4388 23.2845 23.4388 22.6652V14.1065H14.061L14.0611 25Z\" fill=\"#3E89A0\"/>\r\n            </svg>\r\n            Surprise Gifts & Goodies\r\n          </div>\r\n          <div class=\"subscribe-order plan-icon-title\">\r\n            <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n              <path d=\"M5.30699 13.856C5.55968 13.6086 5.96927 13.6086 6.22197 13.856C6.47466 14.1034 6.47466 14.5045 6.22197 14.7519L3.2091 17.7017H22.3529C22.7103 17.7017 23 17.9853 23 18.3352C23 18.6851 22.7103 18.9688 22.3529 18.9688H3.2091L6.22197 21.9186C6.47466 22.166 6.47466 22.567 6.22197 22.8144C5.96927 23.0619 5.55968 23.0619 5.30699 22.8144L1.18957 18.7832C0.936876 18.5357 0.936876 18.1347 1.18957 17.8873L5.30699 13.856ZM17.778 1.18555C18.0307 0.938148 18.4403 0.938148 18.693 1.18555L22.8104 5.21684C23.0631 5.46425 23.0631 5.86528 22.8104 6.11269L18.693 10.144C18.4403 10.3914 18.0307 10.3914 17.778 10.144C17.5253 9.89657 17.5253 9.49554 17.778 9.24813L20.7909 6.29829H1.64706C1.2897 6.29829 1 6.01465 1 5.66476C1 5.31488 1.2897 5.03124 1.64706 5.03124H20.7909L17.778 2.0814C17.5253 1.83399 17.5253 1.43296 17.778 1.18555Z\" fill=\"#3E89A0\" stroke=\"#3E89A0\" stroke-width=\"1.8\" stroke-linecap=\"round\"/>\r\n            </svg>\r\n            Change, Pause, or Cancel\r\n          </div>\r\n        </div>\r\n        <span class=\"selling-plan-dropdown-label\">${this.additionalFrequencyLabel()}</span>\r\n        ${this.options?.selector_type == 'dropdown' ? this.sellingPlanDropdown(group) : ''}\r\n\r\n        <!-- TODO: Make the label have the border instead of the group -->\r\n        ${this.options?.selector_type == 'button' ? this.sellingPlanButtons(group) : ''} ${this.additionalContentText()}\r\n        <button\r\n  class=\"skio-custom_atc-button\"\r\n  @click=${this.handleATCClick}\r\n  ?disabled=${!this.selectedVariant || (this.product?.requires_selling_plan && !this.selectedSellingPlan) || this.isAdding}\r\n>\r\n  ${this.isAdding ? 'Adding\u2026' : 'GET STARTED'}\r\n</button>\r\n\r\n      </div>\r\n    `\r\n  }\r\n\r\n  showDetails() {\r\n    return html`\r\n      <details class=\"skio-details\" @mouseover=${e => this.detailsMouseover()} @mouseleave=${e => this.detailsMouseleave()}>\r\n        <summary>\r\n          <span>\r\n            <svg\r\n              xmlns=\"http://www.w3.org/2000/svg\"\r\n              width=\"18\"\r\n              height=\"18\"\r\n              viewBox=\"0 0 24 24\"\r\n              fill=\"none\"\r\n              stroke=\"currentColor\"\r\n              stroke-width=\"2\"\r\n              stroke-linecap=\"round\"\r\n              stroke-linejoin=\"round\"\r\n              class=\"ai ai-ArrowRepeat\"\r\n            >\r\n              <path d=\"M18 2l3 3-3 3\" />\r\n              <path d=\"M6 22l-3-3 3-3\" />\r\n              <path d=\"M21 5H10a7 7 0 0 0-7 7\" />\r\n              <path d=\"M3 19h11a7 7 0 0 0 7-7\" />\r\n            </svg>\r\n\r\n            How do subscriptions work?\r\n          </span>\r\n        </summary>\r\n        <div class=\"skio-details--content\">\r\n          <ul>\r\n            <li>\r\n              <div class=\"skio-icon\">\r\n                <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                  <path\r\n                    stroke-linecap=\"round\"\r\n                    stroke-linejoin=\"round\"\r\n                    d=\"M17 9V7a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2m2 4h10a2 2 0 002-2v-6a2 2 0 00-2-2H9a2 2 0 00-2 2v6a2 2 0 002 2zm7-5a2 2 0 11-4 0 2 2 0 014 0z\"\r\n                  />\r\n                </svg>\r\n              </div>\r\n              <div class=\"skio-content\">\r\n                <p>Get exclusive deals</p>\r\n                <small>Subscribe for unique discounts</small>\r\n              </div>\r\n            </li>\r\n            <li>\r\n              <div class=\"skio-icon\">\r\n                <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\r\n                  <path d=\"M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z\" />\r\n                </svg>\r\n              </div>\r\n              <div class=\"skio-content\">\r\n                <p>Edit your subscription anytime</p>\r\n                <small>Edit products, delivery schedule and more</small>\r\n              </div>\r\n            </li>\r\n            <li>\r\n              <div class=\"skio-icon\">\r\n                <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\r\n                  <path\r\n                    fill-rule=\"evenodd\"\r\n                    d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\r\n                    clip-rule=\"evenodd\"\r\n                  />\r\n                </svg>\r\n              </div>\r\n\r\n              <div class=\"skio-content\">\r\n                <p>No commitment</p>\r\n                <small>Easy to cancel if it's not for you</small>\r\n              </div>\r\n            </li>\r\n          </ul>\r\n          <div class=\"skio-details--footer\">\r\n            <a class=\"skio-manage-link\" href=\"/a/account/login\">Manage subscriptions</a>\r\n\r\n            <a style=\"letter-spacing: 0\" class=\"powered-by-skio\" href=\"https://skio.com/?utm_source=eonsincshop.myshopify.com&utm_medium=details_popover\" target=\"_blank\" rel=\"noopener\">\r\n              Powered by\r\n              <svg width=\"24\" height=\"11\" viewBox=\"0 0 24 11\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n                <path\r\n                  d=\"M4.28399 5.78801C4.12399 5.63601 3.93599 5.50801 3.71999 5.40401C3.50399 5.30001 3.27599 5.24801 3.03599 5.24801C2.85199 5.24801 2.67999 5.28401 2.51999 5.35601C2.36799 5.42801 2.29199 5.55201 2.29199 5.72801C2.29199 5.89601 2.37599 6.01601 2.54399 6.08801C2.71999 6.16001 2.99999 6.24001 3.38399 6.32801C3.60799 6.37601 3.83199 6.44401 4.05599 6.53201C4.28799 6.62001 4.49599 6.73601 4.67999 6.88001C4.86399 7.02401 5.01199 7.20001 5.12399 7.40801C5.23599 7.61601 5.29199 7.86401 5.29199 8.15201C5.29199 8.52801 5.21599 8.84801 5.06399 9.11201C4.91199 9.36801 4.71199 9.57601 4.46399 9.73601C4.22399 9.89601 3.95199 10.012 3.64799 10.084C3.34399 10.156 3.03999 10.192 2.73599 10.192C2.24799 10.192 1.76799 10.116 1.29599 9.96401C0.831989 9.80401 0.443989 9.57201 0.131989 9.26801L1.23599 8.10401C1.41199 8.29601 1.62799 8.45601 1.88399 8.58401C2.13999 8.71201 2.41199 8.77601 2.69999 8.77601C2.85999 8.77601 3.01599 8.74001 3.16799 8.66801C3.32799 8.58801 3.40799 8.45201 3.40799 8.26001C3.40799 8.07601 3.31199 7.94001 3.11999 7.85201C2.92799 7.76401 2.62799 7.67201 2.21999 7.57601C2.01199 7.52801 1.80399 7.46401 1.59599 7.38401C1.38799 7.30401 1.19999 7.19601 1.03199 7.06001C0.871989 6.92401 0.739989 6.75601 0.635989 6.55601C0.531989 6.35601 0.479989 6.11601 0.479989 5.83601C0.479989 5.47601 0.555989 5.17201 0.707989 4.92401C0.859989 4.66801 1.05599 4.46001 1.29599 4.30001C1.53599 4.14001 1.79999 4.02401 2.08799 3.95201C2.38399 3.87201 2.67599 3.83201 2.96399 3.83201C3.41199 3.83201 3.84799 3.90401 4.27199 4.04801C4.70399 4.18401 5.06799 4.39201 5.36399 4.67201L4.28399 5.78801Z\"\r\n                  fill=\"black\"\r\n                />\r\n                <path d=\"M12.8481 10H10.4121L8.45615 7.13201H8.42015V10H6.44015V0.928009H8.42015V6.44801H8.45615L10.3641 4.02401H12.7521L10.4481 6.72401L12.8481 10Z\" fill=\"black\" />\r\n                <path\r\n                  d=\"M15.7009 2.11601C15.7009 2.26801 15.6689 2.41201 15.6049 2.54801C15.5489 2.67601 15.4689 2.78801 15.3649 2.88401C15.2689 2.98001 15.1489 3.05601 15.0049 3.11201C14.8689 3.16801 14.7249 3.19601 14.5729 3.19601C14.2529 3.19601 13.9849 3.09201 13.7689 2.88401C13.5529 2.66801 13.4449 2.41201 13.4449 2.11601C13.4449 1.97201 13.4729 1.83601 13.5289 1.70801C13.5849 1.57201 13.6649 1.45601 13.7689 1.36001C13.8729 1.26401 13.9929 1.18801 14.1289 1.13201C14.2649 1.06801 14.4129 1.03601 14.5729 1.03601C14.7249 1.03601 14.8689 1.06401 15.0049 1.12001C15.1489 1.17601 15.2689 1.25201 15.3649 1.34801C15.4689 1.44401 15.5489 1.56001 15.6049 1.69601C15.6689 1.82401 15.7009 1.96401 15.7009 2.11601ZM13.5889 10V4.02401H15.5569V10H13.5889Z\"\r\n                  fill=\"black\"\r\n                />\r\n                <path\r\n                  d=\"M23.4516 6.98801C23.4516 7.47601 23.3636 7.92001 23.1876 8.32001C23.0116 8.71201 22.7716 9.04801 22.4676 9.32801C22.1636 9.60001 21.8116 9.81201 21.4116 9.96401C21.0116 10.116 20.5836 10.192 20.1276 10.192C19.6796 10.192 19.2516 10.116 18.8436 9.96401C18.4436 9.81201 18.0916 9.60001 17.7876 9.32801C17.4916 9.04801 17.2556 8.71201 17.0796 8.32001C16.9036 7.92001 16.8156 7.47601 16.8156 6.98801C16.8156 6.50001 16.9036 6.06001 17.0796 5.66801C17.2556 5.27601 17.4916 4.94401 17.7876 4.67201C18.0916 4.40001 18.4436 4.19201 18.8436 4.04801C19.2516 3.90401 19.6796 3.83201 20.1276 3.83201C20.5836 3.83201 21.0116 3.90401 21.4116 4.04801C21.8116 4.19201 22.1636 4.40001 22.4676 4.67201C22.7716 4.94401 23.0116 5.27601 23.1876 5.66801C23.3636 6.06001 23.4516 6.50001 23.4516 6.98801ZM21.5556 6.98801C21.5556 6.79601 21.5236 6.60801 21.4596 6.42401C21.3956 6.24001 21.3036 6.08001 21.1836 5.94401C21.0636 5.80001 20.9156 5.68401 20.7396 5.59601C20.5636 5.50801 20.3596 5.46401 20.1276 5.46401C19.8956 5.46401 19.6916 5.50801 19.5156 5.59601C19.3396 5.68401 19.1916 5.80001 19.0716 5.94401C18.9596 6.08001 18.8716 6.24001 18.8076 6.42401C18.7516 6.60801 18.7236 6.79601 18.7236 6.98801C18.7236 7.18001 18.7516 7.36801 18.8076 7.55201C18.8716 7.73601 18.9636 7.90401 19.0836 8.05601C19.2036 8.20001 19.3516 8.31601 19.5276 8.40401C19.7036 8.49201 19.9076 8.53601 20.1396 8.53601C20.3716 8.53601 20.5756 8.49201 20.7516 8.40401C20.9276 8.31601 21.0756 8.20001 21.1956 8.05601C21.3156 7.90401 21.4036 7.73601 21.4596 7.55201C21.5236 7.36801 21.5556 7.18001 21.5556 6.98801Z\"\r\n                  fill=\"black\"\r\n                />\r\n              </svg>\r\n            </a>\r\n          </div>\r\n        </div>\r\n      </details>\r\n    `\r\n  }\r\n\r\n  // !SECTION: Element Templates\r\n\r\n  render() {\r\n    if (!this.viable() || this.options?.layout === 'hidden') {\r\n      return this.debug ? this.setupMode() : ''\r\n    }\r\n\r\n    if (this.selectedVariant.selling_plan_allocations.length === 0 && !this.options?.show_without_subscription) {\r\n      return this.debug ? this.setupMode() : ''\r\n    }\r\n\r\n    return html`\r\n      ${this.debug ? this.setupMode() : null}\r\n\r\n        <legend id=\"skio-plan-picker-title\" class=\"skio-title\">Choose Your Offer:</legend>\r\n<div class='size-option-selector'></div>\r\n      <fieldset class=\"skio-plan-picker\" role=\"radiogroup\" aria-labelledby=\"skio-plan-picker-legend\">\r\n        <legend id=\"skio-plan-picker-legend\" class=\"${!this.options?.show_legend ? 'sr-only' : ''}\">${unsafeHTML(this.options?.legend_content)}</legend>\r\n\r\n        <div class=\"${!this.options?.onetime_first ? 'skio-plan-picker-container' : 'skio-plan-picker-container-reverse'}\">\r\n          ${this.availableSellingPlanGroups?.length\r\n            ? this.availableSellingPlanGroups.map(\r\n                (group, index) => html`\r\n                  <div class=\"group-container ${this.selectedSellingPlanGroup == group ? 'group-container--selected' : ''}\">\r\n                    <div class=\"top-skio-savings show\">\r\n                      ${this.discountText(group.selected_selling_plan) ?? ''}\r\n                    </div>\r\n\r\n                    <input\r\n                      id=\"group-${index}-${this.key}\"\r\n                      class=\"group-input\"\r\n                      disabled\r\n                      name=\"skio-group-${this.key}\"\r\n                      type=\"radio\"\r\n                      value=\"${group.id}\"\r\n                      @change=${() => this.selectSellingPlanGroup(group)}\r\n                      ?checked=${this.selectedSellingPlanGroup == group}\r\n                    />\r\n\r\n                    <label class=\"group-label\" for=\"group-${index}-${this.key}\">\r\n                      <div class=\"group-topline\">\r\n                        ${this.options?.layout == 'horizontal' ? '' : this.options?.show_radio_selector ? this.radioTemplate() : ''}\r\n\r\n                        <div class=\"group-title subscription-group full-width\">\r\n                          Subscribe & Save\r\n                        </div>\r\n                          <div class=\"skio-price full-widths\" aria-live=\"polite\">\r\n                            <div class=\"subscription_savings\">\r\n\r\n                              <div class=\"skio-savings hidden\">\r\n                                ${this.discountText(group.selected_selling_plan)\r\n                                  ? html` <span class=\"savings ${this.options?.discount_style} ${this.product.id === 9169289183453 ? 'badge-yellow' : 'test'}\"> ${this.discountText(group.selected_selling_plan)} </span> `\r\n                                  : html``}\r\n                              </div>\r\n                              <div class=\"selected_plan__price ${this.product.id ===9022647795933 ? \"selected_plan__price_normal\" : '' }\">\r\n                              <span class=\"plan-price_main-price\">\r\n                                ${this.price(group.selected_selling_plan)}\r\n                                <span class=\"product-price\">\r\n                                  ${this.money(this.selectedVariant.price)}\r\n                                </span>\r\n                                 </span>\r\n                                ${this.selectedSellingPlanGroup === group\r\n                                  ? html`<div class=\"per-piece-text\">${this.perPieceTextSubscribe(group.selected_selling_plan)}</div>`\r\n                                  : null}\r\n                              </div>\r\n\r\n\r\n                              </div>\r\n                        </div>\r\n                      </div>\r\n\r\n                      ${this.options?.layout == 'vertical' && this.options?.dropdownPosition == 'inside' ? this.groupContent(group) : ''}\r\n                    </label>\r\n                  </div>\r\n                  ${this.selectedSellingPlanGroup == group ? (this.options?.layout == 'horizontal' || this.options?.dropdownPosition == 'underneath' ? this.groupContent(group) : '') : ''}\r\n                `\r\n              )\r\n            : ''}\r\n\r\n\r\n          ${!this.product.requires_selling_plan\r\n            ? html`\r\n                <div\r\n                  class=\"group-container ${this.selectedSellingPlanGroup == null ? 'group-container--selected' : ''}\"\r\n                  @click=${() => this.selectSellingPlanGroup(null)}\r\n                >\r\n                  <input\r\n                    id=\"one-time-${this.key}\"\r\n                    class=\"group-input\"\r\n                    name=\"skio-group-${this.key}\"\r\n                    type=\"radio\"\r\n                    disabled\r\n                    value=\"One-Time Purchase\"\r\n                    ?checked=${!this.selectedSellingPlanGroup}\r\n                    @change=${() => this.selectSellingPlanGroup(null)}\r\n                  />\r\n\r\n                  <label class=\"group-label\" for=\"one-time-${this.key}\">\r\n                    <div class=\"group-topline\">\r\n                      ${this.options?.layout == 'horizontal' ? '' : this.options?.show_radio_selector ? this.radioTemplate() : ''}\r\n\r\n                      <div class=\"group-title\">Try Once</div>\r\n\r\n\r\n                      <div class=\"\r\n                          skio-price one-time__price_text\r\n                          ${this.product.id === 9022647795933 ? \"one-time__price_text_normal\" : '' }\r\n                          ${this.product.id === 8752119120093 ? \"gum_skio_widget\" : '' }\r\n                        \" aria-live=\"polite\">\r\n\r\n                        <span class=\"one-time__price_prefix\">Starting at </span>\r\n                        ${this.money(this.selectedVariant.price)}\r\n                        ${this.selectedSellingPlanGroup == null\r\n                          ? html`<div class=\"per-piece-text\">${this.perPieceTextOneTime()}</div>`\r\n                          : null}\r\n                      </div>\r\n\r\n\r\n                    </div>\r\n                    <div class=\"group-content\">\r\n\r\n                      <div class='icon-group-wrapper2'>\r\n                      <div class=\"subscribe-order plan-icon-title2\">\r\n  ${this.isVarietyPack()\r\n    ? html`\r\n        <img\r\n          src=\"https://cdn.shopify.com/s/files/1/0713/6113/4813/files/Seasonal.svg?v=1777390130\"\r\n          alt=\"\"\r\n          width=\"34\"\r\n          height=\"34\"\r\n          style=\"object-fit:contain;border-radius:6px;flex-shrink:0;\"\r\n        />\r\n       <span style=\"margin-left:10px;\">Top flavors & seasonal releases</span>\r\n        `\r\n          : html`\r\n              <svg width=\"37\" height=\"37\" viewBox=\"0 0 37 37\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n                <path d=\"M9.15234 9.84924L27.1523 27.8492\" stroke=\"#E60000\" stroke-width=\"3\"/>\r\n                <path d=\"M9.15234 27.8492L27.1523 9.84924\" stroke=\"#E60000\" stroke-width=\"3\"/>\r\n              </svg>\r\n              No ${this.discountText(this.availableSellingPlanGroups?.[0]?.selected_selling_plan, true)} Discount.\r\n            `}\r\n        </div>\r\n\r\n                        <div class=\"subscribe-order plan-icon-title2\">\r\n                          <svg width=\"37\" height=\"37\" viewBox=\"0 0 37 37\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n                            <path d=\"M9.15234 9.84924L27.1523 27.8492\" stroke=\"#E60000\" stroke-width=\"3\"/>\r\n                            <path d=\"M9.15234 27.8492L27.1523 9.84924\" stroke=\"#E60000\" stroke-width=\"3\"/>\r\n                          </svg>\r\n                          No surprise gifts & goodies\r\n                        </div>\r\n                      </div>\r\n                    ${this.selectedSellingPlanGroup == null\r\n  ? html`\r\n      <button\r\n        class=\"skio-custom_atc-button\"\r\n        @click=${(e) => { e.stopPropagation(); this.handleATCClick(e); }}\r\n        ?disabled=${!this.selectedVariant || this.isAdding}\r\n      >\r\n        ${this.isAdding ? 'Adding\u2026' : 'TRY NOW'}\r\n      </button>\r\n    `\r\n  : ''}\r\n\r\n                  </label>\r\n                </div>\r\n              `\r\n            : ''}\r\n          ${this.options?.show_details == true ? this.showDetails() : ''}\r\n        </div>\r\n      </fieldset>\r\n    `\r\n  }\r\n\r\n\r\n\r\n  async fetchRules() {\r\n    if (sessionStorage.getItem('skio-discount-rules')) {\r\n      return JSON.parse(sessionStorage.getItem('skio-discount-rules'))\r\n    } else {\r\n      const rules = await fetch(`https://api.skio.com/storefront-http/get-rules-by-domain-or-hostname?domain=${window?.Shopify?.shop}`)\r\n        .then(response => response.json())\r\n        .then(response => {\r\n          return response.rules.filter(rule => rule.type !== 'surpriseDelight').sort((a, b) => a.minQuantityToDiscount - b.minQuantityToDiscount)\r\n        })\r\n\r\n      sessionStorage.setItem('skio-discount-rules', JSON.stringify(rules))\r\n      return rules\r\n    }\r\n  }\r\n\r\n  eligibleItemCount(rule) {\r\n    if (!this.cart?.items) return this.quantity\r\n\r\n    let cartItems = Number(\r\n      this.cart?.items.reduce((aggregate, item) => (rule?.productVariantIds.some(gid => gid.includes(item.id) && item.selling_plan_allocation) ? aggregate + item.quantity : aggregate), 0)\r\n    )\r\n\r\n    return cartItems + this.quantity\r\n  }\r\n\r\n  getRule() {\r\n    let largestMinQuantity = {\r\n      value: -1,\r\n      index: -1,\r\n    }\r\n\r\n    this.rules.forEach((rule, index) => {\r\n      if (rule.code && largestMinQuantity.value < rule.minQuantityToDiscount) {\r\n        if (rule.minQuantityToDiscount <= this.eligibleItemCount(rule)) {\r\n          largestMinQuantity.value = rule.minQuantityToDiscount\r\n          largestMinQuantity.index = index\r\n        }\r\n      }\r\n    })\r\n\r\n    this.rule = largestMinQuantity.index > -1 ? this.rules[largestMinQuantity.index] : null\r\n  }\r\n\r\n bindCartEvents() {\r\n  document.addEventListener('CartUpdated', event => {\r\n      this.cart = event.detail\r\n    })\r\n}\r\n\r\n  bindFormEvents() {\r\n    this.form = document.querySelector(`#${this.options?.form_id}`) || this.closest('form[action*=\"/cart/add\"]')\r\n\r\n    if (!this.form) {\r\n      return\r\n    }\r\n\r\n    this.variantInput = this.form.querySelector('[name=\"id\"]')\r\n\r\n    if (this.variantInput) {\r\n      this.variantInput.addEventListener('change', e => {\r\n        const newId = e.target.value;\r\n        const variants = this.product?.variants || [];\r\n        const varietyVariant = this.getVarietyPackVariant();\r\n        const nativeVarietySelected = Boolean(varietyVariant && this.isNativeVarietySelected());\r\n\r\n        let newVariant = variants.find(\r\n          variant => String(variant.id) === String(newId)\r\n        );\r\n\r\n        // Recover immediately if the theme briefly resolves an invalid Variety Pack combination.\r\n        if (\r\n          nativeVarietySelected &&\r\n          String(newVariant?.id) !== String(varietyVariant.id)\r\n        ) {\r\n          newVariant = varietyVariant;\r\n          this.lastSelectedPackLabel = '4 Packs';\r\n          this.syncVariantInput(varietyVariant.id);\r\n        }\r\n\r\n        this.varietyPackOnly = Boolean(\r\n          varietyVariant &&\r\n          (\r\n            nativeVarietySelected ||\r\n            String(newVariant?.id) === this.varietyPackVariantId\r\n          )\r\n        );\r\n\r\n        if (newVariant && this.lastSelectedPackLabel) {\r\n          const wantedPack = this.lastSelectedPackLabel.trim().toLowerCase();\r\n          const hasFlavorAxis = (this.product?.options?.length || 0) > 1;\r\n\r\n          let sameFlavorWithPack = null;\r\n\r\n          if (hasFlavorAxis) {\r\n            // flavor + pack (option1 + option2)\r\n            sameFlavorWithPack = variants.find(variant =>\r\n              (variant.option1 || '') === (newVariant.option1 || '') &&\r\n              this.packLabelForVariant(variant).toLowerCase() === wantedPack\r\n            );\r\n          }\r\n\r\n          // fallback: just match on pack label (for size-only products)\r\n          if (!sameFlavorWithPack) {\r\n            sameFlavorWithPack = variants.find(\r\n              variant => this.packLabelForVariant(variant).toLowerCase() === wantedPack\r\n            );\r\n          }\r\n\r\n          if (sameFlavorWithPack) {\r\n            newVariant = sameFlavorWithPack;\r\n\r\n            if (String(e.target.value) !== String(sameFlavorWithPack.id)) {\r\n              this.syncVariantInput(sameFlavorWithPack.id);\r\n            }\r\n          }\r\n        }\r\n\r\n        this.selectedVariant = newVariant;\r\n        this.variantChanged = true;\r\n        this.applyVarietyPackVisibility();\r\n        this.scheduleBlockSwatchUpdate();\r\n      });\r\n    }\r\n\r\n\r\n\r\n    const qtyInput = this.form.querySelector('[name=\"quantity\"]')\r\n  if (qtyInput) {\r\n    const syncQty = () => (this.quantity = Math.max(1, parseInt(qtyInput.value || '1', 10)))\r\n    syncQty()\r\n    qtyInput.addEventListener('change', syncQty)\r\n    qtyInput.addEventListener('input', syncQty)\r\n  }\r\n  }\r\n\r\n  detailsMouseover() {\r\n    let details = this.renderRoot.querySelector('.skio-details')\r\n    let summary = this.renderRoot.querySelector('.skio-details summary')\r\n    if (!details.hasAttribute('open') && this.showDetailsHover == false) {\r\n      summary.click()\r\n      this.showDetailsHover = true\r\n    }\r\n  }\r\n\r\n  detailsMouseleave() {\r\n    let details = this.renderRoot.querySelector('.skio-details')\r\n    let summary = this.renderRoot.querySelector('.skio-details summary')\r\n    if (details.hasAttribute('open') && this.showDetailsHover == true) {\r\n      summary.click()\r\n      this.showDetailsHover = false\r\n    }\r\n  }\r\n\r\n  updated(changed) {\r\n    if (!this.viable()) return\r\n\r\n    if (changed.has('product') && this.product) {\r\n      this.key = this.key ? this.key : this.product.id\r\n    }\r\n\r\n    if (changed.has('selectedVariant') && this.selectedVariant) {\r\n      const filteredSellingPlanGroups = this.product.selling_plan_groups.filter(\r\n        selling_plan_group =>\r\n          selling_plan_group.app_id === 'SKIO' && !selling_plan_group.name.toLowerCase().includes('hidden-') && !selling_plan_group.name.toLowerCase().includes('dynamic box subscription')\r\n      )\r\n\r\n      //update availableSellingPlanGroups based on skioSellingPlanGroups and selectedVariant.id\r\n      this.availableSellingPlanGroups = filteredSellingPlanGroups.filter(selling_plan_group =>\r\n        selling_plan_group.selling_plans.some(selling_plan =>\r\n          this.selectedVariant.selling_plan_allocations.some(selling_plan_allocation => selling_plan_allocation.selling_plan_id === selling_plan.id)\r\n        )\r\n      )\r\n\r\n      if (this.options?.combine_groups) {\r\n        this.availableSellingPlanGroups = [\r\n          {\r\n            name: this.options?.combined_group_name,\r\n            selling_plans: this.availableSellingPlanGroups.flatMap(group => group.selling_plans),\r\n            id: 'combined_group',\r\n            app_id: 'SKIO',\r\n          },\r\n        ]\r\n      }\r\n\r\n      // TODO: Select proper group depending on what selling plan is selected\r\n\r\n      //update selectedSellingPlan value\r\n      if (this.availableSellingPlanGroups?.length) {\r\n        const url = new URL(window.location.href)\r\n        const urlSelectedSellingPlanId = url.searchParams.get('selling_plan')\r\n\r\n        //update each group with a default selected_selling_plan\r\n        this.availableSellingPlanGroups.forEach(group => {\r\n          const availableSellingPlans = this.getAvailableSellingPlans(group)\r\n\r\n          const urlSelectedSellingPlan = availableSellingPlans.find(plan => plan.id == urlSelectedSellingPlanId)\r\n          const nameSelectedSellingPlan = availableSellingPlans.find(plan => plan.name === this.selectedSellingPlan?.name)\r\n          const defaultSellingPlan =\r\n            this.options?.default_subscription && this.options.default_subscription.trim() !== ''\r\n              ? availableSellingPlans.find(plan => plan.name.toLowerCase().includes(this.options.default_subscription.toLowerCase()))\r\n              : null\r\n\r\n          group.selected_selling_plan = urlSelectedSellingPlan || nameSelectedSellingPlan || defaultSellingPlan || availableSellingPlans[0]\r\n\r\n          const isAnyPlanSelected = urlSelectedSellingPlan || nameSelectedSellingPlan || defaultSellingPlan\r\n\r\n          group.selected = !!isAnyPlanSelected\r\n        })\r\n\r\n        if ((!this.variantChanged && this.options?.start_onetime == false) || this.product.requires_selling_plan == true || urlSelectedSellingPlanId || this.selectedSellingPlan) {\r\n          let selectedSellingPlanGroup = this.availableSellingPlanGroups.find(group => group.selected) || this.availableSellingPlanGroups[0]\r\n          let selectedSellingPlanId = selectedSellingPlanGroup?.selected_selling_plan.id\r\n          if (this.options?.onetime_first == true) {\r\n            this.selectSellingPlanGroup(null)\r\n          } else {\r\n            this.selectSellingPlan(selectedSellingPlanId)\r\n          }\r\n        } else {\r\n          this.selectSellingPlanGroup(null)\r\n        }\r\n      } else {\r\n        this.selectSellingPlanGroup(null)\r\n      }\r\n    }\r\n\r\n    if (changed.has('selectedSellingPlan')) {\r\n      //dispatch CustomEvent to tell that this specific plan picker was updated, and pass the selectedSellingPlan\r\n      const event = new CustomEvent(`skio::update-selling-plan`, {\r\n        bubbles: true,\r\n        composed: true,\r\n        detail: {\r\n          variant: this.selectedVariant,\r\n          sellingPlan: this.selectedSellingPlan,\r\n          key: this.key,\r\n        },\r\n      })\r\n\r\n      this.dispatchEvent(event)\r\n\r\n      this.dispatchEvent(\r\n        new CustomEvent('change', {\r\n          detail: { value: this.selectedSellingPlan?.id },\r\n        })\r\n      )\r\n    }\r\n\r\n    this.updateForm()\r\n    this.updateExternalPrice()\r\n\r\n    if (!this.disableUrl) {\r\n      this.updateURLParams()\r\n    }\r\n\r\n    if (changed.has('quantity')) {\r\n      this.getRule()\r\n    }\r\n\r\n    if (changed.has('cart')) {\r\n      this.getRule()\r\n    }\r\n\r\n    if (\r\n      changed.has('product') ||\r\n      changed.has('selectedVariant') ||\r\n      changed.has('availableSellingPlanGroups') ||\r\n      changed.has('selectedSellingPlan') ||\r\n      changed.has('selectedSellingPlanGroup') ||\r\n      changed.has('rule') ||\r\n      changed.has('additionalDiscount')\r\n    ) {\r\n      const sizeSelector = this.renderRoot?.querySelector('.size-option-selector');\r\n\r\n      if (sizeSelector && !sizeSelector.hasChildNodes()) {\r\n        this.moveSizeVariantPicker();\r\n      }\r\n\r\n      this.scheduleBlockSwatchUpdate();\r\n    }\r\n\r\n    this.updateExternalElements()\r\n  }\r\n\r\n  updateExternalElements() {\r\n    document.querySelectorAll(`[skio-price][skio-key=\"${this.key}\"]`).forEach(el => {\r\n      el.innerHTML = this.price(this.selectedSellingPlan)\r\n    })\r\n\r\n    document.querySelectorAll(`[skio-subscription-content]`).forEach(el => {\r\n      el.style.display = this.selectedSellingPlan ? 'block' : 'none'\r\n    })\r\n  }\r\n\r\n  // SECTION: Utility Functions\r\n  log(...args) {\r\n    args.unshift(`%c[skio plan picker][${this.key}]`, 'color: #8770f2;')\r\n    console.log.apply(console, args)\r\n  }\r\n\r\n  error(...args) {\r\n    args.unshift(`%c [skio plan picker][${this.key}]`, 'color: #ff0000')\r\n    console.error.apply(console, args)\r\n  }\r\n\r\n  appendOrdinalSuffix(num) {\r\n    const j = num % 10,\r\n      k = num % 100\r\n    if (j == 1 && k != 11) {\r\n      return num + 'st'\r\n    }\r\n    if (j == 2 && k != 12) {\r\n      return num + 'nd'\r\n    }\r\n    if (j == 3 && k != 13) {\r\n      return num + 'rd'\r\n    }\r\n    return num + 'th'\r\n  }\r\n\r\n  money(price) {\r\n    return this.moneyFormatter.format(price / 100.0)\r\n  }\r\n\r\n  viable() {\r\n    const errors = []\r\n\r\n    const sellingPlanInput = this.querySelector('input[name=selling_plan]')\r\n    if (!sellingPlanInput) {\r\n      errors.push('Missing selling plan input')\r\n    }\r\n\r\n    if (!this.product) {\r\n      errors.push('No product found. Please pass a product or productHandle to the skio-plan-picker component.')\r\n    }\r\n    if (!this.selectedVariant) {\r\n      errors.push('No variant found. Please pass a product or productHandle to the skio-plan-picker component.')\r\n    }\r\n    if (!this.form) {\r\n      errors.push('No form found. Please add a form_id to the plan picker through the Shopify customizer or ensure that the element is in a form that has an input with name=\"id\".')\r\n    }\r\n    if (!this.variantInput) {\r\n      errors.push('No variant input found. Please add a form_id to the plan picker through the Shopify customizer or ensure that the element is in a form that has an input with name=\"id\"')\r\n    }\r\n\r\n    if (errors.length == 0) return true\r\n\r\n    this.error('Errors', errors)\r\n    return false\r\n  }\r\n\r\n  getAvailableSellingPlans(group) {\r\n    let availableSellingPlans = group.selling_plans.filter(selling_plan =>\r\n      this.selectedVariant.selling_plan_allocations.some(selling_plan_allocation => selling_plan_allocation.selling_plan_id === selling_plan.id)\r\n    )\r\n\r\n    return availableSellingPlans\r\n  }\r\n\r\n  // !SECTION: Utility Functions\r\n\r\n  // Update selected selling plan group; called on click of group-container element\r\n  selectSellingPlanGroup(group) {\r\n    this.selectedSellingPlanGroup = group\r\n    this.selectedSellingPlan = group?.selected_selling_plan\r\n    const selectedOption = this.renderRoot.querySelectorAll('.group-container')[0];\r\n    if (!group) {\r\n      selectedOption.style.position = 'sticky';\r\n      selectedOption.style.top = '0';\r\n      setTimeout(() => {\r\n        selectedOption.style.position = '';\r\n        selectedOption.style.top = '';\r\n      }, 200);\r\n    }\r\n  }\r\n\r\n  // Update selected selling plan; called on change of skio-frequency select element\r\n  selectSellingPlan(selling_plan_id) {\r\n    const selectedGroup = this.availableSellingPlanGroups.find(group => group.selling_plans.some(plan => plan.id == selling_plan_id))\r\n    const selectedSellingPlan = selectedGroup.selling_plans.find(plan => plan.id == selling_plan_id)\r\n\r\n    selectedGroup.selected_selling_plan = selectedSellingPlan\r\n    this.selectedSellingPlanGroup = selectedGroup\r\n    this.selectedSellingPlan = selectedSellingPlan\r\n\r\n    // Save to localStorage instead of URL\r\n    this.saveSellingPlanToStorage()\r\n  }\r\n\r\n  updateExternalPrice() {\r\n    document.querySelectorAll(this.options?.external_price_selector).forEach(el => {\r\n      this.selectedSellingPlan ? (el.innerHTML = this.price(this.selectedSellingPlan)) : (el.innerHTML = this.money(this.selectedVariant.price))\r\n    })\r\n    document.querySelectorAll(this.options?.external_price_selector).forEach(el => {\r\n      this.selectedSellingPlan ? (el.innerHTML = this.price(this.selectedSellingPlan) + ' ' + this.currency) : (el.innerHTML = this.money(this.selectedVariant.price) + ' ' + this.currency)\r\n    })\r\n  }\r\n\r\n  additionalFrequencyLabel() {\r\n    if (!this.options?.additional_frequency_label || this.options?.additional_frequency_label == '') return\r\n\r\n    return unsafeHTML(this.options?.additional_frequency_label)\r\n  }\r\n\r\n  additionalContentText() {\r\n    if (!this.options?.additional_subscription_content || this.options?.additional_subscription_content == '') return\r\n\r\n    return unsafeHTML(\r\n      this.options?.additional_subscription_content\r\n        .replaceAll('[discount]', this.options?.discount_format === 'absolute' ? this.money(this.discount(this.selectedSellingPlan).absolute) : this.discount(this.selectedSellingPlan).percent + '%')\r\n        .replaceAll('[future_price_adjustments]', this.postCheckoutDiscountsText(this.selectedSellingPlan) || '')\r\n    )\r\n  }\r\n\r\n  // SECTION: Discount Functions\r\n  // Calculates discount based on selling_plan.price_adjustments, returns { percent, amount } of selling plan discount\r\n  discountText(selling_plan, titleCase = false) {\r\n    const discount = this.discount(selling_plan)\r\n\r\n    const hasInvalidDiscount = Object.values(discount).some(value => {\r\n      const stringValue = String(value)\r\n\r\n      return (\r\n        value === 0 ||\r\n        value === Infinity ||\r\n        Number.isNaN(value) ||\r\n        stringValue.includes('-')\r\n      )\r\n    })\r\n\r\n    if (hasInvalidDiscount) {\r\n      return ''\r\n    }\r\n\r\n    let text = 'Get ' + (\r\n      this.options?.discount_format === 'absolute'\r\n        ? this.money(discount.absolute)\r\n        : `${discount.percent}% OFF`\r\n    )\r\n\r\n    if (titleCase) {\r\n      text = this.toTitleCase(text).replace(/^Get\\s+/i, '')\r\n    }\r\n\r\n    return unsafeHTML(\r\n      text.replaceAll(\r\n        '[future_price_adjustments]',\r\n        selling_plan ? this.postCheckoutDiscountsText(selling_plan) || '' : ''\r\n      )\r\n    )\r\n  }\r\n\r\n  // UMG progo: NEW method (nothing removed \u2014 added alongside discountText).\r\n  // Future-order discount: when the plan is 30% off, future orders are shown as 20% off.\r\n  // Any other discount falls through to the normal discountText output unchanged.\r\n  futureOrderDiscountText(selling_plan, titleCase = true) {\r\n    const discount = this.discount(selling_plan)\r\n    if (Number(discount.percent) === 30) {\r\n      return titleCase ? '20% Off' : '20% OFF'\r\n    }\r\n    return this.discountText(selling_plan, titleCase)\r\n  }\r\n\r\n  toTitleCase(str) {\r\n    return String(str)\r\n      .toLowerCase()\r\n      .replace(/\\b[a-z]/g, char => char.toUpperCase())\r\n  }\r\n\r\n  discount(selling_plan) {\r\n    if (!selling_plan) return { percent: 0, amount: 0 }\r\n    return this.getDiscountFromPriceAdjustment(selling_plan, selling_plan.price_adjustments[0])\r\n  }\r\n\r\n  postCheckoutPriceAdjustments(selling_plan) {\r\n    const { price_adjustments } = selling_plan\r\n    const postCheckoutPriceAdjustments = price_adjustments.filter(({ position }) => position !== 1)\r\n    const discounts = postCheckoutPriceAdjustments.map(price_adjustment => this.getDiscountFromPriceAdjustment(selling_plan, price_adjustment))\r\n    return discounts\r\n  }\r\n\r\n  postCheckoutDiscountsText(sellingPlan = this.selectedSellingPlan) {\r\n    if (!sellingPlan || !this.options?.future_price_adjustments_text || this.future_price_adjustments_text == '') return\r\n\r\n    const postCheckoutPriceAdjustments = this.postCheckoutPriceAdjustments(sellingPlan)\r\n    if (!postCheckoutPriceAdjustments.length) return\r\n\r\n    return postCheckoutPriceAdjustments.map((discount, index) =>\r\n      this.options?.future_price_adjustments_text\r\n        .replaceAll('[discount]', this.options?.discount_format === 'absolute' ? this.money(discount.absolute) : discount.percent + '%')\r\n        .replaceAll('[order_count]', index + 1)\r\n        .replaceAll('[order_count_ordinal]', this.appendOrdinalSuffix(index + 1))\r\n    )\r\n  }\r\n\r\n  getDiscountFromPriceAdjustment(selling_plan, price_adjustment) {\r\n    const discount = {\r\n      percent: 0,\r\n      amount: 0,\r\n      absolute: 0,\r\n    }\r\n\r\n    let multiplier = 1\r\n\r\n    let sellingPlanGroup = this.product.selling_plan_groups.find(group => group.selling_plans.some(plan => plan.id == selling_plan.id))\r\n\r\n    if (sellingPlanGroup?.name === 'Prepaid') {\r\n      const str = selling_plan.name // replace with your string\r\n      const intervalDate = /\\b\\d+\\s*(days|weeks|months|years)\\b/gi\r\n      const intervalDateMatches = str.match(intervalDate)\r\n\r\n      if (intervalDateMatches?.length) {\r\n        const intervals = intervalDateMatches[0].match(/\\d+/g)\r\n        multiplier = intervals[0] / (intervals[1] || 1)\r\n        multiplier = multiplier > 1 ? multiplier : 1\r\n      }\r\n    }\r\n\r\n    const price = this.selectedVariant.price\r\n    const compareAtPrice = this.selectedVariant.compare_at_price && this.selectedVariant.compare_at_price > price ? this.selectedVariant.compare_at_price : price\r\n\r\n    switch (price_adjustment.value_type) {\r\n      case 'percentage':\r\n        discount.percent = price_adjustment.value\r\n        discount.absolute = Math.round((price * price_adjustment.value) / 100.0)\r\n        discount.amount = Math.round((price * price_adjustment.value) / 100.0)\r\n        break\r\n      case 'fixed_amount':\r\n        discount.percent = Math.round(((price_adjustment.value * 1.0) / price) * 100.0)\r\n        discount.absolute = price_adjustment.value\r\n        discount.amount = price_adjustment.value\r\n        break\r\n      case 'price':\r\n        discount.percent = Math.round((((compareAtPrice * multiplier - price_adjustment.value) * 1.0) / (compareAtPrice * multiplier)) * 100.0)\r\n        discount.absolute = compareAtPrice * multiplier - price_adjustment.value\r\n        discount.amount = price - price_adjustment.value\r\n        break\r\n    }\r\n\r\n    return discount\r\n  }\r\n\r\n  shouldRoundPlanPriceUp() {\r\n  return [\r\n    '46218256875741',\r\n    '46218262905053',\r\n    '46218265657565'\r\n  ].includes(String(this.selectedVariant?.id))\r\n}\r\n\r\ndisplayPlanPrice(selling_plan) {\r\n  if (this.shouldRoundPlanPriceUp()) {\r\n    const discountPercent = this.discount(selling_plan).percent || 30\r\n    const multiplier = (100 - discountPercent) / 100\r\n    const roundedCents = Math.ceil(this.selectedVariant.price * multiplier)\r\n\r\n    return this.money(roundedCents)\r\n  }\r\n\r\n  return this.price(selling_plan)\r\n}\r\n\r\n\r\n  //FINDME !SECTION: Discount Functions - OLD\r\n  price(selling_plan, formatted = true) {\r\n    if (this.rule) {\r\n      return formatted\r\n        ? this.money(this.selectedVariant.price - this.discount(selling_plan).amount - this.selectedVariant.price * (this.rule.discountAmount / 100))\r\n        : this.selectedVariant.price - this.discount(selling_plan).amount - this.selectedVariant.price * (this.rule.discountAmount / 100)\r\n    }\r\n\r\n    return formatted ? this.money(this.selectedVariant.price - this.discount(selling_plan).amount) : this.selectedVariant.price - this.discount(selling_plan).amount\r\n}\r\n\r\n\r\n// FINDME@ !SECTION: Discount Functions - NEW\r\n// price(selling_plan, formatted = true) {\r\n//   // extra % from metafield (e.g., data-plan=\"10\")\r\n//   const tag = Array.from(document.scripts).find(s => s.src.includes('skio-plan-picker-component.js'));\r\n//   const extraPct = Number(tag?.dataset?.plan || 0); // 0 if blank\r\n\r\n//   // current plan discount info\r\n//   const d = this.discount(selling_plan); // { percent, amount, absolute }\r\n//   const planPct = Number(d?.percent || 0);\r\n\r\n//   // \uD83D\uDC49 additive stacking: 10% + 10% = 20% (cap at 100)\r\n//   const combinedPct = Math.min(planPct + extraPct, 100);\r\n\r\n//   // price after selling-plan + extra metafield %\r\n//   let cents = Math.round(this.selectedVariant.price * (1 - combinedPct / 100));\r\n\r\n//   // keep your existing rule discount behavior (subtract % of original price)\r\n//   if (this.rule) {\r\n//     cents = Math.max(0, Math.round(\r\n//       cents - (this.selectedVariant.price * (this.rule.discountAmount / 100))\r\n//     ));\r\n//   } else {\r\n//     cents = Math.max(0, cents);\r\n//   }\r\n\r\n//   return formatted ? this.money(cents) : cents;\r\n// }\r\n\r\n\r\n\r\n  // Updates element data to be registered by forms\r\n  updateForm() {\r\n    let $sellingPlan = this.querySelector('input[name=selling_plan]')\r\n\r\n    if ($sellingPlan) {\r\n      $sellingPlan.value = this.selectedSellingPlan ? this.selectedSellingPlan.id : ''\r\n      $sellingPlan.dispatchEvent(new Event('change'))\r\n    }\r\n  }\r\n\r\n  // SECTION: Additional Functionality\r\n  updateURLParams() {\r\n    // Method removed as we're using localStorage instead\r\n  }\r\n\r\n  async handleATCClick(e) {\r\n  e.preventDefault()\r\n  if (!this.selectedVariant) return\r\n  if (this.product?.requires_selling_plan && !this.selectedSellingPlan) return\r\n\r\n  try {\r\n    this.isAdding = true\r\n    await this.addToCart(this.quantity)\r\n\r\n    // optional: open your theme cart drawer if present\r\n    document.dispatchEvent(new CustomEvent('cart:refresh'))\r\n    if (window?.Shopify?.theme?.cart_drawer?.open) {\r\n      window.Shopify.theme.cart_drawer.open()\r\n    }\r\n  } catch (err) {\r\n    this.error('ATC error', err)\r\n  } finally {\r\n    this.isAdding = false\r\n  }\r\n}\r\n\r\n\r\n  // Runs a fetch request to add the selectedVariant to the cart with the passed quantity and selectedSellingPlan\r\nasync addToCart(quantity = 1) {\r\n  const variantId = this.selectedVariant?.id\r\n  if (!variantId) return\r\n\r\n  // \u2B50 Calculate your discount here however you want\r\n  const discountCents = this.price(this.selectedSellingPlan, false) // OR your own formula\r\n    ? (this.selectedVariant.price - this.price(this.selectedSellingPlan, false))\r\n    : 0\r\n\r\n  // Convert cents \u2192 nice formatting or leave raw\r\n  const discountFormatted = this.money(discountCents)\r\n\r\n    // \u2B50 Determine original price (cents)\r\n  const originalPrice = this.selectedVariant?.compare_at_price\r\n    ? this.selectedVariant.compare_at_price\r\n    : this.selectedVariant.price\r\n\r\n  // \u2B50 Determine discounted price (cents)\r\n  const discountedPrice = this.selectedSellingPlan\r\n    ? this.price(this.selectedSellingPlan, false) // SKIO selling plan price function\r\n    : this.selectedVariant.price\r\n\r\n  // \u2B50 Calculate % discount\r\n  let percentOff = 0\r\n  if (originalPrice > discountedPrice) {\r\n    percentOff = ((originalPrice - discountedPrice) / originalPrice) * 100\r\n  }\r\n\r\n  const percentFormatted = Math.round(percentOff)\r\n\r\n  // 1) Tell theme what sections we want\r\n  const sectionsToBundle = ['variant-added']\r\n  document.documentElement.dispatchEvent(\r\n    new CustomEvent('cart:prepare-bundled-sections', {\r\n      bubbles: true,\r\n      detail: { sections: sectionsToBundle },\r\n    })\r\n  )\r\n\r\n  // 2) Build FormData exactly like product-form\r\n  const fd = new FormData()\r\n  fd.set('id', variantId)\r\n  fd.set('quantity', String(quantity))\r\n  if (this.selectedSellingPlan?.id) {\r\n    fd.set('selling_plan', this.selectedSellingPlan.id)\r\n  }\r\n  fd.set('sections', sectionsToBundle.join(','))\r\n  fd.set('sections_url', `${Shopify.routes.root}variants/${variantId}`)\r\n\r\n  // \u2B50\u2B50\u2B50 Add custom line item properties here\r\n  //\r\n  // \u2B07\uFE0F This is the only thing you really needed:\r\n  if(percentOff > 0){\r\n    fd.append('properties[Discount]', `${percentFormatted}%`)\r\n  }\r\n\r\n  // If you want raw cents instead:\r\n  // fd.append('properties[discount_cents]', discountCents)\r\n\r\n  // 3) Send request\r\n  const res = await fetch(`${Shopify.routes.root}cart/add.js`, {\r\n    method: 'POST',\r\n    body: fd,\r\n    headers: { 'X-Requested-With': 'XMLHttpRequest' },\r\n  })\r\n  const json = await res.json()\r\n\r\n  if (!res.ok) {\r\n    this.error?.(`SKIO ${this.key} error adding item to cart: `, json)\r\n    this.dispatchEvent?.(\r\n      new CustomEvent('cart:error', {\r\n        bubbles: true,\r\n        detail: { error: json?.description || 'Error adding to cart' },\r\n      })\r\n    )\r\n    document.dispatchEvent(new CustomEvent('cart:refresh'))\r\n    return\r\n  }\r\n\r\n  // 4) Get full cart + include sections returned by add.js\r\n  const cart = await (await fetch(`${Shopify.routes.root}cart.js`)).json()\r\n  cart.sections = json.sections\r\n\r\n  // 5) Notify theme\r\n  document.dispatchEvent(\r\n    new CustomEvent('variant:add', {\r\n      bubbles: true,\r\n      detail: { items: json.items ? json.items : [json], cart },\r\n    })\r\n  )\r\n  document.documentElement.dispatchEvent(\r\n    new CustomEvent('cart:change', {\r\n      bubbles: true,\r\n      detail: { baseEvent: 'variant:add', cart },\r\n    })\r\n  )\r\n\r\n  // Keep SKIO event\r\n  this.log?.('Added item to cart:', json)\r\n  this.dispatchEvent?.(\r\n    new CustomEvent('skio::added-to-cart', {\r\n      bubbles: true,\r\n      composed: true,\r\n      detail: { response: json, key: this.key },\r\n    })\r\n  )\r\n\r\n  return cart\r\n}\r\n\r\n\r\n\r\nfetchProduct = handle => {\r\n  return fetch(`/products/${handle}.js`)\r\n    .then(r => r.json())\r\n    .then(product => {\r\n      this.product = product;\r\n\r\n      // Default to \"4 Packs\" when present (in option2 or option1), otherwise first variant\r\n      const four = product.variants.find(\r\n        v => this.packLabelForVariant(v).toLowerCase() === '4 packs'\r\n      );\r\n\r\n      if (four) {\r\n        this.selectVariantByOption2('4 Packs');\r\n      } else {\r\n        this.selectedVariant = product.variants[0];\r\n        this.syncVariantInput(this.selectedVariant.id);\r\n      }\r\n\r\n      return product;\r\n    });\r\n}\r\n\r\n  // !SECTION: Additional Functionality\r\n\r\n  moveSizeVariantPicker() {\r\n    const sizeFieldset = this.getNativeOptionFieldset('Sizes');\r\n    const root = this.renderRoot || this;\r\n    const sizeOptionSelectors = root.querySelectorAll('.size-option-selector');\r\n\r\n    if (!sizeFieldset || sizeOptionSelectors.length === 0) {\r\n      if (!this._sizePickerRetryTimer && this._sizePickerRetryCount < 10) {\r\n        this._sizePickerRetryCount += 1;\r\n        this._sizePickerRetryTimer = setTimeout(() => {\r\n          this._sizePickerRetryTimer = null;\r\n          this.moveSizeVariantPicker();\r\n        }, 100);\r\n      }\r\n\r\n      return false;\r\n    }\r\n\r\n    this._sizePickerRetryCount = 0;\r\n\r\n    sizeOptionSelectors.forEach(sizeOptionSelector => {\r\n      if (!sizeOptionSelector.hasChildNodes()) {\r\n        Array.from(sizeFieldset.children).forEach(node => {\r\n          sizeOptionSelector.appendChild(node.cloneNode(true));\r\n        });\r\n      }\r\n    });\r\n\r\n    this.initializeLabelClickHandlers();\r\n    this.ensureMostPopularBadge();\r\n    this.applyVarietyPackVisibility();\r\n    this.scheduleBlockSwatchUpdate();\r\n\r\n    return true;\r\n  }\r\n\r\n  ensureMostPopularBadge() {\r\n    const root = this.renderRoot || this;\r\n\r\n    root.querySelectorAll('.size-option-selector').forEach(wrapper => {\r\n      const labels = wrapper.querySelectorAll('label.block-swatch');\r\n\r\n      if (labels[1] && !labels[1].querySelector('.most-popular-badge')) {\r\n        const badge = document.createElement('div');\r\n        badge.className = 'most-popular-badge';\r\n\r\n        if (this.product?.id === 9169289183453) {\r\n          badge.classList.add('badge-yellow');\r\n        }\r\n\r\n        badge.textContent = 'Most Popular';\r\n        labels[1].appendChild(badge);\r\n      }\r\n    });\r\n  }\r\n\r\n  initializeLabelClickHandlers() {\r\n    const root = this.renderRoot || this;\r\n    const sizeOptionSelectors = root.querySelectorAll('.size-option-selector');\r\n\r\n    sizeOptionSelectors.forEach(sizeOptionSelector => {\r\n      sizeOptionSelector.querySelectorAll('label.block-swatch').forEach(label => {\r\n        if (label.dataset.skioPackBound === 'true') return;\r\n\r\n        label.dataset.skioPackBound = 'true';\r\n        label.addEventListener('click', event => {\r\n          const labels = sizeOptionSelector.querySelectorAll('label.block-swatch');\r\n          this.handleLabelClick(event, labels);\r\n        });\r\n      });\r\n    });\r\n  }\r\n\r\nhandleLabelClick(e, labels) {\r\n  e.preventDefault();\r\n\r\n  const label = e.currentTarget;\r\n  const optionLabelEl = label.querySelector('.option-label');\r\n  const packText = optionLabelEl ? optionLabelEl.textContent.trim() : null;\r\n\r\n  if (packText) {\r\n    this.lastSelectedPackLabel = packText;\r\n  }\r\n\r\n  labels.forEach(l => l.classList.remove('selected_option'));\r\n  label.classList.add('selected_option');\r\n\r\n  if (!packText) return;\r\n\r\n  if (this.varietyPackOnly && packText.toLowerCase() !== '4 packs') {\r\n    return;\r\n  }\r\n\r\n  const currentVariantId = this.variantInput?.value;\r\n  const currentVariant =\r\n    (this.product?.variants || []).find(v => String(v.id) === String(currentVariantId)) ||\r\n    this.selectedVariant ||\r\n    null;\r\n\r\n  let targetVariant = this.varietyPackOnly ? this.getVarietyPackVariant() : null;\r\n  const variants = this.product?.variants || [];\r\n  const hasFlavorAxis = (this.product?.options?.length || 0) > 1;\r\n\r\n  if (!targetVariant && currentVariant && hasFlavorAxis) {\r\n    // flavor + pack mode\r\n    targetVariant = variants.find(v =>\r\n      (v.option1 || '') === (currentVariant.option1 || '') &&\r\n      this.packLabelForVariant(v) === packText\r\n    );\r\n  }\r\n\r\n  // fallback: size-only mode \u2192 match by pack label only\r\n  if (!targetVariant) {\r\n    targetVariant = variants.find(v =>\r\n      this.packLabelForVariant(v) === packText\r\n    );\r\n  }\r\n\r\n  if (targetVariant) {\r\n    this.selectedVariant = targetVariant;\r\n    this.variantChanged = true;\r\n    this.syncVariantInput(targetVariant.id);\r\n    this.scheduleBlockSwatchUpdate();\r\n  } else {\r\n    console.warn('[skio] could not find variant for pack label:', packText);\r\n  }\r\n}\r\n\r\n\r\n\r\n  updatePieceTotal(label) {\r\n    const optionLabel = label.querySelector('.option-label');\r\n    if (!optionLabel) return;\r\n\r\n    const packText = optionLabel.textContent.trim();\r\n    const packNumber = parseInt(packText);\r\n\r\n    if (!isNaN(packNumber)) {\r\n      const pieceTotal = packNumber * 18;\r\n      const pieceTotalElement = label.querySelector('.option-piece-total');\r\n      const priceTotalElement = label.querySelector('.option-label');\r\n\r\n      if (pieceTotalElement) {\r\n        pieceTotalElement.textContent = `(${pieceTotal} pcs)`;\r\n      }\r\n\r\n    }\r\n  }\r\n//  FINDME@ORIG\r\n//   updateOptionPrice(label, index) {\r\n//     const optionLabel = label.querySelector('.option-label');\r\n//     const matchedVariant = this.product.variants.find(variant => variant.option2 === optionLabel.textContent.trim());\r\n//     // Use the discount percent from the selected selling plan if available, otherwise default to 0\r\n//     let discountPercent = 0;\r\n// if (this.selectedSellingPlan) {\r\n//       const discount = this.discount(this.selectedSellingPlan);\r\n//       discountPercent = discount.percent ? discount.percent / 100 : 0;\r\n// }\r\n\r\n//     const price = index < 3 ? (matchedVariant.price - (matchedVariant.price * discountPercent)) : matchedVariant.price;\r\n\r\n//     // const priceElement = label.querySelector('.option-price');\r\n//     const priceSaving = label.querySelector('.option-savings-total');\r\n//     // console.log(\"____saving\", discountPercent)\r\n//     // const pricePerPiece = label.querySelector('.option-piece-price');\r\n\r\n//     // if (priceElement) {\r\n//     //   switch (index) {\r\n//     //     case 0:\r\n//     //       priceElement.innerHTML = `<span class=\"option-price-new\">${this.money(price)}</span> <span class=\"option-price-old\">${this.money(this.product.price)}</span>`;\r\n//     //       break;\r\n//     //     case 1:\r\n//     //       priceElement.innerHTML = `<span class=\"option-price-new\">${this.money(price)}</span> <span class=\"option-price-old\">${this.money(matchedVariant.price)}</span>`;\r\n//     //       break;\r\n//     //     case 2:\r\n//     //       priceElement.innerHTML = `<span class=\"option-price-new\">${this.money(price)}</span> <span class=\"option-price-old\">${this.money(matchedVariant.price)}</span>`;\r\n//     //       break;\r\n//     //     case 3:\r\n//     //       priceElement.innerHTML = `<span class=\"option-price-new\">${this.money(price)}</span>`;\r\n//     //       break;\r\n//     //     case 4:\r\n//     //       priceElement.innerHTML = `<span class=\"option-price-new\">${this.money(price)}</span>`;\r\n//     //       break;\r\n//     //     case 5:\r\n//     //       priceElement.innerHTML = `<span class=\"option-price-new\">${this.money(price)}</span>`;\r\n//     //       break;\r\n//     //     default:\r\n//     //       priceElement.innerHTML = `<span class=\"option-price-new\">${this.money(price)}</span>`;\r\n//     //       break;\r\n//     //   }\r\n//     // }\r\n\r\n\r\n// if (priceSaving) {\r\n//       switch (index) {\r\n//         case 0:\r\n//           priceSaving.innerHTML = `Save ${this.money(matchedVariant.price - price)}`;\r\n//     priceSaving.style.opacity = '1';\r\n//           break;\r\n//         case 1:\r\n//           priceSaving.innerHTML = `Save ${this.money(matchedVariant.price - price)}`;\r\n//           priceSaving.style.opacity = '1';\r\n//           break;\r\n//         case 2:\r\n//             priceSaving.innerHTML = `Save ${this.money(matchedVariant.price - price)}`;\r\n//             priceSaving.style.opacity = '1';\r\n//             break;\r\n//         case 3:\r\n//           priceSaving.innerHTML = \"\";\r\n//     priceSaving.style.opacity = '0';\r\n//           break;\r\n//         case 4:\r\n//           priceSaving.innerHTML = `Save ${this.money(matchedVariant.price - price)}`;\r\n//           priceSaving.style.opacity = '0';\r\n//           break;\r\n//         case 5:\r\n//           priceSaving.innerHTML = `Save ${this.money(matchedVariant.price - price)}`;\r\n//           priceSaving.style.opacity = '0';\r\n//           break;\r\n//   }\r\n// }\r\n\r\n//     const pieceMapByIndex = {\r\n//       0: 36,\r\n//       1: 72,\r\n//       2: 144,\r\n//       3: 36,\r\n//       4: 72,\r\n//       5: 144,\r\n//     }\r\n\r\n//     // if (pricePerPiece) {\r\n//     //   pricePerPiece.innerHTML = `${this.money(price / pieceMapByIndex[index])} per piece`;\r\n//     // }\r\n//   }\r\n\r\ngetFirstPlanForVariant(variant) {\r\n  // find the first SKIO plan that this variant actually supports\r\n  const groups = (this.product?.selling_plan_groups || [])\r\n    .filter(g =>\r\n      g.app_id === 'SKIO' &&\r\n      !g.name.toLowerCase().includes('hidden-') &&\r\n      !g.name.toLowerCase().includes('dynamic box subscription')\r\n    );\r\n\r\n  const allocIds = new Set(\r\n    (variant?.selling_plan_allocations || []).map(a => a.selling_plan_id)\r\n  );\r\n\r\n  for (const g of groups) {\r\n    for (const p of g.selling_plans) {\r\n      if (allocIds.has(p.id)) return p;\r\n    }\r\n  }\r\n  return null;\r\n}\r\n\r\n\r\nupdateOptionPrice(label, index) {\r\n  const optionLabel = label.querySelector('.option-label');\r\n  if (!optionLabel) return;\r\n\r\n  // Ensure nodes exist\r\n  let priceSaving = label.querySelector('.option-savings-total');\r\n  if (!priceSaving) {\r\n    priceSaving = document.createElement('span');\r\n    priceSaving.className = `option-savings-total index-${index}`;\r\n    label.appendChild(priceSaving);\r\n  }\r\n\r\n  const matchedVariant = this.product?.variants?.find(\r\n  v => this.packLabelForVariant(v) === optionLabel.textContent.trim()\r\n);\r\n\r\n  if (!matchedVariant) return;\r\n\r\n  const isTopRow = index < 3; // subscribe pills\r\n\r\n  // \uD83D\uDD11 Always pick a plan to *calculate* savings for the subscribe row,\r\n  // even if selectedSellingPlanGroup is null after refresh.\r\n  let planForCalc = null;\r\nif (isTopRow) {\r\n  planForCalc =\r\n    this.selectedSellingPlan\r\n    || (this.availableSellingPlanGroups?.[0]?.selected_selling_plan)\r\n    || (this.availableSellingPlanGroups?.[0]\r\n          ? this.getAvailableSellingPlans(this.availableSellingPlanGroups[0])?.[0]\r\n          : null)\r\n    // \u2705 hard fallback that does NOT depend on component state\r\n    || this.getFirstPlanForVariant(matchedVariant);\r\n}\r\n\r\n\r\n  const pct = planForCalc ? (Number(this.discount(planForCalc)?.percent || 0) / 100) : 0;\r\n\r\n  // Discounted price applies to subscribe row; one-time shows list price\r\n  const discountedCents = (isTopRow && pct > 0)\r\n    ? Math.round(matchedVariant.price * (1 - pct))\r\n    : matchedVariant.price;\r\n\r\n  const savingCents = Math.max(0, matchedVariant.price - discountedCents);\r\n\r\n// Determine if we are actively in \"Subscribe\" mode\r\nconst isSubscribeModeActive = !!this.selectedSellingPlanGroup;\r\n\r\n// \u2705 Only show \"Save\" when in Subscribe mode AND on the top row\r\nif (isTopRow && isSubscribeModeActive && savingCents > 0) {\r\n  priceSaving.textContent = `Save ${this.money(savingCents)}`;\r\n  priceSaving.style.opacity = '1';\r\n  priceSaving.style.display = 'block';\r\n} else {\r\n  priceSaving.textContent = '';\r\n  priceSaving.style.display = 'none';\r\n}\r\n\r\n  // console.log('[savings]', { index, isTopRow, planForCalc, pct, matched: matchedVariant?.option2 });\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n// FINDME@DEV PRICE FORCE UPDATES 10-24\r\n// updateOptionPrice(label, index) {\r\n//   const optionLabel = label.querySelector('.option-label');\r\n//   const matchedVariant = this.product.variants.find(\r\n//     v => v.option2 === optionLabel.textContent.trim()\r\n//   );\r\n\r\n//   // existing selling-plan % (0..1)\r\n//   let discountPercent = 0;\r\n//   if (this.selectedSellingPlan) {\r\n//     const discount = this.discount(this.selectedSellingPlan);\r\n//     discountPercent = discount.percent ? discount.percent / 100 : 0;\r\n//   }\r\n\r\n//   // NEW: extra % from metafield (0..1). Read once if you stored it in this.plan; fallback to data-plan.\r\n//   const extraPct =\r\n//     Number(this?.plan ?? 0) ||\r\n//     Number((Array.from(document.scripts).find(s => s.src.includes('skio-plan-picker-component.js'))?.dataset?.plan) || 0);\r\n//   const extraPercent = isNaN(extraPct) ? 0 : extraPct / 100;\r\n\r\n//   // combine percentages multiplicatively (e + x \u2212 e*x)\r\n//   const effectivePercent = discountPercent > 0 || extraPercent > 0\r\n//     ? (discountPercent + extraPercent)\r\n//     : 0;\r\n\r\n//   // keep your original rule: only first 3 pills get discount; others show list price\r\n//   const price = index < 3\r\n//     ? Math.round(matchedVariant.price * (1 - effectivePercent))\r\n//     : matchedVariant.price;\r\n\r\n//   // const priceElement = label.querySelector('.option-price');\r\n//   const priceSaving = label.querySelector('.option-savings-total');\r\n//   // const pricePerPiece = label.querySelector('.option-piece-price');\r\n\r\n//   if (priceSaving) {\r\n//     const savingCents = Math.max(0, matchedVariant.price - price);\r\n//     switch (index) {\r\n//       case 0:\r\n//       case 1:\r\n//       case 2:\r\n//         priceSaving.innerHTML = `Save ${this.money(savingCents)}`;\r\n//         priceSaving.style.opacity = '1';\r\n//         break;\r\n//       case 3:\r\n//         priceSaving.innerHTML = '';\r\n//         priceSaving.style.opacity = '0';\r\n//         break;\r\n//       case 4:\r\n//       case 5:\r\n//         priceSaving.innerHTML = `Save ${this.money(savingCents)}`;\r\n//         priceSaving.style.opacity = '0';\r\n//         break;\r\n//     }\r\n//   }\r\n\r\n//   const pieceMapByIndex = { 0: 36, 1: 72, 2: 144, 3: 36, 4: 72, 5: 144 };\r\n//   // if (pricePerPiece) {\r\n//   //   pricePerPiece.innerHTML = `${this.money(price / pieceMapByIndex[index])} per piece`;\r\n//   // }\r\n// }\r\n\r\n}\r\n\r\nif (!customElements.get('skio-plan-picker')) {\r\n  customElements.define('skio-plan-picker', SkioPlanPicker)\r\n}\r\n\r\ndocument.addEventListener('DOMContentLoaded', function() {\r\n  const shadowHost = document.getElementById('skio-subscription-widget');\r\n  const shadowRoot = shadowHost.shadowRoot\r\n\r\n  const learnMoreButton = shadowRoot.querySelector('.learn_more__button');\r\n\r\n  if (learnMoreButton) {\r\n      learnMoreButton.addEventListener('click', function() {\r\n          window._klOnsite = window._klOnsite || [];\r\n          window._klOnsite.push(['openForm', 'TqkEnN']);\r\n      });\r\n  }\r\n});\r\n\r\nwindow.addEventListener('load', function() {\r\n  const shadowHost = document.getElementById('skio-subscription-widget');\r\n  const shadowRoot = shadowHost.shadowRoot;\r\n  const groupInputs = shadowRoot.querySelectorAll('input.group-input');\r\n  const generalInputs = shadowRoot.querySelectorAll('input.sr-only');\r\n  groupInputs.forEach(input => {\r\n    const label = shadowRoot.querySelector(`label[for=\"${input.id}\"]`);\r\n    if (label && input) {\r\n      label.addEventListener('mousedown', () => {\r\n        input.checked = true;\r\n        input.dispatchEvent(new Event('change'));\r\n      });\r\n    }\r\n  });\r\n  generalInputs.forEach(input => {\r\n    const label = shadowRoot.querySelector(`label[for=\"${input.id}\"]`);\r\n    input.disabled = true;\r\n    if (label && input) {\r\n      label.addEventListener('mousedown', () => {\r\n        input.checked = \"checked\";\r\n        input.dispatchEvent(new Event('change'));\r\n      });\r\n    }\r\n  });\r\n  shadowRoot.querySelector('.skio-plan-picker').style.display = 'flex';\r\n});\r\n\r\nif (window) window.SkioPlanPicker = SkioPlanPicker"],
  "mappings": "AAAA,OAAS,WAAY,KAAM,IAAK,eAAkB,4DAS3C,aAAM,uBAAuB,UAAW,CAC7C,OAAO,WAAa,CAClB,SAAU,CAAE,MAAO,EAAK,EACxB,IAAK,CAAE,KAAM,MAAO,EAEpB,QAAS,CAAE,KAAM,MAAO,EACxB,cAAe,CAAE,KAAM,MAAO,EAC9B,gBAAiB,CAAE,KAAM,MAAO,EAEhC,QAAS,CAAE,KAAM,MAAO,EAExB,SAAU,CAAE,KAAM,MAAO,EACzB,MAAO,CAAE,KAAM,KAAM,EACrB,KAAM,CAAE,KAAM,MAAO,EACrB,KAAM,CAAE,KAAM,MAAO,EACrB,mBAAoB,CAAC,KAAM,MAAM,EAEjC,2BAA4B,CAAE,MAAO,EAAK,EAC1C,yBAA0B,CAAE,KAAM,MAAO,EACzC,oBAAqB,CAAE,KAAM,MAAO,EAEpC,WAAY,CAAE,KAAM,OAAQ,EAE5B,MAAO,CAAE,KAAM,OAAQ,EAC1B,cAAe,CAAE,KAAM,OAAQ,UAAW,gBAAiB,EACxD,oBAAqB,CAAC,KAAM,MAAM,CAGpC,EAEA,OAAO,OAAS,CACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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",
  "names": []
}
