diff --git a/app/page.tsx b/app/page.tsx
index d01a958..785f565 100644
--- a/app/page.tsx
+++ b/app/page.tsx
@@ -1,3 +1,4 @@
+import { Header } from '@/components/layout/Header';
import { Hero } from '@/components/sections/Hero';
import { FraseAncla } from '@/components/sections/FraseAncla';
import { ParaQuien } from '@/components/sections/ParaQuien';
@@ -18,6 +19,7 @@ export default function Home() {
return (
<>
+
{/* dueña puede cambiar a "hormozi" */}
diff --git a/components/layout/Header.tsx b/components/layout/Header.tsx
new file mode 100644
index 0000000..1703f39
--- /dev/null
+++ b/components/layout/Header.tsx
@@ -0,0 +1,19 @@
+import { Wordmark } from '@/components/primitives/Wordmark';
+import { CTA } from '@/components/primitives/CTA';
+import { Container } from '@/components/primitives/Container';
+import { header } from '@/lib/content';
+
+export function Header() {
+ return (
+
+ );
+}
diff --git a/components/layout/__tests__/Header.test.tsx b/components/layout/__tests__/Header.test.tsx
new file mode 100644
index 0000000..a18a25f
--- /dev/null
+++ b/components/layout/__tests__/Header.test.tsx
@@ -0,0 +1,15 @@
+import { render, screen } from '@testing-library/react';
+import { describe, it, expect } from 'vitest';
+import { Header } from '../Header';
+
+describe('', () => {
+ it('renders the wordmark', () => {
+ const { container } = render();
+ expect(container.textContent).toContain('creeer');
+ });
+ it('renders a persistent CTA linking to the contact section', () => {
+ render();
+ const cta = screen.getByRole('link', { name: /Hablemos/i });
+ expect(cta).toHaveAttribute('href', '#contacto');
+ });
+});
diff --git a/lib/content.ts b/lib/content.ts
index 3a87dbf..b72dabc 100644
--- a/lib/content.ts
+++ b/lib/content.ts
@@ -72,3 +72,7 @@ export const cierre = {
linkedin: { label: 'LinkedIn', href: 'https://linkedin.com/in/...' }, // TODO dueña: real URL
},
};
+
+export const header = {
+ cta: 'Hablemos', // short nav CTA → #contacto (the full CTA lives in Hero/Cierre)
+};