// Shared data for Endeavor Fitness redesign

const PROGRAMS = [
  {
    id: "rising",
    num: "01",
    tag: "Youth",
    tagClass: "youth",
    title: "Rising Stars",
    sub: "Middle school athletes",
    desc: "High-energy, fundamentals-first sessions built around speed, coordination, and strength — in a fun, competitive environment where confidence comes standard.",
    when: ["Mon · Wed   4:00–5:00 pm", "Tue · Thu   5:00–6:00 pm"],
    spots: 3,
    accent: "#c8a45c",
  },
  {
    id: "fit",
    num: "02",
    tag: "Adult · Group",
    tagClass: "adult",
    title: "Fit Tribe",
    sub: "Small-group adults",
    desc: "Small-group, results-driven workouts blending strength, conditioning, and cardio. Built for accountability, community, and progress — because training together pushes you further.",
    when: ["Mon · Tue · Wed · Thu   3:00–4:00 pm", "Mon · Tue · Wed · Thu   4:00–5:00 pm"],
    spots: 2,
    accent: "#6b8a6e",
  },
  {
    id: "next",
    num: "03",
    tag: "Youth",
    tagClass: "youth",
    title: "Next Level",
    sub: "High school athletes",
    desc: "Intense training that sharpens agility, power, and endurance. Focused on preparing athletes for peak performance in their sport while developing leadership and mental toughness.",
    when: ["Mon · Wed   5:00–6:00 pm", "Tue · Thu   4:00–5:00 pm"],
    spots: 5,
    accent: "#c8a45c",
  },
  {
    id: "precision",
    num: "04",
    tag: "1:1",
    tagClass: "solo",
    title: "Precision",
    sub: "One-on-one coaching",
    desc: "Personalized programming tailored to your specific goals — athletic performance, strength development, or overall fitness. One-on-one attention for faster, smarter results.",
    when: ["On demand · book a window"],
    spots: 7,
    accent: "#f1ece2",
  },
];

const SCHEDULE = {
  times: ["3:00 pm", "4:00 pm", "5:00 pm"],
  days: ["Mon", "Tue", "Wed", "Thu", "Fri"],
  // [time][day] => programId | null
  grid: [
    ["fit", "fit", "fit", "fit", null],
    ["fit", "rising", "fit", "rising", "precision"],
    ["next", "rising", "next", "rising", "precision"],
  ],
};

const TESTIMONIALS = [
  {
    name: "Tasha Woodward",
    role: "Fit Tribe member · 2 years",
    initial: "T",
    text: "I've taken a lot of fitness classes and completed a lot of programs, but Lacie is by far the best trainer I have ever had. She's flexible to my needs and her vast knowledge let her modify any workout to help me reach my goals in ways I was comfortable. Sessions are fun, challenging, and high energy."
  },
  {
    name: "Karen Wilson",
    role: "Precision client",
    initial: "K",
    text: "Lacie is the best. She always knows how to push you beyond while making you feel like you're well within your boundaries. She's your guide on becoming stronger than yesterday."
  },
  {
    name: "Jennifer Spalding",
    role: "Fit Tribe member",
    initial: "J",
    text: "One of the best fitness trainers I have had the pleasure of working with. Incredibly knowledgeable and adaptable to my needs — and I've seen the same with everyone else in group sessions."
  },
  {
    name: "Marcus Bell",
    role: "Next Level athlete · parent",
    initial: "M",
    text: "My son went from JV bench to varsity starter in one off-season. Lacie's training isn't just about reps — it's about teaching him how to compete with himself first."
  },
  {
    name: "Erin Costa",
    role: "Rising Stars · parent",
    initial: "E",
    text: "My daughter actually asks to go to workouts. That's the part I can't believe. She's stronger, more confident, and has a real community around her now."
  },
];

const FAQS = [
  {
    q: "Where are sessions held?",
    a: "Endeavor's home studio is in Cle Elum, WA — tucked at the foot of the eastern Cascades. Outdoor sessions move to the river trail or local fields when the weather agrees."
  },
  {
    q: "Do I need to be in shape to start?",
    a: "No. Every program scales to where you are today. The first session is a conversation, an assessment, and a movement screen — not a punishment."
  },
  {
    q: "How big are the group classes?",
    a: "Fit Tribe and bootcamps cap at 8 athletes so coaching stays hands-on. If a session is full, you'll see it on the schedule and can join the waitlist."
  },
  {
    q: "What's a Precision (1:1) session like?",
    a: "60 minutes, fully programmed for you. We start with goals and a baseline assessment, then build a block of training that's reviewed and adjusted every 4 weeks."
  },
  {
    q: "What's the cancellation policy?",
    a: "Cancel up to 12 hours before a session for a full credit. Inside 12 hours we'll do our best to reschedule; missed sessions count toward your package."
  },
];

const PALETTES = {
  cascades: {
    label: "Cascades",
    "--cream": "#f1ece2",
    "--cream-2": "#e8e2d5",
    "--forest": "#0e1a14",
    "--forest-2": "#182721",
    "--ink": "#0a0e0c",
    "--ink-soft": "#2a322d",
    "--gold": "#c8a45c",
    "--sage": "#6b8a6e",
    "--rule": "rgba(14, 26, 20, 0.14)",
    "--rule-dark": "rgba(241, 236, 226, 0.16)",
  },
  ember: {
    label: "Ember",
    "--cream": "#f4f0e8",
    "--cream-2": "#ebe6d8",
    "--forest": "#1a1410",
    "--forest-2": "#241c16",
    "--ink": "#120e0a",
    "--ink-soft": "#3a302a",
    "--gold": "#d36a3c",
    "--sage": "#a08566",
    "--rule": "rgba(26, 20, 16, 0.14)",
    "--rule-dark": "rgba(244, 240, 232, 0.16)",
  },
  noir: {
    label: "Noir",
    "--cream": "#f5f5f2",
    "--cream-2": "#e8e8e3",
    "--forest": "#0a0a0a",
    "--forest-2": "#161616",
    "--ink": "#000000",
    "--ink-soft": "#2a2a2a",
    "--gold": "#d4ff3a",
    "--sage": "#888880",
    "--rule": "rgba(0, 0, 0, 0.14)",
    "--rule-dark": "rgba(245, 245, 242, 0.16)",
  },
  alpine: {
    label: "Alpine",
    "--cream": "#eef1ed",
    "--cream-2": "#e2e6e0",
    "--forest": "#0e1d28",
    "--forest-2": "#172a36",
    "--ink": "#080f15",
    "--ink-soft": "#28323c",
    "--gold": "#dcb56a",
    "--sage": "#5b8a9a",
    "--rule": "rgba(14, 29, 40, 0.14)",
    "--rule-dark": "rgba(238, 241, 237, 0.16)",
  },
};

const DISPLAY_FONTS = {
  bricolage: { label: "Bricolage", stack: '"Bricolage Grotesque", "Arial Narrow", sans-serif' },
  archivo: { label: "Archivo Black", stack: '"Archivo Black", "Bricolage Grotesque", sans-serif' },
  syne: { label: "Syne", stack: '"Syne", "Bricolage Grotesque", sans-serif' },
};

Object.assign(window, { PROGRAMS, SCHEDULE, TESTIMONIALS, FAQS, PALETTES, DISPLAY_FONTS });
