Specifications View
• Use: On the move, around town, or anywhere you need to layer up to look and feel your best
• Material: Shell: Fleece 100% Polyester 240GSM. Contrast Pocket: 137178 - 88% Nylon, 12% Spandex 150GSM
• Stretch micro canvas
• Flat front with hidden stretch at waist & cuffs
• Functional zip pockets
• Relaxed fit with outdoor-ready details Complete the Look #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; } "use strict"; (() => { // 2026/03/MER/BA-4727 TAG - Complete the look AB test/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"], }; // 2026/03/MER/BA-4727 TAG - Complete the look AB test/scripts/pdp-utils.js function getCurrentProductId() { return window.dataLayer[2].product_id; } // 2026/03/MER/BA-4727 TAG - Complete the look AB test/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(); } // 2026/03/MER/BA-4727 TAG - Complete the look AB test/scripts/script.js function renderSlide(product) { return ` ${product.name} `; } 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 = () => !carousel.canScrollNext() && !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", () => carousel.scrollPrev()); nextButton.addEventListener("click", () => 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", () => { clearTimeout(window.__ctlResizeTimer); window.__ctlResizeTimer = setTimeout(reInit, 150); }); carousel.on("init", () => { handleInit(); reInit(); }); carousel.on("reInit", () => 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", () => { 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) => { 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(); }); })();