{"product_id":"electric-scooter-with-seat-for-adults-350w-motor-seated-e-scooter-up-to-20-mph-25-miles-10-pneumatic-tires-dual-suspension-rear-cargo-basket-265-lbs-max-load-foldable-commuter-scooter","title":"Electric Scooter with Seat for Adults, 350W Motor Seated E-Scooter up to 20 MPH \u0026 25 Miles, 10\" Pneumatic Tires, Dual Suspension, Rear Cargo Basket, 265 Lbs Max Load Foldable Commuter Scooter","description":"\u003cbody\u003e\n\n\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1\"\u003e\n\u003ctitle\u003eX9 Electric Scooter with Seat \u0026amp; Basket — 350W Foldable Commuter for Adults\u003c\/title\u003e\n\u003cmeta name=\"description\" content=\"Meet the X9: a 350W foldable electric scooter with an adjustable seat, detachable basket and rear cargo box. Up to 20 mph, 19-25 miles per charge — built for commutes, groceries and pet-friendly trips.\"\u003e\n\n\n  \u003cmain class=\"x9-page\"\u003e\n    \u003cdiv class=\"rte\"\u003e\n\u003carticle class=\"x9-desc\" data-x9-desc\u003e\n  \u003c!-- Hero --\u003e\n  \u003csection class=\"x9-hero reveal\"\u003e\n    \u003cp class=\"x9-eyebrow\"\u003eSeated Commuter Series\u003c\/p\u003e\n    \u003ch2\u003eSit down. Stock up. Head out.\u003c\/h2\u003e\n    \u003cp class=\"x9-lead\"\u003eMeet the X9 — a foldable electric scooter with a real seat, a detachable basket, and a rear cargo box, built for the trips that make up your day: the commute, the grocery run, the vet visit, the park.\u003c\/p\u003e\n    \u003cp\u003eA smooth 350W motor, cushioned adjustable seat, and room for rider, bags, and a small copilot turn “last mile” into the best part of the trip.\u003c\/p\u003e\n\n    \u003cdiv class=\"x9-stats\" aria-label=\"Key specifications\"\u003e\n      \u003cdiv class=\"x9-stat\"\u003e\n        \u003cspan class=\"x9-stat-value\"\u003e\u003cspan data-count=\"20\"\u003e20\u003c\/span\u003e\u003csmall\u003emph\u003c\/small\u003e\u003c\/span\u003e\n        \u003cspan class=\"x9-stat-label\"\u003eTop speed\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"x9-stat\"\u003e\n        \u003cspan class=\"x9-stat-value\"\u003e\u003cspan data-count=\"25\"\u003e25\u003c\/span\u003e\u003csmall\u003emi\u003c\/small\u003e\u003c\/span\u003e\n        \u003cspan class=\"x9-stat-label\"\u003eMax. range \/ charge*\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"x9-stat\"\u003e\n        \u003cspan class=\"x9-stat-value\"\u003e\u003cspan data-count=\"265\"\u003e265\u003c\/span\u003e\u003csmall\u003elb\u003c\/small\u003e\u003c\/span\u003e\n        \u003cspan class=\"x9-stat-label\"\u003eRider + cargo load\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"x9-stat\"\u003e\n        \u003cspan class=\"x9-stat-value\"\u003e\u003cspan data-count=\"3\"\u003e3\u003c\/span\u003e\u003csmall\u003espd\u003c\/small\u003e\u003c\/span\u003e\n        \u003cspan class=\"x9-stat-label\"\u003eSpeed settings\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- Feature grid --\u003e\n  \u003csection class=\"x9-section reveal\"\u003e\n    \u003cp class=\"x9-eyebrow\"\u003eWhy X9\u003c\/p\u003e\n    \u003ch3\u003eComfort you sit in. Storage you actually use.\u003c\/h3\u003e\n\n    \u003cdiv class=\"x9-grid\"\u003e\n      \u003cdiv class=\"x9-card\"\u003e\n        \u003cspan class=\"x9-icon\" aria-hidden=\"true\"\u003e\n          \u003csvg viewbox=\"0 0 24 24\" focusable=\"false\"\u003e\u003cpath d=\"M4 12h13a3 3 0 0 1 3 3v1H7a3 3 0 0 1-3-3v-1z\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 16v4M8 20h8\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003c\/span\u003e\n        \u003ch4\u003eA seat that fits real adults\u003c\/h4\u003e\n        \u003cp\u003eThe soft, breathable seat adjusts to riders from 5′1″ to 6′1″, so longer neighborhood trips stay relaxed and fatigue-free — no standing required.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"x9-card\"\u003e\n        \u003cspan class=\"x9-icon\" aria-hidden=\"true\"\u003e\n          \u003csvg viewbox=\"0 0 24 24\" focusable=\"false\"\u003e\u003cpath d=\"M4 9h16l-1.5 9a2 2 0 0 1-2 1.7h-9A2 2 0 0 1 5.5 18L4 9z\"\u003e\u003c\/path\u003e\u003cpath d=\"M8 9l3.5-5L15 9M9 13v3M15 13v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003c\/span\u003e\n        \u003ch4\u003eBasket, cargo box \u0026amp; a 10″ wide deck\u003c\/h4\u003e\n        \u003cp\u003eA detachable basket up front, a rear cargo box behind you, and a generous 10-inch-wide deck underfoot — groceries, a gym bag, or pet supplies all come along.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"x9-card\"\u003e\n        \u003cspan class=\"x9-icon\" aria-hidden=\"true\"\u003e\n          \u003csvg viewbox=\"0 0 24 24\" focusable=\"false\"\u003e\u003cpath d=\"M4 8c2.5-4 5.5-4 8 0s5.5 4 8 0\"\u003e\u003c\/path\u003e\u003cpath d=\"M4 15c2.5-4 5.5-4 8 0s5.5 4 8 0\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003c\/span\u003e\n        \u003ch4\u003eSmooth over bumpy city streets\u003c\/h4\u003e\n        \u003cp\u003e10-inch shock-absorbing pneumatic tubeless tires and dual suspension take the buzz out of cracked pavement and uneven blocks.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"x9-card\"\u003e\n        \u003cspan class=\"x9-icon\" aria-hidden=\"true\"\u003e\n          \u003csvg viewbox=\"0 0 24 24\" focusable=\"false\"\u003e\u003cpath d=\"M12 3l7 3v5c0 4.5-3 8.5-7 10-4-1.5-7-5.5-7-10V6l7-3z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9.5 12l2 2 3.5-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003c\/span\u003e\n        \u003ch4\u003eCertified, locked-in safety\u003c\/h4\u003e\n        \u003cp\u003eUL 2272 and CE EN 17128 certified, with electronic E-ABS plus disc braking, a high-brightness LED headlight, a rear brake light, and an exclusive stem safety-bar lock.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- Comfort panel --\u003e\n  \u003csection class=\"x9-comfort reveal\"\u003e\n    \u003cp class=\"x9-eyebrow\"\u003eDesigned around your day\u003c\/p\u003e\n    \u003ch3\u003eUp to 25 miles of seated, sweep-the-errands freedom.\u003c\/h3\u003e\n    \u003cp\u003eThe high-capacity lithium battery returns 19–25 miles (30–40 km) per charge and refills in just 3–5 hours. Three speed settings let you match traffic, road conditions, and your mood.\u003c\/p\u003e\n\n    \u003cdiv class=\"x9-bars\"\u003e\n      \u003cdiv class=\"x9-bar-row\"\u003e\n        \u003cdiv class=\"x9-bar-head\"\u003e\n\u003cspan\u003eRange per charge\u003c\/span\u003e\u003cstrong\u003e19–25 mi (30–40 km)\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"x9-bar\"\u003e\u003cspan class=\"x9-bar-fill\" style=\"--level:85%\"\u003e\u003c\/span\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"x9-bar-row\"\u003e\n        \u003cdiv class=\"x9-bar-head\"\u003e\n\u003cspan\u003e Rider + cargo capacity\u003c\/span\u003e\u003cstrong\u003e265 lb (120 kg)\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"x9-bar\"\u003e\u003cspan class=\"x9-bar-fill\" style=\"--level:90%\"\u003e\u003c\/span\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"x9-bar-row\"\u003e\n        \u003cdiv class=\"x9-bar-head\"\u003e\n\u003cspan\u003eRecharge time\u003c\/span\u003e\u003cstrong\u003e3–5 hours\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"x9-bar\"\u003e\u003cspan class=\"x9-bar-fill\" style=\"--level:70%\"\u003e\u003c\/span\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"x9-facts\"\u003e\n      \u003cspan class=\"x9-fact\"\u003e\u003cstrong\u003e350W\u003c\/strong\u003e brushless motor\u003c\/span\u003e\n      \u003cspan class=\"x9-fact\"\u003e\u003cstrong\u003eFits 5′1″–6′1″\u003c\/strong\u003e riders\u003c\/span\u003e\n      \u003cspan class=\"x9-fact\"\u003e\u003cstrong\u003eIPX4\u003c\/strong\u003e splash resistant\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- Trip tabs --\u003e\n  \u003csection class=\"x9-section reveal\"\u003e\n    \u003cp class=\"x9-eyebrow\"\u003eMade for your routine\u003c\/p\u003e\n    \u003ch3\u003eOne scooter for the whole to-do list.\u003c\/h3\u003e\n\n    \u003cdiv class=\"x9-tabs\"\u003e\n      \u003cdiv class=\"x9-tablist\" role=\"tablist\" aria-label=\"Trip types\"\u003e\n        \u003cbutton class=\"x9-tab\" type=\"button\" role=\"tab\" id=\"x9-tab-1\" aria-controls=\"x9-panel-1\" aria-selected=\"true\" data-x9-tab\u003eDaily Commute\u003c\/button\u003e\n        \u003cbutton class=\"x9-tab\" type=\"button\" role=\"tab\" id=\"x9-tab-2\" aria-controls=\"x9-panel-2\" aria-selected=\"false\" tabindex=\"-1\" data-x9-tab\u003eGrocery Runs\u003c\/button\u003e\n        \u003cbutton class=\"x9-tab\" type=\"button\" role=\"tab\" id=\"x9-tab-3\" aria-controls=\"x9-panel-3\" aria-selected=\"false\" tabindex=\"-1\" data-x9-tab\u003ePet Outings\u003c\/button\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"x9-panel\" role=\"tabpanel\" id=\"x9-panel-1\" aria-labelledby=\"x9-tab-1\" data-x9-panel\u003e\n        \u003ch4\u003eDaily commute\u003c\/h4\u003e\n        \u003cp\u003eGlide the last mile seated and arrive fresh. At the office, campus, or apartment, the frame folds down for closets, trunks, and under-desk storage.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"x9-panel\" role=\"tabpanel\" id=\"x9-panel-2\" aria-labelledby=\"x9-tab-2\" data-x9-panel\u003e\n        \u003ch4\u003eGrocery runs\u003c\/h4\u003e\n        \u003cp\u003eBasket for the baguettes, cargo box for the rest. With 265 lb of combined rider-and-cargo capacity, a full shop rides home without a car.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"x9-panel\" role=\"tabpanel\" id=\"x9-panel-3\" aria-labelledby=\"x9-tab-3\" data-x9-panel\u003e\n        \u003ch4\u003ePet outings\u003c\/h4\u003e\n        \u003cp\u003eDesigned with pet owners in mind — secure your small companion in a carrier in the basket or cargo area, and head to the vet, the park, or the café together.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cp class=\"x9-note\"\u003e\u003cstrong\u003eEasy for everyone.\u003c\/strong\u003e Three adjustable speed settings and a stable, seated riding position make the X9 approachable for first-time and returning riders alike.\u003c\/p\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- Build \u0026 details --\u003e\n  \u003csection class=\"x9-section reveal\"\u003e\n    \u003cp class=\"x9-eyebrow\"\u003ePortable \u0026amp; durable\u003c\/p\u003e\n    \u003ch3\u003eHeavy-duty where it counts. Handy everywhere else.\u003c\/h3\u003e\n\n    \u003cdiv class=\"x9-scenarios\" aria-label=\"Ways to ride\"\u003e\n      \u003cspan class=\"x9-chip\"\u003eWork \u0026amp; campus\u003c\/span\u003e\n      \u003cspan class=\"x9-chip\"\u003eFarmers market\u003c\/span\u003e\n      \u003cspan class=\"x9-chip\"\u003eVet \u0026amp; park trips\u003c\/span\u003e\n      \u003cspan class=\"x9-chip\"\u003eNeighborhood cruising\u003c\/span\u003e\n      \u003cspan class=\"x9-chip\"\u003eRV \u0026amp; trunk travel\u003c\/span\u003e\n    \u003c\/div\u003e\n\n    \u003cul class=\"x9-checklist\"\u003e\n      \u003cli\u003e\n\u003cstrong\u003eHeavy-duty steel frame.\u003c\/strong\u003e A sturdy carbon steel frame supports up to 265 lb (120 kg) of rider and cargo, with a patented design built for daily use.\u003c\/li\u003e\n      \u003cli\u003e\n\u003cstrong\u003eFolds for real life.\u003c\/strong\u003e Fold it down for car trunks, hallways, and storage corners between rides.\u003c\/li\u003e\n      \u003cli\u003e\n\u003cstrong\u003eLocked-in steering.\u003c\/strong\u003e The exclusive safety bar lock keeps the stem secure at any time of day.\u003c\/li\u003e\n      \u003cli\u003e\n\u003cstrong\u003eLight up the ride.\u003c\/strong\u003e High-brightness LED headlight up front and a rear brake light that signals every stop.\u003c\/li\u003e\n      \u003cli\u003e\n\u003cstrong\u003eReady for real weather.\u003c\/strong\u003e IPX4 splash and light-rain resistance keeps commutes on schedule.\u003c\/li\u003e\n      \u003cli\u003e\n\u003cstrong\u003eClear digital controls.\u003c\/strong\u003e Electronic controls with three speed settings, matched to traffic and road conditions in seconds.\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/section\u003e\n\n  \u003chr\u003e\n\n  \u003c!-- Specifications --\u003e\n  \u003csection class=\"x9-section reveal\"\u003e\n    \u003ch3\u003eTechnical specifications\u003c\/h3\u003e\n    \u003cdiv class=\"x9-spec-wrap\"\u003e\n      \u003ctable\u003e\n        \u003ctbody\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eModel\u003c\/th\u003e\n\u003ctd\u003eX9 — Seated Commuter E-Scooter\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eMotor\u003c\/th\u003e\n\u003ctd\u003e350W brushless motor\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eTop speed\u003c\/th\u003e\n\u003ctd\u003eUp to 20 mph (32 km\/h)\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eRange per charge\u003c\/th\u003e\n\u003ctd\u003e19–25 mi (30–40 km)*\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eBattery\u003c\/th\u003e\n\u003ctd\u003eLithium battery (\u0026lt;10Ah)\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eCharge time\u003c\/th\u003e\n\u003ctd\u003e3–5 hours\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eSpeed settings\u003c\/th\u003e\n\u003ctd\u003e3 adjustable levels · digital controls\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eSeat\u003c\/th\u003e\n\u003ctd\u003eAdjustable · soft, breathable cushion\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eRider height\u003c\/th\u003e\n\u003ctd\u003e5′1″–6′1″\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eStorage\u003c\/th\u003e\n\u003ctd\u003eDetachable basket + rear cargo box\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eDeck\u003c\/th\u003e\n\u003ctd\u003e10″ wide deck\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eTires\u003c\/th\u003e\n\u003ctd\u003e10″ pneumatic tubeless tires\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eSuspension\u003c\/th\u003e\n\u003ctd\u003eDual suspension\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eBrakes\u003c\/th\u003e\n\u003ctd\u003eElectronic brake (E-ABS) + disc brake · rear brake light\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eFrame\u003c\/th\u003e\n\u003ctd\u003eCarbon steel · foldable · stem safety-bar lock\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eLighting\u003c\/th\u003e\n\u003ctd\u003eLED headlight + rear brake light\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eWater resistance\u003c\/th\u003e\n\u003ctd\u003eIPX4 (splash \u0026amp; light-rain resistant)\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eMax. load\u003c\/th\u003e\n\u003ctd\u003e265 lb (120 kg), rider + cargo combined\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eCharger plug\u003c\/th\u003e\n\u003ctd\u003eUS \/ EU \/ JP plug, matched to your region\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003eCertifications\u003c\/th\u003e\n\u003ctd\u003eUL 2272 · CE (EN 17128) · RoHS\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n\u003cth scope=\"row\"\u003ePackage size \/ weight\u003c\/th\u003e\n\u003ctd\u003e46.5 × 9.3 × 24.4 in (118 × 23.5 × 62 cm) · 69.2 lb (31.4 kg) gross\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003c\/tbody\u003e\n      \u003c\/table\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- Before you ride --\u003e\n  \u003csection class=\"x9-section reveal\"\u003e\n    \u003ch3\u003eGood to know before you ride\u003c\/h3\u003e\n    \u003cul\u003e\n      \u003cli\u003e*Range and top speed vary with rider and cargo weight, terrain, wind, temperature, tire pressure, and selected speed setting. Maximum load of 265 lb (120 kg) includes rider, cargo, and any pet carrier combined.\u003c\/li\u003e\n      \u003cli\u003eTraveling with a pet? Always use a secured, well-ventilated carrier in the basket or cargo area — never ride with a pet loose on the deck or in your arms — and start with short, slow trips.\u003c\/li\u003e\n      \u003cli\u003eIPX4 protects against splashes and light rain. Do not ride through deep or standing water, and dry the scooter before charging.\u003c\/li\u003e\n      \u003cli\u003eDesigned for adult riders. E-scooter rules differ by state and city — check your local regulations, and always wear a helmet.\u003c\/li\u003e\n    \u003c\/ul\u003e\n    \u003cp\u003e\u003cem\u003eErrands, commutes, and copilot adventures — tell our team how you'll ride and we'll help you get set up.\u003c\/em\u003e\u003c\/p\u003e\n  \u003c\/section\u003e\n\u003c\/article\u003e\n\n    \u003c\/div\u003e\n  \u003c\/main\u003e\n\u003cscript\u003e\n\/* ============================================================\n   X9 — Product description enhancements (vanilla JS, no deps)\n   Progressive: with JS off \/ old browsers, all content and\n   final numbers are already visible in the HTML.\n   ============================================================ *\/\n(function () {\n  'use strict';\n\n  var reduceMotion = window.matchMedia \u0026\u0026\n    window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n  \/* ---------- Trip tabs ---------- *\/\n  function initTabs(root) {\n    var tabs = Array.prototype.slice.call(root.querySelectorAll('[data-x9-tab]'));\n    var panels = Array.prototype.slice.call(root.querySelectorAll('[data-x9-panel]'));\n    if (!tabs.length || !panels.length) return;\n\n    root.classList.add('x9-js-ready');\n\n    function select(tab, moveFocus) {\n      tabs.forEach(function (t) {\n        var active = t === tab;\n        t.setAttribute('aria-selected', active ? 'true' : 'false');\n        t.tabIndex = active ? 0 : -1;\n      });\n      panels.forEach(function (p) {\n        p.hidden = p.id !== tab.getAttribute('aria-controls');\n      });\n      if (moveFocus) tab.focus();\n    }\n\n    tabs.forEach(function (tab, i) {\n      tab.addEventListener('click', function () { select(tab, false); });\n      tab.addEventListener('keydown', function (e) {\n        var idx = null;\n        if (e.key === 'ArrowRight') idx = (i + 1) % tabs.length;\n        else if (e.key === 'ArrowLeft') idx = (i - 1 + tabs.length) % tabs.length;\n        else if (e.key === 'Home') idx = 0;\n        else if (e.key === 'End') idx = tabs.length - 1;\n        if (idx !== null) { e.preventDefault(); select(tabs[idx], true); }\n      });\n    });\n\n    select(tabs[0], false);\n  }\n\n  \/* ---------- Animated counters ---------- *\/\n  function format(value, decimals) {\n    return decimals \u003e 0\n      ? value.toFixed(decimals)\n      : Math.round(value).toLocaleString('en-US');\n  }\n\n  function animateCount(el) {\n    var target = parseFloat(el.getAttribute('data-count'));\n    var decimals = parseInt(el.getAttribute('data-decimals') || '0', 10);\n    if (isNaN(target) || !window.requestAnimationFrame) {\n      el.textContent = format(target, decimals);\n      return;\n    }\n    var duration = 1100, start = null;\n    function frame(ts) {\n      if (start === null) start = ts;\n      var p = Math.min((ts - start) \/ duration, 1);\n      var eased = 1 - Math.pow(1 - p, 3);\n      el.textContent = format(target * eased, decimals);\n      if (p \u003c 1) window.requestAnimationFrame(frame);\n      else el.textContent = format(target, decimals);\n    }\n    window.requestAnimationFrame(frame);\n  }\n\n  \/* ---------- Scroll reveal + counters ---------- *\/\n  function initMotion(root) {\n    if (reduceMotion || !('IntersectionObserver' in window)) return; \/\/ final state already in HTML\n\n    var vh = window.innerHeight || document.documentElement.clientHeight;\n\n    var reveals = Array.prototype.slice.call(root.querySelectorAll('.reveal'));\n    reveals.forEach(function (el) {\n      if (el.getBoundingClientRect().top \u003e vh * 0.94) el.classList.add('is-waiting');\n    });\n    var revealIO = new IntersectionObserver(function (entries) {\n      entries.forEach(function (en) {\n        if (en.isIntersecting) {\n          en.target.classList.remove('is-waiting');\n          en.target.classList.add('is-inview');\n          revealIO.unobserve(en.target);\n        }\n      });\n    }, { threshold: 0.12, rootMargin: '0px 0px -6% 0px' });\n    reveals.forEach(function (el) { revealIO.observe(el); });\n\n    var counters = Array.prototype.slice.call(root.querySelectorAll('[data-count]'));\n    var countIO = new IntersectionObserver(function (entries) {\n      entries.forEach(function (en) {\n        if (en.isIntersecting) { animateCount(en.target); countIO.unobserve(en.target); }\n      });\n    }, { threshold: 0.4 });\n    counters.forEach(function (el) { countIO.observe(el); });\n  }\n\n  function init() {\n    Array.prototype.forEach.call(\n      document.querySelectorAll('[data-x9-desc]'),\n      function (root) { initTabs(root); initMotion(root); }\n    );\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else { init(); }\n})();\n\u003c\/script\u003e\n\n\u003cstyle\u003e\n\/* Standalone page shell — for the single-file preview. *\/\n:root {\n  --color-foreground: 18, 18, 18;\n  --color-background: 255, 255, 255;\n  --font-heading-family: -apple-system, BlinkMacSystemFont, \"Helvetica Neue\", Arial, \"Segoe UI\", sans-serif;\n  --font-body-family: -apple-system, BlinkMacSystemFont, \"Helvetica Neue\", Arial, \"Segoe UI\", sans-serif;\n}\nhtml { -webkit-text-size-adjust: 100%; }\nbody { margin: 0; background: #f3f1ea; }\n.x9-page {\n  max-width: 760px; margin: 0 auto; min-height: 100vh;\n  background: #fff; padding: 36px 34px 48px;\n  box-shadow: 0 0 0 1px rgba(18, 18, 18, 0.05), 0 18px 50px rgba(18, 18, 18, 0.08);\n}\n@media (max-width: 600px) { .x9-page { padding: 20px 16px 36px; } }\n\n\/* ============================================================\n   X9 — Product description styles (scoped to .x9-desc)\n   Dawn \/ OS 2.0 token-compatible, container-responsive.\n   ============================================================ *\/\n.x9-desc {\n  --x9-fg-rgb: var(--color-foreground, 18, 18, 18);\n  --x9-bg-rgb: var(--color-background, 255, 255, 255);\n  --x9-ink: rgb(var(--x9-fg-rgb));\n  --x9-muted: rgba(var(--x9-fg-rgb), 0.72);\n  --x9-line: rgba(var(--x9-fg-rgb), 0.14);\n  --x9-surface: rgba(var(--x9-fg-rgb), 0.04);\n  --x9-accent: #15803d;\n  --x9-accent-2: #f59e0b;\n  --x9-radius: 18px;\n  color: var(--x9-ink);\n  font-family: var(--font-body-family, -apple-system, BlinkMacSystemFont, \"Helvetica Neue\", Arial, \"Segoe UI\", sans-serif);\n  font-size: 16px;\n  line-height: 1.65;\n  overflow-wrap: break-word;\n  container-type: inline-size;\n}\n.x9-desc *,\n.x9-desc *::before,\n.x9-desc *::after { box-sizing: border-box; }\n\n.x9-desc h2,\n.x9-desc h3,\n.x9-desc h4 {\n  font-family: var(--font-heading-family, -apple-system, BlinkMacSystemFont, \"Helvetica Neue\", Arial, \"Segoe UI\", sans-serif);\n  color: var(--x9-ink);\n  margin-top: 0;\n}\n.x9-desc h3 { font-size: 22px; line-height: 1.25; letter-spacing: -0.01em; margin-bottom: 14px; }\n.x9-desc h4 { font-size: 16px; line-height: 1.35; margin-bottom: 6px; }\n.x9-desc p { margin: 0 0 14px; }\n.x9-desc ul { margin: 0 0 16px; padding-left: 22px; }\n.x9-desc li { margin-bottom: 8px; }\n.x9-desc hr { border: 0; border-top: 1px solid var(--x9-line); margin: 34px 0 0; }\n.x9-desc :focus-visible { outline: 2px solid var(--x9-accent); outline-offset: 2px; }\n.x9-desc .x9-section { margin-top: 38px; }\n.x9-desc .x9-eyebrow {\n  font-size: 11px; font-weight: 700; letter-spacing: 0.16em;\n  text-transform: uppercase; color: var(--x9-accent); margin: 0 0 10px;\n}\n\n\/* --- Hero (deep green) --- *\/\n.x9-desc .x9-hero {\n  position: relative; overflow: hidden; color: #fff;\n  border-radius: 24px; padding: 32px 28px 28px;\n  background:\n    radial-gradient(110% 150% at 108% -10%, rgba(245, 158, 11, 0.32), rgba(245, 158, 11, 0) 55%),\n    radial-gradient(120% 160% at -10% 115%, rgba(74, 222, 128, 0.2), rgba(74, 222, 128, 0) 55%),\n    linear-gradient(150deg, #0c2317 0%, #14532d 58%, #1a3a24 100%);\n}\n.x9-desc .x9-hero::after {\n  content: \"\"; position: absolute; width: 300px; height: 300px;\n  right: -140px; bottom: -170px; border-radius: 50%;\n  border: 1px solid rgba(255, 255, 255, 0.18); pointer-events: none;\n}\n.x9-desc .x9-hero h2 {\n  color: #fff; font-size: 38px; font-size: clamp(30px, 6vw, 44px);\n  line-height: 1.04; letter-spacing: -0.02em; margin-bottom: 14px; max-width: 15ch;\n}\n.x9-desc .x9-hero .x9-eyebrow { color: #86efac; }\n.x9-desc .x9-lead { font-size: 18px; font-size: clamp(16.5px, 2.6vw, 19px); line-height: 1.5; font-weight: 600; color: #fff; }\n.x9-desc .x9-hero p { color: rgba(255, 255, 255, 0.78); max-width: 58ch; }\n\n.x9-desc .x9-stats {\n  display: grid; gap: 10px; margin-top: 24px;\n  grid-template-columns: repeat(auto-fit, minmax(min(118px, 100%), 1fr));\n}\n.x9-desc .x9-stat {\n  background: rgba(255, 255, 255, 0.07);\n  border: 1px solid rgba(255, 255, 255, 0.16); border-radius: 14px; padding: 13px 14px 11px;\n}\n.x9-desc .x9-stat-value { display: flex; align-items: baseline; gap: 4px; font-size: 28px; font-weight: 800; line-height: 1.05; letter-spacing: -0.02em; color: #fff; }\n.x9-desc .x9-stat-value small { font-size: 13px; font-weight: 700; color: #fcd34d; }\n.x9-desc .x9-stat-label { display: block; margin-top: 4px; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255, 255, 255, 0.66); }\n\n\/* --- Feature cards --- *\/\n.x9-desc .x9-grid {\n  display: grid; gap: 12px;\n  grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr));\n}\n.x9-desc .x9-card {\n  border: 1px solid var(--x9-line); border-radius: var(--x9-radius);\n  background: rgb(var(--x9-bg-rgb)); padding: 18px;\n  transition: transform 200ms ease, box-shadow 200ms ease;\n}\n@media (hover: hover) and (pointer: fine) {\n  .x9-desc .x9-card:hover {\n    transform: translateY(-3px);\n    box-shadow: 0 12px 28px rgba(var(--x9-fg-rgb), 0.12);\n  }\n}\n.x9-desc .x9-card p { font-size: 14.5px; color: var(--x9-muted); margin: 0; }\n.x9-desc .x9-icon {\n  display: inline-flex; align-items: center; justify-content: center;\n  width: 44px; height: 44px; border-radius: 50%; margin-bottom: 12px;\n  background: linear-gradient(135deg, var(--x9-accent), #166534); color: #fff;\n}\n.x9-desc .x9-icon svg {\n  width: 24px; height: 24px; fill: none; stroke: currentColor;\n  stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;\n}\n\n\/* --- Comfort panel --- *\/\n.x9-desc .x9-comfort {\n  margin-top: 38px; border-radius: 24px; padding: 28px 26px; color: #fff;\n  background: linear-gradient(135deg, #0c2317 0%, #14532d 62%, #7c4a12 100%);\n  overflow: hidden;\n}\n.x9-desc .x9-comfort h3 { color: #fff; }\n.x9-desc .x9-comfort .x9-eyebrow { color: #86efac; }\n.x9-desc .x9-comfort p { color: rgba(255, 255, 255, 0.78); max-width: 56ch; }\n.x9-desc .x9-bars { margin-top: 20px; display: grid; gap: 16px; }\n.x9-desc .x9-bar-row { display: grid; gap: 6px; }\n.x9-desc .x9-bar-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 13px; }\n.x9-desc .x9-bar-head span:first-child { color: rgba(255, 255, 255, 0.72); letter-spacing: 0.06em; text-transform: uppercase; font-size: 11px; font-weight: 700; }\n.x9-desc .x9-bar-head strong { color: #fff; font-size: 15px; white-space: nowrap; }\n.x9-desc .x9-bar { height: 10px; border-radius: 999px; background: rgba(255, 255, 255, 0.14); overflow: hidden; }\n.x9-desc .x9-bar-fill {\n  display: block; height: 100%; width: var(--level, 80%);\n  border-radius: 999px; transform-origin: left center;\n  background: linear-gradient(90deg, #4ade80, #fcd34d);\n  transition: transform 1s ease;\n}\n.x9-desc .reveal.is-waiting .x9-bar-fill { transform: scaleX(0.08); }\n.x9-desc .x9-facts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }\n.x9-desc .x9-fact {\n  font-size: 13px; padding: 7px 12px; border-radius: 999px;\n  border: 1px solid rgba(255, 255, 255, 0.18); background: rgba(255, 255, 255, 0.08);\n}\n\n\/* --- Trip tabs (progressive: panels all visible until JS runs) --- *\/\n.x9-desc .x9-tabs { border: 1px solid var(--x9-line); border-radius: var(--x9-radius); padding: 18px; background: rgb(var(--x9-bg-rgb)); }\n.x9-desc .x9-tablist { display: none; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }\n.x9-desc.x9-js-ready .x9-tablist { display: flex; }\n.x9-desc .x9-tab {\n  appearance: none; -webkit-appearance: none; cursor: pointer;\n  font: inherit; font-size: 14px; font-weight: 600;\n  color: var(--x9-ink); background: var(--x9-surface);\n  border: 1px solid var(--x9-line); border-radius: 999px; padding: 8px 16px;\n  transition: background 200ms ease, color 200ms ease, border-color 200ms ease;\n}\n.x9-desc .x9-tab[aria-selected=\"true\"] {\n  background: var(--x9-ink); color: rgb(var(--x9-bg-rgb)); border-color: var(--x9-ink);\n}\n.x9-desc .x9-panel { padding-top: 14px; border-top: 1px solid var(--x9-line); }\n.x9-desc .x9-panel:first-of-type { border-top: 0; padding-top: 0; }\n.x9-desc.x9-js-ready .x9-panel { border-top: 0; padding-top: 0; }\n.x9-desc .x9-panel[hidden] { display: none !important; }\n.x9-desc .x9-panel p { color: var(--x9-muted); margin: 0; }\n.x9-desc .x9-note {\n  margin-top: 16px; padding: 6px 0 6px 16px;\n  border-left: 3px solid var(--x9-accent); color: var(--x9-muted);\n}\n.x9-desc .x9-note strong { color: var(--x9-ink); }\n\n\/* --- Scenarios + checklist --- *\/\n.x9-desc .x9-scenarios { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }\n.x9-desc .x9-chip {\n  font-size: 13px; font-weight: 600; padding: 7px 13px; border-radius: 999px;\n  background: var(--x9-surface); border: 1px solid var(--x9-line);\n}\n.x9-desc .x9-checklist { list-style: none; padding: 0; margin: 0; }\n.x9-desc .x9-checklist li { position: relative; padding-left: 32px; margin-bottom: 12px; color: var(--x9-muted); }\n.x9-desc .x9-checklist li strong { color: var(--x9-ink); }\n.x9-desc .x9-checklist li::before {\n  content: \"\\2713\"; position: absolute; left: 0; top: 1px;\n  width: 21px; height: 21px; border-radius: 50%;\n  display: inline-flex; align-items: center; justify-content: center;\n  font-size: 12px; font-weight: 800; color: #fff;\n  background: linear-gradient(135deg, var(--x9-accent), #166534);\n}\n\n\/* --- Specification table --- *\/\n.x9-desc .x9-spec-wrap { border: 1px solid var(--x9-line); border-radius: 16px; overflow: hidden; }\n.x9-desc table { width: 100%; border-collapse: collapse; margin: 0; font-size: 14px; line-height: 1.5; }\n.x9-desc th,\n.x9-desc td { padding: 10px 14px; text-align: left; vertical-align: top; border-top: 1px solid var(--x9-line); }\n.x9-desc tbody tr:first-child th,\n.x9-desc tbody tr:first-child td { border-top: 0; }\n.x9-desc th[scope=\"row\"] { width: 36%; font-weight: 700; background: var(--x9-surface); }\n\n@container (max-width: 520px) {\n  .x9-desc table, .x9-desc tbody, .x9-desc tr,\n  .x9-desc th, .x9-desc td { display: block; width: 100%; }\n  .x9-desc tr { padding: 10px 14px; border-top: 1px solid var(--x9-line); }\n  .x9-desc tbody tr:first-child { border-top: 0; }\n  .x9-desc th, .x9-desc td { border-top: 0; padding: 0; background: none; }\n  .x9-desc th[scope=\"row\"] { width: 100%; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--x9-muted); }\n  .x9-desc td { padding-top: 2px; }\n  .x9-desc .x9-hero { padding: 24px 20px 22px; }\n  .x9-desc .x9-comfort { padding: 22px 18px; }\n}\n@media (max-width: 520px) {\n  .x9-desc { font-size: 15px; }\n  .x9-desc h3 { font-size: 20px; }\n  .x9-desc table, .x9-desc tbody, .x9-desc tr,\n  .x9-desc th, .x9-desc td { display: block; width: 100%; }\n  .x9-desc tr { padding: 10px 14px; border-top: 1px solid var(--x9-line); }\n  .x9-desc tbody tr:first-child { border-top: 0; }\n  .x9-desc th, .x9-desc td { border-top: 0; padding: 0; background: none; }\n  .x9-desc th[scope=\"row\"] { width: 100%; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--x9-muted); }\n  .x9-desc td { padding-top: 2px; }\n}\n\n\/* --- Scroll reveal --- *\/\n.x9-desc .reveal { transition: opacity 600ms ease, transform 600ms ease; }\n.x9-desc .reveal.is-waiting { opacity: 0; transform: translateY(16px); }\n.x9-desc .reveal.is-inview { opacity: 1; transform: none; }\n\n@media (prefers-reduced-motion: reduce) {\n  .x9-desc .reveal, .x9-desc .x9-card,\n  .x9-desc .x9-tab, .x9-desc .x9-bar-fill { transition: none !important; }\n  .x9-desc .reveal.is-waiting { opacity: 1; transform: none; }\n  .x9-desc .reveal.is-waiting .x9-bar-fill { transform: none; }\n}\n\n@media print {\n  .x9-desc .x9-tablist { display: none !important; }\n  .x9-desc .x9-panel[hidden] { display: block !important; }\n  .x9-desc .reveal { opacity: 1 !important; transform: none !important; }\n}\n\u003c\/style\u003e\n\n\n\u003c\/body\u003e","brand":"sfpnest","offers":[{"title":"Default Title","offer_id":54249130230054,"sku":null,"price":339.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1030\/5562\/2438\/files\/ElectricScooterwithSeatforAdults_350WMotorSeatedE-Scooterupto20MPH_9.jpg?v=1793332777","url":"https:\/\/sfpnest.com\/products\/electric-scooter-with-seat-for-adults-350w-motor-seated-e-scooter-up-to-20-mph-25-miles-10-pneumatic-tires-dual-suspension-rear-cargo-basket-265-lbs-max-load-foldable-commuter-scooter","provider":"sfpnest","version":"1.0","type":"link"}