Initial commit
This commit is contained in:
167
src/app/blog/page.tsx
Normal file
167
src/app/blog/page.tsx
Normal file
@@ -0,0 +1,167 @@
|
||||
"use client";
|
||||
|
||||
import { useEffect, useState } from "react";
|
||||
import ReactLenis from "lenis/react";
|
||||
import BlogCardThree from '@/components/sections/blog/BlogCardThree';
|
||||
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||
|
||||
type BlogPost = {
|
||||
id: string;
|
||||
category: string;
|
||||
title: string;
|
||||
excerpt: string;
|
||||
imageSrc: string;
|
||||
imageAlt?: string;
|
||||
authorName: string;
|
||||
authorAvatar: string;
|
||||
date: string;
|
||||
onBlogClick?: () => void;
|
||||
};
|
||||
|
||||
const defaultPosts: BlogPost[] = [
|
||||
{
|
||||
id: "1", category: "Design", title: "UX review presentations", excerpt: "How do you create compelling presentations that wow your colleagues and impress your managers?", imageSrc: "/placeholders/placeholder3.avif", imageAlt: "Abstract design with purple and silver tones", authorName: "Olivia Rhye", authorAvatar: "/placeholders/placeholder3.avif", date: "20 Jan 2025", onBlogClick: () => console.log("Blog 1 clicked"),
|
||||
},
|
||||
{
|
||||
id: "2", category: "Development", title: "Building scalable applications", excerpt: "Learn the best practices for building applications that can handle millions of users.", imageSrc: "/placeholders/placeholder4.webp", imageAlt: "Development workspace", authorName: "John Smith", authorAvatar: "/placeholders/placeholder4.webp", date: "18 Jan 2025", onBlogClick: () => console.log("Blog 2 clicked"),
|
||||
},
|
||||
{
|
||||
id: "3", category: "Marketing", title: "Content strategy essentials", excerpt: "Discover how to create a content strategy that drives engagement and conversions.", imageSrc: "/placeholders/placeholder3.avif", imageAlt: "Marketing strategy board", authorName: "Sarah Johnson", authorAvatar: "/placeholders/placeholder3.avif", date: "15 Jan 2025", onBlogClick: () => console.log("Blog 3 clicked"),
|
||||
},
|
||||
{
|
||||
id: "4", category: "Product", title: "Product management 101", excerpt: "Everything you need to know to become an effective product manager in 2025.", imageSrc: "/placeholders/placeholder4.webp", imageAlt: "Product planning session", authorName: "Mike Davis", authorAvatar: "/placeholders/placeholder4.webp", date: "12 Jan 2025", onBlogClick: () => console.log("Blog 4 clicked"),
|
||||
},
|
||||
];
|
||||
|
||||
export default function BlogPage() {
|
||||
const [posts, setPosts] = useState<BlogPost[]>(defaultPosts);
|
||||
const [isLoading, setIsLoading] = useState(true);
|
||||
|
||||
useEffect(() => {
|
||||
const fetchPosts = async () => {
|
||||
try {
|
||||
const apiUrl = process.env.NEXT_PUBLIC_API_URL;
|
||||
const projectId = process.env.NEXT_PUBLIC_PROJECT_ID;
|
||||
|
||||
if (!apiUrl || !projectId) {
|
||||
console.warn("NEXT_PUBLIC_API_URL or NEXT_PUBLIC_PROJECT_ID not configured, using default posts");
|
||||
setIsLoading(false);
|
||||
return;
|
||||
}
|
||||
|
||||
const url = `${apiUrl}/posts/${projectId}?status=published`;
|
||||
const response = await fetch(url, {
|
||||
method: "GET", headers: {
|
||||
"Content-Type": "application/json"},
|
||||
});
|
||||
|
||||
if (response.ok) {
|
||||
const resp = await response.json();
|
||||
const data = resp.data;
|
||||
if (Array.isArray(data) && data.length > 0) {
|
||||
const mappedPosts = data.map((post: any) => ({
|
||||
id: post.id || String(Math.random()),
|
||||
category: post.category || "General", title: post.title || "Untitled", excerpt: post.excerpt || post.content.slice(0, 30) || "", imageSrc: post.imageUrl || "/placeholders/placeholder3.avif", imageAlt: post.imageAlt || post.title || "", authorName: post.author?.name || "Anonymous", authorAvatar: post.author?.avatar || "/placeholders/placeholder3.avif", date: post.date || post.createdAt || new Date().toLocaleDateString("en-GB", { day: "numeric", month: "short", year: "numeric" }),
|
||||
onBlogClick: () => console.log(`Blog ${post.id} clicked`),
|
||||
}));
|
||||
setPosts(mappedPosts);
|
||||
}
|
||||
} else {
|
||||
console.warn(`API request failed with status ${response.status}, using default posts`);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error fetching posts:", error);
|
||||
} finally {
|
||||
setIsLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
fetchPosts();
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="slide-background"
|
||||
defaultTextAnimation="background-highlight"
|
||||
borderRadius="rounded"
|
||||
contentWidth="compact"
|
||||
sizing="mediumSizeLargeTitles"
|
||||
background="none"
|
||||
cardStyle="glass-elevated"
|
||||
primaryButtonStyle="shadow"
|
||||
secondaryButtonStyle="solid"
|
||||
headingFontWeight="light"
|
||||
>
|
||||
<ReactLenis root>
|
||||
<div className="min-h-screen bg-background">
|
||||
<NavbarStyleFullscreen
|
||||
brandName="MADRID AGENCY"
|
||||
navItems={[
|
||||
{name: "Home", id: "/home"},
|
||||
{name: "Inicio", id: "hero"},
|
||||
{name: "Servicios", id: "services"},
|
||||
{name: "Casos", id: "portfolio"},
|
||||
{name: "Equipo", id: "team"},
|
||||
{name: "Contacto", id: "contact"}
|
||||
]}
|
||||
bottomLeftText="Madrid, España"
|
||||
bottomRightText="hello@madridagency.es"
|
||||
/>
|
||||
|
||||
{isLoading ? (
|
||||
<div className="w-content-width mx-auto py-20 text-center">
|
||||
<p className="text-foreground">Loading posts...</p>
|
||||
</div>
|
||||
) : (
|
||||
<BlogCardThree
|
||||
blogs={posts}
|
||||
title="Artículos Destacados"
|
||||
description="Explora nuestras últimas perspectivas y conocimientos del sector"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="noInvert"
|
||||
animationType="slide-up"
|
||||
carouselMode="buttons"
|
||||
uniformGridCustomHeightClasses="min-h-[600px]"
|
||||
/>
|
||||
)}
|
||||
|
||||
<FooterLogoEmphasis
|
||||
logoText="MADRID AGENCY"
|
||||
columns={[
|
||||
{
|
||||
items: [
|
||||
{label: "Inicio", href: "hero"},
|
||||
{label: "Servicios", href: "services"},
|
||||
{label: "Casos", href: "portfolio"}
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{label: "Equipo", href: "team"},
|
||||
{label: "Blog", href: "blog"},
|
||||
{label: "Contacto", href: "contact"}
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{label: "hello@madridagency.es", href: "mailto:hello@madridagency.es"},
|
||||
{label: "+34 91 XXXX XXXX", href: "tel:+34911234567"},
|
||||
{label: "Madrid, España", href: "#"}
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{label: "Instagram", href: "https://instagram.com"},
|
||||
{label: "LinkedIn", href: "https://linkedin.com"},
|
||||
{label: "Twitter", href: "https://twitter.com"}
|
||||
]
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
156
src/app/contacto/page.tsx
Normal file
156
src/app/contacto/page.tsx
Normal file
@@ -0,0 +1,156 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||
import ContactSplit from '@/components/sections/contact/ContactSplit';
|
||||
import FaqDouble from '@/components/sections/faq/FaqDouble';
|
||||
import MetricSplitMediaAbout from '@/components/sections/about/MetricSplitMediaAbout';
|
||||
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
|
||||
import Link from 'next/link';
|
||||
import { Mail, HelpCircle, Clock } from 'lucide-react';
|
||||
|
||||
export default function ContactoPage() {
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="slide-background"
|
||||
defaultTextAnimation="background-highlight"
|
||||
borderRadius="rounded"
|
||||
contentWidth="compact"
|
||||
sizing="mediumSizeLargeTitles"
|
||||
background="none"
|
||||
cardStyle="glass-elevated"
|
||||
primaryButtonStyle="shadow"
|
||||
secondaryButtonStyle="solid"
|
||||
headingFontWeight="light"
|
||||
>
|
||||
{/* Navbar */}
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleFullscreen
|
||||
brandName="MADRID AGENCY"
|
||||
navItems={[
|
||||
{ name: "Inicio", id: "/" },
|
||||
{ name: "Servicios", id: "/servicios" },
|
||||
{ name: "Equipo", id: "/equipo" },
|
||||
{ name: "Contacto", id: "/contacto" }
|
||||
]}
|
||||
bottomLeftText="Madrid, España"
|
||||
bottomRightText="hello@madridagency.es"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Contact Section */}
|
||||
<div id="contact-form" data-section="contact-form">
|
||||
<ContactSplit
|
||||
tag="Contacto"
|
||||
title="¿Listo para transformar tu marca?"
|
||||
description="Cuéntanos tu proyecto y descubre cómo podemos ayudarte a alcanzar tus objetivos de marketing digital. Respuesta garantizada en menos de 24 horas."
|
||||
useInvertedBackground="noInvert"
|
||||
imageSrc="https://img.b2bpic.net/free-photo/desk-arrangement-with-laptop-high-angle_23-2149073071.jpg"
|
||||
imageAlt="Oficina moderna de Madrid Agency"
|
||||
mediaPosition="right"
|
||||
inputPlaceholder="tu@empresa.com"
|
||||
buttonText="Contactar ahora"
|
||||
termsText="Al contactarnos, aceptas que procesemos tus datos para responderte. Política de privacidad disponible en nuestra web."
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Process Section */}
|
||||
<div id="process" data-section="process">
|
||||
<MetricSplitMediaAbout
|
||||
tag="Nuestro Proceso"
|
||||
tagIcon={Clock}
|
||||
title="De la consulta inicial al crecimiento sostenible"
|
||||
description="Seguimos una metodología probada que garantiza resultados medibles. Desde la primera llamada hasta la implementación y optimización continua, cada paso está diseñado para maximizar tu ROI."
|
||||
metrics={[
|
||||
{ value: "24h", title: "Tiempo máximo de respuesta inicial" },
|
||||
{ value: "7 días", title: "Para entrega de propuesta personalizada" }
|
||||
]}
|
||||
imageSrc="https://img.b2bpic.net/free-photo/colleagues-discussing-their-work-laptop_53876-105333.jpg"
|
||||
imageAlt="Equipo desarrollando estrategia personalizada"
|
||||
useInvertedBackground="invertDefault"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* FAQ Section */}
|
||||
<div id="contact-faq" data-section="contact-faq">
|
||||
<FaqDouble
|
||||
tag="Preguntas antes de contactar"
|
||||
tagIcon={HelpCircle}
|
||||
title="Resuelve tus dudas principales"
|
||||
description="Las respuestas a las preguntas más frecuentes sobre cómo trabajamos, qué incluimos y cómo empezar tu proyecto con Madrid Agency."
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="noInvert"
|
||||
faqs={[
|
||||
{
|
||||
id: "1",
|
||||
title: "¿La consultoría inicial tiene coste?",
|
||||
content: "No. La primera consultoría de 60 minutos es completamente gratuita. Analizamos tu situación actual, identificamos oportunidades y te presentamos recomendaciones iniciales sin compromiso."
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
title: "¿Cuánto tiempo necesitáis para una propuesta?",
|
||||
content: "Tras la consultoría inicial, entregamos una propuesta detallada en máximo 7 días laborables. Incluye estrategia, timeline, inversión y KPIs específicos para tu proyecto."
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
title: "¿Trabajáis con empresas fuera de Madrid?",
|
||||
content: "Sí. Aunque estamos en Madrid, trabajamos con clientes de toda España y Latinoamérica. Todas las reuniones pueden ser presenciales en Madrid o virtuales según prefieras."
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
title: "¿Qué información necesitáis para empezar?",
|
||||
content: "Para la consultoría inicial necesitamos: descripción de tu empresa, objetivos principales, presupuesto aproximado y cualquier material de marketing actual (web, redes, etc.)."
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
title: "¿Cuándo podemos empezar el proyecto?",
|
||||
content: "Una vez aprobada la propuesta y firmado el acuerdo, comenzamos en un plazo máximo de 10 días laborables. Los proyectos urgentes pueden iniciarse en 3-5 días."
|
||||
},
|
||||
{
|
||||
id: "6",
|
||||
title: "¿Ofrecéis contratos mensuales sin permanencia?",
|
||||
content: "Sí. Ofrecemos tanto proyectos puntuales como retainers mensuales flexibles. No exigimos permanencia mínima, aunque recomendamos al menos 6 meses para resultados óptimos."
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Footer */}
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterLogoEmphasis
|
||||
logoText="MADRID AGENCY"
|
||||
columns={[
|
||||
{
|
||||
items: [
|
||||
{ label: "Inicio", href: "/" },
|
||||
{ label: "Servicios", href: "/servicios" },
|
||||
{ label: "Equipo", href: "/equipo" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "Contacto", href: "/contacto" },
|
||||
{ label: "Blog", href: "#" },
|
||||
{ label: "Casos", href: "/servicios" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "hello@madridagency.es", href: "mailto:hello@madridagency.es" },
|
||||
{ label: "+34 91 XXXX XXXX", href: "tel:+34911234567" },
|
||||
{ label: "Madrid, España", href: "#" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "Instagram", href: "https://instagram.com" },
|
||||
{ label: "LinkedIn", href: "https://linkedin.com" },
|
||||
{ label: "Twitter", href: "https://twitter.com" }
|
||||
]
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
192
src/app/equipo/page.tsx
Normal file
192
src/app/equipo/page.tsx
Normal file
@@ -0,0 +1,192 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||
import TeamCardOne from '@/components/sections/team/TeamCardOne';
|
||||
import MetricSplitMediaAbout from '@/components/sections/about/MetricSplitMediaAbout';
|
||||
import TestimonialCardOne from '@/components/sections/testimonial/TestimonialCardOne';
|
||||
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
|
||||
import Link from 'next/link';
|
||||
import { Users, Award, Star } from 'lucide-react';
|
||||
|
||||
export default function EquipoPage() {
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="slide-background"
|
||||
defaultTextAnimation="background-highlight"
|
||||
borderRadius="rounded"
|
||||
contentWidth="compact"
|
||||
sizing="mediumSizeLargeTitles"
|
||||
background="none"
|
||||
cardStyle="glass-elevated"
|
||||
primaryButtonStyle="shadow"
|
||||
secondaryButtonStyle="solid"
|
||||
headingFontWeight="light"
|
||||
>
|
||||
{/* Navbar */}
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleFullscreen
|
||||
brandName="MADRID AGENCY"
|
||||
navItems={[
|
||||
{ name: "Inicio", id: "/" },
|
||||
{ name: "Servicios", id: "/servicios" },
|
||||
{ name: "Equipo", id: "/equipo" },
|
||||
{ name: "Contacto", id: "/contacto" }
|
||||
]}
|
||||
bottomLeftText="Madrid, España"
|
||||
bottomRightText="hello@madridagency.es"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Team Section */}
|
||||
<div id="team" data-section="team">
|
||||
<TeamCardOne
|
||||
tag="Nuestro Equipo"
|
||||
tagIcon={Users}
|
||||
title="Los creadores detrás de cada éxito"
|
||||
description="Un equipo multidisciplinario de expertos en marketing digital, diseño y estrategia, unidos por la pasión de transformar marcas y generar resultados excepcionales."
|
||||
gridVariant="uniform-all-items-equal"
|
||||
animationType="slide-up"
|
||||
members={[
|
||||
{
|
||||
id: "1",
|
||||
name: "María García",
|
||||
role: "Directora Creativa",
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/attractive-blond-business-woman-white-shirt-grey-background_613910-11739.jpg",
|
||||
imageAlt: "María García"
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
name: "Carlos López",
|
||||
role: "Estratega Digital",
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/portrait-young-entrepreneur-woman_23-2148898746.jpg",
|
||||
imageAlt: "Carlos López"
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
name: "Sofia Martínez",
|
||||
role: "Head de Diseño",
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/close-up-woman-wearing-glasses_23-2148815602.jpg",
|
||||
imageAlt: "Sofia Martínez"
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
name: "David Ruiz",
|
||||
role: "Especialista en Analytics",
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/smiling-pretty-woman-with-short-curly-hair-dressed-jacket-glasses-poses-pink-with-clasped-hands-wonderful-smile_291650-1138.jpg",
|
||||
imageAlt: "David Ruiz"
|
||||
}
|
||||
]}
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="noInvert"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* About Our Values Section */}
|
||||
<div id="values" data-section="values">
|
||||
<MetricSplitMediaAbout
|
||||
tag="Nuestros Valores"
|
||||
tagIcon={Award}
|
||||
title="Excelencia, innovación y resultados medibles"
|
||||
description="En Madrid Agency creemos en la transparencia total, la innovación continua y la búsqueda incansable de la excelencia. Cada proyecto es una oportunidad de superar expectativas y crear valor real para nuestros clientes."
|
||||
metrics={[
|
||||
{ value: "10+", title: "Años de experiencia combinada" },
|
||||
{ value: "98%", title: "Tasa de satisfacción de clientes" }
|
||||
]}
|
||||
imageSrc="https://img.b2bpic.net/free-photo/colleagues-discussing-their-work-laptop_53876-105333.jpg"
|
||||
imageAlt: "Equipo colaborando en oficina"
|
||||
useInvertedBackground="invertDefault"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Client Testimonials Section */}
|
||||
<div id="client-testimonials" data-section="client-testimonials">
|
||||
<TestimonialCardOne
|
||||
tag="Testimonios de Clientes"
|
||||
tagIcon={Star}
|
||||
title="La experiencia de trabajar con nosotros"
|
||||
description="Descubre por qué nuestros clientes confían en Madrid Agency para impulsar su crecimiento digital y alcanzar sus objetivos más ambiciosos."
|
||||
gridVariant="uniform-all-items-equal"
|
||||
animationType="slide-up"
|
||||
testimonials={[
|
||||
{
|
||||
id: "1",
|
||||
name: "Elena Fernández",
|
||||
role: "CEO",
|
||||
company: "TechStart Madrid",
|
||||
rating: 5,
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/portrait-young-female-dentist-dentistry-concept-dental-treatment_169016-66975.jpg",
|
||||
imageAlt: "Elena Fernández"
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
name: "Juan Moreno",
|
||||
role: "Founder",
|
||||
company: "DigitalLabs",
|
||||
rating: 5,
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/businesswoman-happy-be-back-work_23-2148727621.jpg",
|
||||
imageAlt: "Juan Moreno"
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
name: "Patricia Sánchez",
|
||||
role: "Marketing Director",
|
||||
company: "Fashion Boutique Madrid",
|
||||
rating: 5,
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/attractive-blond-business-woman-white-shirt-grey-background_613910-3695.jpg",
|
||||
imageAlt: "Patricia Sánchez"
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
name: "Miguel Rodríguez",
|
||||
role: "Director General",
|
||||
company: "Growth Partners",
|
||||
rating: 5,
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/studio-portrait-blond-female-dressed-white-shirt-red-eyeglasses_613910-3575.jpg",
|
||||
imageAlt: "Miguel Rodríguez"
|
||||
}
|
||||
]}
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="noInvert"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Footer */}
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterLogoEmphasis
|
||||
logoText="MADRID AGENCY"
|
||||
columns={[
|
||||
{
|
||||
items: [
|
||||
{ label: "Inicio", href: "/" },
|
||||
{ label: "Servicios", href: "/servicios" },
|
||||
{ label: "Equipo", href: "/equipo" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "Contacto", href: "/contacto" },
|
||||
{ label: "Blog", href: "#" },
|
||||
{ label: "Casos", href: "/servicios" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "hello@madridagency.es", href: "mailto:hello@madridagency.es" },
|
||||
{ label: "+34 91 XXXX XXXX", href: "tel:+34911234567" },
|
||||
{ label: "Madrid, España", href: "#" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "Instagram", href: "https://instagram.com" },
|
||||
{ label: "LinkedIn", href: "https://linkedin.com" },
|
||||
{ label: "Twitter", href: "https://twitter.com" }
|
||||
]
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
BIN
src/app/favicon.ico
Normal file
BIN
src/app/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
595
src/app/globals.css
Normal file
595
src/app/globals.css
Normal file
@@ -0,0 +1,595 @@
|
||||
@import "tailwindcss";
|
||||
|
||||
:root {
|
||||
/* Base units */
|
||||
/* --vw is set by ThemeProvider */
|
||||
|
||||
/* --background: #fffafa;;
|
||||
--card: #fff7f7;;
|
||||
--foreground: #1a0000;;
|
||||
--primary-cta: #e63946;;
|
||||
--secondary-cta: #ffffff;;
|
||||
--accent: #f5c4c7;;
|
||||
--background-accent: #f09199;; */
|
||||
|
||||
--background: #fffafa;;
|
||||
--card: #fff7f7;;
|
||||
--foreground: #1a0000;;
|
||||
--primary-cta: #e63946;;
|
||||
--secondary-cta: #ffffff;;
|
||||
--accent: #f5c4c7;;
|
||||
--background-accent: #f09199;;
|
||||
|
||||
/* text sizing - set by ThemeProvider */
|
||||
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
|
||||
--text-xs: clamp(0.54rem, 0.72vw, 0.72rem);
|
||||
--text-sm: clamp(0.615rem, 0.82vw, 0.82rem);
|
||||
--text-base: clamp(0.69rem, 0.92vw, 0.92rem);
|
||||
--text-lg: clamp(0.75rem, 1vw, 1rem);
|
||||
--text-xl: clamp(0.825rem, 1.1vw, 1.1rem);
|
||||
--text-2xl: clamp(0.975rem, 1.3vw, 1.3rem);
|
||||
--text-3xl: clamp(1.2rem, 1.6vw, 1.6rem);
|
||||
--text-4xl: clamp(1.5rem, 2vw, 2rem);
|
||||
--text-5xl: clamp(2.025rem, 2.75vw, 2.75rem);
|
||||
--text-6xl: clamp(2.475rem, 3.3vw, 3.3rem);
|
||||
--text-7xl: clamp(3rem, 4vw, 4rem);
|
||||
--text-8xl: clamp(3.5rem, 4.5vw, 4.5rem);
|
||||
--text-9xl: clamp(5.25rem, 7vw, 7rem); */
|
||||
|
||||
/* Base spacing units */
|
||||
--vw-0_25: calc(var(--vw) * 0.25);
|
||||
--vw-0_5: calc(var(--vw) * 0.5);
|
||||
--vw-0_625: calc(var(--vw) * 0.625);
|
||||
--vw-0_75: calc(var(--vw) * 0.75);
|
||||
--vw-1: calc(var(--vw) * 1);
|
||||
--vw-1_25: calc(var(--vw) * 1.25);
|
||||
--vw-1_5: calc(var(--vw) * 1.5);
|
||||
--vw-1_75: calc(var(--vw) * 1.75);
|
||||
--vw-2: calc(var(--vw) * 2);
|
||||
--vw-2_25: calc(var(--vw) * 2.25);
|
||||
--vw-2_5: calc(var(--vw) * 2.5);
|
||||
--vw-2_75: calc(var(--vw) * 2.75);
|
||||
--vw-3: calc(var(--vw) * 3);
|
||||
|
||||
/* width */
|
||||
--width-5: clamp(4rem, 5vw, 6rem);
|
||||
--width-7_5: clamp(5.625rem, 7.5vw, 7.5rem);
|
||||
--width-10: clamp(7.5rem, 10vw, 10rem);
|
||||
--width-12_5: clamp(9.375rem, 12.5vw, 12.5rem);
|
||||
--width-15: clamp(11.25rem, 15vw, 15rem);
|
||||
--width-17: clamp(12.75rem, 17vw, 17rem);
|
||||
--width-17_5: clamp(13.125rem, 17.5vw, 17.5rem);
|
||||
--width-20: clamp(15rem, 20vw, 20rem);
|
||||
--width-21: clamp(15.75rem, 21vw, 21rem);
|
||||
--width-22_5: clamp(16.875rem, 22.5vw, 22.5rem);
|
||||
--width-25: clamp(18.75rem, 25vw, 25rem);
|
||||
--width-26: clamp(19.5rem, 26vw, 26rem);
|
||||
--width-27_5: clamp(20.625rem, 27.5vw, 27.5rem);
|
||||
--width-30: clamp(22.5rem, 30vw, 30rem);
|
||||
--width-32_5: clamp(24.375rem, 32.5vw, 32.5rem);
|
||||
--width-35: clamp(26.25rem, 35vw, 35rem);
|
||||
--width-37_5: clamp(28.125rem, 37.5vw, 37.5rem);
|
||||
--width-40: clamp(30rem, 40vw, 40rem);
|
||||
--width-42_5: clamp(31.875rem, 42.5vw, 42.5rem);
|
||||
--width-45: clamp(33.75rem, 45vw, 45rem);
|
||||
--width-47_5: clamp(35.625rem, 47.5vw, 47.5rem);
|
||||
--width-50: clamp(37.5rem, 50vw, 50rem);
|
||||
--width-52_5: clamp(39.375rem, 52.5vw, 52.5rem);
|
||||
--width-55: clamp(41.25rem, 55vw, 55rem);
|
||||
--width-57_5: clamp(43.125rem, 57.5vw, 57.5rem);
|
||||
--width-60: clamp(45rem, 60vw, 60rem);
|
||||
--width-62_5: clamp(46.875rem, 62.5vw, 62.5rem);
|
||||
--width-65: clamp(48.75rem, 65vw, 65rem);
|
||||
--width-67_5: clamp(50.625rem, 67.5vw, 67.5rem);
|
||||
--width-70: clamp(52.5rem, 70vw, 70rem);
|
||||
--width-72_5: clamp(54.375rem, 72.5vw, 72.5rem);
|
||||
--width-75: clamp(56.25rem, 75vw, 75rem);
|
||||
--width-77_5: clamp(58.125rem, 77.5vw, 77.5rem);
|
||||
--width-80: clamp(60rem, 80vw, 80rem);
|
||||
--width-82_5: clamp(61.875rem, 82.5vw, 82.5rem);
|
||||
--width-85: clamp(63.75rem, 85vw, 85rem);
|
||||
--width-87_5: clamp(65.625rem, 87.5vw, 87.5rem);
|
||||
--width-90: clamp(67.5rem, 90vw, 90rem);
|
||||
--width-92_5: clamp(69.375rem, 92.5vw, 92.5rem);
|
||||
--width-95: clamp(71.25rem, 95vw, 95rem);
|
||||
--width-97_5: clamp(73.125rem, 97.5vw, 97.5rem);
|
||||
--width-100: clamp(75rem, 100vw, 100rem);
|
||||
/* --width-content-width and --width-content-width-expanded are set by ThemeProvider */
|
||||
--width-carousel-padding: calc((100vw - var(--width-content-width)) / 2 + 1px - var(--vw-1_5));
|
||||
--width-carousel-padding-controls: calc((100vw - var(--width-content-width)) / 2 + 1px);
|
||||
--width-carousel-padding-expanded: calc((var(--width-content-width-expanded) - var(--width-content-width)) / 2 + 1px - var(--vw-1_5));
|
||||
--width-carousel-padding-controls-expanded: calc((var(--width-content-width-expanded) - var(--width-content-width)) / 2 + 1px);
|
||||
--width-carousel-item-3: calc(var(--width-content-width) / 3 - var(--vw-1_5) / 3 * 2);
|
||||
--width-carousel-item-4: calc(var(--width-content-width) / 4 - var(--vw-1_5) / 4 * 3);
|
||||
--width-x-padding-mask-fade: clamp(1.5rem, 4vw, 4rem);
|
||||
|
||||
--height-4: 1rem;
|
||||
--height-5: 1.25rem;
|
||||
--height-6: 1.5rem;
|
||||
--height-7: 1.75rem;
|
||||
--height-8: 2rem;
|
||||
--height-9: 2.25rem;
|
||||
--height-10: 2.5rem;
|
||||
--height-11: 2.75rem;
|
||||
--height-12: 3rem;
|
||||
--height-30: 7.5rem;
|
||||
--height-90: 22.5rem;
|
||||
--height-100: 25rem;
|
||||
--height-110: 27.5rem;
|
||||
--height-120: 30rem;
|
||||
--height-130: 32.5rem;
|
||||
--height-140: 35rem;
|
||||
--height-150: 37.5rem;
|
||||
|
||||
/* hero page padding */
|
||||
--padding-hero-page-padding-half: calc((var(--height-10) + var(--vw-1_5) + var(--vw-1_5) + var(--height-10)) / 2);
|
||||
--padding-hero-page-padding: calc(var(--height-10) + var(--vw-1_5) + var(--vw-1_5) + var(--height-10));
|
||||
--padding-hero-page-padding-1_5: calc(1.5 * (var(--height-10) + var(--vw-1_5) + var(--vw-1_5) + var(--height-10)));
|
||||
--padding-hero-page-padding-double: calc(2 * (var(--height-10) + var(--vw-1_5) + var(--vw-1_5) + var(--height-10)));
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
:root {
|
||||
/* --vw and text sizing are set by ThemeProvider */
|
||||
/* --vw: 3vw;
|
||||
|
||||
--text-2xs: 2.5vw;
|
||||
--text-xs: 2.75vw;
|
||||
--text-sm: 3vw;
|
||||
--text-base: 3.25vw;
|
||||
--text-lg: 3.5vw;
|
||||
--text-xl: 4.25vw;
|
||||
--text-2xl: 5vw;
|
||||
--text-3xl: 6vw;
|
||||
--text-4xl: 7vw;
|
||||
--text-5xl: 7.5vw;
|
||||
--text-6xl: 8.5vw;
|
||||
--text-7xl: 10vw;
|
||||
--text-8xl: 12vw;
|
||||
--text-9xl: 14vw; */
|
||||
|
||||
--width-5: 5vw;
|
||||
--width-7_5: 7.5vw;
|
||||
--width-10: 10vw;
|
||||
--width-12_5: 12.5vw;
|
||||
--width-15: 15vw;
|
||||
--width-17_5: 17.5vw;
|
||||
--width-20: 20vw;
|
||||
--width-22_5: 22.5vw;
|
||||
--width-25: 25vw;
|
||||
--width-27_5: 27.5vw;
|
||||
--width-30: 30vw;
|
||||
--width-32_5: 32.5vw;
|
||||
--width-35: 35vw;
|
||||
--width-37_5: 37.5vw;
|
||||
--width-40: 40vw;
|
||||
--width-42_5: 42.5vw;
|
||||
--width-45: 45vw;
|
||||
--width-47_5: 47.5vw;
|
||||
--width-50: 50vw;
|
||||
--width-52_5: 52.5vw;
|
||||
--width-55: 55vw;
|
||||
--width-57_5: 57.5vw;
|
||||
--width-60: 60vw;
|
||||
--width-62_5: 62.5vw;
|
||||
--width-65: 65vw;
|
||||
--width-67_5: 67.5vw;
|
||||
--width-70: 70vw;
|
||||
--width-72_5: 72.5vw;
|
||||
--width-75: 75vw;
|
||||
--width-77_5: 77.5vw;
|
||||
--width-80: 80vw;
|
||||
--width-82_5: 82.5vw;
|
||||
--width-85: 85vw;
|
||||
--width-87_5: 87.5vw;
|
||||
--width-90: 90vw;
|
||||
--width-92_5: 92.5vw;
|
||||
--width-95: 95vw;
|
||||
--width-97_5: 97.5vw;
|
||||
--width-100: 100vw;
|
||||
/* --width-content-width and --width-content-width-expanded are set by ThemeProvider */
|
||||
--width-carousel-padding: calc((100vw - var(--width-content-width)) / 2 + 1px - var(--vw-1_5));
|
||||
--width-carousel-padding-controls: calc((100vw - var(--width-content-width)) / 2 + 1px);
|
||||
--width-carousel-padding-expanded: calc((var(--width-content-width-expanded) - var(--width-content-width)) / 2 + 1px - var(--vw-1_5));
|
||||
--width-carousel-padding-controls-expanded: calc((var(--width-content-width-expanded) - var(--width-content-width)) / 2 + 1px);
|
||||
--width-carousel-item-3: var(--width-content-width);
|
||||
--width-carousel-item-4: var(--width-content-width);
|
||||
--width-x-padding-mask-fade: 10vw;
|
||||
|
||||
--height-4: 3.5vw;
|
||||
--height-5: 4.5vw;
|
||||
--height-6: 5.5vw;
|
||||
--height-7: 6.5vw;
|
||||
--height-8: 7.5vw;
|
||||
--height-9: 8.5vw;
|
||||
--height-10: 9vw;
|
||||
--height-11: 10vw;
|
||||
--height-12: 11vw;
|
||||
--height-30: 25vw;
|
||||
--height-90: 81vw;
|
||||
--height-100: 90vw;
|
||||
--height-110: 99vw;
|
||||
--height-120: 108vw;
|
||||
--height-130: 117vw;
|
||||
--height-140: 126vw;
|
||||
--height-150: 135vw;
|
||||
}
|
||||
}
|
||||
|
||||
@theme inline {
|
||||
--color-background: var(--background);
|
||||
--color-card: var(--card);
|
||||
--color-foreground: var(--foreground);
|
||||
--color-primary-cta: var(--primary-cta);
|
||||
--color-secondary-cta: var(--secondary-cta);
|
||||
--color-accent: var(--accent);
|
||||
--color-background-accent: var(--background-accent);
|
||||
|
||||
/* theme border radius */
|
||||
--radius-theme: var(--theme-border-radius);
|
||||
--radius-theme-capped: var(--theme-border-radius-capped);
|
||||
|
||||
/* text */
|
||||
--text-2xs: var(--text-2xs);
|
||||
--text-xs: var(--text-xs);
|
||||
--text-sm: var(--text-sm);
|
||||
--text-base: var(--text-base);
|
||||
--text-lg: var(--text-lg);
|
||||
--text-xl: var(--text-xl);
|
||||
--text-2xl: var(--text-2xl);
|
||||
--text-3xl: var(--text-3xl);
|
||||
--text-4xl: var(--text-4xl);
|
||||
--text-5xl: var(--text-5xl);
|
||||
--text-6xl: var(--text-6xl);
|
||||
--text-7xl: var(--text-7xl);
|
||||
--text-8xl: var(--text-8xl);
|
||||
--text-9xl: var(--text-9xl);
|
||||
|
||||
/* height */
|
||||
--height-4: var(--height-4);
|
||||
--height-5: var(--height-5);
|
||||
--height-6: var(--height-6);
|
||||
--height-7: var(--height-7);
|
||||
--height-8: var(--height-8);
|
||||
--height-9: var(--height-9);
|
||||
--height-11: var(--height-11);
|
||||
--height-12: var(--height-12);
|
||||
|
||||
--height-10: var(--height-10);
|
||||
--height-30: var(--height-30);
|
||||
--height-90: var(--height-90);
|
||||
--height-100: var(--height-100);
|
||||
--height-110: var(--height-110);
|
||||
--height-120: var(--height-120);
|
||||
--height-130: var(--height-130);
|
||||
--height-140: var(--height-140);
|
||||
--height-150: var(--height-150);
|
||||
|
||||
--height-page-padding: calc(2.25rem+var(--vw-1_5)+var(--vw-1_5));
|
||||
|
||||
/* width */
|
||||
--width-5: var(--width-5);
|
||||
--width-7_5: var(--width-7_5);
|
||||
--width-10: var(--width-10);
|
||||
--width-12_5: var(--width-12_5);
|
||||
--width-15: var(--width-15);
|
||||
--width-17: var(--width-17);
|
||||
--width-17_5: var(--width-17_5);
|
||||
--width-20: var(--width-20);
|
||||
--width-21: var(--width-21);
|
||||
--width-22_5: var(--width-22_5);
|
||||
--width-25: var(--width-25);
|
||||
--width-26: var(--width-26);
|
||||
--width-27_5: var(--width-27_5);
|
||||
--width-30: var(--width-30);
|
||||
--width-32_5: var(--width-32_5);
|
||||
--width-35: var(--width-35);
|
||||
--width-37_5: var(--width-37_5);
|
||||
--width-40: var(--width-40);
|
||||
--width-42_5: var(--width-42_5);
|
||||
--width-45: var(--width-45);
|
||||
--width-47_5: var(--width-47_5);
|
||||
--width-50: var(--width-50);
|
||||
--width-52_5: var(--width-52_5);
|
||||
--width-55: var(--width-55);
|
||||
--width-57_5: var(--width-57_5);
|
||||
--width-60: var(--width-60);
|
||||
--width-62_5: var(--width-62_5);
|
||||
--width-65: var(--width-65);
|
||||
--width-67_5: var(--width-67_5);
|
||||
--width-70: var(--width-70);
|
||||
--width-72_5: var(--width-72_5);
|
||||
--width-75: var(--width-75);
|
||||
--width-77_5: var(--width-77_5);
|
||||
--width-80: var(--width-80);
|
||||
--width-82_5: var(--width-82_5);
|
||||
--width-85: var(--width-85);
|
||||
--width-87_5: var(--width-87_5);
|
||||
--width-90: var(--width-90);
|
||||
--width-92_5: var(--width-92_5);
|
||||
--width-95: var(--width-95);
|
||||
--width-97_5: var(--width-97_5);
|
||||
--width-100: var(--width-100);
|
||||
--width-content-width: var(--width-content-width);
|
||||
--width-carousel-padding: var(--width-carousel-padding);
|
||||
--width-carousel-padding-controls: var(--width-carousel-padding-controls);
|
||||
--width-carousel-padding-expanded: var(--width-carousel-padding-expanded);
|
||||
--width-carousel-padding-controls-expanded: var(--width-carousel-padding-controls-expanded);
|
||||
--width-carousel-item-3: var(--width-carousel-item-3);
|
||||
--width-carousel-item-4: var(--width-carousel-item-4);
|
||||
--width-x-padding-mask-fade: var(--width-x-padding-mask-fade);
|
||||
--width-content-width-expanded: var(--width-content-width-expanded);
|
||||
|
||||
/* gap */
|
||||
--spacing-1: var(--vw-0_25);
|
||||
--spacing-2: var(--vw-0_5);
|
||||
--spacing-3: var(--vw-0_75);
|
||||
--spacing-4: var(--vw-1);
|
||||
--spacing-5: var(--vw-1_25);
|
||||
--spacing-6: var(--vw-1_5);
|
||||
--spacing-7: var(--vw-1_75);
|
||||
--spacing-8: var(--vw-2);
|
||||
|
||||
--spacing-x-1: var(--vw-0_25);
|
||||
--spacing-x-2: var(--vw-0_5);
|
||||
--spacing-x-3: var(--vw-0_75);
|
||||
--spacing-x-4: var(--vw-1);
|
||||
--spacing-x-5: var(--vw-1_25);
|
||||
--spacing-x-6: var(--vw-1_5);
|
||||
|
||||
/* border radius */
|
||||
--radius-none: 0;
|
||||
--radius-sm: var(--vw-0_5);
|
||||
--radius: var(--vw-0_75);
|
||||
--radius-md: var(--vw-1);
|
||||
--radius-lg: var(--vw-1_25);
|
||||
--radius-xl: var(--vw-1_75);
|
||||
--radius-full: 999px;
|
||||
|
||||
/* padding */
|
||||
--padding-1: var(--vw-0_25);
|
||||
--padding-2: var(--vw-0_5);
|
||||
--padding-2.5: var(--vw-0_625);
|
||||
--padding-3: var(--vw-0_75);
|
||||
--padding-4: var(--vw-1);
|
||||
--padding-5: var(--vw-1_25);
|
||||
--padding-6: var(--vw-1_5);
|
||||
--padding-7: var(--vw-1_75);
|
||||
--padding-8: var(--vw-2);
|
||||
|
||||
--padding-x-1: var(--vw-0_25);
|
||||
--padding-x-2: var(--vw-0_5);
|
||||
--padding-x-3: var(--vw-0_75);
|
||||
--padding-x-4: var(--vw-1);
|
||||
--padding-x-5: var(--vw-1_25);
|
||||
--padding-x-6: var(--vw-1_5);
|
||||
--padding-x-7: var(--vw-1_75);
|
||||
--padding-x-8: var(--vw-2);
|
||||
|
||||
--padding-hero-page-padding-half: var(--padding-hero-page-padding-half);
|
||||
--padding-hero-page-padding: var(--padding-hero-page-padding);
|
||||
--padding-hero-page-padding-1_5: var(--padding-hero-page-padding-1_5);
|
||||
--padding-hero-page-padding-double: var(--padding-hero-page-padding-double);
|
||||
|
||||
/* margin */
|
||||
--margin-1: var(--vw-0_25);
|
||||
--margin-2: var(--vw-0_5);
|
||||
--margin-3: var(--vw-0_75);
|
||||
--margin-4: var(--vw-1);
|
||||
--margin-5: var(--vw-1_25);
|
||||
--margin-6: var(--vw-1_5);
|
||||
--margin-7: var(--vw-1_75);
|
||||
--margin-8: var(--vw-2);
|
||||
|
||||
--margin-x-1: var(--vw-0_25);
|
||||
--margin-x-2: var(--vw-0_5);
|
||||
--margin-x-3: var(--vw-0_75);
|
||||
--margin-x-4: var(--vw-1);
|
||||
--margin-x-5: var(--vw-1_25);
|
||||
--margin-x-6: var(--vw-1_5);
|
||||
--margin-x-7: var(--vw-1_75);
|
||||
--margin-x-8: var(--vw-2);
|
||||
}
|
||||
|
||||
@layer components {}
|
||||
|
||||
@layer utilities {
|
||||
|
||||
/* Card, primary-button, and secondary-button styles are now dynamically injected via ThemeProvider */
|
||||
|
||||
/* .card {
|
||||
@apply backdrop-blur-sm bg-gradient-to-br from-card/80 to-card/40 shadow-sm border border-card;
|
||||
}
|
||||
|
||||
.primary-button {
|
||||
@apply bg-gradient-to-b from-primary-cta/83 to-primary-cta;
|
||||
box-shadow:
|
||||
color-mix(in srgb, var(--color-background) 25%, transparent) 0px 1px 1px 0px inset,
|
||||
color-mix(in srgb, var(--color-primary-cta) 15%, transparent) 3px 3px 3px 0px;
|
||||
}
|
||||
|
||||
.secondary-button {
|
||||
@apply backdrop-blur-sm bg-gradient-to-br from-secondary-cta/80 to-secondary-cta shadow-sm border border-secondary-cta;
|
||||
} */
|
||||
|
||||
.tag-card {
|
||||
@apply backdrop-blur-sm bg-gradient-to-br from-card/80 to-card/40 shadow-sm border border-card;
|
||||
}
|
||||
|
||||
.mask-padding-x {
|
||||
-webkit-mask-image: linear-gradient(to right, transparent 0%, black var(--width-x-padding-mask-fade), black calc(100% - var(--width-x-padding-mask-fade)), transparent 100%);
|
||||
mask-image: linear-gradient(to right, transparent 0%, black var(--width-x-padding-mask-fade), black calc(100% - var(--width-x-padding-mask-fade)), transparent 100%);
|
||||
}
|
||||
|
||||
.mask-fade-bottom {
|
||||
-webkit-mask-image: linear-gradient(to bottom, black 0%, black 50%, transparent 100%);
|
||||
mask-image: linear-gradient(to bottom, black 0%, black 50%, transparent 100%);
|
||||
}
|
||||
|
||||
.mask-fade-y {
|
||||
mask-image: linear-gradient(to bottom,
|
||||
transparent 0%,
|
||||
black var(--vw-1_5),
|
||||
black calc(100% - var(--vw-1_5)),
|
||||
transparent 100%);
|
||||
}
|
||||
|
||||
.mask-fade-bottom-large {
|
||||
-webkit-mask-image: linear-gradient(to bottom, black 0%, black 50%, transparent 75%, transparent 100%);
|
||||
mask-image: linear-gradient(to bottom, black 0%, black 50%, transparent 75%, transparent 100%);
|
||||
}
|
||||
|
||||
.mask-fade-bottom-long {
|
||||
-webkit-mask-image: linear-gradient(to bottom, black 0%, black 5%, transparent 100%);
|
||||
mask-image: linear-gradient(to bottom, black 0%, black 5%, transparent 100%);
|
||||
}
|
||||
|
||||
.mask-fade-top-long {
|
||||
-webkit-mask-image: linear-gradient(to top, black 0%, black 5%, transparent 100%);
|
||||
mask-image: linear-gradient(to top, black 0%, black 5%, transparent 100%);
|
||||
}
|
||||
|
||||
.mask-fade-xy {
|
||||
-webkit-mask-image:
|
||||
linear-gradient(to right, transparent 0%, black 20%, black 80%, transparent 100%),
|
||||
linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%);
|
||||
mask-image:
|
||||
linear-gradient(to right, transparent 0%, black 20%, black 80%, transparent 100%),
|
||||
linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%);
|
||||
-webkit-mask-composite: source-in;
|
||||
mask-composite: intersect;
|
||||
}
|
||||
|
||||
/* ANIMATION */
|
||||
|
||||
.animation-container {
|
||||
animation:
|
||||
fadeInOpacity 0.8s ease-in-out forwards,
|
||||
fadeInTranslate 0.6s forwards;
|
||||
}
|
||||
|
||||
.animation-container-fade {
|
||||
animation: fadeInOpacity 0.8s ease-in-out forwards;
|
||||
}
|
||||
|
||||
@keyframes fadeInOpacity {
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeInTranslate {
|
||||
from {
|
||||
transform: translateY(0.75vh);
|
||||
}
|
||||
|
||||
to {
|
||||
transform: translateY(0vh);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes aurora {
|
||||
from {
|
||||
background-position: 50% 50%, 50% 50%;
|
||||
}
|
||||
|
||||
to {
|
||||
background-position: 350% 50%, 350% 50%;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes spin-slow {
|
||||
from {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes spin-reverse {
|
||||
from {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
to {
|
||||
transform: rotate(-360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.animate-spin-slow {
|
||||
animation: spin-slow 15s linear infinite;
|
||||
}
|
||||
|
||||
.animate-spin-reverse {
|
||||
animation: spin-reverse 10s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes marquee-vertical {
|
||||
from {
|
||||
transform: translateY(0);
|
||||
}
|
||||
to {
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
}
|
||||
|
||||
.animate-marquee-vertical {
|
||||
animation: marquee-vertical 20s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes orbit {
|
||||
from {
|
||||
transform: rotate(var(--initial-position, 0deg)) translateX(var(--translate-position, 120px)) rotate(calc(-1 * var(--initial-position, 0deg)));
|
||||
}
|
||||
to {
|
||||
transform: rotate(calc(var(--initial-position, 0deg) + 360deg)) translateX(var(--translate-position, 120px)) rotate(calc(-1 * (var(--initial-position, 0deg) + 360deg)));
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes map-dot-pulse {
|
||||
0%, 100% {
|
||||
transform: scale(0.4);
|
||||
opacity: 0.6;
|
||||
}
|
||||
50% {
|
||||
transform: scale(1.4);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
* {
|
||||
scrollbar-width: thin;
|
||||
scrollbar-color: rgba(255, 255, 255, 1) rgba(255, 255, 255, 0);
|
||||
}
|
||||
|
||||
html {
|
||||
overscroll-behavior: none;
|
||||
overscroll-behavior-y: none;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: var(--background);
|
||||
color: var(--foreground);
|
||||
font-family: var(--font-sora), sans-serif;
|
||||
position: relative;
|
||||
min-height: 100vh;
|
||||
overscroll-behavior: none;
|
||||
overscroll-behavior-y: none;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-family: var(--font-sora), sans-serif;
|
||||
}
|
||||
1273
src/app/layout.tsx
Normal file
1273
src/app/layout.tsx
Normal file
File diff suppressed because it is too large
Load Diff
288
src/app/page.tsx
Normal file
288
src/app/page.tsx
Normal file
@@ -0,0 +1,288 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||
import HeroBillboardRotatedCarousel from '@/components/sections/hero/HeroBillboardRotatedCarousel';
|
||||
import MetricSplitMediaAbout from '@/components/sections/about/MetricSplitMediaAbout';
|
||||
import FeatureCardTwentyOne from '@/components/sections/feature/FeatureCardTwentyOne';
|
||||
import BlogCardThree from '@/components/sections/blog/BlogCardThree';
|
||||
import TestimonialCardOne from '@/components/sections/testimonial/TestimonialCardOne';
|
||||
import ContactSplit from '@/components/sections/contact/ContactSplit';
|
||||
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
|
||||
import Link from 'next/link';
|
||||
import { Sparkles, Award, Zap, TrendingUp, Star } from 'lucide-react';
|
||||
|
||||
export default function HomePage() {
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="slide-background"
|
||||
defaultTextAnimation="background-highlight"
|
||||
borderRadius="rounded"
|
||||
contentWidth="compact"
|
||||
sizing="mediumSizeLargeTitles"
|
||||
background="none"
|
||||
cardStyle="glass-elevated"
|
||||
primaryButtonStyle="shadow"
|
||||
secondaryButtonStyle="solid"
|
||||
headingFontWeight="light"
|
||||
>
|
||||
{/* Navbar */}
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleFullscreen
|
||||
brandName="MADRID AGENCY"
|
||||
navItems={[
|
||||
{ name: "Inicio", id: "/" },
|
||||
{ name: "Servicios", id: "/servicios" },
|
||||
{ name: "Equipo", id: "/equipo" },
|
||||
{ name: "Contacto", id: "/contacto" }
|
||||
]}
|
||||
bottomLeftText="Madrid, España"
|
||||
bottomRightText="hello@madridagency.es"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Hero Section */}
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroBillboardRotatedCarousel
|
||||
title="Marketing que marca la diferencia"
|
||||
description="Estrategia digital y creatividad que impulsa el crecimiento de tu marca en Madrid y más allá."
|
||||
tag="Agencia de Marketing"
|
||||
tagIcon={Sparkles}
|
||||
background={{ variant: "plain" }}
|
||||
buttons={[
|
||||
{ text: "Iniciar proyecto", href: "/contacto" },
|
||||
{ text: "Ver casos", href: "/servicios" }
|
||||
]}
|
||||
carouselItems={[
|
||||
{
|
||||
id: "1",
|
||||
imageSrc: "https://img.b2bpic.net/free-vector/creative-bauhaus-lines-organic-shape-template-earth-tone-color_1017-61387.jpg",
|
||||
imageAlt: "Diseño abstracto minimalista"
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
imageSrc: "https://img.b2bpic.net/free-vector/flat-abstract-art-cover-collection_23-2148984356.jpg",
|
||||
imageAlt: "Composición geométrica moderna"
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
imageSrc: "https://img.b2bpic.net/free-vector/collection-geometric-shape-poster-backdrop-decor_1017-50277.jpg",
|
||||
imageAlt: "Espacio blanco elegante"
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
imageSrc: "https://img.b2bpic.net/free-vector/bauhaus-art-contemporary-lines-pattern-layout-set_1017-61386.jpg",
|
||||
imageAlt: "Gradiente sutil profesional"
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
imageSrc: "https://img.b2bpic.net/free-vector/abstract-bauhaus-linear-figure-element-template-set_1017-62401.jpg",
|
||||
imageAlt: "Arte minimalista líneas"
|
||||
},
|
||||
{
|
||||
id: "6",
|
||||
imageSrc: "https://img.b2bpic.net/free-vector/flat-abstract-art-cover-collection_23-2148984357.jpg",
|
||||
imageAlt: "Diseño contemporáneo sofisticado"
|
||||
}
|
||||
]}
|
||||
autoPlay={true}
|
||||
autoPlayInterval={4000}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* About Section */}
|
||||
<div id="about" data-section="about">
|
||||
<MetricSplitMediaAbout
|
||||
tag="Sobre nosotros"
|
||||
tagIcon={Award}
|
||||
title="Transformamos visiones en resultados medibles"
|
||||
description="Somos una agencia de marketing estratégica basada en Madrid, especializada en crear campañas digitales que generan impacto real. Con más de una década de experiencia, combinamos creatividad innovadora con análisis de datos profundos para impulsar el crecimiento de nuestros clientes."
|
||||
metrics={[
|
||||
{ value: "150+", title: "Proyectos completados exitosamente" },
|
||||
{ value: "200%", title: "Aumento promedio en ROI de clientes" }
|
||||
]}
|
||||
imageSrc="https://img.b2bpic.net/free-photo/colleagues-discussing-their-work-laptop_53876-105333.jpg"
|
||||
imageAlt="Equipo creativo trabajando"
|
||||
useInvertedBackground="invertDefault"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Services Section */}
|
||||
<div id="services" data-section="services">
|
||||
<FeatureCardTwentyOne
|
||||
tag="Servicios"
|
||||
tagIcon={Zap}
|
||||
title="Soluciones marketing a medida"
|
||||
description="Ofrecemos un rango completo de servicios diseñados para llevar tu marca al siguiente nivel."
|
||||
accordionItems={[
|
||||
{
|
||||
id: "1",
|
||||
title: "Estrategia Digital",
|
||||
content: "Desarrollamos estrategias integrales de marketing digital basadas en análisis profundo de tu mercado, competencia y audiencia objetivo. Cada estrategia es personalizada para maximizar resultados."
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
title: "Diseño & Branding",
|
||||
content: "Creamos identidades visuales poderosas que reflejan la esencia de tu marca. Desde logos hasta sistemas de diseño completos, garantizamos coherencia y impacto visual."
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
title: "Campañas Publicitarias",
|
||||
content: "Ejecutamos campañas multi-canal en redes sociales, Google Ads, y plataformas programáticas. Cada campaña es optimizada en tiempo real para máxima conversión."
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
title: "Content Marketing",
|
||||
content: "Producimos contenido estratégico que atrae, engage y convierte. Desde blogs hasta vídeos, creamos narrativas que resuenan con tu audiencia."
|
||||
}
|
||||
]}
|
||||
imageSrc="https://img.b2bpic.net/free-photo/colleagues-discussing-their-work-laptop_53876-105333.jpg"
|
||||
imageAlt="Proceso de estrategia marketing"
|
||||
useInvertedBackground="noInvert"
|
||||
mediaPosition="right"
|
||||
buttons={[
|
||||
{ text: "Explorar servicios", href: "/contacto" }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Portfolio Section */}
|
||||
<div id="portfolio" data-section="portfolio">
|
||||
<BlogCardThree
|
||||
tag="Casos de éxito"
|
||||
tagIcon={TrendingUp}
|
||||
title="Nuestros casos de estudio"
|
||||
description="Descubre cómo hemos transformado marcas y multiplicado resultados para nuestros clientes."
|
||||
animationType="slide-up"
|
||||
blogs={[
|
||||
{
|
||||
id: "1",
|
||||
category: "E-commerce",
|
||||
title: "Aumento de ventas 180% en 6 meses",
|
||||
excerpt: "Cómo una tienda online incrementó dramáticamente sus conversiones mediante estrategia integrada de marketing digital.",
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/digital-marketing-with-icons-business-people_53876-94833.jpg",
|
||||
imageAlt: "Caso de éxito e-commerce",
|
||||
authorName: "Agencia Madrid"
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
category: "SaaS",
|
||||
title: "Escalando startup B2B de 0 a 10K clientes",
|
||||
excerpt: "Estrategia de posicionamiento y adquisición que llevó a esta SaaS a convertirse en líder del mercado.",
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/map-lying-wooden-table_53876-105723.jpg",
|
||||
imageAlt: "Caso de éxito SaaS",
|
||||
authorName: "Agencia Madrid"
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
category: "Retail",
|
||||
title: "Rebranding que triplicó la presencia digital",
|
||||
excerpt: "Transformación completa de marca que resultó en mayor engagement y posicionamiento en el mercado.",
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/high-angle-people-working-with-laptop_23-2149636255.jpg",
|
||||
imageAlt: "Caso de éxito retail",
|
||||
authorName: "Agencia Madrid"
|
||||
}
|
||||
]}
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="invertDefault"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Testimonials Section */}
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<TestimonialCardOne
|
||||
tag="Testimonios"
|
||||
tagIcon={Star}
|
||||
title="Lo que dicen nuestros clientes"
|
||||
description="Historias de éxito y transformación digital de empresas que confiaron en nosotros."
|
||||
gridVariant="uniform-all-items-equal"
|
||||
animationType="slide-up"
|
||||
testimonials={[
|
||||
{
|
||||
id: "1",
|
||||
name: "Elena Fernández",
|
||||
role: "CEO",
|
||||
company: "TechStart Madrid",
|
||||
rating: 5,
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/portrait-young-female-dentist-dentistry-concept-dental-treatment_169016-66975.jpg",
|
||||
imageAlt: "Elena Fernández"
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
name: "Juan Moreno",
|
||||
role: "Founder",
|
||||
company: "DigitalLabs",
|
||||
rating: 5,
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/businesswoman-happy-be-back-work_23-2148727621.jpg",
|
||||
imageAlt: "Juan Moreno"
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
name: "Patricia Sánchez",
|
||||
role: "Marketing Director",
|
||||
company: "Fashion Boutique Madrid",
|
||||
rating: 5,
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/attractive-blond-business-woman-white-shirt-grey-background_613910-3695.jpg",
|
||||
imageAlt: "Patricia Sánchez"
|
||||
}
|
||||
]}
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="noInvert"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Contact Section */}
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactSplit
|
||||
tag="Newsletter"
|
||||
title="Mantente al día con nuestras insights"
|
||||
description="Recibe estrategias, casos de éxito y tendencias de marketing digital directamente en tu inbox. Contenido exclusivo diseñado para emprendedores y marketers."
|
||||
useInvertedBackground="invertDefault"
|
||||
imageSrc="https://img.b2bpic.net/free-photo/desk-arrangement-with-laptop-high-angle_23-2149073071.jpg"
|
||||
imageAlt="Espacio de trabajo creativo"
|
||||
mediaPosition="right"
|
||||
inputPlaceholder="Tu correo electrónico"
|
||||
buttonText="Suscribirse"
|
||||
termsText="Respetamos tu privacidad. Te enviamos contenido exclusivo sin spam. Puedes desuscribirte en cualquier momento."
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Footer */}
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterLogoEmphasis
|
||||
logoText="MADRID AGENCY"
|
||||
columns={[
|
||||
{
|
||||
items: [
|
||||
{ label: "Inicio", href: "/" },
|
||||
{ label: "Servicios", href: "/servicios" },
|
||||
{ label: "Equipo", href: "/equipo" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "Contacto", href: "/contacto" },
|
||||
{ label: "Blog", href: "#" },
|
||||
{ label: "Casos", href: "/servicios" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "hello@madridagency.es", href: "mailto:hello@madridagency.es" },
|
||||
{ label: "+34 91 XXXX XXXX", href: "tel:+34911234567" },
|
||||
{ label: "Madrid, España", href: "#" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "Instagram", href: "https://instagram.com" },
|
||||
{ label: "LinkedIn", href: "https://linkedin.com" },
|
||||
{ label: "Twitter", href: "https://twitter.com" }
|
||||
]
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
204
src/app/servicios/page.tsx
Normal file
204
src/app/servicios/page.tsx
Normal file
@@ -0,0 +1,204 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||
import FeatureCardTwentyOne from '@/components/sections/feature/FeatureCardTwentyOne';
|
||||
import BlogCardThree from '@/components/sections/blog/BlogCardThree';
|
||||
import FaqDouble from '@/components/sections/faq/FaqDouble';
|
||||
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
|
||||
import Link from 'next/link';
|
||||
import { Zap, TrendingUp, HelpCircle } from 'lucide-react';
|
||||
|
||||
export default function ServiciosPage() {
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="slide-background"
|
||||
defaultTextAnimation="background-highlight"
|
||||
borderRadius="rounded"
|
||||
contentWidth="compact"
|
||||
sizing="mediumSizeLargeTitles"
|
||||
background="none"
|
||||
cardStyle="glass-elevated"
|
||||
primaryButtonStyle="shadow"
|
||||
secondaryButtonStyle="solid"
|
||||
headingFontWeight="light"
|
||||
>
|
||||
{/* Navbar */}
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleFullscreen
|
||||
brandName="MADRID AGENCY"
|
||||
navItems={[
|
||||
{ name: "Inicio", id: "/" },
|
||||
{ name: "Servicios", id: "/servicios" },
|
||||
{ name: "Equipo", id: "/equipo" },
|
||||
{ name: "Contacto", id: "/contacto" }
|
||||
]}
|
||||
bottomLeftText="Madrid, España"
|
||||
bottomRightText="hello@madridagency.es"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Services Detail Section */}
|
||||
<div id="services-detail" data-section="services-detail">
|
||||
<FeatureCardTwentyOne
|
||||
tag="Nuestros Servicios"
|
||||
tagIcon={Zap}
|
||||
title="Transformación digital integral"
|
||||
description="Desarrollamos estrategias personalizadas que combinan creatividad, tecnología y análisis de datos para maximizar el impacto de tu marca en el entorno digital."
|
||||
accordionItems={[
|
||||
{
|
||||
id: "1",
|
||||
title: "Estrategia Digital Integral",
|
||||
content: "Análisis profundo del mercado, definición de objetivos, identificación de audiencias clave y desarrollo de un roadmap estratégico personalizado que incluye canales, mensajes y KPIs específicos para tu industria."
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
title: "Diseño & Branding Avanzado",
|
||||
content: "Creación de identidades visuales cohesivas desde la conceptualización hasta la implementación. Incluye diseño de logos, paletas de colores, tipografías, guidelines de marca y aplicaciones digitales y físicas."
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
title: "Campañas Publicitarias Multi-canal",
|
||||
content: "Gestión completa de campañas en Google Ads, Facebook, Instagram, LinkedIn y plataformas programáticas. Optimización continua basada en datos, A/B testing y reporting detallado de performance."
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
title: "Content Marketing & SEO",
|
||||
content: "Producción de contenido estratégico optimizado para SEO: blogs, videos, infografías, podcasts y contenido para redes sociales. Incluye keyword research, link building y optimización técnica."
|
||||
}
|
||||
]}
|
||||
imageSrc="https://img.b2bpic.net/free-photo/colleagues-discussing-their-work-laptop_53876-105333.jpg"
|
||||
imageAlt="Equipo desarrollando estrategia digital"
|
||||
useInvertedBackground="noInvert"
|
||||
mediaPosition="left"
|
||||
buttons={[
|
||||
{ text: "Solicitar consultoría", href: "/contacto" }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Portfolio Cases Section */}
|
||||
<div id="portfolio-cases" data-section="portfolio-cases">
|
||||
<BlogCardThree
|
||||
tag="Resultados Reales"
|
||||
tagIcon={TrendingUp}
|
||||
title="Casos de éxito detallados"
|
||||
description="Explora en profundidad cómo hemos ayudado a empresas de diferentes sectores a alcanzar y superar sus objetivos de marketing digital."
|
||||
animationType="slide-up"
|
||||
blogs={[
|
||||
{
|
||||
id: "1",
|
||||
category: "E-commerce Fashion",
|
||||
title: "De 50K a 500K en ventas anuales",
|
||||
excerpt: "Transformación completa de una boutique online: rebranding, nueva web, estrategia SEO y campañas pagadas que multiplicaron las ventas por 10 en 18 meses.",
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/digital-marketing-with-icons-business-people_53876-94833.jpg",
|
||||
imageAlt: "Caso de éxito fashion e-commerce",
|
||||
authorName: "Madrid Agency Team"
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
category: "SaaS B2B",
|
||||
title: "Reducción de CAC en 60% con inbound",
|
||||
excerpt: "Desarrollo de estrategia de content marketing y lead nurturing que redujo el costo de adquisición de clientes mientras aumentaba la calidad de leads.",
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/map-lying-wooden-table_53876-105723.jpg",
|
||||
imageAlt: "Caso de éxito SaaS B2B",
|
||||
authorName: "Madrid Agency Team"
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
category: "Restauración",
|
||||
title: "300% más reservas con marketing local",
|
||||
excerpt: "Estrategia de marketing local, optimización de Google My Business y campañas geo-localizadas que triplicaron las reservas de un grupo de restaurantes.",
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/high-angle-people-working-with-laptop_23-2149636255.jpg",
|
||||
imageAlt: "Caso de éxito restauración",
|
||||
authorName: "Madrid Agency Team"
|
||||
}
|
||||
]}
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="invertDefault"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* FAQ Section */}
|
||||
<div id="faq" data-section="faq">
|
||||
<FaqDouble
|
||||
tag="Preguntas frecuentes"
|
||||
tagIcon={HelpCircle}
|
||||
title="Todo lo que necesitas saber"
|
||||
description="Respuestas detalladas a las preguntas más importantes sobre nuestros servicios, procesos y metodología de trabajo."
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="noInvert"
|
||||
faqs={[
|
||||
{
|
||||
id: "1",
|
||||
title: "¿Cómo es vuestro proceso de trabajo?",
|
||||
content: "Iniciamos con una auditoría completa de tu situación actual, seguida de una estrategia personalizada. Implementamos en fases medibles con reportes semanales y revisiones mensuales para optimizar resultados continuamente."
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
title: "¿Cuánto tiempo se tarda en ver resultados?",
|
||||
content: "Los primeros indicadores aparecen en 4-6 semanas (tráfico, engagement). Resultados significativos de conversión se ven entre 3-6 meses. Para posicionamiento SEO, entre 6-12 meses dependiendo de la competencia."
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
title: "¿Cuál es la inversión mínima requerida?",
|
||||
content: "Nuestros proyectos inician desde 2,500€ mensuales para estrategias integrales. Ofrecemos auditorías desde 500€ y proyectos específicos desde 1,200€. La inversión siempre es proporcional a los objetivos."
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
title: "¿Trabajáis con empresas de mi sector?",
|
||||
content: "Tenemos experiencia en e-commerce, SaaS, servicios profesionales, retail, inmobiliaria, salud, educación y tecnología. Nuestra metodología se adapta a cualquier sector B2B o B2C."
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
title: "¿Qué incluyen los reportes de resultados?",
|
||||
content: "Reportes mensuales con KPIs específicos, análisis de ROI, recomendaciones de optimización, comparativas período anterior, y dashboards en tiempo real con acceso 24/7 para el cliente."
|
||||
},
|
||||
{
|
||||
id: "6",
|
||||
title: "¿Ofrecéis garantías de resultados?",
|
||||
content: "Garantizamos transparencia total, metodología probada y dedicación completa. Si en los primeros 90 días no ves mejoras medibles, revisamos la estrategia sin coste adicional."
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Footer */}
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterLogoEmphasis
|
||||
logoText="MADRID AGENCY"
|
||||
columns={[
|
||||
{
|
||||
items: [
|
||||
{ label: "Inicio", href: "/" },
|
||||
{ label: "Servicios", href: "/servicios" },
|
||||
{ label: "Equipo", href: "/equipo" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "Contacto", href: "/contacto" },
|
||||
{ label: "Blog", href: "#" },
|
||||
{ label: "Casos", href: "/servicios" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "hello@madridagency.es", href: "mailto:hello@madridagency.es" },
|
||||
{ label: "+34 91 XXXX XXXX", href: "tel:+34911234567" },
|
||||
{ label: "Madrid, España", href: "#" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "Instagram", href: "https://instagram.com" },
|
||||
{ label: "LinkedIn", href: "https://linkedin.com" },
|
||||
{ label: "Twitter", href: "https://twitter.com" }
|
||||
]
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user