--- /** * Shared Hero Section component * Supports multiple variants: default (split), fullwidth, widescreen */ import Container from '../atoms/Container.astro'; import Button from '../atoms/Button.astro'; interface CTA { text: string; href: string; variant?: 'primary' | 'secondary' | 'outline' | 'ghost'; icon?: string; } interface TrustBadge { icon: string; text: string; } interface Props { title: string; subtitle: string; variant?: 'default' | 'fullwidth' | 'centered'; image?: { src: string; alt: string; position?: 'left' | 'right'; }; primaryCta?: CTA; secondaryCta?: CTA; microCopy?: string; trustBadges?: TrustBadge[]; class?: string; showScrollIndicator?: boolean; } const { title, subtitle, variant = 'default', image, primaryCta, secondaryCta, microCopy, trustBadges, class: className = '', showScrollIndicator = false } = Astro.props; const imagePosition = image?.position ?? 'right'; ---
{variant === 'default' && (

{title}

{subtitle}

{(primaryCta || secondaryCta) && (
{primaryCta && ( )} {secondaryCta && ( )}
)} {microCopy && (

{microCopy}

)} {trustBadges && trustBadges.length > 0 && (
{trustBadges.map((badge) => (
{badge.icon} {badge.text}
))}
)}
{image && (
{image.alt}
)}
)} {variant === 'fullwidth' && image && (
{image.alt}

{title}

{subtitle}

{(primaryCta || secondaryCta) && (
{primaryCta && ( )} {secondaryCta && ( )}
)} {trustBadges && trustBadges.length > 0 && (
{trustBadges.map((badge) => (
{badge.icon} {badge.text}
))}
)}
)} {variant === 'centered' && (

{title}

{subtitle}

{(primaryCta || secondaryCta) && (
{primaryCta && ( )} {secondaryCta && ( )}
)} {microCopy && (

{microCopy}

)}
)}
{showScrollIndicator && (
)}