[email protected]

Sign up and GET 20% OFF for your first order.
Menu

Shopping Cart

Nuna Trvl Stroller Cavi

Original price was: $323.00.Current price is: $145.00.
Categories:

Description Features What’s Included Specifications Reviews Related Content FAQ Key Features What’s Included Specifications Learn More Related Guides & Comparisons Helpful stroller guides, comparisons and buying advice related to this product. Frequently Asked Questions Description Features What’s Included Specifications Reviews Related Content FAQ Description Reviews FAQ Nuna TRVL Stroller The Nuna TRVL Stroller is an ultra-lightweight travel stroller designed for city life, weekend trips and everyday outings with baby. Weighing just 15 lbs without the arm bar, it combines full-featured comfort with a compact self-folding design that makes transitions easier on the go. At the touch of a button on the handle, the TRVL folds itself into a compact package and stands independently when folded. It also connects directly with compatible Nuna PIPA series infant car seats without additional adapters, creating a simple and convenient travel system. Ultra-Lightweight Travel Stroller Built for families who want maximum portability without giving up everyday comfort, the TRVL weighs just 15 lbs and can be carried using the integrated carry strap or handle when folded. Its compact dimensions make it especially practical for travel, smaller trunks and busy urban environments. TRVL Key Features Ultra-lightweight 15 lb stroller design makes carrying and travelling easier One-hand self-collapsing fold helps simplify transitions while holding baby or managing other gear Stands independently when folded for convenient storage Integrated carry strap and handle make the folded stroller easier to transport Travel-system ready with direct attachment for compatible Nuna PIPA series infant car seats PIPA infant car seats connect directly to the arm bar with one click and require no additional adapters MagneTech Secure Snap self-guiding magnetic buckle automatically draws into place and locks Quick-release five-point no-rethread harness converts to a three-point harness as your child grows Customizable strap recline allows flexible seat positioning Two-position adjustable calf support provides additional comfort for growing children Full-size water-repellent UPF 50+ canopy includes a peek-a-boo window All-wheel suspension helps provide a smoother ride across everyday surfaces One-touch rear-wheel braking system provides quick and convenient stops Front swivel-wheel locks provide additional stability when needed Tall 19.3″ seat height creates generous room for the storage basket underneath Easy-access removable storage basket provides space for everyday essentials Leatherette-accented handle and removable arm bar add a refined finish Stroller fabrics use OEKO-TEX certified materials Travel bag included for easier transport and storage Nuna TRVL Specifications Suitable from: Newborn to 50 lbs Stroller dimensions: 20.25″ W 32.5″ D 44″ H Folded dimensions: 20.25″ W 11″ D 24″ H Stroller weight: 15 lbs without arm bar What’s Included With the Nuna TRVL? Nuna PIPA Travel System Compatibility The Nuna TRVL connects directly with compatible Nuna PIPA series infant car seats using the stroller’s arm bar. No separate car seat adapter is required, making it easy to create a compact travel system for newborn outings. One-Hand Self-Folding Design Press the folding control on the handle and the TRVL collapses into a compact package that stands independently, helping make travel and everyday storage more convenient. Direct Nuna PIPA Car Seat Connection Compatible Nuna PIPA series infant car seats attach directly to the stroller with one click, so no additional adapter is needed. Adjustable Recline and Calf Support The customizable recline and two-position calf support help create a comfortable riding position for naps, sightseeing and everyday outings. Removable and Rotating Arm Bar The removable and rotating arm bar makes it easier to place your child into the stroller while adapting to children of different sizes. Easy-Access Storage Basket The removable under-seat basket provides convenient storage for diapers, snacks and other essentials while keeping them easy to reach. /* ================================================== DESKTOP MAIN BOX ================================================== */ .stroller-tabs-wrapper { position: relative; width: 92vw; max-width: 1600px; margin-top: 44px; margin-bottom: 30px; margin-left: 50%; transform: translateX(-50%); background: #ffffff; border: 1px solid #dfe5e8; border-radius: 8px; overflow: hidden; box-sizing: border-box; box-shadow: 0 3px 12px rgba(29, 54, 67, 0.045); } /* ================================================== DESKTOP NAV ================================================== */ .stroller-tabs-nav { display: flex; align-items: stretch; width: 100%; margin: 0; padding: 0; background: #f8f9fa; border-bottom: 1px solid #dfe5e8; } .stroller-tab-button { position: relative; flex: 1 1 0; display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 60px; margin: 0; padding: 14px 12px; background: #f8f9fa; border: 0; border-right: 1px solid #e1e6e9; color: #363d42; font-size: 13px; font-weight: 600; line-height: 1.2; text-align: center; cursor: pointer; box-sizing: border-box; transition: background-color .2s ease, color .2s ease; } .stroller-tab-button:last-child { border-right: 0; } .stroller-tab-button::after { content: “”; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: transparent; } .stroller-tab-button:hover { background: #f1f9fd; color: #1687c9; } .stroller-tab-button.is-active { background: #ffffff; color: #1687c9; } .stroller-tab-button.is-active::after { background: #29a8e6; } /* ================================================== DESKTOP BODY ================================================== */ .stroller-tabs-body { width: 100%; min-height: 260px; background: #ffffff; } .stroller-tab-panel { display: none; width: 100%; } .stroller-tab-panel.is-active { display: block; } /* ================================================== CONTENT ================================================== */ .stroller-content-inner { width: 100%; padding: 42px 52px 50px; box-sizing: border-box; color: #343b40; font-size: 14px; line-height: 1.65; text-align: left; } .stroller-content-inner p, .stroller-content-inner li { text-align: left; } .stroller-description-content img { max-width: 100% !important; height: auto !important; } .stroller-description-content h1, .stroller-description-content h2, .stroller-description-content h3, .stroller-description-content h4 { text-align: left !important; } /* ================================================== SECTION HEADINGS ================================================== */ .stroller-section-heading { margin: 0 0 28px; } .stroller-section-heading h2 { margin: 0; color: #292e31; font-size: 24px; font-weight: 700; line-height: 1.25; text-align: left; } /* ================================================== FEATURES ================================================== */ .stroller-feature-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; } .stroller-feature-card { min-width: 0; padding: 25px 20px; background: #ffffff; border: 1px solid #e1e7ea; border-radius: 8px; box-sizing: border-box; text-align: center; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; } .stroller-feature-card:hover { transform: translateY(-2px); border-color: #b6dcea; box-shadow: 0 7px 20px rgba(38,117,150,.09); } .stroller-feature-icon { display: flex; align-items: center; justify-content: center; width: 54px; height: 54px; margin: 0 auto 15px; background: #edf9fd; border-radius: 50%; color: #219bc8; font-size: 15px; font-weight: 700; } .stroller-feature-title { margin-bottom: 8px; color: #292e31; font-size: 15px; font-weight: 700; text-align: center; } .stroller-feature-description { color: #647178; font-size: 12px; line-height: 1.55; text-align: center; } /* ================================================== INCLUDED ================================================== */ .stroller-included-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } .stroller-included-card { padding: 22px; background: #fafbfb; border: 1px solid #e1e6e9; border-radius: 8px; } .stroller-included-title { margin-bottom: 7px; color: #292e31; font-size: 14px; font-weight: 700; } .stroller-included-description { color: #65727a; font-size: 12px; line-height: 1.55; } /* ================================================== SPECIFICATIONS ================================================== */ .stroller-spec-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 54px; } .stroller-spec-row { display: grid; grid-template-columns: minmax(140px,.8fr) minmax(0,1.4fr); gap: 20px; padding: 13px 0; border-bottom: 1px solid #e7ecee; } .stroller-spec-label { color: #505b61; font-size: 12px; font-weight: 700; } .stroller-spec-value { color: #343b40; font-size: 12px; line-height: 1.5; } /* ================================================== RELATED CONTENT ================================================== */ .stroller-related-heading > span { display: block; margin-bottom: 8px; color: #279fc9; font-size: 11px; font-weight: 700; letter-spacing: 1.3px; text-transform: uppercase; } .stroller-related-heading p { max-width: 760px; margin: 10px 0 0; color: #657178; font-size: 13px; line-height: 1.6; } .stroller-related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; } .stroller-related-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; background: #ffffff; border: 1px solid #dfe6e9; border-radius: 8px; color: inherit; text-decoration: none; box-shadow: 0 3px 12px rgba(29,54,67,.045); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; } .stroller-related-card:hover { transform: translateY(-3px); border-color: #9fd4e8; color: inherit; text-decoration: none; box-shadow: 0 9px 24px rgba(38,117,150,.11); } .stroller-related-image-wrap { position: relative; width: 100%; aspect-ratio: 16 / 8.5; overflow: hidden; background: #f2f6f8; } .stroller-related-image { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; } .stroller-related-card:hover .stroller-related-image { transform: scale(1.025); } .stroller-related-image-placeholder { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 150px; padding: 20px; background: #f3f8fa; color: #91a4ad; font-size: 11px; font-weight: 600; letter-spacing: .4px; text-align: center; text-transform: uppercase; } .stroller-related-body { display: flex; flex: 1 1 auto; flex-direction: column; align-items: center; padding: 0 22px 20px; text-align: center; } .stroller-related-type { display: inline-flex; align-items: center; justify-content: center; min-height: 26px; margin-top: -13px; margin-bottom: 16px; padding: 5px 11px; background: #ffffff; border: 1px solid #cfe8f3; border-radius: 4px; color: #279fc9; font-size: 9px; font-weight: 700; letter-spacing: .7px; line-height: 1; text-transform: uppercase; box-shadow: 0 3px 8px rgba(38,117,150,.08); z-index: 2; } .stroller-related-title { margin: 0 0 14px; color: #30373b; font-size: 17px; font-weight: 700; line-height: 1.35; text-align: center; } .stroller-related-read { display: inline-flex; align-items: center; justify-content: center; margin-top: auto; color: #279fc9; font-size: 11px; font-weight: 700; line-height: 1.3; } .stroller-related-card:hover .stroller-related-read { color: #1687c9; } .stroller-mobile-related-grid { display: grid; grid-template-columns: 1fr; gap: 13px; } .stroller-mobile-related-card { display: block; overflow: hidden; background: #ffffff; border: 1px solid #dfe6e9; border-radius: 7px; color: inherit; text-decoration: none; box-shadow: 0 3px 10px rgba(29,54,67,.04); } .stroller-mobile-related-card:hover { color: inherit; text-decoration: none; border-color: #9fd4e8; } .stroller-mobile-related-image { display: block; width: 100%; aspect-ratio: 16 / 8.5; object-fit: cover; background: #f3f8fa; } .stroller-mobile-related-body { padding: 16px 16px 18px; } .stroller-mobile-related-title { margin-bottom: 9px; color: #30383d; font-size: 14px; font-weight: 700; line-height: 1.4; } .stroller-mobile-related-read { display: inline-block; color: #279fc9; font-size: 11px; font-weight: 700; } /* Tablet */ @media screen and (min-width:768px) and (max-width:1050px) { .stroller-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } /* Mobile */ @media screen and (max-width:767px) { .stroller-related-grid { grid-template-columns: 1fr; } } /* ================================================== REVIEW ================================================== */ .stroller-review-content { min-height: 280px; } /* ================================================== MOBILE DEFAULT ================================================== */ .stroller-mobile-accordion { display: none; } /* ================================================== TABLET ================================================== */ @media screen and (min-width:768px) and (max-width:1050px) { .stroller-tabs-wrapper { width: 94vw; } .stroller-content-inner { padding: 34px 32px 40px; } .stroller-feature-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .stroller-included-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .stroller-spec-grid { grid-template-columns: 1fr; } } /* ================================================== MOBILE ================================================== */ @media screen and (max-width:767px) { /* * Slightly wider than the original content column. * Approx. 12px extra on each side. */ .stroller-tabs-wrapper { width: calc(100% + 24px); max-width: none; margin-top: 20px; margin-bottom: 0; margin-left: -12px; transform: none; border-left: 0; border-right: 0; border-radius: 0; box-shadow: none; overflow: visible; } /* Hide desktop */ .stroller-tabs-nav, .stroller-tabs-body { display: none !important; } /* Show mobile accordion */ .stroller-mobile-accordion { display: block; width: 100%; background: #ffffff; } .stroller-mobile-item { width: 100%; border-bottom: 1px solid #e2e7ea; box-sizing: border-box; } .stroller-mobile-item:first-child { border-top: 1px solid #e2e7ea; } /* Header */ .stroller-mobile-trigger { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 60px; margin: 0; padding: 0 18px; background: #ffffff; border: 0; color: #30373c; font-size: 14px; font-weight: 600; text-align: left; cursor: pointer; box-sizing: border-box; } .stroller-mobile-trigger:hover { background: #fafcfd; } /* Arrow */ .stroller-mobile-arrow { position: relative; width: 18px; height: 18px; flex: 0 0 18px; margin-left: 16px; } .stroller-mobile-arrow::before, .stroller-mobile-arrow::after { content: “”; position: absolute; top: 8px; width: 7px; height: 1px; background: #40484d; transition: transform .2s ease; } .stroller-mobile-arrow::before { left: 2px; transform: rotate(45deg); } .stroller-mobile-arrow::after { right: 2px; transform: rotate(-45deg); } .stroller-mobile-item.is-open .stroller-mobile-arrow::before { transform: rotate(-45deg); } .stroller-mobile-item.is-open .stroller-mobile-arrow::after { transform: rotate(45deg); } /* Closed by default */ .stroller-mobile-panel { display: none; width: 100%; background: #ffffff; } .stroller-mobile-item.is-open .stroller-mobile-panel { display: block; } /* Content */ .stroller-mobile-content { width: 100%; padding: 18px 18px 26px; box-sizing: border-box; color: #49545a; font-size: 13px; line-height: 1.65; } .stroller-mobile-content p, .stroller-mobile-content li { text-align: left; } .stroller-mobile-description img { max-width: 100% !important; height: auto !important; } .stroller-mobile-description h1, .stroller-mobile-description h2, .stroller-mobile-description h3 { text-align: left !important; } /* Mobile cards */ .stroller-mobile-list { display: flex; flex-direction: column; gap: 11px; } .stroller-mobile-card { padding: 14px 15px; background: #fafbfb; border: 1px solid #e3e8eb; border-radius: 6px; } .stroller-mobile-card-title { margin-bottom: 5px; color: #30383d; font-size: 13px; font-weight: 700; } .stroller-mobile-card-description { color: #667279; font-size: 12px; line-height: 1.55; } /* Mobile specs */ .stroller-mobile-spec-list { width: 100%; } .stroller-mobile-spec-row { display: grid; grid-template-columns: minmax(100px,.8fr) minmax(0,1.2fr); gap: 14px; padding: 11px 0; border-bottom: 1px solid #e7ecee; } .stroller-mobile-spec-label { color: #505b61; font-size: 12px; font-weight: 700; } .stroller-mobile-spec-value { color: #505b61; font-size: 12px; line-height: 1.45; } } document.addEventListener(‘DOMContentLoaded’, function () { /* ===================================================== READ CUSTOM FIELDS ====================================================== */ var fieldContainer = document.getElementById( ‘productTabFields’ ); if (!fieldContainer) { return; } var fields = {}; fieldContainer .querySelectorAll( ‘.product-tab-field’ ) .forEach(function (field) { var name = field.getAttribute( ‘data-name’ ); if (!name) { return; } fields[name.trim()] = ( field.getAttribute( ‘data-value’ ) || ” ).trim(); }); /* ===================================================== STROLLER MODE ====================================================== */ var strollerMode = fields.stroller_tabs && fields.stroller_tabs .replace(/ ]*>/g,”) .trim() .toLowerCase() === ‘yes’; /* ===================================================== SINGLE DESCRIPTION SOURCE Keep product.description only once in the HTML. Move that same DOM node to the correct desktop/mobile container instead of rendering duplicate copies. ====================================================== */ var productDescriptionSource = document.getElementById( ‘productDescriptionSource’ ); function moveProductDescription() { if (!productDescriptionSource) { return; } var target = null; if (strollerMode) { target = window.innerWidth ]*>/g,”) .trim(); if (!clean) { return; } results.push({ number: parseInt( match[1], 10 ), value: fields[key] }); }); results.sort( function (a,b) { return a.number-b.number; } ); return results; } function splitField(value) { var temp = document.createElement( ‘div’ ); temp.innerHTML = value; var text = temp.textContent || temp.innerText || ”; var parts = text.split(‘|’); return { title: (parts.shift() || ”) .trim(), description: parts .join(‘|’) .trim() }; } function escapeHTML(value) { var div = document.createElement( ‘div’ ); div.textContent = value || ”; return div.innerHTML; } /* ===================================================== FEATURES ====================================================== */ var featureFields = getNumberedFields( ‘tab_features’ ); if (featureFields.length) { var featureButton = strollerWrapper.querySelector( ‘.stroller-tab-features’ ); var mobileFeature = strollerWrapper.querySelector( ‘.stroller-mobile-features’ ); if (featureButton) { featureButton.style.display = ‘flex’; } if (mobileFeature) { mobileFeature.style.display = ‘block’; } var desktopGrid = document.getElementById( ‘strollerFeaturesGrid’ ); var mobileGrid = document.getElementById( ‘strollerMobileFeaturesGrid’ ); featureFields.forEach( function (item,index) { var data = splitField( item.value ); if (desktopGrid) { var card = document.createElement( ‘div’ ); card.className = ‘stroller-feature-card’; card.innerHTML = ‘ ‘ + String(index+1) .padStart(2,’0’) + ‘ ‘ + ‘ ‘ + escapeHTML( data.title ) + ‘ ‘ + ( data.description ? ‘ ‘ + escapeHTML( data.description ) + ‘ ‘ : ” ); desktopGrid.appendChild( card ); } if (mobileGrid) { var mobileCard = document.createElement( ‘div’ ); mobileCard.className = ‘stroller-mobile-card’; mobileCard.innerHTML = ‘ ‘ + escapeHTML( data.title ) + ‘ ‘ + ( data.description ? ‘ ‘ + escapeHTML( data.description ) + ‘ ‘ : ” ); mobileGrid.appendChild( mobileCard ); } } ); } /* ===================================================== INCLUDED ====================================================== */ var includedFields = getNumberedFields( ‘tab_included’ ); if (includedFields.length) { var includedButton = strollerWrapper.querySelector( ‘.stroller-tab-included’ ); var mobileIncluded = strollerWrapper.querySelector( ‘.stroller-mobile-included’ ); if (includedButton) { includedButton.style.display = ‘flex’; } if (mobileIncluded) { mobileIncluded.style.display = ‘block’; } var includedGrid = document.getElementById( ‘strollerIncludedGrid’ ); var mobileIncludedGrid = document.getElementById( ‘strollerMobileIncludedGrid’ ); includedFields.forEach( function (item) { var data = splitField( item.value ); if (includedGrid) { var card = document.createElement( ‘div’ ); card.className = ‘stroller-included-card’; card.innerHTML = ‘ ‘ + escapeHTML( data.title ) + ‘ ‘ + ( data.description ? ‘ ‘ + escapeHTML( data.description ) + ‘ ‘ : ” ); includedGrid.appendChild( card ); } if (mobileIncludedGrid) { var mobileCard = document.createElement( ‘div’ ); mobileCard.className = ‘stroller-mobile-card’; mobileCard.innerHTML = ‘ ‘ + escapeHTML( data.title ) + ‘ ‘ + ( data.description ? ‘ ‘ + escapeHTML( data.description ) + ‘ ‘ : ” ); mobileIncludedGrid .appendChild( mobileCard ); } } ); } /* ===================================================== SPECIFICATIONS ====================================================== */ var specificationFields = getNumberedFields( ‘tab_specifications’ ); if (specificationFields.length) { var specButton = strollerWrapper.querySelector( ‘.stroller-tab-specifications’ ); var mobileSpec = strollerWrapper.querySelector( ‘.stroller-mobile-specifications’ ); if (specButton) { specButton.style.display = ‘flex’; } if (mobileSpec) { mobileSpec.style.display = ‘block’; } var specGrid = document.getElementById( ‘strollerSpecificationsGrid’ ); var mobileSpecGrid = document.getElementById( ‘strollerMobileSpecificationsGrid’ ); specificationFields.forEach( function (item) { var data = splitField( item.value ); if (specGrid) { var row = document.createElement( ‘div’ ); row.className = ‘stroller-spec-row’; row.innerHTML = ‘ ‘ + escapeHTML( data.title ) + ‘ ‘ + ‘ ‘ + escapeHTML( data.description ) + ‘ ‘; specGrid.appendChild( row ); } if (mobileSpecGrid) { var mobileRow = document.createElement( ‘div’ ); mobileRow.className = ‘stroller-mobile-spec-row’; mobileRow.innerHTML = ‘ ‘ + escapeHTML( data.title ) + ‘ ‘ + ‘ ‘ + escapeHTML( data.description ) + ‘ ‘; mobileSpecGrid.appendChild( mobileRow ); } } ); } /* ===================================================== RELATED CONTENT Article fields: tab_related_1 tab_related_2 … Format: Title|URL Matching image fields: tab_related_image_1 tab_related_image_2 … Image field value: Full image URL ====================================================== */ var relatedFields = getNumberedFields( ‘tab_related’ ); function splitRelatedField(value) { var temp = document.createElement( ‘div’ ); temp.innerHTML = value; var textValue = temp.textContent || temp.innerText || ”; var parts = textValue.split(‘|’); return { title: (parts[0] || ”) .trim(), url: (parts[1] || ”) .trim() }; } if (relatedFields.length) { var relatedButton = strollerWrapper.querySelector( ‘.stroller-tab-related’ ); var mobileRelated = strollerWrapper.querySelector( ‘.stroller-mobile-related’ ); if (relatedButton) { relatedButton.style.display = ‘flex’; } if (mobileRelated) { mobileRelated.style.display = ‘block’; } var relatedGrid = document.getElementById( ‘strollerRelatedGrid’ ); var mobileRelatedGrid = document.getElementById( ‘strollerMobileRelatedGrid’ ); relatedFields.forEach( function (item) { var data = splitRelatedField( item.value ); if ( !data.title || !data.url ) { return; } var imageFieldName = ‘tab_related_image_’ + item.number; var imageUrl = ( fields[imageFieldName] || ” ) .replace(/ ]*>/g,”) .trim(); if (relatedGrid) { var card = document.createElement( ‘a’ ); card.className = ‘stroller-related-card’; card.href = data.url; card.innerHTML = ‘ ‘ + ( imageUrl ? ‘ ‘ : ‘ ‘ + ‘Related Guide’ + ‘ ‘ ) + ‘ ‘ + ‘ ‘ + ‘ READ ‘ + ‘ ‘ + escapeHTML( data.title ) + ‘ ‘ + ‘ ‘ + ‘Read Now ‘ + ‘ ‘ + ‘ ‘; relatedGrid.appendChild( card ); } if (mobileRelatedGrid) { var mobileCard = document.createElement( ‘a’ ); mobileCard.className = ‘stroller-mobile-related-card’; mobileCard.href = data.url; mobileCard.innerHTML = ( imageUrl ? ‘ ‘ : ‘ ‘ + ‘Related Guide’ + ‘ ‘ ) + ‘ ‘ + ‘ ‘ + escapeHTML( data.title ) + ‘ ‘ + ‘ ‘ + ‘Read Now ‘ + ‘ ‘ + ‘ ‘; mobileRelatedGrid.appendChild( mobileCard ); } } ); } /* ===================================================== FAQ DESKTOP ====================================================== */ var faqSection = document.getElementById( ‘product-faq’ ); var faqTarget = document.getElementById( ‘strollerFaqTarget’ ); if ( faqSection && faqTarget ) { faqTarget.appendChild( faqSection ); } /* ===================================================== FAQ MOBILE ====================================================== */ var mobileFaqSection = document.getElementById( ‘product-faq-mobile’ ); var mobileFaqTarget = document.getElementById( ‘strollerMobileFaqTarget’ ); if ( mobileFaqSection && mobileFaqTarget ) { mobileFaqTarget.appendChild( mobileFaqSection ); } /* ===================================================== DESKTOP TAB CLICK ====================================================== */ var tabButtons = strollerWrapper .querySelectorAll( ‘[data-stroller-tab]’ ); tabButtons.forEach( function (button) { button.addEventListener( ‘click’, function () { var target = button.getAttribute( ‘data-stroller-tab’ ); tabButtons.forEach( function (item) { item.classList.remove( ‘is-active’ ); } ); strollerWrapper .querySelectorAll( ‘.stroller-tab-panel’ ) .forEach( function (panel) { panel.classList.remove( ‘is-active’ ); } ); button.classList.add( ‘is-active’ ); var targetPanel = document.getElementById( ‘stroller-panel-‘ + target ); if (targetPanel) { targetPanel.classList.add( ‘is-active’ ); } } ); } ); /* ===================================================== MOBILE ACCORDION ALL CLOSED BY DEFAULT ====================================================== */ var mobileItems = strollerWrapper .querySelectorAll( ‘.stroller-mobile-item’ ); mobileItems.forEach( function (item) { var trigger = item.querySelector( ‘.stroller-mobile-trigger’ ); if (!trigger) { return; } trigger.addEventListener( ‘click’, function () { var open = item.classList.contains( ‘is-open’ ); mobileItems.forEach( function (other) { other.classList.remove( ‘is-open’ ); } ); if (!open) { item.classList.add( ‘is-open’ ); } } ); } ); }); /* LA MILLOU THEME ONLY */ body.lm-textile-mode .stroller-tabs-wrapper { border-color: #dce6df; } /* DESKTOP TAB NAVIGATION */ body.lm-textile-mode .stroller-tabs-nav { background: #f7f9f7; border-bottom-color: #dce6df; } body.lm-textile-mode .stroller-tab-button { background: #f7f9f7; border-right-color: #e2e9e4; color: #34463b; } body.lm-textile-mode .stroller-tab-button:hover { background: #eef4ef; color: #445f52; } body.lm-textile-mode .stroller-tab-button.is-active { background: #ffffff; color: #445f52; } body.lm-textile-mode .stroller-tab-button.is-active::after { background: #6f8a7d; } /* SECTION HEADINGS */ body.lm-textile-mode .stroller-section-heading h2 { color: #273c30; } /* MATERIAL CARDS */ body.lm-textile-mode .stroller-feature-card { border-color: #dce6df; } body.lm-textile-mode .stroller-feature-card:hover { border-color: #9cb9a5; box-shadow: 0 7px 20px rgba(68,95,82,.08); } body.lm-textile-mode .stroller-feature-icon { background: #e7efe9; color: #445f52; } /* RELATED CONTENT */ body.lm-textile-mode .stroller-related-heading > span, body.lm-textile-mode .stroller-related-read, body.lm-textile-mode .stroller-mobile-related-read { color: #445f52; } body.lm-textile-mode .stroller-related-type { color: #445f52; border-color: #dce6df; } body.lm-textile-mode .stroller-related-card:hover, body.lm-textile-mode .stroller-mobile-related-card:hover { border-color: #9cb9a5; } /* MOBILE ACCORDION */ @media (max-width: 767px) { body.lm-textile-mode .stroller-mobile-item { border-bottom-color: #dce6df; } body.lm-textile-mode .stroller-mobile-trigger:hover { background: #f4f8f5; } body.lm-textile-mode .stroller-mobile-item.is-open > .stroller-mobile-trigger { background: #f4f8f5; color: #445f52; } body.lm-textile-mode .stroller-mobile-card { border-color: #dce6df; background: #f8faf8; } } (function () { “use strict”; /* ========================================= READ CUSTOM FIELD ========================================= */ var fieldContainer = document.getElementById(“productTabFields”); if (!fieldContainer) return; var fields = {}; fieldContainer .querySelectorAll(“.product-tab-field”) .forEach(function (field) { var name = field.getAttribute(“data-name”); var value = field.getAttribute(“data-value”); if (name) { fields[name.trim()] = (value || “”).trim(); } }); function isEnabled(value) { return String(value || “”) .replace(/ ]*>/g, “”) .trim() .toLowerCase() === “yes”; } var laMillouMode = isEnabled(fields.la_millou_tabs); if (!laMillouMode) return; /* Avoid overriding products already configured for the original stroller mode. */ if (isEnabled(fields.stroller_tabs)) return; /* ========================================= REUSE ORIGINAL STROLLER TAB ENGINE The original code reads Custom Fields on DOMContentLoaded. This field is inserted before that event, so the existing engine can run unchanged. ========================================= */ var modeField = document.createElement(“div”); modeField.className = “product-tab-field”; modeField.setAttribute(“data-name”, “stroller_tabs”); modeField.setAttribute(“data-value”, “yes”); fieldContainer.appendChild(modeField); document.body.classList.add(“lm-textile-mode”); /* ========================================= CHANGE LA MILLOU TAB LABELS ========================================= */ document.addEventListener(“DOMContentLoaded”, function () { var wrapper = document.getElementById(“strollerTabsWrapper”); if (!wrapper) return; var tabNames = { features: “Materials & Safety”, included: “Size & Details”, specifications: “Care Instructions” }; /* DESKTOP BUTTONS */ Object.keys(tabNames).forEach(function (key) { var button = wrapper.querySelector( ‘[data-stroller-tab=”‘ + key + ‘”]’ ); if (button) { button.textContent = tabNames[key]; } }); /* DESKTOP CONTENT HEADINGS */ var headings = { “stroller-panel-features”: “Materials & Safety”, “stroller-panel-included”: “Size & Product Details”, “stroller-panel-specifications”: “Care Instructions” }; Object.keys(headings).forEach(function (id) { var panel = document.getElementById(id); if (!panel) return; var heading = panel.querySelector( “.stroller-section-heading h2” ); if (heading) { heading.textContent = headings[id]; } }); /* RELATED CONTENT HEADING */ var relatedHeading = wrapper.querySelector( “.stroller-related-heading h2” ); if (relatedHeading) { relatedHeading.textContent = “La Millou Guides & Articles”; } var relatedDescription = wrapper.querySelector( “.stroller-related-heading p” ); if (relatedDescription) { relatedDescription.textContent = “Explore La Millou’s Polish design, ” + “fabric materials, textile safety ” + “and helpful product guides.”; } /* ========================================= MOBILE ACCORDION LABELS ========================================= */ var mobileLabels = { “.stroller-mobile-features”: “Materials & Safety”, “.stroller-mobile-included”: “Size & Details”, “.stroller-mobile-specifications”: “Care Instructions” }; Object.keys(mobileLabels).forEach(function (selector) { var item = wrapper.querySelector(selector); if (!item) return; var label = item.querySelector( “.stroller-mobile-trigger span” ); if (label) { label.textContent = mobileLabels[selector]; } }); }); })();

Add a Review

Your email address will not be published. Required fields are marked *

Related Products

Baby Jogger RapidLock Base
-50%
Baby Jogger RapidLock Base

$219.99   $110.00