Sur-Ron Hyper Bee
.tb-enh{border:1px solid rgba(255,128,40,.35);border-radius:12px;background:rgba(255,128,40,.04);padding:16px 18px;margin:0 0 22px;color:#eee;font-family:-apple-system,BlinkMacSyst emFont,'Segoe UI',Helvetica,sans-serif}.tb-enh__fin{font-size:1rem;line-height:1.5;margin:0 0 14px}.tb-enh__fin strong{color:#ff8028}.tb-enh__fin .mo{color:#ff8028;font-weight:800}.tb-enh__trust{display:flex;flex-wrap:wrap;gap:10px 18px;margin:0 0 14px}.tb-enh__t{display:flex;align-items:center;gap:7px;font-size:.82rem;color:#cfcfcf;font-weight:600}.tb-enh__t svg{width:18px;height:18px;stroke:#ff8028;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.tb-enh__pills{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}.tb-enh__pill{display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.02em;padding:5px 11px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#ddd}.tb-enh__returns{font-size:.78rem;color:#999;line-height:1.55;margin:0}.tb-enh__returns a{color:#ff8028;text-decoration:none}.tb-enh__returns a:hover{text-decoration:underline} UK stock Free UK delivery 12-month warranty 5-star rated UK support Free UK delivery14-day returns12-month warrantyUK-based support 14-day returns on unused bikes. Pre-orders can be cancelled any time before dispatch for a full refund. See our returns policy. .tb-pdp{font-family:inherit;line-height:1.6} .tb-pdp h2{font-size:1.45rem;margin:28px 0 10px;letter-spacing:.01em} .tb-pdp h3{font-size:1.15rem;margin:22px 0 8px} .tb-pdp p{margin:0 0 14px} .tb-pdp ul{margin:0 0 16px 22px;padding:0} .tb-pdp li{margin-bottom:6px} .tb-pdp__lede{font-size:1.08rem;opacity:.92;margin-bottom:18px} .tb-pdp__quickfacts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:8px 0 26px;padding:0} @media(min-width:700px){.tb-pdp__quickfacts{grid-template-columns:repeat(6,1fr)}} .tb-pdp__quickfact{display:flex;flex-direction:column-reverse;justify-content:center;gap:5px;text-align:center;padding:16px 8px;border:1px solid rgba(255,128,40,.4);border-radius:14px;background:linear-gradient(165deg,rgba(255,128,40,.14),rgba(255,128,40,.03))} .tb-pdp__quickfact-value{font-size:clamp(1.2rem,4.5vw,1.65rem);font-weight:900;line-height:1.05;color:#ff8028} .tb-pdp__quickfact-label{font-size:.64rem;text-transform:uppercase;letter-spacing:.1em;opacity:.65} .tb-feat{margin:36px 0} .tb-feat__kicker{color:#ff8028;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.16em;margin:0 0 4px} .tb-feat h2{margin:0 0 8px} .tb-feat p{opacity:.88;max-width:62ch;margin-bottom:0} .tb-feat__media{margin:0 0 14px} .tb-feat__media img{width:100%;height:auto;border-radius:16px;display:block} @media(min-width:768px){ .tb-feat--split{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center} .tb-feat--split .tb-feat__media{margin:0} .tb-feat--flip .tb-feat__media{order:2} .tb-feat--full .tb-feat__body{text-align:center;max-width:640px;margin:0 auto} .tb-feat--full .tb-feat__body p{margin-left:auto;margin-right:auto} } .tb-new{display:grid;grid-template-columns:1fr;gap:8px;margin:0 0 10px;padding:0;list-style:none} @media(min-width:700px){.tb-new{grid-template-columns:1fr 1fr}} .tb-new li{margin:0;padding:10px 14px 10px 36px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(255,255,255,.03);position:relative;font-size:.92rem} .tb-new li::before{content:'\2713';position:absolute;left:13px;top:9px;color:#ff8028;font-weight:800} .tb-pdp__specs{width:100%;border-collapse:collapse;margin:14px 0 26px} .tb-pdp__specs caption{text-align:left;font-weight:700;padding:8px 0;font-size:1.1rem} .tb-pdp__specs th,.tb-pdp__specs td{padding:9px 12px;border-bottom:1px solid rgba(255,255,255,.08);text-align:left;vertical-align:top} .tb-pdp__specs th{width:38%;font-weight:600;opacity:.9;background:rgba(255,255,255,.025)} .tb-pdp__specs tbody tr:hover{background:rgba(255,128,40,.04)} .tb-pdp__faq{margin:22px 0 28px} .tb-pdp__faq details{border:1px solid rgba(255,255,255,.10);border-radius:10px;padding:0;margin-bottom:10px;background:rgba(255,255,255,.025)} .tb-pdp__faq summary{cursor:pointer;padding:14px 18px;font-weight:600;font-size:1rem;list-style:none;position:relative} .tb-pdp__faq summary::-webkit-details-marker{display:none} .tb-pdp__faq summary::after{content:'+';position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:1.25rem;color:#ff8028;transition:transform .2s ease} .tb-pdp__faq details[open] summary::after{content:'\2212'} .tb-pdp__faq details[open] summary{border-bottom:1px solid rgba(255,255,255,.08)} .tb-pdp__faq .tb-pdp__faq-body{padding:14px 18px 18px} .tb-pdp__faq .tb-pdp__faq-body p{margin:0 0 10px} .tb-pdp__faq .tb-pdp__faq-body p:last-child{margin-bottom:0} .tb-pdp__cta{display:inline-block;padding:12px 22px;background:#ff8028;color:#111;font-weight:700;border-radius:8px;text-decoration:none;margin:12px 0} .tb-pdp__cta:hover{background:#ff9148} .tb-pdp__notice{padding:14px 18px;border-left:3px solid #ff8028;background:rgba(255,128,40,.06);border-radius:6px;margin:18px 0;font-size:.95rem} @media(max-width:600px){.tb-pdp__specs th{width:50%}} window.__tbVariantYears = {"57336165892440": "2026", "57336165957976": "2026", "57336165990744": "2026", "57336166056280": "2026", "57336166318424": "2026", "57336166351192": "2026"}; window.__tbColoursByYear = {"2026": ["Blue", "Green", "Yellow"]}; window.__tbShippingByColourYear = {"Blue||2026": ["China warehouse (40-60 days)", "UK pre-order: expected 10th October"], "Green||2026": ["China warehouse (40-60 days)"], "Yellow||2026": ["China warehouse (40-60 days)", "UK pre-order: expected 10th October"]}; window.__tbShippingOptionName = "Shipping"; window.__tb2026MediaIds = []; window.__tbColourOptionName = "Color"; window.__tbVariantPrices = {"57336165892440": 259900, "57336165957976": 249900, "57336165990744": 259900, "57336166056280": 249900, "57336166318424": 259900, "57336166351192": 249900}; window.__tbMinPricePence = 249900; Build Service, free: we will fully build and PDI-test your bike before it leaves us at no extra cost. Built bikes cannot be posted, so you collect from us or book your own courier. Shiply lists specialist motorbike couriers, averaging around £150 per delivery. Message us on WhatsApp before you order: depending on where you are we may be able to deliver the built bike ourselves, or point you to a courier we rate. Prefer free delivery? Choose delivered boxed and we ship to your door free of charge: the bike arrives almost fully built, with only the front wheel and handlebars to attach. Faster. Stronger. Still Hyper Bee. The 2026 Sur-Ron Hyper Bee is the biggest update we have seen on this platform: 8 kW peak power, a 40 mph (65 km/h) top speed, quicker acceleration, a higher-voltage 58V 22Ah battery, and a new stack of safety electronics built specifically around younger, less experienced riders. Sur-Ron Anti Wheelie Control. Magnetic wrist-strap kill switch. Gyroscope tilt cutoff. Parental remote with one-touch emergency power-off. And a torque wrench tool kit included with every MY26 bike. Top speed 40 mph (65 km/h) Peak power 8 kW 0 to 18.6 mph 1.19 s 0 to 31 mph 2.59 s Battery 58V 22Ah Wheelie Control 3-level SAWC MY26 Rebuilt from the ground up The MY26 Hyper Bee is a complete ground-up rebuild: an 8kW longitudinal motor driving through a new high-strength gearbox. The numbers speak for themselves. What is new for MY26 8 kW motor, 185 N·m at the wheel 0 to 31 mph in 2.59 seconds 40 mph (65 km/h) top speed 58V 22Ah S-S Lock quick-release battery 3-level SAWC anti-wheelie control Parental remote with intercom and emergency power-off Multi-function Bluetooth dashboard Free OEM torque wrench tool kit POWER 8kW and 185 N·m of drive The 8kW longitudinal motor sends 185 N·m through a new high-strength gearbox: 0 to 31 mph takes just 2.59 seconds, with three ride modes and a three-stage throttle curve. SAFETY SAWC anti-wheelie control A gyroscope reads pitch and the controller keeps the front wheel down for young or newer riders. Three levels (W1 to W3) plus off, adjustable from the dashboard or the parental remote. CONNECTIVITY T-Box on board Remote monitoring, GPS location and settings through the T-Box module, with a Bluetooth dashboard link to the parental remote intercom. BATTERY S-S Lock quick-release The 58V 22Ah battery swaps in about 10 seconds, no tools. Charge 20 to 80% in around 2 hours. DASHBOARD Multi-function display Speed, mileage, battery, riding mode, reverse status and fault info at a glance, with Bluetooth pairing. FIT Grows with your rider Seat height adjusts from 665 to 705 mm across three dimensions, so a shorter rider sits flat-footed and the bike grows with them. PARENTAL CONTROL Remote control for parents Adjust power, regen, throttle sensitivity and SAWC from up to 300 m away, with a one-touch emergency power-off and an intercom to talk to your rider mid-session. UK delivery and warranty Pick UK stock to pre-order from our next UK shipment, expected 10th October, with free boxed delivery to your door in 2 to 3 working days once it lands, PDI checked before dispatch. Or pick China warehouse with a 40 to 60 day shipping lead time. Check this page for live availability or message us on WhatsApp. Pay by card or PayPal with full buyer protection. Extended warranty optional, with Silver, Gold and Platinum tiers covering 1 or 2 additional years. Specifications 2026 Sur-Ron Hyper Bee full specifications Model year 2026 (MY26) Motor type PMSM with MTPA/MTPV FOC controller Max power 8 kW Max torque at wheel 185 N·m Transmission High-strength gearbox Top speed 40 mph (65 km/h) 0 to 31 mph 2.59 s 0 to 18.6 mph 1.19 s Range Up to 35 miles (56 km) at a steady 25 mph Battery 58V 22Ah lithium-ion Charging 20 to 80% in 2 hours Battery release S-S Lock quick-release, tool-free, 10 second single-handed swap Riding modes 3 riding modes, switchable from dashboard or remote Throttle sensitivity 3 curves (F1, F2, F3), adjustable on the fly Regenerative braking 6 levels (E0 to E5) Wheelie control (SAWC) 3-level (W1, W2, W3) plus off Tilt protection Electronic gyroscope, automatic motor cutoff past defined angle Emergency cutoffs Wrist-strap magnetic kill switch + parental remote one-touch power-off (up to 300 m range) Dashboard Multi-function display: speed, mileage, battery, power mode, fault codes, Bluetooth, remote intercom Connectivity T-Box telemetry and Bluetooth dashboard. Sur-Ron app not available on UK-region bikes, see FAQ Dimensions 1500 x 680 x 885 mm Wheelbase 1035 mm Seat height Adjustable 665 to 705 mm across 3 dimensions Ground clearance 240 to 260 mm Kerb weight 39 kg Rated load 55 kg Front suspension 35 mm inverted forks, 170 mm travel Rear suspension Adjustable air shock, 60 mm shock travel (up to 185 mm rear wheel travel) Tyres Front 60/100-14, rear 70/100-12 off-road Grips Custom 26 mm anti-slip locking with cushioned rubber rings Brakes Dual-piston hydraulic, 180 mm front / 160 mm rear discs Chain protection Full upper and lower chain guards Body protection Body protection pads at impact points Included free with MY26 OEM torque wrench tool kit in carry case Colourways Blue, Green, Yellow Road legal No, off-road use only Status Off-road only. Not type-approved for UK public roads. What is in the box 2026 Sur-Ron Hyper Bee in chosen colour Charger OEM torque wrench tool kit in carry case (MY26 standard, free) Parental remote with intercom Wrist-strap magnetic kill switch UK PDI before dispatch (UK warehouse orders) Manufacturer warranty Setup advice and aftercare from Traction Bikes. Call or message us before you order if you have any questions about sizing for younger riders. Frequently asked questions What age is the 2026 Hyper Bee for?Sur-Ron design the Hyper Bee around riders roughly age 8 and up. Seat height is adjustable 665 to 705 mm across three dimensions, so a shorter younger rider can sit flat-footed and the same bike grows with them as they get taller. An optional thin seat cushion and interchangeable wheel sets (12"/10", 14"/12", plus a supermoto 10"/10" set for tarmac) are available separately. The MY26 top speed of 40 mph (65 km/h) and 8 kW of peak power make the bike better suited to older teens and lighter adults too. SAWC and the throttle response curves let parents start a complete beginner on a tame setup and unlock the bike progressively as confidence grows. What is new on the MY26 Hyper Bee?An 8 kW motor putting 185 N·m of torque to the wheel through a new high-strength gearbox, 0 to 31 mph in 2.59 seconds, a new 58V 22Ah quick-release battery (S-S Lock, 10-second tool-free swaps), 3-level SAWC anti-wheelie control, a wrist-strap magnetic kill switch, gyroscope tilt cutoff, a parental remote with intercom and one-touch emergency power-off, a multi-function Bluetooth dashboard, T-Box connectivity, and a free OEM torque wrench tool kit standard with every MY26 bike. Colours are Blue, Green and Yellow. How does the parental remote work?The remote pairs with the bike's onboard receiver and works up to 150 to 300 metres away (line of sight). From the remote a parent or coach can adjust regen level (E0 to E5), throttle sensitivity (F1 to F3), horn volume (G1 to G7), tilt sensitivity, SAWC level (W0 to W3), Bluetooth pairing and the unit of speed display. The big red button on the remote is a one-touch emergency power-off, instantly cuts the motor. The remote can also intercom-call the rider when the bike's Bluetooth audio link is paired. What is SAWC and is it on by default?SAWC is Sur-Ron's Anti Wheelie Control. A gyroscope reads the bike's pitch angle and the controller modulates power to stop the front lifting too aggressively. It is adjustable across 3 levels (W1, W2, W3) plus off, and the level can be changed from the dashboard or remotely. We recommend new riders start on W3 (most intervention). Important: do not activate SAWC during off-road jumps where you want the front to lift on purpose, toggle it off for tabletops and ramps. Is the 2026 Hyper Bee road legal in the UK?No. The Hyper Bee is off-road only and not type-approved for UK public roads. It is for private land, MX tracks, motorsport venues, trail centres and other off-road riding spots. There is no road-legal variant. How long does delivery take?UK stock is on pre-order with an expected arrival of 10th October. Once it lands, delivery takes 2 to 3 working days: the bike is collected by our courier the next working day and delivered the working day after that. Delivery times are estimates and occasional delays can happen. China warehouse bikes usually take around 60 days from order, and may occasionally take a little longer if delays occur. Can I connect this bike to the Sur-Ron app?Our bikes cannot be connected to the Sur-Ron app due to technical limitations with product regions. This does not change the functionality of the bike, as the app is not needed for using the bike as usual. The on-bike dashboard, parental remote and T-Box monitoring all work without the Sur-Ron app. (function () { var BUILD_VARIANT_ID = 57345670349144; var GUARD = '__tbBuildInit'; function init() { if (window[GUARD]) return; var existing = document.getElementById('tb-build-selector-injected'); var warrantyAnchor = document.querySelector('[data-tb-warranty]'); if (!existing && !warrantyAnchor) { setTimeout(init, 500); return; } var selector = existing || document.getElementById('tb-build-selector-injected'); if (!selector) { var html = [ '', '.tb-build-selector{margin:16px 0 20px;padding:16px 18px;border:1px solid rgba(255,255,255,0.18);border-radius:10px;background:rgba(255,255,255,0.03);}', '.tb-build-selector__heading{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin:0 0 10px;opacity:.75;}', '.tb-build-selector__grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}', '.tb-build-selector__note{margin-top:10px;font-size:11px;opacity:.55;line-height:1.5;}', '', '', ' Build Service', ' ', ' ', ' Delivered boxed', ' Free delivery', ' ', ' ', ' Built by us', ' Free', ' ', ' ', ' ', ' Delivered boxed: free UK delivery, with only the front wheel and handlebars to attach.', ' Built by us: a free full build and PDI test, but built bikes cannot be posted.', ' You collect from us or book your own courier. Shiply lists motorbike couriers, around £150 average.', ' ', '' ].join(''); warrantyAnchor.insertAdjacentHTML('beforebegin', html); selector = document.getElementById('tb-build-selector-injected'); } if (!selector) return; var selected = 'box'; function refreshCartUI() { // Dispatch events the Drive theme may use to refresh the cart drawer document.dispatchEvent(new CustomEvent('cart:refresh', { bubbles: true })); window.dispatchEvent(new CustomEvent('cart:refresh', { bubbles: true })); var cd = document.querySelector('cart-drawer'); if (cd && typeof cd.refresh === 'function') cd.refresh(); } function setSelected(val, silent) { var prev = selected; selected = val; selector.querySelectorAll('[data-tb-build-option]').forEach(function (el) { var isThis = el.getAttribute('data-tb-build-option') === val; el.classList.toggle('tb-tier--selected', isThis); el.setAttribute('aria-pressed', isThis ? 'true' : 'false'); }); if (silent) return; if (val === 'built' && prev !== 'built') { // Add build service to cart immediately on selection fetch('/cart/add.js', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ items: [{ id: BUILD_VARIANT_ID, quantity: 1, properties: { '_service_note': 'Build service (free): customer arranges collection or courier' } }] }) }).then(function() { refreshCartUI(); }) .catch(function (err) { console.warn('[tb-build] add failed:', err); }); } else if (val === 'box' && prev === 'built') { // Remove build service from cart immediately on deselection fetch('/cart.js').then(function(r) { return r.json(); }).then(function(cart) { for (var i = 0; i < cart.items.length; i++) { if (cart.items[i].variant_id === BUILD_VARIANT_ID) { return fetch('/cart/change.js', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ id: cart.items[i].key, quantity: 0 }) }).then(function() { refreshCartUI(); }); } } }).catch(function (err) { console.warn('[tb-build] remove failed:', err); }); } } // Sync visual state to match cart on page load (e.g. user navigated back) fetch('/cart.js').then(function(r) { return r.json(); }).then(function(cart) { for (var i = 0; i < cart.items.length; i++) { if (cart.items[i].variant_id === BUILD_VARIANT_ID) { setSelected('built', true); break; } } }).catch(function() {}); selector.querySelectorAll('[data-tb-build-option]').forEach(function (el) { el.addEventListener('click', function () { setSelected(el.getAttribute('data-tb-build-option')); }); el.addEventListener('keydown', function (e) { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); setSelected(el.getAttribute('data-tb-build-option')); } }); }); window[GUARD] = true; } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } document.addEventListener('shopify:section:load', function () { window[GUARD] = false; init(); }); })(); (function() { // ===== CSS: inject into document.head so it overrides Drive theme's stylesheet ===== // A tag inside body_html does not reliably override Drive theme's compiled CSS. // Appending to guarantees our rules come last in the cascade. if (!document.getElementById('tb-picker-fix-css')) { var tbStyle = document.createElement('style'); tbStyle.id = 'tb-picker-fix-css'; tbStyle.textContent = [ // Hide ALL strikethrough SVGs - we manage availability visually via JS hide/show 'variant-picker .variant-option__strikethrough{display:none!important;}', // DEFINITIVE FLASH FIX: // The pill span is an empty element whose translateX position provides the dark // background for selected buttons. Any morph() cycle can leave it at the wrong // position for one or more frames, causing the half/half flash. // Solution: hide the pill completely (it is an empty span - safe to remove visually) // and drive button appearance 100% from CSS on the label via :has(input:checked). // No transform, no animation, no JS timing - zero possible flash states. 'variant-picker .variant-option__button-label__pill{display:none!important;}', 'variant-picker label.variant-option__button-label:has(input:checked){background-color:var(--color-selected-variant-background,#000)!important;color:var(--color-selected-variant-text,#fff)!important;}', 'variant-picker label.variant-option__button-label:has(input:checked)::before{border-color:var(--color-selected-variant-border,#000)!important;}', // Drive injects its own !important rule that forces grey on unavailable+checked buttons: // .variant-option__button-label:has([data-option-available="false"]):has(:checked) -> (0,3,0) // Override it with higher specificity (0,3,3) using type selectors to boost c-count: 'variant-picker label.variant-option__button-label:has([data-option-available="false"]):has(input:checked){background-color:#000!important;color:#fff!important;}', // Remove Drive sticky from media-gallery so gallery + text scroll in sync. // position:sticky on media-gallery.sticky-content pins the gallery while text scrolls past. // position:relative restores normal flow so both columns scroll together. 'media-gallery.sticky-content{position:relative!important;}', '@media (max-width:480px){.tb-pdp__specs th,.tb-pdp__specs td{padding:8px 9px!important;font-size:.85rem!important;overflow-wrap:anywhere;word-break:break-word;}.tb-pdp__specs th{width:44%!important;}}' ].join(''); (document.head || document.documentElement).appendChild(tbStyle); } function currentVariantId() { var m = window.location.search.match(/[?&]variant=(\d+)/); if (m) return m[1]; var inp = document.querySelector('input[name="id"]'); if (inp && inp.value) return inp.value; return null; } function yearOfVariant(vid) { if (!vid) return null; var map = window.__tbVariantYears || {}; return map[String(vid)] || null; } function yearFromPicker() { var checked = document.querySelector('variant-picker input[type="radio"][name^="Model Year"]:checked'); if (checked) return checked.value; return null; } function currentYear() { return yearFromPicker() || yearOfVariant(currentVariantId()); } // suppressedClick: disable pill animation for the full fetch+morph round-trip. // 2 rAF cycles (~32 ms) is not enough -- Drive theme fetches a new section (300-600 ms) // and calls morph() AFTER we have already restored --animation-speed, so the pill still // slides in from off-screen and causes the half/half flash. // We keep --animation-speed at 0ms for 1000 ms (debounced) so every morph pass snaps. var _tbAnimTimer = null; var _tbAnimVp = null; function suppressedClick(radio) { var vp = radio.closest('variant-picker'); if (vp) { vp.style.setProperty('--animation-speed', '0ms'); _tbAnimVp = vp; } radio.click(); if (_tbAnimTimer) clearTimeout(_tbAnimTimer); _tbAnimTimer = setTimeout(function() { if (_tbAnimVp) _tbAnimVp.style.removeProperty('--animation-speed'); _tbAnimTimer = null; _tbAnimVp = null; }, 1000); } // suppressStrikethroughs: belt-and-suspenders direct DOM hide. // CSS in is the primary mechanism; this catches any timing gap between // morph() re-rendering a strikethrough SVG and the CSS rule applying. function suppressStrikethroughs() { document.querySelectorAll('variant-picker .variant-option__strikethrough').forEach(function(el) { el.style.display = 'none'; }); } function applyCopy(year) { document.querySelectorAll('[data-tb-year]').forEach(function(el) { el.hidden = (el.getAttribute('data-tb-year') !== String(year)); }); var injected = document.getElementById('tb-preorder-injected'); if (injected) { injected.hidden = (String(year) !== '2026'); } } function applyColourFilter(year) { var optName = window.__tbColourOptionName || 'Color'; var validColours = (window.__tbColoursByYear || {})[String(year)] || []; // Find all colour radios by their name prefix var radios = document.querySelectorAll('variant-picker input[type="radio"][name^="' + optName + '"]'); radios.forEach(function(r) { var valid = validColours.indexOf(r.value) !== -1; // Hide the wrapping label so the button visually disappears var label = r.closest('label') || r.parentElement; if (label) { label.style.display = valid ? '' : 'none'; } }); // If current selection is invalid, click the first valid one without animation var currentColourInput = document.querySelector('variant-picker input[type="radio"][name^="' + optName + '"]:checked'); if (currentColourInput && validColours.indexOf(currentColourInput.value) === -1) { var firstValid = Array.from(radios).find(function(r) { return validColours.indexOf(r.value) !== -1; }); if (firstValid && !firstValid.checked) { suppressedClick(firstValid); } } } function applyMediaFilter(year) { var ids2026 = (window.__tb2026MediaIds || []).map(String); if (!ids2026.length) return; document.querySelectorAll('[data-media-id]').forEach(function(el) { var id = el.getAttribute('data-media-id') || ''; var is2026 = ids2026.indexOf(id) !== -1; var shouldShow = (String(year) === '2026') ? is2026 : !is2026; // Target the LI container so the whole grid slot is hidden, not just the inner div var target = el.closest('li') || el; target.style.display = shouldShow ? '' : 'none'; }); } // applyShippingFilter: show ONLY the shipping options that have a real available // variant for the currently-selected colour + year, and force-switch the user off // any shipping option that is not offered for that exact combination. // // Data-driven: window.__tbShippingByColourYear maps "||" -> [offered // shipping values], computed server-side from the live variant matrix (a colour is // offered a shipping value when that exact colour+shipping+year variant has real stock, // or is a China/pre-order variant on backorder). This replaces the old hard-coded // (e.g. a dated "Next available stock (expected ...)" label) and to per-colour stock differences. // Normalize an option value so exact-match comparison can't drift on an NBSP / // en-dash relabel (NFKC folds NBSP -> space; unify dashes; collapse spaces). function _tbNorm(s) { if (s == null) return s; s = String(s); if (s.normalize) s = s.normalize('NFKC'); s = s.split(String.fromCharCode(0x2013)).join('-') .split(String.fromCharCode(0x2014)).join('-') .split(String.fromCharCode(0x2212)).join('-'); return s.replace(/ +/g, ' ').trim(); } var _tbSwitching = false; function applyShippingFilter(year) { var optName = window.__tbShippingOptionName || 'Shipping'; var radios = document.querySelectorAll('variant-picker input[type="radio"][name^="' + optName + '"]'); if (!radios.length) return; var colourName = window.__tbColourOptionName || 'Color'; var colourInput = document.querySelector('variant-picker input[type="radio"][name^="' + colourName + '"]:checked'); var colour = colourInput ? _tbNorm(colourInput.value) : null; var map = window.__tbShippingByColourYear || {}; var offered = (colour != null) ? map[colour + '||' + String(year)] : null; var offeredN = (Object.prototype.toString.call(offered) === '[object Array]') ? offered.map(_tbNorm) : null; // Fail OPEN: if we have no list for this combo (unknown/empty), show everything so we // never leave the customer with an empty Shipping selector. var hasList = offeredN && offeredN.length > 0; radios.forEach(function(r) { var label = r.closest('label') || r.parentElement; if (!label) return; var show = hasList ? (offeredN.indexOf(_tbNorm(r.value)) !== -1) : true; label.style.display = show ? '' : 'none'; }); if (!hasList) return; // Don't fire a switch while one is already in flight (kills the 100/400/900ms change // cascade from re-clicking before the morph settles). if (_tbSwitching) return; // Force-switch: if the checked shipping is not offered for this colour+year, click the // first offered (and visible) one (Drive then fetches+morphs to that real variant). var checked = document.querySelector('variant-picker input[type="radio"][name^="' + optName + '"]:checked'); if (checked && offeredN.indexOf(_tbNorm(checked.value)) === -1) { var firstValid = Array.prototype.slice.call(radios).filter(function(x) { var lbl = x.closest('label') || x.parentElement; return offeredN.indexOf(_tbNorm(x.value)) !== -1 && (!lbl || lbl.style.display !== 'none'); })[0]; if (firstValid && !firstValid.checked) { _tbSwitching = true; suppressedClick(firstValid); setTimeout(function() { _tbSwitching = false; }, 1000); } } } function applyAll() { var year = currentYear(); if (!year) return; applyCopy(year); applyColourFilter(year); applyMediaFilter(year); applyShippingFilter(year); suppressStrikethroughs(); } function injectPreorderNotice() { // 2026-09-18: the Build Service notice sits above the lede inside the description now. // Nothing is cloned above the variant picker any more. } document.addEventListener('variant:update', function(e) { var v = e && e.detail && e.detail.resource; if (v && v.id) { var y = yearOfVariant(v.id); if (y) { applyCopy(y); applyColourFilter(y); applyShippingFilter(y); suppressStrikethroughs(); // Apply media immediately and again after gallery settles applyMediaFilter(y); setTimeout(function() { applyMediaFilter(y); }, 200); setTimeout(function() { applyMediaFilter(y); }, 600); return; } } setTimeout(applyAll, 30); }); document.addEventListener('variant:selected', function() { setTimeout(applyAll, 50); setTimeout(applyAll, 400); }); document.addEventListener('change', function(e) { if (e.target && (e.target.closest('variant-picker') || e.target.name === 'id')) { setTimeout(applyAll, 100); setTimeout(applyAll, 400); setTimeout(applyAll, 900); } }); // Suppress pill animation on direct user clicks of variant buttons. // When a user clicks a year/colour/shipping button, Drive theme does a // fetch+morph cycle (~300 ms). Setting --animation-speed to 0ms immediately // on click means morph() re-renders the picker in snap mode, not slide mode. document.addEventListener('click', function(e) { var label = e.target && e.target.closest('label.variant-option__button-label'); if (!label) return; var vp = label.closest('variant-picker'); if (!vp) return; vp.style.setProperty('--animation-speed', '0ms'); _tbAnimVp = vp; if (_tbAnimTimer) clearTimeout(_tbAnimTimer); _tbAnimTimer = setTimeout(function() { if (_tbAnimVp) _tbAnimVp.style.removeProperty('--animation-speed'); _tbAnimTimer = null; _tbAnimVp = null; }, 1000); }); // enforceButtonBg: enforce label background via inline style after every DOM change. // KEY RULE: group labels by radio name. If ANY input in the group is checked, set that // label dark and clear the rest. If NO input in the group is checked (mid-morph transient // state), LEAVE all inline styles untouched so the previously-selected button stays dark // through the diff. CSS :has(input:checked) handles steady state; this catches the gap. function enforceButtonBg() { var vp = document.querySelector('variant-picker'); if (!vp) return; var groups = {}; vp.querySelectorAll('label.variant-option__button-label').forEach(function(l) { var inp = l.querySelector('input[type="radio"]'); if (!inp) return; if (!groups[inp.name]) groups[inp.name] = []; groups[inp.name].push({l: l, inp: inp}); }); Object.keys(groups).forEach(function(name) { var items = groups[name]; var checkedItem = null; items.forEach(function(it) { if (it.inp.checked) checkedItem = it; }); if (!checkedItem) return; // mid-morph: no checked input yet - preserve existing styles items.forEach(function(it) { if (it.l.style.display === 'none') return; if (it.inp.checked) { it.l.style.setProperty('background-color', '#000'); it.l.style.setProperty('color', '#fff'); } else { it.l.style.removeProperty('background-color'); it.l.style.removeProperty('color'); } }); }); } // Observe document.body so we survive variant-picker replacement by morph() // as well as inner childList mutations from DOM diffing. if (window.MutationObserver && !window.__tbBgObserver) { window.__tbBgObserver = new MutationObserver(function() { enforceButtonBg(); requestAnimationFrame(enforceButtonBg); }); window.__tbBgObserver.observe(document.body, { childList: true, subtree: true }); enforceButtonBg(); } // MutationObserver: re-apply whenever gallery elements are added/changed if (window.MutationObserver) { var tbGalleryObserver = new MutationObserver(function(mutations) { var hasMedia = mutations.some(function(m) { return Array.from(m.addedNodes).some(function(n) { return n.nodeType === 1 && (n.hasAttribute && n.hasAttribute('data-media-id') || n.querySelector && n.querySelector('[data-media-id]')); }); }); if (hasMedia) setTimeout(applyAll, 30); }); tbGalleryObserver.observe(document.body, {childList: true, subtree: true}); } // Inject pre-order notice above variant-picker (once, with a retry) injectPreorderNotice(); setTimeout(injectPreorderNotice, 300); // Initial syncs (run a few times to catch images loading async) [50, 200, 600, 1500, 3000].forEach(function(ms) { setTimeout(applyAll, ms); }); })(); (function(){ function upd(){ var del = document.getElementById('tb-delivery-est'); if(del){ var ship = document.querySelector('variant-picker input[type="radio"][name^="Shipping"]:checked'); var sv = ship ? ship.value : ''; if(/next available|expected/i.test(sv)){ del.textContent = sv; } else if(/China/i.test(sv)){ del.textContent = 'Pre-order: ships in 40 to 60 days'; } else { del.textContent = 'Free UK delivery in 2 to 3 working days'; } } } document.addEventListener('variant:update', function(){ setTimeout(upd, 20); }); document.addEventListener('change', function(e){ if(e.target && ((e.target.closest && e.target.closest('variant-picker')) || e.target.name === 'id')) setTimeout(upd, 60); }); if(document.readyState === 'loading'){ document.addEventListener('DOMContentLoaded', upd); } else { upd(); } [120, 500, 1500].forEach(function(ms){ setTimeout(upd, ms); }); })(); { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "What age is the 2026 Hyper Bee for?", "acceptedAnswer": { "@type": "Answer", "text": "Sur-Ron design the Hyper Bee around riders roughly age 8 and up. Seat height is adjustable 665 to 705 mm across three dimensions, so a shorter younger rider can sit flat-footed and the same bike grows with them as they get taller. An optional thin seat cushion and interchangeable wheel sets (12\"/10\", 14\"/12\", plus a supermoto 10\"/10\" set for tarmac) are available separately. The MY26 top speed of 40 mph (65 km/h) and 8 kW of peak power make the bike better suited to older teens and lighter adults too. SAWC and the throttle response curves let parents start a complete beginner on a tame setup and unlock the bike progressively as confidence grows." } }, { "@type": "Question", "name": "What is new on the MY26 Hyper Bee?", "acceptedAnswer": { "@type": "Answer", "text": "An 8 kW motor putting 185 N·m of torque to the wheel through a new high-strength gearbox, 0 to 31 mph in 2.59 seconds, a new 58V 22Ah quick-release battery (S-S Lock, 10-second tool-free swaps), 3-level SAWC anti-wheelie control, a wrist-strap magnetic kill switch, gyroscope tilt cutoff, a parental remote with intercom and one-touch emergency power-off, a multi-function Bluetooth dashboard, T-Box connectivity, and a free OEM torque wrench tool kit standard with every MY26 bike. Colours are Blue, Green and Yellow." } }, { "@type": "Question", "name": "How does the parental remote work?", "acceptedAnswer": { "@type": "Answer", "text": "The remote pairs with the bike's onboard receiver and works up to 150 to 300 metres away (line of sight). From the remote a parent or coach can adjust regen level (E0 to E5), throttle sensitivity (F1 to F3), horn volume (G1 to G7), tilt sensitivity, SAWC level (W0 to W3), Bluetooth pairing and the unit of speed display. The big red button on the remote is a one-touch emergency power-off, instantly cuts the motor. The remote can also intercom-call the rider when the bike's Bluetooth audio link is paired." } }, { "@type": "Question", "name": "What is SAWC and is it on by default?", "acceptedAnswer": { "@type": "Answer", "text": "SAWC is Sur-Ron's Anti Wheelie Control. A gyroscope reads the bike's pitch angle and the controller modulates power to stop the front lifting too aggressively. It is adjustable across 3 levels (W1, W2, W3) plus off, and the level can be changed from the dashboard or remotely. We recommend new riders start on W3 (most intervention). Important: do not activate SAWC during off-road jumps where you want the front to lift on purpose, toggle it off for tabletops and ramps." } }, { "@type": "Question", "name": "Is the 2026 Hyper Bee road legal in the UK?", "acceptedAnswer": { "@type": "Answer", "text": "No. The Hyper Bee is off-road only and not type-approved for UK public roads. It is for private land, MX tracks, motorsport venues, trail centres and other off-road riding spots. There is no road-legal variant." } }, { "@type": "Question", "name": "How long does delivery take?", "acceptedAnswer": { "@type": "Answer", "text": "UK stock is on pre-order with an expected arrival of 10th October. Once it lands, delivery takes 2 to 3 working days: the bike is collected by our courier the next working day and delivered the working day after that. Delivery times are estimates and occasional delays can happen. China warehouse bikes usually take around 60 days from order, and may occasionally take a little longer if delays occur." } }, { "@type": "Question", "name": "Can I connect this bike to the Sur-Ron app?", "acceptedAnswer": { "@type": "Answer", "text": "Our bikes cannot be connected to the Sur-Ron app due to technical limitations with product regions. This does not change the functionality of the bike, as the app is not needed for using the bike as usual. The on-bike dashboard, parental remote and T-Box monitoring all work without the Sur-Ron app." } } ] }
More you might like
Related
2026 Hyper Bee Sur Ron Light Bee X Suron 8000w Sutton Surrou
Related
Sur-Ron Hyper Bee
Related
Sur Ron Hyper Bee
Related