// SolutionShell: reusable layout for all 5 solution deep-pages. // Pages pass data (eyebrow, hero, problem, features, trust, pricing, faq, cta) // and the shell renders the standard sections in the standard order. const SolHero = ({ eyebrow, title, subtitle, ctaLabel, onCTA, mockup }) => (
{eyebrow.label}

{title}

{subtitle}

{mockup}
); const SolProblem = ({ title, lead, bullets, sting }) => (

{title}

{lead &&

{lead}

} {sting && (
{sting}
)}
); const SolFeatures = ({ kicker, title, items }) => (
{kicker && (
{kicker}
)}

{title}

{items.map((f,i)=>(
{f.t}
{f.b}
))}
); const SolTrust = ({ title, items }) => (

{title}

{items.map((it,i)=>(
{it.t}
{it.b}
))}
); const SolPricing = ({ title, plans, footnote }) => (

{title}

{plans.map((p,i)=>(
{p.tag}
{p.price}
{p.desc}
))}
{footnote && (
{footnote}
)}
); const SolCompare = ({ title, columns, rows }) => (

{title}

{columns.map((c,i)=>(
{c.label}
))}
{rows.map((r,i)=>(
{r.label}
{r.values.map((v,j)=>(
{v}
))}
))}
); const SolFaq = ({ items }) => { const [open, setOpen] = React.useState(0); return (

Häufige Fragen

{items.map((it,i)=>(
{open === i && (
{it.a}
)}
))}
); }; const SolCTA = ({ title, body, ctaLabel, onCTA, steps }) => (

{title}

{body &&

{body}

} {steps && (
{steps.map((s,i)=>(
{i+1}
{s}
))}
)}
); window.SolHero = SolHero; window.SolProblem = SolProblem; window.SolFeatures = SolFeatures; window.SolTrust = SolTrust; window.SolPricing = SolPricing; window.SolCompare = SolCompare; window.SolFaq = SolFaq; window.SolCTA = SolCTA;