{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "pricing",
  "title": "Pricing",
  "author": "AlgorizeTech",
  "description": "Ask the user to pick one of 12 pricing variants: https://avaraui.com/view/pricing. This item holds 12 of them as looks of one component (tiered-cards, elegant-cards, minimal-cards, bordered-cards, dot-matrix-cards, scale-cards, selectable-plans, quote-builder, service-checklist, usage-slider, comparison-table, typographic-menu). Skip the question if the user already named one. A complete pricing system with plan cards, a comparison table, an interactive plan builder and an interactive service checklist.",
  "dependencies": [
    "lucide-react"
  ],
  "registryDependencies": [
    "https://avaraui.com/r/button.json",
    "https://avaraui.com/r/tilted-card.json",
    "https://avaraui.com/r/toggle-group.json",
    "utils"
  ],
  "files": [
    {
      "path": "src/components/custom/blocks/Pricing.tsx",
      "content": "\"use client\";\n\nimport { cn } from \"@/lib/utils\";\nimport {\n  ArrowRight,\n  Building,\n  Check,\n  CheckCircle2,\n  Code2,\n  HelpCircle,\n  Minus,\n  PenTool,\n  Plus,\n  Rocket,\n  Sparkles,\n  Star,\n  Users,\n  Zap,\n} from \"lucide-react\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { type PricingColor, getThemeStyles } from \"./pricing-theme\";\nimport { ToggleGroup, ToggleGroupItem } from \"./ToggleGroupBlock\";\nimport Button from \"./Button\";\nimport { TiltedCard } from \"./TiltedCardBlock\";\nexport type PricingVariant =\n  | \"default\"\n  | \"dot-pattern\"\n  | \"scale\"\n  | \"plans-pro\"\n  | \"elegant\"\n  | \"minimal\"\n  | \"bordered\"\n  | \"builder\"\n  | \"table\"\n  | \"slider\"\n  | \"typographic\"\n  | \"plans\";\n\n// Two-tone leaf tree icon matching uploaded image (yellow/amber left leaf, bright green right leaf, dark trunk)\nconst SproutIcon = ({ className }: { className?: string }) => (\n  <svg\n    viewBox=\"0 0 24 24\"\n    fill=\"none\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    className={cn(\"w-6 h-6\", className)}\n  >\n    {/* Central Trunk */}\n    <path\n      d=\"M12 21V11\"\n      stroke=\"currentColor\"\n      strokeWidth=\"2\"\n      strokeLinecap=\"round\"\n    />\n    {/* Left Leaf - Golden/Amber */}\n    <path\n      d=\"M11.5 12.5C11.5 12.5 6 12 5 7.5C4 3.5 8 3 11.5 7.5C11.5 9 11.5 12.5 11.5 12.5Z\"\n      fill=\"#EAB308\"\n      stroke=\"#CA8A04\"\n      strokeWidth=\"1\"\n      strokeLinejoin=\"round\"\n    />\n    {/* Right Leaf - Bright Green */}\n    <path\n      d=\"M12.5 10.5C12.5 10.5 13 4 17.5 4.5C21 5 18.5 10 14.5 11.5C13.5 12 12.5 10.5 12.5 10.5Z\"\n      fill=\"#84CC16\"\n      stroke=\"#65A30D\"\n      strokeWidth=\"1\"\n      strokeLinejoin=\"round\"\n    />\n  </svg>\n);\n\nconst iconMap: Record<string, React.ElementType> = {\n  Rocket,\n  Zap,\n  Building,\n  Users,\n  Code2,\n  PenTool,\n};\n\n// Animated Price Counter Component\nconst AnimatedPrice = ({\n  value,\n  counting = true,\n}: {\n  value: number | string;\n  counting?: boolean;\n}) => {\n  const cleanValue = String(value);\n  const numericValue = parseFloat(cleanValue.replace(/[^0-9.]/g, \"\"));\n  const [displayValue, setDisplayValue] = useState(counting ? 0 : numericValue);\n\n  useEffect(() => {\n    // Both cases render the value directly, without reading state.\n    if (!counting || isNaN(numericValue)) return;\n    let startTime: number;\n    const duration = 650;\n    const startValue = 0;\n\n    const animate = (time: number) => {\n      if (!startTime) startTime = time;\n      const progress = Math.min((time - startTime) / duration, 1);\n      const easeProgress = 1 - Math.pow(1 - progress, 4);\n      setDisplayValue(startValue + (numericValue - startValue) * easeProgress);\n      if (progress < 1) requestAnimationFrame(animate);\n      else setDisplayValue(numericValue);\n    };\n    requestAnimationFrame(animate);\n  }, [numericValue, value, counting]);\n\n  if (isNaN(numericValue)) return <span>{cleanValue}</span>;\n  if (!counting) return <span>{cleanValue.replace(/[^0-9.]/g, \"\")}</span>;\n\n  const isDecimal = cleanValue.includes(\".\");\n  return (\n    <span>\n      {isDecimal\n        ? displayValue.toFixed(2)\n        : Math.round(displayValue).toLocaleString()}\n    </span>\n  );\n};\n\n// ==========================================\n// 1. PRICING CARDS (TIERED)\n// ==========================================\nexport interface Plan {\n  id: string;\n  title: string;\n  subtitle: string;\n  price: string;\n  period: string;\n  buttonText: string;\n  popular: boolean;\n  icon: string;\n  features: string[];\n}\nexport interface PricingData {\n  tabs: { id: string; label: string; plans: Plan[] }[];\n}\n\nexport function PricingCards({\n  data,\n  variant = \"default\",\n  color = \"primary\",\n  counting = true,\n  title,\n  subtitle,\n  badgeText,\n  linkComponent: LinkComp = \"a\",\n}: {\n  data: PricingData;\n  variant?: PricingVariant;\n  color?: PricingColor;\n  counting?: boolean;\n  title?: string;\n  subtitle?: string;\n  badgeText?: string;\n  linkComponent?: React.ElementType;\n}) {\n  const [activeTab, setActiveTab] = useState(data.tabs[0]?.id || \"monthly\");\n  const { theme, style } = getThemeStyles(color);\n\n  const currentTab =\n    data.tabs.find((t) => t.id === activeTab) || data.tabs[0];\n\n  if (variant === \"dot-pattern\") {\n    const convertedPlans: DotPatternPlanItem[] = currentTab.plans.map((p) => ({\n      id: p.id,\n      badgeTag: p.title.toUpperCase(),\n      price: p.price.startsWith(\"$\") ? p.price : `$${p.price}`,\n      period: p.period ? `/${p.period}` : undefined,\n      description: p.subtitle,\n      buttonText: p.buttonText,\n      featured: p.popular,\n      featuresTitle: \"What's included:\",\n      features: p.features,\n    }));\n    return (\n      <PricingDotPattern\n        title={title}\n        subtitle={subtitle}\n        badgeText={badgeText}\n        plans={convertedPlans}\n        color={color}\n        counting={counting}\n        linkComponent={LinkComp}\n      />\n    );\n  }\n\n  if (variant === \"scale\") {\n    const scaleFormattedPlans: { monthly: ScalePlanItem[]; annually: ScalePlanItem[] } & Record<string, ScalePlanItem[]> = {\n      monthly: [],\n      annually: [],\n    };\n    data.tabs.forEach((tab) => {\n      scaleFormattedPlans[tab.id] = tab.plans.map((p) => ({\n        id: p.id,\n        title: p.title,\n        subtitle: p.subtitle,\n        price: p.price.startsWith(\"$\") ? p.price : `$${p.price}`,\n        period: p.period ? `/${p.period}` : undefined,\n        buttonText: p.buttonText,\n        popular: p.popular,\n        icon: p.icon,\n        featuresTitle: \"WHAT'S INCLUDED:\",\n        features: p.features,\n      }));\n    });\n    return (\n      <PricingScale\n        title={title}\n        subtitle={subtitle}\n        badgeText={badgeText}\n        plans={scaleFormattedPlans}\n        color={color}\n        counting={counting}\n        linkComponent={LinkComp}\n      />\n    );\n  }\n\n  if (variant === \"plans-pro\") {\n    return (\n      <PricingPlansPro\n        title={title}\n        subtitle={subtitle}\n        badgeText={badgeText}\n        color={color}\n        counting={counting}\n        linkComponent={LinkComp}\n      />\n    );\n  }\n\n  const defaultHeaders: Record<\n    string,\n    { badge: string; title: string; subtitle: string }\n  > = {\n    default: {\n      badge: \"Subscription Tiers\",\n      title: \"Flexible plans built for every stage of growth\",\n      subtitle:\n        \"Start small and upgrade as your audience expands. Switch between monthly and annual billing anytime.\",\n    },\n    elegant: {\n      badge: \"Curated Editions\",\n      title: \"Refined pricing for modern teams\",\n      subtitle:\n        \"Thoughtfully structured tiers with priority support and zero hidden platform fees.\",\n    },\n    minimal: {\n      badge: \"01 / PRICING\",\n      title: \"Pay only for what matters\",\n      subtitle:\n        \"No bloat, no complex contracts — straightforward monthly or annual subscriptions.\",\n    },\n    bordered: {\n      badge: \"NO-NONSENSE PRICING\",\n      title: \"Bold plans with zero surprises\",\n      subtitle:\n        \"Hard-hitting features, transparent flat rates, and instant setup for ambitious builders.\",\n    },\n  };\n\n  const fallbackHeader = defaultHeaders[variant] || defaultHeaders.default;\n  const resolvedBadge = badgeText ?? fallbackHeader.badge;\n  const resolvedTitle = title ?? fallbackHeader.title;\n  const resolvedSubtitle = subtitle ?? fallbackHeader.subtitle;\n\n  return (\n    <div className=\"w-full h-full max-w-6xl mx-auto py-8 sm:py-12\" style={style}>\n      {(resolvedTitle || resolvedSubtitle || resolvedBadge) && (\n        <div className=\"text-center space-y-3 sm:space-y-4 max-w-2xl mx-auto mb-8 sm:mb-12\">\n          {resolvedBadge && (\n            <>\n              {variant === \"elegant\" ? (\n                <div\n                  className={cn(\n                    \"inline-flex items-center gap-3 px-4 py-1 text-[11px] font-semibold uppercase tracking-[0.22em] transition-colors\",\n                    theme.text,\n                  )}\n                >\n                  <span className=\"w-6 h-px bg-current opacity-40\" />\n                  <Star className=\"w-3 h-3 fill-current shrink-0\" />\n                  <span>{resolvedBadge}</span>\n                  <span className=\"w-6 h-px bg-current opacity-40\" />\n                </div>\n              ) : variant === \"minimal\" ? (\n                <div className=\"inline-flex items-center gap-2 px-3 py-1 rounded-md border border-border bg-muted/40 font-mono text-[11px] font-semibold uppercase tracking-[0.18em] text-muted-foreground\">\n                  <span className={cn(\"w-1.5 h-1.5 rounded-xs\", theme.bg)} />\n                  <span>{resolvedBadge}</span>\n                </div>\n              ) : variant === \"bordered\" ? (\n                <div\n                  className={cn(\n                    \"inline-flex items-center gap-1.5 px-3.5 py-1 rounded-lg border-2 border-foreground text-[11px] font-extrabold uppercase tracking-wider shadow-[3px_3px_0px_0px_rgba(0,0,0,1)] dark:shadow-[3px_3px_0px_0px_rgba(255,255,255,1)]\",\n                    theme.bg,\n                  )}\n                >\n                  <Zap className=\"w-3.5 h-3.5 fill-current\" />\n                  <span>{resolvedBadge}</span>\n                </div>\n              ) : (\n                <div\n                  className={cn(\n                    \"inline-flex items-center gap-1.5 px-3.5 py-1 rounded-lg border text-[11px] font-semibold tracking-wide shadow-2xs transition-colors\",\n                    theme.bgSoft,\n                    theme.border,\n                  )}\n                >\n                  <Rocket className={cn(\"w-3.5 h-3.5\", theme.text)} />\n                  <span>{resolvedBadge}</span>\n                </div>\n              )}\n            </>\n          )}\n          {resolvedTitle && (\n            <h2\n              className={cn(\n                \"text-3xl sm:text-4xl md:text-5xl tracking-tight text-foreground leading-[1.15]\",\n                variant === \"elegant\"\n                  ? \"font-medium\"\n                  : variant === \"bordered\"\n                    ? \"font-extrabold uppercase tracking-tighter\"\n                    : \"font-semibold\",\n              )}\n            >\n              {resolvedTitle}\n            </h2>\n          )}\n          {resolvedSubtitle && (\n            <p className=\"text-sm sm:text-base text-muted-foreground leading-relaxed max-w-xl mx-auto\">\n              {resolvedSubtitle}\n            </p>\n          )}\n        </div>\n      )}\n\n      {data.tabs.length > 1 && (\n        <div className=\"flex justify-center mb-8 sm:mb-12\">\n          {/* Library ToggleGroup; an empty value (re-clicking the active\n              tab) is ignored so one tab is always selected. */}\n          <ToggleGroup\n            type=\"single\"\n            color={color}\n            value={activeTab}\n            onValueChange={(id) => {\n              if (id) setActiveTab(id);\n            }}\n            aria-label=\"Billing period\"\n            className=\"rounded-lg\"\n          >\n            {data.tabs.map((tab) => (\n              <ToggleGroupItem key={tab.id} value={tab.id} className=\"font-semibold rounded-md\">\n                {tab.label}\n              </ToggleGroupItem>\n            ))}\n          </ToggleGroup>\n        </div>\n      )}\n\n      <div className=\"grid grid-cols-1 md:grid-cols-3 gap-6 sm:gap-8 items-stretch\">\n        {currentTab.plans.map((plan) => {\n          const IconComponent = iconMap[plan.icon] || Zap;\n          const isPopular = plan.popular;\n\n          const cardBody = (\n            <>\n              {isPopular && (\n                <div\n                  className={cn(\n                    \"absolute -top-3.5 left-1/2 -translate-x-1/2 px-3 py-1 rounded-lg text-xs font-semibold uppercase tracking-wider shadow-sm z-20\",\n                    theme.bg,\n                  )}\n                >\n                  Most Popular\n                </div>\n              )}\n\n              <div>\n                <div className=\"flex items-center gap-3.5 mb-4\">\n                  <div\n                    className={cn(\n                      \"p-3 rounded-lg shrink-0\",\n                      isPopular ? theme.bgSoft : \"bg-muted\",\n                    )}\n                  >\n                    <IconComponent\n                      className={cn(\n                        \"w-6 h-6\",\n                        isPopular ? theme.text : \"text-muted-foreground\",\n                      )}\n                    />\n                  </div>\n                  <h3 className=\"text-xl font-semibold text-foreground\">\n                    {plan.title}\n                  </h3>\n                </div>\n\n                <p className=\"text-sm text-muted-foreground mb-6\">\n                  {plan.subtitle}\n                </p>\n\n                <div className=\"flex items-baseline gap-1 mb-6\">\n                  <span className=\"text-4xl sm:text-5xl font-bold text-foreground\">\n                    <AnimatedPrice value={plan.price} counting={counting} />\n                  </span>\n                  <span className=\"text-sm text-muted-foreground\">\n                    /{plan.period}\n                  </span>\n                </div>\n\n                <ul className=\"space-y-3 mb-8\">\n                  {plan.features.map((feature, i) => (\n                    <li key={i} className=\"flex items-center gap-3 text-sm text-foreground\">\n                      <Check className={cn(\"w-4 h-4 shrink-0\", theme.text)} />\n                      <span>{feature}</span>\n                    </li>\n                  ))}\n                </ul>\n              </div>\n\n              <LinkComp\n                href=\"#\"\n                className=\"w-full block no-underline\"\n              >\n                <Button\n                  variant={\n                    isPopular\n                      ? \"pricing-primary\"\n                      : variant === \"minimal\"\n                      ? \"pricing-outline\"\n                      : \"pricing-muted\"\n                  }\n                  className={cn(\"w-full\", isPopular && theme.bg)}\n                >\n                  {plan.buttonText}\n                </Button>\n              </LinkComp>\n            </>\n          );\n\n          if (variant === \"default\" && isPopular) {\n            return (\n              <div key={plan.id} className=\"relative z-10 w-full h-full\">\n                <TiltedCard\n                  tiltIntensity={6}\n                  scaleOnHover={1.06}\n                  initialScale={1.05}\n                  glareOpacity={0.3}\n                  showShadow={false}\n                  className=\"w-full h-full\"\n                  innerClassName=\"rounded-lg cursor-default\"\n                  glareClassName=\"rounded-lg\"\n                >\n                  <div\n                    className={cn(\n                      \"relative rounded-lg p-6 sm:p-8 flex flex-col justify-between transition-all duration-300 bg-background w-full h-full border-2 shadow-none hover:shadow-lg\",\n                      theme.border,\n                    )}\n                  >\n                    {cardBody}\n                  </div>\n                </TiltedCard>\n              </div>\n            );\n          }\n\n          return (\n            <div\n              key={plan.id}\n              className={cn(\n                \"relative rounded-lg p-6 sm:p-8 flex flex-col justify-between transition-all duration-300 bg-background\",\n                variant === \"default\" && \"border border-border shadow-none hover:shadow-lg\",\n                variant === \"elegant\" &&\n                  (isPopular\n                    ? cn(\"border border-border border-t-4\", theme.border, \"shadow-lg\")\n                    : \"border border-border hover:shadow-lg\"),\n                variant === \"minimal\" &&\n                  (isPopular\n                    ? cn(\"border-2\", theme.border, \"shadow-sm z-10\")\n                    : \"border-0 shadow-none bg-transparent\"),\n                variant === \"bordered\" &&\n                  (isPopular\n                    ? cn(\n                        \"border-2\",\n                        theme.border,\n                        \"shadow-[6px_6px_0px_0px_rgba(0,0,0,1)] dark:shadow-[6px_6px_0px_0px_rgba(255,255,255,1)] hover:shadow-[10px_10px_0px_0px_rgba(0,0,0,1)] dark:hover:shadow-[10px_10px_0px_0px_rgba(255,255,255,1)] hover:-translate-x-1 hover:-translate-y-1 z-10\",\n                      )\n                    : \"border-2 border-foreground shadow-[4px_4px_0px_0px_rgba(0,0,0,1)] dark:shadow-[4px_4px_0px_0px_rgba(255,255,255,1)] hover:shadow-[8px_8px_0px_0px_rgba(0,0,0,1)] dark:hover:shadow-[8px_8px_0px_0px_rgba(255,255,255,1)] hover:-translate-x-1 hover:-translate-y-1\"),\n              )}\n            >\n              {cardBody}\n            </div>\n          );\n        })}\n      </div>\n    </div>\n  );\n}\n\n// ==========================================\n// 2. PRICING BUILDER (QUOTE BUILDER)\n// ==========================================\nexport interface PricingBuilderModule {\n  id: string;\n  name: string;\n  price: number;\n}\n\nexport interface PricingBuilderProps {\n  variant?: PricingVariant;\n  badgeText?: string;\n  title?: string;\n  subtitle?: string;\n  basePrice?: number;\n  modules?: PricingBuilderModule[];\n  defaultSelected?: string[];\n  buttonText?: string;\n  color?: PricingColor;\n  counting?: boolean;\n  className?: string;\n}\n\nconst DEFAULT_BUILDER_MODULES: PricingBuilderModule[] = [\n  { id: \"auth\", name: \"User Authentication\", price: 15 },\n  { id: \"db\", name: \"Database Storage\", price: 25 },\n  { id: \"analytics\", name: \"Advanced Analytics\", price: 35 },\n  { id: \"support\", name: \"24/7 SLA Support\", price: 50 },\n  { id: \"domain\", name: \"Custom Domain & SSL\", price: 10 },\n];\n\nexport function PricingBuilder({\n  badgeText = \"Modular Stack\",\n  title = \"Custom Quote Builder\",\n  subtitle = \"Select only the modules you need for your project.\",\n  basePrice = 29,\n  modules = DEFAULT_BUILDER_MODULES,\n  defaultSelected = [\"auth\", \"db\"],\n  buttonText = \"Deploy Custom Stack\",\n  color = \"primary\",\n  counting = true,\n  className,\n}: PricingBuilderProps) {\n  const [selectedModules, setSelectedModules] = useState<string[]>(defaultSelected);\n  const { theme, style } = getThemeStyles(color);\n\n  const toggleModule = (id: string) => {\n    setSelectedModules((prev) =>\n      prev.includes(id) ? prev.filter((m) => m !== id) : [...prev, id],\n    );\n  };\n\n  const totalPrice = selectedModules.reduce((acc, curr) => {\n    const mod = modules.find((m) => m.id === curr);\n    return acc + (mod?.price || 0);\n  }, basePrice);\n\n  return (\n    <div\n      className={cn(\"w-full h-full max-w-4xl mx-auto p-6 sm:p-10 bg-background border border-border rounded-lg shadow-sm\", className)}\n      style={style}\n    >\n      <div className=\"text-center space-y-2.5 mb-8 sm:mb-12 max-w-xl mx-auto\">\n        {badgeText && (\n          <div\n            className={cn(\n              \"inline-flex items-center gap-1.5 px-3 py-1 rounded-md border border-dashed text-[11px] font-mono font-semibold uppercase tracking-widest\",\n              theme.border,\n              theme.text,\n              theme.bgSoft,\n            )}\n          >\n            <Code2 className=\"w-3.5 h-3.5 shrink-0\" />\n            <span>{badgeText}</span>\n          </div>\n        )}\n        <h3 className=\"text-2xl sm:text-3xl md:text-4xl font-semibold tracking-tight text-foreground\">\n          {title}\n        </h3>\n        <p className=\"text-sm sm:text-base text-muted-foreground leading-relaxed\">\n          {subtitle}\n        </p>\n      </div>\n\n      <div className=\"grid grid-cols-1 md:grid-cols-2 gap-8 items-start\">\n        <div className=\"space-y-3\">\n          {modules.map((mod) => {\n            const isSelected = selectedModules.includes(mod.id);\n            return (\n              <div\n                key={mod.id}\n                onClick={() => toggleModule(mod.id)}\n                className={cn(\n                  \"p-4 rounded-lg border transition-all cursor-pointer flex items-center justify-between\",\n                  isSelected\n                    ? cn(theme.border, theme.bgSoft, \"shadow-sm\")\n                    : \"border-border bg-background hover:bg-muted/50\",\n                )}\n              >\n                <div className=\"flex items-center gap-3\">\n                  <div\n                    className={cn(\n                      \"w-5 h-5 rounded-md border flex items-center justify-center transition-all\",\n                      isSelected\n                        ? cn(theme.bg, theme.border)\n                        : \"border-muted-foreground/40\",\n                    )}\n                  >\n                    {isSelected && <Check className=\"w-3.5 h-3.5 text-[var(--pricing-on,white)]\" />}\n                  </div>\n                  <span className=\"font-semibold text-sm sm:text-base text-foreground\">\n                    {mod.name}\n                  </span>\n                </div>\n                <span className=\"font-semibold text-sm text-foreground\">\n                  +${mod.price}/mo\n                </span>\n              </div>\n            );\n          })}\n        </div>\n\n        <div className=\"bg-muted/40 p-6 sm:p-8 rounded-lg border border-border flex flex-col justify-between h-full min-h-[300px]\">\n          <div>\n            <span className=\"text-xs font-semibold uppercase tracking-wider text-muted-foreground mb-2 block\">\n              Estimated Total\n            </span>\n            <div className=\"flex items-baseline gap-1 mb-6\">\n              <span className=\"text-5xl sm:text-6xl font-bold text-foreground\">\n                <AnimatedPrice value={totalPrice} counting={counting} />\n              </span>\n              <span className=\"text-muted-foreground font-medium\">/month</span>\n            </div>\n            <p className=\"text-xs text-muted-foreground leading-relaxed mb-6\">\n              Base tier includes core infrastructure (${basePrice}/mo). Cancel or alter your plan modules anytime.\n            </p>\n          </div>\n\n          <Button\n            variant=\"pricing-primary\"\n            className={cn(\"w-full shadow-md\", theme.bg)}\n          >\n            {buttonText}\n          </Button>\n        </div>\n      </div>\n    </div>\n  );\n}\n\n// ==========================================\n// 3. PRICING TABLE (COMPARISON)\n// ==========================================\nexport interface TableFeature {\n  name: string;\n  values: (string | boolean)[];\n  helpText?: string;\n}\nexport interface TableSection {\n  title: string;\n  features: TableFeature[];\n}\nexport interface PricingTableData {\n  plans: {\n    id: string;\n    title: string;\n    price: string;\n    buttonText: string;\n    featured?: boolean;\n  }[];\n  sections: TableSection[];\n}\n\nexport interface PricingTableProps {\n  variant?: PricingVariant;\n  badgeText?: string;\n  title?: string;\n  subtitle?: string;\n  data: PricingTableData;\n  color?: PricingColor;\n  counting?: boolean;\n  linkComponent?: React.ElementType;\n}\n\nexport function PricingTable({\n  badgeText = \"Feature Matrix\",\n  title = \"Compare every plan in detail\",\n  subtitle = \"Inspect limits, security controls, and support SLAs side by side across all tiers.\",\n  data,\n  color = \"primary\",\n  counting = true,\n}: PricingTableProps) {\n  const { theme, style } = getThemeStyles(color);\n  const renderFeatureValue = (value: string | boolean) => {\n    if (value === true)\n      return <Check className={cn(\"w-5 h-5 mx-auto\", theme.text)} />;\n    if (value === false)\n      return (\n        <Minus className=\"w-5 h-5 text-muted-foreground/40 mx-auto\" />\n      );\n    return (\n      <span className=\"text-sm font-medium text-foreground\">\n        {value}\n      </span>\n    );\n  };\n\n  const FeatureLabel = ({ feature }: { feature: TableFeature }) => (\n    <>\n      {feature.name}\n      {feature.helpText && (\n        <span className=\"group relative cursor-help\">\n          <HelpCircle className=\"w-3.5 h-3.5 text-muted-foreground\" />\n          <span className=\"absolute left-1/2 -translate-x-1/2 bottom-full mb-2 w-48 p-2 bg-popover text-popover-foreground border border-border shadow-md text-xs rounded-md opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-10 text-center block\">\n            {feature.helpText}\n          </span>\n        </span>\n      )}\n    </>\n  );\n\n  return (\n    <div className=\"@container/pricing w-full h-full\" style={style}>\n      <div className=\"flex flex-col gap-6 @min-[52rem]/pricing:hidden w-full h-full\">\n        {(badgeText || title || subtitle) && (\n          <div className=\"p-6 rounded-lg border border-border bg-background shadow-sm space-y-2.5 text-left\">\n            {badgeText && (\n              <div className=\"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md bg-muted border border-border text-[11px] font-semibold uppercase tracking-wider text-foreground\">\n                <CheckCircle2 className={cn(\"w-3.5 h-3.5\", theme.text)} />\n                <span>{badgeText}</span>\n              </div>\n            )}\n            {title && (\n              <h3 className=\"text-2xl font-bold tracking-tight text-foreground\">\n                {title}\n              </h3>\n            )}\n            {subtitle && (\n              <p className=\"text-sm text-muted-foreground leading-relaxed\">\n                {subtitle}\n              </p>\n            )}\n          </div>\n        )}\n        {data.plans.map((plan, pIdx) => (\n          <div\n            key={plan.id}\n            className={cn(\n              \"overflow-hidden rounded-lg border bg-background shadow-sm\",\n              plan.featured\n                ? theme.border\n                : \"border-border\",\n            )}\n          >\n            <div\n              className={cn(\n                \"p-6 border-b border-border\",\n                plan.featured\n                  ? theme.bgSoft\n                  : \"bg-muted\",\n              )}\n            >\n              <h4\n                className={cn(\n                  \"text-lg font-semibold\",\n                  plan.featured ? theme.text : \"text-foreground\",\n                )}\n              >\n                {plan.title}\n              </h4>\n              <div className=\"text-3xl font-bold text-foreground mb-5\">\n                {plan.price.startsWith(\"$\") ? \"$\" : \"\"}\n                <AnimatedPrice value={plan.price} counting={counting} />\n              </div>\n              <Button\n                variant={plan.featured ? \"pricing-glow\" : \"pricing-outline\"}\n                className={cn(\"w-full\", plan.featured && theme.bg)}\n              >\n                {plan.buttonText}\n              </Button>\n            </div>\n            {data.sections.map((section, sIdx) => (\n              <div key={sIdx}>\n                <div className=\"px-6 py-2.5 bg-muted/80 border-b border-border font-semibold text-xs text-foreground uppercase tracking-wider\">\n                  {section.title}\n                </div>\n                {section.features.map((feature, fIdx) => (\n                  <div\n                    key={fIdx}\n                    className=\"px-6 py-3 flex items-center justify-between gap-4 border-b border-border last:border-b-0\"\n                  >\n                    <span className=\"flex items-center gap-2 text-sm text-muted-foreground min-w-0\">\n                      <FeatureLabel feature={feature} />\n                    </span>\n                    <span className=\"shrink-0\">\n                      {renderFeatureValue(feature.values[pIdx])}\n                    </span>\n                  </div>\n                ))}\n              </div>\n            ))}\n          </div>\n        ))}\n      </div>\n\n      <div className=\"hidden @min-[52rem]/pricing:block w-full h-full overflow-hidden border border-border rounded-lg bg-background shadow-sm\">\n        {(badgeText || title || subtitle) && (\n          <div className=\"px-6 py-6 bg-card border-b border-border flex flex-col sm:flex-row sm:items-end justify-between gap-4\">\n            <div className=\"space-y-2 max-w-2xl\">\n              {badgeText && (\n                <div className=\"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md bg-muted border border-border text-[11px] font-semibold uppercase tracking-wider text-foreground\">\n                  <CheckCircle2 className={cn(\"w-3.5 h-3.5\", theme.text)} />\n                  <span>{badgeText}</span>\n                </div>\n              )}\n              {title && (\n                <h2 className=\"text-2xl sm:text-3xl font-bold tracking-tight text-foreground leading-tight\">\n                  {title}\n                </h2>\n              )}\n              {subtitle && (\n                <p className=\"text-sm text-muted-foreground leading-relaxed\">\n                  {subtitle}\n                </p>\n              )}\n            </div>\n          </div>\n        )}\n        <div className=\"w-full h-full overflow-x-auto\">\n          <div className=\"w-full h-full min-w-[800px]\">\n            <div className=\"grid grid-cols-4 bg-muted border-b border-border\">\n              <div className=\"p-6 flex items-end\">\n                <h3 className=\"font-semibold text-xl text-foreground\">\n                  Compare Plans\n                </h3>\n              </div>\n              {data.plans.map((plan) => (\n                <div\n                  key={plan.id}\n                  className={cn(\n                    \"p-6 text-center border-l border-border relative\",\n                    plan.featured ? theme.bgSoft : \"\",\n                  )}\n                >\n                  {plan.featured && (\n                    <div\n                      className={cn(\"absolute top-0 left-0 w-full h-1\", theme.bg)}\n                    />\n                  )}\n                  <h4\n                    className={cn(\n                      \"text-lg font-semibold mb-2\",\n                      plan.featured\n                        ? theme.text\n                        : \"text-foreground\",\n                    )}\n                  >\n                    {plan.title}\n                  </h4>\n                  <div className=\"text-3xl font-bold text-foreground mb-6\">\n                    {plan.price.startsWith(\"$\") ? \"$\" : \"\"}\n                    <AnimatedPrice value={plan.price} counting={counting} />\n                  </div>\n                  <Button\n                    variant={plan.featured ? \"pricing-glow\" : \"pricing-outline\"}\n                    className={cn(\"w-full\", plan.featured && theme.bg)}\n                  >\n                    {plan.buttonText}\n                  </Button>\n                </div>\n              ))}\n            </div>\n            {data.sections.map((section, sIdx) => (\n              <div key={sIdx}>\n                <div className=\"grid grid-cols-4 bg-muted/80 border-b border-border\">\n                  <div className=\"p-4 font-semibold text-sm text-foreground uppercase tracking-wider\">\n                    {section.title}\n                  </div>\n                  <div className=\"border-l border-border\"></div>\n                  <div className=\"border-l border-border\"></div>\n                  <div className=\"border-l border-border\"></div>\n                </div>\n                {section.features.map((feature, fIdx) => (\n                  <div\n                    key={fIdx}\n                    className=\"grid grid-cols-4 border-b border-border transition-colors\"\n                  >\n                    <div className=\"p-4 flex items-center gap-2 text-sm text-muted-foreground\">\n                      <FeatureLabel feature={feature} />\n                    </div>\n                    {feature.values.map((val, vIdx) => (\n                      <div\n                        key={vIdx}\n                        className={cn(\n                          \"p-4 flex items-center justify-center border-l border-border\",\n                          data.plans[vIdx].featured ? theme.bgSoft : \"\",\n                        )}\n                      >\n                        {renderFeatureValue(val)}\n                      </div>\n                    ))}\n                  </div>\n                ))}\n              </div>\n            ))}\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n}\n\n// ==========================================\n// 4. USAGE SLIDER\n// ==========================================\nexport interface PricingSliderProps {\n  variant?: PricingVariant;\n  badgeText?: string;\n  title?: string;\n  subtitle?: string;\n  basePrice?: number;\n  pricePerStep?: number;\n  minViews?: string;\n  maxViews?: string;\n  buttonText?: string;\n  color?: PricingColor;\n  counting?: boolean;\n  className?: string;\n}\n\nexport function PricingSlider({\n  badgeText = \"Pay As You Grow\",\n  title = \"Usage Based Pricing\",\n  subtitle = \"Scale your pricing as your traffic grows.\",\n  basePrice = 29,\n  pricePerStep = 10,\n  minViews = \"10k Views\",\n  maxViews = \"1M+ Views\",\n  buttonText = \"Start 14-Day Free Trial\",\n  color = \"primary\",\n  counting = true,\n  className,\n}: PricingSliderProps) {\n  const [value, setValue] = useState(5);\n  const { theme, style } = getThemeStyles(color);\n  const calculatedPrice = basePrice + value * pricePerStep;\n  const pageviews =\n    value === 0 ? \"10k\" : value === 10 ? \"1M+\" : `${value * 100}k`;\n  const percentage = (value / 10) * 100;\n\n  return (\n    <div\n      className={cn(\"w-full h-full max-w-4xl mx-auto p-5 sm:p-8 md:p-12 bg-background border border-border rounded-lg shadow-sm text-center\", className)}\n      style={style}\n    >\n      {badgeText && (\n        <div className=\"inline-flex items-center gap-2 px-3 py-1 rounded-md bg-muted/80 border border-border text-[11px] font-semibold uppercase tracking-[0.14em] text-foreground mb-3\">\n          <span className=\"inline-flex items-end gap-0.5 h-3\">\n            <span className={cn(\"w-1 h-1.5 rounded-xs opacity-50\", theme.bg)} />\n            <span className={cn(\"w-1 h-2.5 rounded-xs opacity-80\", theme.bg)} />\n            <span className={cn(\"w-1 h-3 rounded-xs\", theme.bg)} />\n          </span>\n          <span>{badgeText}</span>\n        </div>\n      )}\n      <h3 className=\"text-2xl sm:text-3xl md:text-4xl font-semibold tracking-tight text-foreground mb-2\">\n        {title}\n      </h3>\n      <p className=\"text-sm sm:text-base text-muted-foreground mb-6 sm:mb-10 max-w-lg mx-auto leading-relaxed\">\n        {subtitle}\n      </p>\n      <div className=\"mb-6 sm:mb-12\">\n        <div className=\"text-[52px] sm:text-[80px] font-bold tracking-tighter leading-none text-foreground mb-2\">\n          $<AnimatedPrice value={calculatedPrice} counting={counting} />\n        </div>\n        <p className=\"text-muted-foreground font-medium tracking-wide uppercase text-xs sm:text-sm\">\n          Per Month\n        </p>\n      </div>\n      <div className=\"relative mb-6 sm:mb-12\">\n        <div className=\"flex justify-between items-center text-xs sm:text-sm font-semibold text-muted-foreground mb-4 px-1 uppercase tracking-widest\">\n          <span>{minViews}</span>\n          <span className={cn(\"font-extrabold px-3 py-1 rounded-lg border border-border bg-muted/50 shadow-2xs transition-colors\", theme.text)}>\n            {pageviews} Views\n          </span>\n          <span>{maxViews}</span>\n        </div>\n        \n        {/* Modern Custom Range Slider */}\n        <div className=\"relative flex items-center h-8 w-full group touch-none\">\n          {/* Custom Track Background */}\n          <div className=\"absolute inset-x-0 h-3 rounded-full bg-muted overflow-hidden pointer-events-none\">\n            <div\n              className={cn(\"h-full transition-all duration-75 rounded-full\", theme.bg)}\n              style={{ width: `${percentage}%` }}\n            />\n          </div>\n\n          {/* Invisible Range Input Overlay */}\n          <input\n            type=\"range\"\n            min=\"0\"\n            max=\"10\"\n            step=\"1\"\n            value={value}\n            onChange={(e) => setValue(parseInt(e.target.value, 10))}\n            className=\"absolute inset-0 w-full h-full opacity-0 cursor-pointer z-20\"\n            aria-label=\"Usage pageviews volume\"\n          />\n\n          {/* Custom Thumb Handle */}\n          <div\n            className={cn(\n              \"absolute top-1/2 -translate-y-1/2 size-6 rounded-full bg-background border-2 shadow-md pointer-events-none transition-transform duration-75 group-hover:scale-110 flex items-center justify-center z-10\",\n              theme.border\n            )}\n            style={{ left: `calc(${percentage}% - 12px)` }}\n          >\n            <div className={cn(\"size-2.5 rounded-full\", theme.bg)} />\n          </div>\n        </div>\n      </div>\n      <Button\n        variant=\"pricing-primary\"\n        className={cn(\n          \"w-full py-3.5 sm:py-4 rounded-lg font-semibold text-sm sm:text-base transition-all cursor-pointer shadow-lg\",\n          theme.bg,\n        )}\n      >\n        {buttonText}\n      </Button>\n      <p className=\"text-xs text-muted-foreground mt-3 sm:mt-4\">\n        No credit card required. Cancel anytime.\n      </p>\n    </div>\n  );\n}\n\n// ==========================================\n// 5. TYPOGRAPHIC MENU\n// ==========================================\nexport interface PricingTypographicPlan {\n  id: string | number;\n  name: string;\n  price: string | number;\n  description: string;\n  features: string[];\n  isFeatured: boolean;\n  billingCycle?: \"monthly\" | \"yearly\" | string;\n}\n\n/** Plans already split by billing cycle, optionally one level down. */\nexport interface PricingTypographicGroups {\n  monthly?: PricingTypographicPlan[];\n  yearly?: PricingTypographicPlan[];\n  packages?: PricingTypographicGroups;\n  data?: PricingTypographicGroups;\n}\n\n/**\n * Either a flat list, where each plan carries its own `billingCycle`, or a\n * grouped object. Both are accepted; the block sorts it out.\n */\nexport type PricingTypographicPackages =\n  | PricingTypographicPlan[]\n  | PricingTypographicGroups;\n\nexport interface PricingTypographicProps {\n  variant?: PricingVariant;\n  packages: PricingTypographicPackages;\n  color?: PricingColor;\n  counting?: boolean;\n  linkComponent?: React.ElementType;\n}\n\nexport function PricingTypographic({\n  packages,\n  color = \"primary\",\n  counting = true,\n  linkComponent: LinkComp = \"a\",\n}: PricingTypographicProps) {\n  const [billingCycle, setBillingCycle] = useState<\"monthly\" | \"yearly\">(\n    \"monthly\",\n  );\n  const [selectedPlanId, setSelectedPlanId] = useState<string | number | null>(\n    null,\n  );\n  const { theme, style } = getThemeStyles(color);\n\n  let monthlyPlans: PricingTypographicPlan[] = [];\n  let yearlyPlans: PricingTypographicPlan[] = [];\n\n  if (Array.isArray(packages)) {\n    monthlyPlans = packages.filter(\n      (p) => p.billingCycle?.toLowerCase() === \"monthly\",\n    );\n    yearlyPlans = packages.filter(\n      (p) => p.billingCycle?.toLowerCase() === \"yearly\",\n    );\n  } else if (packages && typeof packages === \"object\") {\n    monthlyPlans =\n      packages.monthly ||\n      packages.packages?.monthly ||\n      packages.data?.monthly ||\n      [];\n    yearlyPlans =\n      packages.yearly ||\n      packages.packages?.yearly ||\n      packages.data?.yearly ||\n      [];\n  }\n\n  const activePlans = billingCycle === \"monthly\" ? monthlyPlans : yearlyPlans;\n  const hasYearlyPlans = yearlyPlans.length > 0;\n\n  const defaultPlan =\n    activePlans.find((p) => p.isFeatured) ?? activePlans[0] ?? null;\n  const activePlanId =\n    selectedPlanId ?? (defaultPlan ? defaultPlan.id : null);\n\n  const activePlan =\n    activePlans.find((p) => p.id === activePlanId) || activePlans[0];\n\n  const handleToggleCycle = (cycle: \"monthly\" | \"yearly\") => {\n    setBillingCycle(cycle);\n    const newPlans = cycle === \"monthly\" ? monthlyPlans : yearlyPlans;\n    if (newPlans.length > 0) {\n      const newFeatured = newPlans.find((p) => p.isFeatured) || newPlans[0];\n      setSelectedPlanId(newFeatured.id);\n    }\n  };\n\n  if (!packages) {\n    return (\n      <section className=\"py-16 sm:py-32 bg-background flex justify-center items-center min-h-[300px] sm:min-h-[500px] rounded-lg border border-border\">\n        <div\n          className={cn(\n            \"w-8 h-8 border-4 border-t-transparent rounded-full animate-spin\",\n            theme.border,\n          )}\n        />\n      </section>\n    );\n  }\n\n  if (!activePlans.length) {\n    return (\n      <section className=\"py-16 sm:py-32 bg-background text-center text-muted-foreground text-sm font-mono rounded-lg border border-border\">\n        No pricing plans available.\n      </section>\n    );\n  }\n\n  return (\n    <section\n      style={{\n        ...style,\n        backgroundColor: \"color-mix(in srgb, var(--pricing-accent, currentColor) 3%, var(--background, transparent))\",\n      }}\n      className={cn(\n        \"py-8 sm:py-16 md:py-24 px-4 sm:px-6 text-foreground font-sans antialiased overflow-hidden rounded-lg border border-border w-full h-full transition-colors duration-300 relative\",\n        \"selection:bg-[var(--pricing-accent)] selection:text-[var(--pricing-on)]\",\n      )}\n    >\n      <style\n        dangerouslySetInnerHTML={{\n          __html: `\n        .outline-text {\n          color: transparent;\n          -webkit-text-stroke: 1px color-mix(in srgb, var(--foreground) 25%, transparent);\n          transition: -webkit-text-stroke 0.3s ease;\n        }\n        .group:hover .outline-text {\n          -webkit-text-stroke: 1px color-mix(in srgb, var(--foreground) 70%, transparent);\n        }\n      `,\n        }}\n      />\n\n      <div className=\"max-w-[1300px] mx-auto px-1 sm:px-6\">\n        <div className=\"flex flex-col md:flex-row justify-between items-start md:items-end gap-6 sm:gap-8 mb-8 sm:mb-16 lg:mb-20\">\n          <div className=\"max-w-xl\">\n            <h2 className={cn(\"text-xs font-mono mb-2 sm:mb-4\", theme.text)}>\n              <span className=\"flex items-center gap-3 justify-start\">\n                <span\n                  className={cn(\"w-2 h-2 rounded-full animate-pulse\", theme.bg)}\n                />\n                Pricing\n              </span>\n            </h2>\n            <h3 className=\"text-3xl sm:text-4xl md:text-5xl lg:text-6xl font-bold tracking-tighter leading-none mb-3 sm:mb-5 text-foreground\">\n              Pricing Model.\n            </h3>\n            <p className=\"text-muted-foreground text-sm sm:text-lg md:text-xl font-medium leading-relaxed\">\n              Transparent, value-driven pricing designed for high-growth brands.\n              Select a tier to explore what&apos;s included.\n            </p>\n          </div>\n\n          {hasYearlyPlans && (\n            // The library's ToggleGroup in single mode. Re-clicking the active\n            // cycle would clear it, so an empty value is ignored — one of the\n            // two is always chosen.\n            <ToggleGroup\n              type=\"single\"\n              size=\"sm\"\n              color={color}\n              value={billingCycle}\n              onValueChange={(cycle) => {\n                if (cycle) handleToggleCycle(cycle as \"monthly\" | \"yearly\");\n              }}\n              aria-label=\"Billing cycle\"\n              className=\"shrink-0 rounded-lg\"\n            >\n              {([\"monthly\", \"yearly\"] as const).map((cycle) => (\n                <ToggleGroupItem\n                  key={cycle}\n                  value={cycle}\n                  className=\"font-semibold uppercase tracking-widest rounded-md\"\n                >\n                  {cycle}\n                </ToggleGroupItem>\n              ))}\n            </ToggleGroup>\n          )}\n        </div>\n\n        {/* DESKTOP CANVAS */}\n        <div className=\"hidden lg:flex w-full border-t border-border min-h-[550px] transition-colors duration-300\">\n          {/* LEFT: NAVIGATION */}\n          <div className=\"w-[45%] border-r border-border py-12 pr-8 flex flex-col justify-center gap-6 transition-colors duration-300\">\n            {activePlans.map((plan) => {\n              const isActive = activePlanId === plan.id;\n              return (\n                <button\n                  key={plan.id}\n                  onMouseEnter={() => setSelectedPlanId(plan.id)}\n                  onClick={() => setSelectedPlanId(plan.id)}\n                  className=\"group flex flex-col items-start text-left w-full py-4 pr-4 cursor-pointer\"\n                >\n                  <div\n                    className={cn(\n                      \"flex flex-col items-start transition-all duration-500 ease-[cubic-bezier(0.16,1,0.3,1)] transform-gpu\",\n                      isActive\n                        ? \"translate-x-6 sm:translate-x-8 scale-[1.02]\"\n                        : \"group-hover:translate-x-3\"\n                    )}\n                  >\n                    {plan.isFeatured && (\n                      <span\n                        className={cn(\n                          \"inline-flex items-center gap-1.5 px-3 py-1 rounded-lg text-[10px] font-mono tracking-widest uppercase font-extrabold border transition-all duration-300 mb-2.5 shadow-2xs\",\n                          isActive\n                            ? cn(theme.bgSoft, theme.border, theme.text)\n                            : \"border-border bg-muted/60 text-muted-foreground group-hover:border-primary/40 group-hover:text-foreground\",\n                        )}\n                      >\n                        <span className=\"text-[11px]\">✦</span> Most Popular\n                      </span>\n                    )}\n                    <span\n                      className={cn(\n                        \"text-4xl lg:text-5xl xl:text-[4rem] font-bold uppercase tracking-tighter leading-[0.85] break-words whitespace-normal inline-block transition-colors duration-300\",\n                        isActive\n                          ? theme.text\n                          : \"outline-text group-hover:text-foreground/80\",\n                      )}\n                    >\n                      {plan.name}\n                    </span>\n                  </div>\n                </button>\n              );\n            })}\n          </div>\n\n          {/* RIGHT: CONTENT */}\n          <div className=\"w-[55%] py-12 pl-12 xl:pl-16 relative overflow-hidden flex flex-col\">\n            {activePlan && (\n              <div\n                key={activePlan.id}\n                className=\"animate-in fade-in slide-in-from-right-8 duration-700 fill-mode-both flex flex-col h-full z-10 relative\"\n              >\n                {activePlan.isFeatured && (\n                  <div\n                    className={cn(\n                      \"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[400px] h-[400px] blur-[100px] rounded-full pointer-events-none\",\n                      theme.bgSoft,\n                    )}\n                  />\n                )}\n\n                <div className=\"absolute right-2 -top-6 text-[110px] xl:text-[145px] font-bold text-foreground/[0.03] pointer-events-none select-none tracking-tighter leading-none transition-colors duration-300 max-w-full overflow-hidden text-right\">\n                  $<AnimatedPrice key={`wm-${activePlan.id}-${activePlan.price}`} value={activePlan.price} counting={counting} />\n                </div>\n\n                <div className=\"mb-12 relative z-10\">\n                  {activePlan.isFeatured && (\n                    <div\n                      className={cn(\n                        \"inline-flex items-center gap-1.5 px-3 py-1 text-[10px] font-semibold uppercase tracking-widest mb-4 rounded-lg border\",\n                        theme.bgSoft,\n                        theme.border,\n                        theme.text,\n                      )}\n                    >\n                      <Star className={cn(\"w-3 h-3\", theme.fill)} />\n                      Recommended\n                    </div>\n                  )}\n\n                  <div className=\"flex items-end gap-2 mb-4\">\n                    <span className=\"text-3xl font-semibold text-muted-foreground mb-2\">\n                      $\n                    </span>\n                    <span className=\"text-[70px] xl:text-[90px] leading-none font-bold tracking-tighter text-foreground\">\n                      <AnimatedPrice key={`main-${activePlan.id}-${activePlan.price}`} value={activePlan.price} counting={counting} />\n                    </span>\n                  </div>\n                  <p className=\"text-lg text-muted-foreground max-w-md leading-relaxed\">\n                    {activePlan.description}\n                  </p>\n                </div>\n\n                <div className=\"grid grid-cols-2 gap-x-10 gap-y-5 mb-14 relative z-10\">\n                  {activePlan.features.map((feature: string, i: number) => (\n                    <div\n                      key={i}\n                      className=\"flex items-center gap-3 border-b border-border pb-3 group/feat transition-colors duration-300\"\n                    >\n                      <div\n                        className={cn(\n                          \"w-1.5 h-1.5 bg-foreground/20 rounded-full transition-colors shrink-0\",\n                          \"group-hover/feat:bg-[var(--pricing-accent)]\",\n                        )}\n                      />\n                      <span className=\"text-sm lg:text-base text-muted-foreground group-hover/feat:text-foreground transition-colors\">\n                        {feature}\n                      </span>\n                    </div>\n                  ))}\n                </div>\n\n                <LinkComp\n                  href=\"#\"\n                  className=\"no-underline inline-block mt-auto z-10\"\n                >\n                  <Button\n                    variant={activePlan.isFeatured ? \"pricing-typographic\" : \"pricing-typographic-muted\"}\n                    showArrow\n                    className={cn(\n                      \"w-max\",\n                      activePlan.isFeatured && theme.bg,\n                    )}\n                  >\n                    Initiate Project\n                  </Button>\n                </LinkComp>\n              </div>\n            )}\n          </div>\n        </div>\n\n        {/* MOBILE FALLBACK */}\n        <div className=\"flex flex-col lg:hidden border-t border-border transition-colors duration-300\">\n          {activePlans.map((plan) => {\n            const isActive = activePlanId === plan.id;\n            return (\n              <div\n                key={plan.id}\n                className=\"border-b border-border transition-colors duration-300\"\n              >\n                <button\n                  onClick={() => setSelectedPlanId(isActive ? null : plan.id)}\n                  className=\"w-full py-6 md:py-8 flex justify-between items-center text-left\"\n                >\n                  <div className=\"flex flex-col pr-4\">\n                    {plan.isFeatured && (\n                      <span\n                        className={cn(\n                          \"inline-flex items-center gap-1.5 px-2.5 py-0.5 rounded-lg text-[9px] font-mono tracking-widest uppercase font-extrabold border transition-all duration-300 mb-1.5 w-max\",\n                          isActive\n                            ? cn(theme.bgSoft, theme.border, theme.text)\n                            : \"border-border bg-muted/60 text-muted-foreground\",\n                        )}\n                      >\n                        ✦ Most Popular\n                      </span>\n                    )}\n                    <span\n                      className={cn(\n                        \"text-3xl md:text-4xl font-bold uppercase tracking-tighter leading-[0.9] break-words whitespace-normal transition-colors duration-300\",\n                        isActive ? theme.text : \"outline-text\",\n                      )}\n                    >\n                      {plan.name}\n                    </span>\n                  </div>\n                  <div\n                    className={cn(\n                      \"transition-transform duration-500 shrink-0\",\n                      isActive\n                        ? cn(\"rotate-90\", theme.text)\n                        : \"text-foreground/30\",\n                    )}\n                  >\n                    <ArrowRight size={24} strokeWidth={2} />\n                  </div>\n                </button>\n\n                <div\n                  className={`grid transition-all duration-500 ease-[cubic-bezier(0.16,1,0.3,1)] ${\n                    isActive\n                      ? \"grid-rows-[1fr] opacity-100\"\n                      : \"grid-rows-[0fr] opacity-0\"\n                  }`}\n                >\n                  <div className=\"overflow-hidden\">\n                    <div className=\"pb-8 pt-2 flex flex-col relative\">\n                      {plan.isFeatured && (\n                        <div\n                          className={cn(\n                            \"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full h-[200px] blur-[80px] rounded-full pointer-events-none\",\n                            theme.bgSoft,\n                          )}\n                        />\n                      )}\n\n                      <div className=\"flex items-end gap-1.5 mb-3 relative z-10\">\n                        <span className=\"text-xl font-semibold text-muted-foreground mb-1.5\">\n                          $\n                        </span>\n                        <span className=\"text-5xl md:text-6xl font-bold tracking-tighter text-foreground\">\n                          <AnimatedPrice key={`mob-${plan.id}-${plan.price}`} value={plan.price} counting={counting} />\n                        </span>\n                      </div>\n\n                      <p className=\"text-muted-foreground text-sm md:text-base leading-relaxed mb-8 relative z-10\">\n                        {plan.description}\n                      </p>\n\n                      <div className=\"flex flex-col gap-3 mb-8 relative z-10\">\n                        {plan.features.map((feature: string, i: number) => (\n                          <div\n                            key={i}\n                            className=\"flex items-start gap-3 border-b border-border pb-3\"\n                          >\n                            <div\n                              className={cn(\n                                \"w-1.5 h-1.5 rounded-full mt-1.5 shrink-0\",\n                                theme.bg,\n                              )}\n                            />\n                            <span className=\"text-sm md:text-base text-foreground\">\n                              {feature}\n                            </span>\n                          </div>\n                        ))}\n                      </div>\n\n                      <LinkComp\n                        href=\"#\"\n                        className=\"no-underline w-full block z-10\"\n                      >\n                        <Button\n                          variant={plan.isFeatured ? \"pricing-typographic\" : \"pricing-typographic-muted\"}\n                          showArrow\n                          className={cn(\n                            \"w-full justify-center\",\n                            plan.isFeatured && theme.bg,\n                          )}\n                        >\n                          Initiate Project\n                        </Button>\n                      </LinkComp>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            );\n          })}\n        </div>\n      </div>\n    </section>\n  );\n}\n\n// ==========================================\n// 6. PRICING PLANS (INTERACTIVE CHECKLIST)\n// ==========================================\nexport interface PricingServiceOption {\n  id: string;\n  name: string;\n  description: string;\n  price: number;\n  icon?: string | React.ReactNode;\n  tag?: string;\n  features?: string[];\n}\n\nexport interface PricingPlansProps {\n  variant?: PricingVariant;\n  badgeText?: string;\n  title?: string;\n  subtitle?: string;\n  highlightText?: string;\n  brandTitle?: string;\n  brandSubtitle?: string;\n  brandDescription?: string;\n  services?: PricingServiceOption[];\n  defaultActiveIds?: string[];\n  ctaText?: string;\n  ctaHref?: string;\n  color?: PricingColor;\n  counting?: boolean;\n  linkComponent?: React.ElementType;\n}\n\nconst defaultPlansServices: PricingServiceOption[] = [\n  {\n    id: \"design\",\n    name: \"Design\",\n    description: \"Top-notch custom design\",\n    price: 300,\n    icon: \"PenTool\",\n    features: [\n      \"Top-notch custom design\",\n      \"Figma design & interactive prototype\",\n      \"3 rounds of revisions\",\n      \"1 month of free support\",\n    ],\n  },\n  {\n    id: \"development\",\n    name: \"Development\",\n    description: \"Full development solution\",\n    price: 400,\n    icon: \"Code2\",\n    features: [\n      \"Framer/Custom development\",\n      \"Avg. 1 week turnaround\",\n      \"5 rounds of revisions\",\n      \"2 months of free support\",\n    ],\n  },\n  {\n    id: \"fast\",\n    name: \"Fast\",\n    description: \"Quick budget solution\",\n    price: 100,\n    icon: \"Zap\",\n    tag: \"Fast Track\",\n    features: [\n      \"Fast delivery (3X everything)\",\n      \"Quick delivery solution\",\n    ],\n  },\n];\n\nconst renderPlansIcon = (icon?: string | React.ReactNode) => {\n  if (React.isValidElement(icon)) return icon;\n  const iconStr = typeof icon === \"string\" ? icon.toLowerCase() : \"\";\n  switch (iconStr) {\n    case \"code\":\n    case \"code2\":\n    case \"development\":\n      return <Code2 className=\"w-5 h-5 sm:w-7 sm:h-7\" />;\n    case \"zap\":\n    case \"fast\":\n    case \"lightning\":\n      return <Zap className=\"w-5 h-5 sm:w-7 sm:h-7\" />;\n    case \"rocket\":\n      return <Rocket className=\"w-5 h-5 sm:w-7 sm:h-7\" />;\n    case \"building\":\n      return <Building className=\"w-5 h-5 sm:w-7 sm:h-7\" />;\n    case \"design\":\n    case \"pentool\":\n    default:\n      return <PenTool className=\"w-5 h-5 sm:w-7 sm:h-7\" />;\n  }\n};\n\nconst computeCardData = (services: PricingServiceOption[], activeIds: string[]) => {\n  const activeServices = services.filter((s) => activeIds.includes(s.id));\n\n  if (activeServices.length === 0) {\n    return {\n      title: \"No Service Selected\",\n      tag: null,\n      price: 0,\n      features: [\n        \"Select the modules above to build your custom package and instantly see your quote.\",\n      ],\n    };\n  }\n\n  const price = activeServices.reduce((sum, s) => sum + s.price, 0);\n  const title = activeServices.map((s) => s.name).join(\" & \");\n  const tag =\n    activeServices.find((s) => s.tag)?.tag ||\n    (activeServices.length > 1 ? \"Custom Package\" : \"Standard\");\n\n  const featuresSet = new Set<string>();\n  activeServices.forEach((s) => {\n    s.features?.forEach((f) => featuresSet.add(f));\n  });\n\n  return {\n    title,\n    tag,\n    price,\n    features: Array.from(featuresSet),\n  };\n};\n\n/** GSAP's power3.out, sampled for CSS / WAAPI. */\nconst POWER3_OUT =\n  \"linear(0, .1945, .3591, .4971, .6115, .7052, .7808, .8409, .8877, .9233, .9497, .9686, .9816, .9901, .9952, .998, .9994, .9999, 1, 1)\";\n\nexport function PricingPlans({\n  badgeText = \"Tailored Studio\",\n  title = \"Pricing Plans\",\n  subtitle = \"For each plan we\",\n  highlightText = \"Outperform\",\n  brandTitle = \"Custom Services\",\n  brandSubtitle = \"Select options tailored to your goals\",\n  brandDescription = \"Mix and match custom design, full-stack development, and priority delivery to build the ideal package for your business.\",\n  services = defaultPlansServices,\n  defaultActiveIds = [\"design\"],\n  ctaText = \"Book a 45-min call\",\n  ctaHref = \"#\",\n  color = \"primary\",\n  counting = true,\n  linkComponent: Link = \"a\",\n}: PricingPlansProps = {}) {\n  const { theme, style } = getThemeStyles(color);\n  const [activePlans, setActivePlans] = useState<string[]>(defaultActiveIds);\n  const cardData = computeCardData(services, activePlans);\n  const hasSelection = activePlans.length > 0;\n\n  const cardContentRef = useRef<HTMLDivElement>(null);\n\n  const togglePlan = (id: string) => {\n    setActivePlans((prev) =>\n      prev.includes(id) ? prev.filter((p) => p !== id) : [...prev, id],\n    );\n  };\n\n  useEffect(() => {\n    const el = cardContentRef.current;\n    if (!el || typeof el.animate !== \"function\") return;\n    const animation = el.animate(\n      [\n        { opacity: 0, transform: \"translateY(15px)\" },\n        { opacity: 1, transform: \"translateY(0px)\" },\n      ],\n      { duration: 400, easing: POWER3_OUT },\n    );\n    return () => animation.cancel();\n  }, [activePlans]);\n\n  return (\n    <section className=\"w-full h-full bg-background text-foreground py-6 md:py-12 px-4 sm:px-6 font-sans transition-colors duration-300 rounded-l-lg\" style={style}>\n      <div className=\"w-full h-full max-w-6xl mx-auto\">\n        <header className=\"mb-8 sm:mb-12 space-y-2.5 sm:space-y-3\">\n          {badgeText && (\n            <div\n              className={cn(\n                \"inline-flex items-center gap-2 pl-2.5 pr-3 py-1 rounded-r-md border-l-2 bg-muted/60 text-xs font-semibold uppercase tracking-widest\",\n                theme.border,\n                theme.text,\n              )}\n            >\n              <PenTool className=\"w-3.5 h-3.5 shrink-0\" />\n              <span>{badgeText}</span>\n            </div>\n          )}\n          <h2 className=\"text-3xl sm:text-4xl md:text-5xl font-semibold tracking-tight text-foreground\">\n            {title}\n          </h2>\n          <p className=\"text-base sm:text-lg text-muted-foreground\">\n            {subtitle}{\" \"}\n            <span className={cn(\"font-semibold\", theme.text)}>{highlightText}</span>\n          </p>\n        </header>\n\n        <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-8 sm:gap-12 lg:gap-16\">\n          <div className=\"space-y-6 sm:space-y-8\">\n            <div>\n              <h3 className={cn(\"text-2xl sm:text-3xl md:text-4xl lg:text-5xl font-semibold mb-2 sm:mb-3\", theme.text)}>\n                {brandTitle}\n              </h3>\n              <p className=\"text-lg sm:text-xl md:text-2xl text-foreground font-medium\">\n                {brandSubtitle}\n              </p>\n              <p className=\"text-sm sm:text-base text-muted-foreground mt-2 sm:mt-3 leading-relaxed\">\n                {brandDescription}\n              </p>\n            </div>\n\n            <div className=\"space-y-4 sm:space-y-5 mt-6 sm:mt-10\">\n              {services.map((service) => {\n                const isActive = activePlans.includes(service.id);\n                return (\n                  <div\n                    key={service.id}\n                    className=\"flex items-center justify-between bg-card border border-border p-4 sm:p-6 rounded-lg transition-colors gap-3 sm:gap-5 shadow-sm\"\n                  >\n                    <div className=\"flex items-center gap-3 sm:gap-5 min-w-0\">\n                      <div\n                        className={cn(\n                          \"p-2.5 sm:p-3.5 rounded-lg transition-colors shrink-0\",\n                          isActive\n                            ? theme.bgSoft\n                            : \"bg-muted text-muted-foreground\",\n                        )}\n                      >\n                        {renderPlansIcon(service.icon)}\n                      </div>\n                      <div className=\"min-w-0\">\n                        <h4 className=\"font-semibold text-base sm:text-lg md:text-xl text-left truncate\">\n                          {service.name}\n                        </h4>\n                        <p className=\"text-xs sm:text-sm text-muted-foreground mt-0.5 truncate\">\n                          {service.description}\n                        </p>\n                      </div>\n                    </div>\n                    <div\n                      onClick={() => togglePlan(service.id)}\n                      className={cn(\n                        \"cursor-pointer w-12 h-7 sm:w-14 sm:h-8 flex items-center rounded-full p-1 transition-colors duration-300 shrink-0\",\n                        isActive ? theme.bg : \"bg-foreground/15\",\n                      )}\n                    >\n                      <div\n                        className={cn(\n                          \"w-5 h-5 sm:w-6 sm:h-6 bg-background rounded-full shadow-md transform transition-transform duration-300\",\n                          isActive\n                            ? \"translate-x-5 sm:translate-x-6\"\n                            : \"translate-x-0\",\n                        )}\n                      />\n                    </div>\n                  </div>\n                );\n              })}\n            </div>\n          </div>\n\n          <div className=\"bg-card border border-border rounded-lg p-5 sm:p-8 md:p-10 shadow-sm relative flex flex-col justify-between min-h-[400px] sm:min-h-[500px] transition-colors\">\n            <div ref={cardContentRef}>\n              <div className=\"flex flex-col sm:flex-row sm:items-center justify-between gap-3 mb-6 sm:mb-8\">\n                <h4 className={cn(\"text-xl sm:text-2xl font-semibold transition-colors duration-300\", hasSelection ? \"text-foreground\" : \"text-muted-foreground\")}>\n                  {cardData.title}\n                </h4>\n                {cardData.tag && (\n                  <span\n                    className={cn(\n                      \"px-3 py-1 sm:px-3.5 sm:py-1.5 rounded-lg text-xs sm:text-sm font-semibold tracking-wide border self-start sm:self-auto transition-colors duration-300\",\n                      theme.bgSoft,\n                      theme.border,\n                    )}\n                  >\n                    {cardData.tag}\n                  </span>\n                )}\n              </div>\n\n              <div className=\"mb-6 sm:mb-10\">\n                <span\n                  className={cn(\n                    \"text-5xl sm:text-6xl md:text-7xl lg:text-[80px] font-extrabold tracking-tight leading-none break-all transition-colors duration-300\",\n                    hasSelection ? theme.text : \"text-muted-foreground/30\",\n                  )}\n                >\n                  $<AnimatedPrice value={cardData.price} counting={counting} />\n                </span>\n              </div>\n\n              <ul className=\"space-y-3 sm:space-y-4 mb-6 sm:mb-10\">\n                {cardData.features.map((feature, idx) => (\n                  <li key={idx} className=\"flex items-start gap-3 sm:gap-4\">\n                    <Check\n                      className={cn(\n                        \"shrink-0 mt-1 w-4 h-4 sm:w-5 sm:h-5 transition-colors duration-300\",\n                        hasSelection ? theme.text : \"text-muted-foreground/40\",\n                      )}\n                    />\n                    <span className={cn(\n                      \"text-sm sm:text-base md:text-lg transition-colors duration-300\",\n                      hasSelection ? \"text-foreground\" : \"text-muted-foreground font-medium\",\n                    )}>\n                      {feature}\n                    </span>\n                  </li>\n                ))}\n              </ul>\n            </div>\n\n            <Link\n              href={hasSelection ? ctaHref : \"#\"}\n              className=\"w-full block no-underline mt-auto\"\n            >\n              <Button\n                variant=\"pricing-primary\"\n                showArrow\n                className={cn(\n                  \"w-full py-4 text-base shadow-lg\",\n                  hasSelection\n                    ? theme.bg\n                    : \"opacity-40 cursor-not-allowed pointer-events-none shadow-none\"\n                )}\n              >\n                {ctaText}\n              </Button>\n            </Link>\n          </div>\n        </div>\n      </div>\n    </section>\n  );\n}\n\n// ==========================================\n// 7. PRICING SCALE (MODERN CREATOR & SCALE CARDS)\n// ==========================================\nexport interface ScalePlanItem {\n  id: string;\n  title: string;\n  subtitle: string;\n  price: string;\n  period?: string;\n  buttonText: string;\n  popular?: boolean;\n  popularBadgeText?: string;\n  icon?: string;\n  featuresTitle?: string;\n  features: string[];\n}\n\nexport interface PricingScaleProps {\n  variant?: PricingVariant;\n  badgeText?: string;\n  title?: string;\n  subtitle?: string;\n  monthlyLabel?: string;\n  annuallyLabel?: string;\n  annualDiscountText?: string;\n  plans?: {\n    monthly: ScalePlanItem[];\n    annually: ScalePlanItem[];\n  };\n  footerTitle?: string;\n  footerSubtitle?: string;\n  footerCtaText?: string;\n  footerCtaHref?: string;\n  color?: PricingColor;\n  counting?: boolean;\n  linkComponent?: React.ElementType;\n}\n\nconst defaultScalePlans = {\n  monthly: [\n    {\n      id: \"launch\",\n      title: \"Launch Plan\",\n      subtitle: \"Ideal for startups and solo marketers\",\n      price: \"$299.00\",\n      period: \"/Month\",\n      buttonText: \"Start with Launch\",\n      popular: false,\n      icon: \"Rocket\",\n      featuresTitle: \"WHAT'S INCLUDED:\",\n      features: [\n        \"Up to 10,000 subscribers\",\n        \"5 automation workflows\",\n        \"Basic A/B testing\",\n        \"Email support\",\n        \"Drag-and-drop builder\",\n      ],\n    },\n    {\n      id: \"scale\",\n      title: \"Scale Plan\",\n      subtitle: \"For growing teams ready to accelerate\",\n      price: \"$899.00\",\n      period: \"/Month\",\n      buttonText: \"Upgrade to Scale\",\n      popular: true,\n      popularBadgeText: \"Most Popular\",\n      icon: \"Sprout\",\n      featuresTitle: \"INCLUDED EVERYTHING IN LAUNCH, PLUS:\",\n      features: [\n        \"Unlimited automation workflows\",\n        \"Advanced segmentation & analytics\",\n        \"Priority live chat support\",\n        \"Custom branded templates\",\n        \"Dedicated onboarding\",\n      ],\n    },\n  ],\n  annually: [\n    {\n      id: \"launch-annual\",\n      title: \"Launch Plan\",\n      subtitle: \"Ideal for startups and solo marketers\",\n      price: \"$269.00\",\n      period: \"/Month\",\n      buttonText: \"Start with Launch\",\n      popular: false,\n      icon: \"Rocket\",\n      featuresTitle: \"WHAT'S INCLUDED:\",\n      features: [\n        \"Up to 10,000 subscribers\",\n        \"5 automation workflows\",\n        \"Basic A/B testing\",\n        \"Email support\",\n        \"Drag-and-drop builder\",\n      ],\n    },\n    {\n      id: \"scale-annual\",\n      title: \"Scale Plan\",\n      subtitle: \"For growing teams ready to accelerate\",\n      price: \"$809.00\",\n      period: \"/Month\",\n      buttonText: \"Upgrade to Scale\",\n      popular: true,\n      popularBadgeText: \"Most Popular\",\n      icon: \"Sprout\",\n      featuresTitle: \"INCLUDED EVERYTHING IN LAUNCH, PLUS:\",\n      features: [\n        \"Unlimited automation workflows\",\n        \"Advanced segmentation & analytics\",\n        \"Priority live chat support\",\n        \"Custom branded templates\",\n        \"Dedicated onboarding\",\n      ],\n    },\n  ],\n};\n\nexport function PricingScale({\n  badgeText = \"PRICING\",\n  title = \"Pricing That Scales With You\",\n  subtitle = \"From solo creators to enterprise teams, pick the plan that matches your ambitions.\",\n  monthlyLabel = \"MONTHLY\",\n  annuallyLabel = \"ANNUALLY\",\n  annualDiscountText = \"(SAVE 10%)\",\n  plans = defaultScalePlans,\n  footerTitle = \"Need help choosing the right plan?\",\n  footerSubtitle = \"Schedule a complimentary 20-minute strategy call with our team.\",\n  footerCtaText = \"Book a Free Strategy Call\",\n  footerCtaHref = \"#\",\n  color = \"primary\",\n  counting = true,\n  linkComponent: LinkComp = \"a\",\n}: PricingScaleProps = {}) {\n  const [billingCycle, setBillingCycle] = useState<\"monthly\" | \"annually\">(\"monthly\");\n  const { theme, style } = getThemeStyles(color);\n  const currentPlans = plans[billingCycle] || plans.monthly;\n\n  return (\n    <section className=\"w-full h-full py-10 sm:py-16 px-4 sm:px-6 font-sans transition-colors duration-300\" style={style}>\n      <div className=\"max-w-4xl mx-auto space-y-10 sm:space-y-12\">\n        {/* Header */}\n        <div className=\"text-center space-y-3 sm:space-y-4 max-w-2xl mx-auto\">\n          {badgeText && (\n            <div className=\"inline-flex items-center gap-1.5 px-3 py-1 rounded-lg border border-border bg-card text-[11px] font-semibold tracking-wider text-muted-foreground uppercase shadow-2xs\">\n              <span className={cn(\"w-1.5 h-1.5 rounded-full bg-current\", theme.text)} />\n              {badgeText}\n            </div>\n          )}\n          <h2 className=\"text-3xl sm:text-4xl md:text-5xl font-semibold tracking-tight text-foreground\">\n            {title}\n          </h2>\n          <p className=\"text-sm sm:text-base text-muted-foreground max-w-lg mx-auto leading-relaxed\">\n            {subtitle}\n          </p>\n\n          {/* Toggle switch */}\n          <div className=\"pt-3 flex items-center justify-center gap-3\">\n            <span className={cn(\"text-xs font-semibold tracking-wider transition-colors\", billingCycle === \"monthly\" ? \"text-foreground\" : \"text-muted-foreground\")}>\n              {monthlyLabel}\n            </span>\n            <button\n              type=\"button\"\n              onClick={() => setBillingCycle((prev) => (prev === \"monthly\" ? \"annually\" : \"monthly\"))}\n              className={cn(\n                \"relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none\",\n                billingCycle === \"annually\" ? theme.bg : \"bg-muted\"\n              )}\n              role=\"switch\"\n              aria-checked={billingCycle === \"annually\"}\n            >\n              <span\n                className={cn(\n                  \"pointer-events-none inline-block h-5 w-5 transform rounded-full bg-background shadow-sm ring-0 transition duration-200 ease-in-out\",\n                  billingCycle === \"annually\" ? \"translate-x-5\" : \"translate-x-0\"\n                )}\n              />\n            </button>\n            <span className={cn(\"text-xs font-semibold tracking-wider transition-colors\", billingCycle === \"annually\" ? \"text-foreground\" : \"text-muted-foreground\")}>\n              {annuallyLabel} <span className=\"text-muted-foreground font-medium\">{annualDiscountText}</span>\n            </span>\n          </div>\n        </div>\n\n        {/* Card Container Grid */}\n        <div className=\"bg-muted/70 p-3 sm:p-4 rounded-lg border border-border grid grid-cols-1 md:grid-cols-2 gap-4 sm:gap-6 shadow-xs\">\n          {currentPlans.map((plan) => {\n            const isPopular = plan.popular;\n            return (\n              <div\n                key={plan.id}\n                className={cn(\n                  \"relative rounded-lg p-6 sm:p-8 flex flex-col justify-between transition-all duration-300\",\n                  isPopular\n                    ? cn(\"bg-card ring-2 shadow-lg shadow-slate-200/50 dark:shadow-none\", theme.ring)\n                    : \"bg-muted/60 border-0 shadow-none\"\n                )}\n              >\n                {/* Top header area */}\n                <div>\n                  <div className=\"flex items-center justify-between mb-6\">\n                    <div className={cn(\n                      \"w-10 h-10 rounded-lg flex items-center justify-center border shadow-2xs\",\n                      isPopular\n                        ? \"bg-muted border-border\"\n                        : \"bg-card border-border\"\n                    )}>\n                      {plan.icon === \"Sprout\" ? (\n                        <SproutIcon />\n                      ) : (\n                        <Rocket className={cn(\"w-5 h-5\", isPopular ? theme.text : \"text-foreground\")} />\n                      )}\n                    </div>\n\n                    {isPopular && (\n                      <div className=\"inline-flex items-center gap-1 px-3 py-1 rounded-lg border border-border bg-muted text-xs font-semibold text-foreground shadow-2xs\">\n                        <Star className={cn(\"w-3.5 h-3.5 fill-current\", theme.text)} />\n                        <span>{plan.popularBadgeText || \"Most Popular\"}</span>\n                      </div>\n                    )}\n                  </div>\n\n                  <h3 className=\"text-xl sm:text-2xl font-semibold text-foreground mb-1\">\n                    {plan.title}\n                  </h3>\n                  <p className=\"text-xs sm:text-sm text-muted-foreground mb-6\">\n                    {plan.subtitle}\n                  </p>\n\n                  <div className=\"flex items-baseline gap-1 pb-6 mb-6 border-b border-border\">\n                    <span className=\"text-3xl sm:text-4xl md:text-[40px] font-extrabold tracking-tight text-foreground\">\n                      <AnimatedPrice value={plan.price} counting={counting} />\n                    </span>\n                    {plan.period && (\n                      <span className=\"text-xs sm:text-sm text-muted-foreground font-medium\">\n                        {plan.period}\n                      </span>\n                    )}\n                  </div>\n\n                  {/* Features list */}\n                  {plan.featuresTitle && (\n                    <h4 className=\"text-[11px] font-semibold tracking-wider text-foreground uppercase mb-4\">\n                      {plan.featuresTitle}\n                    </h4>\n                  )}\n\n                  <ul className=\"space-y-3 mb-8\">\n                    {plan.features.map((feature, idx) => (\n                      <li key={idx} className=\"flex items-start gap-2.5 text-xs sm:text-sm text-foreground/80\">\n                        <Check className={cn(\"w-4 h-4 shrink-0 mt-0.5\", theme.text)} />\n                        <span>{feature}</span>\n                      </li>\n                    ))}\n                  </ul>\n                </div>\n\n                {/* Button */}\n                <LinkComp\n                  href=\"#\"\n                  className=\"w-full block no-underline\"\n                >\n                  <Button\n                    variant={isPopular ? \"pricing-primary\" : \"pricing-dark\"}\n                    className={cn(\n                      \"w-full py-3.5 px-4 rounded-lg text-xs sm:text-sm font-semibold text-center shadow-md\",\n                      isPopular && theme.bg\n                    )}\n                  >\n                    {plan.buttonText}\n                  </Button>\n                </LinkComp>\n              </div>\n            );\n          })}\n        </div>\n\n        {/* Footer Banner */}\n        <div className=\"bg-muted/80 border border-border rounded-lg p-6 sm:p-8 flex flex-col sm:flex-row items-center justify-between gap-4 shadow-xs\">\n          <div className=\"text-center sm:text-left\">\n            <h4 className=\"text-base sm:text-lg font-semibold text-foreground\">\n              {footerTitle}\n            </h4>\n            <p className=\"text-xs sm:text-sm text-muted-foreground mt-0.5\">\n              {footerSubtitle}\n            </p>\n          </div>\n          <LinkComp\n            href={footerCtaHref}\n            className=\"no-underline inline-block\"\n          >\n            <Button\n              variant=\"pricing-primary\"\n              showArrow\n              className={cn(\"whitespace-nowrap shadow-md\", theme.bg)}\n            >\n              {footerCtaText}\n            </Button>\n          </LinkComp>\n        </div>\n      </div>\n    </section>\n  );\n}\n\n// ==========================================\n// 8. PRICING DOT PATTERN (DOT MATRIX GRADIENT CARDS)\n// ==========================================\nexport interface DotPatternPlanItem {\n  id: string;\n  badgeTag: string;\n  price: string;\n  period?: string;\n  description: string;\n  buttonText: string;\n  featured?: boolean;\n  featuresTitle?: string;\n  features: string[];\n  ctaHref?: string;\n}\n\nexport interface PricingDotPatternProps {\n  variant?: PricingVariant;\n  badgeText?: string;\n  title?: string;\n  subtitle?: string;\n  plans?: DotPatternPlanItem[];\n  color?: PricingColor;\n  counting?: boolean;\n  linkComponent?: React.ElementType;\n}\n\nconst defaultDotPatternPlans: DotPatternPlanItem[] = [\n  {\n    id: \"basic\",\n    badgeTag: \"BASIC\",\n    price: \"$199\",\n    period: \"/month\",\n    description: \"Basic tools for content generation. Best for one just trying out.\",\n    buttonText: \"Get Started\",\n    featured: false,\n    featuresTitle: \"What's included:\",\n    features: [\n      \"1 project\",\n      \"Up to 3 pages\",\n      \"Email support\",\n      \"Basic analytics\",\n    ],\n  },\n  {\n    id: \"starter\",\n    badgeTag: \"STARTER\",\n    price: \"$299\",\n    period: \"/month\",\n    description: \"Advanced tools for consistent content generation. Best for one getting started.\",\n    buttonText: \"Get Started\",\n    featured: true,\n    featuresTitle: \"What's included:\",\n    features: [\n      \"1 project\",\n      \"Up to 3 pages\",\n      \"Email support\",\n      \"Basic analytics\",\n    ],\n  },\n  {\n    id: \"pro\",\n    badgeTag: \"PRO\",\n    price: \"$599\",\n    period: \"/month\",\n    description: \"Advanced tools for consistent content generation, unlimited credits. Best for teams\",\n    buttonText: \"Get Started\",\n    featured: false,\n    featuresTitle: \"What's included:\",\n    features: [\n      \"1 project\",\n      \"Up to 3 pages\",\n      \"Email support\",\n      \"Basic analytics\",\n    ],\n  },\n];\n\nexport function PricingDotPattern({\n  badgeText = \"Pricing\",\n  title = \"Simple, transparent pricing that helps you scale.\",\n  subtitle = \"Select any plan that suits you and kick start your content creation journey with us\",\n  plans = defaultDotPatternPlans,\n  color = \"primary\",\n  counting = true,\n  linkComponent: LinkComp = \"a\",\n}: PricingDotPatternProps = {}) {\n  const { theme, style } = getThemeStyles(color);\n\n  return (\n    <section\n      className=\"w-full h-full py-12 sm:py-20 px-4 sm:px-6 font-sans transition-colors duration-300\"\n      style={style}\n    >\n      <div className=\"max-w-6xl mx-auto space-y-12 sm:space-y-16\">\n        {/* Header */}\n        <div className=\"text-center space-y-3 sm:space-y-4 max-w-2xl mx-auto\">\n          {badgeText && (\n            <div className={cn(\"inline-flex items-center gap-1.5 px-3.5 py-1 rounded-lg border text-[11px] font-semibold tracking-wide shadow-2xs transition-colors\", theme.bgSoft, theme.border)}>\n              <Sparkles className={cn(\"w-3.5 h-3.5 fill-current\", theme.text)} />\n              <span>{badgeText}</span>\n            </div>\n          )}\n          <h2 className=\"text-3xl sm:text-4xl md:text-5xl font-semibold tracking-tight text-foreground leading-[1.15]\">\n            {title}\n          </h2>\n          <p className=\"text-sm sm:text-base text-muted-foreground max-w-md mx-auto leading-relaxed\">\n            {subtitle}\n          </p>\n        </div>\n\n        {/* Cards Grid */}\n        <div className=\"grid grid-cols-1 md:grid-cols-3 gap-6 sm:gap-8 items-stretch\">\n          {plans.map((plan) => {\n            const isFeatured = plan.featured;\n            return (\n              <div\n                key={plan.id}\n                className={cn(\n                  \"relative rounded-lg p-6 sm:p-8 flex flex-col justify-between transition-all duration-300 bg-card/60 backdrop-blur-xs shadow-none overflow-hidden\",\n                  isFeatured\n                    ? cn(\"border\", theme.border)\n                    : \"border border-border\"\n                )}\n                style={isFeatured ? { borderColor: \"color-mix(in srgb, var(--pricing-accent, currentColor) 10%, transparent)\" } : undefined}\n              >\n                {/* Dot Matrix Background Pattern positioned at top header section matching sample image */}\n                <div\n                  className={cn(\n                    \"absolute top-0 left-0 right-0 h-48 pointer-events-none transition-opacity\",\n                    isFeatured\n                      ? cn(\"opacity-75 dark:opacity-55\", theme.text)\n                      : \"opacity-35 dark:opacity-20 text-muted-foreground\"\n                  )}\n                  style={{\n                    backgroundImage: `radial-gradient(currentColor 1.5px, transparent 1.5px)`,\n                    backgroundSize: \"13px 13px\",\n                    maskImage: \"linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,0.85) 60%, rgba(0,0,0,0) 100%)\",\n                    WebkitMaskImage: \"linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,0.85) 60%, rgba(0,0,0,0) 100%)\",\n                  }}\n                />\n\n                {/* 4 Corner Angle Brackets following rounded card edges */}\n                <div\n                  className={cn(\n                    \"absolute top-0 left-0 w-3.5 h-3.5 border-t-2 border-l-2 rounded-tl-lg pointer-events-none transition-colors\",\n                    isFeatured ? \"border-[var(--pricing-accent)]\" : \"border-foreground/30\"\n                  )}\n                />\n                <div\n                  className={cn(\n                    \"absolute top-0 right-0 w-3.5 h-3.5 border-t-2 border-r-2 rounded-tr-lg pointer-events-none transition-colors\",\n                    isFeatured ? \"border-[var(--pricing-accent)]\" : \"border-foreground/30\"\n                  )}\n                />\n                <div\n                  className={cn(\n                    \"absolute bottom-0 left-0 w-3.5 h-3.5 border-b-2 border-l-2 rounded-bl-lg pointer-events-none transition-colors\",\n                    isFeatured ? \"border-[var(--pricing-accent)]\" : \"border-foreground/30\"\n                  )}\n                />\n                <div\n                  className={cn(\n                    \"absolute bottom-0 right-0 w-3.5 h-3.5 border-b-2 border-r-2 rounded-br-lg pointer-events-none transition-colors\",\n                    isFeatured ? \"border-[var(--pricing-accent)]\" : \"border-foreground/30\"\n                  )}\n                />\n\n                {/* Card Content */}\n                <div className=\"relative z-10 flex-1 flex flex-col justify-between\">\n                  <div>\n                    {/* Badge Tag */}\n                    <span\n                      className={cn(\n                        \"text-[12px] font-semibold tracking-widest uppercase block mb-5\",\n                        isFeatured ? theme.text : \"text-foreground\"\n                      )}\n                    >\n                      {plan.badgeTag}\n                    </span>\n\n                    {/* Price */}\n                    <div className=\"flex items-baseline gap-1 mb-3\">\n                      <span className=\"text-4xl sm:text-5xl font-semibold tracking-tight text-foreground\">\n                        <AnimatedPrice value={plan.price} counting={counting} />\n                      </span>\n                      {plan.period && (\n                        <span className=\"text-xs sm:text-sm text-muted-foreground font-medium\">\n                          {plan.period}\n                        </span>\n                      )}\n                    </div>\n\n                    {/* Description */}\n                    <p className=\"text-xs sm:text-sm text-muted-foreground leading-relaxed mb-8 min-h-[44px]\">\n                      {plan.description}\n                    </p>\n\n                    {/* Button */}\n                    <LinkComp\n                      href={plan.ctaHref || \"#\"}\n                      className=\"w-full block no-underline mb-10\"\n                    >\n                      <Button\n                        variant={isFeatured ? \"pricing-primary\" : \"pricing-dark\"}\n                        showArrow\n                        className={cn(\"w-full shadow-md\", isFeatured && theme.bg)}\n                      >\n                        {plan.buttonText}\n                      </Button>\n                    </LinkComp>\n\n                    {/* Features List Header */}\n                    {plan.featuresTitle && (\n                      <h4 className=\"text-[11px] font-semibold tracking-wider text-foreground uppercase mb-4\">\n                        {plan.featuresTitle}\n                      </h4>\n                    )}\n\n                    {/* Features Item */}\n                    <ul className=\"space-y-3.5\">\n                      {plan.features.map((feature, idx) => (\n                        <li key={idx} className=\"flex items-center gap-3 text-xs sm:text-sm text-foreground/80\">\n                          <CheckCircle2\n                            className={cn(\n                              \"w-4 h-4 shrink-0 fill-current\",\n                              isFeatured ? theme.text : \"text-foreground/70\"\n                            )}\n                          />\n                          <span>{feature}</span>\n                        </li>\n                      ))}\n                    </ul>\n                  </div>\n                </div>\n              </div>\n            );\n          })}\n        </div>\n      </div>\n    </section>\n  );\n}\n\n// ==========================================\n// 9. PRICING PLANS PRO (SELECTABLE PLAN + USERS STEPPER)\n// ==========================================\nexport interface PlansProItem {\n  id: string;\n  title: string;\n  subtitle: string;\n  monthlyPrice: number | string;\n  yearlyPrice: number | string;\n  monthlyPeriod?: string;\n  yearlyPeriod?: string;\n  features: string[];\n}\n\nexport interface PricingPlansProProps {\n  variant?: PricingVariant;\n  badgeText?: string;\n  title?: string;\n  subtitle?: string;\n  monthlyLabel?: string;\n  yearlyLabel?: string;\n  discountBadge?: string;\n  plans?: PlansProItem[];\n  defaultBillingCycle?: \"monthly\" | \"yearly\";\n  defaultSelectedPlanId?: string;\n  defaultUsers?: number;\n  minUsers?: number;\n  maxUsers?: number;\n  usersLabel?: string;\n  usersSubtext?: string;\n  orderButtonText?: string;\n  orderHref?: string;\n  scalePriceWithUsers?: boolean;\n  layoutMode?: \"responsive\" | \"horizontal\" | \"vertical\";\n  color?: PricingColor;\n  counting?: boolean;\n  linkComponent?: React.ElementType;\n  className?: string;\n  compact?: boolean;\n  onOrder?: (payload: {\n    plan: PlansProItem;\n    billingCycle: \"monthly\" | \"yearly\";\n    users: number;\n    totalPrice: number;\n  }) => void;\n}\n\nconst PLANS_PRO_RING_MASK: React.CSSProperties = {\n  WebkitMask: \"linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0)\",\n  WebkitMaskComposite: \"xor\",\n  mask: \"linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0)\",\n  maskComposite: \"exclude\",\n};\n\n/** 4 glowing border lines spaced 90° apart orbiting around the selected package card */\nconst PLANS_PRO_FOUR_BEAM_GRADIENT =\n  \"conic-gradient(from 0deg, transparent 0deg, currentColor 32deg, transparent 62deg, transparent 90deg, currentColor 122deg, transparent 152deg, transparent 180deg, currentColor 212deg, transparent 242deg, transparent 270deg, currentColor 302deg, transparent 332deg)\";\n\nconst PlansProUserIcon = ({ className }: { className?: string }) => (\n  <svg\n    viewBox=\"0 0 24 24\"\n    fill=\"none\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    className={cn(\"w-5 h-5\", className)}\n  >\n    <circle\n      cx=\"10.5\"\n      cy=\"8.5\"\n      r=\"3.2\"\n      stroke=\"currentColor\"\n      strokeWidth=\"1.75\"\n    />\n    <path\n      d=\"M4.75 19.25C4.75 16.3505 7.32436 14 10.5 14C13.6756 14 16.25 16.3505 16.25 19.25\"\n      stroke=\"currentColor\"\n      strokeWidth=\"1.75\"\n      strokeLinecap=\"round\"\n    />\n    <circle cx=\"17.25\" cy=\"7.25\" r=\"1.45\" fill=\"currentColor\" />\n  </svg>\n);\n\nconst defaultPlansProItems: PlansProItem[] = [\n  {\n    id: \"starter\",\n    title: \"Starter\",\n    subtitle: \"creator\",\n    monthlyPrice: 9.0,\n    yearlyPrice: 7.0,\n    monthlyPeriod: \"Month\",\n    yearlyPeriod: \"Year\",\n    features: [\n      \"500GB Cloud Storage\",\n      \"14-day version history\",\n      \"End-to-end TLS encryption\",\n    ],\n  },\n  {\n    id: \"growth\",\n    title: \"Growth\",\n    subtitle: \"studio\",\n    monthlyPrice: 15.0,\n    yearlyPrice: 12.0,\n    monthlyPeriod: \"Month\",\n    yearlyPeriod: \"Year\",\n    features: [\n      \"2TB Cloud Storage\",\n      \"60-day version history\",\n      \"Custom domain & SSO\",\n    ],\n  },\n  {\n    id: \"scale\",\n    title: \"Scale\",\n    subtitle: \"agency\",\n    monthlyPrice: 29.0,\n    yearlyPrice: 23.0,\n    monthlyPeriod: \"Month\",\n    yearlyPeriod: \"Year\",\n    features: [\n      \"Unlimited Cloud Storage\",\n      \"365-day version history\",\n      \"Dedicated SLA & audit logs\",\n    ],\n  },\n];\n\nexport function PricingPlansPro({\n  badgeText = \"Workspace Tiers\",\n  title = \"Choose Your Workspace\",\n  subtitle = \"Configure your billing cycle, pick a workspace tier, and scale team seats effortlessly as you grow.\",\n  monthlyLabel = \"Monthly\",\n  yearlyLabel = \"Annual\",\n  discountBadge = \"SAVE 20%\",\n  plans = defaultPlansProItems,\n  defaultBillingCycle = \"monthly\",\n  defaultSelectedPlanId = \"scale\",\n  defaultUsers = 1,\n  minUsers = 1,\n  maxUsers = 99,\n  usersLabel = \"Team Seats\",\n  usersSubtext = \"Billed per active member\",\n  orderButtonText = \"Continue\",\n  orderHref,\n  scalePriceWithUsers = true,\n  layoutMode = \"responsive\",\n  color = \"primary\",\n  counting = true,\n  linkComponent: LinkComp = \"a\",\n  className,\n  compact = false,\n  onOrder,\n}: PricingPlansProProps = {}) {\n  const [billingCycle, setBillingCycle] = useState<\"monthly\" | \"yearly\">(\n    defaultBillingCycle,\n  );\n  const [selectedPlanId, setSelectedPlanId] = useState<string>(\n    defaultSelectedPlanId || plans[0]?.id || \"scale\",\n  );\n  const [users, setUsers] = useState<number>(\n    Math.max(minUsers, Math.min(maxUsers, defaultUsers)),\n  );\n  const [cardsSpread, setCardsSpread] = useState(false);\n  const sectionRef = useRef<HTMLElement>(null);\n\n  useEffect(() => {\n    const el = sectionRef.current;\n    if (!el) return;\n    let timer: ReturnType<typeof setTimeout> | null = null;\n\n    if (typeof IntersectionObserver === \"undefined\") {\n      timer = setTimeout(() => setCardsSpread(true), 320);\n      return () => {\n        if (timer) clearTimeout(timer);\n      };\n    }\n\n    const observer = new IntersectionObserver(\n      (entries) => {\n        const entry = entries[0];\n        if (!entry) return;\n        if (entry.isIntersecting) {\n          if (timer) clearTimeout(timer);\n          timer = setTimeout(() => setCardsSpread(true), 320);\n        } else {\n          if (timer) clearTimeout(timer);\n          setCardsSpread(false);\n        }\n      },\n      { threshold: 0.2 },\n    );\n\n    observer.observe(el);\n    return () => {\n      if (timer) clearTimeout(timer);\n      observer.disconnect();\n    };\n  }, []);\n\n  const { theme, style } = getThemeStyles(color);\n\n  const parsePrice = (raw: number | string) => {\n    const n =\n      typeof raw === \"number\"\n        ? raw\n        : parseFloat(String(raw).replace(/[^0-9.]/g, \"\"));\n    return isNaN(n) ? 0 : n;\n  };\n\n  const getPlanPrice = (plan: PlansProItem) => {\n    const base =\n      billingCycle === \"yearly\"\n        ? parsePrice(plan.yearlyPrice)\n        : parsePrice(plan.monthlyPrice);\n    const total = scalePriceWithUsers ? base * users : base;\n    return total.toFixed(2);\n  };\n\n  const getPlanPeriod = (plan: PlansProItem) =>\n    billingCycle === \"yearly\"\n      ? plan.yearlyPeriod || \"Year\"\n      : plan.monthlyPeriod || \"Month\";\n\n  const handleOrder = () => {\n    const activePlan =\n      plans.find((p) => p.id === selectedPlanId) || plans[0];\n    if (!activePlan) return;\n    onOrder?.({\n      plan: activePlan,\n      billingCycle,\n      users,\n      totalPrice: parseFloat(getPlanPrice(activePlan)),\n    });\n  };\n\n  const renderRadio = (isSelected: boolean) => (\n    <span\n      aria-hidden=\"true\"\n      className={cn(\n        \"w-[22px] h-[22px] rounded-full flex items-center justify-center shrink-0 transition-all duration-300\",\n        isSelected\n          ? cn(\"border-2\", theme.border)\n          : \"border-[1.5px] border-muted-foreground/35\",\n      )}\n    >\n      <span\n        className={cn(\n          \"w-[10px] h-[10px] rounded-full transition-transform duration-300 ease-out\",\n          isSelected\n            ? cn(\"scale-100\", theme.bg.split(\" \")[0])\n            : \"scale-0 bg-transparent\",\n        )}\n      />\n    </span>\n  );\n\n  const renderUsersStepper = (compact = false) => (\n    <div\n      className={cn(\n        \"flex items-center justify-between gap-3\",\n        compact ? \"w-full\" : \"w-full sm:w-auto sm:justify-start sm:gap-5\",\n      )}\n      onClick={(e) => e.stopPropagation()}\n    >\n      <div className=\"flex items-center gap-3 min-w-0\">\n        <div\n          className={cn(\n            \"w-10 h-10 sm:w-11 sm:h-11 rounded-full flex items-center justify-center shrink-0 transition-colors\",\n            theme.bgSoft,\n            theme.text,\n          )}\n        >\n          <PlansProUserIcon className=\"w-5 h-5\" />\n        </div>\n        <div className=\"flex flex-col text-left min-w-0\">\n          <span className=\"font-sans text-[13.5px] font-medium text-foreground leading-tight truncate\">\n            {usersLabel}\n          </span>\n          <span className=\"font-sans text-[12px] font-normal text-muted-foreground leading-tight mt-0.5 truncate\">\n            {usersSubtext}\n          </span>\n        </div>\n      </div>\n\n      <div className=\"inline-flex items-center justify-between rounded-lg bg-muted/70 border border-border px-1.5 py-1 min-w-[96px] sm:min-w-[108px] h-[38px] shrink-0\">\n        <button\n          type=\"button\"\n          aria-label=\"Decrease users\"\n          disabled={users <= minUsers}\n          onClick={() => setUsers((u) => Math.max(minUsers, u - 1))}\n          className=\"w-7 h-7 rounded-md flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-foreground/5 disabled:opacity-35 disabled:pointer-events-none transition-colors cursor-pointer\"\n        >\n          <Minus className=\"w-3.5 h-3.5 stroke-[2]\" />\n        </button>\n        <span className=\"font-sans text-[13.5px] font-semibold text-foreground px-2 tabular-nums select-none\">\n          {users}\n        </span>\n        <button\n          type=\"button\"\n          aria-label=\"Increase users\"\n          disabled={users >= maxUsers}\n          onClick={() => setUsers((u) => Math.min(maxUsers, u + 1))}\n          className=\"w-7 h-7 rounded-md flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-foreground/5 disabled:opacity-35 disabled:pointer-events-none transition-colors cursor-pointer\"\n        >\n          <Plus className=\"w-3.5 h-3.5 stroke-[2]\" />\n        </button>\n      </div>\n    </div>\n  );\n\n  const renderOrderButton = (fullWidth = false) => {\n    const btnClasses = cn(\n      fullWidth ? \"w-full\" : \"w-full sm:w-auto sm:min-w-[172px]\",\n      theme.bg,\n    );\n\n    if (orderHref) {\n      return (\n        <LinkComp href={orderHref} onClick={handleOrder} className={fullWidth ? \"w-full\" : \"w-full sm:w-auto\"}>\n          <Button\n            variant=\"pricing-primary\"\n            showArrow\n            className={btnClasses}\n          >\n            {orderButtonText}\n          </Button>\n        </LinkComp>\n      );\n    }\n\n    return (\n      <Button\n        type=\"button\"\n        variant=\"pricing-primary\"\n        showArrow\n        onClick={handleOrder}\n        className={btnClasses}\n      >\n        {orderButtonText}\n      </Button>\n    );\n  };\n\n  return (\n    <section\n      ref={sectionRef}\n      className={cn(\n        \"w-full h-full font-sans transition-colors duration-300\",\n        compact ? \"p-0\" : \"py-6 sm:py-8 px-3 sm:px-6\",\n        className,\n      )}\n      style={style}\n    >\n      <div\n        className={cn(\n          \"w-full mx-auto text-card-foreground transition-all\",\n          compact\n            ? \"bg-transparent border-0 shadow-none p-0\"\n            : \"bg-card rounded-lg border border-border shadow-[0_6px_30px_rgba(0,0,0,0.04)] dark:shadow-[0_6px_30px_rgba(0,0,0,0.3)] p-6 sm:p-8 md:p-9\",\n          layoutMode === \"vertical\"\n            ? \"max-w-[380px]\"\n            : layoutMode === \"horizontal\"\n              ? \"max-w-4xl\"\n              : \"max-w-[380px] md:max-w-4xl\",\n        )}\n      >\n        {/* Header: Badge + Title + Description */}\n        {(badgeText || title || subtitle) && (\n          <div className=\"mb-5 sm:mb-6 text-left space-y-2\">\n          {badgeText && (\n            <div\n              className={cn(\n                \"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md text-[11px] font-semibold uppercase tracking-wider border\",\n                theme.bgSoft,\n                theme.border,\n                theme.text,\n              )}\n            >\n              <Users className=\"w-3.5 h-3.5 shrink-0\" />\n              <span>{badgeText}</span>\n            </div>\n          )}\n          {title && (\n            <h2 className=\"font-sans text-[22px] sm:text-[26px] font-bold tracking-[-0.02em] text-foreground leading-tight\">\n              {title}\n            </h2>\n          )}\n          {subtitle && (\n            <p className=\"font-sans text-xs sm:text-sm text-muted-foreground leading-relaxed max-w-2xl\">\n              {subtitle}\n            </p>\n          )}\n        </div>\n        )}\n\n        {/* Segmented Billing Cycle Switch */}\n        <div\n          role=\"tablist\"\n          aria-label=\"Billing cycle\"\n          className=\"relative w-full rounded-lg bg-muted/70 border border-border p-1.5 grid grid-cols-2 mb-6 sm:mb-7\"\n        >\n          {/* Sliding Active Pill Background */}\n          <span\n            aria-hidden=\"true\"\n            className={cn(\n              \"pointer-events-none absolute top-1.5 bottom-1.5 left-1.5 w-[calc(50%-6px)] rounded-md bg-card shadow-xs border border-border/80 transition-transform duration-500 ease-[cubic-bezier(0.16,1,0.3,1)] will-change-transform\",\n              billingCycle === \"yearly\" ? \"translate-x-full\" : \"translate-x-0\",\n            )}\n          />\n\n          <button\n            type=\"button\"\n            role=\"tab\"\n            aria-selected={billingCycle === \"monthly\"}\n            onClick={() => setBillingCycle(\"monthly\")}\n            className={cn(\n              \"relative z-10 py-2.5 sm:py-3 px-3 rounded-md font-sans text-[13.5px] transition-colors duration-300 flex items-center justify-center cursor-pointer select-none\",\n              billingCycle === \"monthly\"\n                ? \"text-foreground font-semibold\"\n                : \"text-muted-foreground font-medium hover:text-foreground\",\n            )}\n          >\n            {monthlyLabel}\n          </button>\n\n          <button\n            type=\"button\"\n            role=\"tab\"\n            aria-selected={billingCycle === \"yearly\"}\n            onClick={() => setBillingCycle(\"yearly\")}\n            className={cn(\n              \"relative z-10 py-2.5 sm:py-3 px-2.5 sm:px-3 rounded-md font-sans text-[13.5px] transition-colors duration-300 flex items-center justify-center gap-1.5 sm:gap-2 cursor-pointer select-none\",\n              billingCycle === \"yearly\"\n                ? \"text-foreground font-semibold\"\n                : \"text-muted-foreground font-medium hover:text-foreground\",\n            )}\n          >\n            <span className=\"leading-none\">{yearlyLabel}</span>\n            {discountBadge && (\n              <span\n                className={cn(\n                  \"inline-flex items-center justify-center px-2.5 pt-[4px] pb-[3px] rounded-md text-[10px] sm:text-[10.5px] font-semibold tracking-tight leading-none whitespace-nowrap transition-colors\",\n                  theme.bg,\n                )}\n              >\n                {discountBadge}\n              </span>\n            )}\n          </button>\n        </div>\n\n        {/* DESKTOP / HORIZONTAL LAYOUT (3-Column Grid + Bottom Users/Order Bar) */}\n        <div\n          className={cn(\n            layoutMode === \"vertical\"\n              ? \"hidden\"\n              : layoutMode === \"horizontal\"\n                ? \"block\"\n                : \"hidden md:block\",\n          )}\n        >\n          <div\n            role=\"radiogroup\"\n            aria-label=\"Subscription plans\"\n            className=\"grid grid-cols-1 md:grid-cols-3 gap-4 items-stretch\"\n          >\n            {plans.map((plan, cardIdx) => {\n              const isSelected = selectedPlanId === plan.id;\n              const priceStr = getPlanPrice(plan);\n              const periodStr = getPlanPeriod(plan);\n              const isLeftCard = cardIdx === 0;\n              const isCenterCard = cardIdx === 1;\n              const isRightCard = cardIdx === 2;\n\n              const stackedTransform = isCenterCard\n                ? \"translate3d(0px, 0px, 0px) scale(1)\"\n                : isLeftCard\n                  ? \"translate3d(calc(100% + 1rem), 6px, 0px) scale(0.92)\"\n                  : isRightCard\n                    ? \"translate3d(calc(-100% - 1rem), 6px, 0px) scale(0.92)\"\n                    : \"translate3d(0px, 0px, 0px) scale(1)\";\n\n              return (\n                <div\n                  key={plan.id}\n                  role=\"radio\"\n                  aria-checked={isSelected}\n                  tabIndex={0}\n                  onClick={() => setSelectedPlanId(plan.id)}\n                  onKeyDown={(e) => {\n                    if (e.key === \"Enter\" || e.key === \" \") {\n                      e.preventDefault();\n                      setSelectedPlanId(plan.id);\n                    }\n                  }}\n                  className={cn(\n                    \"relative rounded-lg p-5 cursor-pointer transition-[transform,opacity,border-color,box-shadow] duration-[950ms] ease-[cubic-bezier(0.16,1,0.3,1)] will-change-transform flex flex-col justify-between bg-card outline-none focus-visible:ring-2 focus-visible:ring-primary\",\n                    isCenterCard\n                      ? \"z-20\"\n                      : isSelected && cardsSpread\n                        ? \"z-30\"\n                        : \"z-10\",\n                    !cardsSpread && !isCenterCard ? \"opacity-75\" : \"opacity-100\",\n                    isSelected\n                      ? \"border border-border shadow-xs\"\n                      : \"border border-border hover:border-foreground/30\",\n                  )}\n                  style={{\n                    transform: cardsSpread\n                      ? \"translate3d(0px, 0px, 0px) scale(1)\"\n                      : stackedTransform,\n                    ...(isSelected\n                      ? {\n                          borderColor:\n                            \"color-mix(in srgb, var(--pricing-accent, currentColor) 28%, transparent)\",\n                        }\n                      : {}),\n                  }}\n                >\n                  {isSelected && (\n                    <div\n                      aria-hidden=\"true\"\n                      className={cn(\n                        \"pointer-events-none absolute inset-[-1px] rounded-lg\",\n                        theme.text,\n                      )}\n                    >\n                      <span\n                        className=\"absolute inset-0 overflow-hidden rounded-lg p-[2px]\"\n                        style={PLANS_PRO_RING_MASK}\n                      >\n                        <span\n                          className=\"absolute left-1/2 top-1/2 aspect-square w-[250%] -translate-x-1/2 -translate-y-1/2 animate-[spin_4s_linear_infinite]\"\n                          style={{ background: PLANS_PRO_FOUR_BEAM_GRADIENT }}\n                        />\n                      </span>\n                    </div>\n                  )}\n                  {/* Card Top Header */}\n                  <div className=\"flex items-start justify-between gap-2\">\n                    <div className=\"flex items-center gap-3\">\n                      {renderRadio(isSelected)}\n                      <div className=\"flex flex-col text-left\">\n                        <span className=\"font-sans text-[15px] font-bold text-foreground leading-[1.2]\">\n                          {plan.title}\n                        </span>\n                        <span className=\"font-sans text-[12.5px] font-normal text-muted-foreground leading-[1.2] mt-0.5\">\n                          {plan.subtitle}\n                        </span>\n                      </div>\n                    </div>\n\n                    <div className=\"flex flex-col items-end text-right shrink-0\">\n                      <span className=\"font-sans text-[15px] font-bold text-foreground leading-[1.2] tabular-nums\">\n                        $<AnimatedPrice value={priceStr} counting={counting} />\n                      </span>\n                      <span className=\"font-sans text-[12px] font-normal text-muted-foreground leading-[1.2] mt-0.5\">\n                        {periodStr}\n                      </span>\n                    </div>\n                  </div>\n\n                  {/* Features List */}\n                  <ul className=\"mt-6 space-y-2.5\">\n                    {plan.features.map((feature, idx) => (\n                      <li\n                        key={idx}\n                        className=\"flex items-center gap-2.5 font-sans text-[12.5px] text-foreground/85 leading-snug\"\n                      >\n                        <Check\n                          className={cn(\n                            \"w-3.5 h-3.5 stroke-[2.2] shrink-0 transition-colors\",\n                            isSelected ? theme.text : \"text-foreground/70\",\n                          )}\n                        />\n                        <span>{feature}</span>\n                      </li>\n                    ))}\n                  </ul>\n                </div>\n              );\n            })}\n          </div>\n\n          {/* Horizontal Divider */}\n          <div className=\"border-t border-border my-6\" />\n\n          {/* Bottom Bar: Users Stepper (Left) + Order CTA (Right) */}\n          <div className=\"flex flex-col sm:flex-row items-stretch sm:items-center justify-between gap-4\">\n            {renderUsersStepper(false)}\n            {renderOrderButton(false)}\n          </div>\n        </div>\n\n        {/* MOBILE / VERTICAL ACCORDION LAYOUT (Stacked Expandable Cards + Full-Width Order CTA) */}\n        <div\n          className={cn(\n            layoutMode === \"vertical\"\n              ? \"block\"\n              : layoutMode === \"horizontal\"\n                ? \"hidden\"\n                : \"block md:hidden\",\n          )}\n        >\n          <div\n            role=\"radiogroup\"\n            aria-label=\"Subscription plans\"\n            className=\"flex flex-col gap-3\"\n          >\n            {plans.map((plan) => {\n              const isSelected = selectedPlanId === plan.id;\n              const priceStr = getPlanPrice(plan);\n              const periodStr = getPlanPeriod(plan);\n\n              return (\n                <div\n                  key={plan.id}\n                  role=\"radio\"\n                  aria-checked={isSelected}\n                  tabIndex={0}\n                  onClick={() => setSelectedPlanId(plan.id)}\n                  onKeyDown={(e) => {\n                    if (e.key === \"Enter\" || e.key === \" \") {\n                      e.preventDefault();\n                      setSelectedPlanId(plan.id);\n                    }\n                  }}\n                  className={cn(\n                    \"relative rounded-lg px-4 sm:px-5 py-5 sm:py-5.5 cursor-pointer transition-all duration-300 ease-[cubic-bezier(0.22,1,0.36,1)] bg-card outline-none focus-visible:ring-2 focus-visible:ring-primary\",\n                    isSelected\n                      ? \"border border-border shadow-xs\"\n                      : \"border border-border hover:border-foreground/30\",\n                  )}\n                  style={\n                    isSelected\n                      ? {\n                          borderColor:\n                            \"color-mix(in srgb, var(--pricing-accent, currentColor) 28%, transparent)\",\n                        }\n                      : undefined\n                  }\n                >\n                  {isSelected && (\n                    <div\n                      aria-hidden=\"true\"\n                      className={cn(\n                        \"pointer-events-none absolute inset-[-1px] rounded-lg\",\n                        theme.text,\n                      )}\n                    >\n                      <span\n                        className=\"absolute inset-0 overflow-hidden rounded-lg p-[2px]\"\n                        style={PLANS_PRO_RING_MASK}\n                      >\n                        <span\n                          className=\"absolute left-1/2 top-1/2 aspect-square w-[250%] -translate-x-1/2 -translate-y-1/2 animate-[spin_4s_linear_infinite]\"\n                          style={{ background: PLANS_PRO_FOUR_BEAM_GRADIENT }}\n                        />\n                      </span>\n                    </div>\n                  )}\n                  {/* Top Row: Radio + Plan Title/Subtitle + Price/Period */}\n                  <div className=\"flex items-start justify-between gap-2\">\n                    <div className=\"flex items-center gap-3\">\n                      {renderRadio(isSelected)}\n                      <div className=\"flex flex-col text-left\">\n                        <span className=\"font-sans text-[15px] font-bold text-foreground leading-[1.2]\">\n                          {plan.title}\n                        </span>\n                        <span className=\"font-sans text-[12.5px] font-normal text-muted-foreground leading-[1.2] mt-0.5\">\n                          {plan.subtitle}\n                        </span>\n                      </div>\n                    </div>\n\n                    <div className=\"flex flex-col items-end text-right shrink-0\">\n                      <span className=\"font-sans text-[15px] font-bold text-foreground leading-[1.2] tabular-nums\">\n                        $<AnimatedPrice value={priceStr} counting={counting} />\n                      </span>\n                      <span className=\"font-sans text-[12px] font-normal text-muted-foreground leading-[1.2] mt-0.5\">\n                        {periodStr}\n                      </span>\n                    </div>\n                  </div>\n\n                  {/* Smooth Animated Expand/Collapse Content for Mobile/Vertical */}\n                  <div\n                    inert={!isSelected}\n                    className={cn(\n                      \"grid transition-[grid-template-rows,opacity,margin-top] duration-500 ease-[cubic-bezier(0.22,1,0.36,1)]\",\n                      isSelected\n                        ? \"grid-rows-[1fr] opacity-100 mt-5\"\n                        : \"grid-rows-[0fr] opacity-0 mt-0 pointer-events-none\",\n                    )}\n                  >\n                    <div className=\"overflow-hidden min-h-0\">\n                      <div\n                        className={cn(\n                          \"transition-transform duration-500 ease-[cubic-bezier(0.22,1,0.36,1)]\",\n                          isSelected ? \"translate-y-0\" : \"-translate-y-2\",\n                        )}\n                      >\n                        <ul className=\"space-y-2.5\">\n                          {plan.features.map((feature, idx) => (\n                            <li\n                              key={idx}\n                              className=\"flex items-center gap-2.5 font-sans text-[12.5px] text-foreground/85 leading-snug\"\n                            >\n                              <Check\n                                className={cn(\n                                  \"w-3.5 h-3.5 stroke-[2.2] shrink-0 transition-colors\",\n                                  theme.text,\n                                )}\n                              />\n                              <span>{feature}</span>\n                            </li>\n                          ))}\n                        </ul>\n\n                        <div className=\"border-t border-border my-4\" />\n\n                        {renderUsersStepper(true)}\n                      </div>\n                    </div>\n                  </div>\n                </div>\n              );\n            })}\n          </div>\n\n          <div className=\"mt-4\">{renderOrderButton(true)}</div>\n        </div>\n      </div>\n    </section>\n  );\n}\n\nexport default PricingCards;\n\n",
      "type": "registry:component",
      "target": "components/custom/blocks/Pricing.tsx"
    },
    {
      "path": "src/components/custom/blocks/pricing-theme.ts",
      "content": "\"use client\";\n\nimport React from \"react\";\n\nexport type PricingColor = \"indigo\" | \"rose\" | \"emerald\" | \"zinc\" | string;\n\nconst colorThemes: Record<string, Record<string, string>> = {\n  indigo: {\n    text: \"text-indigo-600 dark:text-indigo-400\",\n    bg: \"bg-indigo-600 text-white\",\n    bgSoft:\n      \"bg-indigo-100 dark:bg-indigo-500/20 text-indigo-700 dark:text-indigo-400\",\n    border: \"border-indigo-600 dark:border-indigo-500\",\n    shadow: \"shadow-indigo-500/20\",\n    gradient: \"from-indigo-600 to-purple-600\",\n    gradientSoft:\n      \"from-indigo-100 to-transparent dark:from-indigo-500/10 dark:to-transparent\",\n    ring: \"ring-indigo-600 dark:ring-indigo-500\",\n    slider:\n      \"accent-indigo-600 dark:accent-indigo-500 [&::-webkit-slider-thumb]:bg-indigo-600 dark:[&::-webkit-slider-thumb]:bg-indigo-500\",\n    fill: \"fill-indigo-600 dark:fill-indigo-400\",\n  },\n  rose: {\n    text: \"text-rose-600 dark:text-rose-400\",\n    bg: \"bg-rose-600 text-white\",\n    bgSoft: \"bg-rose-100 dark:bg-rose-500/20 text-rose-700 dark:text-rose-400\",\n    border: \"border-rose-600 dark:border-rose-500\",\n    shadow: \"shadow-rose-500/20\",\n    gradient: \"from-rose-600 to-orange-500\",\n    gradientSoft:\n      \"from-rose-100 to-transparent dark:from-rose-500/10 dark:to-transparent\",\n    ring: \"ring-rose-600 dark:ring-rose-500\",\n    slider:\n      \"accent-rose-600 dark:accent-rose-500 [&::-webkit-slider-thumb]:bg-rose-600 dark:[&::-webkit-slider-thumb]:bg-rose-500\",\n    fill: \"fill-rose-600 dark:fill-rose-400\",\n  },\n  emerald: {\n    text: \"text-emerald-600 dark:text-emerald-400\",\n    bg: \"bg-emerald-600 text-white\",\n    bgSoft:\n      \"bg-emerald-100 dark:bg-emerald-500/20 text-emerald-700 dark:text-emerald-400\",\n    border: \"border-emerald-600 dark:border-emerald-500\",\n    shadow: \"shadow-emerald-500/20\",\n    gradient: \"from-emerald-600 to-teal-500\",\n    gradientSoft:\n      \"from-emerald-100 to-transparent dark:from-emerald-500/10 dark:to-transparent\",\n    ring: \"ring-emerald-600 dark:ring-emerald-500\",\n    slider:\n      \"accent-emerald-600 dark:accent-emerald-500 [&::-webkit-slider-thumb]:bg-emerald-600 dark:[&::-webkit-slider-thumb]:bg-emerald-500\",\n    fill: \"fill-emerald-600 dark:fill-emerald-400\",\n  },\n  zinc: {\n    text: \"text-zinc-900 dark:text-zinc-100\",\n    bg: \"bg-zinc-900 dark:bg-zinc-100 text-white dark:text-zinc-900\",\n    bgSoft: \"bg-zinc-200 dark:bg-zinc-800 text-zinc-900 dark:text-zinc-100\",\n    border: \"border-zinc-900 dark:border-zinc-100\",\n    shadow: \"shadow-zinc-900/20 dark:shadow-white/10\",\n    gradient: \"from-zinc-800 to-zinc-900 dark:from-zinc-200 dark:to-zinc-400\",\n    gradientSoft:\n      \"from-zinc-200 to-transparent dark:from-zinc-800/50 dark:to-transparent\",\n    ring: \"ring-zinc-900 dark:ring-zinc-100\",\n    slider:\n      \"accent-zinc-900 dark:accent-zinc-100 [&::-webkit-slider-thumb]:bg-zinc-900 dark:[&::-webkit-slider-thumb]:bg-zinc-100\",\n    fill: \"fill-zinc-900 dark:fill-zinc-100\",\n  },\n};\n\nconst hexToRgb = (hex: string) => {\n  let cleanHex = hex.replace(/^#/, \"\");\n  if (cleanHex.length === 3)\n    cleanHex = cleanHex\n      .split(\"\")\n      .map((x) => x + x)\n      .join(\"\");\n  const result = /^([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(cleanHex);\n  return result\n    ? `${parseInt(result[1], 16)}, ${parseInt(result[2], 16)}, ${parseInt(result[3], 16)}`\n    : \"99, 102, 241\";\n};\n\nexport const getThemeStyles = (color: PricingColor = \"primary\") => {\n  if (color === \"primary\") {\n    return {\n      theme: {\n        text: \"text-[var(--pricing-accent)]\",\n        bg: \"bg-[var(--pricing-accent)] text-[var(--pricing-on)]\",\n        bgSoft: \"bg-[var(--pricing-accent)]/10 text-[var(--pricing-accent)]\",\n        border: \"border-[var(--pricing-accent)]\",\n        shadow: \"shadow-[var(--pricing-accent)]/20\",\n        gradient: \"from-[var(--pricing-accent)] to-[var(--pricing-accent)]/80\",\n        gradientSoft:\n          \"from-[var(--pricing-accent)]/10 to-transparent dark:from-[var(--pricing-accent)]/10 dark:to-transparent\",\n        ring: \"ring-[var(--pricing-accent)]\",\n        slider:\n          \"accent-[var(--pricing-accent)] [&::-webkit-slider-thumb]:bg-[var(--pricing-accent)]\",\n        fill: \"fill-[var(--pricing-accent)]\",\n      },\n      style: {\n        \"--pricing-accent\": \"var(--primary)\",\n        \"--pricing-on\": \"var(--primary-foreground)\",\n      } as React.CSSProperties,\n    };\n  }\n\n  if (colorThemes[color]) {\n    return { theme: colorThemes[color], style: {} };\n  }\n\n  const rgb = hexToRgb(color);\n  return {\n    theme: {\n      text: \"text-[var(--pricing-accent)]\",\n      bg: \"bg-[var(--pricing-accent)] text-white\",\n      bgSoft: \"bg-[var(--pricing-accent)]/10 text-[var(--pricing-accent)]\",\n      border: \"border-[var(--pricing-accent)]\",\n      shadow: \"shadow-[var(--pricing-accent)]/20\",\n      gradient: \"from-[var(--pricing-accent)] to-[var(--pricing-accent)]/80\",\n      gradientSoft: \"from-[var(--pricing-accent)]/10 to-transparent\",\n      ring: \"ring-[var(--pricing-accent)]\",\n      slider:\n        \"accent-[var(--pricing-accent)] [&::-webkit-slider-thumb]:bg-[var(--pricing-accent)]\",\n      fill: \"fill-[var(--pricing-accent)]\",\n    },\n    style: {\n      \"--pricing-accent\": color,\n      \"--pricing-rgb\": rgb,\n    } as React.CSSProperties,\n  };\n};\n",
      "type": "registry:component",
      "target": "components/custom/blocks/pricing-theme.ts"
    }
  ],
  "docs": "Named exports: PricingCards, PricingBuilder, PricingTable, PricingSlider, PricingTypographic, PricingPlans. The largest pricing item — variants include cards, builder, table, slider, typographic, and interactive service checklist. The tiered cards popular plan features subtle 3D tilt from tilted-card.",
  "categories": [
    "commerce",
    "marketing"
  ],
  "type": "registry:component"
}
