Initial commit: Hapkido Cardedeu V2 landing page

This commit is contained in:
Mambo
2026-05-01 13:49:20 +02:00
commit 4c8883022b
12 changed files with 528 additions and 0 deletions

4
.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
node_modules/
dist/
.astro/
.DS_Store

11
Dockerfile Normal file
View File

@@ -0,0 +1,11 @@
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80

8
astro.config.mjs Normal file
View File

@@ -0,0 +1,8 @@
import { defineConfig } from 'astro/config';
import tailwindcss from '@tailwindcss/vite';
export default defineConfig({
vite: {
plugins: [tailwindcss()],
},
});

6
nginx.conf Normal file
View File

@@ -0,0 +1,6 @@
server {
listen 80;
root /usr/share/nginx/html;
index index.html;
try_files $uri $uri/ /index.html;
}

18
package.json Normal file
View File

@@ -0,0 +1,18 @@
{
"name": "hapkido-cardedeu-v2",
"type": "module",
"version": "1.0.0",
"scripts": {
"dev": "astro dev",
"start": "astro dev",
"build": "astro build",
"preview": "astro preview"
},
"dependencies": {
"astro": "^5.7.0"
},
"devDependencies": {
"@tailwindcss/vite": "^4.1.0",
"tailwindcss": "^4.1.0"
}
}

4
public/favicon.svg Normal file
View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<circle cx="50" cy="50" r="45" fill="#D4AF37"/>
<text x="50" y="65" text-anchor="middle" font-family="Arial Black, sans-serif" font-size="45" font-weight="bold" fill="#1a1a1a">H</text>
</svg>

After

Width:  |  Height:  |  Size: 259 B

BIN
public/hero-bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

BIN
public/instructor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

16
public/logo.svg Normal file
View File

@@ -0,0 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 140 90" fill="none">
<!-- Letras CHC arriba, dorado -->
<text x="70" y="20" font-family="Arial Black, Helvetica, sans-serif" font-size="22" font-weight="900" fill="#D4AF37" text-anchor="middle" letter-spacing="2">CHC</text>
<!-- Sam Taegeuk simplificado: 3 flechas/triángulos entrelazados -->
<g transform="translate(70, 56)">
<!-- Flecha Amarilla (apunta a la derecha) -->
<polygon points="-30,0 0,-15 0,-5 25,-5 25,5 0,5 0,15" fill="#F4D03F" transform="rotate(-30)"/>
<!-- Flecha Roja (apunta abajo-izquierda) -->
<polygon points="-30,0 0,-15 0,-5 25,-5 25,5 0,5 0,15" fill="#C0392B" transform="rotate(90)"/>
<!-- Flecha Azul (apunta arriba-izquierda) -->
<polygon points="-30,0 0,-15 0,-5 25,-5 25,5 0,5 0,15" fill="#1E4B7A" transform="rotate(210)"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 867 B

439
src/pages/index.astro Normal file
View File

@@ -0,0 +1,439 @@
---
import '../styles/global.css';
---
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Aprende Hapkido en Cardedeu. Arte marcial coreano con más de 30 años de experiencia. Cuota accesible de 20€/mes. 2 semanas gratis. ¡Únete ahora!">
<meta name="keywords" content="hapkido, artes marciales, cardedeu, defensa personal, barcelona">
<meta property="og:title" content="Hapkido Cardedeu | Arte Marcial Coreano en Barcelona">
<meta property="og:description" content="Aprende Hapkido en Cardedeu. Arte marcial coreano con más de 30 años de experiencia. Cuota accesible de 20€/mes. 2 semanas gratis. ¡Únete ahora!">
<meta property="og:type" content="website">
<meta property="og:image" content="/logo.svg">
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap" rel="stylesheet">
<title>Hapkido Cardedeu | Arte Marcial Coreano en Barcelona</title>
</head>
<body class="antialiased">
<!-- Header -->
<header class="fixed top-0 left-0 right-0 z-50 bg-negro/95 backdrop-blur-sm">
<nav class="container mx-auto px-4 py-4 flex items-center justify-between">
<a href="#" class="flex items-center">
<img src="/logo.svg" alt="Hapkido Cardedeu" class="h-12">
</a>
<div class="hidden md:flex items-center gap-6">
<a href="#que-es" class="text-white/80 hover:text-dorado transition-colors">Qué es Hapkido</a>
<a href="#por-que" class="text-white/80 hover:text-dorado transition-colors">Por qué nosotros</a>
<a href="#para-quien" class="text-white/80 hover:text-dorado transition-colors">Para quién</a>
<a href="#contacto" class="bg-rojo hover:bg-rojo/80 text-white px-4 py-2 rounded-lg font-medium transition-colors">Únete ahora</a>
</div>
<button id="mobile-menu-btn" class="md:hidden text-white p-2">
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path>
</svg>
</button>
</nav>
<div id="mobile-menu" class="hidden md:hidden bg-negro border-t border-white/10">
<div class="container mx-auto px-4 py-4 flex flex-col gap-4">
<a href="#que-es" class="text-white/80 hover:text-dorado transition-colors">Qué es Hapkido</a>
<a href="#por-que" class="text-white/80 hover:text-dorado transition-colors">Por qué nosotros</a>
<a href="#para-quien" class="text-white/80 hover:text-dorado transition-colors">Para quién</a>
<a href="#contacto" class="bg-rojo hover:bg-rojo/80 text-white px-4 py-2 rounded-lg font-medium transition-colors text-center">Únete ahora</a>
</div>
</div>
</header>
<script>
const btn = document.getElementById('mobile-menu-btn');
const menu = document.getElementById('mobile-menu');
btn?.addEventListener('click', () => menu?.classList.toggle('hidden'));
menu?.querySelectorAll('a').forEach(a => a.addEventListener('click', () => menu?.classList.add('hidden')));
</script>
<main>
<!-- Hero -->
<section class="relative min-h-screen flex items-center justify-center bg-negro overflow-hidden">
<div class="absolute inset-0">
<img src="/hero-bg.png" alt="" class="w-full h-full object-cover opacity-30">
<div class="absolute inset-0 bg-gradient-to-t from-negro via-negro/70 to-negro/50"></div>
</div>
<div class="container mx-auto px-4 py-20 pt-32 relative z-10">
<div class="max-w-4xl mx-auto text-center">
<div class="inline-flex items-center gap-2 bg-dorado/10 border border-dorado/30 text-dorado px-4 py-2 rounded-full text-sm font-medium mb-8">
<span class="w-2 h-2 bg-dorado rounded-full animate-pulse"></span>
Más de 30 años de experiencia
</div>
<h1 class="text-4xl md:text-5xl lg:text-6xl font-extrabold text-white leading-tight mb-6">
Descubre el <span class="text-dorado">Hapkido</span><br>
en Cardedeu
</h1>
<p class="text-lg md:text-xl text-white/70 max-w-2xl mx-auto mb-8">
Arte marcial coreano que combina defensa personal, disciplina y bienestar.
<span class="text-dorado font-semibold">Solo 20€/mes</span>.
</p>
<div class="flex flex-col sm:flex-row gap-4 justify-center items-center">
<a href="#contacto" class="w-full sm:w-auto bg-rojo hover:bg-rojo/80 text-white px-8 py-4 rounded-lg font-bold text-lg transition-all hover:scale-105 shadow-lg shadow-rojo/30">
¡Quiero probar una clase!
</a>
<a href="#que-es" class="w-full sm:w-auto border border-white/30 hover:border-dorado text-white hover:text-dorado px-8 py-4 rounded-lg font-medium text-lg transition-colors">
Saber más
</a>
</div>
<div class="mt-16 grid grid-cols-3 gap-8 max-w-lg mx-auto">
<div class="text-center">
<div class="text-3xl md:text-4xl font-bold text-dorado">30+</div>
<div class="text-white/60 text-sm">Años</div>
</div>
<div class="text-center">
<div class="text-3xl md:text-4xl font-bold text-dorado">20€</div>
<div class="text-white/60 text-sm">Al mes</div>
</div>
<div class="text-center">
<div class="text-3xl md:text-4xl font-bold text-dorado">100%</div>
<div class="text-white/60 text-sm">Pasión</div>
</div>
</div>
</div>
</div>
<div class="absolute bottom-8 left-1/2 -translate-x-1/2 animate-bounce">
<svg class="w-6 h-6 text-white/50" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 14l-7 7m0 0l-7-7m7 7V3"></path>
</svg>
</div>
</section>
<!-- ¿Qué es el Hapkido? -->
<section id="que-es" class="py-20 bg-gris-claro">
<div class="container mx-auto px-4">
<div class="max-w-3xl mx-auto text-center mb-16">
<h2 class="text-3xl md:text-4xl font-bold text-negro mb-4">
¿Qué es el <span class="text-rojo">Hapkido</span>?
</h2>
<p class="text-lg text-negro/70">
El Hapkido es un arte marcial coreano que significa <em>"el camino de la energía coordinada"</em>.
Combina técnicas de golpeo, luxaciones articulares, proyecciones y el uso de armas tradicionales.
Es un sistema completo de defensa personal adaptable a cualquier situación.
</p>
</div>
<div class="grid md:grid-cols-2 gap-6 max-w-4xl mx-auto">
<div class="bg-white p-6 rounded-xl shadow-sm hover:shadow-md transition-shadow border border-gray-100">
<div class="flex items-start gap-4">
<div class="text-4xl">🛡️</div>
<div>
<h3 class="text-xl font-bold text-negro mb-2">Defensa Personal Efectiva</h3>
<p class="text-negro/70">Técnicas probadas para protegerte en situaciones reales. Golpes, luxaciones, proyecciones y control.</p>
</div>
</div>
</div>
<div class="bg-white p-6 rounded-xl shadow-sm hover:shadow-md transition-shadow border border-gray-100">
<div class="flex items-start gap-4">
<div class="text-4xl">🧘</div>
<div>
<h3 class="text-xl font-bold text-negro mb-2">Equilibrio Cuerpo-Mente</h3>
<p class="text-negro/70">Mejora tu concentración, reduce el estrés y desarrolla una mente más fuerte y disciplinada.</p>
</div>
</div>
</div>
<div class="bg-white p-6 rounded-xl shadow-sm hover:shadow-md transition-shadow border border-gray-100">
<div class="flex items-start gap-4">
<div class="text-4xl">💪</div>
<div>
<h3 class="text-xl font-bold text-negro mb-2">Condición Física Completa</h3>
<p class="text-negro/70">Entrenamiento integral que mejora fuerza, flexibilidad, coordinación y resistencia.</p>
</div>
</div>
</div>
<div class="bg-white p-6 rounded-xl shadow-sm hover:shadow-md transition-shadow border border-gray-100">
<div class="flex items-start gap-4">
<div class="text-4xl">🤝</div>
<div>
<h3 class="text-xl font-bold text-negro mb-2">Comunidad y Valores</h3>
<p class="text-negro/70">Respeto, humildad y compañerismo. Más que un deporte, una filosofía de vida.</p>
</div>
</div>
</div>
</div>
<div class="mt-16 max-w-3xl mx-auto">
<div class="aspect-video bg-negro rounded-xl overflow-hidden flex items-center justify-center">
<div class="text-center text-white/60">
<svg class="w-16 h-16 mx-auto mb-4 opacity-50" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z"></path>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
</svg>
<p class="text-sm">[Video de demostración - Próximamente]</p>
</div>
</div>
</div>
</div>
</section>
<!-- ¿Por qué nosotros? -->
<section id="por-que" class="py-20 bg-negro text-white">
<div class="container mx-auto px-4">
<div class="max-w-3xl mx-auto text-center mb-16">
<h2 class="text-3xl md:text-4xl font-bold mb-4">
¿Por qué <span class="text-dorado">nosotros</span>?
</h2>
<p class="text-lg text-white/70">
No somos un gimnasio comercial. Somos una asociación sin ánimo de lucro
que quiere compartir la pasión por el Hapkido con la comunidad de Cardedeu.
</p>
</div>
<div class="max-w-4xl mx-auto space-y-6">
<div class="flex gap-6 items-start bg-white/5 p-6 rounded-xl border border-white/10 hover:border-dorado/50 transition-colors">
<div class="hidden sm:flex flex-col items-center">
<span class="text-4xl mb-2">🏆</span>
<span class="text-dorado font-bold text-lg">01</span>
</div>
<div>
<h3 class="text-xl md:text-2xl font-bold mb-2">Más de 30 años de experiencia</h3>
<p class="text-white/70">Instructores certificados con décadas de práctica y enseñanza. Formación sólida avalada por la Federación.</p>
</div>
</div>
<div class="flex gap-6 items-start bg-white/5 p-6 rounded-xl border border-white/10 hover:border-dorado/50 transition-colors">
<div class="hidden sm:flex flex-col items-center">
<span class="text-4xl mb-2">💰</span>
<span class="text-dorado font-bold text-lg">02</span>
</div>
<div>
<h3 class="text-xl md:text-2xl font-bold mb-2">Cuota simbólica: 20€/mes</h3>
<p class="text-white/70">Nuestro objetivo es difundir el Hapkido, no hacer negocio. Por eso ofrecemos la cuota más accesible de la zona.</p>
</div>
</div>
<div class="flex gap-6 items-start bg-white/5 p-6 rounded-xl border border-white/10 hover:border-dorado/50 transition-colors">
<div class="hidden sm:flex flex-col items-center">
<span class="text-4xl mb-2">❤️</span>
<span class="text-dorado font-bold text-lg">03</span>
</div>
<div>
<h3 class="text-xl md:text-2xl font-bold mb-2">Comunidad local y cercana</h3>
<p class="text-white/70">Somos una asociación de vecinos de Cardedeu. Aquí encontrarás un ambiente familiar y de apoyo mutuo.</p>
</div>
</div>
</div>
<div class="mt-16 max-w-3xl mx-auto">
<div class="flex flex-col md:flex-row items-center gap-8 bg-white/5 p-8 rounded-xl border border-white/10">
<div class="w-32 h-32 md:w-40 md:h-40 rounded-full overflow-hidden border-4 border-dorado/50 flex-shrink-0">
<img src="/instructor.png" alt="David Clusellas - Instructor de Hapkido" class="w-full h-full object-cover">
</div>
<div class="text-center md:text-left">
<h3 class="text-2xl font-bold text-dorado mb-2">David Clusellas</h3>
<p class="text-white/70">
Instructor certificado con más de 30 años de experiencia en Hapkido.
Apasionado por transmitir los valores y técnicas de este arte marcial coreano.
</p>
</div>
</div>
</div>
<div class="mt-12 max-w-2xl mx-auto bg-gradient-to-r from-rojo/20 to-dorado/20 p-8 rounded-xl border border-dorado/30 text-center">
<p class="text-2xl font-bold mb-2">
2 semanas <span class="text-dorado">GRATIS</span>
</p>
<p class="text-white/70">
Prueba sin compromiso durante 2 semanas. Si te gusta, te quedas. Si no, sin problema.
</p>
</div>
</div>
</section>
<!-- ¿Para quién? -->
<section id="para-quien" class="py-20 bg-white">
<div class="container mx-auto px-4">
<div class="max-w-3xl mx-auto text-center mb-16">
<h2 class="text-3xl md:text-4xl font-bold text-negro mb-4">
¿Para quién es el <span class="text-rojo">Hapkido</span>?
</h2>
<p class="text-lg text-negro/70">
El Hapkido es para todos. Estos son algunos perfiles que se benefician especialmente de nuestra práctica.
</p>
</div>
<div class="grid md:grid-cols-2 gap-8 max-w-5xl mx-auto">
<div class="group bg-gris-claro p-8 rounded-xl hover:bg-negro transition-colors duration-300">
<div class="text-5xl mb-4">🥋</div>
<h3 class="text-2xl font-bold text-negro group-hover:text-white mb-3 transition-colors">Defensa Personal</h3>
<p class="text-negro/70 group-hover:text-white/70 mb-4 transition-colors">
¿Quieres sentirte más seguro/a en tu día a día? El Hapkido te enseña técnicas efectivas y realistas para protegerte.
</p>
<div class="flex flex-wrap gap-2">
<span class="text-xs font-medium px-3 py-1 rounded-full bg-negro/10 text-negro group-hover:bg-dorado/20 group-hover:text-dorado transition-colors">Autodefensa</span>
<span class="text-xs font-medium px-3 py-1 rounded-full bg-negro/10 text-negro group-hover:bg-dorado/20 group-hover:text-dorado transition-colors">Confianza</span>
<span class="text-xs font-medium px-3 py-1 rounded-full bg-negro/10 text-negro group-hover:bg-dorado/20 group-hover:text-dorado transition-colors">Seguridad</span>
</div>
</div>
<div class="group bg-gris-claro p-8 rounded-xl hover:bg-negro transition-colors duration-300">
<div class="text-5xl mb-4">👮</div>
<h3 class="text-2xl font-bold text-negro group-hover:text-white mb-3 transition-colors">Policías y Seguridad</h3>
<p class="text-negro/70 group-hover:text-white/70 mb-4 transition-colors">
Profesionales que necesitan técnicas de control y reducción. El Hapkido es usado por cuerpos de seguridad en todo el mundo.
</p>
<div class="flex flex-wrap gap-2">
<span class="text-xs font-medium px-3 py-1 rounded-full bg-negro/10 text-negro group-hover:bg-dorado/20 group-hover:text-dorado transition-colors">Técnicas policiales</span>
<span class="text-xs font-medium px-3 py-1 rounded-full bg-negro/10 text-negro group-hover:bg-dorado/20 group-hover:text-dorado transition-colors">Control</span>
<span class="text-xs font-medium px-3 py-1 rounded-full bg-negro/10 text-negro group-hover:bg-dorado/20 group-hover:text-dorado transition-colors">Profesional</span>
</div>
</div>
<div class="group bg-gris-claro p-8 rounded-xl hover:bg-negro transition-colors duration-300">
<div class="text-5xl mb-4">🥊</div>
<h3 class="text-2xl font-bold text-negro group-hover:text-white mb-3 transition-colors">Entusiastas de Artes Marciales</h3>
<p class="text-negro/70 group-hover:text-white/70 mb-4 transition-colors">
Si ya practicas otras disciplinas, el Hapkido complementa tu formación con un enfoque único en luxaciones y proyecciones.
</p>
<div class="flex flex-wrap gap-2">
<span class="text-xs font-medium px-3 py-1 rounded-full bg-negro/10 text-negro group-hover:bg-dorado/20 group-hover:text-dorado transition-colors">Complemento</span>
<span class="text-xs font-medium px-3 py-1 rounded-full bg-negro/10 text-negro group-hover:bg-dorado/20 group-hover:text-dorado transition-colors">Técnica</span>
<span class="text-xs font-medium px-3 py-1 rounded-full bg-negro/10 text-negro group-hover:bg-dorado/20 group-hover:text-dorado transition-colors">Versatilidad</span>
</div>
</div>
<div class="group bg-gris-claro p-8 rounded-xl hover:bg-negro transition-colors duration-300">
<div class="text-5xl mb-4">🌟</div>
<h3 class="text-2xl font-bold text-negro group-hover:text-white mb-3 transition-colors">Cualquier Persona</h3>
<p class="text-negro/70 group-hover:text-white/70 mb-4 transition-colors">
No importa tu edad, género o condición física. El Hapkido se adapta a ti. Ven como eres, evoluciona a tu ritmo.
</p>
<div class="flex flex-wrap gap-2">
<span class="text-xs font-medium px-3 py-1 rounded-full bg-negro/10 text-negro group-hover:bg-dorado/20 group-hover:text-dorado transition-colors">Sin límites</span>
<span class="text-xs font-medium px-3 py-1 rounded-full bg-negro/10 text-negro group-hover:bg-dorado/20 group-hover:text-dorado transition-colors">Todos los niveles</span>
<span class="text-xs font-medium px-3 py-1 rounded-full bg-negro/10 text-negro group-hover:bg-dorado/20 group-hover:text-dorado transition-colors">Inclusivo</span>
</div>
</div>
</div>
</div>
</section>
<!-- Contacto -->
<section id="contacto" class="py-20 bg-gris-claro">
<div class="container mx-auto px-4">
<div class="max-w-4xl mx-auto">
<div class="grid lg:grid-cols-2 gap-12 items-center">
<div>
<h2 class="text-3xl md:text-4xl font-bold text-negro mb-4">
¿Listo para <span class="text-rojo">empezar</span>?
</h2>
<p class="text-lg text-negro/70 mb-6">
Déjanos tus datos y te contactaremos por <strong>WhatsApp</strong> para resolver tus dudas
y coordinar tus 2 semanas de prueba gratuitas.
</p>
<div class="space-y-4">
<div class="flex items-center gap-3">
<div class="w-10 h-10 bg-rojo/10 rounded-full flex items-center justify-center">
<span class="text-rojo">✓</span>
</div>
<span class="text-negro/80">Respuesta en menos de 24 horas</span>
</div>
<div class="flex items-center gap-3">
<div class="w-10 h-10 bg-rojo/10 rounded-full flex items-center justify-center">
<span class="text-rojo">✓</span>
</div>
<span class="text-negro/80">2 primeras semanas totalmente gratis</span>
</div>
<div class="flex items-center gap-3">
<div class="w-10 h-10 bg-rojo/10 rounded-full flex items-center justify-center">
<span class="text-rojo">✓</span>
</div>
<span class="text-negro/80">Sin compromiso de permanencia</span>
</div>
</div>
</div>
<div class="bg-white p-8 rounded-xl shadow-lg">
<form action="https://formspree.io/f/placeholder" method="POST" class="space-y-5">
<div>
<label for="nombre" class="block text-sm font-medium text-negro mb-1">Nombre completo *</label>
<input type="text" id="nombre" name="nombre" required class="w-full px-4 py-3 rounded-lg border border-gray-200 focus:border-rojo focus:ring-2 focus:ring-rojo/20 outline-none transition-colors" placeholder="Tu nombre">
</div>
<div>
<label for="telefono" class="block text-sm font-medium text-negro mb-1">Teléfono (WhatsApp) *</label>
<input type="tel" id="telefono" name="telefono" required class="w-full px-4 py-3 rounded-lg border border-gray-200 focus:border-rojo focus:ring-2 focus:ring-rojo/20 outline-none transition-colors" placeholder="612 345 678">
</div>
<div>
<label for="email" class="block text-sm font-medium text-negro mb-1">Email (opcional)</label>
<input type="email" id="email" name="email" class="w-full px-4 py-3 rounded-lg border border-gray-200 focus:border-rojo focus:ring-2 focus:ring-rojo/20 outline-none transition-colors" placeholder="tu@email.com">
</div>
<div>
<label for="experiencia" class="block text-sm font-medium text-negro mb-1">Experiencia en artes marciales *</label>
<select id="experiencia" name="experiencia" required class="w-full px-4 py-3 rounded-lg border border-gray-200 focus:border-rojo focus:ring-2 focus:ring-rojo/20 outline-none transition-colors bg-white">
<option value="">Selecciona una opción</option>
<option value="sin-experiencia">Sin experiencia</option>
<option value="algo-experiencia">Algo de experiencia</option>
<option value="practicante">Practicante de artes marciales</option>
</select>
</div>
<div>
<label for="interes" class="block text-sm font-medium text-negro mb-1">¿Qué te interesa?</label>
<select id="interes" name="interes" class="w-full px-4 py-3 rounded-lg border border-gray-200 focus:border-rojo focus:ring-2 focus:ring-rojo/20 outline-none transition-colors bg-white">
<option value="">Selecciona una opción</option>
<option value="defensa-personal">Defensa personal</option>
<option value="deporte">Deporte y forma física</option>
<option value="profesional">Profesional (policía/seguridad)</option>
<option value="otro">Otro</option>
</select>
</div>
<div>
<label for="mensaje" class="block text-sm font-medium text-negro mb-1">Mensaje (opcional)</label>
<textarea id="mensaje" name="mensaje" rows="3" class="w-full px-4 py-3 rounded-lg border border-gray-200 focus:border-rojo focus:ring-2 focus:ring-rojo/20 outline-none transition-colors resize-none" placeholder="¿Tienes alguna pregunta o comentario?"></textarea>
</div>
<button type="submit" class="w-full bg-rojo hover:bg-rojo/80 text-white py-4 rounded-lg font-bold text-lg transition-colors shadow-lg shadow-rojo/30">Enviar solicitud</button>
<p class="text-xs text-negro/50 text-center">Al enviar este formulario, aceptas que nos pongamos en contacto contigo por WhatsApp.</p>
</form>
</div>
</div>
</div>
</div>
</section>
</main>
<!-- Footer -->
<footer class="bg-negro text-white py-12">
<div class="container mx-auto px-4">
<div class="grid md:grid-cols-3 gap-8 mb-8">
<div>
<div class="flex items-center gap-2 mb-4">
<div class="w-10 h-10 bg-dorado rounded-full flex items-center justify-center">
<span class="text-negro font-bold text-lg">H</span>
</div>
<span class="font-bold text-lg">Hapkido Cardedeu</span>
</div>
<p class="text-white/60 text-sm">
Asociación dedicada a la enseñanza y difusión del Hapkido
en Cardedeu y alrededores desde hace más de 20 años.
</p>
</div>
<div>
<h4 class="font-bold text-dorado mb-4">Contacto</h4>
<ul class="space-y-2 text-white/60 text-sm">
<li class="flex items-center gap-2">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"></path><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 11a3 3 0 11-6 0 3 3 0 016 0z"></path></svg>
<span>Cardedeu, Barcelona</span>
</li>
<li class="flex items-center gap-2">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path></svg>
<span>contacto@hapkidocardedeu.com</span>
</li>
</ul>
</div>
<div>
<h4 class="font-bold text-dorado mb-4">Horarios</h4>
<ul class="space-y-2 text-white/60 text-sm">
<li class="flex justify-between"><span>Martes y Jueves</span><span>19:00 - 21:00</span></li>
<li class="flex justify-between"><span>Sábados</span><span>10:00 - 12:00</span></li>
</ul>
<p class="text-xs text-white/40 mt-4">* Horarios sujetos a cambios. Consúltanos para confirmación.</p>
</div>
</div>
<div class="pt-8 border-t border-white/10 flex flex-col md:flex-row justify-between items-center gap-4">
<p class="text-white/40 text-sm">© 2024 Asociación Hapkido Cardedeu. Todos los derechos reservados.</p>
<div class="flex gap-4">
<a href="#" class="w-10 h-10 bg-white/10 hover:bg-dorado/20 rounded-full flex items-center justify-center transition-colors" aria-label="Instagram">
<svg class="w-5 h-5 text-white/60" fill="currentColor" viewBox="0 0 24 24"><path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"></path></svg>
</a>
<a href="#" class="w-10 h-10 bg-white/10 hover:bg-dorado/20 rounded-full flex items-center justify-center transition-colors" aria-label="Facebook">
<svg class="w-5 h-5 text-white/60" fill="currentColor" viewBox="0 0 24 24"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"></path></svg>
</a>
</div>
</div>
</div>
</footer>
</body>
</html>

19
src/styles/global.css Normal file
View File

@@ -0,0 +1,19 @@
@import "tailwindcss";
@theme {
--color-negro: #1a1a1a;
--color-rojo: #8b0000;
--color-dorado: #d4af37;
--color-gris-claro: #f5f5f5;
}
@layer base {
html {
scroll-behavior: smooth;
font-family: 'Montserrat', sans-serif;
}
body {
background-color: var(--color-white);
color: var(--color-negro);
}
}

3
tsconfig.json Normal file
View File

@@ -0,0 +1,3 @@
{
"extends": "astro/tsconfigs/strict"
}