diff --git a/app/[locale]/certification/page.tsx b/app/[locale]/certification/page.tsx index 7f01434..c5b3184 100644 --- a/app/[locale]/certification/page.tsx +++ b/app/[locale]/certification/page.tsx @@ -3,7 +3,9 @@ import { getTranslations, setRequestLocale } from "next-intl/server"; import { faBuilding, faBuildingShield, faUser, faUserGraduate } from "@fortawesome/free-solid-svg-icons"; import CertifiedIntegrators from "./CertifiedIntegrators"; import CertificationPath from "@/app/components/CertificationPath"; -import { ButtonLink, Card, CardTitle, CtaBand, Feature, PageHero, Section, Steps } from "@/app/components/ui"; +import CertifiedProof from "@/app/components/CertifiedProof"; +import HeroMark from "@/app/components/HeroMark"; +import { ButtonLink, Card, CardTitle, CtaBand, Eyebrow, Feature, Section, Steps } from "@/app/components/ui"; import { alternates, pageLocale, type PageParams } from "@/app/lib/seo"; import { LINKS } from "@/app/lib/site"; @@ -20,9 +22,22 @@ export default async function Page({ params }: { params: Promise }) const tracks = t.raw("curriculum.tracks") as { title: string; body: string }[]; return ( <> - - {t("hero.cta")} - +
+ +
+
+
+ {t("hero.eyebrow")} +

{t("hero.title")}

+

{t("hero.lead")}

+
+ {t("hero.cta")} +
+
+ +
+
+
diff --git a/app/[locale]/layout.tsx b/app/[locale]/layout.tsx index ee755f5..95a4a29 100644 --- a/app/[locale]/layout.tsx +++ b/app/[locale]/layout.tsx @@ -47,7 +47,12 @@ export async function generateMetadata({ params }: { params: Promise }; } -/** Sets data-theme before first paint: stored choice, else OS preference, else dark. */ +/** + * Sets data-theme before first paint: stored choice, else OS preference, else + * dark. The server never renders the attribute itself: a client-side + * navigation between locales re-renders and would reset a server value + * to "dark" without running this script again. + */ const themeInitScript = ` (function(){try{var s=localStorage.getItem('mobiera-theme');var t=(s==='light'||s==='dark')?s:(window.matchMedia('(prefers-color-scheme: light)').matches?'light':'dark');document.documentElement.setAttribute('data-theme',t);}catch(e){document.documentElement.setAttribute('data-theme','dark');}})(); `; @@ -57,7 +62,7 @@ export default async function RootLayout({ children, params }: { children: React setRequestLocale(locale); const t = await getTranslations("common"); return ( - +