Zinedine94 commited on
Commit
a425f1d
·
verified ·
1 Parent(s): f42d5fe

Un site internet pour un resto suisse - Initial Deployment

Browse files
Files changed (2) hide show
  1. README.md +7 -5
  2. index.html +553 -19
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Restos Suisse
3
- emoji: 🏆
4
- colorFrom: gray
5
- colorTo: pink
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: restos-suisse
3
+ emoji: 🐳
4
+ colorFrom: yellow
5
+ colorTo: purple
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,553 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="fr">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Le Chalet Suisse | Restaurant traditionnel à Genève</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <style>
10
+ .gradient-bg {
11
+ background: linear-gradient(135deg, #7f1d1d 0%, #b91c1c 100%);
12
+ }
13
+ .ticket-hover:hover {
14
+ transform: translateY(-5px);
15
+ box-shadow: 0 10px 20px rgba(0,0,0,0.2);
16
+ }
17
+ .stadium-bg {
18
+ background-image: url('https://images.unsplash.com/photo-1555861496-0666cf8982b0?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80');
19
+ background-size: cover;
20
+ background-position: center;
21
+ position: relative;
22
+ }
23
+ .stadium-bg::before {
24
+ content: '';
25
+ position: absolute;
26
+ top: 0;
27
+ left: 0;
28
+ width: 100%;
29
+ height: 100%;
30
+ background: rgba(0,0,0,0.6);
31
+ }
32
+ .countdown-item {
33
+ @apply bg-white bg-opacity-20 rounded-lg p-2 text-center;
34
+ min-width: 60px;
35
+ }
36
+ .seat-selected {
37
+ background-color: #1a936f !important;
38
+ border-color: #0c4b33 !important;
39
+ }
40
+ </style>
41
+ </head>
42
+ <body class="font-sans bg-gray-100">
43
+ <!-- Header -->
44
+ <header class="bg-red-700 text-white shadow-lg">
45
+ <div class="container mx-auto px-4 py-4">
46
+ <div class="flex justify-between items-center">
47
+ <div class="flex items-center space-x-2">
48
+ <i class="fas fa-utensils text-2xl"></i>
49
+ <h1 class="text-2xl font-bold">Le Chalet Suisse</h1>
50
+ </div>
51
+ <nav class="hidden md:flex space-x-6">
52
+ <a href="#" class="hover:text-red-200 font-medium">Accueil</a>
53
+ <a href="#" class="hover:text-red-200 font-medium">Menu</a>
54
+ <a href="#" class="hover:text-red-200 font-medium">Réservations</a>
55
+ <a href="#" class="hover:text-red-200 font-medium">À propos</a>
56
+ <a href="#" class="hover:text-red-200 font-medium">Contact</a>
57
+ </nav>
58
+ <div class="flex items-center space-x-4">
59
+ <button class="bg-white text-red-800 px-4 py-2 rounded-full font-medium hover:bg-red-100 transition">
60
+ Réserver
61
+ </button>
62
+ <button class="md:hidden text-white">
63
+ <i class="fas fa-bars text-2xl"></i>
64
+ </button>
65
+ </div>
66
+ </div>
67
+ </div>
68
+ </header>
69
+
70
+ <!-- Hero Section -->
71
+ <section class="bg-[url('https://images.unsplash.com/photo-1600891964599-f61ba0e24092?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80')] bg-cover bg-center text-white py-20 relative">
72
+ <div class="absolute inset-0 bg-black opacity-50"></div>
73
+ <div class="container mx-auto px-4 relative z-10">
74
+ <div class="max-w-2xl">
75
+ <h1 class="text-4xl md:text-5xl font-bold mb-4">Cuisine suisse authentique</h1>
76
+ <p class="text-xl mb-8">Découvrez les saveurs traditionnelles des Alpes dans notre restaurant au cœur de Genève.</p>
77
+ <div class="flex gap-4">
78
+ <button class="bg-red-600 hover:bg-red-700 px-6 py-3 rounded-lg font-bold transition">
79
+ <i class="fas fa-book-open mr-2"></i> Voir le menu
80
+ </button>
81
+ <button class="bg-white text-red-800 hover:bg-gray-100 px-6 py-3 rounded-lg font-bold transition">
82
+ <i class="fas fa-phone mr-2"></i> Réserver
83
+ </button>
84
+ </div>
85
+ </div>
86
+ </div>
87
+ </section>
88
+
89
+ <!-- Specialties -->
90
+ <section class="py-12 bg-white">
91
+ <div class="container mx-auto px-4">
92
+ <h2 class="text-3xl font-bold mb-8 text-center">Nos spécialités</h2>
93
+
94
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
95
+ <div class="bg-white rounded-xl overflow-hidden shadow-lg hover:shadow-xl transition">
96
+ <img src="https://images.unsplash.com/photo-1601050690597-df0568f70950?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80" alt="Fondue" class="w-full h-48 object-cover">
97
+ <div class="p-6">
98
+ <h3 class="text-xl font-bold mb-2">Fondue moitié-moitié</h3>
99
+ <p class="text-gray-600 mb-4">Notre célèbre fondue préparée avec un mélange de Gruyère et Vacherin fribourgeois.</p>
100
+ <div class="text-red-600 font-bold">38 CHF</div>
101
+ </div>
102
+ </div>
103
+
104
+ <div class="bg-white rounded-xl overflow-hidden shadow-lg hover:shadow-xl transition">
105
+ <img src="https://images.unsplash.com/photo-1603105037880-8809544d5d3a?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1974&q=80" alt="Rösti" class="w-full h-48 object-cover">
106
+ <div class="p-6">
107
+ <h3 class="text-xl font-bold mb-2">Rösti traditionnel</h3>
108
+ <p class="text-gray-600 mb-4">Pommes de terre râpées et dorées à la perfection, accompagnées de jambon et fromage.</p>
109
+ <div class="text-red-600 font-bold">28 CHF</div>
110
+ </div>
111
+ </div>
112
+
113
+ <div class="bg-white rounded-xl overflow-hidden shadow-lg hover:shadow-xl transition">
114
+ <img src="https://images.unsplash.com/photo-1601050690446-5f5a8a87351e?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1974&q=80" alt="Raclette" class="w-full h-48 object-cover">
115
+ <div class="p-6">
116
+ <h3 class="text-xl font-bold mb-2">Raclette valaisanne</h3>
117
+ <p class="text-gray-600 mb-4">Fromage raclette du Valais fondu à la perfection, servie avec pommes de terre et cornichons.</p>
118
+ <div class="text-red-600 font-bold">35 CHF</div>
119
+ </div>
120
+ </div>
121
+ </div>
122
+ </div>
123
+ </section>
124
+
125
+ <!-- Upcoming Matches -->
126
+ <section class="py-12 bg-gray-100">
127
+ <div class="container mx-auto px-4">
128
+ <h2 class="text-3xl font-bold mb-8 text-center">Prochains matchs</h2>
129
+
130
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
131
+ <!-- Match 1 -->
132
+ <div class="bg-white rounded-xl overflow-hidden shadow-md ticket-hover transition duration-300">
133
+ <div class="p-4 border-b">
134
+ <div class="flex justify-between items-center">
135
+ <div class="text-sm text-gray-500">Ligue 1 - Jour 24</div>
136
+ <div class="text-sm font-medium bg-green-100 text-green-800 px-2 py-1 rounded">Disponible</div>
137
+ </div>
138
+ </div>
139
+ <div class="p-6">
140
+ <div class="flex justify-between items-center mb-6">
141
+ <div class="flex flex-col items-center">
142
+ <img src="https://upload.wikimedia.org/wikipedia/fr/thumb/4/43/Olympique_de_Marseille_logo.svg/1200px-Olympique_de_Marseille_logo.svg.png" alt="OM" class="h-12 w-12 object-contain">
143
+ <div class="font-medium mt-2">OM</div>
144
+ </div>
145
+ <div class="text-lg font-bold mx-2">VS</div>
146
+ <div class="flex flex-col items-center">
147
+ <img src="https://upload.wikimedia.org/wikipedia/fr/thumb/a/aa/Stade_rennais_logo.svg/1200px-Stade_rennais_logo.svg.png" alt="Rennes" class="h-12 w-12 object-contain">
148
+ <div class="font-medium mt-2">Rennes</div>
149
+ </div>
150
+ </div>
151
+ <div class="text-center text-gray-600 mb-4">
152
+ <i class="fas fa-map-marker-alt mr-2"></i> Orange Vélodrome, Marseille
153
+ </div>
154
+ <div class="text-center font-medium mb-4">
155
+ <i class="far fa-calendar-alt mr-2"></i> 28 Septembre 2025 - 17:00
156
+ </div>
157
+ <div class="flex justify-between items-center">
158
+ <div class="text-green-600 font-bold">À partir de 35€</div>
159
+ <button class="bg-green-600 hover:bg-green-700 text-white px-4 py-2 rounded-lg text-sm font-medium transition">
160
+ Réserver
161
+ </button>
162
+ </div>
163
+ </div>
164
+ </div>
165
+
166
+ <!-- Match 2 -->
167
+ <div class="bg-white rounded-xl overflow-hidden shadow-md ticket-hover transition duration-300">
168
+ <div class="p-4 border-b">
169
+ <div class="flex justify-between items-center">
170
+ <div class="text-sm text-gray-500">Ligue 1 - Jour 25</div>
171
+ <div class="text-sm font-medium bg-yellow-100 text-yellow-800 px-2 py-1 rounded">Bientôt</div>
172
+ </div>
173
+ </div>
174
+ <div class="p-6">
175
+ <div class="flex justify-between items-center mb-6">
176
+ <div class="flex flex-col items-center">
177
+ <img src="https://upload.wikimedia.org/wikipedia/fr/thumb/8/81/FC_Nantes_logo.svg/1200px-FC_Nantes_logo.svg.png" alt="Nantes" class="h-12 w-12 object-contain">
178
+ <div class="font-medium mt-2">Nantes</div>
179
+ </div>
180
+ <div class="text-lg font-bold mx-2">VS</div>
181
+ <div class="flex flex-col items-center">
182
+ <img src="https://upload.wikimedia.org/wikipedia/fr/thumb/8/86/Paris_Saint-Germain_Logo.svg/1200px-Paris_Saint-Germain_Logo.svg.png" alt="PSG" class="h-12 w-12 object-contain">
183
+ <div class="font-medium mt-2">PSG</div>
184
+ </div>
185
+ </div>
186
+ <div class="text-center text-gray-600 mb-4">
187
+ <i class="fas fa-map-marker-alt mr-2"></i> Stade de la Beaujoire, Nantes
188
+ </div>
189
+ <div class="text-center font-medium mb-4">
190
+ <i class="far fa-calendar-alt mr-2"></i> 5 Octobre 2025 - 20:45
191
+ </div>
192
+ <div class="flex justify-between items-center">
193
+ <div class="text-gray-400 font-bold">Bientôt en vente</div>
194
+ <button class="bg-gray-300 text-gray-600 px-4 py-2 rounded-lg text-sm font-medium cursor-not-allowed" disabled>
195
+ Réserver
196
+ </button>
197
+ </div>
198
+ </div>
199
+ </div>
200
+
201
+ <!-- Match 3 -->
202
+ <div class="bg-white rounded-xl overflow-hidden shadow-md ticket-hover transition duration-300">
203
+ <div class="p-4 border-b">
204
+ <div class="flex justify-between items-center">
205
+ <div class="text-sm text-gray-500">Ligue 1 - Jour 24</div>
206
+ <div class="text-sm font-medium bg-green-100 text-green-800 px-2 py-1 rounded">Disponible</div>
207
+ </div>
208
+ </div>
209
+ <div class="p-6">
210
+ <div class="flex justify-between items-center mb-6">
211
+ <div class="flex flex-col items-center">
212
+ <img src="https://upload.wikimedia.org/wikipedia/fr/thumb/d/d9/AS_Monaco_FC_logo.svg/1200px-AS_Monaco_FC_logo.svg.png" alt="Monaco" class="h-12 w-12 object-contain">
213
+ <div class="font-medium mt-2">Monaco</div>
214
+ </div>
215
+ <div class="text-lg font-bold mx-2">VS</div>
216
+ <div class="flex flex-col items-center">
217
+ <img src="https://upload.wikimedia.org/wikipedia/fr/thumb/7/76/Olympique_lyonnais.svg/1200px-Olympique_lyonnais.svg.png" alt="Lyon" class="h-12 w-12 object-contain">
218
+ <div class="font-medium mt-2">Lyon</div>
219
+ </div>
220
+ </div>
221
+ <div class="text-center text-gray-600 mb-4">
222
+ <i class="fas fa-map-marker-alt mr-2"></i> Stade Louis II, Monaco
223
+ </div>
224
+ <div class="text-center font-medium mb-4">
225
+ <i class="far fa-calendar-alt mr-2"></i> 29 Septembre 2025 - 20:45
226
+ </div>
227
+ <div class="flex justify-between items-center">
228
+ <div class="text-green-600 font-bold">À partir de 45€</div>
229
+ <button class="bg-green-600 hover:bg-green-700 text-white px-4 py-2 rounded-lg text-sm font-medium transition">
230
+ Réserver
231
+ </button>
232
+ </div>
233
+ </div>
234
+ </div>
235
+ </div>
236
+
237
+ <div class="text-center mt-8">
238
+ <button class="border-2 border-green-600 text-green-600 hover:bg-green-600 hover:text-white px-6 py-3 rounded-lg font-medium transition">
239
+ Voir tous les matchs
240
+ </button>
241
+ </div>
242
+ </div>
243
+ </section>
244
+
245
+ <!-- Stadiums Section -->
246
+ <section class="py-12 bg-white">
247
+ <div class="container mx-auto px-4">
248
+ <h2 class="text-3xl font-bold mb-8 text-center">Stades de Ligue 1</h2>
249
+
250
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
251
+ <!-- Stadium 1 -->
252
+ <div class="relative rounded-xl overflow-hidden shadow-lg h-64">
253
+ <img src="https://images.unsplash.com/photo-1574629810360-7efbbe195018?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1893&q=80" alt="Parc des Princes" class="w-full h-full object-cover">
254
+ <div class="absolute inset-0 bg-gradient-to-t from-black to-transparent opacity-80"></div>
255
+ <div class="absolute bottom-0 left-0 p-6 text-white">
256
+ <h3 class="text-xl font-bold">Parc des Princes</h3>
257
+ <p class="text-sm">Paris • Capacité: 47,929</p>
258
+ <div class="flex items-center mt-2">
259
+ <i class="fas fa-star text-yellow-400 mr-1"></i>
260
+ <span class="text-sm">4.8 (12,345 avis)</span>
261
+ </div>
262
+ </div>
263
+ </div>
264
+
265
+ <!-- Stadium 2 -->
266
+ <div class="relative rounded-xl overflow-hidden shadow-lg h-64">
267
+ <img src="https://images.unsplash.com/photo-1540746272351-b9df3082d4e0?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80" alt="Orange Vélodrome" class="w-full h-full object-cover">
268
+ <div class="absolute inset-0 bg-gradient-to-t from-black to-transparent opacity-80"></div>
269
+ <div class="absolute bottom-0 left-0 p-6 text-white">
270
+ <h3 class="text-xl font-bold">Orange Vélodrome</h3>
271
+ <p class="text-sm">Marseille • Capacité: 67,394</p>
272
+ <div class="flex items-center mt-2">
273
+ <i class="fas fa-star text-yellow-400 mr-1"></i>
274
+ <span class="text-sm">4.7 (9,876 avis)</span>
275
+ </div>
276
+ </div>
277
+ </div>
278
+
279
+ <!-- Stadium 3 -->
280
+ <div class="relative rounded-xl overflow-hidden shadow-lg h-64">
281
+ <img src="https://images.unsplash.com/photo-1575365345949-ef1fdee4a6a9?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80" alt="Groupama Stadium" class="w-full h-full object-cover">
282
+ <div class="absolute inset-0 bg-gradient-to-t from-black to-transparent opacity-80"></div>
283
+ <div class="absolute bottom-0 left-0 p-6 text-white">
284
+ <h3 class="text-xl font-bold">Groupama Stadium</h3>
285
+ <p class="text-sm">Lyon • Capacité: 59,186</p>
286
+ <div class="flex items-center mt-2">
287
+ <i class="fas fa-star text-yellow-400 mr-1"></i>
288
+ <span class="text-sm">4.6 (8,543 avis)</span>
289
+ </div>
290
+ </div>
291
+ </div>
292
+ </div>
293
+ </div>
294
+ </section>
295
+
296
+ <!-- Ticket Purchase Modal (hidden by default) -->
297
+ <div id="ticket-modal" class="fixed inset-0 bg-black bg-opacity-50 z-50 hidden flex items-center justify-center p-4">
298
+ <div class="bg-white rounded-xl max-w-4xl w-full max-h-[90vh] overflow-y-auto">
299
+ <div class="p-6">
300
+ <div class="flex justify-between items-center mb-6">
301
+ <h3 class="text-2xl font-bold">Achat de places</h3>
302
+ <button id="close-modal" class="text-gray-500 hover:text-gray-700">
303
+ <i class="fas fa-times text-2xl"></i>
304
+ </button>
305
+ </div>
306
+
307
+ <div class="md:flex gap-6">
308
+ <div class="md:w-1/2 mb-6 md:mb-0">
309
+ <h4 class="text-lg font-bold mb-4">PSG vs OM</h4>
310
+ <div class="bg-gray-100 p-4 rounded-lg mb-4">
311
+ <div class="flex justify-between mb-2">
312
+ <span class="font-medium">Date:</span>
313
+ <span>18 Février 2024 - 20:45</span>
314
+ </div>
315
+ <div class="flex justify-between mb-2">
316
+ <span class="font-medium">Stade:</span>
317
+ <span>Parc des Princes, Paris</span>
318
+ </div>
319
+ <div class="flex justify-between">
320
+ <span class="font-medium">Catégorie:</span>
321
+ <span>Tribune A</span>
322
+ </div>
323
+ </div>
324
+
325
+ <h4 class="text-lg font-bold mb-4">Plan du stade</h4>
326
+ <div class="bg-gray-200 p-4 rounded-lg mb-4">
327
+ <div class="grid grid-cols-5 gap-2 mb-2">
328
+ <div class="col-span-5 bg-green-600 text-white text-center py-1 rounded">Terrain</div>
329
+ </div>
330
+ <div class="grid grid-cols-5 gap-2">
331
+ <div class="seat bg-gray-300 border border-gray-400 h-8 rounded cursor-pointer"></div>
332
+ <div class="seat bg-gray-300 border border-gray-400 h-8 rounded cursor-pointer"></div>
333
+ <div class="seat bg-gray-300 border border-gray-400 h-8 rounded cursor-pointer"></div>
334
+ <div class="seat bg-gray-300 border border-gray-400 h-8 rounded cursor-pointer"></div>
335
+ <div class="seat bg-gray-300 border border-gray-400 h-8 rounded cursor-pointer"></div>
336
+ <div class="seat bg-gray-300 border border-gray-400 h-8 rounded cursor-pointer"></div>
337
+ <div class="seat bg-gray-300 border border-gray-400 h-8 rounded cursor-pointer"></div>
338
+ <div class="seat bg-gray-300 border border-gray-400 h-8 rounded cursor-pointer"></div>
339
+ <div class="seat bg-gray-300 border border-gray-400 h-8 rounded cursor-pointer"></div>
340
+ <div class="seat bg-gray-300 border border-gray-400 h-8 rounded cursor-pointer"></div>
341
+ </div>
342
+ <div class="mt-4 flex items-center">
343
+ <div class="w-4 h-4 bg-gray-300 border border-gray-400 mr-2"></div>
344
+ <span class="text-sm">Disponible</span>
345
+ <div class="w-4 h-4 bg-green-600 border border-green-800 mx-4 mr-2"></div>
346
+ <span class="text-sm">Sélectionné</span>
347
+ <div class="w-4 h-4 bg-gray-500 border border-gray-700 mx-4 mr-2"></div>
348
+ <span class="text-sm">Occupé</span>
349
+ </div>
350
+ </div>
351
+ </div>
352
+
353
+ <div class="md:w-1/2">
354
+ <h4 class="text-lg font-bold mb-4">Votre sélection</h4>
355
+ <div class="bg-gray-100 p-4 rounded-lg mb-4">
356
+ <div class="flex justify-between mb-4">
357
+ <div>
358
+ <div class="font-medium">Place Standard</div>
359
+ <div class="text-sm text-gray-600">Tribune A - Rang 12 - Place 45</div>
360
+ </div>
361
+ <div class="flex items-center">
362
+ <button class="bg-gray-300 px-2 py-1 rounded-l">-</button>
363
+ <div class="bg-white px-4 py-1 border-t border-b border-gray-300">1</div>
364
+ <button class="bg-gray-300 px-2 py-1 rounded-r">+</button>
365
+ </div>
366
+ <div class="font-bold">65€</div>
367
+ </div>
368
+ <div class="flex justify-between mb-4">
369
+ <div>
370
+ <div class="font-medium">Place Standard</div>
371
+ <div class="text-sm text-gray-600">Tribune A - Rang 12 - Place 46</div>
372
+ </div>
373
+ <div class="flex items-center">
374
+ <button class="bg-gray-300 px-2 py-1 rounded-l">-</button>
375
+ <div class="bg-white px-4 py-1 border-t border-b border-gray-300">1</div>
376
+ <button class="bg-gray-300 px-2 py-1 rounded-r">+</button>
377
+ </div>
378
+ <div class="font-bold">65€</div>
379
+ </div>
380
+ <div class="border-t border-gray-300 pt-4">
381
+ <div class="flex justify-between mb-2">
382
+ <span>Sous-total:</span>
383
+ <span>130€</span>
384
+ </div>
385
+ <div class="flex justify-between mb-2">
386
+ <span>Frais de service:</span>
387
+ <span>5€</span>
388
+ </div>
389
+ <div class="flex justify-between font-bold text-lg">
390
+ <span>Total:</span>
391
+ <span>135€</span>
392
+ </div>
393
+ </div>
394
+ </div>
395
+
396
+ <h4 class="text-lg font-bold mb-4">Informations de paiement</h4>
397
+ <div class="space-y-4">
398
+ <div>
399
+ <label class="block text-sm font-medium mb-1">Nom complet</label>
400
+ <input type="text" class="w-full px-4 py-2 border rounded-lg">
401
+ </div>
402
+ <div>
403
+ <label class="block text-sm font-medium mb-1">Email</label>
404
+ <input type="email" class="w-full px-4 py-2 border rounded-lg">
405
+ </div>
406
+ <div>
407
+ <label class="block text-sm font-medium mb-1">Carte de crédit</label>
408
+ <input type="text" placeholder="1234 5678 9012 3456" class="w-full px-4 py-2 border rounded-lg">
409
+ </div>
410
+ <div class="grid grid-cols-2 gap-4">
411
+ <div>
412
+ <label class="block text-sm font-medium mb-1">Date d'expiration</label>
413
+ <input type="text" placeholder="MM/AA" class="w-full px-4 py-2 border rounded-lg">
414
+ </div>
415
+ <div>
416
+ <label class="block text-sm font-medium mb-1">CVV</label>
417
+ <input type="text" placeholder="123" class="w-full px-4 py-2 border rounded-lg">
418
+ </div>
419
+ </div>
420
+ </div>
421
+
422
+ <button class="w-full bg-green-600 hover:bg-green-700 text-white py-3 rounded-lg font-bold mt-6 transition">
423
+ Payer maintenant
424
+ </button>
425
+ </div>
426
+ </div>
427
+ </div>
428
+ </div>
429
+ </div>
430
+
431
+ <!-- Newsletter -->
432
+ <section class="py-12 gradient-bg text-white">
433
+ <div class="container mx-auto px-4 text-center">
434
+ <h2 class="text-3xl font-bold mb-4">Ne manquez aucun match</h2>
435
+ <p class="text-xl mb-8 max-w-2xl mx-auto">Abonnez-vous à notre newsletter pour recevoir les alertes de billetterie pour vos clubs favoris.</p>
436
+
437
+ <div class="max-w-md mx-auto flex">
438
+ <input type="email" placeholder="Votre email" class="flex-grow px-4 py-3 rounded-l-lg text-gray-900">
439
+ <button class="bg-green-600 hover:bg-green-700 px-6 py-3 rounded-r-lg font-bold transition">
440
+ S'abonner
441
+ </button>
442
+ </div>
443
+ </div>
444
+ </section>
445
+
446
+ <!-- Footer -->
447
+ <footer class="bg-gray-900 text-white py-12">
448
+ <div class="container mx-auto px-4">
449
+ <div class="grid grid-cols-1 md:grid-cols-4 gap-8">
450
+ <div>
451
+ <div class="flex items-center space-x-2 mb-4">
452
+ <i class="fas fa-futbol text-2xl"></i>
453
+ <h3 class="text-xl font-bold">Ligue1Billetterie</h3>
454
+ </div>
455
+ <p class="text-gray-400">La plateforme officielle pour acheter vos places de Ligue 1 Uber Eats en toute sécurité.</p>
456
+ </div>
457
+ <div>
458
+ <h4 class="text-lg font-bold mb-4">Navigation</h4>
459
+ <ul class="space-y-2">
460
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Accueil</a></li>
461
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Matchs</a></li>
462
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Stades</a></li>
463
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Mon compte</a></li>
464
+ </ul>
465
+ </div>
466
+ <div>
467
+ <h4 class="text-lg font-bold mb-4">Aide</h4>
468
+ <ul class="space-y-2">
469
+ <li><a href="#" class="text-gray-400 hover:text-white transition">FAQ</a></li>
470
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Modes de paiement</a></li>
471
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Conditions générales</a></li>
472
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Contact</a></li>
473
+ </ul>
474
+ </div>
475
+ <div>
476
+ <h4 class="text-lg font-bold mb-4">Suivez-nous</h4>
477
+ <div class="flex space-x-4">
478
+ <a href="#" class="bg-gray-800 hover:bg-gray-700 w-10 h-10 rounded-full flex items-center justify-center transition">
479
+ <i class="fab fa-facebook-f"></i>
480
+ </a>
481
+ <a href="#" class="bg-gray-800 hover:bg-gray-700 w-10 h-10 rounded-full flex items-center justify-center transition">
482
+ <i class="fab fa-twitter"></i>
483
+ </a>
484
+ <a href="#" class="bg-gray-800 hover:bg-gray-700 w-10 h-10 rounded-full flex items-center justify-center transition">
485
+ <i class="fab fa-instagram"></i>
486
+ </a>
487
+ <a href="#" class="bg-gray-800 hover:bg-gray-700 w-10 h-10 rounded-full flex items-center justify-center transition">
488
+ <i class="fab fa-tiktok"></i>
489
+ </a>
490
+ </div>
491
+ </div>
492
+ </div>
493
+ <div class="border-t border-gray-800 mt-8 pt-8 text-center text-gray-400">
494
+ <p>© 2024 Ligue1Billetterie. Tous droits réservés.</p>
495
+ </div>
496
+ </div>
497
+ </footer>
498
+
499
+ <script>
500
+ // Countdown for next big match
501
+ function updateCountdown() {
502
+ const now = new Date();
503
+ const matchDate = new Date('2025-09-20T20:45:00');
504
+ const diff = matchDate - now;
505
+
506
+ const days = Math.floor(diff / (1000 * 60 * 60 * 24));
507
+ const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
508
+ const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
509
+
510
+ document.getElementById('countdown-days').textContent = days.toString().padStart(2, '0');
511
+ document.getElementById('countdown-hours').textContent = hours.toString().padStart(2, '0');
512
+ document.getElementById('countdown-minutes').textContent = minutes.toString().padStart(2, '0');
513
+ }
514
+
515
+ setInterval(updateCountdown, 1000);
516
+ updateCountdown();
517
+
518
+ // Ticket modal functionality
519
+ const modal = document.getElementById('ticket-modal');
520
+ const closeModal = document.getElementById('close-modal');
521
+ const reserveButtons = document.querySelectorAll('.bg-green-600');
522
+
523
+ reserveButtons.forEach(button => {
524
+ button.addEventListener('click', () => {
525
+ modal.classList.remove('hidden');
526
+ document.body.style.overflow = 'hidden';
527
+ });
528
+ });
529
+
530
+ closeModal.addEventListener('click', () => {
531
+ modal.classList.add('hidden');
532
+ document.body.style.overflow = 'auto';
533
+ });
534
+
535
+ // Seat selection
536
+ const seats = document.querySelectorAll('.seat');
537
+ seats.forEach(seat => {
538
+ seat.addEventListener('click', function() {
539
+ if (!this.classList.contains('bg-gray-500')) {
540
+ this.classList.toggle('seat-selected');
541
+ this.classList.toggle('bg-gray-300');
542
+ }
543
+ });
544
+ });
545
+
546
+ // Mobile menu toggle (placeholder)
547
+ const mobileMenuButton = document.querySelector('.md\\:hidden');
548
+ mobileMenuButton.addEventListener('click', () => {
549
+ alert('Menu mobile à implémenter');
550
+ });
551
+ </script>
552
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Zinedine94/restos-suisse" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
553
+ </html>