{"product_id":"ttgo-c5","title":"TTGO C5 – Rower elektryczny 27,5\"","description":"\u003c!-- =========================================================\n  TTGO C5\n  PRODUCT PAGE - POLISH\n  Shopify Custom Liquid \/ HTML\n========================================================= --\u003e\n\u003cdiv class=\"ttgo-c5-page\"\u003e\n\u003c!-- =====================================================\n       HERO\n  ====================================================== --\u003e\n\u003csection class=\"c5-intro\"\u003e\n\u003cdiv class=\"c5-intro-media\"\u003e\u003cvideo autoplay=\"autoplay\" muted=\"\" loop=\"loop\" playsinline=\"\" preload=\"metadata\" poster=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0974\/5704\/5777\/files\/ttgo-c5-gris-titanio-mate-video-portada.jpg?v=1787107442\"\u003e\n        \u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/8bcf88668be343408b05089cde56088c.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\u003c\/div\u003e\n\u003cdiv class=\"c5-intro-content\"\u003e\n\u003cspan class=\"c5-eyebrow\"\u003e Miejski i terenowy rower elektryczny \u003c\/span\u003e\n\u003ch2\u003eTTGO C5\u003c\/h2\u003e\n\u003cp\u003eTTGO C5 łączy nowoczesny design, komfort i pewne prowadzenie podczas codziennej jazdy. Silnik 250 W o momencie obrotowym 70 N·m, akumulator 648 Wh, hydrauliczne hamulce Tektro oraz 7-biegowa przerzutka Shimano zapewniają płynną i zrównoważoną jazdę.\u003c\/p\u003e\n\u003cdiv class=\"c5-intro-specs\"\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e70 N·m\u003c\/strong\u003e \u003cspan\u003eMoment obrotowy\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e648 Wh\u003c\/strong\u003e \u003cspan\u003eAkumulator\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e110–130 km\u003c\/strong\u003e \u003cspan\u003eZasięg\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- =====================================================\n       FEATURES\n  ====================================================== --\u003e\n\u003csection class=\"c5-features-section\"\u003e\n\u003cdiv class=\"c5-container\"\u003e\n\u003ch2 class=\"c5-section-title\"\u003eRower elektryczny TTGO C5\u003c\/h2\u003e\n\u003cdiv class=\"c5-title-line\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"c5-feature-grid\" id=\"c5FeatureScroller\"\u003e\n\u003c!-- 01 MOTOR --\u003e\n\u003carticle class=\"c5-feature-card\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0974\/5704\/5777\/files\/ttgo-c5-motor-250w-70nm-cambio-shimano-7-velocidades.jpg?v=1787106596\" alt=\"Silnik 250 W o momencie obrotowym 70 N·m oraz 7-biegowy napęd Shimano w rowerze elektrycznym TTGO C5\"\u003e\n\u003cdiv class=\"c5-feature-content\"\u003e\n\u003ch3\u003eSilnik 250 W o momencie 70 N·m\u003c\/h3\u003e\n\u003cp\u003eTylny silnik bezszczotkowy o momencie 70 N·m zapewnia płynne wspomaganie w mieście, na podjazdach i podczas codziennych tras.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c!-- 02 BATTERY --\u003e\n\u003carticle class=\"c5-feature-card\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0974\/5704\/5777\/files\/ttgo-c5-bateria-extraible-48v-13-5ah-648wh.jpg?v=1787106609\" alt=\"Wyjmowany akumulator 48 V 13,5 Ah o pojemności 648 Wh zintegrowany z ramą roweru elektrycznego TTGO C5\"\u003e\n\u003cdiv class=\"c5-feature-content\"\u003e\n\u003ch3\u003eAkumulator 48 V 13,5 Ah\u003c\/h3\u003e\n\u003cp\u003eWyjmowany akumulator 648 Wh zintegrowany z ramą zapewnia zasięg do 110–130 km, zależnie od stylu jazdy, terenu i poziomu wspomagania.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c!-- 03 SHIMANO --\u003e\n\u003carticle class=\"c5-feature-card\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0974\/5704\/5777\/files\/ttgo-c5-transmision-shimano-7-velocidades.jpg?v=1787106621\" alt=\"7-biegowy napęd Shimano zamontowany w rowerze elektrycznym TTGO C5\"\u003e\n\u003cdiv class=\"c5-feature-content\"\u003e\n\u003ch3\u003e7-biegowy napęd Shimano\u003c\/h3\u003e\n\u003cp\u003e7-biegowy napęd Shimano pozwala dopasować przełożenie do terenu i zachować płynną oraz kontrolowaną jazdę.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c!-- 04 DISPLAY --\u003e\n\u003carticle class=\"c5-feature-card\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0974\/5704\/5777\/files\/ttgo-c5-pantalla-lcd-controles-manillar-shimano-7v.jpg?v=1787106635\" alt=\"Wyświetlacz LCD, elementy sterujące na kierownicy i 7-biegowa przerzutka Shimano w TTGO C5\"\u003e\n\u003cdiv class=\"c5-feature-content\"\u003e\n\u003ch3\u003eInteligentny wyświetlacz LCD\u003c\/h3\u003e\n\u003cp\u003eCzytelnie sprawdzaj prędkość, poziom akumulatora, przebieg i poziom wspomagania podczas jazdy.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c!-- 05 SUSPENSION --\u003e\n\u003carticle class=\"c5-feature-card\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0974\/5704\/5777\/files\/ttgo-c5-horquilla-suspension-neumaticos-27-5x2-4.jpg?v=1787106652\" alt=\"Amortyzowany widelec przedni i opony 27,5 × 2,4 cala w rowerze elektrycznym TTGO C5\"\u003e\n\u003cdiv class=\"c5-feature-content\"\u003e\n\u003ch3\u003eAmortyzowany widelec przedni\u003c\/h3\u003e\n\u003cp\u003ePrzednia amortyzacja i opony 27,5 × 2,4″ pomagają tłumić nierówności oraz zwiększają stabilność i komfort jazdy.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c!-- 06 SEATPOST --\u003e\n\u003carticle class=\"c5-feature-card\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0974\/5704\/5777\/files\/ttgo-c5-tija-sillin-con-suspension.jpg?v=1787106676\" alt=\"Amortyzowana sztyca siodełka zwiększająca komfort jazdy na rowerze elektrycznym TTGO C5\"\u003e\n\u003cdiv class=\"c5-feature-content\"\u003e\n\u003ch3\u003eAmortyzowana sztyca siodełka\u003c\/h3\u003e\n\u003cp\u003eAmortyzowana sztyca ogranicza drgania i poprawia komfort, szczególnie podczas dłuższych tras.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c!-- 07 FRAME --\u003e\n\u003carticle class=\"c5-feature-card\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0974\/5704\/5777\/files\/ttgo-c5-cuadro-aluminio-acceso-bajo.jpg?v=1787106692\" alt=\"Aluminiowa rama z niskim wejściem w rowerze elektrycznym TTGO C5\"\u003e\n\u003cdiv class=\"c5-feature-content\"\u003e\n\u003ch3\u003eAluminiowa rama z niskim wejściem\u003c\/h3\u003e\n\u003cp\u003eWytrzymała i stabilna aluminiowa rama z niskim wejściem ułatwia wsiadanie na rower i zsiadanie z niego.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c!-- 08 LIGHT --\u003e\n\u003carticle class=\"c5-feature-card\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0974\/5704\/5777\/files\/ttgo-c5-faro-delantero-doble-nucleo-alta-intensidad.jpg?v=1787106706\" alt=\"Mocne przednie światło z podwójnym modułem w rowerze elektrycznym TTGO C5\"\u003e\n\u003cdiv class=\"c5-feature-content\"\u003e\n\u003ch3\u003eMocne światło przednie\u003c\/h3\u003e\n\u003cp\u003ePrzednie światło z podwójnym modułem poprawia widoczność podczas jazdy przy słabym oświetleniu.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c\/div\u003e\n\u003c!-- MOBILE PROGRESS --\u003e\n\u003cdiv class=\"c5-mobile-progress\"\u003e\n\u003cspan\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- =====================================================\n       SIZE\n  ====================================================== --\u003e\n\u003csection class=\"c5-size-section\"\u003e\n\u003cdiv class=\"c5-container\"\u003e\n\u003ch2 class=\"c5-centered-title\"\u003eRozmiar i dopasowanie\u003c\/h2\u003e\n\u003cdiv class=\"c5-size-grid\"\u003e\n\u003cdiv class=\"c5-size-image\"\u003e\u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0974\/5704\/5777\/files\/ttgo-c5-dimensiones-tamano-geometria.jpg?v=1787106717\" alt=\"Wymiary, rozmiar i geometria roweru elektrycznego TTGO C5\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"c5-size-card\"\u003e\n\u003cdiv class=\"c5-size-row\"\u003e\n\u003cspan\u003eA. Długość całkowita\u003c\/span\u003e \u003cstrong\u003e186 cm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"c5-size-row\"\u003e\n\u003cspan\u003eB. Wysokość kierownicy\u003c\/span\u003e \u003cstrong\u003e115–120 cm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"c5-size-row\"\u003e\n\u003cspan\u003eC. Rozstaw osi\u003c\/span\u003e \u003cstrong\u003e113 cm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"c5-size-row\"\u003e\n\u003cspan\u003eD. Wysokość siodełka\u003c\/span\u003e \u003cstrong\u003e92–107 cm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"c5-size-row\"\u003e\n\u003cspan\u003eE. Długość górnej rury\u003c\/span\u003e \u003cstrong\u003e63 cm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"c5-size-row\"\u003e\n\u003cspan\u003eF. Średnica koła\u003c\/span\u003e \u003cstrong\u003e71 cm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"c5-size-row\"\u003e\n\u003cspan\u003eG. Szerokość kierownicy\u003c\/span\u003e \u003cstrong\u003e70 cm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- =====================================================\n       TECHNICAL SPECS\n  ====================================================== --\u003e\n\u003csection class=\"c5-specs-section\"\u003e\n\u003cdiv class=\"c5-container\"\u003e\n\u003ch2 class=\"c5-centered-title\"\u003eDane techniczne\u003c\/h2\u003e\n\u003cdiv class=\"c5-spec-columns\"\u003e\n\u003c!-- GENERAL --\u003e\n\u003cdiv class=\"c5-spec-column\"\u003e\n\u003cbutton class=\"c5-spec-toggle\" type=\"button\"\u003e \u003cspan\u003eOgólne\u003c\/span\u003e \u003cspan class=\"c5-spec-icon\"\u003e\u003c\/span\u003e \u003c\/button\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan\u003eZasięg\u003c\/span\u003e \u003cstrong\u003e110–130 km\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003ePrędkość maksymalna\u003c\/span\u003e \u003cstrong\u003e25 km\/h\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eWspomaganie pedałowania\u003c\/span\u003e \u003cstrong\u003e5 poziomów\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eAmortyzacja\u003c\/span\u003e \u003cstrong\u003eWidelec przedni\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eNapęd\u003c\/span\u003e \u003cstrong\u003eShimano · 7 biegów\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eOpony\u003c\/span\u003e \u003cstrong\u003e27,5″ × 2,4″\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eMasa roweru\u003c\/span\u003e \u003cstrong\u003e26 kg\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eMaksymalne obciążenie\u003c\/span\u003e \u003cstrong\u003e125 kg\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eZalecany wzrost\u003c\/span\u003e \u003cstrong\u003e165–195 cm\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c!-- ELECTRONICS --\u003e\n\u003cdiv class=\"c5-spec-column\"\u003e\n\u003cbutton class=\"c5-spec-toggle\" type=\"button\"\u003e \u003cspan\u003eUkład elektryczny\u003c\/span\u003e \u003cspan class=\"c5-spec-icon\"\u003e\u003c\/span\u003e \u003c\/button\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan\u003eSilnik\u003c\/span\u003e \u003cstrong\u003eSilnik w piaście tylnego koła · 250 W\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eMoment obrotowy\u003c\/span\u003e \u003cstrong\u003e70 N·m\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eAkumulator\u003c\/span\u003e \u003cstrong\u003e48 V 13,5 Ah · 648 Wh\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eŁadowarka\u003c\/span\u003e \u003cstrong\u003e54,6 V · 2 A\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eCzas ładowania\u003c\/span\u003e \u003cstrong\u003e≈ 6 h\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eWyświetlacz\u003c\/span\u003e \u003cstrong\u003eKolorowy LCD\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eCzujnik\u003c\/span\u003e \u003cstrong\u003eCzujnik prędkości\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eStopień ochrony akumulatora\u003c\/span\u003e \u003cstrong\u003eIPX5\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c!-- COMPONENTS --\u003e\n\u003cdiv class=\"c5-spec-column\"\u003e\n\u003cbutton class=\"c5-spec-toggle\" type=\"button\"\u003e \u003cspan\u003eKomponenty\u003c\/span\u003e \u003cspan class=\"c5-spec-icon\"\u003e\u003c\/span\u003e \u003c\/button\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan\u003eRama\u003c\/span\u003e \u003cstrong\u003eStop aluminium\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eKierownica\u003c\/span\u003e \u003cstrong\u003eStop aluminium\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eWidelec\u003c\/span\u003e \u003cstrong\u003eAluminium\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eHamulce\u003c\/span\u003e \u003cstrong\u003eHydrauliczne Tektro\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003ePrzerzutka\u003c\/span\u003e \u003cstrong\u003eShimano · 7 biegów\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eBagażnik\u003c\/span\u003e \u003cstrong\u003eAluminium\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eOpony\u003c\/span\u003e \u003cstrong\u003e27,5″ × 2,4″\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eŚwiatło przednie\u003c\/span\u003e \u003cstrong\u003ePodwójny moduł\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eŚwiatło tylne\u003c\/span\u003e \u003cstrong\u003eCzerwona dioda LED\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003ePedały\u003c\/span\u003e \u003cstrong\u003eAluminium\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eSztyca siodełka\u003c\/span\u003e \u003cstrong\u003eAmortyzowana\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- =====================================================\n       EXPLORE MORE\n  ====================================================== --\u003e\n\u003csection class=\"c5-gallery-section\"\u003e\n\u003ch2\u003eZobacz więcej\u003c\/h2\u003e\n\u003cdiv class=\"c5-gallery\"\u003e\n\u003cdiv class=\"c5-gallery-main\"\u003e\n\u003cbutton class=\"c5-gallery-arrow c5-prev\" type=\"button\" aria-label=\"Poprzednie zdjęcie\"\u003e ‹ \u003c\/button\u003e \u003cimg id=\"c5GalleryMain\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0974\/5704\/5777\/files\/ttgo-c5-bicicleta-electrica-blanca-foto-real-parque.webp?v=1787106891\" alt=\"Biały rower elektryczny TTGO C5 sfotografowany w parku, z ramą z niskim wejściem i wyposażeniem do codziennych dojazdów\"\u003e \u003cbutton class=\"c5-gallery-arrow c5-next\" type=\"button\" aria-label=\"Następne zdjęcie\"\u003e › \u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"c5-gallery-thumbs\"\u003e\n\u003c!-- 01 --\u003e \u003cbutton class=\"c5-gallery-thumb is-active\" type=\"button\"\u003e \u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0974\/5704\/5777\/files\/ttgo-c5-bicicleta-electrica-blanca-foto-real-parque.webp?v=1787106891\" alt=\"Biały rower elektryczny TTGO C5 sfotografowany w parku, z ramą z niskim wejściem i wyposażeniem do codziennych dojazdów\"\u003e \u003c\/button\u003e \u003c!-- 02 --\u003e \u003cbutton class=\"c5-gallery-thumb\" type=\"button\"\u003e \u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0974\/5704\/5777\/files\/ttgo-c5-bicicleta-electrica-gris-foto-real-entorno-natural.webp?v=1787106878\" alt=\"Szary rower elektryczny TTGO C5 w otoczeniu natury, z oponami 27,5 cala, przednią amortyzacją i tylnym bagażnikiem\"\u003e \u003c\/button\u003e \u003c!-- 03 --\u003e \u003cbutton class=\"c5-gallery-thumb\" type=\"button\"\u003e \u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0974\/5704\/5777\/files\/ttgo-c5-bicicleta-electrica-blanca-foto-real-jardin.webp?v=1787106798\" alt=\"Biały TTGO C5 sfotografowany w ogrodzie, z aluminiową ramą z niskim wejściem, zintegrowanym akumulatorem i tylnym bagażnikiem\"\u003e \u003c\/button\u003e \u003c!-- 04 --\u003e \u003cbutton class=\"c5-gallery-thumb\" type=\"button\"\u003e \u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0974\/5704\/5777\/files\/ttgo-c5-bicicleta-electrica-gris-foto-real-naturaleza.webp?v=1787106776\" alt=\"Szary rower elektryczny TTGO C5 sfotografowany w otoczeniu natury, przeznaczony do jazdy miejskiej i rekreacyjnych tras\"\u003e \u003c\/button\u003e \u003c!-- 05 --\u003e \u003cbutton class=\"c5-gallery-thumb\" type=\"button\"\u003e \u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0974\/5704\/5777\/files\/ttgo-c5-bicicleta-electrica-blanca-foto-real-uso-urbano.webp?v=1787106760\" alt=\"Biały rower elektryczny TTGO C5 w miejskim otoczeniu, wyposażony do codziennych dojazdów i jazdy po mieście\"\u003e \u003c\/button\u003e \u003c!-- 06 --\u003e \u003cbutton class=\"c5-gallery-thumb\" type=\"button\"\u003e \u003cimg loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0974\/5704\/5777\/files\/ttgo-c5-bicicleta-electrica-turquesa-foto-real-parque.webp?v=1787106741\" alt=\"Turkusowy rower elektryczny TTGO C5 sfotografowany w parku, z ramą z niskim wejściem, przednią amortyzacją i tylnym bagażnikiem\"\u003e \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n\n\/* =========================================================\n   BASE\n========================================================= *\/\n\n.ttgo-c5-page,\n.ttgo-c5-page * {\n  box-sizing: border-box;\n}\n\n.ttgo-c5-page {\n  width: 100%;\n  color: #151515;\n}\n\n.c5-container {\n  width: 100%;\n  max-width: 1240px;\n  margin: 0 auto;\n  padding-left: 20px;\n  padding-right: 20px;\n}\n\n\n\n\/* =========================================================\n   HERO\n========================================================= *\/\n\n.c5-intro {\n  width: 100%;\n  max-width: 1440px;\n\n  height: 620px;\n  min-height: 620px;\n\n  margin: 0 auto;\n\n  display: grid;\n  grid-template-columns: 1.08fr 0.92fr;\n  align-items: stretch;\n\n  overflow: hidden;\n\n  background: #f6f6f4;\n}\n\n\n\/* 左侧视频区域 *\/\n\n.c5-intro-media {\n  position: relative;\n\n  width: 100%;\n  height: 100%;\n  min-height: 0;\n\n  overflow: hidden;\n\n  background: #000;\n}\n\n\n\/* 视频强制铺满整个 Hero *\/\n\n.c5-intro-media video {\n  position: absolute;\n\n  inset: 0;\n\n  width: 100%;\n  height: 100%;\n\n  min-width: 100%;\n  min-height: 100%;\n\n  display: block;\n\n  object-fit: cover !important;\n  object-position: center center;\n\n  background: #000;\n}\n\n\n\/* 右侧内容 *\/\n\n.c5-intro-content {\n  height: 100%;\n\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n\n  padding: 60px 58px;\n}\n\n\n.c5-eyebrow {\n  display: block;\n\n  margin-bottom: 14px;\n\n  font-size: 13px;\n  line-height: 1.4;\n  letter-spacing: .08em;\n\n  text-transform: uppercase;\n\n  color: #777;\n}\n\n\n.c5-intro-content h2 {\n  margin: 0 0 20px;\n\n  font-size: clamp(36px, 4vw, 58px);\n  line-height: 1;\n\n  font-weight: 600;\n  letter-spacing: -.025em;\n\n  color: #111;\n}\n\n\n.c5-intro-content \u003e p {\n  max-width: 580px;\n\n  margin: 0;\n\n  font-size: 16px;\n  line-height: 1.75;\n  font-weight: 400;\n\n  color: #444;\n}\n\n\n.c5-intro-specs {\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n\n  gap: 1px;\n\n  margin-top: 34px;\n\n  border: 1px solid #dedede;\n\n  background: #dedede;\n}\n\n\n.c5-intro-specs \u003e div {\n  padding: 18px 14px;\n\n  background: #fff;\n}\n\n\n.c5-intro-specs strong {\n  display: block;\n\n  margin-bottom: 5px;\n\n  font-size: 18px;\n  line-height: 1.3;\n  font-weight: 600;\n\n  color: #111;\n}\n\n\n.c5-intro-specs span {\n  display: block;\n\n  font-size: 12px;\n  line-height: 1.4;\n\n  color: #777;\n}\n\n\n\n\/* =========================================================\n   FEATURES\n========================================================= *\/\n\n.c5-features-section {\n  width: 100%;\n}\n\n\n.c5-features-section .c5-container {\n  padding-top: 64px;\n  padding-bottom: 70px;\n}\n\n\n.c5-section-title {\n  margin: 0 0 12px;\n\n  font-size: 30px;\n  line-height: 1.25;\n  font-weight: 600;\n  letter-spacing: -.02em;\n\n  color: #111;\n}\n\n\n.c5-title-line {\n  width: 48px;\n  height: 2px;\n\n  margin: 0 0 32px;\n\n  background: #f5a400;\n}\n\n\n.c5-feature-grid {\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n\n  gap: 24px;\n\n  align-items: stretch;\n}\n\n\n.c5-feature-card {\n  width: 100%;\n  height: 100%;\n\n  overflow: hidden;\n\n  display: flex;\n  flex-direction: column;\n\n  border: 1px solid #e7e7e7;\n  border-radius: 6px;\n\n  background: #fff;\n}\n\n\n.c5-feature-card img {\n  width: 100%;\n\n  aspect-ratio: 1 \/ 1;\n\n  display: block;\n  flex-shrink: 0;\n\n  object-fit: cover;\n  object-position: center;\n\n  background: #f7f7f7;\n}\n\n\n.c5-feature-content {\n  padding: 19px 18px 22px;\n\n  flex: 1;\n}\n\n\n.c5-feature-content h3 {\n  margin: 0 0 10px;\n\n  font-size: 18px;\n  line-height: 1.4;\n  font-weight: 600;\n\n  color: #111;\n}\n\n\n.c5-feature-content p {\n  margin: 0;\n\n  font-size: 14px;\n  line-height: 1.68;\n  font-weight: 400;\n\n  color: #555;\n}\n\n\n.c5-mobile-progress {\n  display: none;\n}\n\n\n\n\/* =========================================================\n   SIZE\n========================================================= *\/\n\n.c5-size-section {\n  width: 100%;\n\n  padding: 72px 0;\n\n  background: #f7f7f5;\n}\n\n\n.c5-centered-title {\n  margin: 0 0 38px;\n\n  text-align: center;\n\n  font-size: 32px;\n  line-height: 1.2;\n  font-weight: 600;\n  letter-spacing: -.02em;\n\n  color: #111;\n}\n\n\n.c5-size-grid {\n  display: grid;\n  grid-template-columns: minmax(0, 1.25fr) minmax(330px, .75fr);\n\n  gap: 42px;\n\n  align-items: center;\n}\n\n\n.c5-size-image {\n  width: 100%;\n\n  overflow: hidden;\n\n  background: #fff;\n}\n\n\n.c5-size-image img {\n  width: 100%;\n  height: auto;\n\n  display: block;\n}\n\n\n.c5-size-card {\n  width: 100%;\n\n  padding: 12px 30px;\n\n  border: 1px solid #e7e7e7;\n\n  background: #fff;\n}\n\n\n.c5-size-row {\n  min-height: 62px;\n\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n\n  gap: 20px;\n\n  border-bottom: 1px solid #ededed;\n}\n\n\n.c5-size-row:last-child {\n  border-bottom: 0;\n}\n\n\n.c5-size-row span {\n  font-size: 14px;\n  line-height: 1.45;\n  font-weight: 400;\n\n  color: #555;\n}\n\n\n.c5-size-row strong {\n  flex-shrink: 0;\n\n  text-align: right;\n\n  font-size: 14px;\n  line-height: 1.45;\n  font-weight: 600;\n\n  color: #111;\n}\n\n\n\n\/* =========================================================\n   SPECS\n========================================================= *\/\n\n.c5-specs-section {\n  width: 100%;\n\n  padding: 76px 0 82px;\n\n  background: #fff;\n}\n\n\n.c5-spec-columns {\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n\n  gap: 50px;\n}\n\n\n.c5-spec-toggle {\n  width: 100%;\n\n  margin: 0 0 18px;\n  padding: 0 0 14px;\n\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 16px;\n\n  border: 0;\n  border-bottom: 2px solid #111;\n\n  background: transparent;\n\n  text-align: left;\n  font: inherit;\n  font-size: 21px;\n  line-height: 1.3;\n  font-weight: 600;\n\n  color: #111;\n\n  pointer-events: none;\n}\n\n\n.c5-spec-icon {\n  display: none;\n}\n\n\n.c5-spec-column ul {\n  list-style: none;\n\n  margin: 0;\n  padding: 0;\n}\n\n\n.c5-spec-column li {\n  display: flex;\n  align-items: flex-start;\n  justify-content: space-between;\n\n  gap: 22px;\n\n  padding: 13px 0;\n\n  border-bottom: 1px solid #ededed;\n}\n\n\n.c5-spec-column li span {\n  width: 42%;\n\n  flex-shrink: 0;\n\n  font-size: 13px;\n  line-height: 1.5;\n  font-weight: 400;\n\n  color: #777;\n}\n\n\n.c5-spec-column li strong {\n  width: 58%;\n\n  text-align: right;\n\n  font-size: 13px;\n  line-height: 1.5;\n  font-weight: 500;\n\n  color: #222;\n}\n\n\n\n\/* =========================================================\n   GALLERY\n========================================================= *\/\n\n.c5-gallery-section {\n  width: 100%;\n  max-width: 1540px;\n\n  margin: 0 auto;\n\n  padding: 60px 20px 76px;\n}\n\n\n.c5-gallery-section \u003e h2 {\n  margin: 0 0 30px;\n\n  text-align: center;\n\n  font-size: 32px;\n  line-height: 1.2;\n  font-weight: 600;\n  letter-spacing: -.02em;\n\n  color: #111;\n}\n\n\n.c5-gallery {\n  width: 100%;\n}\n\n\n.c5-gallery-main {\n  position: relative;\n\n  width: 100%;\n  height: 720px;\n\n  overflow: hidden;\n\n  background: #f4f4f4;\n}\n\n\n.c5-gallery-main \u003e img {\n  width: 100%;\n  height: 100%;\n\n  display: block;\n\n  object-fit: cover;\n  object-position: center;\n}\n\n\n.c5-gallery-arrow {\n  position: absolute;\n  top: 50%;\n\n  z-index: 5;\n\n  width: 42px;\n  height: 42px;\n\n  padding: 0;\n\n  border: 0;\n  border-radius: 50%;\n\n  transform: translateY(-50%);\n\n  display: flex;\n  align-items: center;\n  justify-content: center;\n\n  background: rgba(0, 0, 0, .45);\n\n  color: #fff;\n\n  font-family: Arial, sans-serif;\n  font-size: 32px;\n  line-height: 1;\n\n  cursor: pointer;\n\n  transition:\n    background .2s ease,\n    opacity .2s ease;\n}\n\n\n.c5-gallery-arrow:hover {\n  background: rgba(0, 0, 0, .72);\n}\n\n\n.c5-prev {\n  left: 18px;\n}\n\n\n.c5-next {\n  right: 18px;\n}\n\n\n.c5-gallery-thumbs {\n  display: grid;\n  grid-template-columns: repeat(6, minmax(0, 1fr));\n\n  gap: 5px;\n\n  margin-top: 5px;\n}\n\n\n.c5-gallery-thumb {\n  width: 100%;\n\n  padding: 0;\n\n  border: 0;\n\n  overflow: hidden;\n\n  opacity: .48;\n\n  background: none;\n\n  cursor: pointer;\n\n  transition: opacity .2s ease;\n}\n\n\n.c5-gallery-thumb:hover,\n.c5-gallery-thumb.is-active {\n  opacity: 1;\n}\n\n\n.c5-gallery-thumb img {\n  width: 100%;\n  height: 125px;\n\n  display: block;\n\n  object-fit: cover;\n  object-position: center;\n}\n\n\n\n\/* =========================================================\n   TABLET\n========================================================= *\/\n\n@media (max-width: 1024px) {\n\n  .c5-intro {\n    height: 540px;\n    min-height: 540px;\n\n    grid-template-columns: 1fr 1fr;\n  }\n\n\n  .c5-intro-content {\n    padding: 44px 34px;\n  }\n\n\n  .c5-intro-content h2 {\n    font-size: 42px;\n  }\n\n\n  .c5-intro-content \u003e p {\n    font-size: 14px;\n    line-height: 1.65;\n  }\n\n\n  .c5-intro-specs {\n    margin-top: 26px;\n  }\n\n\n  .c5-intro-specs \u003e div {\n    padding: 14px 10px;\n  }\n\n\n  .c5-feature-grid {\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n\n    gap: 18px;\n  }\n\n\n  .c5-size-grid {\n    grid-template-columns: 1fr;\n\n    gap: 28px;\n  }\n\n\n  .c5-size-image,\n  .c5-size-card {\n    width: 100%;\n    max-width: 800px;\n\n    margin-left: auto;\n    margin-right: auto;\n  }\n\n\n  .c5-spec-columns {\n    gap: 26px;\n  }\n\n\n  .c5-gallery-main {\n    height: 580px;\n  }\n\n\n  .c5-gallery-thumb img {\n    height: 95px;\n  }\n\n}\n\n\n\n\/* =========================================================\n   MOBILE\n========================================================= *\/\n\n@media (max-width: 768px) {\n\n  .c5-container {\n    padding-left: 16px;\n    padding-right: 16px;\n  }\n\n\n\n  \/* HERO *\/\n\n  .c5-intro {\n    width: 100%;\n\n    height: auto;\n    min-height: 0;\n\n    display: flex;\n    flex-direction: column;\n\n    overflow: visible;\n  }\n\n\n  .c5-intro-media {\n    position: relative;\n\n    width: 100%;\n    height: auto;\n    min-height: 0;\n\n    aspect-ratio: 16 \/ 10;\n\n    overflow: hidden;\n\n    background: #000;\n  }\n\n\n  .c5-intro-media video {\n    position: absolute;\n\n    inset: 0;\n\n    width: 100%;\n    height: 100%;\n\n    min-width: 100%;\n    min-height: 100%;\n\n    object-fit: cover !important;\n    object-position: center center;\n  }\n\n\n  .c5-intro-content {\n    height: auto;\n\n    padding: 32px 20px 40px;\n  }\n\n\n  .c5-eyebrow {\n    margin-bottom: 10px;\n\n    font-size: 11px;\n  }\n\n\n  .c5-intro-content h2 {\n    margin-bottom: 15px;\n\n    font-size: 34px;\n  }\n\n\n  .c5-intro-content \u003e p {\n    font-size: 14px;\n    line-height: 1.7;\n  }\n\n\n  .c5-intro-specs {\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n\n    margin-top: 26px;\n  }\n\n\n  .c5-intro-specs \u003e div {\n    padding: 14px 8px;\n  }\n\n\n  .c5-intro-specs strong {\n    font-size: 14px;\n  }\n\n\n  .c5-intro-specs span {\n    font-size: 10px;\n  }\n\n\n\n  \/* FEATURES *\/\n\n  .c5-features-section {\n    overflow: hidden;\n  }\n\n\n  .c5-features-section .c5-container {\n    max-width: none;\n\n    padding: 42px 0 45px;\n  }\n\n\n  .c5-section-title {\n    padding: 0 16px;\n\n    margin-bottom: 10px;\n\n    font-size: 23px;\n    line-height: 1.3;\n  }\n\n\n  .c5-title-line {\n    margin-left: 16px;\n    margin-bottom: 22px;\n  }\n\n\n  .c5-feature-grid {\n    display: flex;\n\n    grid-template-columns: none;\n\n    gap: 14px;\n\n    overflow-x: auto;\n    overflow-y: hidden;\n\n    padding: 0 16px 16px;\n\n    scroll-snap-type: x mandatory;\n    -webkit-overflow-scrolling: touch;\n\n    scrollbar-width: none;\n  }\n\n\n  .c5-feature-grid::-webkit-scrollbar {\n    display: none;\n  }\n\n\n  .c5-feature-card {\n    flex: 0 0 86%;\n\n    max-width: 86%;\n\n    height: auto;\n\n    scroll-snap-align: start;\n  }\n\n\n  .c5-feature-card img {\n    width: 100%;\n\n    aspect-ratio: 1 \/ 1;\n\n    object-fit: cover;\n    object-position: center;\n  }\n\n\n  .c5-feature-content {\n    padding: 17px 15px 20px;\n  }\n\n\n  .c5-feature-content h3 {\n    margin-bottom: 8px;\n\n    font-size: 17px;\n  }\n\n\n  .c5-feature-content p {\n    font-size: 13px;\n    line-height: 1.62;\n  }\n\n\n  .c5-mobile-progress {\n    display: block;\n\n    position: relative;\n\n    height: 5px;\n\n    margin: 3px 16px 0;\n\n    overflow: hidden;\n\n    border-radius: 999px;\n\n    background: #ebebeb;\n  }\n\n\n  .c5-mobile-progress span {\n    display: block;\n\n    width: 26%;\n    height: 100%;\n\n    border-radius: inherit;\n\n    background: #f5a400;\n\n    transform: translateX(0);\n\n    transition: transform .1s linear;\n  }\n\n\n\n  \/* SIZE *\/\n\n  .c5-size-section {\n    padding: 48px 0;\n  }\n\n\n  .c5-centered-title {\n    margin-bottom: 25px;\n\n    font-size: 27px;\n  }\n\n\n  .c5-size-grid {\n    gap: 20px;\n  }\n\n\n  .c5-size-card {\n    padding: 8px 18px;\n  }\n\n\n  .c5-size-row {\n    min-height: 56px;\n  }\n\n\n  .c5-size-row span,\n  .c5-size-row strong {\n    font-size: 12px;\n  }\n\n\n\n  \/* SPECS *\/\n\n  .c5-specs-section {\n    padding: 52px 0 60px;\n  }\n\n\n  .c5-spec-columns {\n    grid-template-columns: 1fr;\n\n    gap: 0;\n\n    border-top: 1px solid #e8e8e8;\n  }\n\n\n  .c5-spec-column {\n    border-bottom: 1px solid #e8e8e8;\n  }\n\n\n  .c5-spec-toggle {\n    margin: 0;\n    padding: 18px 2px;\n\n    border-bottom: 0;\n\n    font-size: 17px;\n    line-height: 1.3;\n    font-weight: 500;\n\n    cursor: pointer;\n    pointer-events: auto;\n  }\n\n\n  .c5-spec-icon {\n    position: relative;\n\n    display: block;\n    flex: 0 0 18px;\n\n    width: 18px;\n    height: 18px;\n  }\n\n\n  .c5-spec-icon::before,\n  .c5-spec-icon::after {\n    content: '';\n\n    position: absolute;\n    top: 50%;\n    left: 50%;\n\n    width: 14px;\n    height: 1px;\n\n    background: #222;\n\n    transform: translate(-50%, -50%);\n    transition: opacity .2s ease, transform .2s ease;\n  }\n\n\n  .c5-spec-icon::after {\n    transform: translate(-50%, -50%) rotate(90deg);\n  }\n\n\n  .c5-spec-column.is-open .c5-spec-icon::after {\n    opacity: 0;\n    transform: translate(-50%, -50%) rotate(0deg);\n  }\n\n\n  .c5-spec-column ul {\n    max-height: 0;\n\n    overflow: hidden;\n    opacity: 0;\n\n    transition: max-height .28s ease, opacity .2s ease;\n  }\n\n\n  .c5-spec-column.is-open ul {\n    max-height: 1000px;\n    opacity: 1;\n  }\n\n\n  .c5-spec-column li {\n    padding: 11px 2px;\n  }\n\n\n  .c5-spec-column li span,\n  .c5-spec-column li strong {\n    font-size: 12px;\n  }\n\n\n\n  \/* GALLERY *\/\n\n  .c5-gallery-section {\n    padding: 44px 0 52px;\n  }\n\n\n  .c5-gallery-section \u003e h2 {\n    margin-bottom: 18px;\n\n    font-size: 28px;\n  }\n\n\n  .c5-gallery-main {\n    width: 100%;\n\n    height: auto;\n    min-height: 0;\n\n    background: #fff;\n  }\n\n\n  .c5-gallery-main \u003e img {\n    width: 100%;\n    height: auto;\n\n    max-height: none;\n\n    object-fit: contain;\n    object-position: center;\n  }\n\n\n  .c5-gallery-arrow {\n    width: 36px;\n    height: 36px;\n\n    font-size: 28px;\n\n    background: rgba(0, 0, 0, .42);\n  }\n\n\n  .c5-prev {\n    left: 8px;\n  }\n\n\n  .c5-next {\n    right: 8px;\n  }\n\n\n  .c5-gallery-thumbs {\n    display: flex;\n\n    gap: 7px;\n\n    margin-top: 0;\n\n    padding: 7px 0 0;\n\n    overflow-x: auto;\n\n    scroll-snap-type: x mandatory;\n    -webkit-overflow-scrolling: touch;\n\n    scrollbar-width: none;\n  }\n\n\n  .c5-gallery-thumbs::-webkit-scrollbar {\n    display: none;\n  }\n\n\n  .c5-gallery-thumb {\n    flex: 0 0 28%;\n\n    scroll-snap-align: start;\n  }\n\n\n  .c5-gallery-thumb img {\n    width: 100%;\n    height: 84px;\n\n    object-fit: cover;\n  }\n\n}\n\n\n\n\/* =========================================================\n   SMALL MOBILE\n========================================================= *\/\n\n@media (max-width: 480px) {\n\n  .c5-intro-content {\n    padding-left: 16px;\n    padding-right: 16px;\n  }\n\n\n  .c5-intro-content h2 {\n    font-size: 32px;\n  }\n\n\n  .c5-intro-specs strong {\n    font-size: 13px;\n  }\n\n\n  .c5-feature-card {\n    flex: 0 0 88%;\n\n    max-width: 88%;\n  }\n\n\n  .c5-size-row {\n    gap: 12px;\n  }\n\n\n  .c5-gallery-thumb {\n    flex: 0 0 30%;\n  }\n\n\n  .c5-gallery-thumb img {\n    height: 78px;\n  }\n\n}\n\n\u003c\/style\u003e\n\u003cscript\u003e\n(function () {\n  'use strict';\n\n  function initTTGOC5(root) {\n    var scope = root || document;\n    var pages = [];\n\n    if (scope.matches \u0026\u0026 scope.matches('.ttgo-c5-page')) {\n      pages = [scope];\n    } else if (scope.querySelectorAll) {\n      pages = Array.prototype.slice.call(scope.querySelectorAll('.ttgo-c5-page'));\n    }\n\n    pages.forEach(function (page) {\n      if (page.dataset.c5Initialized === 'true') return;\n      page.dataset.c5Initialized = 'true';\n\n      \/* =========================================================\n         1. EXPLORE MORE GALLERY\n      ========================================================= *\/\n      var mainImage = page.querySelector('#c5GalleryMain');\n      var thumbs = Array.prototype.slice.call(page.querySelectorAll('.c5-gallery-thumb'));\n      var prevBtn = page.querySelector('.c5-prev');\n      var nextBtn = page.querySelector('.c5-next');\n      var galleryMain = page.querySelector('.c5-gallery-main');\n      var currentIndex = Math.max(0, thumbs.findIndex(function (thumb) {\n        return thumb.classList.contains('is-active');\n      }));\n\n      function showImage(index, options) {\n        options = options || {};\n        if (!mainImage || !thumbs.length) return;\n\n        if (index \u003c 0) index = thumbs.length - 1;\n        if (index \u003e= thumbs.length) index = 0;\n        currentIndex = index;\n\n        var thumb = thumbs[currentIndex];\n        var thumbImg = thumb.querySelector('img');\n        if (!thumbImg) return;\n\n        mainImage.src = thumbImg.currentSrc || thumbImg.src;\n        mainImage.alt = thumbImg.alt || '';\n\n        thumbs.forEach(function (item, i) {\n          var active = i === currentIndex;\n          item.classList.toggle('is-active', active);\n          item.setAttribute('aria-pressed', active ? 'true' : 'false');\n        });\n\n        if (options.scrollThumb !== false \u0026\u0026 window.innerWidth \u003c= 768) {\n          try {\n            thumb.scrollIntoView({\n              behavior: options.instant ? 'auto' : 'smooth',\n              block: 'nearest',\n              inline: 'center'\n            });\n          } catch (e) {\n            \/\/ Older browsers: switching the image still works.\n          }\n        }\n      }\n\n      thumbs.forEach(function (thumb, index) {\n        thumb.setAttribute('aria-label', 'Pokaż zdjęcie ' + (index + 1));\n        thumb.setAttribute('aria-pressed', index === currentIndex ? 'true' : 'false');\n\n        thumb.addEventListener('click', function (event) {\n          event.preventDefault();\n          showImage(index);\n        });\n      });\n\n      if (prevBtn) {\n        prevBtn.addEventListener('click', function (event) {\n          event.preventDefault();\n          event.stopPropagation();\n          showImage(currentIndex - 1);\n        });\n      }\n\n      if (nextBtn) {\n        nextBtn.addEventListener('click', function (event) {\n          event.preventDefault();\n          event.stopPropagation();\n          showImage(currentIndex + 1);\n        });\n      }\n\n      if (galleryMain \u0026\u0026 thumbs.length) {\n        var touchStartX = 0;\n        var touchStartY = 0;\n\n        galleryMain.addEventListener('touchstart', function (event) {\n          if (!event.changedTouches || !event.changedTouches.length) return;\n          touchStartX = event.changedTouches[0].clientX;\n          touchStartY = event.changedTouches[0].clientY;\n        }, { passive: true });\n\n        galleryMain.addEventListener('touchend', function (event) {\n          if (!event.changedTouches || !event.changedTouches.length) return;\n\n          var endX = event.changedTouches[0].clientX;\n          var endY = event.changedTouches[0].clientY;\n          var diffX = touchStartX - endX;\n          var diffY = touchStartY - endY;\n\n          \/\/ Only treat it as gallery swipe when horizontal movement is dominant.\n          if (Math.abs(diffX) \u003c 45 || Math.abs(diffX) \u003c= Math.abs(diffY)) return;\n\n          if (diffX \u003e 0) {\n            showImage(currentIndex + 1);\n          } else {\n            showImage(currentIndex - 1);\n          }\n        }, { passive: true });\n      }\n\n      \/* =========================================================\n         2. MOBILE TECHNICAL SPECS ACCORDION\n      ========================================================= *\/\n      var specColumns = Array.prototype.slice.call(page.querySelectorAll('.c5-spec-column'));\n\n      specColumns.forEach(function (column) {\n        var button = column.querySelector('.c5-spec-toggle');\n        if (!button) return;\n\n        button.setAttribute('aria-expanded', column.classList.contains('is-open') ? 'true' : 'false');\n\n        button.addEventListener('click', function (event) {\n          if (window.innerWidth \u003e 768) return;\n          event.preventDefault();\n\n          var wasOpen = column.classList.contains('is-open');\n\n          specColumns.forEach(function (item) {\n            item.classList.remove('is-open');\n            var itemButton = item.querySelector('.c5-spec-toggle');\n            if (itemButton) itemButton.setAttribute('aria-expanded', 'false');\n          });\n\n          if (!wasOpen) {\n            column.classList.add('is-open');\n            button.setAttribute('aria-expanded', 'true');\n          }\n        });\n      });\n\n      \/* =========================================================\n         3. MOBILE FEATURE SCROLLER PROGRESS\n      ========================================================= *\/\n      var featureScroller = page.querySelector('#c5FeatureScroller');\n      var progressWrap = page.querySelector('.c5-mobile-progress');\n      var progressBar = progressWrap ? progressWrap.querySelector('span') : null;\n      var progressTicking = false;\n\n      function updateProgress() {\n        progressTicking = false;\n        if (!featureScroller || !progressWrap || !progressBar) return;\n\n        var maxScroll = featureScroller.scrollWidth - featureScroller.clientWidth;\n        var availableTravel = progressWrap.clientWidth - progressBar.offsetWidth;\n\n        if (maxScroll \u003c= 0 || availableTravel \u003c= 0) {\n          progressBar.style.transform = 'translateX(0px)';\n          return;\n        }\n\n        var progress = featureScroller.scrollLeft \/ maxScroll;\n        progress = Math.max(0, Math.min(1, progress));\n        progressBar.style.transform = 'translateX(' + (progress * availableTravel) + 'px)';\n      }\n\n      function requestProgressUpdate() {\n        if (progressTicking) return;\n        progressTicking = true;\n        window.requestAnimationFrame(updateProgress);\n      }\n\n      if (featureScroller \u0026\u0026 progressBar) {\n        featureScroller.addEventListener('scroll', requestProgressUpdate, { passive: true });\n        window.addEventListener('resize', requestProgressUpdate, { passive: true });\n        requestProgressUpdate();\n      }\n\n      \/* =========================================================\n         4. INITIAL STATE\n      ========================================================= *\/\n      if (thumbs.length) {\n        showImage(currentIndex, { scrollThumb: false, instant: true });\n      }\n    });\n  }\n\n  function boot() {\n    initTTGOC5(document);\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', boot, { once: true });\n  } else {\n    boot();\n  }\n\n  \/\/ Shopify theme editor support.\n  document.addEventListener('shopify:section:load', function (event) {\n    initTTGOC5(event.target || document);\n  });\n})();\n\u003c\/script\u003e\n","brand":"Velomenu","offers":[{"title":"Default Title","offer_id":44019605307510,"sku":null,"price":3146.99,"currency_code":"PLN","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0688\/2086\/1046\/files\/DM_20260818215652_006.webp?v=1787106333","url":"https:\/\/velomenu.pl\/products\/ttgo-c5","provider":"Velomenu","version":"1.0","type":"link"}