<!-- source-hash: 71df967a1bb27327de1d15d5c696e36b -->
A configurable, platform-aware footer component for Next.js (client-side) that renders navigation sections, social icons, branding, and custom content slots based on a `FooterConfig` object.

## Key Components

**`Footer`** — Public entry point. Validates config presence and delegates to `UniversalFooter`. Returns `null` with a console warning if no config is provided.

**`UniversalFooter`** — Core rendering logic. Builds a responsive 4-column grid layout with:
- **Column 1:** Logo, platform name, description, social icons (`SocialIconRow`)
- **Dynamic sections:** Rendered from `config.sections[]`
- **Custom component slot:** `config.customComponent`
- **Right column slot:** `config.rightColumnContent` or relocated description via `config.moveDescriptionToRight`

**`FooterConfig`** — Interface driving all layout behavior. Key flags:

| Flag | Effect |
|------|--------|
| `moveDescriptionToRight` | Moves description to the right column |
| `keepBelowDescriptionLeft` | Keeps `belowDescriptionContent` in column 1 when description is moved |
| `hideSocialRow` | Suppresses the `SocialIconRow` |
| `backgroundColor` | ODS utility class override (default: `bg-ods-bg-card`) |

**`renderLink`** — Optional prop to override the default anchor renderer per link.

## Usage Example

```typescript
import { Footer } from "@/components/footer"

const config: FooterConfig = {
  name: "Flamingo",
  legalName: "Flamingo Technologies Inc.",
  description: "AI-powered MSP platform.",
  sections: [
    {
      title: "Product",
      links: [
        { href: "/openframe", label: "OpenFrame" },
        { href: "/pricing", label: "Pricing" },
      ],
    },
  ],
  social: {
    github: "https://github.com/flamingo",
    twitter: "https://twitter.com/flamingo",
  },
  backgroundColor: "bg-ods-system-greys-black",
}

export default function Layout() {
  return <Footer config={config} />
}
```