/* ===== COURSES — Bastion-styled list + detail ===== */ function CoursesPage({ navigate, openSignup }) { const [active, setActive] = useState(0); const programs = [ { id: "base", num: "01", title: "ENDURANCE", ch: "基礎有氧", zone: "ZONE 2", bullets: ["維持長時間 Zone 2 穩定騎乘", "建立強大的基礎耐力、提升脂肪代謝效率", "在賽季前打好體能基礎,降低安靜心率"], meta: { 強度: "★★☆☆☆", 時長: "80 MIN", 對象: "全員 / 入門" } }, { id: "vo2", num: "02", title: "VO2 MAX", ch: "無氧間歇", zone: "ZONE 5–6 · HIIT", bullets: ["無氧間歇課程,在 Zone 5–Zone 6 以 HIIT 模式進行訓練", "提升最大攝氧量、衝刺爆發力及乳酸耐受度", "強調在短時間內爆發最高瓦數"], meta: { 強度: "★★★★★", 時長: "80 MIN", 對象: "進階 / 競賽" } }, { id: "ftp", num: "03", title: "THRESHOLD", ch: "閾值訓練", zone: "88–94% FTP", bullets: ["甜蜜點 (SST) 訓練,在 88–94% FTP 進行交叉練習", "利用單車低衝擊特性,輔助跑者或其他項目選手提升體能", "維持高心肺刺激,亦能提高最大攝氧量"], meta: { 強度: "★★★★☆", 時長: "80 MIN", 對象: "中階 / 跨項目" } }, { id: "heat", num: "04", title: "HEAT-ADAPT", ch: "熱適應訓練", zone: "CORE 監測", bullets: ["專屬教室建立安全的熱適應訓練環境", "CORE 感測器嚴格監測體溫、心率與水分補充", "增加心搏輸出量、優化排汗機制"], meta: { 強度: "★★★☆☆", 時長: "80 MIN", 對象: "夏季備賽 / 三鐵" } }, ]; return ( <> {/* Active program detail */}
// POWER PROGRAMS

FOUR
DISCIPLINES.

{/* List nav */}
{programs.map((p, i) => (
setActive(i)} style={{ display: "grid", gridTemplateColumns: "80px 1fr 1fr 1fr 60px", gap: 24, alignItems: "center", padding: "24px 16px 24px 0", borderBottom: "1px solid var(--hairline-soft)", cursor: "pointer", background: active === i ? "rgba(168,128,79,0.04)" : "transparent", transition: "background 0.2s, padding-left 0.3s", paddingLeft: active === i ? "16px" : "0" }}> {p.num} / {p.title} {p.ch} {p.zone} {active === i ? "—" : "+"}
))}
{/* Detail */}
{programs[active].zone}
{programs[active].title}
{programs[active].bullets.map((b, i) => (
0{i + 1} {b}
))}
{Object.entries(programs[active].meta).map(([k, v]) => (
{k} {v}
))}
{/* Roller training */}
// ROLLER

ROLLER
TRAINING.

{[ { l: "LEVEL 01", t: "BALANCE", c: "初階滾筒", b: ["訓練踩踏平順度、車感及核心平衡", "強調專注力,訓練控車技巧與騎乘姿勢矯正"] }, { l: "LEVEL 02", t: "REFLEX", c: "中階滾筒", b: ["放手騎乘、單腳踩踏與碰撞等進階平衡練習", "短時間高迴轉衝刺,訓練神經協調反應"] }, ].map(r => (
{r.l}
{r.t}
{r.c}
{r.b.map((x, i) => (
0{i + 1} {x}
))}
))}
{/* Custom & Private */}
// CUSTOM

CUSTOM
& PRIVATE.

// CUSTOM PACK
客製化包班

完全客製化的團體課程,教學內容、時間、上課次數皆可依需求制定。車隊集訓、企業團體、生日包場 — 全可。

// 1-ON-1 / 1-ON-2
個人技巧課

室內訓練台、爬坡王國的外騎指導都接。1 對 1、1 對 2 皆可,跨縣市車馬費另計。

1-ON-1
1500/HR
1-ON-2
2000/HR
); } function PowerCurve({ mode }) { const curves = { base: "M 0 80 Q 50 70 100 70 T 200 65 T 300 65 T 400 60", vo2: "M 0 90 L 30 30 L 50 30 L 60 85 L 90 25 L 110 25 L 120 88 L 150 22 L 170 22 L 180 90 L 210 28 L 230 28 L 240 86 L 270 25 L 290 25 L 300 90 L 400 90", ftp: "M 0 85 L 30 50 L 80 48 L 130 50 L 180 47 L 230 50 L 280 48 L 330 50 L 400 85", heat: "M 0 70 Q 100 68 200 60 T 400 50", }; return (
POWER PROFILE
{[20, 40, 60, 80].map(y => )}
); } /* Shared page hero */ function PageHero({ marker, titleA, titleB, sub }) { return (
{marker}

{titleA}
{titleB}

{sub && (

{sub}

)}
); } window.CoursesPage = CoursesPage; window.PageHero = PageHero;