# Solutions Benchmark Website — As-Built Reference

**Document type:** As-built / current-state record
**Scope:** The published website as it exists today (no recommendations applied)
**Prepared:** 28 October 2026
**Published site:** benchmark-standard-core.base44.app (custom domain: solutionsbenchmark.com)
**Source of truth:** the live application code — every statement below was taken from the implementation, not from older design documents.

Use this document to review the current build and to plan the refresh. Section 12 lists the items that need a decision or a fix before or during the refresh.

---

## 1. Overview

The site is a single marketing website that serves **four brands** from one codebase:

| Brand | Role | URL prefix |
|---|---|---|
| Solutions Benchmark (Group) | Holding company / group homepage | `/` and `/About`, `/OurCompanies`, `/Careers`, `/Insights`, `/Contact`, `/GroupLeadership`, `/EmployeePortal` |
| Solutions Benchmark Index | IT, data centre, security, ERP | `/Index*` |
| Solutions Benchmark Marine | Marine & offshore, including Marine Warranty Surveying | `/Marine*` |
| Solutions Benchmark Consulting | Strategic advisory | `/Consulting*` |

Each brand has its **own colour scheme, own navigation bar and own footer**, switched automatically by the page name. Content is largely hard-coded in the page files (no CMS); enquiries and job applications are captured into the database and emailed to one inbox.

---

## 2. Platform & technical stack

| Item | Current state |
|---|---|
| Framework | React 18 + Vite |
| Styling | Tailwind CSS + shadcn/ui components |
| Routing | React Router (`src/App.jsx`), page config in `src/pages.config.js` |
| Backend | Base44 entities + 2 backend functions |
| Email | `Core.SendEmail` integration (sent from the app) |
| Images | Base44 media library (55 references) + Unsplash stock (18 references) |
| Logo asset | `media.base44.com/.../a894bc129_Logo.png` (full lock-up); email brand asset `b4e4f26be_SolutionsBenchmarkLogo.png` |
| Auth | Platform login exists but **no page on the site is protected** — the whole site is public; Employee Portal only links out to the ERP |

### Route registration — important for future edits
Pages are registered in **two places**:

1. `src/pages.config.js` — auto-generated list (22 pages), all rendered inside the shared `Layout`.
2. `src/App.jsx` — **6 manually declared routes** that are *not* in the auto list: `GroupLeadership`, `IndexLeadership`, `MarineLeadership`, `ConsultingLeadership`, `EmployeePortal`, `MarineWarrantySurveying`.

Any new page must be added to both places (the manual route pattern already present in `App.jsx`).

---

## 3. Route inventory

### 3.1 Group site (navy / emerald chrome)

| Route | Page file | Purpose |
|---|---|---|
| `/` | `pages/Home.jsx` | Group landing page |
| `/OurCompanies` | `pages/OurCompanies.jsx` | The three subsidiaries and the shared-brand rationale |
| `/About` | `pages/About.jsx` | Group story, "The Benchmark Code", unified direction |
| `/GroupLeadership` | `pages/GroupLeadership.jsx` | Group org chart (names currently "TBD") |
| `/Insights` | `pages/Insights.jsx` | Thought-leadership article grid with filter tabs |
| `/Careers` | `pages/Careers.jsx` | Open roles, "Why Join Us", speculative applications |
| `/Contact` | `pages/Contact.jsx` | Group enquiry form + company contacts + London address |
| `/EmployeePortal` | `pages/EmployeePortal.jsx` | Staff hub: ERP login, module cards, HR/IT support |

### 3.2 Solutions Benchmark Index (teal chrome)

| Route | Page file | Purpose |
|---|---|---|
| `/IndexHome` | `pages/IndexHome.jsx` | Index landing page |
| `/IndexServices` | `pages/IndexServices.jsx` | Four service lines, incl. the Khebá platform section |
| `/IndexProjects` | `pages/IndexProjects.jsx` | Executed project record |
| `/IndexApproach` | `pages/IndexApproach.jsx` | Delivery methodology (phases + four pillars) |
| `/IndexAbout` | `pages/IndexAbout.jsx` | Mission & vision, Benchmark Code, offices |
| `/IndexLeadership` | `pages/IndexLeadership.jsx` | Org chart (names currently "TBD") |
| `/IndexContact` | `pages/IndexContact.jsx` | Enquiry form + three Nigerian offices |

### 3.3 Solutions Benchmark Marine (teal chrome)

| Route | Page file | Purpose |
|---|---|---|
| `/MarineHome` | `pages/MarineHome.jsx` | Marine landing page (longest page, ~418 lines) |
| `/MarineServices` | `pages/MarineServices.jsx` | Core services & solutions |
| `/MarineWarrantySurveying` | `pages/MarineWarrantySurveying.jsx` | Dedicated MWS service page (~449 lines) |
| `/MarineProjects` | `pages/MarineProjects.jsx` | Project record: tugboat/crane barge, umbilical reels |
| `/MarineAbout` | `pages/MarineAbout.jsx` | Vision & mission, Benchmark Code, safety |
| `/MarineLeadership` | `pages/MarineLeadership.jsx` | Org chart (names currently "TBD") |
| `/MarineContact` | `pages/MarineContact.jsx` | Enquiry form, operations contact, three offices |

### 3.4 Solutions Benchmark Consulting (teal chrome)

| Route | Page file | Purpose |
|---|---|---|
| `/ConsultingHome` | `pages/ConsultingHome.jsx` | Consulting landing page |
| `/ConsultingServices` | `pages/ConsultingServices.jsx` | Practice areas |
| `/ConsultingApproach` | `pages/ConsultingApproach.jsx` | Benchmark Approach + engagement model |
| `/ConsultingAbout` | `pages/ConsultingAbout.jsx` | Who we are, Benchmark Code, client trust |
| `/ConsultingLeadership` | `pages/ConsultingLeadership.jsx` | Org chart (names currently "TBD") |
| `/ConsultingContact` | `pages/ConsultingContact.jsx` | Enquiry form + offices |

### 3.5 Utility

| Route | Notes |
|---|---|
| `*` | `lib/PageNotFound.jsx` (outside the shared Layout) |
| `pages/OAuthConsent.jsx` | Platform sign-in consent page; not part of the public site |

**Total: 28 public routes** across four brand areas.

---

## 4. Navigation & layout

The shared layout (`src/Layout.jsx`) chooses chrome by **page-name prefix**:

```
Index*      → IndexNavbar + IndexFooter
Marine*     → MarineNavbar + MarineFooter
Consulting* → ConsultingNavbar + ConsultingFooter
everything else → group Navbar + Footer
```

Any new page is therefore auto-branded by its filename prefix — no per-page wiring needed.

### 4.1 Group navigation (`components/shared/Navbar.jsx`)
- Fixed header, navy `#0B2F42`, 2px emerald `#2C8C7A` top rule, logo + tagline "The Foundation of Excellence".
- Links: Home · Our Companies (dropdown) · About the Group · Leadership · Insights · Careers · Contact · Employee Portal.
- "Our Companies" dropdown lists the three subsidiaries (with one-line descriptors) plus "View All Companies →".
- Desktop + mobile hamburger menu; active page shown in emerald.
- Click-outside and scroll listeners are wired (the scroll state is captured but currently drives no visual change).

### 4.2 Group footer (`components/shared/Footer.jsx`)
- Brand block + three link columns: **The Group** (Home, About the Group, Our Culture, Careers), **Our Companies** (three subsidiaries), **Resources** (Insights, Case Studies, News, Careers).
- LinkedIn icon → `https://www.linkedin.com/company/104368456`.
- Email icon → `info@solutionsbenchmark.com`.

### 4.3 Index navigation (`components/index/IndexNavbar.jsx`)
- Teal `#0B2F42` header with cyan `#2C8C7A` accent; "Solutions Benchmark **Index**" lock-up.
- Links: Home · Services · Projects · Approach · About · Leadership · Careers · Contact.
- Left: "← Group" (returns to group Home). Right: **Khebá** external button → `https://kheba.co` and "Get in Touch" → Index Contact.
- Mobile menu repeats all links plus Khebá.

### 4.4 Marine navigation (`components/marine/MarineNavbar.jsx`)
- Links: Home · Services · MWS · Projects · About · Leadership · Contact + "← Group" + "Get in Touch".
- Logo click goes to the **group** Home (not MarineHome).

### 4.5 Consulting navigation (`components/consulting/ConsultingNavbar.jsx`)
- Links: Home · Services · Approach · About · Leadership · Contact.
- Same logo-to-group-home behaviour.

### 4.6 Footers for Index / Marine / Consulting
Each repeats its own site map, contact details and `info@solutionsbenchmark.com`; Index and Consulting footers contain two `href="#"` placeholders (legal/social positions).

---

## 5. Page-by-page content inventory

### Group

**Home (`/`)** — assembled from six components:
1. `HeroSection` — full-bleed image, navy overlay, grid pattern, brand statement, CTAs.
2. `IsoCertificationsBanner` — three ISO badges (shared component originally built for Marine).
3. `EcosystemSection` — three company cards (Index / Marine / Consulting) with image, description, link.
4. `StandardSection` — "The Benchmark Code" pillars.
5. `ImpactSection` — group statistics.
6. `LeadershipBannerSection` — philosophy + founder/board-chair quote and portrait, link to Group Leadership.
7. `ContactBannerSection` — newsletter subscribe (left) and "Connect with Our Team" (right).

**Our Companies** — hero, three detailed company profiles (mission, differentiators, headline statistics, link to each site), then "A Cohesive Ecosystem" shared-brand benefits.

**About** — "The Foundation of Excellence", "Built on a Simple but Powerful Idea", The Benchmark Code, "Our Unified Direction".

**Group Leadership** — hero + breadcrumb + org chart: board/executive card at top, six direct reports (COO — Index, COO — Marine, COO — Consulting, Marine Warranty Surveyor, Group Finance & Accounts, Group Head of IT). **All profile names render as "TBD"** with a generic user icon.

**Insights** — six static articles with category filter tabs (All / Index / Marine / Consulting / Group), one featured article, author name and title per card. Article data lives in the page file. There are **no article detail pages and no click-through**.

Featured and listed articles:
- "Securing the Public Sector…" — David Chen, CTO Index (Feb 2026)
- "Safety Culture as Competitive Advantage…" — Capt. Marcus Reid, MD Marine (Jan 2026)
- "Ethical Advisory…" — Sarah Okonkwo, COO Group (Jan 2026)
- "Building a Multi-Company Group on a Single Standard of Integrity" — James Harrington, CEO Group (Dec 2025)
- "The Five Pillars of Government Digital Resilience" — David Chen (Nov 2025)
- "Navigating Extreme Environments…" — Capt. Marcus Reid (Oct 2025)

**Careers** — hero ("We Are Hiring"), **JobListings** (2 roles), four "Why Join Us" benefits, three company career paths, speculative application form, and a full job application modal.

Current open roles:
| Role | Location | Type |
|---|---|---|
| Business Development Officer | Port Harcourt, Nigeria | Full-time |
| Business Development Manager | Lagos, Nigeria | Full-time |
*(Previous COO – Marine, Group IT Officer and Group Compliance & HSE Officer listings have been removed.)*

**Contact** — group enquiry form; direct contact block (address "Plot 16B Oniru Palace Road, Victoria Island, Lagos, Nigeria", phone `+234 (902) 222 2077`, `info@solutionsbenchmark.com`); three company contact cards (all pointing to `info@solutionsbenchmark.com`).

**Employee Portal** — hero with "Login to ERP" and "New Staff? Request Access" (both → `https://benchmark-suite-pro.base44.app`); four ERP module cards (HR & Profile, Leave Requests, Expense Claims, Projects), each linking to the ERP; support block with `hr@` and `it@solutionsbenchmark.com`.

### Index

**IndexHome** — hero ("The Definitive Measure for Digital Trust"), specialised solutions, recent projects, approach teaser ("Structure is the Bridge Between Vision and Execution"), closing CTA. Links to Services, Projects, Approach, Contact.

**IndexServices** — four service lines, each with image, numbered capability list, key differentiators/badges and "Enquire About This Service":
1. Data Centre Infrastructure & Network Connectivity Solutions
2. Enterprise Security Solutions (badges: SIEM Expertise, PAM Implementation, Cisco Security Partner)
3. ERP Implementation & Managed Services
4. **Khebá** — an all-in-one business platform for Nigerian SMEs (finance, CRM, projects, HR and payroll, tax). Solutions Benchmark Index holds the rights to Khebá in Nigeria; the section links out to `https://kheba.co`.

**IndexProjects** — executed projects including:
- Quality Assurance Audit on Data Centres & Software Applications
- Deployment of SIEM & Privileged Access Management (PAM) Solutions
- Deployment of Cisco Email Security Solutions
- Network & Security Assessments – Multi-Branch
- Enterprise Mobility Management
- Endpoint & Network Protection System
plus "Other Executed IT Projects" and a closing CTA.

**IndexApproach** — phased implementation methodology (Phase 1–n) plus "Four Pillars of Our Approach".

**IndexAbout** — "The IT Benchmark for Enterprise & Government", mission & vision, Benchmark Code, offices.

**IndexContact** — enquiry form (name, email, phone, company, interest, message), reach-our-team block, and three offices:

| Office | Address |
|---|---|
| Lagos (Head Office) | Plot 16B Oniru Palace Road, Victoria Island, Lagos |
| Abuja (FCT) | No 10 Tito Broz Street, Off Jimmy Carter Street, Asokoro, Abuja |
| Port Harcourt (South-South) | No 26 Omerelu Street, GRA, Port Harcourt |

Shared phone: `+234 (902) 222 2077` · email `info@solutionsbenchmark.com`.

### Marine

**MarineHome** — hero ("Setting the Global Benchmark for Safety at Sea"), ISO certification banner, founder statement, vision & mission, core services, Marine Warranty Surveying block, major projects (Tugboat & Crane Barge Transportation; Umbilical Reels Transportation; other projects), partner CTA, Nigerian office contacts.

**MarineServices** — core services and solutions grid.

**MarineWarrantySurveying** — full service page: what MWS is, three core areas of expertise (heavy lifts, RORO, offshore operations), the three-phase MWS process (review → witnessing → certification), why MWS matters, benefits, team credentials ("Delivered by Experienced Mariners"), contact block (`marine@solutionsbenchmark.com`, `+234 (902) 222 2077`).

**MarineProjects** — major projects plus additional project record.

**MarineAbout** — specialist marine & offshore positioning, vision & mission, Benchmark Code, "Uncompromising Safety".

**MarineContact** — enquiry form (name, email, phone, company, service, message), operations contact block, and the same three Nigerian offices.

### Consulting

**ConsultingHome** — hero ("The Gold Standard for Ethical Advisory"), practice areas, "Integrated Governance, Risk & Compliance" feature, latest insights, CTA.

**ConsultingServices** — practice-area cards with detail.

**ConsultingApproach** — "The Benchmark Approach" and "Our Engagement Model".

**ConsultingAbout** — who we are, Benchmark Code, "Why Clients Trust Us".

**ConsultingContact** — enquiry form, contact information, offices.

---

## 6. Shared components

| Component | Used by | What it does |
|---|---|---|
| `Layout.jsx` | all routes | Brand-aware navbar/footer shell |
| `shared/Navbar`, `shared/Footer` | group pages | Group chrome |
| `index/IndexNavbar`, `index/IndexFooter`, `index/IndexBreadcrumb`, `index/GroupCrossPromo` | Index pages | Index chrome + cross-promotion to the group |
| `marine/MarineNavbar`, `MarineFooter`, `MarineBreadcrumb`, `MarineCrossPromo`, `IsoCertificationsBanner` | Marine pages (+ ISO banner on group Home) | Marine chrome, ISO credential banner |
| `consulting/ConsultingNavbar`, `ConsultingFooter`, `ConsultingBreadcrumb`, `ConsultingCrossPromo` | Consulting pages | Consulting chrome |
| `shared/ClientsPartners` | services/projects pages | Client & partner logo wall by subsidiary, with text fallback when a logo is missing |

Client & partner names currently listed: Nigeria Revenue Service, Securities & Exchange Commission, GIZ, Ecobank, Redtech, Castlenet, Aliph, Huawei, Canon, HPE, Motorola Solutions, Cisco, Sophos, Shell, Chevron, AGL, Vicbriggs, Southpole, Ocean & Sands, Aveon, Sterling Oil & Ten Oil (SEEPCO), New Cross Energy, QES, Eido Group, Aston Marine, Drok Energy, Carrington Exploration, Douglas Technologies.

---

## 7. Forms and data capture

| Form | Location | Sends to | Stored? |
|---|---|---|---|
| Group enquiry | `/Contact` | `sendEmail` function (source "Group Contact") | Yes — `ContactSubmission` |
| Index enquiry | `/IndexContact` | `sendEmail` (source "Index Contact") | Yes — `ContactSubmission` |
| Marine enquiry | `/MarineContact` | `sendEmail` (source "Marine Contact") | Yes — `ContactSubmission` |
| Consulting enquiry | `/ConsultingContact` | `sendEmail` (source "Consulting Contact") | Yes — `ContactSubmission` |
| Speculative application | `/Careers` | `sendEmail` (source "Speculative Application") | **No** — email only |
| Role-specific application | `JobApplicationModal` | `submitJobApplication` function | Yes — `JobApplication` + CV file |
| Newsletter subscribe | Group Home banner | nothing | **No** — shows a confirmation message in the browser only |

The **job application modal** is a long multi-step form: personal details, relocation, how they heard (with referral name), academic qualifications, certifications, professional experience, three culture questions (professionalism, integrity, meaning of excellence), "why Solutions Benchmark", two referees, and a CV upload (PDF/DOC/DOCX, max 10 MB) — all validated client-side.

All submission forms show an inline "Message received / Sent" success state; none shows an error state or retries.

---

## 8. Backend functions

### `sendEmail`
- Accepts `subject, body, from_name, from_email, phone, company, interest, source`.
- Writes a `ContactSubmission` record (failure is swallowed and logged, so an enquiry can be emailed without being stored).
- Builds a formatted HTML notification email and sends it via `Core.SendEmail` to **`info@solutionsbenchmark.com`** (hard-coded), from "Solutions Benchmark Website".
- Always returns `{ success: true }`; errors are caught and logged only.

### `submitJobApplication`
- Accepts the full application payload plus `cv_url`.
- Creates a `JobApplication` record with `status: "received"`.
- Sends a formatted HTML notification (personal info, qualifications, experience, culture answers, both referees, CV download link) to **`info@solutionsbenchmark.com`** (hard-coded).
- The CV file itself is uploaded **from the browser before this call** using `base44.integrations.Core.UploadFile`, which returns a public file URL saved as `cv_url`.

---

## 9. Data model

| Entity | Fields | Notes |
|---|---|---|
| **ContactSubmission** | `from_name`*, `from_email`*, `phone`, `company`, `interest`, `message`*, `subject`, `source` | `*` required. Every enquiry from all four sites lands here, distinguished by `source`. |
| **JobApplication** | `position`*, `full_name`*, `email`*, `phone`* + location/relocation/how-heard, education (degree, institution, graduation year, certifications), experience (years, employer, job title, achievements), culture answers (professionalism, integrity, excellence), `why_sb`, two referees (name, title/company, email, phone each), `cv_url`, `status` | `status`: `received` / `under_review` / `shortlisted` / `rejected`, default `received`. |
| **User** | built-in `role` (`admin` / `user`) | Only used for platform login; no site page reads it. |

Neither custom entity has row-level security rules configured.

---

## 10. Brand & design system

### Colour
| Role | Group | Subsidiaries |
|---|---|---|
| Primary dark | `#0B2F42` (header), `#0B2F42` (heroes/sections) | `#0B2F42` (header), `#0B2F42` (mobile menu) |
| Accent | `#2C8C7A` (emerald) | `#2C8C7A` (cyan) |
| Secondary accent | `#2C8C7A` (gold) | `#3498DB` (Index blue), `#1F6E6E` (Marine), `#8E6B8C` / `#8B6914` (Consulting) |
| Surfaces | `#F9FAFB`, white | `#F9FAFB`, `#F9FAFB` |
| Text | `#112732` body, `#67777E` muted | same |

### Typography
- Intended pairing: **Playfair Display** (display serif, `.font-serif-display`) + **Inter** (body). The font import and the `.font-serif-display` class live in `src/globals.css`, which is **not loaded by the app** — see gap G1.
- Body text is styled directly with Tailwind classes throughout; headings use `.font-serif-display` in 40 files.

### Shape & motion
- Largely square/sharp corners (0.125rem radius) for a formal, corporate feel; the group Home uses some pill (`rounded-full`) buttons, so button shapes are not consistent across the site.
- Hover transitions are short and subtle; no scroll animations or page transitions.
- Responsive breakpoints are used consistently (mobile hamburger menus, stacked grids).

### Imagery
- Corporate/stock photography from Base44 media library (55 references) and Unsplash (18 references — Consulting Home 7, Index Home 4, Marine Home 3, Ecosystem section 3, group hero 1).
- All subsidiary logos use the single group logo file; there are no per-subsidiary logo marks.

---

## 11. Integrations & external destinations

| Destination | Where | URL |
|---|---|---|
| Khebá | Index navbar (desktop + mobile) + Index Services | `https://kheba.co` |
| Solutions Benchmark ERP (staff) | Employee Portal (5 links) | `https://benchmark-suite-pro.base44.app` |
| LinkedIn | all footers | `https://www.linkedin.com/company/104368456` |
| Email | all footers / contact blocks | `info@`, `marine@`, `hr@`, `it@solutionsbenchmark.com` |
| Phone | contact blocks | `+234 (902) 222 2077` (Lagos head office) |
| Enquiry notification inbox | both backend functions | `info@solutionsbenchmark.com` |

No analytics, cookie banner, chat widget, maps embed or CRM integration is present.

---

## 12. Known gaps and items to verify

Prioritised for the refresh. Each item is a decision for you, not something already fixed.

### Priority 1 — visible or risk-bearing

| # | Finding | Detail |
|---|---|---|
| **G1** | **Brand serif font not loading** | `src/globals.css` (Playfair Display import + `.font-serif-display` rule) is not imported anywhere; only `src/index.css` is loaded. The class is used in 40 files, so display headings currently fall back to the default sans-serif. Either import `globals.css` or move the font tokens into `index.css` / `tailwind.config.js`. |
| **G2** | **CVs stored publicly** | Job applicants' CVs are uploaded with `Core.UploadFile` (public URL, no expiry) and the link is emailed. Consider private storage + signed links, and the current `UploadPrivateFile` method name. |
| **G3** | **No access rules on personal data** | `ContactSubmission` and `JobApplication` hold names, emails, phones and CVs but have no row-level security rules configured. |
| **G4** | **All enquiries go to one shared inbox** | Both functions hard-code `info@solutionsbenchmark.com`; no `hr@` routing for applications, no acknowledgement email to the person enquiring. |
| **G5** | **Newsletter captures nothing** | The group Home subscribe form only toggles a local "you're subscribed" message; no record, no mailing-list integration. |
| **G6** | **Page metadata is default** | `index.html` title is "Base44 APP", favicon is the Base44 logo, `/manifest.json` is referenced but no `public/` folder exists, and there is no meta description, Open Graph image or canonical URL — poor for search and link previews. |
| **G7** | **Leadership names are placeholders** | All four leadership pages render "TBD" name plates over role titles (COO — Index/Marine/Consulting, Group Finance, Group Head of IT, Marine Warranty Surveyor, Heads of Operations/BD/Compliance). |
| **G8** | Lagos head office details | Group Contact now shows the Lagos HQ ("Plot 16B Oniru Palace Road, Victoria Island, Lagos") and `+234 (902) 222 2077`; no UK address is published. |

### Priority 2 — consistency & completeness

| # | Finding | Detail |
|---|---|---|
| **G9** | Two different ERP destinations | Khebá button → `kheba.co`; Employee Portal ERP → `benchmark-suite-pro.base44.app`. Confirm which is the live staff system and label them clearly. |
| **G10** | LinkedIn link | All footers point to the public company page: `https://www.linkedin.com/company/104368456`. |
| **G11** | Placeholder footer links | Index and Consulting footers contain two `href="#"` entries each; "Our Culture" → About; "Case Studies"/"News" → Insights; "White Papers" → Projects; Marine "Careers" → Marine Contact; Index "Leadership" → Index About. |
| **G12** | Insights is static | Six hard-coded articles, no detail pages, no click-through on cards. Author names (David Chen, Capt. Marcus Reid, Sarah Okonkwo, James Harrington) appear to be illustrative rather than real staff — confirm. Authorship should also be checked against the (TBD) leadership pages. |
| **G13** | Mixed button shapes / palettes | Group pages use navy + emerald with some pill buttons; subsidiary pages use teal + cyan with square buttons. Decide whether the refresh unifies this or keeps a deliberate house style per brand. |
| **G14** | Subsidiary logos lead to group Home | Clicking the logo on Index/Marine/Consulting returns to the group site rather than that subsidiary's home — a common source of user confusion. |
| **G15** | No legal or compliance pages | No privacy policy, terms, cookie notice or accessibility statement, despite a UK address and PII capture (UK GDPR relevant). |
| **G16** | No SEO infrastructure | No `sitemap.xml`, `robots.txt`, structured data or analytics. |
| **G17** | Stock imagery to review | 18 Unsplash images used as placeholders across the three home pages and the ecosystem cards; confirm licensing and whether real project/brand photography will replace them. |
| **G18** | Accessibility not verified | Contrast of small cyan text on teal, focus states, and alt-text coverage across the ~55 media-library images were not audited. |
| **G19** | Duplicate route sources | 28 routes live in two registration paths (`pages.config.js` + manual routes in `App.jsx`); adding a page in only one place makes it unreachable. |

### Verified as working
- All 28 public routes resolve and render with the correct brand chrome.
- All four enquiry forms write to `ContactSubmission` and email the notification inbox.
- Role-based job applications save to `JobApplication` with the CV link and email HR.
- Mobile navigation works on all four brands.
- Cross-promotion blocks link each subsidiary back into the group and sibling sites.
- The Khebá entry (Index navbar + Index Services section) is live in both desktop and mobile navigation.

---

## 13. Suggested refresh backlog (for discussion)

1. Fix G1 (fonts) and G6 (title, favicon, OG, canonical) — cheapest visible wins.
2. Replace placeholder people (G7), UK details (G8) and the LinkedIn URL (G10).
3. Decide the enquiry-routing model (G4) and email acknowledgement; wire or remove the newsletter (G5).
4. Bring CV handling and entity access rules in line with data-protection expectations (G2, G3) and publish privacy/terms (G15).
5. Label the Khebá and staff ERP entry points clearly (G9).
6. Clean the footer/nav mappings and standardise button shapes and accent use (G11, G13, G14).
7. Decide whether Insights becomes a real editorial channel with article pages, or stays a static showcase (G12).
8. Replace stock imagery with brand photography and audit accessibility (G17, G18).

---

*End of as-built record.*