// ===================================================== // HOME PAGE // ===================================================== const { useState: useStateP, useEffect: useEffectP, useRef: useRefP } = React; function Home({ lang, accent }) { const t = useT(lang); const T = window.I18N; return ( ); } function Hero({ lang }) { const t = useT(lang); const T = window.I18N; const stats = T.hero.stats; return (
{t(T.hero.eyebrow)}
{t(T.hero.estd)} · 41° N

{t(T.hero.line1)}
{t(T.hero.line2)}
{t(T.hero.line3)} {t(T.hero.line4)}

{t(T.hero.sub)}

{stats.map((s, i) => (
{s.num}{s.unit}
{t(s.lbl)}
))}
); } function Marquee() { const items = ["STRENGTH", "DISCIPLINE", "COMMUNITY", "RECOVERY", "ATHLETICS", "MOBILITY", "MINDSET"]; const renderRow = () => items.map((it, i) => ( {it} )); return ( ); } function About({ lang }) { const t = useT(lang); const T = window.I18N; return (
{t(T.about.eyebrow)}

{t(T.about.headline)}

{t(T.about.p1)}

{t(T.about.p2)}

{T.about.pillars.map((p, i) => (
0{i+1}
{t(p.title)}
{t(p.body)}
))}
); } function Facilities({ lang }) { const t = useT(lang); const T = window.I18N; return (
{t(T.facilities.eyebrow)}

{t(T.facilities.headline)}

{t(T.facilities.sub)}

{T.facilities.tags.map((tag, i) => {t(tag)})}
); } function Programs({ lang }) { const t = useT(lang); const T = window.I18N; return (
{t(T.programs.eyebrow)}

{t(T.programs.headline)}

{t(T.programs.sub)}

); } function Pricing({ lang }) { const t = useT(lang); const T = window.I18N; return (
{t(T.pricing.eyebrow)}

{t(T.pricing.headline)}

{t(T.pricing.sub)}

{T.pricing.plans.map((p, i) => (
{p.badge &&
{t(p.badge)}
}
{t(p.name)}
{t(p.tag)}
{p.price} {t(T.pricing.cur)} {t(T.pricing[p.per])}
    {p.features.map((f, j) =>
  • {t(f)}
  • )} {p.muted.map((f, j) =>
  • — {t(f)}
  • )}
{t(p.cta)}
))}
); } function TrainersGrid({ lang }) { const t = useT(lang); const T = window.I18N; return (
{t(T.trainers.eyebrow)}

{t(T.trainers.headline)}

{t(T.trainers.sub)}

); } function Contact({ lang }) { const t = useT(lang); const T = window.I18N; const [sent, setSent] = useStateP(false); const submit = (e) => { e.preventDefault(); setSent(true); setTimeout(() => setSent(false), 4000); }; return (
{t(T.contact.eyebrow)}

{t(T.contact.headline)}

{t(T.contact.address)} {T.contact.addrVal}Tetovo, Macedonia
{t(T.contact.hours)} {t(T.contact.hoursVal)}
{t(T.contact.phone)} {T.contact.phoneVal}
{t(T.contact.email)} {T.contact.emailVal}
{t(T.contact.whatsapp)} {T.contact.whatsappVal}
{t(T.contact.social)} {T.contact.socialVal}

{t(T.contact.formTitle)}

); } // ===================================================== // TRAINER DETAIL PAGE // ===================================================== function TrainerDetail({ slug, lang }) { const t = useT(lang); const T = window.I18N; const tr = T.trainerData.find((x) => x.slug === slug); useEffectP(() => { window.scrollTo({ top: 0, behavior: "instant" }); }, [slug]); if (!tr) { return

Trainer not found

← {t(T.trainers.backTo)}
; } const days = ["MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"]; const dayLabels = { mk: ["ПОН","ВТО","СРЕ","ЧЕТ","ПЕТ","САБ","НЕД"], sq: ["HËN","MAR","MËR","ENJ","PRE","SHT","DIE"], en: ["MON","TUE","WED","THU","FRI","SAT","SUN"], }; const waNum = tr.whatsapp.replace(/[^0-9]/g, ""); const waText = `Hello ${tr.first}, I'd like to book a session at Alpha Gym.`; const waUrl = `https://wa.me/${waNum}?text=${encodeURIComponent(waText)}`; const mailUrl = `mailto:${tr.email}?subject=Training inquiry — Alpha Gym&body=Hello ${tr.first},%0D%0A%0D%0AI'd like to learn more about your training.%0D%0A`; return (
← {t(T.trainers.backTo)}
0{T.trainerData.findIndex(x => x.slug === tr.slug) + 1} · {t(T.trainers.eyebrow)}

{tr.first}
{tr.last}

{t(tr.role)}

{t(tr.bio)}

{t(T.trainers.spec)}
{t(tr.spec)}
{t(T.trainers.exp)}
{tr.years}{t(T.trainers.yrs)}
{t(T.trainers.clients)}
{tr.clients}{t(T.trainers.sessionsLabel)}
{t(T.trainers.approach)}

{t({ mk: "Како работам", sq: "Si punoj", en: "How I work" })}

{tr.approach.map((a, i) => (
0{i+1}
{t(a)}
))}
{t(T.trainers.creds)}

{t({ mk: "Сертификати", sq: "Certifikatat", en: "Credentials" })}

{tr.creds.map((c, i) => (
{c.yr}
{t(c.t)}
))}
{t(T.trainers.schedule)}
{tr.sched.map((s, i) => { const off = s === "off"; const peak = !off && (s.startsWith("16") || s.startsWith("14") || s.startsWith("12-20")); return (
{(dayLabels[lang] || dayLabels.en)[i]}
{off ? "—" : s}
); })}
{t(tr.quote)}
— {tr.first} {tr.last}
{t({ mk: "Други тренери", sq: "Trajnerë të tjerë", en: "Other coaches" })}

{t({ mk: "Запознај го тимот", sq: "Njohu me ekipin", en: "Meet the team" })}

{T.trainerData.filter((x) => x.slug !== tr.slug).map((other, i) => (
{t(other.spec)}
{other.first}
{other.last}
{t(other.role)}
))}
); } Object.assign(window, { Home, TrainerDetail, Hero, About, Facilities, Programs, Pricing, TrainersGrid, Contact });