Modularización de GKACHELE SaaS
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
</main>
|
||||
|
||||
<footer class="gk-footer" style="background: var(--text); color: var(--white); text-align: center; padding: 40px 20px; margin-top: 60px;">
|
||||
<div style="max-width: 1200px; margin: 0 auto;">
|
||||
{% if menus.footer %}
|
||||
<nav style="margin-bottom: 20px;">
|
||||
<ul style="display: flex; justify-content: center; list-style: none; gap: 20px; flex-wrap: wrap;">
|
||||
{% for menu_item in menus.footer %}
|
||||
<li><a href="{{ menu_item.url }}" style="color: var(--white); text-decoration: none;">{{ menu_item.title }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</nav>
|
||||
{% endif %}
|
||||
<p style="margin: 0; opacity: 0.8;">
|
||||
© 2025 GKACHELE™. Todos los derechos reservados.<br>
|
||||
Desarrollado desde noviembre 2025 por GKACHELE<br>
|
||||
Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,112 @@
|
||||
<!--
|
||||
GKACHELE™ Template System
|
||||
© 2025 GKACHELE™. Todos los derechos reservados.
|
||||
Desarrollado desde noviembre 2025 por GKACHELE
|
||||
Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización
|
||||
-->
|
||||
<!DOCTYPE html>
|
||||
<html lang="es">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{% if site_name %}{{ site_name }}{% else %}GKACHELE Site{% endif %}</title>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family={{ typography.font_family|replace(' ', '+') }}:wght@300;400;500;700&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
:root {
|
||||
--primary: {{ colors.primary or '#d32f2f' }};
|
||||
--secondary: {{ colors.secondary or '#ff6f00' }};
|
||||
--text: {{ colors.text or '#2c2c2c' }};
|
||||
--bg-light: #f9f9f9;
|
||||
--white: #ffffff;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: '{{ typography.font_family or 'Roboto' }}', sans-serif;
|
||||
color: var(--text);
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
/* Header / Navigation */
|
||||
.gk-header {
|
||||
background: var(--white);
|
||||
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
top: 0;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.gk-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 20px 40px;
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.gk-logo {
|
||||
font-size: 28px;
|
||||
color: var(--primary);
|
||||
font-weight: 700;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.gk-menu {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 30px;
|
||||
}
|
||||
|
||||
.gk-menu a {
|
||||
text-decoration: none;
|
||||
color: var(--text);
|
||||
font-weight: 500;
|
||||
transition: color 0.3s;
|
||||
}
|
||||
|
||||
.gk-menu a:hover {
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
.gk-menu .current-menu-item a {
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
/* Main Content */
|
||||
.gk-main {
|
||||
margin-top: 80px;
|
||||
min-height: calc(100vh - 160px);
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.gk-menu {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<header class="gk-header">
|
||||
<nav class="gk-nav">
|
||||
<a href="/" class="gk-logo">{{ site_name or 'GKACHELE Site' }}</a>
|
||||
{% if menus %}
|
||||
<ul class="gk-menu">
|
||||
{% for menu_item in menus.header %}
|
||||
<li class="{% if menu_item.current %}current-menu-item{% endif %}">
|
||||
<a href="{{ menu_item.url }}">{{ menu_item.title }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</nav>
|
||||
</header>
|
||||
<main class="gk-main">
|
||||
@@ -0,0 +1,33 @@
|
||||
<!--
|
||||
GKACHELE™ Sidebar Widget Area
|
||||
© 2025 GKACHELE™. Todos los derechos reservados.
|
||||
-->
|
||||
<aside class="gk-sidebar" style="width: 300px; padding: 20px; background: var(--bg-light);">
|
||||
{% if widgets %}
|
||||
{% for widget in widgets %}
|
||||
<div class="gk-widget" style="margin-bottom: 30px; padding: 20px; background: var(--white); border-radius: 5px; box-shadow: 0 2px 5px rgba(0,0,0,0.05);">
|
||||
{% if widget.title %}
|
||||
<h3 style="color: var(--primary); margin-bottom: 15px; font-size: 18px;">{{ widget.title }}</h3>
|
||||
{% endif %}
|
||||
<div class="gk-widget-content">
|
||||
{{ widget.content|safe }}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if menus.sidebar %}
|
||||
<div class="gk-widget gk-menu-widget" style="margin-bottom: 30px; padding: 20px; background: var(--white); border-radius: 5px;">
|
||||
<h3 style="color: var(--primary); margin-bottom: 15px; font-size: 18px;">Menú</h3>
|
||||
<ul style="list-style: none; padding: 0;">
|
||||
{% for menu_item in menus.sidebar %}
|
||||
<li style="margin-bottom: 10px;">
|
||||
<a href="{{ menu_item.url }}" style="color: var(--text); text-decoration: none; transition: color 0.3s;">
|
||||
{{ menu_item.title }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
</aside>
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "Gimnasio Claro",
|
||||
"rubro": "gimnasios",
|
||||
"description": "Tema claro y moderno para gimnasios",
|
||||
"sections": [
|
||||
"hero",
|
||||
"planes_fitness",
|
||||
"horarios",
|
||||
"entrenadores",
|
||||
"instalaciones",
|
||||
"contacto"
|
||||
],
|
||||
"colors": {
|
||||
"primary": "#ff4d4d",
|
||||
"secondary": "#1a1a1a",
|
||||
"accent": "#ff6b6b"
|
||||
},
|
||||
"typography": {
|
||||
"font_family": "Roboto",
|
||||
"headings": "Roboto"
|
||||
},
|
||||
"features": {
|
||||
"planes_fitness": true,
|
||||
"horarios": true,
|
||||
"entrenadores": true,
|
||||
"instalaciones": true,
|
||||
"precios": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "Restaurante Elegante",
|
||||
"rubro": "restaurante",
|
||||
"description": "Tema sofisticado y elegante para restaurantes de alta cocina",
|
||||
"sections": [
|
||||
"hero",
|
||||
"menu",
|
||||
"horarios",
|
||||
"reservas",
|
||||
"especialidad_culinaria",
|
||||
"galeria",
|
||||
"contacto"
|
||||
],
|
||||
"colors": {
|
||||
"primary": "#8b4513",
|
||||
"secondary": "#d4af37",
|
||||
"accent": "#f5deb3",
|
||||
"text": "#2c2c2c"
|
||||
},
|
||||
"typography": {
|
||||
"font_family": "Georgia",
|
||||
"headings": "Cormorant Garamond"
|
||||
},
|
||||
"features": {
|
||||
"menu_url": true,
|
||||
"horarios": true,
|
||||
"reservas": true,
|
||||
"capacidad": true,
|
||||
"especialidad_culinaria": true,
|
||||
"galeria": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,649 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="es">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{ site_name or 'Restaurante Elegante' }}</title>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Georgia:wght@400;700&family=Cormorant+Garamond:wght@400;600;700&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
:root {
|
||||
--primary: #8b4513;
|
||||
--secondary: #d4af37;
|
||||
--accent: #f5deb3;
|
||||
--text-dark: #2c2c2c;
|
||||
--text-light: #666;
|
||||
--bg-cream: #faf8f3;
|
||||
--white: #ffffff;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Georgia', serif;
|
||||
color: var(--text-dark);
|
||||
line-height: 1.8;
|
||||
background: var(--bg-cream);
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family: 'Cormorant Garamond', serif;
|
||||
font-weight: 700;
|
||||
line-height: 1.3;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
.section {
|
||||
padding: 100px 20px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
/* Header Elegante */
|
||||
header {
|
||||
background: var(--white);
|
||||
box-shadow: 0 2px 20px rgba(0,0,0,0.08);
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
top: 0;
|
||||
z-index: 1000;
|
||||
border-bottom: 3px solid var(--secondary);
|
||||
}
|
||||
|
||||
nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 25px 50px;
|
||||
}
|
||||
|
||||
.logo {
|
||||
font-family: 'Cormorant Garamond', serif;
|
||||
font-size: 32px;
|
||||
color: var(--primary);
|
||||
font-weight: 700;
|
||||
letter-spacing: 2px;
|
||||
}
|
||||
|
||||
.nav-links {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 40px;
|
||||
}
|
||||
|
||||
.nav-links a {
|
||||
text-decoration: none;
|
||||
color: var(--text-dark);
|
||||
font-weight: 500;
|
||||
font-size: 15px;
|
||||
letter-spacing: 0.5px;
|
||||
transition: color 0.3s;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.nav-links a::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: -5px;
|
||||
left: 0;
|
||||
width: 0;
|
||||
height: 2px;
|
||||
background: var(--secondary);
|
||||
transition: width 0.3s;
|
||||
}
|
||||
|
||||
.nav-links a:hover::after {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav-links a:hover {
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
/* Hero Elegante */
|
||||
.hero {
|
||||
background: linear-gradient(rgba(139, 69, 19, 0.85), rgba(139, 69, 19, 0.85)),
|
||||
url('https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?w=1920') center/cover;
|
||||
color: var(--white);
|
||||
text-align: center;
|
||||
padding: 200px 20px 150px;
|
||||
margin-top: 90px;
|
||||
}
|
||||
|
||||
.hero h1 {
|
||||
font-size: 72px;
|
||||
margin-bottom: 30px;
|
||||
color: var(--white);
|
||||
text-shadow: 2px 2px 10px rgba(0,0,0,0.3);
|
||||
letter-spacing: 3px;
|
||||
}
|
||||
|
||||
.hero p {
|
||||
font-size: 24px;
|
||||
margin-bottom: 40px;
|
||||
opacity: 0.95;
|
||||
font-style: italic;
|
||||
max-width: 700px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.btn {
|
||||
display: inline-block;
|
||||
padding: 18px 50px;
|
||||
background: var(--secondary);
|
||||
color: var(--white);
|
||||
text-decoration: none;
|
||||
border-radius: 0;
|
||||
font-weight: 600;
|
||||
letter-spacing: 1px;
|
||||
text-transform: uppercase;
|
||||
transition: all 0.3s;
|
||||
border: 2px solid var(--secondary);
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
background: transparent;
|
||||
color: var(--secondary);
|
||||
transform: translateY(-3px);
|
||||
box-shadow: 0 10px 30px rgba(212, 175, 55, 0.3);
|
||||
}
|
||||
|
||||
/* Menu Elegante */
|
||||
.menu {
|
||||
background: var(--white);
|
||||
}
|
||||
|
||||
.section-title {
|
||||
text-align: center;
|
||||
font-size: 48px;
|
||||
color: var(--primary);
|
||||
margin-bottom: 80px;
|
||||
position: relative;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.section-title::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
width: 100px;
|
||||
height: 3px;
|
||||
background: var(--secondary);
|
||||
}
|
||||
|
||||
.menu-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
|
||||
gap: 40px;
|
||||
margin-top: 60px;
|
||||
}
|
||||
|
||||
.menu-item {
|
||||
background: var(--bg-cream);
|
||||
padding: 40px;
|
||||
border: 1px solid #e8e5df;
|
||||
transition: all 0.3s;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.menu-item::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 4px;
|
||||
height: 0;
|
||||
background: var(--secondary);
|
||||
transition: height 0.3s;
|
||||
}
|
||||
|
||||
.menu-item:hover::before {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.menu-item:hover {
|
||||
transform: translateY(-5px);
|
||||
box-shadow: 0 10px 40px rgba(0,0,0,0.1);
|
||||
border-color: var(--secondary);
|
||||
}
|
||||
|
||||
.menu-item h3 {
|
||||
color: var(--primary);
|
||||
margin-bottom: 15px;
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
.menu-item p {
|
||||
color: var(--text-light);
|
||||
margin-bottom: 20px;
|
||||
font-style: italic;
|
||||
line-height: 1.8;
|
||||
}
|
||||
|
||||
.menu-price {
|
||||
font-size: 28px;
|
||||
font-weight: 700;
|
||||
color: var(--secondary);
|
||||
font-family: 'Cormorant Garamond', serif;
|
||||
}
|
||||
|
||||
/* Horarios Elegantes */
|
||||
.horarios {
|
||||
background: var(--primary);
|
||||
color: var(--white);
|
||||
}
|
||||
|
||||
.horarios .section-title {
|
||||
color: var(--white);
|
||||
}
|
||||
|
||||
.horarios .section-title::after {
|
||||
background: var(--secondary);
|
||||
}
|
||||
|
||||
.horarios-content {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
||||
gap: 40px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.horario-item {
|
||||
background: rgba(255,255,255,0.1);
|
||||
padding: 40px;
|
||||
border: 1px solid rgba(212, 175, 55, 0.3);
|
||||
backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
.horario-item h3 {
|
||||
color: var(--secondary);
|
||||
margin-bottom: 20px;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.horario-item p {
|
||||
font-size: 20px;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
/* Reservas Elegantes */
|
||||
.reservas {
|
||||
background: var(--white);
|
||||
}
|
||||
|
||||
.reservas-content {
|
||||
max-width: 700px;
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.reservas-form {
|
||||
display: grid;
|
||||
gap: 25px;
|
||||
margin-top: 50px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.form-group label {
|
||||
display: block;
|
||||
margin-bottom: 10px;
|
||||
color: var(--primary);
|
||||
font-weight: 600;
|
||||
font-size: 15px;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
.form-group input,
|
||||
.form-group textarea,
|
||||
.form-group select {
|
||||
width: 100%;
|
||||
padding: 15px;
|
||||
border: 2px solid #e8e5df;
|
||||
border-radius: 0;
|
||||
font-family: 'Georgia', serif;
|
||||
font-size: 16px;
|
||||
transition: border-color 0.3s;
|
||||
background: var(--bg-cream);
|
||||
}
|
||||
|
||||
.form-group input:focus,
|
||||
.form-group textarea:focus,
|
||||
.form-group select:focus {
|
||||
outline: none;
|
||||
border-color: var(--secondary);
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background: var(--primary);
|
||||
color: var(--white);
|
||||
border: 2px solid var(--primary);
|
||||
padding: 18px 50px;
|
||||
font-size: 16px;
|
||||
cursor: pointer;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1px;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
background: transparent;
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
/* Especialidad Elegante */
|
||||
.especialidad {
|
||||
background: var(--bg-cream);
|
||||
}
|
||||
|
||||
.especialidad-content {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 60px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.especialidad-text h2 {
|
||||
color: var(--primary);
|
||||
margin-bottom: 30px;
|
||||
font-size: 42px;
|
||||
}
|
||||
|
||||
.especialidad-text p {
|
||||
font-size: 18px;
|
||||
line-height: 2;
|
||||
color: var(--text-light);
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.especialidad-image img {
|
||||
width: 100%;
|
||||
border-radius: 0;
|
||||
box-shadow: 0 20px 60px rgba(0,0,0,0.2);
|
||||
border: 10px solid var(--white);
|
||||
}
|
||||
|
||||
/* Contacto Elegante */
|
||||
.contacto {
|
||||
background: var(--white);
|
||||
}
|
||||
|
||||
.contacto-content {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 60px;
|
||||
}
|
||||
|
||||
.contacto-info h3 {
|
||||
color: var(--primary);
|
||||
margin-bottom: 30px;
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
.contacto-info p {
|
||||
color: var(--text-light);
|
||||
margin-bottom: 20px;
|
||||
font-size: 17px;
|
||||
line-height: 2;
|
||||
}
|
||||
|
||||
.contacto-info strong {
|
||||
color: var(--primary);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.redes-sociales {
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.redes-sociales a {
|
||||
display: inline-block;
|
||||
margin-right: 20px;
|
||||
color: var(--primary);
|
||||
font-size: 28px;
|
||||
transition: transform 0.3s, color 0.3s;
|
||||
}
|
||||
|
||||
.redes-sociales a:hover {
|
||||
transform: scale(1.2);
|
||||
color: var(--secondary);
|
||||
}
|
||||
|
||||
/* Footer Elegante */
|
||||
footer {
|
||||
background: var(--primary);
|
||||
color: var(--white);
|
||||
text-align: center;
|
||||
padding: 50px 20px;
|
||||
border-top: 3px solid var(--secondary);
|
||||
}
|
||||
|
||||
footer p {
|
||||
font-size: 16px;
|
||||
opacity: 0.9;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
/* Responsive */
|
||||
@media (max-width: 768px) {
|
||||
.hero h1 {
|
||||
font-size: 42px;
|
||||
}
|
||||
|
||||
.nav-links {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.especialidad-content,
|
||||
.contacto-content {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.section {
|
||||
padding: 60px 20px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Header -->
|
||||
<header>
|
||||
<nav>
|
||||
<div class="logo">{{ site_name or 'Restaurante Elegante' }}</div>
|
||||
<ul class="nav-links">
|
||||
<li><a href="#inicio">Inicio</a></li>
|
||||
<li><a href="#menu">Menú</a></li>
|
||||
<li><a href="#horarios">Horarios</a></li>
|
||||
<li><a href="#reservas">Reservas</a></li>
|
||||
<li><a href="#contacto">Contacto</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<!-- Hero Section -->
|
||||
<section id="inicio" class="section hero">
|
||||
<div class="container">
|
||||
<h1>{{ hero_title or 'Experiencia Culinaria Excepcional' }}</h1>
|
||||
<p>{{ hero_description or 'Donde la tradición se encuentra con la innovación' }}</p>
|
||||
<a href="#reservas" class="btn">Reservar Mesa</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Menu Section -->
|
||||
<section id="menu" class="section menu">
|
||||
<div class="container">
|
||||
<h2 class="section-title">Nuestro Menú Exquisito</h2>
|
||||
<div class="menu-grid">
|
||||
<div class="menu-item">
|
||||
<h3>Plato Especial del Chef</h3>
|
||||
<p>Una creación única que combina los mejores ingredientes con técnicas culinarias refinadas.</p>
|
||||
<div class="menu-price">€35.00</div>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
<h3>Especialidad de la Casa</h3>
|
||||
<p>Nuestra receta tradicional, perfeccionada a lo largo de generaciones.</p>
|
||||
<div class="menu-price">€42.00</div>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
<h3>Degustación Premium</h3>
|
||||
<p>Una experiencia gastronómica completa con los mejores sabores de nuestra cocina.</p>
|
||||
<div class="menu-price">€65.00</div>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
<h3>Postre Artesanal</h3>
|
||||
<p>Dulces elaborados con ingredientes selectos y presentación impecable.</p>
|
||||
<div class="menu-price">€18.00</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if menu_url %}
|
||||
<div style="text-align: center; margin-top: 60px;">
|
||||
<a href="{{ menu_url }}" class="btn" target="_blank">Ver Menú Completo</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Horarios Section -->
|
||||
<section id="horarios" class="section horarios">
|
||||
<div class="container">
|
||||
<h2 class="section-title">Horarios de Atención</h2>
|
||||
<div class="horarios-content">
|
||||
<div class="horario-item">
|
||||
<h3>Lunes - Viernes</h3>
|
||||
<p>{{ horarios.lunes_viernes or '13:00 - 23:00' }}</p>
|
||||
</div>
|
||||
<div class="horario-item">
|
||||
<h3>Sábados</h3>
|
||||
<p>{{ horarios.sabados or '13:00 - 00:00' }}</p>
|
||||
</div>
|
||||
<div class="horario-item">
|
||||
<h3>Domingos</h3>
|
||||
<p>{{ horarios.domingos or '13:00 - 22:00' }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Reservas Section -->
|
||||
<section id="reservas" class="section reservas">
|
||||
<div class="container">
|
||||
<h2 class="section-title">Reserva tu Mesa</h2>
|
||||
<div class="reservas-content">
|
||||
<p style="color: var(--text-light); margin-bottom: 40px; font-size: 18px; font-style: italic;">
|
||||
Complete el formulario y nos pondremos en contacto para confirmar su reserva.
|
||||
</p>
|
||||
<form class="reservas-form">
|
||||
<div class="form-group">
|
||||
<label>Nombre Completo</label>
|
||||
<input type="text" name="nombre" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Teléfono</label>
|
||||
<input type="tel" name="telefono" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Email</label>
|
||||
<input type="email" name="email" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Fecha</label>
|
||||
<input type="date" name="fecha" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Hora</label>
|
||||
<input type="time" name="hora" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Número de Personas</label>
|
||||
<select name="personas" required>
|
||||
<option value="1">1 persona</option>
|
||||
<option value="2">2 personas</option>
|
||||
<option value="3">3 personas</option>
|
||||
<option value="4">4 personas</option>
|
||||
<option value="5+">5 o más personas</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Mensaje (opcional)</label>
|
||||
<textarea name="mensaje" rows="4"></textarea>
|
||||
</div>
|
||||
<button type="submit" class="btn-primary">Enviar Reserva</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Especialidad Culinaria Section -->
|
||||
<section class="section especialidad">
|
||||
<div class="container">
|
||||
<div class="especialidad-content">
|
||||
<div class="especialidad-text">
|
||||
<h2>{{ especialidad_culinaria.titulo or 'Nuestra Especialidad' }}</h2>
|
||||
<p>{{ especialidad_culinaria.descripcion or 'Cada plato es una obra de arte, preparado con ingredientes de la más alta calidad y técnicas culinarias refinadas que honran la tradición gastronómica.' }}</p>
|
||||
</div>
|
||||
<div class="especialidad-image">
|
||||
<img src="{{ especialidad_culinaria.imagen or 'https://via.placeholder.com/600x500?text=Especialidad' }}" alt="Especialidad Culinaria">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Contacto Section -->
|
||||
<section id="contacto" class="section contacto">
|
||||
<div class="container">
|
||||
<h2 class="section-title">Contacto</h2>
|
||||
<div class="contacto-content">
|
||||
<div class="contacto-info">
|
||||
<h3>Información de Contacto</h3>
|
||||
<p><strong>Dirección:</strong> {{ direccion or 'Avenida Principal 456, Ciudad' }}</p>
|
||||
<p><strong>Teléfono:</strong> {{ telefono or '+34 987 654 321' }}</p>
|
||||
<p><strong>Email:</strong> {{ email or 'contacto@restaurante.com' }}</p>
|
||||
{% if capacidad %}
|
||||
<p><strong>Capacidad:</strong> {{ capacidad }} personas</p>
|
||||
{% endif %}
|
||||
<div class="redes-sociales">
|
||||
{% if redes_sociales.facebook %}
|
||||
<a href="{{ redes_sociales.facebook }}" target="_blank">📘</a>
|
||||
{% endif %}
|
||||
{% if redes_sociales.instagram %}
|
||||
<a href="{{ redes_sociales.instagram }}" target="_blank">📷</a>
|
||||
{% endif %}
|
||||
{% if redes_sociales.twitter %}
|
||||
<a href="{{ redes_sociales.twitter }}" target="_blank">🐦</a>
|
||||
{% endif %}
|
||||
{% if redes_sociales.whatsapp %}
|
||||
<a href="https://wa.me/{{ redes_sociales.whatsapp }}" target="_blank">💬</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="contacto-info">
|
||||
<h3>Ubicación</h3>
|
||||
{% if mapa_url %}
|
||||
<iframe src="{{ mapa_url }}" width="100%" height="350" style="border:0; border: 2px solid #e8e5df;" allowfullscreen="" loading="lazy"></iframe>
|
||||
{% else %}
|
||||
<p style="color: var(--text-light); font-style: italic;">Mapa de ubicación disponible próximamente</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Footer -->
|
||||
<footer>
|
||||
<div class="container">
|
||||
<p>© 2025 {{ site_name or 'Restaurante Elegante' }}. Todos los derechos reservados.</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "Restaurante Moderno",
|
||||
"rubro": "restaurante",
|
||||
"description": "Tema elegante para restaurantes",
|
||||
"sections": [
|
||||
"hero",
|
||||
"menu",
|
||||
"horarios",
|
||||
"reservas",
|
||||
"especialidad_culinaria",
|
||||
"contacto"
|
||||
],
|
||||
"colors": {
|
||||
"primary": "#d32f2f",
|
||||
"secondary": "#ff6f00",
|
||||
"accent": "#ff8f00"
|
||||
},
|
||||
"typography": {
|
||||
"font_family": "Roboto",
|
||||
"headings": "Playfair Display"
|
||||
},
|
||||
"features": {
|
||||
"menu_url": true,
|
||||
"horarios": true,
|
||||
"reservas": true,
|
||||
"capacidad": true,
|
||||
"especialidad_culinaria": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
/* Estilos adicionales para el tema Restaurante Moderno */
|
||||
/* Estos estilos complementan el template.html */
|
||||
|
||||
/* Animaciones suaves */
|
||||
@keyframes fadeInUp {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(30px);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
.section {
|
||||
animation: fadeInUp 0.6s ease-out;
|
||||
}
|
||||
|
||||
/* Efectos hover mejorados */
|
||||
.menu-item,
|
||||
.horario-item {
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
/* Scroll suave */
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
/* Mejoras responsive */
|
||||
@media (max-width: 480px) {
|
||||
.hero h1 {
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
.menu-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,562 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="es">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{ site_name or 'Restaurante' }}</title>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&family=Playfair+Display:wght@400;600;700&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
:root {
|
||||
--primary: #d32f2f;
|
||||
--secondary: #ff6f00;
|
||||
--accent: #ff8f00;
|
||||
--text-dark: #2c2c2c;
|
||||
--text-light: #666;
|
||||
--bg-light: #f9f9f9;
|
||||
--white: #ffffff;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Roboto', sans-serif;
|
||||
color: var(--text-dark);
|
||||
line-height: 1.6;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family: 'Playfair Display', serif;
|
||||
font-weight: 600;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.section {
|
||||
padding: 80px 20px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
/* Header / Navigation */
|
||||
header {
|
||||
background: var(--white);
|
||||
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
top: 0;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 20px 40px;
|
||||
}
|
||||
|
||||
.logo {
|
||||
font-family: 'Playfair Display', serif;
|
||||
font-size: 28px;
|
||||
color: var(--primary);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.nav-links {
|
||||
display: flex;
|
||||
list-style: none;
|
||||
gap: 30px;
|
||||
}
|
||||
|
||||
.nav-links a {
|
||||
text-decoration: none;
|
||||
color: var(--text-dark);
|
||||
font-weight: 500;
|
||||
transition: color 0.3s;
|
||||
}
|
||||
|
||||
.nav-links a:hover {
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
/* Hero Section */
|
||||
.hero {
|
||||
background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
|
||||
color: var(--white);
|
||||
text-align: center;
|
||||
padding: 150px 20px 100px;
|
||||
margin-top: 80px;
|
||||
}
|
||||
|
||||
.hero h1 {
|
||||
font-size: 64px;
|
||||
margin-bottom: 20px;
|
||||
color: var(--white);
|
||||
}
|
||||
|
||||
.hero p {
|
||||
font-size: 20px;
|
||||
margin-bottom: 30px;
|
||||
opacity: 0.95;
|
||||
}
|
||||
|
||||
.btn {
|
||||
display: inline-block;
|
||||
padding: 15px 40px;
|
||||
background: var(--accent);
|
||||
color: var(--white);
|
||||
text-decoration: none;
|
||||
border-radius: 5px;
|
||||
font-weight: 500;
|
||||
transition: transform 0.3s, box-shadow 0.3s;
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 5px 20px rgba(0,0,0,0.2);
|
||||
}
|
||||
|
||||
/* Menu Section */
|
||||
.menu {
|
||||
background: var(--white);
|
||||
}
|
||||
|
||||
.section-title {
|
||||
text-align: center;
|
||||
font-size: 42px;
|
||||
color: var(--primary);
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
|
||||
.menu-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
||||
gap: 30px;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.menu-item {
|
||||
background: var(--bg-light);
|
||||
padding: 30px;
|
||||
border-radius: 10px;
|
||||
transition: transform 0.3s;
|
||||
}
|
||||
|
||||
.menu-item:hover {
|
||||
transform: translateY(-5px);
|
||||
box-shadow: 0 5px 20px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.menu-item h3 {
|
||||
color: var(--primary);
|
||||
margin-bottom: 10px;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.menu-item p {
|
||||
color: var(--text-light);
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.menu-price {
|
||||
font-size: 22px;
|
||||
font-weight: 700;
|
||||
color: var(--secondary);
|
||||
}
|
||||
|
||||
/* Horarios Section */
|
||||
.horarios {
|
||||
background: var(--bg-light);
|
||||
}
|
||||
|
||||
.horarios-content {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
||||
gap: 30px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.horario-item {
|
||||
background: var(--white);
|
||||
padding: 30px;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
|
||||
}
|
||||
|
||||
.horario-item h3 {
|
||||
color: var(--primary);
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.horario-item p {
|
||||
color: var(--text-light);
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
/* Reservas Section */
|
||||
.reservas {
|
||||
background: var(--white);
|
||||
}
|
||||
|
||||
.reservas-content {
|
||||
max-width: 600px;
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.reservas-form {
|
||||
display: grid;
|
||||
gap: 20px;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.form-group {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.form-group label {
|
||||
display: block;
|
||||
margin-bottom: 8px;
|
||||
color: var(--text-dark);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.form-group input,
|
||||
.form-group textarea,
|
||||
.form-group select {
|
||||
width: 100%;
|
||||
padding: 12px;
|
||||
border: 2px solid #e0e0e0;
|
||||
border-radius: 5px;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
font-size: 16px;
|
||||
transition: border-color 0.3s;
|
||||
}
|
||||
|
||||
.form-group input:focus,
|
||||
.form-group textarea:focus,
|
||||
.form-group select:focus {
|
||||
outline: none;
|
||||
border-color: var(--primary);
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background: var(--primary);
|
||||
color: var(--white);
|
||||
border: none;
|
||||
padding: 15px 40px;
|
||||
font-size: 18px;
|
||||
cursor: pointer;
|
||||
border-radius: 5px;
|
||||
transition: background 0.3s;
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
background: var(--secondary);
|
||||
}
|
||||
|
||||
/* Especialidad Culinaria Section */
|
||||
.especialidad {
|
||||
background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
|
||||
color: var(--white);
|
||||
}
|
||||
|
||||
.especialidad-content {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 50px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.especialidad-text h2 {
|
||||
color: var(--white);
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.especialidad-text p {
|
||||
font-size: 18px;
|
||||
opacity: 0.95;
|
||||
line-height: 1.8;
|
||||
}
|
||||
|
||||
.especialidad-image {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.especialidad-image img {
|
||||
max-width: 100%;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 10px 30px rgba(0,0,0,0.3);
|
||||
}
|
||||
|
||||
/* Contacto Section */
|
||||
.contacto {
|
||||
background: var(--bg-light);
|
||||
}
|
||||
|
||||
.contacto-content {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 50px;
|
||||
}
|
||||
|
||||
.contacto-info h3 {
|
||||
color: var(--primary);
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.contacto-info p {
|
||||
color: var(--text-light);
|
||||
margin-bottom: 15px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.contacto-info strong {
|
||||
color: var(--text-dark);
|
||||
}
|
||||
|
||||
.redes-sociales {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.redes-sociales a {
|
||||
display: inline-block;
|
||||
margin-right: 15px;
|
||||
color: var(--primary);
|
||||
font-size: 24px;
|
||||
transition: transform 0.3s;
|
||||
}
|
||||
|
||||
.redes-sociales a:hover {
|
||||
transform: scale(1.2);
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
background: var(--text-dark);
|
||||
color: var(--white);
|
||||
text-align: center;
|
||||
padding: 40px 20px;
|
||||
}
|
||||
|
||||
/* Responsive */
|
||||
@media (max-width: 768px) {
|
||||
.hero h1 {
|
||||
font-size: 42px;
|
||||
}
|
||||
|
||||
.nav-links {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.especialidad-content,
|
||||
.contacto-content {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.section {
|
||||
padding: 60px 20px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Header -->
|
||||
<header>
|
||||
<nav>
|
||||
<div class="logo">{{ site_name or 'Restaurante' }}</div>
|
||||
<ul class="nav-links">
|
||||
<li><a href="#inicio">Inicio</a></li>
|
||||
<li><a href="#menu">Menú</a></li>
|
||||
<li><a href="#horarios">Horarios</a></li>
|
||||
<li><a href="#reservas">Reservas</a></li>
|
||||
<li><a href="#contacto">Contacto</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<!-- Hero Section -->
|
||||
<section id="inicio" class="section hero">
|
||||
<div class="container">
|
||||
<h1>{{ hero_title or 'Bienvenido a Nuestro Restaurante' }}</h1>
|
||||
<p>{{ hero_description or 'Sabores auténticos que despiertan tus sentidos' }}</p>
|
||||
<a href="#reservas" class="btn">Reservar Mesa</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Menu Section -->
|
||||
<section id="menu" class="section menu">
|
||||
<div class="container">
|
||||
<h2 class="section-title">Nuestro Menú</h2>
|
||||
<div class="menu-grid">
|
||||
<div class="menu-item">
|
||||
<h3>Plato Especial 1</h3>
|
||||
<p>Descripción del plato con ingredientes frescos y sabores únicos.</p>
|
||||
<div class="menu-price">$25.00</div>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
<h3>Plato Especial 2</h3>
|
||||
<p>Descripción del plato con ingredientes frescos y sabores únicos.</p>
|
||||
<div class="menu-price">$28.00</div>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
<h3>Plato Especial 3</h3>
|
||||
<p>Descripción del plato con ingredientes frescos y sabores únicos.</p>
|
||||
<div class="menu-price">$30.00</div>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
<h3>Plato Especial 4</h3>
|
||||
<p>Descripción del plato con ingredientes frescos y sabores únicos.</p>
|
||||
<div class="menu-price">$32.00</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if menu_url %}
|
||||
<div style="text-align: center; margin-top: 40px;">
|
||||
<a href="{{ menu_url }}" class="btn" target="_blank">Ver Menú Completo</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Horarios Section -->
|
||||
<section id="horarios" class="section horarios">
|
||||
<div class="container">
|
||||
<h2 class="section-title">Horarios de Atención</h2>
|
||||
<div class="horarios-content">
|
||||
<div class="horario-item">
|
||||
<h3>Lunes - Viernes</h3>
|
||||
<p>{{ horarios.lunes_viernes or '12:00 PM - 10:00 PM' }}</p>
|
||||
</div>
|
||||
<div class="horario-item">
|
||||
<h3>Sábados</h3>
|
||||
<p>{{ horarios.sabados or '12:00 PM - 11:00 PM' }}</p>
|
||||
</div>
|
||||
<div class="horario-item">
|
||||
<h3>Domingos</h3>
|
||||
<p>{{ horarios.domingos or '12:00 PM - 9:00 PM' }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Reservas Section -->
|
||||
<section id="reservas" class="section reservas">
|
||||
<div class="container">
|
||||
<h2 class="section-title">Reserva tu Mesa</h2>
|
||||
<div class="reservas-content">
|
||||
<p style="color: var(--text-light); margin-bottom: 30px;">
|
||||
Completa el formulario y nos pondremos en contacto contigo para confirmar tu reserva.
|
||||
</p>
|
||||
<form class="reservas-form">
|
||||
<div class="form-group">
|
||||
<label>Nombre Completo</label>
|
||||
<input type="text" name="nombre" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Teléfono</label>
|
||||
<input type="tel" name="telefono" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Email</label>
|
||||
<input type="email" name="email" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Fecha</label>
|
||||
<input type="date" name="fecha" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Hora</label>
|
||||
<input type="time" name="hora" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Número de Personas</label>
|
||||
<select name="personas" required>
|
||||
<option value="1">1 persona</option>
|
||||
<option value="2">2 personas</option>
|
||||
<option value="3">3 personas</option>
|
||||
<option value="4">4 personas</option>
|
||||
<option value="5+">5 o más personas</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Mensaje (opcional)</label>
|
||||
<textarea name="mensaje" rows="4"></textarea>
|
||||
</div>
|
||||
<button type="submit" class="btn-primary">Enviar Reserva</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Especialidad Culinaria Section -->
|
||||
<section class="section especialidad">
|
||||
<div class="container">
|
||||
<div class="especialidad-content">
|
||||
<div class="especialidad-text">
|
||||
<h2>{{ especialidad_culinaria.titulo or 'Nuestra Especialidad' }}</h2>
|
||||
<p>{{ especialidad_culinaria.descripcion or 'Cada plato es una obra de arte culinaria, preparado con ingredientes frescos y técnicas tradicionales que honran la autenticidad de nuestros sabores.' }}</p>
|
||||
</div>
|
||||
<div class="especialidad-image">
|
||||
<img src="{{ especialidad_culinaria.imagen or 'https://via.placeholder.com/500x400?text=Especialidad' }}" alt="Especialidad Culinaria">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Contacto Section -->
|
||||
<section id="contacto" class="section contacto">
|
||||
<div class="container">
|
||||
<h2 class="section-title">Contacto</h2>
|
||||
<div class="contacto-content">
|
||||
<div class="contacto-info">
|
||||
<h3>Información de Contacto</h3>
|
||||
<p><strong>Dirección:</strong> {{ direccion or 'Calle Principal 123, Ciudad' }}</p>
|
||||
<p><strong>Teléfono:</strong> {{ telefono or '+34 123 456 789' }}</p>
|
||||
<p><strong>Email:</strong> {{ email or 'contacto@restaurante.com' }}</p>
|
||||
{% if capacidad %}
|
||||
<p><strong>Capacidad:</strong> {{ capacidad }} personas</p>
|
||||
{% endif %}
|
||||
<div class="redes-sociales">
|
||||
{% if redes_sociales.facebook %}
|
||||
<a href="{{ redes_sociales.facebook }}" target="_blank">📘</a>
|
||||
{% endif %}
|
||||
{% if redes_sociales.instagram %}
|
||||
<a href="{{ redes_sociales.instagram }}" target="_blank">📷</a>
|
||||
{% endif %}
|
||||
{% if redes_sociales.twitter %}
|
||||
<a href="{{ redes_sociales.twitter }}" target="_blank">🐦</a>
|
||||
{% endif %}
|
||||
{% if redes_sociales.whatsapp %}
|
||||
<a href="https://wa.me/{{ redes_sociales.whatsapp }}" target="_blank">💬</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="contacto-info">
|
||||
<h3>Ubicación</h3>
|
||||
{% if mapa_url %}
|
||||
<iframe src="{{ mapa_url }}" width="100%" height="300" style="border:0; border-radius: 10px;" allowfullscreen="" loading="lazy"></iframe>
|
||||
{% else %}
|
||||
<p style="color: var(--text-light);">Mapa de ubicación disponible próximamente</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Footer -->
|
||||
<footer>
|
||||
<div class="container">
|
||||
<p>© 2025 {{ site_name or 'Restaurante' }}. Todos los derechos reservados.</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user