'use client'; import { useRef } from 'react'; import { motion, useInView } from 'framer-motion'; import { useTranslations } from 'next-intl'; import { FileText, Users, CreditCard, AlertTriangle, Scale, Gavel, Mail, type LucideIcon } from 'lucide-react'; import { LandingHeader, LandingFooter } from '@/components/layout'; const SECTION_KEYS = ['purpose', 'services', 'account', 'pricing', 'liability', 'ip', 'law'] as const; const ICONS: Record = { purpose: Users, services: FileText, account: Users, pricing: CreditCard, liability: AlertTriangle, ip: Scale, law: Gavel, }; function renderInlineBold(content: string) { return content.split('**').map((part, i) => i % 2 === 1 ? {part} : part ); } export default function TermsPage() { const t = useTranslations('marketing.terms'); const tCommon = useTranslations('marketing.common'); const heroRef = useRef(null); const contentRef = useRef(null); const isHeroInView = useInView(heroRef, { once: true }); const isContentInView = useInView(contentRef, { once: true }); const containerVariants = { hidden: { opacity: 0, y: 50 }, visible: { opacity: 1, y: 0, transition: { duration: 0.6, staggerChildren: 0.1, }, }, }; const itemVariants = { hidden: { opacity: 0, y: 20 }, visible: { opacity: 1, y: 0, transition: { duration: 0.5 }, }, }; return (
{/* Hero Section */}
{t('badge')}

{t('title1')}
{t('title2')}

{t('intro')}

{tCommon('lastUpdated')}

{/* Content Section */}
{SECTION_KEYS.map((key) => { const IconComponent = ICONS[key]; return (

{t(`sections.${key}.title`)}

{renderInlineBold(t(`sections.${key}.content`))}
); })}
{/* Contact Section */}

{t('contact.title')}

{t('contact.body')}

legal@xpeditis.com
); }