const { useState, useEffect, useRef, useCallback } = React; // ─── Helpers ──────────────────────────────────────────────────── const scrollToSection = id => { const el = document.getElementById(id); if (!el) return; const top = el.getBoundingClientRect().top + window.pageYOffset - 60; window.scrollTo({ top, behavior: 'smooth' }); }; // ─── LED Panel Visual ──────────────────────────────────────────── const LEDPanel = ({ cols = 18, rows = 10, width = 420, height = 175, label = 'RedBoost' }) => { const padX = 22, padY = 18; const gapX = cols > 1 ? (width - padX * 2) / (cols - 1) : 0; const gapY = rows > 1 ? (height - padY * 2) / (rows - 1) : 0; const dots = []; for (let r = 0; r < rows; r++) { for (let c = 0; c < cols; c++) { const x = padX + c * gapX; const y = padY + r * gapY; const pattern = (c + r * 2) % 5; const color = pattern < 2 ? '#FF3311' : pattern < 4 ? '#DD2200' : '#AA1800'; const opacity = 0.7 + pattern % 3 * 0.1; dots.push({ x, y, color, opacity, r: pattern % 2 === 0 ? 3.8 : 3.2 }); } } const glowId = `glow-${cols}-${rows}`; const floorId = `floor-${cols}-${rows}`; return /*#__PURE__*/React.createElement("svg", { width: width, height: height + 44, viewBox: `0 0 ${width} ${height + 44}`, "aria-label": label }, /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("filter", { id: glowId, x: "-80%", y: "-80%", width: "260%", height: "260%" }, /*#__PURE__*/React.createElement("feGaussianBlur", { stdDeviation: "2.5", result: "b" }), /*#__PURE__*/React.createElement("feMerge", null, /*#__PURE__*/React.createElement("feMergeNode", { in: "b" }), /*#__PURE__*/React.createElement("feMergeNode", { in: "SourceGraphic" }))), /*#__PURE__*/React.createElement("radialGradient", { id: floorId, cx: "50%", cy: "0%", r: "70%", gradientTransform: "scale(1,0.4) translate(0,1.5)" }, /*#__PURE__*/React.createElement("stop", { offset: "0%", stopColor: "#FF3311", stopOpacity: "0.3" }), /*#__PURE__*/React.createElement("stop", { offset: "100%", stopColor: "#FF3311", stopOpacity: "0" })), /*#__PURE__*/React.createElement("linearGradient", { id: `edge-${cols}`, x1: "0", y1: "0", x2: "0", y2: "1" }, /*#__PURE__*/React.createElement("stop", { offset: "0%", stopColor: "#282828" }), /*#__PURE__*/React.createElement("stop", { offset: "100%", stopColor: "#141414" }))), /*#__PURE__*/React.createElement("rect", { x: "8", y: "8", width: width, height: height, rx: "10", fill: "rgba(0,0,0,0.4)" }), /*#__PURE__*/React.createElement("rect", { x: "0", y: "0", width: width, height: height, rx: "10", fill: `url(#edge-${cols})` }), /*#__PURE__*/React.createElement("rect", { x: "1", y: "1", width: width - 2, height: height - 2, rx: "9", fill: "#181818" }), /*#__PURE__*/React.createElement("rect", { x: "10", y: "10", width: width - 20, height: height - 20, rx: "5", fill: "#121212", stroke: "#222", strokeWidth: "0.5" }), /*#__PURE__*/React.createElement("ellipse", { cx: width / 2, cy: height + 22, rx: width * 0.55, ry: "22", fill: `url(#${floorId})` }), dots.map((d, i) => /*#__PURE__*/React.createElement("circle", { key: i, cx: d.x, cy: d.y, r: d.r, fill: d.color, filter: `url(#${glowId})`, opacity: d.opacity })), /*#__PURE__*/React.createElement("rect", { x: width - 38, y: height - 28, width: "28", height: "16", rx: "3", fill: "#1C1C1C", stroke: "#333", strokeWidth: "0.5" }), /*#__PURE__*/React.createElement("text", { x: width - 34, y: height - 17, fontSize: "6", fill: "#555", fontFamily: "monospace" }, "\u25CF\u25CF\u25CF"), /*#__PURE__*/React.createElement("text", { x: "14", y: height - 14, fontSize: "8", fill: "rgba(255,255,255,0.2)", fontFamily: "DM Sans, sans-serif", fontWeight: "500", letterSpacing: "2" }, label.toUpperCase())); }; // ─── Icon set ──────────────────────────────────────────────────── const Icon = ({ name, size = 20, color = 'currentColor', strokeWidth = 1.5 }) => { const s = { width: size, height: size, display: 'inline-block', flexShrink: 0 }; const paths = { star: /*#__PURE__*/React.createElement("svg", { style: s, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" }, /*#__PURE__*/React.createElement("polygon", { points: "12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26" })), wave: /*#__PURE__*/React.createElement("svg", { style: s, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round" }, /*#__PURE__*/React.createElement("path", { d: "M2 12 C4 6 6 6 8 12 S12 18 14 12 S18 6 20 12 S22 15 22 12" })), bolt: /*#__PURE__*/React.createElement("svg", { style: s, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" }, /*#__PURE__*/React.createElement("polyline", { points: "13,2 3,14 12,14 11,22 21,10 12,10" })), moon: /*#__PURE__*/React.createElement("svg", { style: s, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" }, /*#__PURE__*/React.createElement("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" })), sparkle: /*#__PURE__*/React.createElement("svg", { style: s, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" }, /*#__PURE__*/React.createElement("path", { d: "M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83" })), rotate: /*#__PURE__*/React.createElement("svg", { style: s, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" }, /*#__PURE__*/React.createElement("path", { d: "M23 4v6h-6" }), /*#__PURE__*/React.createElement("path", { d: "M1 20v-6h6" }), /*#__PURE__*/React.createElement("path", { d: "M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15" })), shield: /*#__PURE__*/React.createElement("svg", { style: s, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" }, /*#__PURE__*/React.createElement("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" })), clock: /*#__PURE__*/React.createElement("svg", { style: s, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" }, /*#__PURE__*/React.createElement("circle", { cx: "12", cy: "12", r: "10" }), /*#__PURE__*/React.createElement("polyline", { points: "12,6 12,12 16,14" })), leaf: /*#__PURE__*/React.createElement("svg", { style: s, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" }, /*#__PURE__*/React.createElement("path", { d: "M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10z" }), /*#__PURE__*/React.createElement("path", { d: "M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12" })), muscle: /*#__PURE__*/React.createElement("svg", { style: s, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" }, /*#__PURE__*/React.createElement("path", { d: "M6.5 6.5a4.5 4.5 0 1 0 0 9h1" }), /*#__PURE__*/React.createElement("path", { d: "M17.5 17.5a4.5 4.5 0 1 0 0-9h-1" }), /*#__PURE__*/React.createElement("line", { x1: "7.5", y1: "11", x2: "16.5", y2: "11" })), sun: /*#__PURE__*/React.createElement("svg", { style: s, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" }, /*#__PURE__*/React.createElement("circle", { cx: "12", cy: "12", r: "5" }), /*#__PURE__*/React.createElement("line", { x1: "12", y1: "1", x2: "12", y2: "3" }), /*#__PURE__*/React.createElement("line", { x1: "12", y1: "21", x2: "12", y2: "23" }), /*#__PURE__*/React.createElement("line", { x1: "4.22", y1: "4.22", x2: "5.64", y2: "5.64" }), /*#__PURE__*/React.createElement("line", { x1: "18.36", y1: "18.36", x2: "19.78", y2: "19.78" }), /*#__PURE__*/React.createElement("line", { x1: "1", y1: "12", x2: "3", y2: "12" }), /*#__PURE__*/React.createElement("line", { x1: "21", y1: "12", x2: "23", y2: "12" }), /*#__PURE__*/React.createElement("line", { x1: "4.22", y1: "19.78", x2: "5.64", y2: "18.36" }), /*#__PURE__*/React.createElement("line", { x1: "18.36", y1: "5.64", x2: "19.78", y2: "4.22" })), award: /*#__PURE__*/React.createElement("svg", { style: s, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" }, /*#__PURE__*/React.createElement("circle", { cx: "12", cy: "8", r: "6" }), /*#__PURE__*/React.createElement("path", { d: "M15.477 12.89L17 22l-5-3-5 3 1.523-9.11" })), check: /*#__PURE__*/React.createElement("svg", { style: s, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" }, /*#__PURE__*/React.createElement("polyline", { points: "20,6 9,17 4,12" })), zap: /*#__PURE__*/React.createElement("svg", { style: s, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" }, /*#__PURE__*/React.createElement("circle", { cx: "12", cy: "12", r: "10" }), /*#__PURE__*/React.createElement("polyline", { points: "12,8 12,12" }), /*#__PURE__*/React.createElement("line", { x1: "12", y1: "16", x2: "12.01", y2: "16", strokeWidth: 3 })), layers: /*#__PURE__*/React.createElement("svg", { style: s, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" }, /*#__PURE__*/React.createElement("polygon", { points: "12,2 2,7 12,12 22,7" }), /*#__PURE__*/React.createElement("polyline", { points: "2,17 12,22 22,17" }), /*#__PURE__*/React.createElement("polyline", { points: "2,12 12,17 22,12" })), percent: /*#__PURE__*/React.createElement("svg", { style: s, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" }, /*#__PURE__*/React.createElement("line", { x1: "19", y1: "5", x2: "5", y2: "19" }), /*#__PURE__*/React.createElement("circle", { cx: "6.5", cy: "6.5", r: "2.5" }), /*#__PURE__*/React.createElement("circle", { cx: "17.5", cy: "17.5", r: "2.5" })), eye: /*#__PURE__*/React.createElement("svg", { style: s, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" }, /*#__PURE__*/React.createElement("path", { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }), /*#__PURE__*/React.createElement("circle", { cx: "12", cy: "12", r: "3" })) }; return paths[name] || null; }; // ─── BenefitBar ────────────────────────────────────────────────── const BenefitBar = ({ accentColor }) => { const msgs = ['30 dni na spokojne przetestowanie', 'Raty 0% przez Przelewy24', '2 lata gwarancji na produkt', 'RedBoost, Mini albo MAX — wybierz swój model']; const [idx, setIdx] = useState(0); const [vis, setVis] = useState(true); useEffect(() => { const t = setInterval(() => { setVis(false); setTimeout(() => { setIdx(n => (n + 1) % msgs.length); setVis(true); }, 320); }, 4000); return () => clearInterval(t); }, []); return /*#__PURE__*/React.createElement("div", { style: { background: accentColor, color: '#fff', textAlign: 'center', padding: '10px 20px', fontSize: '13px', fontWeight: 500, letterSpacing: '0.03em', position: 'relative', zIndex: 200 } }, /*#__PURE__*/React.createElement("span", { style: { display: 'inline-block', transition: 'opacity 0.3s', opacity: vis ? 1 : 0 } }, msgs[idx])); }; // ─── StickyHeader ──────────────────────────────────────────────── const StickyHeader = ({ visible, accentColor }) => { const messages = ['RedBoost od 899,60 zł/mc · raty 0%', 'RedBoost Mini od 459 zł/mc · raty 0%', 'RedBoost MAX od 1 259,60 zł/mc · raty 0%']; const [msgIdx, setMsgIdx] = useState(0); const [fade, setFade] = useState(true); useEffect(() => { const iv = setInterval(() => { setFade(false); setTimeout(() => { setMsgIdx(i => (i + 1) % messages.length); setFade(true); }, 400); }, 3500); return () => clearInterval(iv); }, []); return /*#__PURE__*/React.createElement("div", { style: { position: 'fixed', top: visible ? 0 : '-90px', left: 0, right: 0, zIndex: 150, background: 'rgba(10,7,7,0.98)', backdropFilter: 'blur(14px)', transition: 'top 0.35s cubic-bezier(0.4,0,0.2,1)', padding: 'clamp(14px,2vw,20px) clamp(20px,4vw,48px)', display: 'flex', justifyContent: 'space-between', alignItems: 'center', borderBottom: '1px solid rgba(255,255,255,0.08)', boxShadow: '0 2px 20px rgba(0,0,0,0.4)', minHeight: '70px' } }, /*#__PURE__*/React.createElement("div", { style: { display: 'flex', alignItems: 'center', flexShrink: 0 } }, /*#__PURE__*/React.createElement("img", { src: "https://redboost.pl/wp-content/uploads/2026/05/logo-ES-mail3.png", alt: "EyeShield", style: { height: '44px', width: 'auto', objectFit: 'contain' } })), /*#__PURE__*/React.createElement("div", { style: { display: 'flex', alignItems: 'center', gap: 'clamp(10px,2vw,20px)', minWidth: 0, overflow: 'hidden' } }, /*#__PURE__*/React.createElement("span", { style: { color: 'rgba(255,255,255,0.85)', fontSize: 'clamp(11px,1.5vw,13px)', opacity: fade ? 1 : 0, transition: 'opacity 0.4s ease', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', maxWidth: 'clamp(120px,28vw,280px)', flexShrink: 1 } }, messages[msgIdx]), /*#__PURE__*/React.createElement("button", { onClick: () => scrollToSection('models'), style: { background: accentColor, color: '#fff', border: 'none', borderRadius: '6px', padding: 'clamp(8px,1vw,10px) clamp(14px,2vw,24px)', fontSize: 'clamp(12px,1.3vw,14px)', fontWeight: 500, cursor: 'pointer', whiteSpace: 'nowrap', flexShrink: 0 } }, "Wybierz model"))); }; // ─── HeroSection ───────────────────────────────────────────────── const HeroSection = ({ accentColor, darkHero }) => /*#__PURE__*/React.createElement("section", { style: { background: darkHero ? 'var(--dark)' : 'var(--off-white)', color: darkHero ? '#fff' : 'var(--text)', padding: 'clamp(80px, 10vw, 120px) clamp(24px, 6vw, 80px)', display: 'flex', alignItems: 'center', gap: 'clamp(40px, 6vw, 100px)', minHeight: '90vh', position: 'relative', overflow: 'hidden', flexWrap: 'wrap' } }, /*#__PURE__*/React.createElement("div", { style: { position: 'absolute', top: '10%', right: '5%', width: '60%', height: '80%', background: `radial-gradient(ellipse, ${accentColor}22 0%, transparent 65%)`, pointerEvents: 'none' } }), /*#__PURE__*/React.createElement("div", { style: { position: 'absolute', bottom: '-10%', left: '25%', width: '50%', height: '40%', background: `radial-gradient(ellipse, ${accentColor}12 0%, transparent 60%)`, pointerEvents: 'none' } }), /*#__PURE__*/React.createElement("div", { style: { flex: '1 1 400px', maxWidth: '560px', position: 'relative', zIndex: 2 } }, /*#__PURE__*/React.createElement("div", { style: { display: 'inline-flex', alignItems: 'center', gap: '8px', background: `${accentColor}22`, border: `1px solid ${accentColor}44`, borderRadius: '20px', padding: '5px 14px', marginBottom: '32px' } }, /*#__PURE__*/React.createElement("span", { style: { width: '6px', height: '6px', borderRadius: '50%', background: accentColor, display: 'inline-block', flexShrink: 0 } }), /*#__PURE__*/React.createElement("span", { style: { fontSize: '11px', color: darkHero ? 'rgba(255,255,255,0.8)' : 'var(--muted)', letterSpacing: '0.1em', textTransform: 'uppercase', fontWeight: 500 } }, "Poczuj 10 minut porannego s\u0142o\u0144ca \u2014 ka\u017Cdego dnia")), /*#__PURE__*/React.createElement("h1", { style: { margin: 0, fontSize: 'clamp(42px, 5.5vw, 72px)', fontWeight: 600, lineHeight: 1.05, letterSpacing: '-0.01em' } }, /*#__PURE__*/React.createElement("span", { style: { position: 'absolute', width: '1px', height: '1px', padding: 0, margin: '-1px', overflow: 'hidden', clip: 'rect(0,0,0,0)', whiteSpace: 'nowrap', border: 0 } }, "RedBoost - Domowa lampa do terapii czerwonym \u015bwiat\u0142em "), /*#__PURE__*/React.createElement("span", { style: { display: 'block', marginBottom: '8px' }, "aria-hidden": "true" }, "Pe\u0142niejsze "), /*#__PURE__*/React.createElement("span", { style: { display: 'block', marginBottom: '8px', fontStyle: 'italic', color: accentColor }, "aria-hidden": "true" }, "\u015Bwiat\u0142o. "), /*#__PURE__*/React.createElement("span", { style: { display: 'block', marginBottom: '28px' }, "aria-hidden": "true" }, "G\u0142\u0119bsza regeneracja.")), /*#__PURE__*/React.createElement("p", { style: { fontSize: 'clamp(15px, 1.5vw, 17px)', lineHeight: 1.7, color: darkHero ? 'rgba(255,255,255,1)' : 'var(--muted)', marginBottom: '44px', maxWidth: '460px', fontWeight: 300 } }, "Domowa lampa do terapii \u015Bwiat\u0142em czerwonym i blisk\u0105 podczerwieni\u0105, kt\xF3ra pomaga cia\u0142u odpocz\u0105\u0107, zregenerowa\u0107 si\u0119 i wr\xF3ci\u0107 do \u017Cycia. Stajesz przed lamp\u0105. W\u0142\u0105czasz. Przez kilka minut czujesz przyjemne, g\u0142\u0119bokie ciep\u0142o \u2014 troch\u0119 jak poranne s\u0142o\u0144ce. I w\u0142a\u015Bnie o to chodzi."), /*#__PURE__*/React.createElement("div", { style: { display: 'flex', gap: '12px', flexWrap: 'wrap', marginBottom: '24px' } }, /*#__PURE__*/React.createElement("button", { onClick: () => scrollToSection('comparison'), style: { background: accentColor, color: '#fff', border: 'none', borderRadius: '8px', padding: '15px 36px', fontSize: '15px', fontWeight: 500, cursor: 'pointer', letterSpacing: '0.02em' } }, "Wybierz sw\xF3j model"), /*#__PURE__*/React.createElement("button", { onClick: () => scrollToSection('video'), style: { background: accentColor, color: '#fff', border: 'none', borderRadius: '8px', padding: '15px 28px', fontSize: '15px', fontWeight: 500, cursor: 'pointer', letterSpacing: '0.02em' } }, "Jak to dzia\u0142a \u2192")), /*#__PURE__*/React.createElement("div", { style: { display: 'flex', gap: '20px', flexWrap: 'wrap' } }, ['30 dni na zwrot', '2 lata gwarancji', 'Bez UV, bez migotania'].map(t => /*#__PURE__*/React.createElement("span", { key: t, style: { fontSize: '12px', color: '#ffffff', display: 'flex', alignItems: 'center', gap: '5px' } }, /*#__PURE__*/React.createElement(Icon, { name: "check", size: 13, color: accentColor }), " ", t)))), /*#__PURE__*/React.createElement("div", { style: { flex: '1 1 340px', display: 'flex', justifyContent: 'center', alignItems: 'flex-end', position: 'relative', zIndex: 2 } }, /*#__PURE__*/React.createElement("div", { style: { position: 'absolute', bottom: 0, left: '50%', transform: 'translateX(-50%)', width: '340px', height: '60px', background: `radial-gradient(ellipse, ${accentColor}30 0%, transparent 70%)`, borderRadius: '50%', pointerEvents: 'none' } }), /*#__PURE__*/React.createElement("img", { src: "https://redboost.pl/wp-content/uploads/2026/08/grafika_3_1_hd_final.png", alt: "RedBoost Mini, RedBoost i RedBoost MAX \u2014 lampy do terapii \u015Bwiat\u0142em czerwonym i podczerwieni\u0105", loading: "eager", fetchpriority: "high", style: { width: '100%', maxWidth: '480px', maxHeight: '600px', objectFit: 'contain', filter: `drop-shadow(0 20px 60px ${accentColor}88)` } }))); // ─── ProblemSection ────────────────────────────────────────────── const ProblemSection = ({ accentColor }) => /*#__PURE__*/React.createElement("section", { style: { padding: 'clamp(64px,9vw,112px) clamp(24px,6vw,80px)', maxWidth: '1200px', margin: '0 auto' } }, /*#__PURE__*/React.createElement("div", { style: { textAlign: 'center', marginBottom: '64px' } }, /*#__PURE__*/React.createElement("p", { style: { fontSize: '11px', letterSpacing: '0.14em', textTransform: 'uppercase', color: accentColor, marginBottom: '14px', fontWeight: 500 } }, "Brzmi znajomo?"), /*#__PURE__*/React.createElement("h2", { style: { fontSize: 'clamp(30px,4vw,52px)', fontWeight: 600, lineHeight: 1.1, maxWidth: '600px', margin: '0 auto' } }, "Cia\u0142o zbiera koszt cyfrowego \u017Cycia")), /*#__PURE__*/React.createElement("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(195px, 1fr))', gap: '2px', background: 'var(--border)' } }, [{ n: '01', icon: 'bolt', title: 'Budzisz się\ni jesteś już zmęczony', body: 'Śpisz, odpoczywasz, bierzesz suplementy — a ciało nie wraca do pełnej mocy tak szybko, jak kiedyś.' }, { n: '02', icon: 'sun', title: 'Za mało\nprawdziwego światła', body: 'Rano telefon, potem laptop, wieczorem telewizor. Prawdziwego, naturalnego światła jest coraz mniej — i ciało to czuje.' }, { n: '03', icon: 'zap', title: 'Brakuje\ntej dawnej iskry', body: 'Nie chodzi tylko o zmęczenie. Ciało niby działa, ale nie ma w nim tego, co kiedyś. Głowa i ciało nie nadążają za tempem dnia.' }, { n: '04', icon: 'muscle', title: 'Szyja, plecy,\nstawy, nogi', body: 'Kark, barki, biodra, nogi po treningu — ciało codziennie zbiera koszt pracy, stresu i siedzenia przy biurku.' }, { n: '05', icon: 'layers', title: 'Kolejny gadżet\nzamiast systemu', body: 'Suplementy, masaże, różne akcesoria — każde osobno, bez rytmu. Ciało potrzebuje prostego, regularnego rytuału.' }].map(({ n, icon, title, body }) => /*#__PURE__*/React.createElement("div", { key: n, style: { background: 'var(--warm-white)', padding: 'clamp(28px,3vw,44px) clamp(20px,2.5vw,32px)' } }, /*#__PURE__*/React.createElement("div", { style: { marginBottom: '16px', opacity: 0.25 } }, /*#__PURE__*/React.createElement(Icon, { name: icon, size: 28, color: "var(--text)", strokeWidth: 1.2 })), /*#__PURE__*/React.createElement("div", { style: { fontFamily: 'Outfit', fontSize: '52px', fontWeight: 700, color: 'var(--border)', lineHeight: 1, marginBottom: '20px', userSelect: 'none' } }, n), /*#__PURE__*/React.createElement("h3", { style: { fontSize: '20px', fontWeight: 600, marginBottom: '12px', lineHeight: 1.2, whiteSpace: 'pre-line' } }, title), /*#__PURE__*/React.createElement("p", { style: { fontSize: '13px', lineHeight: 1.75, color: 'var(--muted)' } }, body))))); // ─── SolutionIntro ─────────────────────────────────────────────── const SolutionIntro = ({ accentColor }) => /*#__PURE__*/React.createElement("section", { style: { background: 'var(--dark)', color: '#fff', position: 'relative', overflow: 'hidden' } }, /*#__PURE__*/React.createElement("style", null, ` .solution-inner { display: flex; flex-direction: row; align-items: stretch; min-height: 600px; } .solution-text { flex: 1 1 55%; padding: clamp(72px,9vw,112px) clamp(32px,6vw,80px); display: flex; flex-direction: column; justify-content: center; position: relative; z-index: 1; } .solution-image { flex: 0 0 42%; position: relative; overflow: hidden; } .solution-image img { width: 100%; height: 100%; object-fit: cover; object-position: center center; display: block; } .solution-image::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to right, var(--dark) 0%, transparent 30%); } @media (max-width: 768px) { .solution-inner { flex-direction: column; min-height: auto; background-image: url(https://redboost.pl/wp-content/uploads/2026/06/redboost-zdjecie-3.png); background-size: cover; background-position: center center; position: relative; } .solution-inner::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0,0,0,0.88) 0%, rgba(0,0,0,0.75) 50%, rgba(0,0,0,0.88) 100%); z-index: 0; } .solution-text { position: relative; z-index: 1; text-align: center; padding: clamp(64px,9vw,96px) clamp(24px,6vw,48px); } .solution-image { display: none; } } `), /*#__PURE__*/React.createElement("div", { className: "solution-inner" }, /*#__PURE__*/React.createElement("div", { className: "solution-text" }, /*#__PURE__*/React.createElement("p", { style: { fontSize: '11px', letterSpacing: '0.14em', textTransform: 'uppercase', color: accentColor, marginBottom: '20px', fontWeight: 500 } }, "Rozwi\u0105zanie"), /*#__PURE__*/React.createElement("h2", { style: { fontSize: 'clamp(34px,4.5vw,60px)', fontWeight: 600, lineHeight: 1.08, marginBottom: '28px' } }, "RedBoost to \u015Bwiat\u0142o,", /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("em", { style: { fontStyle: 'italic', color: accentColor } }, "kt\xF3re pracuje z Twoim organizmem")), /*#__PURE__*/React.createElement("p", { style: { fontSize: 'clamp(15px,1.5vw,18px)', lineHeight: 1.7, color: '#fff', fontWeight: 300, marginBottom: '48px', maxWidth: '520px' } }, "Nie kolejny gad\u017Cet wellness. To domowe \u015Bwiat\u0142o, do kt\xF3rego chce si\u0119 wraca\u0107 \u2014 rano \u017Ceby da\u0107 cia\u0142u sygna\u0142 startu, wieczorem \u017Ceby si\u0119 wyciszy\u0107 i zregenerowa\u0107."), /*#__PURE__*/React.createElement("div", { style: { borderTop: '1px solid rgba(255,255,255,0.25)', paddingTop: '32px' } }, /*#__PURE__*/React.createElement("span", { style: { fontFamily: 'Outfit', fontSize: 'clamp(20px,2.5vw,28px)', fontStyle: 'italic', color: 'rgba(255,255,255,0.85)' } }, "Codzienny rytua\u0142, do kt\xF3rego chce si\u0119 wraca\u0107.")) ), /*#__PURE__*/React.createElement("div", { className: "solution-image" }, /*#__PURE__*/React.createElement("img", { src: "https://redboost.pl/wp-content/uploads/2026/06/redboost-zdjecie-3.png", alt: "Kobieta korzystaj\u0105ca z lampy RedBoost do terapii \u015Bwiat\u0142em czerwonym", loading: "lazy" }) ) ) ); // ─── HowItWorks ───────────────────────────────────────────────────────── const HowItWorks = ({ accentColor }) => /*#__PURE__*/React.createElement("section", { id: "how-it-works", style: { background: "var(--dark)", padding: "clamp(32px,4vw,56px) clamp(8px,2vw,24px)" } }, /*#__PURE__*/React.createElement("div", { style: { maxWidth: "1800px", margin: "0 auto" } }, /*#__PURE__*/React.createElement("div", { style: { textAlign: "center", marginBottom: "36px" } }, /*#__PURE__*/React.createElement("p", { style: { fontSize: "11px", letterSpacing: "0.14em", textTransform: "uppercase", color: accentColor, marginBottom: "14px", fontWeight: 500 } }, "Jak to działa"), /*#__PURE__*/React.createElement("h2", { style: { fontSize: "clamp(28px,4vw,48px)", fontWeight: 600, lineHeight: 1.1, color: "#fff" } }, "6 długości fal. Kompleksowe wsparcie całego organizmu.") ), /*#__PURE__*/React.createElement("img", { src: "https://redboost.pl/wp-content/uploads/2026/07/ChatGPT-Image-19-cze-2026-09_41_27-1.png", alt: "RedBoost 6 długości fal światła czerwonego i podczerwieni — schemat działania na organizm", loading: "lazy", style: { width: "100%", height: "auto", display: "block", borderRadius: "6px", boxShadow: "0 4px 40px rgba(200,41,30,0.2)" } }) ) ); // ─── BenefitsPillars ───────────────────────────────────────────── const BenefitsPillars = ({ accentColor }) => { const [active, setActive] = useState(0); const pillars = [{ icon: 'rotate', title: 'Regeneracja i komfort ciała', points: ['Szybciej wracasz do formy po treningu', 'Mięśnie i stawy mniej dają o sobie znać', 'Ciepło i rozluźnienie — szyja, plecy, barki', 'Mniej „zardzewiałe" ciało po całym dniu'] }, { icon: 'bolt', title: 'Energia i samopoczucie', points: ['Wstajesz lżej, przechodzisz przez dzień łatwiej', 'Nie ta nerwowa energia po kawie — naturalna', 'Mniej mgły, więcej skupienia', 'Szczególnie ważne jesienią i zimą, gdy słońca brak'] }, { icon: 'moon', title: 'Sen i wyciszenie', points: ['Wieczorny rytuał, który zwalnia oddech', 'Ciało odpuszcza napięcie, zanim pójdziesz spać', 'Głębszy, spokojniejszy sen', 'Rano wstajesz — i naprawdę czujesz, że odpoczęłeś'] }, { icon: 'sparkle', title: 'Skóra i wygląd', points: ['Skóra wygląda na bardziej wypoczętą i żywą', 'Wsparcie produkcji kolagenu od środka', 'Promienny koloryt — mniej jak po zimie i stresie', 'Krem działa na powierzchni. Światło głębiej.'] }]; const p = pillars[active]; return /*#__PURE__*/React.createElement("section", { style: { padding: 'clamp(64px,9vw,112px) clamp(24px,6vw,80px)', background: 'var(--dark)', color: '#fff' } }, /*#__PURE__*/React.createElement("div", { style: { maxWidth: '1140px', margin: '0 auto' } }, /*#__PURE__*/React.createElement("div", { style: { textAlign: 'center', marginBottom: '56px' } }, /*#__PURE__*/React.createElement("p", { style: { fontSize: '11px', letterSpacing: '0.14em', textTransform: 'uppercase', color: accentColor, marginBottom: '14px', fontWeight: 500 } }, "Efekty i korzy\u015Bci"), /*#__PURE__*/React.createElement("h2", { style: { fontSize: 'clamp(30px,4vw,52px)', fontWeight: 600, lineHeight: 1.1 } }, "Jedno urz\u0105dzenie. Cztery obszary wsparcia.")), /*#__PURE__*/React.createElement("div", { style: { display: 'flex', gap: '2px', marginBottom: '2px', flexWrap: 'wrap', background: 'rgba(255,255,255,0.06)' } }, pillars.map((pl, i) => /*#__PURE__*/React.createElement("button", { key: i, onClick: () => setActive(i), style: { flex: '1 1 180px', background: i === active ? accentColor : 'transparent', color: '#fff', border: 'none', padding: 'clamp(14px,1.5vw,18px) 20px', cursor: 'pointer', transition: 'background 0.22s', fontFamily: 'Outfit', fontSize: '14px', fontWeight: i === active ? 500 : 400, textAlign: 'left', display: 'flex', alignItems: 'center', gap: '10px' } }, /*#__PURE__*/React.createElement("span", { style: { opacity: i === active ? 1 : 0.4, flexShrink: 0, display: 'flex' } }, /*#__PURE__*/React.createElement(Icon, { name: pl.icon, size: 18, color: "#fff" })), /*#__PURE__*/React.createElement("span", null, pl.title)))), /*#__PURE__*/React.createElement("div", { style: { background: 'rgba(255,255,255,0.04)', padding: 'clamp(32px,4vw,52px)', display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: '12px' } }, p.points.map(pt => /*#__PURE__*/React.createElement("div", { key: pt, style: { display: 'flex', gap: '12px', alignItems: 'flex-start', padding: 'clamp(16px,2vw,24px)', background: 'rgba(255,255,255,0.04)', borderRadius: '4px' } }, /*#__PURE__*/React.createElement("span", { style: { color: accentColor, fontSize: '16px', flexShrink: 0, marginTop: '2px' } }, "\u2192"), /*#__PURE__*/React.createElement("span", { style: { fontSize: '15px', lineHeight: 1.55, color: 'rgba(255,255,255,0.85)' } }, pt)))))); }; // ─── ModelSection ──────────────────────────────────────────────── const ModelSection = ({ accentColor }) => { const [sel, setSel] = useState('full'); const models = { full: { name: 'RedBoost', tag: 'Bestseller', tagline: 'Pełnowymiarowy — całe ciało i miejscowo', price: '4 498 zł', monthly: '899,60 zł', specs: [['Wymiary', '64 × 30 × 6 cm'], ['Waga', '7 kg'], ['Moc', '900 W'], ['Diody LED', '180 × 5 W dual'], ['Długości fal', '6 (630–1270 nm)'], ['Żywotność', 'do 60 000 h']], includes: ['Lampa RedBoost', 'Stojak na kółkach', 'Pilot', 'Okulary ochronne', 'Kabel zasilający', 'Śruby montażowe'], for: 'Wybierz RedBoost, jeśli chcesz naświetlać duże obszary ciała i szukasz najmocniejszego wariantu do domowej pracy ze światłem.', img: 'https://redboost.pl/wp-content/uploads/2026/05/lampa-removebg-preview.png', link: 'https://eyeshield.com/sklep/zdrowe-oswietlenie/lampy-na-podczerwien/lampa-redboost/', cols: 18, rows: 10, w: 420, h: 185 }, mini: { name: 'RedBoost Mini', tag: 'Kompaktowy', tagline: 'Do precyzyjnych sesji miejscowych', price: '2 298 zł', monthly: '459,60 zł', specs: [['Wymiary', '26 × 21,5 × 6 cm'], ['Waga', '3 kg'], ['Moc', '300 W'], ['Diody LED', '60 × 5 W dual'], ['Długości fal', '6 (630–1270 nm)'], ['Żywotność', 'do 60 000 h']], includes: ['Lampa RedBoost Mini', 'Stojak', 'Pilot', 'Okulary ochronne', 'Kabel zasilający'], for: 'Wybierz Mini, jeśli zależy Ci na kompaktowym formacie do szybkich, miejscowych sesji — twarz, kark, brzuch, stawy lub konkretna partia ciała.', img: 'https://redboost.pl/wp-content/uploads/2026/05/lampa-na-podczerwien-redboost-mini-1-removebg-preview.png', link: 'https://eyeshield.com/sklep/zdrowe-oswietlenie/lampy-na-podczerwien/lampa-na-podczerwien-redboost-mini/', cols: 6, rows: 6, w: 240, h: 160 }, max: { name: 'RedBoost MAX', tag: 'Profesjonalny', tagline: 'Największa moc — całe ciało i gabinety', price: '6 298 zł', monthly: '1 259,60 zł', specs: [['Wymiary', '104 × 30 × 6 cm'], ['Waga', '12 kg'], ['Moc', '1500 W'], ['Diody LED', '300 × 5 W dual'], ['Długości fal', '6 (630–1270 nm)'], ['Żywotność', 'do 60 000 h']], includes: ['Lampa RedBoost MAX', 'Stojak na kółkach', 'Pilot', 'Okulary ochronne', 'Kabel zasilający', 'Śruby montażowe'], for: 'Wybierz MAX, jeśli szukasz najmocniejszego i największego modelu do intensywnej pracy z całym ciałem — idealny do gabinetów, siłowni i profesjonalnej regeneracji.', img: 'https://redboost.pl/wp-content/uploads/2026/08/redboost-maxx-strona-www-removebg-preview.png', link: 'https://eyeshield.com/sklep/zdrowe-oswietlenie/lampy-na-podczerwien/lampa-na-podczerwien-redboost-max/', cols: 30, rows: 10, w: 480, h: 200 } }; const m = models[sel]; return /*#__PURE__*/React.createElement("section", { id: "models", style: { padding: 'clamp(64px,9vw,112px) clamp(24px,6vw,80px)', background: '#fff' } }, /*#__PURE__*/React.createElement("div", { style: { maxWidth: '1140px', margin: '0 auto' } }, /*#__PURE__*/React.createElement("div", { style: { textAlign: 'center', marginBottom: '52px' } }, /*#__PURE__*/React.createElement("p", { style: { fontSize: '11px', letterSpacing: '0.14em', textTransform: 'uppercase', color: accentColor, marginBottom: '14px', fontWeight: 500 } }, "Wybierz model"), /*#__PURE__*/React.createElement("h2", { style: { fontSize: 'clamp(30px,4vw,52px)', fontWeight: 600, lineHeight: 1.1 } }, "Trzy modele. Pe\u0142ne spektrum 6 fal.")), /*#__PURE__*/React.createElement("div", { style: { display: 'flex', maxWidth: '380px', margin: '0 auto 48px', border: '1px solid var(--border)', borderRadius: '8px', overflow: 'hidden' } }, Object.entries(models).map(([k, mod]) => /*#__PURE__*/React.createElement("button", { key: k, onClick: () => setSel(k), style: { flex: 1, padding: '14px 0', border: 'none', cursor: 'pointer', background: sel === k ? 'var(--dark)' : '#fff', color: sel === k ? '#fff' : 'var(--text)', fontFamily: 'Outfit', fontSize: '14px', fontWeight: 500, transition: 'all 0.22s' } }, mod.name))), /*#__PURE__*/React.createElement("div", { style: { display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 'clamp(28px,4vw,56px)', alignItems: 'start' } }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", { style: { background: '#ffffff', borderRadius: '8px', padding: 'clamp(32px,4vw,52px)', display: 'flex', justifyContent: 'center', alignItems: 'center', minHeight: '280px', position: 'relative' } }, /*#__PURE__*/React.createElement("img", { src: m.img, alt: m.name, style: { maxWidth: '100%', maxHeight: '340px', objectFit: 'contain', filter: 'drop-shadow(0 8px 24px rgba(0,0,0,0.08))' } })), /*#__PURE__*/React.createElement("div", { style: { marginTop: '12px', padding: '20px 24px', background: 'var(--off-white)', borderRadius: '6px' } }, /*#__PURE__*/React.createElement("p", { style: { fontSize: '13px', lineHeight: 1.7, color: 'var(--muted)' } }, m.for))), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", { style: { display: 'flex', alignItems: 'baseline', gap: '12px', marginBottom: '4px', flexWrap: 'wrap' } }, /*#__PURE__*/React.createElement("h3", { style: { fontSize: 'clamp(28px,3vw,40px)', fontWeight: 600, lineHeight: 1 } }, m.name)), /*#__PURE__*/React.createElement("p", { style: { color: 'var(--muted)', fontSize: '14px', marginBottom: '24px' } }, m.tagline), /*#__PURE__*/React.createElement("div", { style: { marginBottom: '28px' } }, /*#__PURE__*/React.createElement("div", { style: { fontFamily: 'Outfit', fontSize: '44px', fontWeight: 600, lineHeight: 1 } }, m.price), /*#__PURE__*/React.createElement("div", { style: { fontSize: '13px', color: 'var(--muted)', marginTop: '5px' } }, "lub 5 rat 0% po ", m.monthly)), /*#__PURE__*/React.createElement("div", { style: { borderTop: '1px solid var(--border)', paddingTop: '24px', marginBottom: '24px' } }, m.specs.map(([k, v]) => /*#__PURE__*/React.createElement("div", { key: k, style: { display: 'flex', justifyContent: 'space-between', padding: '9px 0', borderBottom: '1px solid var(--border)', fontSize: '14px' } }, /*#__PURE__*/React.createElement("span", { style: { color: 'var(--muted)' } }, k), /*#__PURE__*/React.createElement("span", { style: { fontWeight: 500 } }, v)))), /*#__PURE__*/React.createElement("div", { style: { marginBottom: '32px' } }, /*#__PURE__*/React.createElement("div", { style: { fontSize: '11px', fontWeight: 600, textTransform: 'uppercase', letterSpacing: '0.1em', color: 'var(--muted)', marginBottom: '12px' } }, "W zestawie"), m.includes.map(inc => /*#__PURE__*/React.createElement("div", { key: inc, style: { display: 'flex', gap: '8px', alignItems: 'center', fontSize: '14px', marginBottom: '6px' } }, /*#__PURE__*/React.createElement("span", { style: { color: accentColor, fontWeight: 600, fontSize: '12px' } }, "\u2713"), " ", inc))), /*#__PURE__*/React.createElement("button", { onClick: () => window.open(m.link, '_blank'), style: { width: '100%', background: accentColor, color: '#fff', border: 'none', borderRadius: '8px', padding: '17px', fontSize: '15px', fontWeight: 500, cursor: 'pointer', letterSpacing: '0.02em' } }, "Zam\xF3w ", m.name))))); }; // ─── ComparisonTable ───────────────────────────────────────────── const ComparisonTable = ({ accentColor }) => { const waves = ['630 nm', '660 nm', '830 nm', '850 nm', '1064 nm', '1270 nm']; const rows = [{ label: 'Używaj do', full: 'Całego ciała i miejscowo', mini: 'Miejscowo, np. twarz, kark, stawy', max: 'Profesjonalnie, duże powierzchnie ciała', type: 'text' }, { label: 'Wymiary', full: '64 × 30 × 6 cm, 7 kg', mini: '26 × 21,5 × 6 cm, 3 kg', max: '104 × 30 × 6 cm, 12 kg', type: 'text' }, { label: 'Moc', full: '900 W', mini: '300 W', max: '1500 W', type: 'power' }, { label: 'Długości fal', full: waves, mini: waves, max: waves, type: 'waves' }, { label: 'Ilość diod LED', full: '180 × 5 W dual LED', mini: '60 × 5 W dual LED', max: '300 × 5 W dual LED', type: 'text' }, { label: 'Aktywuje 2 okna biologiczne', full: true, mini: true, max: true, type: 'check' }, { label: 'Bez efektu migotania', full: true, mini: true, max: true, type: 'check' }, { label: 'Bez PEM', full: true, mini: true, max: true, type: 'check' }, { label: 'Pilot i okulary ochronne', full: true, mini: true, max: true, type: 'check' }, { label: 'Gwarancja', full: '2 lata', mini: '2 lata', max: '2 lata', type: 'text' }, { label: 'Cena', full: '4 498 zł', mini: '2 298 zł', max: '6 298 zł', type: 'price' }, { label: 'Raty 0%', full: '5 × 899,60 zł / mc', mini: '5 × 459,60 zł / mc', max: '5 × 1 259,60 zł / mc', type: 'text' }]; const Cell = ({ val, type }) => { if (type === 'check') return /*#__PURE__*/React.createElement("div", { style: { display: 'flex', justifyContent: 'center' } }, /*#__PURE__*/React.createElement("span", { style: { color: '#22a06b', fontSize: '20px', fontWeight: 700, lineHeight: 1 } }, "\u2713")); if (type === 'waves') return /*#__PURE__*/React.createElement("div", { style: { display: 'flex', flexWrap: 'wrap', gap: '5px', justifyContent: 'center' } }, val.map(w => /*#__PURE__*/React.createElement("span", { key: w, style: { fontSize: '11px', border: '1px solid var(--border)', borderRadius: '20px', padding: '2px 9px', color: 'var(--muted)', whiteSpace: 'nowrap' } }, w))); if (type === 'power') return /*#__PURE__*/React.createElement("div", { style: { textAlign: 'center', fontFamily: 'Outfit', fontSize: '26px', fontWeight: 700, color: accentColor } }, val); if (type === 'price') return /*#__PURE__*/React.createElement("div", { style: { textAlign: 'center', fontFamily: 'Outfit', fontSize: '22px', fontWeight: 700 } }, val); return /*#__PURE__*/React.createElement("div", { style: { textAlign: 'center', fontSize: '13px', color: 'var(--text)', lineHeight: 1.5 } }, val); }; return /*#__PURE__*/React.createElement("section", { id: "comparison", style: { padding: '0 clamp(24px,6vw,80px) clamp(64px,9vw,112px)', background: '#fff' } }, /*#__PURE__*/React.createElement("div", { style: { maxWidth: '960px', margin: '0 auto' } }, /*#__PURE__*/React.createElement("div", { style: { textAlign: 'center', marginBottom: '40px' } }, /*#__PURE__*/React.createElement("p", { style: { fontSize: '11px', letterSpacing: '0.14em', textTransform: 'uppercase', color: accentColor, marginBottom: '12px', fontWeight: 500 } }, "Por\xF3wnanie modeli"), /*#__PURE__*/React.createElement("h2", { style: { fontFamily: 'Outfit', fontSize: 'clamp(28px,3.5vw,44px)', fontWeight: 600, lineHeight: 1.1 } }, "Kt\xF3ry model jest dla Ciebie?")), /*#__PURE__*/React.createElement("div", { style: { border: '1px solid var(--border)', borderRadius: '8px', overflow: 'hidden', overflowX: 'auto', WebkitOverflowScrolling: 'touch' } }, /*#__PURE__*/React.createElement("div", { style: { minWidth: '520px' } }, /*#__PURE__*/React.createElement("div", { style: { display: 'grid', gridTemplateColumns: '1.4fr 1fr 1fr 1fr', background: 'var(--warm-white)' } }, /*#__PURE__*/React.createElement("div", { style: { padding: '32px 24px', display: 'flex', flexDirection: 'column', justifyContent: 'flex-end', borderRight: '1px solid var(--border)' } }, /*#__PURE__*/React.createElement("div", { style: { fontSize: '11px', fontWeight: 600, letterSpacing: '0.1em', textTransform: 'uppercase', color: 'var(--muted)', marginBottom: '4px' } }, "Zam\xF3w w 5 ratach 0%"), /*#__PURE__*/React.createElement("div", { style: { fontSize: '12px', color: 'var(--muted)' } }, "przez Przelewy24 Raty")), /*#__PURE__*/React.createElement("div", { style: { padding: '28px 20px', textAlign: 'center', borderRight: '1px solid var(--border)', position: 'relative' } }, /*#__PURE__*/React.createElement("div", { style: { background: 'transparent', padding: '10px', marginBottom: '12px', display: 'flex', justifyContent: 'center', alignItems: 'flex-end', height: '180px' } }, /*#__PURE__*/React.createElement("img", { src: "https://redboost.pl/wp-content/uploads/2026/05/lampa-removebg-preview.png", alt: "RedBoost", style: { width: 'auto', height: '160px', objectFit: 'contain', display: 'block' } })), /*#__PURE__*/React.createElement("div", { style: { fontFamily: 'Outfit', fontSize: '20px', fontWeight: 700 } }, "RedBoost"), /*#__PURE__*/React.createElement("div", { style: { fontSize: '12px', color: 'var(--muted)', marginTop: '2px' } }, "Lampa pe\u0142nowymiarowa")), /*#__PURE__*/React.createElement("div", { style: { padding: '28px 20px', textAlign: 'center', borderRight: '1px solid var(--border)' } }, /*#__PURE__*/React.createElement("div", { style: { height: '22px', marginBottom: '12px' } }), /*#__PURE__*/React.createElement("img", { src: "https://redboost.pl/wp-content/uploads/2026/05/lampa-na-podczerwien-redboost-mini-1-removebg-preview.png", alt: "RedBoost Mini", style: { width: '100px', height: '150px', objectFit: 'contain', display: 'block', margin: '0 auto 12px', filter: 'drop-shadow(0 8px 24px rgba(200,40,20,0.2))' } }), /*#__PURE__*/React.createElement("div", { style: { fontFamily: 'Outfit', fontSize: '20px', fontWeight: 700 } }, "RedBoost Mini"), /*#__PURE__*/React.createElement("div", { style: { fontSize: '12px', color: 'var(--muted)', marginTop: '2px' } }, "Kompaktowa")), /*#__PURE__*/React.createElement("div", { style: { padding: '28px 20px', textAlign: 'center' } }, /*#__PURE__*/React.createElement("div", { style: { height: '22px', marginBottom: '12px' } }), /*#__PURE__*/React.createElement("img", { src: "https://redboost.pl/wp-content/uploads/2026/08/redboost-maxx-strona-www-removebg-preview.png", alt: "RedBoost MAX", style: { width: 'auto', height: '150px', objectFit: 'contain', display: 'block', margin: '0 auto 12px', filter: 'drop-shadow(0 8px 24px rgba(200,40,20,0.2))' } }), /*#__PURE__*/React.createElement("div", { style: { fontFamily: 'Outfit', fontSize: '20px', fontWeight: 700 } }, "RedBoost MAX"), /*#__PURE__*/React.createElement("div", { style: { fontSize: '12px', color: 'var(--muted)', marginTop: '2px' } }, "Profesjonalna"))), rows.map(({ label, full, mini, max, type }, i) => /*#__PURE__*/React.createElement("div", { key: label, style: { display: 'grid', gridTemplateColumns: '1.4fr 1fr 1fr 1fr', background: i % 2 === 0 ? '#fff' : 'oklch(98.5% 0.004 75)' } }, /*#__PURE__*/React.createElement("div", { style: { padding: '15px 20px', borderTop: '1px solid var(--border)', borderRight: '1px solid var(--border)', display: 'flex', alignItems: 'center', fontSize: '13px', fontWeight: 500 } }, label), /*#__PURE__*/React.createElement("div", { style: { padding: '15px 20px', borderTop: '1px solid var(--border)', borderRight: '1px solid var(--border)', display: 'flex', alignItems: 'center', justifyContent: 'center' } }, /*#__PURE__*/React.createElement(Cell, { val: full, type: type })), /*#__PURE__*/React.createElement("div", { style: { padding: '15px 20px', borderTop: '1px solid var(--border)', borderRight: '1px solid var(--border)', display: 'flex', alignItems: 'center', justifyContent: 'center' } }, /*#__PURE__*/React.createElement(Cell, { val: mini, type: type })), /*#__PURE__*/React.createElement("div", { style: { padding: '15px 20px', borderTop: '1px solid var(--border)', display: 'flex', alignItems: 'center', justifyContent: 'center' } }, /*#__PURE__*/React.createElement(Cell, { val: max, type: type })))), /*#__PURE__*/React.createElement("div", { style: { display: 'grid', gridTemplateColumns: '1.4fr 1fr 1fr 1fr', background: 'var(--dark)' } }, /*#__PURE__*/React.createElement("div", { style: { padding: '20px 24px', display: 'flex', alignItems: 'center', borderRight: '1px solid rgba(255,255,255,0.08)' } }, /*#__PURE__*/React.createElement("span", { style: { fontSize: '13px', color: '#ffffff', fontWeight: 500 } }, "Gotowy na codzienny rytua\u0142?")), /*#__PURE__*/React.createElement("div", { style: { padding: '16px 20px', display: 'flex', justifyContent: 'center', borderRight: '1px solid rgba(255,255,255,0.08)' } }, /*#__PURE__*/React.createElement("button", { onClick: () => window.open('https://eyeshield.com/sklep/zdrowe-oswietlenie/lampy-na-podczerwien/lampa-redboost/', '_blank'), style: { background: accentColor, color: '#fff', border: 'none', borderRadius: '6px', padding: '11px 20px', fontSize: '13px', fontWeight: 500, cursor: 'pointer', whiteSpace: 'nowrap' } }, "Zam\xF3w RedBoost")), /*#__PURE__*/React.createElement("div", { style: { padding: '16px 20px', display: 'flex', justifyContent: 'center', borderRight: '1px solid rgba(255,255,255,0.08)' } }, /*#__PURE__*/React.createElement("button", { onClick: () => window.open('https://eyeshield.com/sklep/zdrowe-oswietlenie/lampy-na-podczerwien/lampa-na-podczerwien-redboost-mini/', '_blank'), style: { background: accentColor, color: '#fff', border: 'none', borderRadius: '6px', padding: '11px 20px', fontSize: '13px', fontWeight: 500, cursor: 'pointer', whiteSpace: 'nowrap' } }, "Zam\xF3w Mini")), /*#__PURE__*/React.createElement("div", { style: { padding: '16px 20px', display: 'flex', justifyContent: 'center' } }, /*#__PURE__*/React.createElement("button", { onClick: () => window.open('https://eyeshield.com/sklep/zdrowe-oswietlenie/lampy-na-podczerwien/lampa-na-podczerwien-redboost-max/', '_blank'), style: { background: accentColor, color: '#fff', border: 'none', borderRadius: '6px', padding: '11px 20px', fontSize: '13px', fontWeight: 500, cursor: 'pointer', whiteSpace: 'nowrap' } }, "Zam\xF3w MAX"))))))); }; // ─── VideoSection ───────────────────────────────────────────────── const VideoSection = ({ accentColor }) => { const [playing, setPlaying] = useState(false); return /*#__PURE__*/React.createElement("section", { id: "video", style: { padding: 'clamp(64px,9vw,112px) clamp(24px,6vw,80px)', background: 'var(--dark)', color: '#fff' } }, /*#__PURE__*/React.createElement("div", { style: { maxWidth: '900px', margin: '0 auto' } }, /*#__PURE__*/React.createElement("div", { style: { textAlign: 'center', marginBottom: '44px' } }, /*#__PURE__*/React.createElement("p", { style: { fontSize: '11px', letterSpacing: '0.14em', textTransform: 'uppercase', color: accentColor, marginBottom: '14px', fontWeight: 500 } }, "Zobacz w akcji"), /*#__PURE__*/React.createElement("h2", { style: { fontSize: 'clamp(28px,4vw,48px)', fontWeight: 600, lineHeight: 1.1 } }, "Jak dzia\u0142a czerwone \u015Bwiat\u0142o?"), /*#__PURE__*/React.createElement("p", { style: { marginTop: '14px', fontSize: '15px', color: 'rgba(255,255,255,0.5)', maxWidth: '460px', margin: '14px auto 0', lineHeight: 1.6 } }, "Obejrzyj, jak lampa RedBoost pracuje i co dzieje si\u0119 w organizmie podczas sesji.")), /*#__PURE__*/React.createElement("div", { style: { position: 'relative', borderRadius: '10px', overflow: 'hidden', background: '#000', aspectRatio: '16/9', cursor: playing ? 'default' : 'pointer' }, onClick: () => { if (!playing) setPlaying(true); } }, !playing ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("img", { src: "https://img.youtube.com/vi/WVUc--pij-0/maxresdefault.jpg", alt: "Jak dzia\u0142a czerwone \u015Bwiat\u0142o RedBoost", style: { width: '100%', height: '100%', objectFit: 'cover', display: 'block' } }), /*#__PURE__*/React.createElement("div", { style: { position: 'absolute', inset: 0, background: 'rgba(0,0,0,0.28)' } }), /*#__PURE__*/React.createElement("div", { style: { position: 'absolute', top: '50%', left: '50%', transform: 'translate(-50%,-50%)', width: '72px', height: '72px', borderRadius: '50%', background: '#FF0000', display: 'flex', alignItems: 'center', justifyContent: 'center', boxShadow: '0 8px 32px rgba(0,0,0,0.5)', transition: 'transform 0.2s' } }, /*#__PURE__*/React.createElement("svg", { width: "26", height: "26", viewBox: "0 0 26 26" }, /*#__PURE__*/React.createElement("path", { d: "M9 6l14 7-14 7V6z", fill: "white" }))), /*#__PURE__*/React.createElement("div", { style: { position: 'absolute', bottom: 0, left: 0, right: 0, padding: '20px 28px', background: 'linear-gradient(transparent, rgba(0,0,0,0.8))' } }, /*#__PURE__*/React.createElement("div", { style: { fontSize: '15px', fontWeight: 600, color: '#fff' } }, "Lampa na podczerwie\u0144 RedBoost \u2014 na co pomaga?"), /*#__PURE__*/React.createElement("div", { style: { fontSize: '12px', color: 'rgba(255,255,255,0.55)', marginTop: '3px' } }, "EyeShield \xB7 YouTube"))) : /*#__PURE__*/React.createElement("iframe", { src: "https://www.youtube.com/embed/WVUc--pij-0?autoplay=1", title: "Jak dzia\u0142a czerwone \u015Bwiat\u0142o RedBoost", allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture", allowFullScreen: true, style: { position: 'absolute', inset: 0, width: '100%', height: '100%', border: 'none' } })))); }; // ─── ReviewsSection ────────────────────────────────────────────── const ReviewsSection = ({ accentColor }) => { const reviews = [{ name: 'Mikołaj', stars: 5, title: 'Szybsza regeneracja i lepszy sen', text: 'Stosuję lampę codziennie rano i wieczorem od ponad miesiąca. Zdecydowanie więcej energii w ciągu dnia, lepszy głęboki sen i szybsza regeneracja po treningach. Naświetlanie wyeliminowało ból i opuchliznę.' }, { name: 'Agnieszka Milc', stars: 5, title: 'Wartościowe urządzenie do fotobiomodulacji', text: 'Wartościowe urządzenie do domowej fotobiomodulacji. Da się zauważyć poprawę jakości snu, skrócenie czasu zasypiania, zmniejszenie uczucia przewlekłego zmęczenia i lepsze samopoczucie. Obserwuję redukcję napięcia mięśniowego.' }, { name: 'Caroline Martine', stars: 5, title: 'Realnie wspiera organizm', text: 'Korzystam z niej już ponad miesiąc i zdecydowanie widzę różnicę. Szybsza regeneracja po treningu, lepsza koncentracja i ogólnie lepsze samopoczucie na co dzień. To sprzęt, który realnie wspiera organizm i daje odczuwalne efekty.' }, { name: 'Magdalena', stars: 5, title: 'Lepszy sen, energia i stawy', text: 'Używam lampy 1,5 miesiąca i zauważyłam, że mam zdecydowanie lepszy sen, więcej energii oraz mniejsze bóle i mniejszą sztywność w stawach.' }, { name: 'Aga', stars: 5, title: 'Skóra promienna, bark bez bólu', text: 'Zauważyłam, że krostki szybciej znikają. Skóra jest bardziej promienna i więcej w niej życia. Lampa fajnie pomogła mi przy bólu barku i szyi.' }, { name: 'Monika', stars: 5, title: 'Wyraźna poprawa komfortu codzienności', text: 'Po kilku tygodniach regularnego korzystania widzimy wyraźną poprawę. Jesteśmy bardzo zadowoleni z produktu, który w realny sposób poprawił komfort naszej codzienności.' }]; const [start, setStart] = useState(0); const perPage = 3; const pages = reviews.length - perPage + 1; return /*#__PURE__*/React.createElement("section", { style: { padding: 'clamp(64px,9vw,112px) clamp(24px,6vw,80px)', background: 'var(--off-white)' } }, /*#__PURE__*/React.createElement("div", { style: { maxWidth: '1140px', margin: '0 auto' } }, /*#__PURE__*/React.createElement("div", { style: { textAlign: 'center', marginBottom: '56px' } }, /*#__PURE__*/React.createElement("div", { style: { fontFamily: 'Outfit', fontSize: '64px', fontWeight: 700, color: accentColor, lineHeight: 1 } }, "4.9"), /*#__PURE__*/React.createElement("div", { style: { fontSize: '18px', color: accentColor, marginTop: '4px', letterSpacing: '0.1em' } }, "\u2605\u2605\u2605\u2605\u2605"), /*#__PURE__*/React.createElement("div", { style: { fontSize: '13px', color: 'var(--muted)', marginTop: '6px', marginBottom: '32px' } }, "na podstawie 1096 opinii klient\xF3w EyeShield"), /*#__PURE__*/React.createElement("h2", { style: { fontSize: 'clamp(28px,3.5vw,44px)', fontWeight: 600, lineHeight: 1.1 } }, "Co m\xF3wi\u0105 nasi klienci")), /*#__PURE__*/React.createElement("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(260px, 1fr))', gap: '16px' } }, reviews.slice(start, start + perPage).map(({ name, stars, title, text }) => /*#__PURE__*/React.createElement("div", { key: name, style: { background: '#fff', padding: 'clamp(24px,2.5vw,32px)', borderRadius: '6px', border: '1px solid var(--border)' } }, /*#__PURE__*/React.createElement("div", { style: { color: accentColor, fontSize: '13px', marginBottom: '14px', letterSpacing: '0.1em' } }, '★'.repeat(stars)), /*#__PURE__*/React.createElement("h4", { style: { fontFamily: 'Outfit', fontSize: '18px', fontWeight: 600, marginBottom: '12px', lineHeight: 1.25 } }, title), /*#__PURE__*/React.createElement("p", { style: { fontSize: '13px', lineHeight: 1.75, color: 'var(--muted)' } }, text), /*#__PURE__*/React.createElement("div", { style: { marginTop: '20px', display: 'flex', alignItems: 'center', gap: '10px' } }, /*#__PURE__*/React.createElement("div", { style: { width: '32px', height: '32px', borderRadius: '50%', background: `${accentColor}20`, display: 'flex', alignItems: 'center', justifyContent: 'center', fontFamily: 'Outfit', fontSize: '14px', fontWeight: 600, color: accentColor } }, name[0]), /*#__PURE__*/React.createElement("span", { style: { fontWeight: 500, fontSize: '13px' } }, name))))), /*#__PURE__*/React.createElement("div", { style: { display: 'flex', justifyContent: 'center', gap: '8px', marginTop: '32px' } }, Array.from({ length: pages }, (_, i) => /*#__PURE__*/React.createElement("button", { key: i, onClick: () => setStart(i), style: { width: start === i ? '24px' : '8px', height: '8px', borderRadius: '4px', border: 'none', cursor: 'pointer', background: start === i ? accentColor : 'var(--border)', padding: 0, transition: 'all 0.22s' } }))))); }; // ─── FounderSection ────────────────────────────────────────────── const FounderSection = ({ accentColor }) => /*#__PURE__*/React.createElement("section", { style: { padding: 'clamp(72px,9vw,112px) clamp(24px,6vw,80px)', background: 'var(--dark)', color: '#fff', position: 'relative', overflow: 'hidden' } }, /*#__PURE__*/React.createElement("div", { style: { position: 'absolute', bottom: 0, left: '50%', transform: 'translateX(-50%)', width: '80%', height: '40%', background: `radial-gradient(ellipse, ${accentColor}18 0%, transparent 65%)`, pointerEvents: 'none' } }), /*#__PURE__*/React.createElement("div", { style: { maxWidth: '760px', margin: '0 auto', textAlign: 'center', position: 'relative', zIndex: 1 } }, /*#__PURE__*/React.createElement("p", { style: { fontSize: '11px', letterSpacing: '0.14em', textTransform: 'uppercase', color: accentColor, marginBottom: '32px', fontWeight: 500 } }, "Dlaczego stworzyli\u015Bmy RedBoost?"), /*#__PURE__*/React.createElement("img", { src: "https://redboost.pl/wp-content/uploads/2026/05/Zrzut-ekranu-2026-05-27-o-13.36.47.png", loading: "lazy", alt: "Sebastian Kilichowski", style: { width: '88px', height: '88px', borderRadius: '50%', objectFit: 'cover', display: 'block', margin: '0 auto 32px' } }), /*#__PURE__*/React.createElement("blockquote", { style: { fontFamily: 'Outfit', fontSize: 'clamp(20px,2.8vw,30px)', fontStyle: 'italic', fontWeight: 400, lineHeight: 1.45, color: 'rgba(255,255,255,0.88)', marginBottom: '28px' } }, "\u201ENie chcieli\u015Bmy zrobi\u0107 kolejnej czerwonej lampki. Chcieli\u015Bmy stworzy\u0107 domowe narz\u0119dzie \u015Bwiat\u0142a, kt\xF3re dzia\u0142a szerzej, g\u0142\u0119biej i pro\u015Bciej ni\u017C wi\u0119kszo\u015B\u0107 rozwi\u0105za\u0144 dost\u0119pnych na rynku.\""), /*#__PURE__*/React.createElement("div", { style: { fontWeight: 500, fontSize: '14px', marginBottom: '4px' } }, "Sebastian Kilichowski"), /*#__PURE__*/React.createElement("div", { style: { fontSize: '12px', color: 'rgba(255,255,255,0.4)', marginBottom: '36px' } }, "Za\u0142o\u017Cyciel EyeShield \xB7 Ekspert od higieny \u015Bwiat\u0142a"), /*#__PURE__*/React.createElement("p", { style: { fontSize: '15px', color: '#ffffff', lineHeight: 1.7, maxWidth: '560px', margin: '0 auto' } }, "EyeShield od lat pomaga ludziom \u015Bwiadomie zarz\u0105dza\u0107 \u015Bwiat\u0142em \u2014 od ochrony przed sztucznym o\u015Bwietleniem po dostarczanie organizmowi \u015Bwiat\u0142a, kt\xF3rego cz\u0119sto brakuje w cyfrowym \u015Bwiecie. RedBoost to naturalne rozszerzenie tej misji."))); // ─── WiedzaSection ─────────────────────────────────────────────── const YT_PLAYLIST_ID = 'PLBHq6Zx42HII'; const WiedzaSection = ({ accentColor }) => { const [items, setItems] = useState([]); const [selected, setSelected] = useState(null); const [status, setStatus] = useState('loading'); useEffect(() => { fetch('/wp-json/redboost/v1/wiedza-playlist') .then(r => r.json()) .then(data => { const list = (Array.isArray(data) ? data : []) .filter(it => it && it.id && it.title) .map(it => ({ id: it.id, title: it.title, thumb: it.thumb || '' })); if (list.length) { setItems(list); setSelected(list[0].id); setStatus('ready'); } else { setStatus('error'); } }) .catch(() => setStatus('error')); }, []); const current = items.find(it => it.id === selected); return /*#__PURE__*/React.createElement("section", { id: "wiedza", style: { padding: 'clamp(64px,9vw,112px) clamp(24px,6vw,80px)', background: 'var(--dark)', color: '#fff', textAlign: 'center' } }, /*#__PURE__*/React.createElement("div", { style: { maxWidth: '1200px', margin: '0 auto' } }, /*#__PURE__*/React.createElement("h2", { style: { fontSize: 'clamp(28px,4.5vw,42px)', fontWeight: 700, lineHeight: 1.15, marginBottom: '24px' } }, "Wszystko, co warto wiedzieć", /*#__PURE__*/React.createElement("br", null), "o lampach RedBoost"), /*#__PURE__*/React.createElement("div", { style: { height: '1px', background: 'rgba(255,255,255,0.15)', margin: '0 0 40px' } }), status === 'error' ? /*#__PURE__*/React.createElement("div", { style: { padding: '48px 24px', textAlign: 'center' } }, /*#__PURE__*/React.createElement("p", { style: { color: 'rgba(255,255,255,0.6)', fontSize: '15px', marginBottom: '18px' } }, "Nie udało się załadować playlisty."), /*#__PURE__*/React.createElement("a", { href: "https://www.youtube.com/playlist?list=" + YT_PLAYLIST_ID, target: "_blank", rel: "noopener noreferrer", style: { color: accentColor, fontWeight: 600, textDecoration: 'underline' } }, "Zobacz playlistę na YouTube →")) : /*#__PURE__*/React.createElement("div", { style: { display: 'flex', flexWrap: 'wrap', gap: '24px', textAlign: 'left' } }, /*#__PURE__*/React.createElement("div", { style: { flex: '1 1 620px', minWidth: 0 } }, /*#__PURE__*/React.createElement("div", { style: { position: 'relative', width: '100%', paddingTop: '56.25%', borderRadius: '12px', overflow: 'hidden', background: '#000', boxShadow: '0 20px 60px rgba(0,0,0,0.5)' } }, selected ? /*#__PURE__*/React.createElement("iframe", { key: selected, src: "https://www.youtube.com/embed/" + selected + "?rel=0", title: current ? current.title : "RedBoost", style: { position: 'absolute', top: 0, left: 0, width: '100%', height: '100%', border: 0 }, frameBorder: "0", allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share", referrerPolicy: "strict-origin-when-cross-origin", allowFullScreen: true }) : /*#__PURE__*/React.createElement("div", { style: { position: 'absolute', inset: 0, display: 'flex', alignItems: 'center', justifyContent: 'center', color: 'rgba(255,255,255,0.4)', fontSize: '14px' } }, "Ładowanie playlisty…")), current && /*#__PURE__*/React.createElement("h3", { style: { fontSize: '17px', fontWeight: 600, margin: '16px 0 0', color: '#fff' } }, current.title)), /*#__PURE__*/React.createElement("div", { style: { flex: '1 1 280px', maxWidth: '360px', maxHeight: '520px', overflowY: 'auto', display: 'flex', flexDirection: 'column', gap: '10px', paddingRight: '4px' } }, items.map(it => { const active = it.id === selected; return /*#__PURE__*/React.createElement("div", { key: it.id, onClick: () => setSelected(it.id), style: { display: 'flex', gap: '10px', cursor: 'pointer', padding: '8px', borderRadius: '8px', background: active ? accentColor + '22' : 'transparent', borderLeft: active ? '3px solid ' + accentColor : '3px solid transparent' } }, /*#__PURE__*/React.createElement("img", { src: it.thumb, alt: it.title, style: { width: '120px', height: '68px', objectFit: 'cover', borderRadius: '6px', flexShrink: 0 } }), /*#__PURE__*/React.createElement("div", { style: { fontSize: '13px', lineHeight: 1.35, color: active ? '#fff' : 'rgba(255,255,255,0.75)', fontWeight: active ? 600 : 400 } }, it.title)); }))), /*#__PURE__*/React.createElement("p", { style: { color: 'rgba(255,255,255,0.8)', fontSize: 'clamp(16px,2vw,19px)', margin: '40px 0 28px' } }, "Już wiesz jak to działa, zatem…"), /*#__PURE__*/React.createElement("button", { onClick: () => scrollToSection('buy-box'), style: { display: 'inline-block', background: accentColor, color: '#fff', border: 'none', textDecoration: 'none', fontWeight: 600, fontSize: 'clamp(15px,1.6vw,17px)', padding: '16px 32px', borderRadius: '8px', cursor: 'pointer' } }, "Wybierz swój model RedBoosta →"))); }; // ─── BuyBox ────────────────────────────────────────────────────── const BuyBox = ({ accentColor, showBundle }) => { const [sel, setSel] = useState('full'); const models = [{ key: 'mini', name: 'RedBoost Mini', price: '2 298 zł', monthly: '459,60 zł', desc: 'Kompaktowy · Do miejscowego stosowania', badge: null, link: 'https://eyeshield.com/sklep/zdrowe-oswietlenie/lampy-na-podczerwien/lampa-na-podczerwien-redboost-mini/' }, { key: 'full', name: 'RedBoost', price: '4 498 zł', monthly: '899,60 zł', desc: 'Pełnowymiarowy · Całe ciało', badge: null, link: 'https://eyeshield.com/sklep/zdrowe-oswietlenie/lampy-na-podczerwien/lampa-redboost/' }, { key: 'max', name: 'RedBoost MAX', price: '6 298 zł', monthly: '1 259,60 zł', desc: 'Profesjonalny · Duże powierzchnie', badge: null, link: 'https://eyeshield.com/sklep/zdrowe-oswietlenie/lampy-na-podczerwien/lampa-na-podczerwien-redboost-max/' }, ...(showBundle ? [{ key: 'bundle', name: 'Zestaw RedBoost + Mini', price: '5 436,60 zł', monthly: '1 087,32 zł', desc: 'Kompletne rozwiązanie · Rabat 15%', badge: 'Oszczędzasz 959 zł', link: 'https://eyeshield.com/sklep/zdrowe-oswietlenie/lampy-na-podczerwien/lampa-redboost/' }] : [])]; const current = models.find(m => m.key === sel) || models[0]; return /*#__PURE__*/React.createElement("section", { id: "buy-box", style: { padding: 'clamp(64px,9vw,112px) clamp(24px,6vw,80px)', background: '#fff' } }, /*#__PURE__*/React.createElement("div", { style: { maxWidth: '900px', margin: '0 auto' } }, /*#__PURE__*/React.createElement("div", { style: { textAlign: 'center', marginBottom: '48px' } }, /*#__PURE__*/React.createElement("p", { style: { fontSize: '11px', letterSpacing: '0.14em', textTransform: 'uppercase', color: accentColor, marginBottom: '14px', fontWeight: 500 } }, "Zam\xF3w teraz"), /*#__PURE__*/React.createElement("h2", { style: { fontSize: 'clamp(30px,4vw,52px)', fontWeight: 600, lineHeight: 1.1 } }, "Wybierz sw\xF3j model"), /*#__PURE__*/React.createElement("p", { style: { marginTop: '14px', fontSize: '15px', color: 'var(--muted)' } }, "Trzy modele. Pe\u0142ne spektrum 6 d\u0142ugo\u015Bci fal. Bez UV, bez migotania.")), /*#__PURE__*/React.createElement("div", { style: { display: 'grid', gridTemplateColumns: `repeat(${models.length}, 1fr)`, gap: '2px', marginBottom: '32px', background: 'var(--border)' } }, models.map(({ key, name, price, monthly, desc, badge }) => /*#__PURE__*/React.createElement("button", { key: key, onClick: () => setSel(key), style: { background: sel === key ? 'var(--off-white)' : '#fff', border: 'none', cursor: 'pointer', padding: 'clamp(20px,2.5vw,28px) clamp(16px,2vw,22px)', textAlign: 'left', position: 'relative', outline: sel === key ? `2px solid ${accentColor}` : '2px solid transparent', outlineOffset: '-2px', transition: 'all 0.2s' } }, badge && /*#__PURE__*/React.createElement("div", { style: { position: 'absolute', top: '10px', right: '10px', fontFamily: 'Outfit', fontSize: '10px', background: key === 'bundle' ? 'oklch(60% 0.18 75)' : accentColor, color: '#fff', borderRadius: '10px', padding: '2px 8px', fontWeight: 600, lineHeight: 1.4 } }, badge), /*#__PURE__*/React.createElement("div", { style: { fontFamily: 'Outfit', fontSize: '18px', fontWeight: 600, marginBottom: '5px', lineHeight: 1.2, paddingRight: badge ? '80px' : '0', color: 'var(--text)' } }, name), /*#__PURE__*/React.createElement("div", { style: { fontSize: '11px', color: 'var(--muted)', marginBottom: '16px', lineHeight: 1.4 } }, desc), /*#__PURE__*/React.createElement("div", { style: { fontFamily: 'Outfit', fontSize: '26px', fontWeight: 700, marginBottom: '2px', color: sel === key ? accentColor : 'var(--text)' } }, price), /*#__PURE__*/React.createElement("div", { style: { fontSize: '11px', color: 'var(--muted)' } }, "5 rat 0% po ", monthly)))), /*#__PURE__*/React.createElement("div", { style: { textAlign: 'center' } }, /*#__PURE__*/React.createElement("button", { onClick: () => window.open(current.link, '_blank'), style: { background: accentColor, color: '#fff', border: 'none', borderRadius: '8px', padding: '18px 64px', fontSize: '16px', fontWeight: 500, cursor: 'pointer', letterSpacing: '0.02em', marginBottom: '20px', display: 'inline-block' } }, "Kup w ratach 0% \u2014 ", current.price), /*#__PURE__*/React.createElement("div", { style: { display: 'flex', justifyContent: 'center', gap: 'clamp(12px,2vw,24px)', flexWrap: 'wrap' } }, ['30 dni na zwrot', '2 lata gwarancji', 'Bezpieczna płatność', sel === 'mini' ? 'Kurier DPD · DPD Pickup · Kurier InPost · Paczkomaty InPost' : 'Kurier InPost · DPD'].map(t => /*#__PURE__*/React.createElement("span", { key: t, style: { fontSize: '12px', color: 'var(--muted)', display: 'flex', alignItems: 'center', gap: '5px' } }, /*#__PURE__*/React.createElement(Icon, { name: "check", size: 13, color: accentColor }), " ", t)))))); }; // ─── RiskSection ───────────────────────────────────────────────── const RiskSection = ({ accentColor }) => /*#__PURE__*/React.createElement("section", { style: { padding: 'clamp(48px,7vw,80px) clamp(24px,6vw,80px)', background: 'var(--off-white)', borderTop: '1px solid var(--border)' } }, /*#__PURE__*/React.createElement("div", { style: { maxWidth: '1000px', margin: '0 auto', display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(240px, 1fr))', gap: '32px' } }, [{ icon: 'rotate', title: '30 dni na zwrot', body: 'Masz miesiąc na spokojne przetestowanie. RedBoost Mini zwracasz przez Szybkie Zwroty InPost — generujesz kod w aplikacji i nadajesz w Paczkomacie. RedBoost i RedBoost MAX zwracasz przez DPD (wyłącznie kurierem) — Obsługa Klienta przesyła etykietę, paczkę nadajesz w dowolnym punkcie DPD Point. Zwrot środków w 7 dni roboczych.' }, { icon: 'shield', title: '2 lata gwarancji', body: 'Każda lampa objęta jest 2-letnią gwarancją. Żywotność diod do 60 000 godzin. Urządzenie klasy premium do wieloletniej pracy z regeneracją.' }, { icon: 'percent', title: 'Raty 0% przez Przelewy24', body: '5 wygodnych rat bez odsetek i ukrytych kosztów. RedBoost Mini od 459,60 zł miesięcznie. RedBoost od 899,60 zł miesięcznie. RedBoost MAX od 1 259,60 zł miesięcznie.' }].map(({ icon, title, body }) => /*#__PURE__*/React.createElement("div", { key: title, style: { textAlign: 'center', padding: '20px' } }, /*#__PURE__*/React.createElement("div", { style: { color: accentColor, marginBottom: '16px', display: 'flex', justifyContent: 'center' } }, /*#__PURE__*/React.createElement(Icon, { name: icon, size: 32, color: accentColor, strokeWidth: 1.2 })), /*#__PURE__*/React.createElement("h3", { style: { fontFamily: 'Outfit', fontSize: '22px', fontWeight: 600, marginBottom: '12px' } }, title), /*#__PURE__*/React.createElement("p", { style: { fontSize: '13px', lineHeight: 1.75, color: 'var(--muted)' } }, body))))); // ─── FAQSection ────────────────────────────────────────────────── const FAQSection = ({ accentColor }) => { const [open, setOpen] = useState(null); const items = [{ q: 'Czym właściwie jest RedBoost?', a: 'RedBoost to domowa lampa do światła czerwonego i podczerwieni. Dostarcza biologicznie aktywne światło w 6 długościach fal (630, 660, 830, 850, 1064 i 1270 nm), które może wspierać regenerację, energię, sen i kondycję skóry.' }, { q: 'Czym RedBoost różni się od RedBoost Mini?', a: 'RedBoost (64×30 cm, 900 W, 180 diod) to model pełnowymiarowy do większych obszarów ciała. RedBoost Mini (26×21,5 cm, 300 W, 60 diod) to kompaktowy format do precyzyjnych sesji miejscowych — twarz, kark, stawy.' }, { q: 'Który model wybrać?', a: 'RedBoost wybierz, jeśli chcesz naświetlać duże obszary ciała lub szukasz najmocniejszego wariantu. Mini wybierz, jeśli wolisz zacząć od mniejszego formatu lub zależy Ci na precyzyjnych sesjach.' }, { q: 'Czym RedBoost MAX różni się od zwykłego RedBoost?', a: 'RedBoost MAX (104×30 cm, 12 kg, 300 diod, 1500 W łącznej mocy LED) to najmocniejszy i największy model w ofercie — do intensywnej pracy z całym ciałem, gabinetów i siłowni. RedBoost (64×30 cm, 900 W, 180 diod) to pełnowymiarowy model do domowego użytku. Oba mają to samo spektrum 6 długości fal i pracują w 2 oknach biologicznych.' }, { q: 'Dla kogo jest RedBoost MAX?', a: 'MAX polecamy osobom, które potrzebują naświetlać duże powierzchnie ciała jednocześnie, korzystają z lampy bardzo intensywnie lub prowadzą gabinet, siłownię czy praktykę fizjoterapeutyczną. To profesjonalne narzędzie do najbardziej wymagających zastosowań.' }, { q: 'Jaki pobór energii ma RedBoost MAX?', a: 'Realny pobór energii lampy RedBoost MAX wynosi 230 W — to zużycie podczas pracy, nie sumaryczna moc diod LED (1500 W to łączna moc samych diod).' }, { q: 'Czy RedBoost MAX pracuje w obu oknach biologicznych?', a: 'Tak. Dzięki falom 1064 i 1270 nm RedBoost MAX — podobnie jak pozostałe modele RedBoost — działa zarówno w pierwszym (NIR-I), jak i drugim (NIR-II) oknie biologicznym, docierając głębiej niż lampy ograniczone do zakresu 630–850 nm.' }, { q: 'Czym RedBoost różni się od tańszych lamp z marketplace?', a: 'Tańsze lampy często oferują tylko 2–4 długości fal. RedBoost pokrywa 6 zakresów — w tym rzadkie 1064 i 1270 nm, działające w drugim oknie biologicznym. To szersze działanie na różnych głębokościach tkanek.' }, { q: 'Jak korzystać z lampy? Jak długo trwa sesja?', a: 'Włączasz lampę, siadasz 15–20 cm od powierzchni i wykonujesz sesję 10–20 minut. Bez aplikacji, bez skomplikowanych trybów. Skóra powinna być czysta, bez kremów i kosmetyków.' }, { q: 'Po jakim czasie można zauważyć efekty?', a: 'Pierwsze odczucia wiele osób zauważa szybko, jednak RedBoost najlepiej traktować jako regularny rytuał. Pełniejsze efekty wymagają systematyczności przez kilka tygodni.' }, { q: 'Czy RedBoost emituje UV?', a: 'Nie. RedBoost emituje wyłącznie światło czerwone i bliską podczerwień — bez UV, bez szkodliwego migotania, bez PEM.' }, { q: 'Czy korzystanie jest bezpieczne dla oczu?', a: 'Przy naświetlaniu twarzy i okolic oczu zalecamy dołączone okulary ochronne lub zamknięte powieki. W zestawie zawsze znajdują się okulary ochronne.' }, { q: 'Czy RedBoost zastępuje lekarza lub leczenie?', a: 'Nie. RedBoost nie jest urządzeniem medycznym i nie zastępuje diagnostyki ani leczenia. Przy chorobach przewlekłych, ciąży, lekach światłouczulających lub leczeniu onkologicznym skonsultuj się z lekarzem przed użyciem.' }, { q: 'Jak działa 30 dni na zwrot?', a: 'Od dnia odebrania zamówienia masz 30 dni na zwrot. Zwrot środków następuje po weryfikacji w 7 dni roboczych, wyjątkowo do 14.\n\nRedBoost Mini — zwrot przez Szybkie Zwroty InPost. Przez aplikację InPost generujesz kod zwrotu i nadajesz paczkę w dowolnym Paczkomacie InPost.\n\nRedBoost i RedBoost MAX — zwrot wyłącznie przez DPD (kurierem, bez Paczkomatów). Skontaktuj się z Obsługą Klienta, która wygeneruje etykietę DPD i prześle ją mailowo. Paczkę nadajesz w dowolnym punkcie DPD Point.' }]; return /*#__PURE__*/React.createElement("section", { style: { padding: 'clamp(64px,9vw,112px) clamp(24px,6vw,80px)', background: '#fff' } }, /*#__PURE__*/React.createElement("div", { style: { maxWidth: '780px', margin: '0 auto' } }, /*#__PURE__*/React.createElement("div", { style: { textAlign: 'center', marginBottom: '56px' } }, /*#__PURE__*/React.createElement("p", { style: { fontSize: '11px', letterSpacing: '0.14em', textTransform: 'uppercase', color: accentColor, marginBottom: '14px', fontWeight: 500 } }, "FAQ"), /*#__PURE__*/React.createElement("h2", { style: { fontSize: 'clamp(28px,4vw,48px)', fontWeight: 600, lineHeight: 1.1 } }, "Pytania i odpowiedzi")), items.map(({ q, a }, i) => /*#__PURE__*/React.createElement("div", { key: i, style: { borderBottom: '1px solid var(--border)' } }, /*#__PURE__*/React.createElement("button", { onClick: () => setOpen(open === i ? null : i), style: { width: '100%', background: 'none', border: 'none', cursor: 'pointer', padding: '20px 0', display: 'flex', justifyContent: 'space-between', alignItems: 'center', gap: '16px', textAlign: 'left', fontFamily: 'Outfit' } }, /*#__PURE__*/React.createElement("span", { style: { fontSize: 'clamp(14px,1.5vw,16px)', fontWeight: 500, lineHeight: 1.4, color: 'var(--text)' } }, q), /*#__PURE__*/React.createElement("span", { style: { fontSize: '22px', color: accentColor, flexShrink: 0, transition: 'transform 0.25s', transform: open === i ? 'rotate(45deg)' : 'none', lineHeight: 1 } }, "+")), /*#__PURE__*/React.createElement("div", { style: { maxHeight: open === i ? '400px' : '0', overflow: 'hidden', transition: 'max-height 0.38s cubic-bezier(0.4,0,0.2,1)' } }, /*#__PURE__*/React.createElement("p", { style: { fontSize: '14px', lineHeight: 1.75, color: 'var(--muted)', paddingBottom: '20px', whiteSpace: 'pre-line' } }, a)))))); }; // ─── FinalCTA ──────────────────────────────────────────────────── const FinalCTA = ({ accentColor }) => /*#__PURE__*/React.createElement("section", { style: { padding: 'clamp(80px,10vw,120px) clamp(24px,6vw,80px)', background: 'var(--dark)', color: '#fff', textAlign: 'center', position: 'relative', overflow: 'hidden' } }, /*#__PURE__*/React.createElement("div", { style: { position: 'absolute', bottom: 0, left: '50%', transform: 'translateX(-50%)', width: '90%', height: '60%', background: `radial-gradient(ellipse, ${accentColor}22 0%, transparent 60%)`, pointerEvents: 'none' } }), /*#__PURE__*/React.createElement("div", { style: { maxWidth: '700px', margin: '0 auto', position: 'relative', zIndex: 1 } }, /*#__PURE__*/React.createElement("h2", { style: { fontSize: 'clamp(32px,4.5vw,58px)', fontWeight: 600, lineHeight: 1.1, marginBottom: '24px' } }, "Wybierz \u015Bwiat\u0142o, kt\xF3re b\u0119dzie pracowa\u0107 z Twoim organizmem ka\u017Cdego dnia."), /*#__PURE__*/React.createElement("p", { style: { fontSize: 'clamp(15px,1.5vw,17px)', color: '#ffffff', lineHeight: 1.7, marginBottom: '44px', fontWeight: 300 } }, "Prosty, domowy rytua\u0142 wspieraj\u0105cy regeneracj\u0119, energi\u0119, sen i kondycj\u0119 sk\xF3ry. Wybierz model, kt\xF3ry najlepiej pasuje do Twojego stylu \u017Cycia."), /*#__PURE__*/React.createElement("div", { style: { display: 'flex', gap: '12px', justifyContent: 'center', flexWrap: 'wrap' } }, /*#__PURE__*/React.createElement("button", { onClick: () => scrollToSection('comparison'), style: { background: accentColor, color: '#fff', border: 'none', borderRadius: '8px', padding: '17px 44px', fontSize: '15px', fontWeight: 500, cursor: 'pointer', letterSpacing: '0.02em' } }, "Por\xF3wnaj modele"), /*#__PURE__*/React.createElement("button", { onClick: () => scrollToSection('buy-box'), style: { background: accentColor, color: '#fff', border: 'none', borderRadius: '8px', padding: '17px 44px', fontSize: '15px', fontWeight: 500, cursor: 'pointer', letterSpacing: '0.02em' } }, "Kup w ratach 0%")))); // ─── Footer ────────────────────────────────────────────────────── const Footer = ({ accentColor }) => /*#__PURE__*/React.createElement("div", { style: { background: 'var(--dark)', borderTop: `2px solid ${accentColor}`, padding: '20px clamp(24px,5vw,80px)' } }, /*#__PURE__*/React.createElement("div", { style: { maxWidth: '1140px', margin: '0 auto', display: 'flex', flexDirection: 'column', alignItems: 'center', gap: '10px', textAlign: 'center' } }, /*#__PURE__*/React.createElement("div", { style: { display: 'flex', gap: '28px' } }, /*#__PURE__*/React.createElement("a", { href: "https://redboost.pl/polityka-prywatnosci-3/", style: { fontFamily: 'Outfit, sans-serif', fontSize: '13px', color: '#ffffff', textDecoration: 'none', fontWeight: 400 } }, "Polityka prywatno\u015Bci"), /*#__PURE__*/React.createElement("a", { href: "https://redboost.pl/regulamin/", style: { fontFamily: 'Outfit, sans-serif', fontSize: '13px', color: '#ffffff', textDecoration: 'none', fontWeight: 400 } }, "Regulamin")), /*#__PURE__*/React.createElement("span", { style: { fontFamily: 'Outfit, sans-serif', fontSize: '12px', color: 'rgba(255,255,255,0.5)', fontWeight: 400 } }, "\xA9 2026 EyeShield \xB7 Wszelkie prawa zastrze\u017Cone"))); // ─── BackToTop ─────────────────────────────────────────────────── const BackToTop = ({ scrollY, accentColor }) => { const total = document.documentElement.scrollHeight - window.innerHeight; const progress = total > 0 ? Math.min(scrollY / total, 1) : 0; const visible = scrollY > 300; const size = 44; const r = 18; const circ = 2 * Math.PI * r; return /*#__PURE__*/React.createElement("button", { onClick: () => { window.scrollTo({ top: 0, behavior: 'smooth' }); document.documentElement.scrollTo({ top: 0, behavior: 'smooth' }); document.body.scrollTo({ top: 0, behavior: 'smooth' }); const root = document.getElementById('redboost-root'); if (root) root.scrollIntoView({ behavior: 'smooth', block: 'start' }); }, style: { position: 'fixed', bottom: '32px', right: '32px', zIndex: 9999, width: size + 'px', height: size + 'px', borderRadius: '50%', background: 'rgba(0,0,0,0.6)', border: 'none', cursor: 'pointer', display: 'flex', alignItems: 'center', justifyContent: 'center', padding: 0, opacity: visible ? 1 : 0, pointerEvents: visible ? 'auto' : 'none', transition: 'opacity 0.4s ease' }, title: "Wr\xF3\u0107 na g\xF3r\u0119" }, /*#__PURE__*/React.createElement("svg", { width: size, height: size, viewBox: `0 0 ${size} ${size}`, style: { position: 'absolute', top: 0, left: 0, transform: 'rotate(-90deg)' } }, /*#__PURE__*/React.createElement("circle", { cx: size / 2, cy: size / 2, r: r, fill: "none", stroke: "rgba(255,255,255,0.15)", strokeWidth: "2.5" }), /*#__PURE__*/React.createElement("circle", { cx: size / 2, cy: size / 2, r: r, fill: "none", stroke: accentColor, strokeWidth: "2.5", strokeDasharray: circ, strokeDashoffset: circ * (1 - progress), strokeLinecap: "round", style: { transition: 'stroke-dashoffset 0.1s linear' } })), /*#__PURE__*/React.createElement("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "#fff", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", style: { position: 'relative', zIndex: 1 } }, /*#__PURE__*/React.createElement("polyline", { points: "18,15 12,9 6,15" }))); }; // ─── CustomerNeeds ──────────────────────────────────────────── const WAVES_CFG = [ { nm:'630 nm', color:'#FF3311', dotX:0.595, dotY:0.13, title:'Kolagen i odnowa skory', desc:'Stymuluje fibroblasty do produkcji kolagenu, wyrownuje koloryt i przyspiesza gojenie. Dziala tam, gdzie krem tylko dotyka powierzchni.', badges:['kolagen','gojenie','blask'], tag:'Swiatlo czerwone' }, { nm:'660 nm', color:'#FF3311', dotX:0.600, dotY:0.28, title:'Fotobiomodulacja i odnowa komorkowa', desc:'Glebsza penetracja niz 630 nm. Redukuje stany zapalne skory, wspiera regeneracje po zabiegach i zmniejsza tradzik.', badges:['tradzik','przebarwienia','cera'], tag:'Swiatlo czerwone' }, { nm:'830 nm', color:'#CC1A00', dotX:0.605, dotY:0.43, title:'Miesnie i regeneracja potreningowa', desc:'Przenika do miesni i tkanek miekkich. Redukuje zaklasy i przyspiesza regeneracje po wysilku fizycznym.', badges:['miesnie','sport','zaklasy'], tag:'Bliska podczerwien' }, { nm:'850 nm', color:'#CC1A00', dotX:0.610, dotY:0.58, title:'Stawy, uklad ruchu i komfort', desc:'Wspiera mobilnosc stawow, redukuje stany zapalne i poprawia krazenie w glebszych tkankach.', badges:['stawy','bol','krazenie'], tag:'Bliska podczerwien' }, { nm:'1064 nm', color:'#8B2800', dotX:0.610, dotY:0.72, title:'Naczynia krwionosne i glebsze tkanki', desc:'Rzadko spotykany w lampach domowych. Poprawia ukrwienie i dociera do glebszych struktur tkankowych.', badges:['krazenie','glebsze tkanki'], tag:'Gleboka podczerwien' }, { nm:'1270 nm', color:'#C07840', dotX:0.605, dotY:0.86, title:'Mitochondria i energia komorkowa', desc:'Drugie okno biologiczne. Jedyna lampa na rynku z tym zakresem. Aktywuje mitochondria i wspiera produkcje ATP.', badges:['mitochondria','ATP','energia'], tag:'NIR-II tylko RedBoost' }, ]; const LAMP_X = 0.30; const VW = 1000, VH = 480; const makePath = (w, t, isActive) => { const x0 = LAMP_X * VW; const x1 = w.dotX * VW; const y0 = w.dotY * VH; const amp = isActive ? 7 : 4; const freq = isActive ? 0.020 : 0.014; const speed = isActive ? t * 2.0 : t * 1.0; const pts = []; for (let s = 0; s <= 80; s++) { const frac = s / 80; const x = x0 + (x1 - x0) * frac; const env = Math.sin(frac * Math.PI); const y = y0 + Math.sin(frac * 10 * Math.PI * freq * (x1 - x0) / 100 - speed) * amp * env; pts.push(x + ',' + y); } return 'M ' + pts.join(' L '); }; const WavesLayer = ({ activeRef, onHover }) => { const svgRef = useRef(null); const rafRef = useRef(null); const tRef = useRef(0); const elRef = useRef([]); useEffect(() => { const svg = svgRef.current; if (!svg) return; const NS = 'http://www.w3.org/2000/svg'; const defs = document.createElementNS(NS, 'defs'); WAVES_CFG.forEach((w, i) => { const lg = document.createElementNS(NS, 'linearGradient'); lg.setAttribute('id', 'wg'+i); lg.setAttribute('x1', '0%'); lg.setAttribute('y1', '0%'); lg.setAttribute('x2', '100%'); lg.setAttribute('y2', '0%'); const s1 = document.createElementNS(NS, 'stop'); s1.setAttribute('offset', '0%'); s1.setAttribute('stop-color', w.color); s1.setAttribute('stop-opacity', '0'); const s2 = document.createElementNS(NS, 'stop'); s2.setAttribute('offset', '60%'); s2.setAttribute('stop-color', w.color); s2.setAttribute('stop-opacity', '1'); const s3 = document.createElementNS(NS, 'stop'); s3.setAttribute('offset', '100%'); s3.setAttribute('stop-color', w.color); s3.setAttribute('stop-opacity', '0.3'); lg.appendChild(s1); lg.appendChild(s2); lg.appendChild(s3); defs.appendChild(lg); }); svg.appendChild(defs); elRef.current = WAVES_CFG.map((w, i) => { const g = document.createElementNS(NS, 'g'); const wide = document.createElementNS(NS, 'path'); wide.setAttribute('fill', 'none'); wide.setAttribute('stroke', w.color); wide.setAttribute('stroke-linecap', 'round'); wide.setAttribute('stroke-width', '14'); wide.setAttribute('opacity', '0'); const mid = document.createElementNS(NS, 'path'); mid.setAttribute('fill', 'none'); mid.setAttribute('stroke', w.color); mid.setAttribute('stroke-linecap', 'round'); mid.setAttribute('stroke-width', '5'); mid.setAttribute('opacity', '0.45'); const core = document.createElementNS(NS, 'path'); core.setAttribute('fill', 'none'); core.setAttribute('stroke', w.color); core.setAttribute('stroke-linecap', 'round'); core.setAttribute('stroke-width', '1.5'); core.setAttribute('opacity', '0.9'); const dot = document.createElementNS(NS, 'circle'); dot.setAttribute('fill', w.color); dot.setAttribute('cx', String(w.dotX * VW)); dot.setAttribute('cy', String(w.dotY * VH)); dot.setAttribute('r', '5'); dot.setAttribute('opacity', '0.7'); const ring1 = document.createElementNS(NS, 'circle'); ring1.setAttribute('fill', 'none'); ring1.setAttribute('stroke', w.color); ring1.setAttribute('stroke-width', '1.2'); ring1.setAttribute('cx', String(w.dotX * VW)); ring1.setAttribute('cy', String(w.dotY * VH)); ring1.setAttribute('opacity', '0'); const ring2 = document.createElementNS(NS, 'circle'); ring2.setAttribute('fill', 'none'); ring2.setAttribute('stroke', w.color); ring2.setAttribute('stroke-width', '0.6'); ring2.setAttribute('cx', String(w.dotX * VW)); ring2.setAttribute('cy', String(w.dotY * VH)); ring2.setAttribute('opacity', '0'); const hit = document.createElementNS(NS, 'circle'); hit.setAttribute('fill', 'transparent'); hit.setAttribute('cursor', 'pointer'); hit.setAttribute('cx', String(w.dotX * VW)); hit.setAttribute('cy', String(w.dotY * VH)); hit.setAttribute('r', '26'); hit.addEventListener('mouseenter', () => onHover(i)); hit.addEventListener('mouseleave', () => onHover(null)); g.appendChild(wide); g.appendChild(mid); g.appendChild(core); g.appendChild(dot); g.appendChild(ring1); g.appendChild(ring2); g.appendChild(hit); svg.appendChild(g); return { wide, mid, core, dot, ring1, ring2 }; }); const render = () => { tRef.current += 0.016; const t = tRef.current; WAVES_CFG.forEach((w, i) => { const isActive = activeRef.current === i; const d = makePath(w, t, isActive); const { wide, mid, core, dot, ring1, ring2 } = elRef.current[i]; wide.setAttribute('d', d); wide.setAttribute('opacity', isActive ? '0.12' : '0.04'); wide.setAttribute('stroke-width', isActive ? '18' : '12'); mid.setAttribute('d', d); mid.setAttribute('opacity', isActive ? '0.35' : '0.18'); mid.setAttribute('stroke-width', isActive ? '7' : '4'); core.setAttribute('d', d); core.setAttribute('opacity', isActive ? '1' : '0.7'); core.setAttribute('stroke-width', isActive ? '2' : '1.5'); const pr = isActive ? 7 + Math.sin(t * 3) * 2 : 5; dot.setAttribute('r', String(pr)); dot.setAttribute('opacity', isActive ? '1' : '0.7'); if (isActive) { const pr1 = pr + 8; const pr2 = pr + 18; ring1.setAttribute('r', String(pr1 + Math.sin(t * 2.5) * 2)); ring1.setAttribute('opacity', '0.45'); ring2.setAttribute('r', String(pr2 + Math.sin(t * 2) * 3)); ring2.setAttribute('opacity', '0.2'); } else { ring1.setAttribute('opacity', '0'); ring2.setAttribute('opacity', '0'); } }); rafRef.current = requestAnimationFrame(render); }; render(); return () => cancelAnimationFrame(rafRef.current); }, []); return /*#__PURE__*/React.createElement('svg', { ref: svgRef, style: { position:'absolute', inset:0, width:'100%', height:'100%', zIndex:3 }, viewBox: '0 0 '+VW+' '+VH, preserveAspectRatio: 'none' }); }; const CustomerNeeds = ({ accentColor }) => { const [active, setActive] = useState(null); const activeRef = useRef(null); const handleHover = idx => { activeRef.current = idx; setActive(idx); }; const w = active !== null ? WAVES_CFG[active] : null; return /*#__PURE__*/React.createElement('section', { style: { background:'#000', padding:'clamp(48px,7vw,80px) clamp(24px,6vw,80px)' } }, /*#__PURE__*/React.createElement('div', { style:{ maxWidth:'1100px', margin:'0 auto' } }, /*#__PURE__*/React.createElement('div', { style:{ textAlign:'center', marginBottom:'32px' } }, /*#__PURE__*/React.createElement('p', { style:{ fontSize:'12px', letterSpacing:'0.15em', textTransform:'uppercase', color:accentColor, marginBottom:'12px', fontWeight:600 } }, 'Jak działa RedBoost'), /*#__PURE__*/React.createElement('h2', { style:{ fontSize:'clamp(28px,4vw,48px)', fontWeight:700, color:'#ffffff', lineHeight:1.1, marginBottom:'10px' } }, 'Jedno urządzenie. Sześć fal. Działa głębiej, niż widać.'), /*#__PURE__*/React.createElement('p', { style:{ fontSize:'14px', color:'rgba(255,255,255,.75)', maxWidth:'460px', margin:'0 auto', lineHeight:1.6, fontWeight:500 } }, 'Najedź na punkt na sylwetce lub na kartę poniżej.') ), /*#__PURE__*/React.createElement('div', { style:{ position:'relative', overflow:'hidden', background:'#000', borderRadius:'8px' } }, /*#__PURE__*/React.createElement('img', { src:'https://redboost.pl/wp-content/uploads/2026/07/ChatGPT-Image-19-cze-2026-09_41_27-1.png', alt:'RedBoost 6 długości fal światła czerwonego i podczerwieni — schemat działania na organizm', loading:'lazy', style:{ width:'100%', height:'auto', display:'block' } }) ), w ? /*#__PURE__*/React.createElement('div', { style:{ background:'#130808', padding:'16px 24px', display:'grid', gridTemplateColumns:'80px 1fr', gap:'16px', alignItems:'start', borderLeft:'3px solid '+w.color, marginTop:'1px', minHeight:'100px' } }, /*#__PURE__*/React.createElement('div', null, /*#__PURE__*/React.createElement('div', { style:{ fontSize:'26px', fontWeight:700, color:'#ffffff', lineHeight:1, marginBottom:'6px' } }, w.nm), /*#__PURE__*/React.createElement('span', { style:{ fontSize:'9px', color:'rgba(255,255,255,.6)', border:'1px solid rgba(255,255,255,.2)', borderRadius:'20px', padding:'2px 8px', display:'inline-block', letterSpacing:'.04em', textTransform:'uppercase' } }, w.tag) ), /*#__PURE__*/React.createElement('div', null, /*#__PURE__*/React.createElement('div', { style:{ fontSize:'17px', fontWeight:700, color:'#ffffff', marginBottom:'6px' } }, w.title), /*#__PURE__*/React.createElement('p', { style:{ fontSize:'14px', color:'rgba(255,255,255,.85)', lineHeight:1.7, margin:'0 0 10px' } }, w.desc), /*#__PURE__*/React.createElement('div', { style:{ display:'flex', flexWrap:'wrap', gap:'5px' } }, w.badges.map(b => /*#__PURE__*/React.createElement('span', { key:b, style:{ fontSize:'10px', color:'rgba(255,255,255,.45)', border:'1px solid rgba(255,255,255,.15)', borderRadius:'20px', padding:'2px 9px' } }, b)) ) ) ) : /*#__PURE__*/React.createElement('div', { style:{ background:'#0a0404', padding:'16px 24px', marginTop:'1px', minHeight:'100px', display:'flex', alignItems:'center' } }, /*#__PURE__*/React.createElement('p', { style:{ fontSize:'13px', color:'rgba(255,255,255,.55)', margin:0, letterSpacing:'.04em', fontWeight:500 } }, '← Najedź na punkt lub na kartę poniżej') ), /*#__PURE__*/React.createElement('div', { style:{ display:'grid', gridTemplateColumns:'repeat(6,1fr)', gap:'1px', background:'#ddd', marginTop:'1px' } }, WAVES_CFG.map((wave, i) => /*#__PURE__*/React.createElement('div', { key:i, onMouseEnter:() => handleHover(i), onMouseLeave:() => handleHover(null), style:{ background:active===i?'#fff':'#f5f0ee', padding:'16px 14px', cursor:'pointer', borderTop:'3px solid '+(active===i?wave.color:'transparent'), transition:'background .2s, border-color .2s' } }, /*#__PURE__*/React.createElement('div', { style:{ fontSize:'15px', fontWeight:700, color:active===i?wave.color:'#1a0a0a', marginBottom:'4px', letterSpacing:'-0.01em', transition:'color .2s' } }, wave.nm), /*#__PURE__*/React.createElement('div', { style:{ fontSize:'10px', color:'#6b4040', textTransform:'uppercase', letterSpacing:'.05em', lineHeight:1.4, fontWeight:500 } }, wave.tag) )) ), /*#__PURE__*/React.createElement('div', { style:{ display:'grid', gridTemplateColumns:'repeat(3,1fr)', gap:'1px', background:'rgba(255,255,255,.06)', marginTop:'1px' } }, [ { color:'#FF3311', title:'Okno biologiczne I', sub:'630 + 660 nm · skóra · kolagen' }, { color:'#CC1A00', title:'Okno biologiczne I + II', sub:'830 + 850 nm · mięśnie · stawy' }, { color:'#8B2800', title:'Okno biologiczne II · unikalne', sub:'1064 + 1270 nm · mitochondria · tylko RedBoost' }, ].map(f => /*#__PURE__*/React.createElement('div', { key:f.title, style:{ background:'#060202', padding:'11px 16px', display:'flex', alignItems:'center', gap:'8px' } }, /*#__PURE__*/React.createElement('div', { style:{ width:'5px', height:'5px', borderRadius:'50%', background:f.color, flexShrink:0 } }), /*#__PURE__*/React.createElement('div', null, /*#__PURE__*/React.createElement('p', { style:{ fontSize:'12px', fontWeight:600, color:'#ffffff', margin:'0 0 2px' } }, f.title), /*#__PURE__*/React.createElement('p', { style:{ fontSize:'11px', color:'rgba(255,255,255,.55)', margin:0 } }, f.sub) ) )) ) ) ); }; // ─── CookieBanner ───────────────────────────────────────────────────────────── const CookieBanner = ({ accentColor }) => { const [visible, setVisible] = React.useState(false); const [showPrefs, setShowPrefs] = React.useState(false); const [prefs, setPrefs] = React.useState({ analytics: true, marketing: false }); React.useEffect(() => { try { const consent = localStorage.getItem('rb_cookie_consent'); if (!consent) setTimeout(() => setVisible(true), 1000); } catch(e) {} }, []); const save = (type) => { const val = type === 'all' ? JSON.stringify({ necessary: true, analytics: true, marketing: true }) : JSON.stringify({ necessary: true, analytics: prefs.analytics, marketing: prefs.marketing }); try { localStorage.setItem('rb_cookie_consent', val); } catch(e) {} setVisible(false); setShowPrefs(false); }; const Toggle = ({ checked, onChange, label, desc, locked }) => /*#__PURE__*/React.createElement('div', { style: { display: 'flex', justifyContent: 'space-between', alignItems: 'flex-start', padding: '12px 0', borderBottom: '1px solid #eee' } }, /*#__PURE__*/React.createElement('div', { style: { flex: 1, paddingRight: '16px' } }, /*#__PURE__*/React.createElement('div', { style: { fontSize: '14px', fontWeight: 600, color: '#111', marginBottom: '2px' } }, label), /*#__PURE__*/React.createElement('div', { style: { fontSize: '12px', color: '#666', lineHeight: 1.5 } }, desc) ), /*#__PURE__*/React.createElement('div', { onClick: locked ? null : () => onChange(!checked), style: { width: '40px', height: '22px', borderRadius: '11px', flexShrink: 0, marginTop: '2px', background: checked ? '#111' : '#ddd', cursor: locked ? 'not-allowed' : 'pointer', position: 'relative', transition: 'background 0.2s', opacity: locked ? 0.5 : 1, } }, /*#__PURE__*/React.createElement('div', { style: { position: 'absolute', top: '3px', left: checked ? '21px' : '3px', width: '16px', height: '16px', borderRadius: '50%', background: '#fff', transition: 'left 0.2s', boxShadow: '0 1px 3px rgba(0,0,0,0.3)', } }) ) ); if (!visible) return null; return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement('div', { style: { position: 'fixed', inset: 0, background: 'rgba(0,0,0,0.5)', zIndex: 99998 }, onClick: null }), /*#__PURE__*/React.createElement('div', { style: { position: 'fixed', top: '50%', left: '50%', transform: 'translate(-50%, -50%)', zIndex: 99999, maxWidth: '480px', width: 'calc(100% - 40px)', background: '#fff', borderRadius: '8px', padding: '32px', boxShadow: '0 8px 40px rgba(0,0,0,0.25)', boxSizing: 'border-box', fontFamily: 'Outfit, sans-serif', } }, !showPrefs ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement('div', { style: { fontSize: '18px', fontWeight: 700, color: '#111', marginBottom: '12px' } }, 'Cookies'), /*#__PURE__*/React.createElement('p', { style: { fontSize: '13px', color: '#444', lineHeight: 1.6, marginBottom: '24px' } }, 'Obsługujemy pliki cookies. Jeśli uważasz, że to jest ok, po prostu kliknij "Zaakceptuj wszystko". Możesz też wybrać jakie cookies akceptujesz. Więcej w ', /*#__PURE__*/React.createElement('a', { href: '/polityka-prywatnosci', style: { color: '#111', textDecoration: 'underline' } }, 'polityce prywatności'), '.' ), /*#__PURE__*/React.createElement('div', { style: { display: 'flex', gap: '10px', justifyContent: 'flex-end' } }, /*#__PURE__*/React.createElement('button', { onClick: () => setShowPrefs(true), style: { background: '#fff', color: '#111', border: '1px solid #ccc', padding: '11px 22px', borderRadius: '6px', cursor: 'pointer', fontFamily: 'Outfit, sans-serif', fontSize: '14px', fontWeight: 500 } }, 'Ustawienia'), /*#__PURE__*/React.createElement('button', { onClick: () => save('all'), style: { background: '#111', color: '#fff', border: 'none', padding: '11px 22px', borderRadius: '6px', cursor: 'pointer', fontFamily: 'Outfit, sans-serif', fontSize: '14px', fontWeight: 600 } }, 'Zaakceptuj wszystko') ) ) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement('div', { style: { fontSize: '18px', fontWeight: 700, color: '#111', marginBottom: '4px' } }, 'Ustawienia cookies'), /*#__PURE__*/React.createElement('p', { style: { fontSize: '12px', color: '#666', marginBottom: '16px', lineHeight: 1.5 } }, 'Wybierz które cookies akceptujesz.'), /*#__PURE__*/React.createElement(Toggle, { checked: true, locked: true, onChange: () => {}, label: 'Niezbędne', desc: 'Sesja, bezpieczeństwo i podstawowe funkcje strony. Zawsze aktywne.' }), /*#__PURE__*/React.createElement(Toggle, { checked: prefs.analytics, locked: false, onChange: v => setPrefs(p => ({ ...p, analytics: v })), label: 'Analityczne', desc: 'Google Analytics — anonimowe dane o ruchu, pomóc w ulepszaniu strony.' }), /*#__PURE__*/React.createElement(Toggle, { checked: prefs.marketing, locked: false, onChange: v => setPrefs(p => ({ ...p, marketing: v })), label: 'Marketingowe', desc: 'Retargeting i personalizacja reklam. Aktualnie nieaktywne.' }), /*#__PURE__*/React.createElement('div', { style: { display: 'flex', gap: '10px', justifyContent: 'flex-end', marginTop: '16px' } }, /*#__PURE__*/React.createElement('button', { onClick: () => setShowPrefs(false), style: { background: '#fff', color: '#111', border: '1px solid #ccc', padding: '11px 22px', borderRadius: '6px', cursor: 'pointer', fontFamily: 'Outfit, sans-serif', fontSize: '14px' } }, '← Wróć'), /*#__PURE__*/React.createElement('button', { onClick: () => save('custom'), style: { background: '#111', color: '#fff', border: 'none', padding: '11px 22px', borderRadius: '6px', cursor: 'pointer', fontFamily: 'Outfit, sans-serif', fontSize: '14px', fontWeight: 600 } }, 'Zapisz') ) ) ) ); }; const App = () => { const [stickyVisible, setStickyVisible] = useState(false); const [scrollY, setScrollY] = useState(0); useEffect(() => { const onScroll = () => { setStickyVisible(window.scrollY > 500); setScrollY(window.scrollY); }; window.addEventListener('scroll', onScroll, { passive: true }); return () => window.removeEventListener('scroll', onScroll); }, []); useEffect(() => { const hash = window.location.hash.replace('#', ''); if (hash) { setTimeout(() => scrollToSection(hash), 150); } }, []); const accent = "#C8291E"; return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(BenefitBar, { accentColor: accent }), /*#__PURE__*/React.createElement(StickyHeader, { visible: stickyVisible, accentColor: accent }), /*#__PURE__*/React.createElement(HeroSection, { accentColor: accent, darkHero: true }), /*#__PURE__*/React.createElement(ProblemSection, { accentColor: accent }), /*#__PURE__*/React.createElement(SolutionIntro, { accentColor: accent }), /*#__PURE__*/React.createElement(HowItWorks, { accentColor: accent }), /*#__PURE__*/React.createElement(BenefitsPillars, { accentColor: accent }), /*#__PURE__*/React.createElement(ModelSection, { accentColor: accent }), /*#__PURE__*/React.createElement(ComparisonTable, { accentColor: accent }), /*#__PURE__*/React.createElement(VideoSection, { accentColor: accent }), /*#__PURE__*/React.createElement(ReviewsSection, { accentColor: accent }), /*#__PURE__*/React.createElement(FounderSection, { accentColor: accent }), /*#__PURE__*/React.createElement(WiedzaSection, { accentColor: accent }), /*#__PURE__*/React.createElement(BuyBox, { accentColor: accent, showBundle: false }), /*#__PURE__*/React.createElement(RiskSection, { accentColor: accent }), /*#__PURE__*/React.createElement(FAQSection, { accentColor: accent }), /*#__PURE__*/React.createElement(FinalCTA, { accentColor: accent }), /*#__PURE__*/React.createElement(Footer, { accentColor: accent }), /*#__PURE__*/React.createElement(BackToTop, { scrollY: scrollY, accentColor: accent }), /*#__PURE__*/React.createElement(CookieBanner, { accentColor: accent })); }; ReactDOM.createRoot(document.getElementById('redboost-root')).render(/*#__PURE__*/React.createElement(App, null));