Update newsletter/brand copy, hide VAT section without a vatId, relabel Lebensuhr breadcrumb

- Newsletter panel + modal: new title/description copy, weekly cadence wording
- Brand mentions ("einfach-produktiv") switched to "einfach produktiv."
- Impressum: Umsatzsteuer section (heading + TOC entry) only renders when vatId is set
- /lebensuhr breadcrumb eyebrow now reads "Lebensuhr" instead of "7-Tage-Challenge"

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Marco
2026-07-29 20:49:46 +00:00
parent 96fddf4cd9
commit 14094ab1d4
6 changed files with 20 additions and 15 deletions
+2 -2
View File
@@ -29,7 +29,7 @@ export function About() {
{/* Quote row: script quote / divider / author bio — side-by-side
only from lg: (1024px), a deliberate exception to the site's
sm: (640px) structural consolidation: quote + divider + the
whitespace-nowrap bio ("Gründer von einfach-produktiv.")
whitespace-nowrap bio ("Gründer von einfach produktiv.")
together need more room than the sm:-anchored text column has
through the whole 640-1023px range, independent of the outer
text/image ratio above. Stacked with a horizontal divider
@@ -77,7 +77,7 @@ export function About() {
<p>Björn.</p>
<p>Führungskraft.</p>
<p>Familienmensch.</p>
<p>Gründer von einfach-produktiv.</p>
<p>Gründer von einfach produktiv.</p>
</div>
</div>
+1 -1
View File
@@ -147,7 +147,7 @@ export function Hero() {
))}
</div>
<p className="flex-[1_0_0] font-normal leading-[1.5rem] text-text-primary text-body text-center sm:text-left [word-break:break-word]">
1.120+ Menschen vertrauen <span className="whitespace-nowrap">einfach-produktiv</span>
1.120+ Menschen vertrauen <span className="whitespace-nowrap">einfach produktiv.</span>
</p>
</div>
</Reveal>
+2 -2
View File
@@ -31,8 +31,8 @@ type NewsletterProps = {
* instead of a second near-duplicate component.
*/
export function Newsletter({
title = <>Starte mit einer Woche voller Klarheit<span className="text-brand">.</span></>,
description = "Melde dich an und bekommst 7 kurze Impulse direkt ins Postfach in ein paar Minuten gelesen, sofort im Alltag umsetzbar.",
title = "Kleine Impulse große Wirkung",
description = "Melde dich an und bekomme meine Sonntags-Impulse ab jetzt jede Woche direkt in dein Postfach: kurze Gedanken, praktische Impulse und kleine Anstöße für mehr Klarheit im Alltag.",
}: NewsletterProps = {}) {
const { email, emailError, consent, handleConsentChange, status, error, successMessage, emailRef, handleEmailChange, handleEmailBlur, handleSubmit } =
useNewsletterSignup("newsletter-page");
+3 -3
View File
@@ -10,7 +10,7 @@ const features = [
{
icon: "/icon-sparkle-wrapper.svg",
title: "7 Tage. Ein Fokus.",
desc: "Tägliche Impulse für mehr Klarheit und weniger Reibung.",
desc: "Wöchentliche Impulse für mehr Klarheit und weniger Reibung.",
},
{
icon: "/icon-checklist.png",
@@ -206,11 +206,11 @@ export function NewsletterModal({ open, onClose }: { open: boolean; onClose: ()
className="font-semibold text-h-feature text-text-primary leading-[1.15]"
style={{ fontFamily: "var(--font-lora)" }}
>
Starte mit einer Woche voller Klarheit<span className="text-brand">.</span>
Kleine Impulse große Wirkung
</p>
<p className="text-body text-text-primary">
Melde dich zum Newsletter an und bekommst 7 kurze Impulse direkt ins Postfach in ein paar Minuten gelesen, sofort im Alltag umsetzbar.
Melde dich an und bekomme meine Sonntags-Impulse ab jetzt jede Woche direkt in dein Postfach: kurze Gedanken, praktische Impulse und kleine Anstöße für mehr Klarheit im Alltag.
</p>
{status === "success" ? (
+11 -6
View File
@@ -35,7 +35,8 @@ import type { TOCSection } from "../../components/SectionTOC";
// basis first, and don't assume the old attempt's reasoning was correct.
export function anbieterAngabenHeadings(seller: CompanySettings | null): TOCSection[] {
if (!seller) return [];
const sections = ["Angaben zum Anbieter", "Umsatzsteuer"];
const sections = ["Angaben zum Anbieter"];
if (seller.vatId) sections.push("Umsatzsteuer");
if (seller.registerCourt && seller.registerNumber) sections.push("Handelsregister");
if (seller.managingDirector) sections.push("Geschäftsführung");
sections.push("Verantwortlich für den Inhalt");
@@ -78,11 +79,15 @@ export function AnbieterAngaben({ seller }: { seller: CompanySettings }) {
<P>E-Mail: {seller.sellerEmail}</P>
</div>
<Heading>Umsatzsteuer</Heading>
<div className="flex flex-col gap-1">
<P>Umsatzsteuer-Identifikationsnummer gemäß § 27 a Umsatzsteuergesetz:</P>
<P>{seller.vatId}</P>
</div>
{seller.vatId && (
<>
<Heading>Umsatzsteuer</Heading>
<div className="flex flex-col gap-1">
<P>Umsatzsteuer-Identifikationsnummer gemäß § 27 a Umsatzsteuergesetz:</P>
<P>{seller.vatId}</P>
</div>
</>
)}
{seller.registerCourt && seller.registerNumber && (
<>
+1 -1
View File
@@ -152,7 +152,7 @@ export default async function ChallengePage() {
<span></span>
<Link href="/#werkzeuge" className="hover:text-brand transition-colors">Werkzeuge</Link>
<span></span>
<span className="text-text-primary">7-Tage-Challenge</span>
<span className="text-text-primary">Lebensuhr</span>
</p>
{/* Everything else — centered in the remaining vertical space,