Add the recruiter Pitch route and rebuild Home for direct-customer work.

Pitch takes the verified profile, metrics and public cases off Home so `/` can speak to small companies in plain language. The Systems Map now sits on the services overview, and both locales stay table-driven.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-26 12:52:12 +02:00
parent b15dfd7801
commit 86d6dd085d
35 changed files with 738 additions and 188 deletions

View File

@@ -3,40 +3,39 @@
<app-page-hero [hero]="copy.hero" [ctas]="copy.ctas" />
@for (section of copy.sections; track section.id) {
<app-content-section [section]="section" />
@if (section.id === 'profile') {
<ul class="stack">
@for (line of copy.profile; track $index) {
<li>{{ line }}</li>
}
</ul>
<app-metric-list [metrics]="copy.metrics" [labelledBy]="'section-profile'" />
<div appReveal class="home-reveal">
<app-systems-map
[heading]="copy.systemsMap.heading"
[intro]="copy.systemsMap.intro"
[headingLevel]="2"
/>
</div>
@if (section.id === 'scope') {
<section class="stack" [attr.aria-labelledby]="'home-service-areas'">
<h2 id="home-service-areas">{{ copy.serviceAreasHeading }}</h2>
<ul class="home-service-areas">
@for (area of copy.serviceAreas; track area.id) {
<li>
<a
class="home-service-card glass-surface stack"
[routerLink]="areaLink(area.routeId)"
>
<h3>{{ area.title }}</h3>
<p>{{ area.body }}</p>
</a>
</li>
}
</ul>
</section>
<section class="stack" [attr.aria-labelledby]="'home-process'">
<h2 id="home-process">{{ copy.processHeading }}</h2>
<app-process-steps [steps]="copy.process" [labelledBy]="'home-process'" />
</section>
}
@if (section.id === 'featured-cases') {
@if (section.id === 'proof') {
<div appReveal class="home-reveal stack">
<h2 id="home-proof">{{ copy.proofHeading }}</h2>
<app-case-card [caseStudy]="proofCase()" />
<p class="home-proof-note" role="note">{{ copy.proofNote }}</p>
@for (caseStudy of featuredCases(); track caseStudy.id) {
<app-case-card [caseStudy]="caseStudy" />
}
</div>
}
}
@for (audience of copy.audiences; track audience.id) {
<section class="stack" [id]="audience.id" [attr.aria-labelledby]="'audience-' + audience.id">
<h2 [id]="'audience-' + audience.id">{{ audience.headline }}</h2>
<p>{{ audience.body }}</p>
<ul>
@for (bullet of audience.bullets; track $index) {
<li>{{ bullet }}</li>
}
</ul>
<app-cta-row [ctas]="audience.ctas" />
</section>
}
<app-cta-row [ctas]="copy.ctas" />
</div>
}