{"product_id":"civic-travel-bag-26l-ultra","title":"Civic Travel Bag 26L - Ultra","description":"\u003cdiv class=\"product-description\"\u003e\n\u003ch3\u003eTHE MOST ADVANCED VERSION OF OUR AWARD-WINNING TRAVEL BACKPACK\u003c\/h3\u003e\n\u003cp\u003eBuilt for the 2026 ULTRA Travel System, this limited edition CTB26 pairs our feature-packed travel platform with ULTRA 200X, creating a lighter-weight backpack with exceptional durability, a waterproof shell textile, and a bright white interior for enhanced gear visibility. Designed for travelers who want to worry less, it’s the most performance-forward version of CTB26 we've ever produced.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eBlack Magic ULTRA 200X textile combines exceptional durability and waterproofness in a lightweight, sleek package\u003c\/li\u003e\n\u003cli\u003eOur feature-packed, bestselling travel backpack with signature panel loading and water bottle pockets\u003c\/li\u003e\n\u003cli\u003eBright white interior for enhanced gear visibility fits the entire ULTRA travel system\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"feat\"\u003e\n\u003cmeta charset=\"UTF-8\"\u003e\n\u003cp\u003e\u003cstrong\u003e External Features\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eStretch woven side water bottle pockets\u003c\/li\u003e\n\u003cli\u003eLuggage pass-through sleeve\u003c\/li\u003e\n\u003cli\u003eDeep front stash pocket\u003c\/li\u003e\n\u003cli\u003eFront side access pocket with internal organization and key leash\u003c\/li\u003e\n\u003cli\u003eQuick-access 3D yoke pocket\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eInternal Features\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003ePadded and suspended laptop pocket protects devices up to 16”. Fits Macbook Pro 16\".\u003c\/li\u003e\n\u003cli\u003eSuspended stretch sleeve for tablets, tech or documents\u003c\/li\u003e\n\u003cli\u003eSecurity zipper pocket with drop-in organization\u003c\/li\u003e\n\u003cli\u003eMesh zipper pocket\u003c\/li\u003e\n\u003c\/ul\u003e\n  \u003ch4\u003eFiner Details\u003c\/h4\u003e\n\u003cp\u003e\u003cspan\u003e- Bias cut panels for improved abrasion resistance or stretch\u003c\/span\u003e\u003cbr\u003e\u003cspan\u003e- Differentially cut shoulder straps for natural curve\u003c\/span\u003e\u003cbr\u003e\u003cspan\u003e- Aluminum side stay for sturdy side carry\u003c\/span\u003e\u003cbr\u003e\u003cspan\u003e- Utility loops outside of top carry handle to temporarily clip\/secure smaller items\u003c\/span\u003e\u003cbr\u003e\u003cspan\u003e- Loop logo patch allows for customization with our Hi-Vis Patches\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"spec\"\u003e\n\u003cp\u003e\u003cstrong\u003eShell Textile\u003c\/strong\u003e\u003cbr\u003eBlack Magic ULTRA 200X\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eLining Fabric\u003c\/strong\u003e\u003cbr\u003eWhite 210D Nylon 6,6 with PU coating and silicone finish\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial Details\u003c\/strong\u003e\u003cbr\u003e- Shoulder pad foam: Zote EV50\u003cbr\u003e- Frame Sheet: HDPE\u003cbr\u003e- Aluminum side stay: 7075 grade\u003cbr\u003e- Exterior Zippers: #10 and #8 YKK RCPU coated zippers\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eDimensions\u003c\/strong\u003e\u003cbr\u003e11.5\"W x 8\"D x 19\"H | 29.2W x 20.3D x 48.2H cm\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWeight\u003c\/strong\u003e\u003cbr\u003e3lbs 3.5oz | 1459g\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n  .ctb-feature-carousel,\n  .ctb-feature-carousel * {\n    box-sizing: border-box;\n  }\n\n  .ctb-feature-carousel {\n    position: relative;\n    width: 100%;\n    max-width: 1440px;\n    margin: 40px auto;\n    padding-inline: 16px;\n    font-family: inherit;\n  }\n\n  .ctb-feature-carousel__track {\n    display: flex;\n    gap: 30px;\n    width: 100%;\n    margin: 0;\n    padding: 0;\n    overflow-x: auto;\n    overflow-y: hidden;\n    scroll-snap-type: x mandatory;\n    overscroll-behavior-x: contain;\n    scrollbar-width: none;\n    touch-action: pan-x pan-y pinch-zoom;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .ctb-feature-carousel__track::-webkit-scrollbar {\n    display: none;\n  }\n\n  .ctb-feature-carousel__card {\n    flex: 0 0 86%;\n    min-width: 0;\n    margin: 0;\n    scroll-snap-align: start;\n    scroll-snap-stop: always;\n  }\n\n  .ctb-feature-carousel__image {\n    width: 100%;\n    overflow: hidden;\n    aspect-ratio: 4 \/ 5;\n    background: #f2f2f2;\n  }\n\n  .ctb-feature-carousel__image img {\n    display: block;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    transition: transform 500ms ease;\n  }\n\n  .ctb-feature-carousel__card:hover img {\n    transform: scale(1.02);\n  }\n\n  .ctb-feature-carousel__title {\n    margin: 20px 0 10px;\n    color: inherit;\n    font: inherit;\n    font-size: 20px;\n    font-weight: 700;\n    line-height: 1.2;\n    letter-spacing: 0.01em;\n    text-transform: uppercase;\n  }\n\n  .ctb-feature-carousel__text {\n    margin: 0;\n    color: inherit;\n    font: inherit;\n    font-size: 15px;\n    line-height: 1.55;\n  }\n\n  .ctb-feature-carousel__arrow {\n    position: absolute;\n    top: 34%;\n    z-index: 3;\n    display: grid;\n    width: 46px;\n    height: 46px;\n    padding: 0;\n    border: 1px solid rgba(0, 0, 0, 0.15);\n    border-radius: 50%;\n    background: rgba(255, 255, 255, 0.94);\n    color: #111;\n    font: inherit;\n    font-size: 28px;\n    line-height: 1;\n    cursor: pointer;\n    place-items: center;\n    transform: translateY(-50%);\n    box-shadow: 0 3px 14px rgba(0, 0, 0, 0.14);\n  }\n\n  .ctb-feature-carousel__arrow--previous {\n    left: 24px;\n  }\n\n  .ctb-feature-carousel__arrow--next {\n    right: 24px;\n  }\n\n  .ctb-feature-carousel__arrow:disabled {\n    visibility: hidden;\n    opacity: 0;\n    pointer-events: none;\n  }\n\n  .ctb-feature-carousel__arrow:focus-visible,\n  .ctb-feature-carousel__dot:focus-visible {\n    outline: 3px solid #3578e5;\n    outline-offset: 3px;\n  }\n\n  .ctb-feature-carousel__navigation {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 9px;\n    margin-top: 24px;\n  }\n\n  .ctb-feature-carousel__dot {\n    width: 9px;\n    height: 9px;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    border-radius: 50%;\n    background: #b5b5b5;\n    cursor: pointer;\n    transition:\n      width 180ms ease,\n      border-radius 180ms ease,\n      background-color 180ms ease;\n  }\n\n  .ctb-feature-carousel__dot.is-active {\n    width: 26px;\n    border-radius: 999px;\n    background: #111;\n  }\n\n  @media (min-width: 900px) {\n    .ctb-feature-carousel {\n      padding-inline: 50px;\n    }\n\n    .ctb-feature-carousel__card {\n      flex-basis: calc((100% - 60px) \/ 3);\n    }\n\n    .ctb-feature-carousel__arrow {\n      top: 31%;\n      width: 52px;\n      height: 52px;\n      font-size: 31px;\n    }\n\n    .ctb-feature-carousel__arrow--previous {\n      left: 64px;\n    }\n\n    .ctb-feature-carousel__arrow--next {\n      right: 64px;\n    }\n\n    .ctb-feature-carousel__title {\n      font-size: 22px;\n    }\n\n    .ctb-feature-carousel__text {\n      font-size: 16px;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .ctb-feature-carousel__track {\n      scroll-behavior: auto !important;\n    }\n\n    .ctb-feature-carousel__image img {\n      transition: none;\n    }\n  }\n\u003c\/style\u003e\n\n\u003csection class=\"ctb-feature-carousel\" data-ctb-feature-carousel role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Civic Travel Bag 26L Ultra features\" tabindex=\"0\"\u003e\n  \u003cdiv class=\"ctb-feature-carousel__track\" data-feature-track\u003e\n    \u003carticle class=\"ctb-feature-carousel__card\"\u003e\n      \u003cdiv class=\"ctb-feature-carousel__image\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1112\/3836\/files\/ctb26-ultra-feature-shell-200x.jpg?v=1788273554\u0026amp;width=1200\" alt=\"CIVIC Travel Bag 26L ULTRA 200X Shell\" loading=\"eager\" fetchpriority=\"high\"\u003e\n      \u003c\/div\u003e\n\n      \u003ch3 class=\"ctb-feature-carousel__title\"\u003eULTRA 200X SHELL\u003c\/h3\u003e\n\n      \u003cp class=\"ctb-feature-carousel__text\"\u003e\n        Originally developed for high-performance outdoor equipment, ULTRA\n        200X combines exceptional durability with low weight. Its waterproof\n        laminated construction and UHMWPE fibers create a crisp, technical\n        shell built for demanding travel.\n      \u003c\/p\u003e\n    \u003c\/article\u003e\n\n    \u003carticle class=\"ctb-feature-carousel__card\"\u003e\n      \u003cdiv class=\"ctb-feature-carousel__image\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1112\/3836\/files\/ctb26-ultra-feature-white-interior.jpg?v=1788273571\u0026amp;width=1200\" alt=\"CIVIC Travel Bag 26L ULTRA Bright White Interior\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n\n      \u003ch3 class=\"ctb-feature-carousel__title\"\u003eBRIGHT WHITE INTERIOR\u003c\/h3\u003e\n\n      \u003cp class=\"ctb-feature-carousel__text\"\u003e\n        A custom 210D Nylon 6,6 lining in bright white makes locating your gear\n        quicker, whether you're digging through an overhead bin or packing\n        before an early flight. The lighter-weight textile also contributes to\n        overall weight savings without compromising durability.\n      \u003c\/p\u003e\n    \u003c\/article\u003e\n\n    \u003carticle class=\"ctb-feature-carousel__card\"\u003e\n      \u003cdiv class=\"ctb-feature-carousel__image\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1112\/3836\/files\/ctb26-ultra-feature-weather-ready-zippers.jpg?v=1788273547\u0026amp;width=1200\" alt=\"CIVIC Travel Bag 26L ULTRA Textile and Zippers\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n\n      \u003ch3 class=\"ctb-feature-carousel__title\"\u003eWEATHER-READY ZIPPERS\u003c\/h3\u003e\n\n      \u003cp class=\"ctb-feature-carousel__text\"\u003e\n        All exterior zippers use YKK’s most durable RC zipper with a PU\n        lamination that helps shed rain, snow, and splashes while maintaining\n        smooth operation. Combined with the waterproof ULTRA shell textile,\n        they add another layer of weather resistance for travel in\n        unpredictable conditions.\n      \u003c\/p\u003e\n    \u003c\/article\u003e\n\n    \u003carticle class=\"ctb-feature-carousel__card\"\u003e\n      \u003cdiv class=\"ctb-feature-carousel__image\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1112\/3836\/files\/ctb26-ultra-feature-panel-loading.jpg?v=1788273530\u0026amp;width=1200\" alt=\"CIVIC Travel Bag 26L ULTRA Signature Panel Loading\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n\n      \u003ch3 class=\"ctb-feature-carousel__title\"\u003eSIGNATURE PANEL LOADING\u003c\/h3\u003e\n\n      \u003cp class=\"ctb-feature-carousel__text\"\u003e\n        Full clamshell opening allows for easy packing when loading CTB.\n        Internal mesh zippered pocket and opaque security pocket with drop-in\n        pockets add additional internal organization.\n      \u003c\/p\u003e\n    \u003c\/article\u003e\n\n    \u003carticle class=\"ctb-feature-carousel__card\"\u003e\n      \u003cdiv class=\"ctb-feature-carousel__image\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1112\/3836\/files\/ctb26-ultra-feature-laptop-compartment.jpg?v=1788273563\u0026amp;width=1200\" alt=\"CIVIC Travel Bag 26L ULTRA Laptop Compartment\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n\n      \u003ch3 class=\"ctb-feature-carousel__title\"\u003eLAPTOP COMPARTMENT\u003c\/h3\u003e\n\n      \u003cp class=\"ctb-feature-carousel__text\"\u003e\n        Padded and suspended laptop compartment that is sized for devices up\n        to 16\".\n      \u003c\/p\u003e\n    \u003c\/article\u003e\n\n    \u003carticle class=\"ctb-feature-carousel__card\"\u003e\n      \u003cdiv class=\"ctb-feature-carousel__image\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1112\/3836\/files\/ctb26-ultra-feature-water-bottle-pockets.jpg?v=1788273539\u0026amp;width=1200\" alt=\"CIVIC Travel Bag 26L ULTRA Water Bottle Pockets\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n\n      \u003ch3 class=\"ctb-feature-carousel__title\"\u003e\n        DUAL SIDE UTILITY POCKETS\n      \u003c\/h3\u003e\n\n      \u003cp class=\"ctb-feature-carousel__text\"\u003e\n        Built from durable 4-way stretch woven, the two side pockets securely\n        hold water bottles, umbrellas, and other quick-access essentials while\n        maintaining a clean profile when not in use.\n      \u003c\/p\u003e\n    \u003c\/article\u003e\n  \u003c\/div\u003e\n\n  \u003cbutton class=\"ctb-feature-carousel__arrow ctb-feature-carousel__arrow--previous\" type=\"button\" data-feature-previous aria-label=\"Previous features\"\u003e‹\u003c\/button\u003e\n\n  \u003cbutton class=\"ctb-feature-carousel__arrow ctb-feature-carousel__arrow--next\" type=\"button\" data-feature-next aria-label=\"Next features\"\u003e›\u003c\/button\u003e\n\n  \u003cdiv class=\"ctb-feature-carousel__navigation\" data-feature-navigation aria-label=\"Feature carousel navigation\"\u003e\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003cscript\u003e\n(function () {\n  function initializeFeatureCarousel(root) {\n    if (root.dataset.featureCarouselReady === 'true') return;\n    root.dataset.featureCarouselReady = 'true';\n\n    var track = root.querySelector('[data-feature-track]');\n    var cards = Array.prototype.slice.call(\n      root.querySelectorAll('.ctb-feature-carousel__card')\n    );\n    var previousButton = root.querySelector('[data-feature-previous]');\n    var nextButton = root.querySelector('[data-feature-next]');\n    var navigation = root.querySelector('[data-feature-navigation]');\n    var positions = [];\n    var dots = [];\n    var currentPage = 0;\n    var scrollFrame;\n\n    cards.forEach(function (card, index) {\n      card.setAttribute('role', 'group');\n      card.setAttribute('aria-roledescription', 'slide');\n      card.setAttribute(\n        'aria-label',\n        String(index + 1) + ' of ' + String(cards.length)\n      );\n    });\n\n    function reducedMotion() {\n      return window.matchMedia(\n        '(prefers-reduced-motion: reduce)'\n      ).matches;\n    }\n\n    function calculatePositions() {\n      var maximumScroll = Math.max(\n        0,\n        track.scrollWidth - track.clientWidth\n      );\n      var nextPositions = [];\n\n      cards.forEach(function (card) {\n        var position = Math.min(\n          card.offsetLeft - track.offsetLeft,\n          maximumScroll\n        );\n\n        if (\n          !nextPositions.length ||\n          Math.abs(position - nextPositions[nextPositions.length - 1]) \u003e 2\n        ) {\n          nextPositions.push(position);\n        }\n      });\n\n      positions = nextPositions.length ? nextPositions : [0];\n      currentPage = Math.max(\n        0,\n        Math.min(currentPage, positions.length - 1)\n      );\n\n      buildNavigation();\n      updateControls();\n    }\n\n    function buildNavigation() {\n      navigation.innerHTML = '';\n      dots = [];\n\n      positions.forEach(function (_position, index) {\n        var dot = document.createElement('button');\n\n        dot.type = 'button';\n        dot.className = 'ctb-feature-carousel__dot';\n        dot.setAttribute(\n          'aria-label',\n          'Go to feature group ' +\n            String(index + 1) +\n            ' of ' +\n            String(positions.length)\n        );\n\n        dot.addEventListener('click', function () {\n          goToPage(index);\n        });\n\n        navigation.appendChild(dot);\n        dots.push(dot);\n      });\n    }\n\n    function updateControls() {\n      previousButton.disabled = currentPage === 0;\n      nextButton.disabled = currentPage === positions.length - 1;\n\n      dots.forEach(function (dot, index) {\n        var active = index === currentPage;\n        dot.classList.toggle('is-active', active);\n        dot.setAttribute('aria-current', active ? 'true' : 'false');\n      });\n    }\n\n    function goToPage(index, behavior) {\n      currentPage = Math.max(\n        0,\n        Math.min(index, positions.length - 1)\n      );\n\n      track.scrollTo({\n        left: positions[currentPage],\n        behavior: behavior || (reducedMotion() ? 'auto' : 'smooth')\n      });\n\n      updateControls();\n    }\n\n    function findNearestPage() {\n      var nearestIndex = 0;\n      var nearestDistance = Infinity;\n\n      positions.forEach(function (position, index) {\n        var distance = Math.abs(track.scrollLeft - position);\n\n        if (distance \u003c nearestDistance) {\n          nearestDistance = distance;\n          nearestIndex = index;\n        }\n      });\n\n      return nearestIndex;\n    }\n\n    previousButton.addEventListener('click', function () {\n      goToPage(currentPage - 1);\n    });\n\n    nextButton.addEventListener('click', function () {\n      goToPage(currentPage + 1);\n    });\n\n    track.addEventListener(\n      'scroll',\n      function () {\n        window.cancelAnimationFrame(scrollFrame);\n\n        scrollFrame = window.requestAnimationFrame(function () {\n          var nextPage = findNearestPage();\n\n          if (nextPage !== currentPage) {\n            currentPage = nextPage;\n            updateControls();\n          }\n        });\n      },\n      { passive: true }\n    );\n\n    root.addEventListener('keydown', function (event) {\n      if (event.key === 'ArrowLeft') {\n        event.preventDefault();\n        goToPage(currentPage - 1);\n      }\n\n      if (event.key === 'ArrowRight') {\n        event.preventDefault();\n        goToPage(currentPage + 1);\n      }\n\n      if (event.key === 'Home') {\n        event.preventDefault();\n        goToPage(0);\n      }\n\n      if (event.key === 'End') {\n        event.preventDefault();\n        goToPage(positions.length - 1);\n      }\n    });\n\n    if ('ResizeObserver' in window) {\n      new ResizeObserver(function () {\n        calculatePositions();\n        goToPage(currentPage, 'auto');\n      }).observe(track);\n    }\n\n    calculatePositions();\n  }\n\n  function initializeAllFeatureCarousels(container) {\n    (container || document)\n      .querySelectorAll('[data-ctb-feature-carousel]')\n      .forEach(initializeFeatureCarousel);\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', function () {\n      initializeAllFeatureCarousels(document);\n    });\n  } else {\n    initializeAllFeatureCarousels(document);\n  }\n\n  document.addEventListener('shopify:section:load', function (event) {\n    initializeAllFeatureCarousels(event.target);\n  });\n})();\n\u003c\/script\u003e\n    \u003chr\u003e\n\u003cdiv id=\"war\"\u003e\u003cspan\u003eLifetime warranty\u003c\/span\u003e\u003c\/div\u003e\n\n\u003cdiv class=\"content-tab-info-section-container-left\"\u003e\n\u003cdiv class=\"content-tab-info-section-img\"\u003e\n\u003cimg src=\"https:\/\/evergoods.us\/cdn\/shop\/files\/Ultra-Section-Textile-Teaser-LP_1.jpg?v=1787759559\u0026amp;width=740\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"content-tab-info-section-txt prose\"\u003e\n\u003ch3 class=\"h3\"\u003eULTRA BLACK MAGIC 200X\n\n\u003c\/h3\u003e\n\u003cp\u003eULTRA 200X is an advanced shell textile chosen for one reason: it delivers exceptional durability while keeping weight to a minimum. Built with UHMWPE fibers and a waterproof laminate, it offers impressive abrasion resistance in a lightweight and sleek package. The fabric has a crisp, structured hand feel with a subtle cross-ply pattern that gives it a distinctly technical character.\n\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003chr\u003e\n\u003cimg src=\"https:\/\/evergoods.us\/cdn\/shop\/files\/CIVIC-Travel-Bag-ULTRA-hotspots-desktop_2_1.jpg?v=1787781540\u0026amp;width=2000\"\u003e\n\n","brand":"EVERGOODS","offers":[{"title":"Black Magic ULTRA 200X","offer_id":46483379060806,"sku":"EVGOCTB26L-BMW","price":579.0,"currency_code":"SGD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1112\/3836\/files\/civic-travel-bag-26l-ultra-front.png?v=1788273074","url":"https:\/\/storminggravity.com\/en-sg\/products\/civic-travel-bag-26l-ultra","provider":"Storming Gravity","version":"1.0","type":"link"}