{card.problemHook}
+{card.title}
+{card.keyBenefit}
+ {card.priceFrom && ( +from {card.priceFrom}
+ )} + + {card.ctaLabel} +diff --git a/apps/portal/src/app/(public)/(site)/help/page.tsx b/apps/portal/src/app/(public)/(site)/help/page.tsx deleted file mode 100644 index 36d84e3e..00000000 --- a/apps/portal/src/app/(public)/(site)/help/page.tsx +++ /dev/null @@ -1,11 +0,0 @@ -/** - * Public Help Page - * - * Redirects to the combined Support & Contact page. - */ - -import { redirect } from "next/navigation"; - -export default function PublicHelpPage() { - redirect("/contact"); -} diff --git a/apps/portal/src/components/organisms/SiteFooter/SiteFooter.tsx b/apps/portal/src/components/organisms/SiteFooter/SiteFooter.tsx index 3c36c23f..585074ed 100644 --- a/apps/portal/src/components/organisms/SiteFooter/SiteFooter.tsx +++ b/apps/portal/src/components/organisms/SiteFooter/SiteFooter.tsx @@ -91,12 +91,20 @@ export function SiteFooter() { About Us +
No Japanese required. Our English-speaking team is here to help.
-+ Click the bottom right “Chat Button” to reach our team anytime. +
+Toll Free within Japan
+0120-660-470
+From Overseas
++81-3-3560-1006
+
+ Subway Oedo Line / Nanboku Line
+
+ Short walk from Exit 6, Azabu-Juban Station
+
+ 3F Azabu Maruka Bldg.,
+
+ 3-8-2 Higashi Azabu, Minato-ku,
+
+ Tokyo 106-0044
+
- From internet and mobile to VPN and on-site tech support — we handle it all in English so - you don't have to. + Internet, phone, VPN and IT support — set up in days, not weeks. No Japanese needed.
} > - Browse Services + Find Your Plan -{card.problemHook}
+{card.keyBenefit}
+ {card.priceFrom && ( +from {card.priceFrom}
+ )} + + {card.ctaLabel} ++ Everything you need to stay connected in Japan +
+- Everything you need to stay connected in Japan -
-+ Download one of these tools so our technicians can assist you remotely. +
++ {tool.description} +
+{tool.useCase}
+,
+ href: "/services/business",
+ ctaLabel: "Get a Quote",
+ },
+];
+
export const services = [
{
title: "Internet Plans",
diff --git a/apps/portal/src/features/landing-page/views/PublicLandingView.tsx b/apps/portal/src/features/landing-page/views/PublicLandingView.tsx
index ab68c130..915e7568 100644
--- a/apps/portal/src/features/landing-page/views/PublicLandingView.tsx
+++ b/apps/portal/src/features/landing-page/views/PublicLandingView.tsx
@@ -6,9 +6,11 @@ import { useStickyCta } from "@/features/landing-page/hooks";
import {
HeroSection,
TrustStrip,
- ServicesGrid,
+ ServicesCarousel,
WhyUsSection,
CTABanner,
+ SupportDownloadsSection,
+ ContactSection,
} from "@/features/landing-page/components";
export function PublicLandingView() {
@@ -18,9 +20,11 @@ export function PublicLandingView() {
- By submitting, you agree to our{" "} - - Privacy Policy - - . We typically respond within 24 hours. + We typically respond within 24 hours.
Available during business hours
@@ -180,7 +173,7 @@ export function PublicSupportView() { href={tool.href} target="_blank" rel="noopener noreferrer" - className="group bg-white rounded-2xl border border-border/60 p-6 hover:border-primary/40 hover:shadow-md transition-all duration-200" + className="group bg-card rounded-2xl border border-border/60 p-6 hover:border-primary/40 hover:shadow-md transition-all duration-200" >
{item.answer}
Send us a message and we'll get back to you within 24 hours.
@@ -279,5 +279,3 @@ export function PublicSupportView() {,
+ href: "/services/business",
+ ctaLabel: "Get a Quote",
+ },
+];
+```
+
+**Step 2: Verify no lint errors**
+
+Run: `pnpm lint --filter @customer-portal/portal -- --no-warn`
+
+**Step 3: Commit**
+
+```
+feat: add conversion card data for landing page services carousel
+```
+
+---
+
+### Task 2: Create ServicesCarousel Component
+
+**Files:**
+
+- Create: `apps/portal/src/features/landing-page/components/ServicesCarousel.tsx`
+
+**Step 1: Create the tabbed carousel component**
+
+This component has:
+
+- Tab switcher ("For You" / "For Business")
+- Horizontal scrolling carousel with auto-scroll
+- Conversion-oriented service cards with problem hook, benefit, price, badge, CTA
+- Prev/next navigation buttons
+
+```tsx
+"use client";
+
+import { useCallback, useEffect, useRef, useState } from "react";
+import Link from "next/link";
+import { ArrowRight, ChevronLeft, ChevronRight } from "lucide-react";
+import { cn } from "@/shared/utils";
+import { useInView } from "@/features/landing-page/hooks";
+import {
+ personalConversionCards,
+ businessConversionCards,
+ type ConversionServiceCard,
+} from "@/features/landing-page/data";
+
+type Tab = "personal" | "business";
+
+function ServiceConversionCard({ card }: { card: ConversionServiceCard }) {
+ return (
+
+ {card.problemHook}
+{card.keyBenefit}
+ {card.priceFrom && ( +from {card.priceFrom}
+ )} + + {card.ctaLabel} ++ Everything you need to stay connected in Japan +
++ Download one of these tools so our technicians can assist you remotely. +
++ {tool.description} +
+{tool.useCase}
++ Click the bottom right “Chat Button” to reach our team anytime. +
+Toll Free within Japan
+0120-660-470
+From Overseas
++81-3-3560-1006
+
+ Subway Oedo Line / Nanboku Line
+
+ Short walk from Exit 6, Azabu-Juban Station
+
+ 3F Azabu Maruka Bldg.,
+
+ 3-8-2 Higashi Azabu, Minato-ku,
+
+ Tokyo 106-0044
+
+ From internet and mobile to VPN and on-site tech support — we handle it all in English so you + don't have to. +
; + +{ + /* NEW subtitle: */ +} ++ Internet, phone, VPN and IT support — set up in days, not weeks. No Japanese needed. +
; +``` + +```tsx +{/* OLD CTAs (lines 58-69): */} ++ No Japanese required. Our English-speaking team is here to help. +
+ +