{"product_id":"merrell-jungle-fleece-jogger-bottoms-1778160833","title":"Merrell | Jungle Fleece Jogger - Bottoms","description":"\u003cdiv\u003eUtility-inspired and made for everyday wear. Fleece joggers made for more than comfort—soft, stretchy, and relaxed. Your new throw-on-and-go in style.        \u003c\/div\u003e        \u003cdiv\u003eUse: For urban outings, lazy days or anywhere you need outdoor durabilityMaterial: Fabric: Shell: Fleece 100% Polyester 240GSM. Contrast Pocket: 137178 - 88% Nylon, 12% Spandex 150GSMFeatures:• Soft, plush stretch fleece • Elastic waist with bungee cord • Zipper pockets• Pocket logo• Nina is 5'10\" and wearing size S\u003c!-- dwMarker=\"content\" dwContentID=\"c197ddbf0c447b0bb938a61c84\" --\u003e\u003cdiv\u003e\n\u003c!--  Developer:   Ticket:   Description:   Asset: complete-the-look-20260316--\u003e\u003cdiv\u003e  \u003cdiv\u003e    \u003cdiv\u003e      \u003ch2 class=\"ctl-title\"\u003eComplete the Look\u003c\/h2\u003e    \u003csvg fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003cp\u003e        \u003c\/p\u003e\u003c\/svg\u003e\n\u003c\/div\u003e    \u003cdiv\u003e      \u003cdiv\u003e        \u003cdiv\u003e\u003c\/div\u003e      \u003c\/div\u003e    \u003c\/div\u003e    \u003cdiv\u003e      \u003cdiv\u003e  \u003c\/div\u003e      \u003cdiv\u003e        \u003cdiv\u003e\u003c\/div\u003e      \u003c\/div\u003e    \u003c\/div\u003e  \u003c\/div\u003e\n\u003cstyle\u003e  #complete-the-look {    --ctl-padding-x: 0;    --ctl-card-min-width: 265px;    --ctl-card-max-width: 640px;    --ctl-gap: 1rem;    --ctl-progress-max-width: 265px;    display: none;  }  @media (min-width: 768px) {    #complete-the-look {      --ctl-progress-max-width: 384px;    }  }  @media (min-width: 1024px) {    #complete-the-look {      --ctl-card-min-width: 249px;      --ctl-progress-max-width: 800px;    }  }  .ctl {    font-size: 1rem;    color: var(--color-base);    background: #fff;    text-align: left;  }  .ctl * {    -webkit-font-smoothing: antialiased;    box-sizing: border-box;  }  .ctl a {    color: inherit;    text-decoration: none;  }  .ctl img {    display: block;    width: 100%;    height: auto;  }  .ctl-wrapper {    padding: 0 var(--ctl-padding-x);    margin: 0 auto;    max-width: max-content;    border-top: 1px solid black;  }  .ctl-header {    display: flex;    padding: 1.5rem 0;    align-items: center;    justify-content: space-between;  }  .ctl-title {    font-size: 1.5rem;    margin: 0;    font-weight: 500;    line-height: 1.75rem;    letter-spacing: -0.48px;  }  .ctl-toggle {    display: flex;    height: auto;    background: none;    border: none;    cursor: pointer;    align-items: center;    justify-content: center;  }  .ctl-toggle svg {    width: 15px;    transition: transform 0.3s ease;    height: 15px;  }  .ctl-toggle.is-collapsed svg {    transform: rotate(180deg);  }  .ctl-carousel {    margin: 0 calc(var(--ctl-padding-x) * -1);  }  .ctl-carousel-viewport {    overflow: hidden;    padding-inline: var(--ctl-padding-x);  }  .ctl-carousel-container {    display: flex;    gap: var(--ctl-gap);    touch-action: pan-y pinch-zoom;  }  .ctl-slide {    max-width: var(--ctl-card-max-width);    flex: 0 0 auto;    min-width: var(--ctl-card-min-width);    flex: 1 0 0;  }  .ctl-slide-link {    display: flex;    flex-direction: column;    background: #f2f2f2;    border-radius: 1rem;    overflow: hidden;    height: 100%;  }  .ctl-slide-img-wrapper {    display: flex;    aspect-ratio: 1\/1;    overflow: hidden;    align-items: center;    justify-content: center;  }  .ctl-slide-img {    width: 100%;    height: 100%;    object-fit: cover;    mix-blend-mode: multiply;  }  .ctl-slide-info {    display: flex;    padding: 1rem;    align-items: center;    gap: 0.5rem;  }  .ctl-slide-name {    font-size: 1rem;    margin: 0;    flex: 1;    font-weight: 500;    line-height: 1.5rem;  }  .ctl-slide-arrow {    display: flex;    width: 26px;    flex-shrink: 0;    align-items: center;    overflow: hidden;  }  .ctl-slide-arrow svg {    width: 24px;    height: auto;    flex-shrink: 0;  }  .ctl-controls {    display: flex;    padding: 1rem 0;    align-items: flex-start;    justify-content: space-between;    gap: 10.25rem;  }  @media (min-width: 1024px) {    .ctl-controls {      padding: 1.5rem 0;    }  }  .ctl-btns {    display: none;    gap: 1rem;  }  @media (min-width: 1024px) {    .ctl-btns {      display: flex;    }  }  .ctl-btn {    display: flex;    justify-content: center;    align-items: center;    width: 3rem;    height: 3rem;    background: #f2f2f2;    border: none;    border-radius: 9999px;    cursor: pointer;    padding: 0;    transition:      background 0.15s ease,      opacity 0.15s ease;  }  .ctl-btn::after {    content: \"\";    display: block;    width: 1rem;    height: 1rem;    background-position: center;    background-repeat: no-repeat;    background-size: contain;    transition: transform 0.3s ease;  }  .ctl-btn[disabled] {    cursor: not-allowed;    pointer-events: none;    opacity: 0.5;  }  .ctl-btn.carousel-hide {    visibility: hidden;  }  .ctl-btn-prev::after {    background-image: url(\"data:image\/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNSIgdmlld0JveD0iMCAwIDE4IDE1IiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMTcgNi4zNjM5NUMxNy41NTIzIDYuMzYzOTUgMTggNi44MTE2NyAxOCA3LjM2Mzk1QzE4IDcuOTE2MjQgMTcuNTUyMyA4LjM2Mzk1IDE3IDguMzYzOTVWNy4zNjM5NVY2LjM2Mzk1Wk0wLjI5Mjg5MiA4LjA3MTA2Qy0wLjA5NzYzMTUgNy42ODA1NCAtMC4wOTc2MzE1IDcuMDQ3MzcgMC4yOTI4OTIgNi42NTY4NUw2LjY1Njg1IDAuMjkyODg1QzcuMDQ3MzggLTAuMDk3NjM5NiA3LjY4MDU0IC0wLjA5NzYzOTYgOC4wNzEwNyAwLjI5Mjg4NUM4LjQ2MTU5IDAuNjgzNDA5IDguNDYxNTkgMS4zMTY1NyA4LjA3MTA3IDEuNzA3MUwyLjQxNDIxIDcuMzYzOTVMOC4wNzEwNyAxMy4wMjA4QzguNDYxNTkgMTMuNDExMyA4LjQ2MTU5IDE0LjA0NDUgOC4wNzEwNyAxNC40MzVDNy42ODA1NCAxNC44MjU1IDcuMDQ3MzggMTQuODI1NSA2LjY1Njg1IDE0LjQzNUwwLjI5Mjg5MiA4LjA3MTA2Wk0xNyA3LjM2Mzk1VjguMzYzOTVIMVY3LjM2Mzk1VjYuMzYzOTVIMTdWNy4zNjM5NVoiIGZpbGw9IiMxOTE5MTkiLz4KPC9zdmc+\");  }  @media (hover: hover) {    .ctl-btn-prev:hover::after {      transform: translateX(-30%);    }  }  .ctl-btn-next::after {    background-image: url(\"data:image\/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNSIgdmlld0JveD0iMCAwIDE4IDE1IiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMSA2LjM2Mzk1QzAuNDQ3NzE1IDYuMzYzOTUgMCA2LjgxMTY3IDAgNy4zNjM5NUMwIDcuOTE2MjQgMC40NDc3MTUgOC4zNjM5NSAxIDguMzYzOTVWNy4zNjM5NVY2LjM2Mzk1Wk0xNy43MDcxIDguMDcxMDZDMTguMDk3NiA3LjY4MDU0IDE4LjA5NzYgNy4wNDczNyAxNy43MDcxIDYuNjU2ODVMMTEuMzQzMSAwLjI5Mjg4NUMxMC45NTI2IC0wLjA5NzYzOTYgMTAuMzE5NSAtMC4wOTc2Mzk2IDkuOTI4OTMgMC4yOTI4ODVDOS41Mzg0MSAwLjY4MzQwOSA5LjUzODQxIDEuMzE2NTcgOS45Mjg5MyAxLjcwNzFMMTUuNTg1OCA3LjM2Mzk1TDkuOTI4OTMgMTMuMDIwOEM5LjUzODQxIDEzLjQxMTMgOS41Mzg0MSAxNC4wNDQ1IDkuOTI4OTMgMTQuNDM1QzEwLjMxOTUgMTQuODI1NSAxMC45NTI2IDE0LjgyNTUgMTEuMzQzMSAxNC40MzVMMTcuNzA3MSA4LjA3MTA2Wk0xIDcuMzYzOTVWOC4zNjM5NUgxN1Y3LjM2Mzk1VjYuMzYzOTVIMVY3LjM2Mzk1WiIgZmlsbD0iIzE5MTkxOSIvPgo8L3N2Zz4=\");  }  @media (hover: hover) {    .ctl-btn-next:hover::after {      transform: translateX(30%);    }  }  @media (hover: hover) {    .ctl-btn:hover {      background: #ff803b;    }  }  .ctl-progress-wrapper {    display: flex;    flex: 1;    flex-direction: column;    align-items: center;    padding-top: 1rem;  }  @media (min-width: 1024px) {    .ctl-progress-wrapper {      padding-top: 1.5rem;    }  }  .ctl-progress {    position: relative;    width: 100%;    max-width: var(--ctl-progress-max-width);    height: 4px;    background: #e3e3e3;    border-radius: 8px;    overflow: hidden;  }  .ctl-progress::after {    position: absolute;    top: 0;    left: 0;    width: var(--scroll-progress, 0%);    content: \"\";    height: 100%;    background: var(--color-base);    border-radius: 8px;    transition: width 0.1s ease;  }  .ctl-progress.carousel-hide {    visibility: hidden;  }\u003c\/style\u003e\n\u003cscript\u003e  \"use strict\";  (() =\u003e {    \/\/ projects\/merrell-complete-the-look\/scripts\/cross-sell-map.js    var crossSellMap = {      \"60744M\": [\"60746M\", \"60748M\", \"60760M\", \"17703M\"],      \"60746M\": [\"60744M\", \"60748M\", \"60760M\", \"17703M\"],      \"60748M\": [\"60746M\", \"60744M\", \"60760M\", \"17703M\"],      \"60753M\": [\"60758M\", \"60748M\", \"60812U\"],      \"60745W\": [\"60747W\", \"60749W\", \"60930W\", \"16256W\"],      \"60747W\": [\"60745W\", \"60749W\", \"60930W\", \"16256W\"],      \"60749W\": [\"60745W\", \"60747W\", \"60930W\", \"16256W\"],      \"60628W\": [\"60755W\", \"60700W\", \"60738U\"],      \"17703M\": [\"61113M\", \"61081M\", \"61085U\"],      \"44491W\": [\"61086W\", \"61087W\", \"61085U\"],      \"60644M\": [\"61092M\", \"61081M\", \"61084U\"],      \"16256W\": [\"61107W\", \"61111W\", \"60735U\"],    };    \/\/ projects\/merrell-complete-the-look\/scripts\/pdp-utils.js    function getCurrentProductId() {      return window.dataLayer[2].product_id;    }    \/\/ projects\/merrell-complete-the-look\/scripts\/api.js    var API_URL = \"https:\/\/fedapps.wolverineworldwide.com\";    var PRODUCTS_ENDPOINT = \"\/api\/products\";    function getSiteParams() {      const siteId = window.CQuotient?.siteId || \"merrell_us\";      const locale = window.CQuotient?.locale?.replace(\"_\", \"-\") || \"en-US\";      return { siteId, locale };    }    async function fetchProducts(styleCodes) {      const { siteId, locale } = getSiteParams();      const url = new URL(`${API_URL}${PRODUCTS_ENDPOINT}`);      url.searchParams.append(\"ids\", styleCodes.join(\",\"));      url.searchParams.append(\"siteId\", siteId);      url.searchParams.append(\"locale\", locale);      const response = await fetch(url);      if (!response.ok) {        throw new Error(`Failed to fetch products: ${response.status}`);      }      return response.json();    }    \/\/ projects\/merrell-complete-the-look\/scripts\/script.js    function renderSlide(product) {      return `    \u003cdiv\u003e      \u003ca href=\"${product.url}\" class=\"ctl-slide-link\"\u003e        \u003cdiv\u003e        \u003c\/div\u003e        \u003cdiv\u003e\u003ch3 class=\"ctl-slide-name\"\u003e${product.name}\u003c\/h3\u003e\u003cspan class=\"ctl-slide-arrow\"\u003e \u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"25\" height=\"12\" viewBox=\"0 0 25 12\" fill=\"none\"\u003e  \u003cp\u003e\u003c\/svg\u003e        \u003c\/div\u003e      \u003c\/a\u003e    \u003c\/div\u003e  `;    }    function initCarousel() {      const root = document.querySelector(\"#complete-the-look\");      const viewportNode = root.querySelector(\".ctl-carousel-viewport\");      const prevButton = root.querySelector(\".ctl-btn-prev\");      const nextButton = root.querySelector(\".ctl-btn-next\");      const scrollbarNode = root.querySelector(\".ctl-progress\");      const carousel = EmblaCarousel(viewportNode, {        align: \"start\",        skipSnaps: true,      });      const hideClass = \"carousel-hide\";      const canNotScroll = () =\u003e        !carousel.canScrollNext() \u0026\u0026 !carousel.canScrollPrev();      function handleInit(isReInit = false) {        function updateButtons() {if (!prevButton || !nextButton) return;function setButtonStates() {  prevButton.toggleAttribute(\"disabled\", !carousel.canScrollPrev());  nextButton.toggleAttribute(\"disabled\", !carousel.canScrollNext());}if (canNotScroll()) {  prevButton.classList.add(hideClass);  nextButton.classList.add(hideClass);} else {  prevButton.classList.remove(hideClass);  nextButton.classList.remove(hideClass);}if (!isReInit) {  prevButton.addEventListener(\"click\", () =\u003e carousel.scrollPrev());  nextButton.addEventListener(\"click\", () =\u003e carousel.scrollNext());  carousel.on(\"select\", setButtonStates);}setButtonStates();        }        function updateScrollbar() {if (!scrollbarNode) return;function setScrollProgress() {  const rootNode = carousel.rootNode();  const containerNode = carousel.containerNode();  const rootWidth = rootNode.clientWidth;  const containerWidth = containerNode.scrollWidth;  const visibleRatio = containerWidth    ? Math.min(1, rootWidth \/ containerWidth)    : 1;  const progress = Math.max(    0,    Math.min(1, carousel.scrollProgress()),  );  const viewportCoverageRatio =    progress * (1 - visibleRatio) + visibleRatio;  const progressPercent = Math.ceil(viewportCoverageRatio * 1e3) \/ 10;  scrollbarNode.style.setProperty(    \"--scroll-progress\",    `${progressPercent}%`,  );}if (canNotScroll()) {  scrollbarNode.classList.add(hideClass);} else {  scrollbarNode.classList.remove(hideClass);}carousel.on(\"scroll\", setScrollProgress);setScrollProgress();        }        updateButtons();        updateScrollbar();      }      function reInit() {        carousel.reInit({ watchDrag: !canNotScroll() });      }      window.addEventListener(\"resize\", () =\u003e {        clearTimeout(window.__ctlResizeTimer);        window.__ctlResizeTimer = setTimeout(reInit, 150);      });      carousel.on(\"init\", () =\u003e {        handleInit();        reInit();      });      carousel.on(\"reInit\", () =\u003e handleInit(true));    }    function initToggle() {      const root = document.querySelector(\"#complete-the-look\");      const toggle = root.querySelector(\".ctl-toggle\");      const carousel = root.querySelector(\".ctl-carousel\");      const controls = root.querySelector(\".ctl-controls\");      toggle.addEventListener(\"click\", () =\u003e {        const collapsed = toggle.classList.toggle(\"is-collapsed\");        carousel.style.display = collapsed ? \"none\" : \"\";        controls.style.display = collapsed ? \"none\" : \"\";      });    }    fedlib.pollForDataLayer(async function () {      const productId = getCurrentProductId();      if (!productId) return;      const recommendations = crossSellMap[productId];      if (!recommendations) return;      const productsData = await fetchProducts(recommendations);      const products = productsData.data || [];      if (!products.length) return;      const enrichedProducts = products.map((product) =\u003e {        const slugUrl = new URL(product.slugUrl);        return {name: product.name,price: product.price,image: product.imageGroups[0].images[0].link,url: location.origin + slugUrl.pathname,        };      });      const container = document.querySelector(\".ctl-carousel-container\");      container.innerHTML = enrichedProducts.map(renderSlide).join(\"\");      const root = document.querySelector(\"#complete-the-look\");      root.style.display = \"\";      const productDescCol = root.closest(\".bfx-product-desc\");      if (productDescCol) {        const row = productDescCol.closest(\".row\");        const insertAfter = row || productDescCol;        insertAfter.after(root);      }      initCarousel();      initToggle();    });  })();\u003c\/script\u003e\n\u003c\/div\u003e\n\u003c!-- End content-asset --\u003e        \u003c\/div\u003e\n\u003c\/div\u003e","brand":"bingo","offers":[{"title":"Black \/ 2","offer_id":47072157335721,"sku":"1778160833-Black-2","price":32.0,"currency_code":"USD","in_stock":true},{"title":"Black \/ 4","offer_id":47072157368489,"sku":"1778160833-Black-4","price":32.0,"currency_code":"USD","in_stock":true},{"title":"Black \/ 6","offer_id":47072157401257,"sku":"1778160833-Black-6","price":32.0,"currency_code":"USD","in_stock":true},{"title":"Black \/ 8","offer_id":47072157434025,"sku":"1778160833-Black-8","price":32.0,"currency_code":"USD","in_stock":true},{"title":"Black \/ 10","offer_id":47072157466793,"sku":"1778160833-Black-10","price":32.0,"currency_code":"USD","in_stock":true},{"title":"Black \/ 12","offer_id":47072157499561,"sku":"1778160833-Black-12","price":32.0,"currency_code":"USD","in_stock":true},{"title":"Black \/ 14","offer_id":47072157532329,"sku":"1778160833-Black-14","price":32.0,"currency_code":"USD","in_stock":true},{"title":"Black \/ 16","offer_id":47072157565097,"sku":"1778160833-Black-16","price":32.0,"currency_code":"USD","in_stock":true},{"title":"Black \/ 18","offer_id":47072157597865,"sku":"1778160833-Black-18","price":32.0,"currency_code":"USD","in_stock":true},{"title":"Chalk\/Desert \/ 2","offer_id":47072157630633,"sku":"1778160833-Chalk-Desert-2","price":32.0,"currency_code":"USD","in_stock":true},{"title":"Chalk\/Desert \/ 4","offer_id":47072157663401,"sku":"1778160833-Chalk-Desert-4","price":32.0,"currency_code":"USD","in_stock":true},{"title":"Chalk\/Desert \/ 6","offer_id":47072157696169,"sku":"1778160833-Chalk-Desert-6","price":32.0,"currency_code":"USD","in_stock":true},{"title":"Chalk\/Desert \/ 8","offer_id":47072157728937,"sku":"1778160833-Chalk-Desert-8","price":32.0,"currency_code":"USD","in_stock":true},{"title":"Chalk\/Desert \/ 10","offer_id":47072157761705,"sku":"1778160833-Chalk-Desert-10","price":32.0,"currency_code":"USD","in_stock":true},{"title":"Chalk\/Desert \/ 12","offer_id":47072157794473,"sku":"1778160833-Chalk-Desert-12","price":32.0,"currency_code":"USD","in_stock":true},{"title":"Chalk\/Desert \/ 14","offer_id":47072157827241,"sku":"1778160833-Chalk-Desert-14","price":32.0,"currency_code":"USD","in_stock":true},{"title":"Chalk\/Desert \/ 16","offer_id":47072157860009,"sku":"1778160833-Chalk-Desert-16","price":32.0,"currency_code":"USD","in_stock":true},{"title":"Chalk\/Desert \/ 18","offer_id":47072157892777,"sku":"1778160833-Chalk-Desert-18","price":32.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0737\/4363\/0505\/files\/1778160833_1.jpg?v=1778465274","url":"https:\/\/willmeskimen.com\/products\/merrell-jungle-fleece-jogger-bottoms-1778160833","provider":"Merrell Official Site","version":"1.0","type":"link"}