Block body prevents implicit return of HTMLButtonElement | null,
fixing TS error in stricter React ref type checking.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- New /courses page with 5 course cards (Interview Ready, Self
Assessment, Payroll, QuickBooks, Xero) with thumbnail images,
pricing, includes checklists, and enrol CTAs
- Added course images to public/courses/ and Assets/
- Contact page: updated email, phone (07440 594192), address
(Suite 29 Beaufort Court E14 9XL), hours, and added Courses
option to the "I'm interested in" select field
- Header: added Courses to desktop nav and mobile dock
(GraduationCap icon) between Services and Blog
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- services/page.tsx: remove duplicate 'Talk to us' (both went to /contact);
fix 'Book Free Consultation' missing href; swap to BeamButton for consistency
- about/page.tsx: remove 'Contact Us' button duplicating BeamButton on same page;
remove now-unused Button import
- contact/page.tsx: replace "directly in our calendar" with call-back copy
since no calendar integration exists yet
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ProcessSection: 'Get started' href /services → /contact
- BlogPreviewSection: fix invalid <Link> nested inside <Button> (was <button><a>)
- ContactPage: 'Book free consultation' sidebar button now href="#contact-form"
with matching id on the form element (was unclickable — no href)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace all hardcoded hex color values in components with Tailwind CSS
classes or CSS custom properties matching the design system tokens.
Affected files: Footer, TestimonialsColumn, HeroSection, StarIcon,
TextHoverEffect, and all page-level radial-gradient backgrounds.
Also fix eslint.config.mjs to use FlatCompat for eslint-config-next
legacy config compatibility with ESLint 9 flat config format, and
resolve pre-existing react/no-unescaped-entities errors in JSX files.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>