diff --git a/src/components/Hero.tsx b/src/components/Hero.tsx index b44dd66..b14fc36 100644 --- a/src/components/Hero.tsx +++ b/src/components/Hero.tsx @@ -22,66 +22,77 @@ export function priceLine(pricing: PublicPricing): string { /** * Hero als Magazin-Cover: der Masthead "ARTISTA" ueberlappt das Leitbild, - * Termin, Ort und Preis stehen als Cover-Lines daneben. + * Schlagzeile und Buchung stehen daneben und bleiben im ersten Bildschirm. + * Termin, Ort und Preis folgen als Cover-Lines in einer eigenen Leiste. */ export function Hero({ facts, pricing, showDrafts }: { facts: PublicCampFacts; pricing: PublicPricing; showDrafts: boolean }) { const place = facts.location ? `${facts.location}${facts.region ? `, ${facts.region}` : ""}` : "Italien"; + const coverLines = [ + { term: "Termin", value: dateLine(facts) }, + { term: "Ort", value: facts.location ?? "Italien, genauer Ort folgt" }, + { term: "Preis", value: priceLine(pricing) }, + ]; return ( -
+

Modelcamp 2027 {place}

-

+

ARTISTA ARTISTA Modelcamp 2027 – {site.hero.headline}

-
-
+
+
-
-

{site.hero.headline}

-

{site.hero.subline}

-
-
-
Termin
-
{dateLine(facts)}
-
-
-
Ort
-
{facts.location ?? "Italien, genauer Ort folgt"}
-
-
-
Preis
-
{priceLine(pricing)}
-
-
-
+
+

+ {/* Jeder Satz eine Zeile: bricht nie mitten im Gedanken um. */} + {site.hero.headline.split(/(?<=\.)\s+/).map((sentence) => ( + + {sentence} + + ))} +

+

{site.hero.subline}

+
{pricing.checkoutOpen ? ( - Platz buchen + Platz buchen ) : ( - + Preis und Buchungsstart )} - + Mehr über das Camp
+ +
+ {coverLines.map((line, index) => ( +
0 ? "sm:border-l sm:pl-6 md:pl-8" : "sm:pr-6"}`} + > +
{line.term}
+
{line.value}
+
+ ))} +
); diff --git a/src/components/SiteHeader.tsx b/src/components/SiteHeader.tsx index 47a9230..bec67e5 100644 --- a/src/components/SiteHeader.tsx +++ b/src/components/SiteHeader.tsx @@ -46,14 +46,14 @@ export function SiteHeader() { return (
Zum Inhalt springen
- ARTISTA Modelcamp 2027 + ARTISTA Modelcamp 2027