{"product_id":"civic-access-pouch-1l-waxed-canvas","title":"Civic Access Pouch 1L - Waxed Canvas","description":"\u003cdiv id=\"feat\"\u003e\n\u003cdiv class=\"lightly-spaced-row not-in-quickbuy\"\u003e\n\u003cdiv class=\"product-info-block\"\u003e\n\u003cdiv class=\"rte cf\"\u003e\n\u003ch5\u003eEVERGOODS FLEXIBLE, LOW-PROFILE ORGANIZER IN A CUSTOM WAXED CANVAS SHELL\u003c\/h5\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"lightly-spaced-row not-in-quickbuy\"\u003e\n\u003cdiv class=\"product-info-block\"\u003e\n\u003cdiv class=\"rte cf\"\u003e\n\u003cdiv class=\"metafield-rich_text_field\"\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt with extremely durable P400 Wax C4X, a high-end waxed cotton shell we custom developed\u003c\/li\u003e\n\u003cli\u003eIntuitive, adaptive layout designed with versatility in mind\u003c\/li\u003e\n\u003cli\u003eHeritage edition with string + button closure and leather details\u003c\/li\u003e\n\u003cli\u003eSlim profile with 3D patterned built-in volume\u003c\/li\u003e\n\u003cli\u003ePouch lays flat when empty and expands based on size of your loadout\u003c\/li\u003e\n\u003cli\u003eString + button closure keeps your contents secure\u003c\/li\u003e\n\u003cli\u003eLaminated materials for less bulk and better visibility and organization of your kit\u003c\/li\u003e\n\u003cli\u003eClamshell opening\u003c\/li\u003e\n\u003cli\u003eP400 Wax C4X is weatherproof, durable, and ages beautifully\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"product-description\"\u003e\n\u003cmeta charset=\"UTF-8\"\u003e\n\u003cp\u003eCIVIC Access Pouch 1L is known for its clamshell opening, adaptive layout, and flexible volume. We’ve reimagined this fan-favorite with P400 Wax C4X, a custom, high-end waxed cotton shell developed in collaboration with historic Scottish mill Halley Stevensons that only gets better with age. Along with a few additional upgrades like a string + button closure and leather style label, this heritage edition is built to create its own legacy.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"spec\"\u003e\n\u003cmeta charset=\"UTF-8\"\u003e\n\u003cstrong\u003eShell Textile\u003c\/strong\u003e\u003cbr\u003e\u003cspan\u003eP400 Wax C4X – Custom developed with Scottish Mill, Halley Stevensons\u003c\/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cstrong\u003eLining Fabric\u003c\/strong\u003e\u003cbr\u003e\u003cspan\u003e210d HT nylon 6,6 HT with PU coating on back and silicone finish on the face\u003c\/span\u003e\u003cbr\u003e\u003cstrong\u003e\u003cbr\u003eInternal Zippers\u003c\/strong\u003e\u003cbr\u003e\u003cspan\u003eChain: YKK #5RC with DWR finish\u003c\/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cstrong\u003eDimensions\u003c\/strong\u003e\u003cbr\u003e\u003cspan\u003e10\"W x 5.75\"D x 0.75\"H | 25.4W x 14.6D x 1.9H cm\u003c\/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cstrong\u003eWeight\u003c\/strong\u003e\u003cbr\u003e\u003cspan\u003e6.85oz | 194g\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"war\"\u003eLifetime\u003c\/div\u003e\n\u003csection class=\"cap1w-carousel\" data-cap1w-carousel aria-labelledby=\"cap1w-carousel-title\"\u003e\n  \u003cdiv class=\"cap1w-carousel__header\"\u003e\n    \u003ch2 id=\"cap1w-carousel-title\"\u003ePRODUCT FEATURES\u003c\/h2\u003e\n\n    \u003cdiv class=\"cap1w-carousel__controls\"\u003e\n      \u003cbutton type=\"button\" class=\"cap1w-carousel__arrow\" data-cap1w-previous aria-label=\"Previous feature\"\u003e\n        ←\n      \u003c\/button\u003e\n\n      \u003cbutton type=\"button\" class=\"cap1w-carousel__arrow\" data-cap1w-next aria-label=\"Next feature\"\u003e\n        →\n      \u003c\/button\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"cap1w-carousel__viewport\" data-cap1w-viewport role=\"region\" aria-label=\"CIVIC Access Pouch 1L Waxed Canvas features\" tabindex=\"0\"\u003e\n    \u003cdiv class=\"cap1w-carousel__track\" data-cap1w-track\u003e\n      \u003carticle class=\"cap1w-card\" data-cap1w-slide\u003e\n        \u003cimg src=\"https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-Material-Toughness_1_1.jpg?v=1792429490\u0026amp;width=1200\" srcset=\"\n            https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-Material-Toughness_1_1.jpg?v=1792429490\u0026amp;width=480 480w,\n            https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-Material-Toughness_1_1.jpg?v=1792429490\u0026amp;width=740 740w,\n            https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-Material-Toughness_1_1.jpg?v=1792429490\u0026amp;width=1200 1200w\n          \" sizes=\"(min-width: 1000px) 33vw, (min-width: 600px) 50vw, 87vw\" alt=\"CIVIC Access Pouch 1L Waxed Canvas tough material\" width=\"1200\" height=\"1500\" loading=\"lazy\" decoding=\"async\"\u003e\n\n        \u003cdiv class=\"cap1w-card__content\"\u003e\n          \u003ch3\u003eA DECADE OF TOUGH\u003c\/h3\u003e\n          \u003cp\u003e\n            Custom-developed with historic Scottish mill Halley Stevensons,\n            the P400 Wax C4X shell combines a tear-resistant cotton weave\n            with a hard, crystalline wax finish made for demanding daily use.\n          \u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"cap1w-card\" data-cap1w-slide\u003e\n        \u003cimg src=\"https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-interior-visibility.jpg?v=1792191289\u0026amp;width=1200\" srcset=\"\n            https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-interior-visibility.jpg?v=1792191289\u0026amp;width=480 480w,\n            https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-interior-visibility.jpg?v=1792191289\u0026amp;width=740 740w,\n            https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-interior-visibility.jpg?v=1792191289\u0026amp;width=1200 1200w\n          \" sizes=\"(min-width: 1000px) 33vw, (min-width: 600px) 50vw, 87vw\" alt=\"CIVIC Access Pouch 1L Waxed Canvas open interior\" width=\"1200\" height=\"1500\" loading=\"lazy\" decoding=\"async\"\u003e\n\n        \u003cdiv class=\"cap1w-card__content\"\u003e\n          \u003ch3\u003eENHANCED VISIBILITY\u003c\/h3\u003e\n          \u003cp\u003e\n            A standard-gray 210D high-tenacity nylon lining creates contrast\n            inside the pouch, making small tools, cables, and everyday\n            essentials easier to locate quickly.\n          \u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"cap1w-card\" data-cap1w-slide\u003e\n        \u003cimg src=\"https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-General-Duty-Pouch.jpg?v=1792191289\u0026amp;width=1200\" srcset=\"\n            https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-General-Duty-Pouch.jpg?v=1792191289\u0026amp;width=480 480w,\n            https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-General-Duty-Pouch.jpg?v=1792191289\u0026amp;width=740 740w,\n            https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-General-Duty-Pouch.jpg?v=1792191289\u0026amp;width=1200 1200w\n          \" sizes=\"(min-width: 1000px) 33vw, (min-width: 600px) 50vw, 87vw\" alt=\"CIVIC Access Pouch 1L Waxed Canvas closure\" width=\"1200\" height=\"1500\" loading=\"lazy\" decoding=\"async\"\u003e\n\n        \u003cdiv class=\"cap1w-card__content\"\u003e\n          \u003ch3\u003eGENERAL DUTY POUCH\u003c\/h3\u003e\n          \u003cp\u003e\n            The heritage-inspired string-and-button closure delivers a\n            tactile experience while allowing the pouch to expand and\n            contract around changing everyday carry loadouts.\n          \u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"cap1w-card\" data-cap1w-slide\u003e\n        \u003cimg src=\"https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-3d-design.jpg?v=1792191289\u0026amp;width=1200\" srcset=\"\n            https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-3d-design.jpg?v=1792191289\u0026amp;width=480 480w,\n            https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-3d-design.jpg?v=1792191289\u0026amp;width=740 740w,\n            https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-3d-design.jpg?v=1792191289\u0026amp;width=1200 1200w\n          \" sizes=\"(min-width: 1000px) 33vw, (min-width: 600px) 50vw, 87vw\" alt=\"CIVIC Access Pouch 1L Waxed Canvas expanding design\" width=\"1200\" height=\"1500\" loading=\"lazy\" decoding=\"async\"\u003e\n\n        \u003cdiv class=\"cap1w-card__content\"\u003e\n          \u003ch3\u003eTHREE-DIMENSIONAL EXPANDING DESIGN\u003c\/h3\u003e\n          \u003cp\u003e\n            The one-liter pouch stays slim when empty and gains depth as\n            it is packed, giving your gear useful volume without\n            unnecessary bulk.\n          \u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"cap1w-card\" data-cap1w-slide\u003e\n        \u003cimg src=\"https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-place-for-everything.jpg?v=1792191289\u0026amp;width=1200\" srcset=\"\n            https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-place-for-everything.jpg?v=1792191289\u0026amp;width=480 480w,\n            https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-place-for-everything.jpg?v=1792191289\u0026amp;width=740 740w,\n            https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-place-for-everything.jpg?v=1792191289\u0026amp;width=1200 1200w\n          \" sizes=\"(min-width: 1000px) 33vw, (min-width: 600px) 50vw, 87vw\" alt=\"CIVIC Access Pouch 1L Waxed Canvas organized interior\" width=\"1200\" height=\"1500\" loading=\"lazy\" decoding=\"async\"\u003e\n\n        \u003cdiv class=\"cap1w-card__content\"\u003e\n          \u003ch3\u003eA PLACE FOR EVERYTHING\u003c\/h3\u003e\n          \u003cp\u003e\n            Small, medium, and large zippered mesh pockets work with two\n            full-length pockets to organize items of different shapes\n            and sizes.\n          \u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"cap1w-card\" data-cap1w-slide\u003e\n        \u003cimg src=\"https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-construction.jpg?v=1792191288\u0026amp;width=1200\" srcset=\"\n            https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-construction.jpg?v=1792191288\u0026amp;width=480 480w,\n            https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-construction.jpg?v=1792191288\u0026amp;width=740 740w,\n            https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Access-Pouch-1L-CAP1-construction.jpg?v=1792191288\u0026amp;width=1200 1200w\n          \" sizes=\"(min-width: 1000px) 33vw, (min-width: 600px) 50vw, 87vw\" alt=\"CIVIC Access Pouch 1L Waxed Canvas construction\" width=\"1200\" height=\"1500\" loading=\"lazy\" decoding=\"async\"\u003e\n\n        \u003cdiv class=\"cap1w-card__content\"\u003e\n          \u003ch3\u003eADVANCED CONSTRUCTION TECHNIQUES\u003c\/h3\u003e\n          \u003cp\u003e\n            Low-profile laminated divider pockets reinforce both sides\n            of the pouch, reducing bulk while adding structure for\n            smoother access and dependable organization.\n          \u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/article\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"cap1w-carousel__dots\" data-cap1w-dots aria-label=\"Choose a product feature\"\u003e\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003cstyle\u003e\n  .cap1w-carousel {\n    --cap1w-gap: 30px;\n    --cap1w-columns: 1.15;\n    --cap1w-edge: 16px;\n\n    width: 100%;\n    margin: 50px 0;\n    overflow: hidden;\n    color: rgb(26 26 26);\n    font-family: var(--text-font-family, Inter, sans-serif);\n  }\n\n  .cap1w-carousel *,\n  .cap1w-carousel *::before,\n  .cap1w-carousel *::after {\n    box-sizing: border-box;\n  }\n\n  .cap1w-carousel__header {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 20px;\n    margin: 0 var(--cap1w-edge) 24px;\n  }\n\n  .cap1w-carousel__header h2 {\n    margin: 0;\n    color: rgb(26 26 26);\n    font-family: var(--heading-font-family, Barlow, sans-serif);\n    font-size: clamp(26px, 4vw, 42px);\n    font-style: var(--heading-font-style, normal);\n    font-weight: var(--heading-font-weight, 700);\n    line-height: 1;\n    letter-spacing: 0.02em;\n  }\n\n  .cap1w-carousel__controls {\n    display: flex;\n    flex: 0 0 auto;\n    gap: 10px;\n  }\n\n  .cap1w-carousel__arrow {\n    display: grid;\n    width: 44px;\n    height: 44px;\n    padding: 0;\n    place-items: center;\n    border: 0;\n    border-radius: var(--rounded-button, 9999px);\n    background: rgb(var(--button-background-primary, 26 26 26));\n    color: #fff;\n    font: inherit;\n    font-size: 21px;\n    line-height: 1;\n    cursor: pointer;\n    transition:\n      opacity 0.2s ease,\n      transform 0.2s ease;\n  }\n\n  .cap1w-carousel__arrow:hover:not(:disabled) {\n    transform: scale(1.05);\n  }\n\n  .cap1w-carousel__arrow:focus-visible,\n  .cap1w-carousel__dots button:focus-visible,\n  .cap1w-carousel__viewport:focus-visible {\n    outline: 2px solid currentColor;\n    outline-offset: 3px;\n  }\n\n  .cap1w-carousel__arrow:disabled {\n    opacity: 0.28;\n    cursor: default;\n  }\n\n  .cap1w-carousel__viewport {\n    width: 100%;\n    overflow-x: auto;\n    overscroll-behavior-x: contain;\n    scroll-padding-inline: var(--cap1w-edge);\n    scroll-snap-type: x mandatory;\n    scrollbar-width: none;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .cap1w-carousel__viewport::-webkit-scrollbar {\n    display: none;\n  }\n\n  .cap1w-carousel__track {\n    display: grid;\n    grid-auto-columns:\n      calc(\n        (\n          100% -\n          (\n            var(--cap1w-gap) *\n            (var(--cap1w-columns) - 1)\n          )\n        ) \/\n        var(--cap1w-columns)\n      );\n    grid-auto-flow: column;\n    grid-template-columns: none;\n    gap: var(--cap1w-gap);\n    padding-inline: var(--cap1w-edge);\n  }\n\n  .cap1w-card {\n    display: flex;\n    min-width: 0;\n    overflow: hidden;\n    flex-direction: column;\n    scroll-snap-align: start;\n    scroll-snap-stop: always;\n    border: 0;\n    border-radius: var(--rounded-sm, 0.375rem);\n    background: rgb(var(--product-card-background, 255 255 255));\n    box-shadow: none;\n  }\n\n  .cap1w-card \u003e img {\n    display: block;\n    width: 100%;\n    aspect-ratio: 4 \/ 5;\n    object-fit: cover;\n    background: rgb(240 240 240);\n    border-radius:\n      var(--rounded-sm, 0.375rem)\n      var(--rounded-sm, 0.375rem)\n      0\n      0;\n  }\n\n  .cap1w-card__content {\n    flex: 1;\n    padding: 20px;\n    background: rgb(var(--product-card-background, 255 255 255));\n  }\n\n  .cap1w-card__content h3 {\n    margin: 0 0 12px;\n    color: rgb(26 26 26);\n    font-family: var(--heading-font-family, Barlow, sans-serif);\n    font-size: 20px;\n    font-style: var(--heading-font-style, normal);\n    font-weight: var(--heading-font-weight, 700);\n    line-height: 1.2;\n    letter-spacing: 0;\n  }\n\n  .cap1w-card__content p {\n    margin: 0;\n    color: rgb(26 26 26 \/ 0.75);\n    font-family: var(--text-font-family, Inter, sans-serif);\n    font-size: 15px;\n    font-weight: var(--text-font-weight, 400);\n    line-height: 1.6;\n  }\n\n  .cap1w-carousel__dots {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 9px;\n    padding: 22px var(--cap1w-edge) 0;\n  }\n\n  .cap1w-carousel__dots button {\n    width: 8px;\n    height: 8px;\n    padding: 0;\n    border: 0;\n    border-radius: 50%;\n    background: rgb(26 26 26 \/ 0.25);\n    cursor: pointer;\n    transition:\n      background-color 0.2s ease,\n      transform 0.2s ease;\n  }\n\n  .cap1w-carousel__dots button[aria-current=\"true\"] {\n    background: rgb(26 26 26);\n    transform: scale(1.3);\n  }\n\n  @media screen and (min-width: 600px) {\n    .cap1w-carousel {\n      --cap1w-columns: 2;\n      --cap1w-edge: 30px;\n    }\n  }\n\n  @media screen and (min-width: 1000px) {\n    .cap1w-carousel {\n      --cap1w-columns: 3;\n      --cap1w-edge: 50px;\n    }\n\n    .cap1w-carousel__dots {\n      display: none;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .cap1w-carousel__arrow,\n    .cap1w-carousel__dots button {\n      transition: none;\n    }\n  }\n\u003c\/style\u003e\n\n\u003cscript\u003e\n  (function () {\n    function initializeCarousel(root) {\n      if (root.dataset.cap1wReady === 'true') return;\n\n      var viewport = root.querySelector('[data-cap1w-viewport]');\n      var track = root.querySelector('[data-cap1w-track]');\n      var slides = Array.prototype.slice.call(\n        root.querySelectorAll('[data-cap1w-slide]')\n      );\n      var previousButton = root.querySelector('[data-cap1w-previous]');\n      var nextButton = root.querySelector('[data-cap1w-next]');\n      var dotsContainer = root.querySelector('[data-cap1w-dots]');\n\n      if (\n        !viewport ||\n        !track ||\n        !previousButton ||\n        !nextButton ||\n        !dotsContainer ||\n        slides.length === 0\n      ) {\n        return;\n      }\n\n      root.dataset.cap1wReady = 'true';\n\n      var dots = [];\n      var activeIndex = 0;\n      var scrollFrame = 0;\n\n      function trackInset() {\n        var styles = window.getComputedStyle(track);\n\n        return (\n          parseFloat(\n            styles.paddingInlineStart || styles.paddingLeft\n          ) || 0\n        );\n      }\n\n      function slidePosition(slide) {\n        return Math.max(0, slide.offsetLeft - trackInset());\n      }\n\n      function nearestSlideIndex() {\n        var currentPosition = viewport.scrollLeft;\n        var closestIndex = 0;\n        var closestDistance = Infinity;\n\n        slides.forEach(function (slide, index) {\n          var distance = Math.abs(\n            slidePosition(slide) - currentPosition\n          );\n\n          if (distance \u003c closestDistance) {\n            closestDistance = distance;\n            closestIndex = index;\n          }\n        });\n\n        return closestIndex;\n      }\n\n      function updateControls() {\n        var maximumScroll = Math.max(\n          0,\n          viewport.scrollWidth - viewport.clientWidth\n        );\n\n        activeIndex = nearestSlideIndex();\n\n        dots.forEach(function (dot, index) {\n          dot.setAttribute(\n            'aria-current',\n            index === activeIndex ? 'true' : 'false'\n          );\n        });\n\n        previousButton.disabled = viewport.scrollLeft \u003c= 2;\n        nextButton.disabled =\n          viewport.scrollLeft \u003e= maximumScroll - 2;\n      }\n\n      function goToSlide(index) {\n        var maximumScroll = Math.max(\n          0,\n          viewport.scrollWidth - viewport.clientWidth\n        );\n        var reducedMotion = window\n          .matchMedia('(prefers-reduced-motion: reduce)')\n          .matches;\n        var safeIndex = Math.max(\n          0,\n          Math.min(index, slides.length - 1)\n        );\n\n        viewport.scrollTo({\n          left: Math.min(\n            slidePosition(slides[safeIndex]),\n            maximumScroll\n          ),\n          behavior: reducedMotion ? 'auto' : 'smooth'\n        });\n      }\n\n      slides.forEach(function (slide, index) {\n        slide.setAttribute(\n          'aria-label',\n          String(index + 1) + ' of ' + String(slides.length)\n        );\n\n        var dot = document.createElement('button');\n\n        dot.type = 'button';\n        dot.setAttribute(\n          'aria-label',\n          'Go to product feature ' + String(index + 1)\n        );\n\n        dot.addEventListener('click', function () {\n          goToSlide(index);\n        });\n\n        dotsContainer.appendChild(dot);\n        dots.push(dot);\n      });\n\n      previousButton.addEventListener('click', function () {\n        goToSlide(activeIndex - 1);\n      });\n\n      nextButton.addEventListener('click', function () {\n        goToSlide(activeIndex + 1);\n      });\n\n      viewport.addEventListener('keydown', function (event) {\n        if (event.key === 'ArrowLeft') {\n          event.preventDefault();\n          goToSlide(activeIndex - 1);\n        }\n\n        if (event.key === 'ArrowRight') {\n          event.preventDefault();\n          goToSlide(activeIndex + 1);\n        }\n      });\n\n      viewport.addEventListener(\n        'scroll',\n        function () {\n          if (scrollFrame) {\n            window.cancelAnimationFrame(scrollFrame);\n          }\n\n          scrollFrame =\n            window.requestAnimationFrame(updateControls);\n        },\n        { passive: true }\n      );\n\n      if ('ResizeObserver' in window) {\n        new ResizeObserver(updateControls).observe(viewport);\n      } else {\n        window.addEventListener('resize', updateControls);\n      }\n\n      updateControls();\n    }\n\n    function initializeAllCarousels(container) {\n      var scope =\n        container \u0026\u0026 container.querySelectorAll\n          ? container\n          : document;\n\n      scope\n        .querySelectorAll('[data-cap1w-carousel]')\n        .forEach(initializeCarousel);\n    }\n\n    if (document.readyState === 'loading') {\n      document.addEventListener(\n        'DOMContentLoaded',\n        function () {\n          initializeAllCarousels(document);\n        }\n      );\n    } else {\n      initializeAllCarousels(document);\n    }\n\n    document.addEventListener(\n      'shopify:section:load',\n      function (event) {\n        initializeAllCarousels(event.target);\n      }\n    );\n  })();\n\u003c\/script\u003e","brand":"EVERGOODS","offers":[{"title":"Waxed Tan","offer_id":50695822671942,"sku":"EVGOCAP1L-WTN","price":449.0,"currency_code":"MYR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1112\/3836\/files\/CIVIC-ACCESS-POUCH-1L-WAXED-CANVAS-TAN-CAP1-FRONT_1.png?v=1792601472","url":"https:\/\/storminggravity.com\/zh\/products\/civic-access-pouch-1l-waxed-canvas","provider":"Storming Gravity","version":"1.0","type":"link"}