thulieu commited on
Commit
c9ba648
·
verified ·
1 Parent(s): 418bb4c

Upload 40 files

Browse files
Files changed (41) hide show
  1. .gitattributes +13 -0
  2. assets/css/styles.css +1198 -0
  3. assets/css/swiper-bundle.min.css +13 -0
  4. assets/img/QR.png +3 -0
  5. assets/img/favicon.png +0 -0
  6. assets/img/home-book-1.png +3 -0
  7. assets/img/home-book-2.png +3 -0
  8. assets/img/home-book-3.png +3 -0
  9. assets/img/home-book-4.png +3 -0
  10. assets/img/home-book-5.png +3 -0
  11. assets/img/home-book-6.png +3 -0
  12. assets/img/home-book-7.png +3 -0
  13. assets/img/join-bg.jpg +3 -0
  14. assets/img/testimonial-perfil-1.png +3 -0
  15. assets/img/testimonial-perfil-2.png +3 -0
  16. assets/img/testimonial-perfil-3.png +3 -0
  17. assets/img/testimonial-perfil-4.png +3 -0
  18. assets/js/main.js +419 -0
  19. assets/js/scrollreveal.min.js +12 -0
  20. assets/js/swiper-bundle.min.js +0 -0
  21. assets/scss/base/_base.scss +49 -0
  22. assets/scss/components/_breakpoints.scss +279 -0
  23. assets/scss/components/_button.scss +13 -0
  24. assets/scss/components/_discount.scss +29 -0
  25. assets/scss/components/_featured.scss +74 -0
  26. assets/scss/components/_footer.scss +59 -0
  27. assets/scss/components/_header.scss +87 -0
  28. assets/scss/components/_home.scss +37 -0
  29. assets/scss/components/_join.scss +41 -0
  30. assets/scss/components/_login.scss +76 -0
  31. assets/scss/components/_new.scss +43 -0
  32. assets/scss/components/_scroll.scss +39 -0
  33. assets/scss/components/_search.scss +45 -0
  34. assets/scss/components/_services.scss +20 -0
  35. assets/scss/components/_testimonial.scss +26 -0
  36. assets/scss/config/_variables.scss +50 -0
  37. assets/scss/layout/_layout.scss +25 -0
  38. assets/scss/styles.scss +18 -0
  39. assets/scss/theme/_theme.scss +43 -0
  40. index.html +1890 -19
  41. product_detail.html +462 -0
.gitattributes CHANGED
@@ -33,3 +33,16 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ assets/img/home-book-1.png filter=lfs diff=lfs merge=lfs -text
37
+ assets/img/home-book-2.png filter=lfs diff=lfs merge=lfs -text
38
+ assets/img/home-book-3.png filter=lfs diff=lfs merge=lfs -text
39
+ assets/img/home-book-4.png filter=lfs diff=lfs merge=lfs -text
40
+ assets/img/home-book-5.png filter=lfs diff=lfs merge=lfs -text
41
+ assets/img/home-book-6.png filter=lfs diff=lfs merge=lfs -text
42
+ assets/img/home-book-7.png filter=lfs diff=lfs merge=lfs -text
43
+ assets/img/join-bg.jpg filter=lfs diff=lfs merge=lfs -text
44
+ assets/img/QR.png filter=lfs diff=lfs merge=lfs -text
45
+ assets/img/testimonial-perfil-1.png filter=lfs diff=lfs merge=lfs -text
46
+ assets/img/testimonial-perfil-2.png filter=lfs diff=lfs merge=lfs -text
47
+ assets/img/testimonial-perfil-3.png filter=lfs diff=lfs merge=lfs -text
48
+ assets/img/testimonial-perfil-4.png filter=lfs diff=lfs merge=lfs -text
assets/css/styles.css ADDED
@@ -0,0 +1,1198 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== GOOGLE FONTS ===============*/
2
+ @import url("https://fonts.googleapis.com/css2?family=Montagu+Slab:wght@500&family=Montserrat:wght@400;500;600&display=swap");
3
+
4
+ /*=============== VARIABLES CSS ===============*/
5
+ :root {
6
+ --header-height: 3.5rem;
7
+
8
+ /*========== Colors ==========*/
9
+ /*Color mode HSL(hue, saturation, lightness)*/
10
+ --first-color: #5e0011;
11
+ --title-color: hsl(230, 70%, 16%);
12
+ --text-color: hsl(230, 16%, 45%);
13
+ --border-color: #a67c87;
14
+ --white-color: hsl(0, 0%, 100%);
15
+ --body-color: #f2dce0;
16
+ --container-color: #f6d7df;
17
+
18
+ /*========== Font and typography ==========*/
19
+ /*.5rem = 8px | 1rem = 16px ...*/
20
+ --body-font: "Montserrat", sans-serif;
21
+ --second-font: "Montagu Slab", serif;
22
+ --biggest-font-size: 2rem;
23
+ --h1-font-size: 1.5rem;
24
+ --h2-font-size: 1.25rem;
25
+ --h3-font-size: 1rem;
26
+ --normal-font-size: 0.938rem;
27
+ --small-font-size: 0.813rem;
28
+ --smaller-font-size: 0.75rem;
29
+
30
+ /*========== Font weight ==========*/
31
+ --font-regular: 400;
32
+ --font-medium: 500;
33
+ --font-semi-bold: 600;
34
+
35
+ /*========== z index ==========*/
36
+ --z-tooltip: 10;
37
+ --z-fixed: 100;
38
+ }
39
+
40
+ /*========== Responsive typography ==========*/
41
+ @media screen and (min-width: 1150px) {
42
+ :root {
43
+ --biggest-font-size: 3.5rem;
44
+ --h1-font-size: 2.25rem;
45
+ --h2-font-size: 1.5rem;
46
+ --h3-font-size: 1.25rem;
47
+ --normal-font-size: 1rem;
48
+ --small-font-size: 0.875rem;
49
+ --smaller-font-size: 0.813rem;
50
+ }
51
+ }
52
+
53
+ /*=============== BASE ===============*/
54
+ * {
55
+ box-sizing: border-box;
56
+ padding: 0;
57
+ margin: 0;
58
+ }
59
+
60
+ html {
61
+ scroll-behavior: smooth;
62
+ }
63
+
64
+ body,
65
+ input,
66
+ button {
67
+ font-family: var(--body-font);
68
+ font-size: var(--normal-font-size);
69
+ }
70
+
71
+ body {
72
+ background-color: var(--body-color);
73
+ color: var(--text-color);
74
+ transition: background-color 0.4s;
75
+ }
76
+
77
+ input,
78
+ button {
79
+ border: none;
80
+ outline: none;
81
+ }
82
+
83
+ h1,
84
+ h2,
85
+ h3,
86
+ h4 {
87
+ color: var(--title-color);
88
+ font-family: var(--second-font);
89
+ font-weight: var(--font-medium);
90
+ }
91
+
92
+ ul {
93
+ list-style: none;
94
+ }
95
+
96
+ a {
97
+ text-decoration: none;
98
+ }
99
+
100
+ img {
101
+ display: block;
102
+ max-width: 100%;
103
+ height: auto;
104
+ }
105
+
106
+ /*=============== THEME ===============*/
107
+ /*========== Variables Dark theme ==========*/
108
+ body.dark-theme {
109
+ --title-color: hsl(230, 48%, 85%);
110
+ --text-color: hsl(230, 16%, 70%);
111
+ --border-color: hsl(230, 12%, 18%);
112
+ --body-color: hsl(230, 12%, 8%);
113
+ --container-color: hsl(230, 12%, 12%);
114
+ }
115
+
116
+ /*==========
117
+ Color changes in some parts of
118
+ the website, in dark theme
119
+ ==========*/
120
+ .dark-theme .shadow-header {
121
+ box-shadow: 0 2px 16px hsla(0, 0%, 0%, 0.4);
122
+ }
123
+
124
+ .dark-theme .nav__menu {
125
+ box-shadow: 0 -8px 32px hsla(0, 0%, 0%, 0.4);
126
+ }
127
+
128
+ .dark-theme .scrollup {
129
+ box-shadow: 0 2px 8px hsla(0, 0%, 0%, 0.4);
130
+ }
131
+
132
+ .dark-theme .search,
133
+ .dark-theme .login {
134
+ background-color: hsla(230, 12%, 8%, 0.6);
135
+ }
136
+
137
+ .dark-theme::-webkit-scrollbar {
138
+ background-color: hsl(230, 16%, 15%);
139
+ }
140
+
141
+ .dark-theme::-webkit-scrollbar-thumb {
142
+ background-color: hsl(230, 16%, 25%);
143
+ }
144
+
145
+ .dark-theme::-webkit-scrollbar-thumb:hover {
146
+ background-color: hsl(230, 16%, 35%);
147
+ }
148
+
149
+ /*=============== REUSABLE CSS CLASSES ===============*/
150
+ .container {
151
+ max-width: 1220px;
152
+ margin-inline: 1.5rem;
153
+ }
154
+
155
+ .grid {
156
+ display: grid;
157
+ gap: 1.5rem;
158
+ }
159
+
160
+ .section {
161
+ padding-block: 5rem 1rem;
162
+ }
163
+
164
+ .section__title {
165
+ text-align: center;
166
+ font-size: var(--h1-font-size);
167
+ font-family: var(--second-font);
168
+ margin-bottom: 2rem;
169
+ }
170
+
171
+ .main {
172
+ overflow: hidden; /* For animation ScrollReveal */
173
+ }
174
+
175
+ /*=============== HEADER & NAV ===============*/
176
+ .header {
177
+ position: fixed;
178
+ top: 0;
179
+ left: 0;
180
+ width: 100%;
181
+ background-color: var(--body-color);
182
+ z-index: var(--z-fixed);
183
+ transition: box-shadow 0.4s, background-color 0.4s;
184
+ }
185
+
186
+ .nav {
187
+ height: var(--header-height);
188
+ display: flex;
189
+ justify-content: space-between;
190
+ align-items: center;
191
+ }
192
+
193
+ .nav__logo {
194
+ display: inline-flex;
195
+ align-items: center;
196
+ column-gap: 0.5rem;
197
+ color: var(--first-color);
198
+ font-weight: var(--font-medium);
199
+ }
200
+ .nav__logo i {
201
+ font-size: 1.25rem;
202
+ }
203
+
204
+ /* Navigation for mobile devices */
205
+ @media screen and (max-width: 1150px) {
206
+ .nav__menu {
207
+ position: fixed;
208
+ bottom: 0;
209
+ left: 0;
210
+ right: 0;
211
+ width: 100%;
212
+ background-color: var(--container-color);
213
+ box-shadow: 0 -8px 32px hsla(0, 0%, 0%, 0.1);
214
+ padding: 1.25rem 4rem;
215
+ transition: background-color 0.4s;
216
+ }
217
+ }
218
+
219
+ .nav__list {
220
+ display: flex;
221
+ justify-content: space-between;
222
+ }
223
+
224
+ .nav__link {
225
+ color: var(--text-color);
226
+ transition: color 0.4s;
227
+ }
228
+
229
+ .nav__link span {
230
+ display: none;
231
+ }
232
+
233
+ .nav__link i {
234
+ font-size: 1.25rem;
235
+ }
236
+
237
+ .nav__link:hover {
238
+ color: var(--first-color);
239
+ }
240
+
241
+ .nav__actions {
242
+ display: flex;
243
+ align-items: center;
244
+ column-gap: 1rem;
245
+ }
246
+
247
+ .nav__actions i {
248
+ font-size: 1.25rem;
249
+ color: var(--title-color);
250
+ cursor: pointer;
251
+ transition: color 0.4s;
252
+ }
253
+
254
+ .nav__actions i:hover {
255
+ color: var(--first-color);
256
+ }
257
+
258
+ /* Add shadow header */
259
+ .shadow-header {
260
+ box-shadow: 0 2px 16px hsla(0, 0%, 0%, 0.1);
261
+ }
262
+
263
+ /* Active link */
264
+ .active-link {
265
+ color: var(--first-color);
266
+ }
267
+
268
+ /*=============== SEARCH ===============*/
269
+ .search {
270
+ position: fixed;
271
+ top: -100%;
272
+ left: 0;
273
+ width: 100%;
274
+ height: 100%;
275
+ z-index: var(--z-fixed);
276
+ background-color: hsla(230, 62%, 96%, 0.6);
277
+ backdrop-filter: blur(16px);
278
+ padding: 8rem 1.5rem;
279
+ transition: top 0.4s;
280
+ }
281
+
282
+ .search__form {
283
+ display: flex;
284
+ align-items: center;
285
+ column-gap: 0.5rem;
286
+ background-color: var(--container-color);
287
+ border: 2px solid var(--border-color);
288
+ padding-inline: 1rem;
289
+ }
290
+
291
+ .search__icon {
292
+ font-size: 1.25rem;
293
+ color: var(--title-color);
294
+ }
295
+
296
+ .search__input {
297
+ width: 100%;
298
+ padding-block: 1rem;
299
+ background-color: var(--container-color);
300
+ color: var(--text-color);
301
+ }
302
+
303
+ .search__close {
304
+ position: absolute;
305
+ top: 2rem;
306
+ right: 2rem;
307
+ font-size: 2rem;
308
+ color: var(--title-color);
309
+ cursor: pointer;
310
+ }
311
+
312
+ /* Show search */
313
+ .show-search {
314
+ top: 0;
315
+ }
316
+
317
+ /* =============== SHOPPING BAG =============== */
318
+ .bag {
319
+ position: fixed;
320
+ top: -100%;
321
+ left: 0;
322
+ height: 100%;
323
+ width: 100%;
324
+ z-index: var(--z-fixed);
325
+ background-color: hsla(230, 62%, 96%, 0.6);
326
+ backdrop-filter: blur(16px);
327
+ align-items: center;
328
+ padding: 1.5rem;
329
+ text-align: left;
330
+ transition: top 0.4s;
331
+ }
332
+
333
+ .bag__form {
334
+ background-color: var(--container-color);
335
+ padding: 2rem 1.5rem;
336
+ border: 2px solid var(--border-color);
337
+ row-gap: 1.25rem;
338
+ }
339
+
340
+ .bag__title {
341
+ font-size: var(--h2-font-size);
342
+ }
343
+
344
+ .bag__group {
345
+ row-gap: 1.25rem;
346
+ }
347
+
348
+ .bag__close {
349
+ position: absolute;
350
+ top: 2rem;
351
+ right: 2rem;
352
+ font-size: 2rem;
353
+ color: var(--title-color);
354
+ cursor: pointer;
355
+ }
356
+
357
+ /* Show search */
358
+ .show-bag {
359
+ top: 0;
360
+ }
361
+
362
+ .bag__qr {
363
+ display: flex;
364
+ justify-content: center;
365
+ }
366
+
367
+ .bag__qr img {
368
+ width: 50%;
369
+ }
370
+
371
+ /*=============== LOGIN ===============*/
372
+ .login {
373
+ position: fixed;
374
+ top: -100%;
375
+ left: 0;
376
+ width: 100%;
377
+ height: 100%;
378
+ z-index: var(--z-fixed);
379
+ background-color: hsla(230, 62%, 96%, 0.6);
380
+ backdrop-filter: blur(16px);
381
+ align-items: center;
382
+ padding: 1.5rem;
383
+ text-align: center;
384
+ transition: top 0.4s;
385
+ }
386
+
387
+ .login__form {
388
+ background-color: var(--container-color);
389
+ padding: 2rem 1.5rem;
390
+ border: 2px solid var(--border-color);
391
+ row-gap: 1.25rem;
392
+ }
393
+
394
+ .login__title {
395
+ font-size: var(--h2-font-size);
396
+ }
397
+
398
+ .login__group {
399
+ row-gap: 1.25rem;
400
+ }
401
+
402
+ .login__label {
403
+ display: block;
404
+ text-align: initial;
405
+ color: var(--title-color);
406
+ font-weight: var(--font-medium);
407
+ margin-bottom: 0.25rem;
408
+ }
409
+
410
+ .login__input {
411
+ width: 100%;
412
+ background-color: var(--container-color);
413
+ border: 2px solid var(--border-color);
414
+ padding: 1rem;
415
+ color: var(--text-color);
416
+ }
417
+
418
+ .login__signup,
419
+ .login__forgot {
420
+ display: block;
421
+ font-size: var(--small-font-size);
422
+ }
423
+
424
+ .login__signup {
425
+ margin-bottom: 0.5rem;
426
+ }
427
+
428
+ .login__signup a {
429
+ color: var(--first-color);
430
+ font-weight: var(--font-medium);
431
+ }
432
+
433
+ .login__forgot {
434
+ color: var(--first-color);
435
+ margin-bottom: 1.25rem;
436
+ }
437
+
438
+ .login__button {
439
+ width: 100%;
440
+ cursor: pointer;
441
+ }
442
+
443
+ .login__close {
444
+ position: absolute;
445
+ top: 2rem;
446
+ right: 2rem;
447
+ font-size: 2rem;
448
+ color: var(--title-color);
449
+ cursor: pointer;
450
+ }
451
+
452
+ /* Show login */
453
+ .show-login {
454
+ top: 0;
455
+ }
456
+
457
+ /*=============== HOME ===============*/
458
+ .home__swiper {
459
+ margin: initial;
460
+ }
461
+
462
+ .home__container {
463
+ padding-top: 2rem;
464
+ row-gap: 2.5rem;
465
+ }
466
+
467
+ .home__data {
468
+ text-align: center;
469
+ }
470
+
471
+ .home__title {
472
+ font-size: var(--biggest-font-size);
473
+ margin-bottom: 1rem;
474
+ }
475
+
476
+ .home__description {
477
+ margin-bottom: 2rem;
478
+ }
479
+
480
+ .home__images {
481
+ display: grid;
482
+ }
483
+
484
+ .home__article,
485
+ .home__img {
486
+ width: 220px;
487
+ transition: scale 0.4s;
488
+ }
489
+
490
+ .home__article {
491
+ scale: 0.8;
492
+ }
493
+
494
+ /* Swiper class */
495
+ .swiper-slide-active,
496
+ .swiper-slide-duplicate-active {
497
+ scale: 1;
498
+ }
499
+
500
+ /*=============== BUTTON ===============*/
501
+ .button {
502
+ display: inline-block;
503
+ background-color: var(--first-color);
504
+ color: var(--white-color);
505
+ font-weight: var(--font-semi-bold);
506
+ padding: 1rem 1.5rem;
507
+ transition: box-shadow 0.4s;
508
+ border-radius: 10px;
509
+ }
510
+
511
+ .button:hover {
512
+ /* box-shadow: 0 4px 32px hsla(230, 72%, 32%, 0.4); */
513
+ box-shadow: 0 4px 32px #a11f37;
514
+ }
515
+
516
+ /*=============== SERVICES ===============*/
517
+ .services__container {
518
+ row-gap: 3rem;
519
+ }
520
+
521
+ .services__card {
522
+ text-align: center;
523
+ }
524
+
525
+ .services__card i {
526
+ display: block;
527
+ font-size: 3rem;
528
+ color: var(--first-color);
529
+ margin-bottom: 1rem;
530
+ }
531
+
532
+ .services__title {
533
+ font-size: var(--h3-font-size);
534
+ margin-bottom: 0.5rem;
535
+ }
536
+
537
+ /*=============== FEATURED ===============*/
538
+ .featured__card {
539
+ position: relative;
540
+ text-align: center;
541
+ background-color: var(--container-color);
542
+ padding: 2rem;
543
+ overflow: hidden;
544
+ border: 2px solid var(--border-color);
545
+ transition: border 0.4s, background-color 0.4s;
546
+ border-radius: 10px;
547
+ }
548
+
549
+ .featured__img {
550
+ width: 150px;
551
+ margin: 0 auto 0.75rem;
552
+ }
553
+
554
+ .featured__title {
555
+ font-size: var(--h2-font-size);
556
+ margin-bottom: 0.5rem;
557
+ }
558
+
559
+ .featured__prices {
560
+ display: flex;
561
+ justify-content: center;
562
+ align-items: center;
563
+ column-gap: 0.75rem;
564
+ margin-bottom: 1.25rem;
565
+ }
566
+
567
+ .featured__discount {
568
+ color: var(--title-color);
569
+ }
570
+
571
+ .featured__price {
572
+ font-size: var(--small-font-size);
573
+ text-decoration: line-through;
574
+ }
575
+
576
+ .featured__card .button {
577
+ cursor: pointer;
578
+ }
579
+
580
+ .featured__actions {
581
+ display: inline-flex;
582
+ flex-direction: column;
583
+ row-gap: 0.75rem;
584
+ position: absolute;
585
+ top: 2rem;
586
+ right: -1.5rem;
587
+ transition: right 0.4s;
588
+ }
589
+
590
+ .featured__actions button {
591
+ background: none;
592
+ font-size: 1.25rem;
593
+ color: var(--first-color);
594
+ cursor: pointer;
595
+ }
596
+
597
+ .featured__card:hover .featured__actions {
598
+ right: 1.5rem;
599
+ }
600
+
601
+ /* Swiper class */
602
+ .swiper-button-prev::after,
603
+ .swiper-button-next::after {
604
+ content: "";
605
+ }
606
+
607
+ .swiper-button-prev,
608
+ .swiper-button-next {
609
+ width: initial;
610
+ height: initial;
611
+ background-color: var(--container-color);
612
+ border: 2px solid var(--border-color);
613
+ padding: 0.5rem;
614
+ font-size: 1.5rem;
615
+ color: var(--first-color);
616
+ transition: border 0.4s, background-color 0.4s;
617
+ border-radius: 10px;
618
+ }
619
+
620
+ /*=============== DISCOUNT ===============*/
621
+ .discount__container {
622
+ row-gap: 3.5rem;
623
+ }
624
+
625
+ .discount__data {
626
+ text-align: center;
627
+ }
628
+
629
+ .discount__title {
630
+ margin-bottom: 1rem;
631
+ }
632
+
633
+ .discount__description {
634
+ margin-bottom: 2rem;
635
+ }
636
+
637
+ .discount__images {
638
+ display: flex;
639
+ justify-content: center;
640
+ }
641
+
642
+ .discount__img-1,
643
+ .discount__img-2 {
644
+ width: 170px;
645
+ }
646
+
647
+ .discount__img-1 {
648
+ transform: translateX(1rem) rotate(-10deg);
649
+ }
650
+
651
+ .discount__img-2 {
652
+ transform: translateX(-1rem) rotate(10deg);
653
+ }
654
+
655
+ /*=============== NEW ===============*/
656
+ .new__card {
657
+ display: flex;
658
+ align-items: center;
659
+ column-gap: 2.5rem;
660
+ background-color: var(--container-color);
661
+ padding: 1.5rem 1rem;
662
+ color: var(--text-color);
663
+ border: 2px solid var(--border-color);
664
+ transition: border 0.4s, background-color 0.4s;
665
+ border-radius: 10px;
666
+ }
667
+
668
+ .new__card:hover {
669
+ border: 2px solid var(--text-color);
670
+ }
671
+
672
+ .new__img {
673
+ width: 100px;
674
+ }
675
+
676
+ .new__title {
677
+ font-size: var(--h2-font-size);
678
+ margin-bottom: 0.5rem;
679
+ }
680
+
681
+ .new__prices {
682
+ display: flex;
683
+ align-items: center;
684
+ column-gap: 0.75rem;
685
+ margin-bottom: 0.75rem;
686
+ }
687
+
688
+ .new__discount {
689
+ color: var(--title-color);
690
+ }
691
+
692
+ .new__price {
693
+ font-size: var(--small-font-size);
694
+ text-decoration: line-through;
695
+ }
696
+
697
+ .new__stars {
698
+ color: var(--first-color);
699
+ }
700
+
701
+ .new__swiper:nth-child(1) {
702
+ margin-bottom: 2rem;
703
+ }
704
+
705
+ /*=============== JOIN ===============*/
706
+ .join__container {
707
+ position: relative;
708
+ padding-block: 3rem;
709
+ }
710
+
711
+ .join__bg {
712
+ position: absolute;
713
+ top: 0;
714
+ left: 0;
715
+ width: 100%;
716
+ height: 100%;
717
+ object-fit: cover;
718
+ object-position: center;
719
+ }
720
+
721
+ .join__data {
722
+ position: relative;
723
+ }
724
+
725
+ .join__title {
726
+ color: var(--white-color);
727
+ }
728
+
729
+ .join__form {
730
+ display: grid;
731
+ row-gap: 1rem;
732
+ }
733
+
734
+ .join__input {
735
+ padding: 1.25rem 1rem;
736
+ background-color: var(--body-color);
737
+ color: var(--title-color);
738
+ transition: background-color 0.4s;
739
+ border-radius: 10px;
740
+ }
741
+
742
+ .join__input::placeholder {
743
+ color: var(--text-color);
744
+ }
745
+
746
+ .join__button {
747
+ padding-block: 1.25rem;
748
+ cursor: pointer;
749
+ }
750
+
751
+ /*=============== TESTIMONIAL ===============*/
752
+ .testimonial__card {
753
+ text-align: center;
754
+ background-color: var(--container-color);
755
+ padding: 2rem 3rem 2.5rem;
756
+ border: 2px solid var(--border-color);
757
+ transition: border 0.4s, background-color 0.4s;
758
+ border-radius: 10px;
759
+ }
760
+
761
+ .testimonial__img {
762
+ width: 100px;
763
+ border-radius: 50%;
764
+ margin: 0 auto 1.5rem;
765
+ }
766
+
767
+ .testimonial__title {
768
+ font-size: var(--h2-font-size);
769
+ margin-bottom: 0.75rem;
770
+ }
771
+
772
+ .testimonial__description {
773
+ font-size: var(--small-font-size);
774
+ margin-bottom: 1.25rem;
775
+ }
776
+
777
+ .testimonial__stars {
778
+ color: var(--first-color);
779
+ }
780
+
781
+ /*=============== FOOTER ===============*/
782
+ .footer {
783
+ padding-block: 4rem 6rem;
784
+ }
785
+
786
+ .footer__container {
787
+ row-gap: 3rem;
788
+ }
789
+
790
+ .footer__logo {
791
+ display: inline-flex;
792
+ align-items: center;
793
+ column-gap: 0.5rem;
794
+ color: var(--first-color);
795
+ font-size: var(--h3-font-size);
796
+ font-family: var(--second-font);
797
+ margin-bottom: 1.25rem;
798
+ }
799
+
800
+ .footer__logo i {
801
+ font-size: 1.25rem;
802
+ }
803
+
804
+ .footer__data {
805
+ grid-template-columns: repeat(2, max-content);
806
+ gap: 3rem 2rem;
807
+ }
808
+
809
+ .footer__title {
810
+ font-size: var(--h3-font-size);
811
+ margin-bottom: 1.25rem;
812
+ }
813
+
814
+ .footer__links {
815
+ display: grid;
816
+ row-gap: 0.5rem;
817
+ }
818
+
819
+ .footer__link {
820
+ color: var(--text-color);
821
+ transition: color 0.4s;
822
+ }
823
+
824
+ .footer__link:hover {
825
+ color: var(--first-color);
826
+ }
827
+
828
+ .footer__info {
829
+ font-style: normal;
830
+ }
831
+
832
+ .footer__social {
833
+ display: flex;
834
+ column-gap: 1.25rem;
835
+ }
836
+
837
+ .footer__social-link {
838
+ font-size: 1.25rem;
839
+ color: var(--first-color);
840
+ }
841
+
842
+ .footer__copy {
843
+ display: block;
844
+ margin-top: 5rem;
845
+ text-align: center;
846
+ font-size: var(--small-font-size);
847
+ }
848
+
849
+ /*=============== SCROLL BAR ===============*/
850
+ ::-webkit-scrollbar {
851
+ width: 0.6rem;
852
+ border-radius: 0.5rem;
853
+ background-color: hsl(230, 16%, 85%);
854
+ }
855
+
856
+ ::-webkit-scrollbar-thumb {
857
+ background-color: hsl(230, 16%, 65%);
858
+ border-radius: 0.5rem;
859
+ }
860
+
861
+ ::-webkit-scrollbar-thumb:hover {
862
+ background-color: hsl(230, 16%, 55%);
863
+ }
864
+
865
+ /*=============== SCROLL UP ===============*/
866
+ .scrollup {
867
+ position: fixed;
868
+ right: 1rem;
869
+ bottom: -50%;
870
+ background-color: var(--container-color);
871
+ box-shadow: 0 2px 8px hsla(0, 0%, 0%, 0.1);
872
+ display: inline-flex;
873
+ padding: 6px;
874
+ font-size: 1.25rem;
875
+ color: var(--title-color);
876
+ z-index: var(--z-tooltip);
877
+ transition: bottom 0.4s, transform 0.4s, background-color 0.4s;
878
+ }
879
+
880
+ .scrollup:hover {
881
+ transform: translateY(-0.5rem);
882
+ }
883
+
884
+ /* Show Scroll Up */
885
+ .show-scroll {
886
+ bottom: 6rem;
887
+ }
888
+
889
+ /*=============== BREAKPOINTS ===============*/
890
+ /* For small devices */
891
+ @media screen and (max-width: 320px) {
892
+ .container {
893
+ margin-inline: 1rem;
894
+ }
895
+
896
+ .featured__swiper {
897
+ margin-bottom: 16px !important;
898
+ }
899
+
900
+ .nav__menu {
901
+ padding-inline: 3rem;
902
+ border-radius: 10px 10px 0px 0px;
903
+ }
904
+
905
+ .discount__img-1,
906
+ .discount__img-2 {
907
+ width: 140px;
908
+ }
909
+
910
+ .new__card {
911
+ flex-direction: column;
912
+ }
913
+
914
+ .testimonial__card {
915
+ padding-inline: 1rem;
916
+ }
917
+
918
+ .footer__data {
919
+ grid-template-columns: 1fr;
920
+ row-gap: 2rem;
921
+ }
922
+ }
923
+
924
+ /* For medium devices */
925
+ @media screen and (min-width: 450px) {
926
+ .featured__card {
927
+ width: 290px;
928
+ margin-bottom: 16px;
929
+ }
930
+
931
+ .new__card {
932
+ width: 390px;
933
+ }
934
+
935
+ .testimonial__card {
936
+ width: 320px;
937
+ }
938
+ }
939
+
940
+ @media screen and (min-width: 576px) {
941
+ .search__form,
942
+ .bag__form {
943
+ width: 500px;
944
+ margin-inline: auto;
945
+ }
946
+
947
+ .login__form {
948
+ width: 400px;
949
+ justify-self: center;
950
+ }
951
+
952
+ .search__close,
953
+ .bag__close,
954
+ .login__close {
955
+ width: max-content;
956
+ top: 4rem;
957
+ left: 0;
958
+ right: 0;
959
+ margin-inline: auto;
960
+ }
961
+
962
+ .nav__menu {
963
+ width: 380px;
964
+ margin-inline: auto;
965
+ }
966
+
967
+ .home__container,
968
+ .discount__container {
969
+ grid-template-columns: 420px;
970
+ justify-content: center;
971
+ }
972
+
973
+ .join__form {
974
+ width: 328px;
975
+ justify-self: center;
976
+ }
977
+
978
+ .footer__data {
979
+ grid-template-columns: repeat(3, max-content);
980
+ }
981
+ }
982
+
983
+ @media screen and (min-width: 768px) {
984
+ .home__container {
985
+ grid-template-columns: 580px;
986
+ }
987
+
988
+ .home__data {
989
+ width: 420px;
990
+ justify-self: center;
991
+ }
992
+
993
+ .services__container {
994
+ grid-template-columns: repeat(3, max-content);
995
+ justify-content: center;
996
+ column-gap: 5rem;
997
+ }
998
+
999
+ .footer__container {
1000
+ grid-template-columns: repeat(2, max-content);
1001
+ justify-content: space-between;
1002
+ }
1003
+ }
1004
+
1005
+ /* For large devices */
1006
+ @media screen and (min-width: 1150px) {
1007
+ .section {
1008
+ padding-block: 7rem 2rem;
1009
+ }
1010
+
1011
+ .nav {
1012
+ height: calc(var(--header-height) + 2rem);
1013
+ column-gap: 4rem;
1014
+ }
1015
+ .nav__link i {
1016
+ display: none;
1017
+ }
1018
+ .nav__link span {
1019
+ display: block;
1020
+ }
1021
+ .nav__menu {
1022
+ width: initial;
1023
+ margin-inline: auto 0;
1024
+ }
1025
+ .nav__list {
1026
+ column-gap: 4rem;
1027
+ }
1028
+ .nav__link {
1029
+ font-weight: var(--font-medium);
1030
+ }
1031
+
1032
+ .dark-theme .nav__menu {
1033
+ box-shadow: none;
1034
+ }
1035
+
1036
+ .home__data {
1037
+ width: initial;
1038
+ }
1039
+
1040
+ .services__container {
1041
+ column-gap: 10rem;
1042
+ }
1043
+ .services__card i {
1044
+ font-size: 3.5rem;
1045
+ }
1046
+
1047
+ .featured__container {
1048
+ padding-top: 2rem;
1049
+ }
1050
+ .featured__title {
1051
+ font-size: var(--h3-font-size);
1052
+ }
1053
+
1054
+ .discount__container {
1055
+ grid-template-columns: 615px 500px;
1056
+ justify-content: space-between;
1057
+ align-items: center;
1058
+ }
1059
+ .discount__data {
1060
+ order: 1;
1061
+ }
1062
+ .discount__data,
1063
+ .discount__title {
1064
+ text-align: initial;
1065
+ }
1066
+ .discount__description {
1067
+ margin-bottom: 3.5rem;
1068
+ }
1069
+ .discount__img-1,
1070
+ .discount__img-2 {
1071
+ width: 300px;
1072
+ }
1073
+
1074
+ .new__container {
1075
+ padding-top: 2rem;
1076
+ }
1077
+ .new__card {
1078
+ padding: 1.5rem;
1079
+ }
1080
+ .new__img {
1081
+ width: 120px;
1082
+ }
1083
+ .new__title {
1084
+ font-size: var(--h3-font-size);
1085
+ }
1086
+
1087
+ .join__bg {
1088
+ object-position: 0 -5rem;
1089
+ }
1090
+
1091
+ .testimonial__container {
1092
+ padding-top: 2rem;
1093
+ }
1094
+ .testimonial__card {
1095
+ padding-inline: 2rem;
1096
+ }
1097
+ .testimonial__title {
1098
+ font-size: var(--h3-font-size);
1099
+ }
1100
+ .testimonial__description {
1101
+ font-size: var(--normal-font-size);
1102
+ }
1103
+
1104
+ .footer {
1105
+ padding-block: 6rem 3rem;
1106
+ }
1107
+ .footer__data {
1108
+ grid-template-columns: repeat(4, max-content);
1109
+ column-gap: 4.5rem;
1110
+ }
1111
+ .footer__logo,
1112
+ .footer__title {
1113
+ font-size: var(--h2-font-size);
1114
+ margin-bottom: 1.5rem;
1115
+ }
1116
+ .footer__links {
1117
+ row-gap: 1rem;
1118
+ }
1119
+ .footer__social {
1120
+ column-gap: 1.5rem;
1121
+ }
1122
+ .footer__social-link {
1123
+ font-size: 1.5rem;
1124
+ }
1125
+ .footer__copy {
1126
+ margin-top: 7.5rem;
1127
+ }
1128
+
1129
+ .scrollup {
1130
+ right: 3rem;
1131
+ }
1132
+ .show-scroll {
1133
+ bottom: 3rem;
1134
+ }
1135
+ }
1136
+
1137
+ @media screen and (min-width: 1220px) {
1138
+ .container {
1139
+ margin-inline: auto;
1140
+ }
1141
+
1142
+ .home__container {
1143
+ grid-template-columns: 435px 745px;
1144
+ align-items: center;
1145
+ padding-block: 7rem 2rem;
1146
+ }
1147
+ .home__data {
1148
+ text-align: initial;
1149
+ }
1150
+ .home__description {
1151
+ margin-bottom: 4rem;
1152
+ }
1153
+ .home__article,
1154
+ .home__img {
1155
+ width: 290px;
1156
+ }
1157
+ }
1158
+
1159
+ /* ==================== PRODUCT DETAIL ==================== */
1160
+ .product__detail {
1161
+ flex: 1;
1162
+ padding: 20px;
1163
+ margin-top: 2rem;
1164
+ }
1165
+
1166
+ .product__img img {
1167
+ max-width: 100%;
1168
+ height: auto;
1169
+ border-radius: 8px;
1170
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
1171
+ }
1172
+
1173
+ .detail {
1174
+ display: flex;
1175
+ gap: 20px;
1176
+ align-items: center;
1177
+ flex-wrap: wrap;
1178
+ justify-content: center;
1179
+ }
1180
+
1181
+ .product__title {
1182
+ text-align: center;
1183
+ width: 100%;
1184
+ }
1185
+
1186
+ .product_info {
1187
+ justify-content: center;
1188
+ }
1189
+
1190
+ @media (max-width: 768px) {
1191
+ .detail {
1192
+ flex-direction: column;
1193
+ }
1194
+
1195
+ .product__title {
1196
+ text-align: center;
1197
+ }
1198
+ }
assets/css/swiper-bundle.min.css ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Swiper 8.4.7
3
+ * Most modern mobile touch slider and framework with hardware accelerated transitions
4
+ * https://swiperjs.com
5
+ *
6
+ * Copyright 2014-2023 Vladimir Kharlampidi
7
+ *
8
+ * Released under the MIT License
9
+ *
10
+ * Released on: January 30, 2023
11
+ */
12
+
13
+ @font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-pointer-events{touch-action:pan-y}.swiper-pointer-events.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d,.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-horizontal.swiper-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:50%;background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-next+.swiper-slide,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}
assets/img/QR.png ADDED

Git LFS Details

  • SHA256: 5f5883ec14ecfe19c55702fe9ecdef5ce4f1c7d70a950a4d7935fffb2904cc77
  • Pointer size: 131 Bytes
  • Size of remote file: 185 kB
assets/img/favicon.png ADDED
assets/img/home-book-1.png ADDED

Git LFS Details

  • SHA256: 5b9ed043652e9f12e8cd88861c25a5fe9b2153373dae0751879f0fd46925877e
  • Pointer size: 131 Bytes
  • Size of remote file: 218 kB
assets/img/home-book-2.png ADDED

Git LFS Details

  • SHA256: a089e3086131cbbf2a3c30adaaeca6e8d9fa0cb706307ca1233138752ac9e097
  • Pointer size: 131 Bytes
  • Size of remote file: 183 kB
assets/img/home-book-3.png ADDED

Git LFS Details

  • SHA256: 1d12a3b85cdc14d87675f9f54f6368273544dbc5d65d865efcab28c841b0fdf9
  • Pointer size: 131 Bytes
  • Size of remote file: 147 kB
assets/img/home-book-4.png ADDED

Git LFS Details

  • SHA256: e80e9c2d63e4ac983ef87837acbdc11df54f8e63c369f0c082aa50e6d107eb7d
  • Pointer size: 131 Bytes
  • Size of remote file: 298 kB
assets/img/home-book-5.png ADDED

Git LFS Details

  • SHA256: 0300f961c29656de6580506fd8164e3227dd17ab2f81445f327c9f172c6966c6
  • Pointer size: 131 Bytes
  • Size of remote file: 326 kB
assets/img/home-book-6.png ADDED

Git LFS Details

  • SHA256: 7c89b5ce2f4ad2daf72a9813ef02792a771c0428f2b4d0a355f4c91fa1a70f22
  • Pointer size: 131 Bytes
  • Size of remote file: 306 kB
assets/img/home-book-7.png ADDED

Git LFS Details

  • SHA256: a1ce7fd6ad81ad5d78448013dc6d679dcbd01647e089d6c262a21f81cc09b8a0
  • Pointer size: 131 Bytes
  • Size of remote file: 268 kB
assets/img/join-bg.jpg ADDED

Git LFS Details

  • SHA256: cb713b5e6c9bc946a9089bd192ec35d553970a08c28b128abe6aebb007863220
  • Pointer size: 131 Bytes
  • Size of remote file: 295 kB
assets/img/testimonial-perfil-1.png ADDED

Git LFS Details

  • SHA256: f5d7a3f71dbef66ccfd675c1449d80646618d09596539e22c676b5ac196f4b09
  • Pointer size: 131 Bytes
  • Size of remote file: 230 kB
assets/img/testimonial-perfil-2.png ADDED

Git LFS Details

  • SHA256: d96d387dd8579dcb0a12a3b2673332dcbffadf2b3ce6a393dda5f5838404c729
  • Pointer size: 131 Bytes
  • Size of remote file: 347 kB
assets/img/testimonial-perfil-3.png ADDED

Git LFS Details

  • SHA256: 405976795734f41a6aa77f16e512453a98f40bb499b41b176781b1cc73192188
  • Pointer size: 131 Bytes
  • Size of remote file: 853 kB
assets/img/testimonial-perfil-4.png ADDED

Git LFS Details

  • SHA256: cad5d3a533dcea898b3eb20353f88d02b8d50a9b110a75cc5ac4c54cf5246d64
  • Pointer size: 131 Bytes
  • Size of remote file: 404 kB
assets/js/main.js ADDED
@@ -0,0 +1,419 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== SEARCH ===============*/
2
+ const searchButton = document.getElementById("search-button"),
3
+ searchClose = document.getElementById("search-close"),
4
+ searchContent = document.getElementById("search-content");
5
+
6
+ /*===== SEARCH SHOW =====*/
7
+ /* Validate if constant exists */
8
+ if (searchButton) {
9
+ searchButton.addEventListener("click", () => {
10
+ searchContent.classList.add("show-search");
11
+ });
12
+ }
13
+
14
+ /*===== SEARCH HIDDEN =====*/
15
+ /* Validate if constant exists */
16
+ if (searchClose) {
17
+ searchClose.addEventListener("click", () => {
18
+ searchContent.classList.remove("show-search");
19
+ });
20
+ }
21
+
22
+ /*=============== SHOPPING BAG ===============*/
23
+ const bagButton = document.getElementById("bag-button"),
24
+ bagClose = document.getElementById("bag-close"),
25
+ bagContent = document.getElementById("bag-content");
26
+
27
+ /*===== CART SHOW =====*/
28
+ /* Validate if constant exists */
29
+ if (bagButton) {
30
+ bagButton.addEventListener("click", () => {
31
+ bagContent.classList.add("show-bag");
32
+ });
33
+ }
34
+
35
+ /*===== CART HIDDEN =====*/
36
+ /* Validate if constant exists */
37
+ if (bagClose) {
38
+ bagClose.addEventListener("click", () => {
39
+ bagContent.classList.remove("show-bag");
40
+ });
41
+ }
42
+
43
+ /*=============== LOGIN ===============*/
44
+ const loginButton = document.getElementById("login-button"),
45
+ loginClose = document.getElementById("login-close"),
46
+ loginContent = document.getElementById("login-content");
47
+
48
+ /*===== LOGIN SHOW =====*/
49
+ /* Validate if constant exists */
50
+ if (loginButton) {
51
+ loginButton.addEventListener("click", () => {
52
+ loginContent.classList.add("show-login");
53
+ });
54
+ }
55
+
56
+ /*===== LOGIN HIDDEN =====*/
57
+ /* Validate if constant exists */
58
+ if (loginClose) {
59
+ loginClose.addEventListener("click", () => {
60
+ loginContent.classList.remove("show-login");
61
+ });
62
+ }
63
+
64
+ /*=============== ADD SHADOW HEADER ===============*/
65
+ const shadowHeader = () => {
66
+ const header = document.getElementById("header");
67
+ // When the scroll is greater than 50 viewport height, add the shadow-header class to the header tag
68
+ this.scrollY >= 50
69
+ ? header.classList.add("shadow-header")
70
+ : header.classList.remove("shadow-header");
71
+ };
72
+ window.addEventListener("scroll", shadowHeader);
73
+
74
+ /*=============== HOME SWIPER ===============*/
75
+ let swiperHome = new Swiper(".home__swiper", {
76
+ loop: true,
77
+ spaceBetween: -24,
78
+ grabCursor: true,
79
+ slidesPerView: "auto",
80
+ centeredSlides: "auto",
81
+
82
+ autoplay: {
83
+ delay: 3000,
84
+ disableOnInteraction: false,
85
+ },
86
+
87
+ breakpoints: {
88
+ 1220: {
89
+ spaceBetween: -32,
90
+ },
91
+ },
92
+ });
93
+
94
+ /*=============== FEATURED SWIPER ===============*/
95
+ let swiperFeatured = new Swiper(".featured__swiper", {
96
+ loop: true,
97
+ spaceBetween: 16,
98
+ grabCursor: true,
99
+ slidesPerView: "auto",
100
+ centeredSlides: "auto",
101
+
102
+ navigation: {
103
+ nextEl: ".swiper-button-next",
104
+ prevEl: ".swiper-button-prev",
105
+ },
106
+
107
+ breakpoints: {
108
+ 1150: {
109
+ slidesPerView: 4,
110
+ centeredSlides: false,
111
+ },
112
+ },
113
+ });
114
+
115
+ /*=============== FEATURED ADD TO CART ===============*/
116
+ document.addEventListener("DOMContentLoaded", function () {
117
+ const addToCartButtons = document.querySelectorAll(".featured__card .button");
118
+ const clearCartButton = document.getElementById("clearCart");
119
+ const checkoutButton = document.getElementById("checkOut");
120
+
121
+ addToCartButtons.forEach((button) => {
122
+ button.addEventListener("click", addToCartHandler);
123
+ });
124
+
125
+ clearCartButton.addEventListener("click", clearCartHandler);
126
+ checkoutButton.addEventListener("click", checkoutHandler);
127
+
128
+ updateCartUI();
129
+ });
130
+
131
+ function addToCartHandler(event) {
132
+ const featuredCard = event.target.closest(".featured__card");
133
+
134
+ const productName = featuredCard.querySelector(".featured__title").innerText;
135
+ const productPrice =
136
+ parseFloat(
137
+ featuredCard.querySelector(".featured__discount").dataset.price
138
+ ) || 0;
139
+
140
+ alert(`Đã thêm vào giỏ hàng: ${productName}`);
141
+
142
+ addToCart(productName, productPrice);
143
+
144
+ updateCartUI();
145
+ }
146
+
147
+ function addToCart(productName, productPrice) {
148
+ let cartItems = JSON.parse(localStorage.getItem("cartItems")) || [];
149
+
150
+ cartItems.push({ name: productName, price: productPrice });
151
+
152
+ localStorage.setItem("cartItems", JSON.stringify(cartItems));
153
+ }
154
+
155
+ function updateCartUI() {
156
+ const cartItemsContainer = document.getElementById("cartItemsContainer");
157
+ const cartItems = JSON.parse(localStorage.getItem("cartItems")) || [];
158
+
159
+ cartItemsContainer.innerHTML = "";
160
+
161
+ cartItems.forEach((item) => {
162
+ const cartItemElement = document.createElement("div");
163
+ cartItemElement.innerText = `${item.name} - ${item.price} VND`;
164
+ cartItemsContainer.appendChild(cartItemElement);
165
+ });
166
+
167
+ const totalAmount = calculateTotalAmount(cartItems);
168
+ displayTotalAmount(totalAmount);
169
+ }
170
+
171
+ function calculateTotalAmount(cartItems) {
172
+ return cartItems.reduce((total, item) => total + item.price, 0);
173
+ }
174
+
175
+ function displayTotalAmount(amount) {
176
+ let totalAmountContainer = document.getElementById("totalAmountContainer");
177
+
178
+ if (!totalAmountContainer) {
179
+ totalAmountContainer = document.createElement("div");
180
+ totalAmountContainer.id = "totalAmountContainer";
181
+ const bagForm = document.querySelector(".bag__form");
182
+ bagForm.appendChild(totalAmountContainer);
183
+ }
184
+
185
+ totalAmountContainer.innerText = `Tổng cộng: ${amount} VND`;
186
+ }
187
+
188
+ function clearCartHandler() {
189
+ localStorage.removeItem("cartItems");
190
+
191
+ updateCartUI();
192
+ }
193
+
194
+ function checkoutHandler() {
195
+ alert("Đã thanh toán thành công!");
196
+
197
+ resetCart();
198
+
199
+ updateCartUI();
200
+ }
201
+
202
+ function resetCart() {
203
+ localStorage.removeItem("cartItems");
204
+ }
205
+
206
+ /*=============== NEW SWIPER ===============*/
207
+ let swiperNew = new Swiper(".new__swiper", {
208
+ loop: false,
209
+ spaceBetween: 16,
210
+ slidesPerView: "auto",
211
+
212
+ breakpoints: {
213
+ 1150: {
214
+ slidesPerView: 3,
215
+ },
216
+ },
217
+ });
218
+
219
+ /*=============== TESTIMONIAL SWIPER ===============*/
220
+ let swiperTestimonial = new Swiper(".testimonial__swiper", {
221
+ loop: true,
222
+ spaceBetween: 16,
223
+ grabCursor: true,
224
+ slidesPerView: "auto",
225
+ centeredSlides: "auto",
226
+
227
+ breakpoints: {
228
+ 1150: {
229
+ slidesPerView: 3,
230
+ centeredSlides: false,
231
+ },
232
+ },
233
+ });
234
+
235
+ /*=============== SHOW SCROLL UP ===============*/
236
+ const scrollUp = () => {
237
+ const scrollUp = document.getElementById("scroll-up");
238
+ // When the scroll is higher than 350 viewport height, add the show-scroll class to the a tag with the scrollup class
239
+ this.scrollY >= 350
240
+ ? scrollUp.classList.add("show-scroll")
241
+ : scrollUp.classList.remove("show-scroll");
242
+ };
243
+ window.addEventListener("scroll", scrollUp);
244
+
245
+ /*=============== SCROLL SECTIONS ACTIVE LINK ===============*/
246
+ const sections = document.querySelectorAll("section[id]");
247
+
248
+ const scrollActive = () => {
249
+ const scrollDown = window.scrollY;
250
+
251
+ sections.forEach((current) => {
252
+ const sectionHeight = current.offsetHeight,
253
+ sectionTop = current.offsetTop - 58,
254
+ sectionId = current.getAttribute("id"),
255
+ sectionsClass = document.querySelector(
256
+ ".nav__menu a[href*=" + sectionId + "]"
257
+ );
258
+
259
+ if (scrollDown > sectionTop && scrollDown <= sectionTop + sectionHeight) {
260
+ sectionsClass.classList.add("active-link");
261
+ } else {
262
+ sectionsClass.classList.remove("active-link");
263
+ }
264
+ });
265
+ };
266
+ window.addEventListener("scroll", scrollActive);
267
+
268
+ /*=============== DARK LIGHT THEME ===============*/
269
+ const themeButton = document.getElementById("theme-button");
270
+ const darkTheme = "dark-theme";
271
+ const iconTheme = "ri-sun-line";
272
+
273
+ // Previously selected topic (if user selected)
274
+ const selectedTheme = localStorage.getItem("selected-theme");
275
+ const selectedIcon = localStorage.getItem("selected-icon");
276
+
277
+ // We obtain the current theme that the interface has by validating the dark-theme class
278
+ const getCurrentTheme = () =>
279
+ document.body.classList.contains(darkTheme) ? "dark" : "light";
280
+ const getCurrentIcon = () =>
281
+ themeButton.classList.contains(iconTheme) ? "ri-moon-line" : "ri-sun-line";
282
+
283
+ // We validate if the user previously chose a topic
284
+ if (selectedTheme) {
285
+ // If the validation is fulfilled, we ask what the issue was to know if we activated or deactivated the dark
286
+ document.body.classList[selectedTheme === "dark" ? "add" : "remove"](
287
+ darkTheme
288
+ );
289
+ themeButton.classList[selectedIcon === "ri-moon-line" ? "add" : "remove"](
290
+ iconTheme
291
+ );
292
+ }
293
+
294
+ // Activate / deactivate the theme manually with the button
295
+ themeButton.addEventListener("click", () => {
296
+ // Add or remove the dark / icon theme
297
+ document.body.classList.toggle(darkTheme);
298
+ themeButton.classList.toggle(iconTheme);
299
+ // We save the theme and the current icon that the user chose
300
+ localStorage.setItem("selected-theme", getCurrentTheme());
301
+ localStorage.setItem("selected-icon", getCurrentIcon());
302
+ });
303
+
304
+ /*=============== SCROLL REVEAL ANIMATION ===============*/
305
+ const sr = ScrollReveal({
306
+ origin: "top",
307
+ distance: "60px",
308
+ duration: 2500,
309
+ delay: 400,
310
+ // reset: true, // Animations repeat
311
+ });
312
+
313
+ sr.reveal(`.home__data, .featured__container, .new__container,
314
+ .join__data, .testimonial__container, .footer`);
315
+ sr.reveal(`.home__images`, { delay: 600 });
316
+ sr.reveal(`.services__card`, { interval: 100 });
317
+ sr.reveal(`.discount__data`, { origin: "left" });
318
+ sr.reveal(`.discount__images`, { origin: "right" });
319
+
320
+ /*=============== OPEN DETAIL TAB ===============*/
321
+ function openDetailPage() {
322
+ // Đường dẫn tới trang detail.html
323
+ var detailPageURL = "product_detail.html";
324
+
325
+ // Mở tab mới
326
+ window.open(detailPageURL, "_blank");
327
+ }
328
+
329
+ /*================ CART ========================*/
330
+ /*=============== FEATURED ADD TO CART ===============*/
331
+ document.addEventListener("DOMContentLoaded", function () {
332
+ const addToCartButtons = document.querySelectorAll(".featured__card .button");
333
+ const clearCartButton = document.getElementById("clearCart");
334
+ const checkoutButton = document.getElementById("checkOut");
335
+
336
+ addToCartButtons.forEach((button) => {
337
+ button.addEventListener("click", addToCartHandler);
338
+ });
339
+
340
+ clearCartButton.addEventListener("click", clearCartHandler);
341
+ checkoutButton.addEventListener("click", checkoutHandler);
342
+
343
+ updateCartUI();
344
+ });
345
+
346
+ function addToCartHandler(event) {
347
+ const featuredCard = event.target.closest(".featured__card");
348
+
349
+ const productName = featuredCard.querySelector(".featured__title").innerText;
350
+ const productPrice =
351
+ parseFloat(
352
+ featuredCard.querySelector(".featured__discount").dataset.price
353
+ ) || 0;
354
+
355
+ alert(`Đã thêm vào giỏ hàng: ${productName}`);
356
+
357
+ addToCart(productName, productPrice);
358
+
359
+ updateCartUI();
360
+ }
361
+
362
+ function addToCart(productName, productPrice) {
363
+ let cartItems = JSON.parse(localStorage.getItem("cartItems")) || [];
364
+
365
+ cartItems.push({ name: productName, price: productPrice });
366
+
367
+ localStorage.setItem("cartItems", JSON.stringify(cartItems));
368
+ }
369
+
370
+ function updateCartUI() {
371
+ const cartItemsContainer = document.getElementById("cartItemsContainer");
372
+ const cartItems = JSON.parse(localStorage.getItem("cartItems")) || [];
373
+
374
+ cartItemsContainer.innerHTML = "";
375
+
376
+ cartItems.forEach((item) => {
377
+ const cartItemElement = document.createElement("div");
378
+ cartItemElement.innerText = `${item.name} - ${item.price} VND`;
379
+ cartItemsContainer.appendChild(cartItemElement);
380
+ });
381
+
382
+ const totalAmount = calculateTotalAmount(cartItems);
383
+ displayTotalAmount(totalAmount);
384
+ }
385
+
386
+ function calculateTotalAmount(cartItems) {
387
+ return cartItems.reduce((total, item) => total + item.price, 0);
388
+ }
389
+
390
+ function displayTotalAmount(amount) {
391
+ let totalAmountContainer = document.getElementById("totalAmountContainer");
392
+
393
+ if (!totalAmountContainer) {
394
+ totalAmountContainer = document.createElement("div");
395
+ totalAmountContainer.id = "totalAmountContainer";
396
+ const bagForm = document.querySelector(".bag__form");
397
+ bagForm.appendChild(totalAmountContainer);
398
+ }
399
+
400
+ totalAmountContainer.innerText = `Tổng cộng: ${amount} VND`;
401
+ }
402
+
403
+ function clearCartHandler() {
404
+ localStorage.removeItem("cartItems");
405
+
406
+ updateCartUI();
407
+ }
408
+
409
+ function checkoutHandler() {
410
+ alert("Đã thanh toán thành công!");
411
+
412
+ resetCart();
413
+
414
+ updateCartUI();
415
+ }
416
+
417
+ function resetCart() {
418
+ localStorage.removeItem("cartItems");
419
+ }
assets/js/scrollreveal.min.js ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! @license ScrollReveal v4.0.9
2
+
3
+ Copyright 2021 Fisssion LLC.
4
+
5
+ Licensed under the GNU General Public License 3.0 for
6
+ compatible open source projects and non-commercial use.
7
+
8
+ For commercial sites, themes, projects, and applications,
9
+ keep your source code private/proprietary by purchasing
10
+ a commercial license from https://scrollrevealjs.org/
11
+ */
12
+ var ScrollReveal=function(){"use strict";var r={delay:0,distance:"0",duration:600,easing:"cubic-bezier(0.5, 0, 0, 1)",interval:0,opacity:0,origin:"bottom",rotate:{x:0,y:0,z:0},scale:1,cleanup:!1,container:document.documentElement,desktop:!0,mobile:!0,reset:!1,useDelay:"always",viewFactor:0,viewOffset:{top:0,right:0,bottom:0,left:0},afterReset:function(){},afterReveal:function(){},beforeReset:function(){},beforeReveal:function(){}};var n={success:function(){document.documentElement.classList.add("sr"),document.body?document.body.style.height="100%":document.addEventListener("DOMContentLoaded",function(){document.body.style.height="100%"})},failure:function(){return document.documentElement.classList.remove("sr"),{clean:function(){},destroy:function(){},reveal:function(){},sync:function(){},get noop(){return!0}}}};function o(e){return"object"==typeof window.Node?e instanceof window.Node:null!==e&&"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName}function u(e,t){if(void 0===t&&(t=document),e instanceof Array)return e.filter(o);if(o(e))return[e];if(n=e,i=Object.prototype.toString.call(n),"object"==typeof window.NodeList?n instanceof window.NodeList:null!==n&&"object"==typeof n&&"number"==typeof n.length&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(i)&&(0===n.length||o(n[0])))return Array.prototype.slice.call(e);var n,i;if("string"==typeof e)try{var r=t.querySelectorAll(e);return Array.prototype.slice.call(r)}catch(e){return[]}return[]}function s(e){return null!==e&&e instanceof Object&&(e.constructor===Object||"[object Object]"===Object.prototype.toString.call(e))}function f(n,i){if(s(n))return Object.keys(n).forEach(function(e){return i(n[e],e,n)});if(n instanceof Array)return n.forEach(function(e,t){return i(e,t,n)});throw new TypeError("Expected either an array or object literal.")}function h(e){for(var t=[],n=arguments.length-1;0<n--;)t[n]=arguments[n+1];if(this.constructor.debug&&console){var i="%cScrollReveal: "+e;t.forEach(function(e){return i+="\n — "+e}),console.log(i,"color: #ea654b;")}}function t(){var n=this,i={active:[],stale:[]},t={active:[],stale:[]},r={active:[],stale:[]};try{f(u("[data-sr-id]"),function(e){var t=parseInt(e.getAttribute("data-sr-id"));i.active.push(t)})}catch(e){throw e}f(this.store.elements,function(e){-1===i.active.indexOf(e.id)&&i.stale.push(e.id)}),f(i.stale,function(e){return delete n.store.elements[e]}),f(this.store.elements,function(e){-1===r.active.indexOf(e.containerId)&&r.active.push(e.containerId),e.hasOwnProperty("sequence")&&-1===t.active.indexOf(e.sequence.id)&&t.active.push(e.sequence.id)}),f(this.store.containers,function(e){-1===r.active.indexOf(e.id)&&r.stale.push(e.id)}),f(r.stale,function(e){var t=n.store.containers[e].node;t.removeEventListener("scroll",n.delegate),t.removeEventListener("resize",n.delegate),delete n.store.containers[e]}),f(this.store.sequences,function(e){-1===t.active.indexOf(e.id)&&t.stale.push(e.id)}),f(t.stale,function(e){return delete n.store.sequences[e]})}function N(e){if(e.constructor!==Array)throw new TypeError("Expected array.");if(16===e.length)return e;if(6!==e.length)throw new RangeError("Expected array with either 6 or 16 values.");var t=z();return t[0]=e[0],t[1]=e[1],t[4]=e[2],t[5]=e[3],t[12]=e[4],t[13]=e[5],t}function z(){for(var e=[],t=0;t<16;t++)t%5==0?e.push(1):e.push(0);return e}function F(e,t){for(var n=N(e),i=N(t),r=[],o=0;o<4;o++)for(var s=[n[o],n[o+4],n[o+8],n[o+12]],a=0;a<4;a++){var c=4*a,l=[i[c],i[c+1],i[c+2],i[c+3]],d=s[0]*l[0]+s[1]*l[1]+s[2]*l[2]+s[3]*l[3];r[o+c]=d}return r}function D(e,t){var n=z();return n[0]=e,n[5]="number"==typeof t?t:e,n}var S=function(){var n={},i=document.documentElement.style;function e(e,t){if(void 0===t&&(t=i),e&&"string"==typeof e){if(n[e])return n[e];if("string"==typeof t[e])return n[e]=e;if("string"==typeof t["-webkit-"+e])return n[e]="-webkit-"+e;throw new RangeError('Unable to find "'+e+'" style property.')}throw new TypeError("Expected a string.")}return e.clearCache=function(){return n={}},e}();function p(e){var t=window.getComputedStyle(e.node),n=t.position,i=e.config,r={},o=(e.node.getAttribute("style")||"").match(/[\w-]+\s*:\s*[^;]+\s*/gi)||[];r.computed=o?o.map(function(e){return e.trim()}).join("; ")+";":"",r.generated=o.some(function(e){return e.match(/visibility\s?:\s?visible/i)})?r.computed:o.concat(["visibility: visible"]).map(function(e){return e.trim()}).join("; ")+";";var s,a,c,l,d,u,f,h,p,m,y,v,g,b=parseFloat(t.opacity),w=isNaN(parseFloat(i.opacity))?parseFloat(t.opacity):parseFloat(i.opacity),E={computed:b!==w?"opacity: "+b+";":"",generated:b!==w?"opacity: "+w+";":""},j=[];if(parseFloat(i.distance)){var T="top"===i.origin||"bottom"===i.origin?"Y":"X",k=i.distance;"top"!==i.origin&&"left"!==i.origin||(k=/^-/.test(k)?k.substr(1):"-"+k);var O=k.match(/(^-?\d+\.?\d?)|(em$|px$|%$)/g),x=O[0];switch(O[1]){case"em":k=parseInt(t.fontSize)*x;break;case"px":k=x;break;case"%":k="Y"===T?e.node.getBoundingClientRect().height*x/100:e.node.getBoundingClientRect().width*x/100;break;default:throw new RangeError("Unrecognized or missing distance unit.")}"Y"===T?j.push((c=k,(l=z())[13]=c,l)):j.push((s=k,(a=z())[12]=s,a))}i.rotate.x&&j.push((d=i.rotate.x,u=Math.PI/180*d,(f=z())[5]=f[10]=Math.cos(u),f[6]=f[9]=Math.sin(u),f[9]*=-1,f)),i.rotate.y&&j.push((h=i.rotate.y,p=Math.PI/180*h,(m=z())[0]=m[10]=Math.cos(p),m[2]=m[8]=Math.sin(p),m[2]*=-1,m)),i.rotate.z&&j.push((y=i.rotate.z,v=Math.PI/180*y,(g=z())[0]=g[5]=Math.cos(v),g[1]=g[4]=Math.sin(v),g[4]*=-1,g)),1!==i.scale&&(0===i.scale?j.push(D(2e-4)):j.push(D(i.scale)));var R={};if(j.length){R.property=S("transform"),R.computed={raw:t[R.property],matrix:function(e){if("string"==typeof e){var t=e.match(/matrix(3d)?\(([^)]+)\)/);if(t)return N(t[2].split(", ").map(parseFloat))}return z()}(t[R.property])},j.unshift(R.computed.matrix);var q=j.reduce(F);R.generated={initial:R.property+": matrix3d("+q.join(", ")+");",final:R.property+": matrix3d("+R.computed.matrix.join(", ")+");"}}else R.generated={initial:"",final:""};var A={};if(E.generated||R.generated.initial){A.property=S("transition"),A.computed=t[A.property],A.fragments=[];var P=i.delay,L=i.duration,M=i.easing;E.generated&&A.fragments.push({delayed:"opacity "+L/1e3+"s "+M+" "+P/1e3+"s",instant:"opacity "+L/1e3+"s "+M+" 0s"}),R.generated.initial&&A.fragments.push({delayed:R.property+" "+L/1e3+"s "+M+" "+P/1e3+"s",instant:R.property+" "+L/1e3+"s "+M+" 0s"}),A.computed&&!A.computed.match(/all 0s|none 0s/)&&A.fragments.unshift({delayed:A.computed,instant:A.computed});var I=A.fragments.reduce(function(e,t,n){return e.delayed+=0===n?t.delayed:", "+t.delayed,e.instant+=0===n?t.instant:", "+t.instant,e},{delayed:"",instant:""});A.generated={delayed:A.property+": "+I.delayed+";",instant:A.property+": "+I.instant+";"}}else A.generated={delayed:"",instant:""};return{inline:r,opacity:E,position:n,transform:R,transition:A}}function m(r,e){e.split(";").forEach(function(e){var t=e.split(":"),n=t[0],i=t.slice(1);n&&i&&(r.style[n.trim()]=i.join(":"))})}function y(e){var i,r=this;try{f(u(e),function(e){var t=e.getAttribute("data-sr-id");if(null!==t){i=!0;var n=r.store.elements[t];n.callbackTimer&&window.clearTimeout(n.callbackTimer.clock),m(n.node,n.styles.inline.generated),e.removeAttribute("data-sr-id"),delete r.store.elements[t]}})}catch(e){return h.call(this,"Clean failed.",e.message)}if(i)try{t.call(this)}catch(e){return h.call(this,"Clean failed.",e.message)}}function v(n){for(var e=[],t=arguments.length-1;0<t--;)e[t]=arguments[t+1];if(s(n))return f(e,function(e){f(e,function(e,t){s(e)?(n[t]&&s(n[t])||(n[t]={}),v(n[t],e)):n[t]=e})}),n;throw new TypeError("Target must be an object literal.")}function g(e){return void 0===e&&(e=navigator.userAgent),/Android|iPhone|iPad|iPod/i.test(e)}var e,b=(e=0,function(){return e++});function w(){var n=this;t.call(this),f(this.store.elements,function(e){var t=[e.styles.inline.generated];e.visible?(t.push(e.styles.opacity.computed),t.push(e.styles.transform.generated.final),e.revealed=!0):(t.push(e.styles.opacity.generated),t.push(e.styles.transform.generated.initial),e.revealed=!1),m(e.node,t.filter(function(e){return""!==e}).join(" "))}),f(this.store.containers,function(e){var t=e.node===document.documentElement?window:e.node;t.addEventListener("scroll",n.delegate),t.addEventListener("resize",n.delegate)}),this.delegate(),this.initTimeout=null}function c(e,t){void 0===t&&(t={});var n=t.pristine||this.pristine,i="always"===e.config.useDelay||"onload"===e.config.useDelay&&n||"once"===e.config.useDelay&&!e.seen,r=e.visible&&!e.revealed,o=!e.visible&&e.revealed&&e.config.reset;return t.reveal||r?function(e,t){var n=[e.styles.inline.generated,e.styles.opacity.computed,e.styles.transform.generated.final];t?n.push(e.styles.transition.generated.delayed):n.push(e.styles.transition.generated.instant);e.revealed=e.seen=!0,m(e.node,n.filter(function(e){return""!==e}).join(" ")),a.call(this,e,t)}.call(this,e,i):t.reset||o?function(e){var t=[e.styles.inline.generated,e.styles.opacity.generated,e.styles.transform.generated.initial,e.styles.transition.generated.instant];e.revealed=!1,m(e.node,t.filter(function(e){return""!==e}).join(" ")),a.call(this,e)}.call(this,e):void 0}function a(e,t){var n=this,i=t?e.config.duration+e.config.delay:e.config.duration,r=e.revealed?e.config.beforeReveal:e.config.beforeReset,o=e.revealed?e.config.afterReveal:e.config.afterReset,s=0;e.callbackTimer&&(s=Date.now()-e.callbackTimer.start,window.clearTimeout(e.callbackTimer.clock)),r(e.node),e.callbackTimer={start:Date.now(),clock:window.setTimeout(function(){o(e.node),e.callbackTimer=null,e.revealed&&!e.config.reset&&e.config.cleanup&&y.call(n,e.node)},i-s)}}function l(e,t){if(void 0===t&&(t=this.pristine),!e.visible&&e.revealed&&e.config.reset)return c.call(this,e,{reset:!0});var n=this.store.sequences[e.sequence.id],i=e.sequence.index;if(n){var r=new d(n,"visible",this.store),o=new d(n,"revealed",this.store);if(n.models={visible:r,revealed:o},!o.body.length){var s=n.members[r.body[0]],a=this.store.elements[s];if(a)return j.call(this,n,r.body[0],-1,t),j.call(this,n,r.body[0],1,t),c.call(this,a,{reveal:!0,pristine:t})}if(!n.blocked.head&&i===[].concat(o.head).pop()&&i>=[].concat(r.body).shift())return j.call(this,n,i,-1,t),c.call(this,e,{reveal:!0,pristine:t});if(!n.blocked.foot&&i===[].concat(o.foot).shift()&&i<=[].concat(r.body).pop())return j.call(this,n,i,1,t),c.call(this,e,{reveal:!0,pristine:t})}}function E(e){var t=Math.abs(e);if(isNaN(t))throw new RangeError("Invalid sequence interval.");this.id=b(),this.interval=Math.max(t,16),this.members=[],this.models={},this.blocked={head:!1,foot:!1}}function d(e,i,r){var o=this;this.head=[],this.body=[],this.foot=[],f(e.members,function(e,t){var n=r.elements[e];n&&n[i]&&o.body.push(t)}),this.body.length&&f(e.members,function(e,t){var n=r.elements[e];n&&!n[i]&&(t<o.body[0]?o.head.push(t):o.foot.push(t))})}function j(e,t,n,i){var r=this,o=["head",null,"foot"][1+n],s=e.members[t+n],a=this.store.elements[s];e.blocked[o]=!0,setTimeout(function(){e.blocked[o]=!1,a&&l.call(r,a,i)},e.interval)}function i(e,a,t){var c=this;void 0===a&&(a={}),void 0===t&&(t=!1);var l,d=[],n=a.interval||r.interval;try{n&&(l=new E(n));var i=u(e);if(!i.length)throw new Error("Invalid reveal target.");f(i.reduce(function(e,t){var n={},i=t.getAttribute("data-sr-id");i?(v(n,c.store.elements[i]),m(n.node,n.styles.inline.computed)):(n.id=b(),n.node=t,n.seen=!1,n.revealed=!1,n.visible=!1);var r=v({},n.config||c.defaults,a);if(!r.mobile&&g()||!r.desktop&&!g())return i&&y.call(c,n),e;var o,s=u(r.container)[0];if(!s)throw new Error("Invalid container.");return s.contains(t)&&(null===(o=function(t){var e=[],n=arguments.length-1;for(;0<n--;)e[n]=arguments[n+1];var i=null;return f(e,function(e){f(e,function(e){null===i&&e.node===t&&(i=e.id)})}),i}(s,d,c.store.containers))&&(o=b(),d.push({id:o,node:s})),n.config=r,n.containerId=o,n.styles=p(n),l&&(n.sequence={id:l.id,index:l.members.length},l.members.push(n.id)),e.push(n)),e},[]),function(e){(c.store.elements[e.id]=e).node.setAttribute("data-sr-id",e.id)})}catch(e){return h.call(this,"Reveal failed.",e.message)}f(d,function(e){c.store.containers[e.id]={id:e.id,node:e.node}}),l&&(this.store.sequences[l.id]=l),!0!==t&&(this.store.history.push({target:e,options:a}),this.initTimeout&&window.clearTimeout(this.initTimeout),this.initTimeout=window.setTimeout(w.bind(this),0))}var T,k=Math.sign||function(e){return(0<e)-(e<0)||+e},O=(T=Date.now(),function(e){var t=Date.now();16<t-T?e(T=t):setTimeout(function(){return O(e)},0)}),x=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||O;function R(e,t){for(var n=t?e.node.clientHeight:e.node.offsetHeight,i=t?e.node.clientWidth:e.node.offsetWidth,r=0,o=0,s=e.node;isNaN(s.offsetTop)||(r+=s.offsetTop),isNaN(s.offsetLeft)||(o+=s.offsetLeft),s=s.offsetParent;);return{bounds:{top:r,right:o+i,bottom:r+n,left:o},height:n,width:i}}function q(e,t){var i=this;void 0===e&&(e={type:"init"}),void 0===t&&(t=this.store.elements),x(function(){var n="init"===e.type||"resize"===e.type;f(i.store.containers,function(e){n&&(e.geometry=R.call(i,e,!0));var t=function(e){var t,n;return n=e.node===document.documentElement?(t=window.pageYOffset,window.pageXOffset):(t=e.node.scrollTop,e.node.scrollLeft),{top:t,left:n}}.call(i,e);e.scroll&&(e.direction={x:k(t.left-e.scroll.left),y:k(t.top-e.scroll.top)}),e.scroll=t}),f(t,function(e){(n||void 0===e.geometry)&&(e.geometry=R.call(i,e)),e.visible=function(e){void 0===e&&(e={});var t=this.store.containers[e.containerId];if(t){var n=Math.max(0,Math.min(1,e.config.viewFactor)),i=e.config.viewOffset,r=e.geometry.bounds.top+e.geometry.height*n,o=e.geometry.bounds.right-e.geometry.width*n,s=e.geometry.bounds.bottom-e.geometry.height*n,a=e.geometry.bounds.left+e.geometry.width*n,c=t.geometry.bounds.top+t.scroll.top+i.top,l=t.geometry.bounds.right+t.scroll.left-i.right,d=t.geometry.bounds.bottom+t.scroll.top-i.bottom,u=t.geometry.bounds.left+t.scroll.left+i.left;return r<d&&u<o&&c<s&&a<l||"fixed"===e.styles.position}}.call(i,e)}),f(t,function(e){e.sequence?l.call(i,e):c.call(i,e)}),i.pristine=!1})}var A,P,L,M,I,C,W,Y,$="4.0.9";function H(e){var t;if(void 0===e&&(e={}),void 0===this||Object.getPrototypeOf(this)!==H.prototype)return new H(e);if(!H.isSupported())return h.call(this,"Instantiation failed.","This browser is not supported."),n.failure();try{t=v({},C||r,e)}catch(e){return h.call(this,"Invalid configuration.",e.message),n.failure()}try{if(!u(t.container)[0])throw new Error("Invalid container.")}catch(e){return h.call(this,e.message),n.failure()}return!(C=t).mobile&&g()||!C.desktop&&!g()?(h.call(this,"This device is disabled.","desktop: "+C.desktop,"mobile: "+C.mobile),n.failure()):(n.success(),this.store={containers:{},elements:{},history:[],sequences:{}},this.pristine=!0,A=A||q.bind(this),P=P||function(){var n=this;f(this.store.elements,function(e){m(e.node,e.styles.inline.generated),e.node.removeAttribute("data-sr-id")}),f(this.store.containers,function(e){var t=e.node===document.documentElement?window:e.node;t.removeEventListener("scroll",n.delegate),t.removeEventListener("resize",n.delegate)}),this.store={containers:{},elements:{},history:[],sequences:{}}}.bind(this),L=L||i.bind(this),M=M||y.bind(this),I=I||function(){var t=this;f(this.store.history,function(e){i.call(t,e.target,e.options,!0)}),w.call(this)}.bind(this),Object.defineProperty(this,"delegate",{get:function(){return A}}),Object.defineProperty(this,"destroy",{get:function(){return P}}),Object.defineProperty(this,"reveal",{get:function(){return L}}),Object.defineProperty(this,"clean",{get:function(){return M}}),Object.defineProperty(this,"sync",{get:function(){return I}}),Object.defineProperty(this,"defaults",{get:function(){return C}}),Object.defineProperty(this,"version",{get:function(){return $}}),Object.defineProperty(this,"noop",{get:function(){return!1}}),Y||(Y=this))}return H.isSupported=function(){return("transform"in(t=document.documentElement.style)||"WebkitTransform"in t)&&("transition"in(e=document.documentElement.style)||"WebkitTransition"in e);var e,t},Object.defineProperty(H,"debug",{get:function(){return W||!1},set:function(e){return W="boolean"==typeof e?e:W}}),H(),H}();
assets/js/swiper-bundle.min.js ADDED
The diff for this file is too large to render. See raw diff
 
assets/scss/base/_base.scss ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== BASE ===============*/
2
+ *{
3
+ box-sizing: border-box;
4
+ padding: 0;
5
+ margin: 0;
6
+ }
7
+
8
+ html{
9
+ scroll-behavior: smooth;
10
+ }
11
+
12
+ body,
13
+ input,
14
+ button{
15
+ font-family: var(--body-font);
16
+ font-size: var(--normal-font-size);
17
+ }
18
+
19
+ body{
20
+ background-color: var(--body-color);
21
+ color: var(--text-color);
22
+ transition: background-color .4s;
23
+ }
24
+
25
+ input,
26
+ button{
27
+ border: none;
28
+ outline: none;
29
+ }
30
+
31
+ h1,h2,h3,h4{
32
+ color: var(--title-color);
33
+ font-family: var(--second-font);
34
+ font-weight: var(--font-medium);
35
+ }
36
+
37
+ ul{
38
+ list-style: none;
39
+ }
40
+
41
+ a{
42
+ text-decoration: none;
43
+ }
44
+
45
+ img{
46
+ display: block;
47
+ max-width: 100%;
48
+ height: auto;
49
+ }
assets/scss/components/_breakpoints.scss ADDED
@@ -0,0 +1,279 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== BREAKPOINTS ===============*/
2
+ /* For small devices */
3
+ @media screen and (max-width: 320px){
4
+ .container{
5
+ margin-inline: 1rem;
6
+ }
7
+
8
+ .nav__menu{
9
+ padding-inline: 3rem;
10
+ }
11
+
12
+ .discount{
13
+ &__img-1,
14
+ &__img-2{
15
+ width: 140px;
16
+ }
17
+ }
18
+
19
+ .new__card{
20
+ flex-direction: column;
21
+ }
22
+
23
+ .testimonial__card{
24
+ padding-inline: 1rem;
25
+ }
26
+
27
+ .footer__data{
28
+ grid-template-columns: 1fr;
29
+ row-gap: 2rem;
30
+ }
31
+ }
32
+
33
+ /* For medium devices */
34
+ @media screen and (min-width: 450px){
35
+ .featured__card{
36
+ width: 290px;
37
+ }
38
+
39
+ .new__card{
40
+ width: 390px;
41
+ }
42
+
43
+ .testimonial__card{
44
+ width: 320px;
45
+ }
46
+ }
47
+
48
+ @media screen and (min-width: 576px){
49
+ .search__form{
50
+ width: 500px;
51
+ margin-inline: auto;
52
+ }
53
+
54
+ .login__form{
55
+ width: 400px;
56
+ justify-self: center;
57
+ }
58
+
59
+ .search__close,
60
+ .login__close{
61
+ width: max-content;
62
+ top: 4rem;
63
+ left: 0;
64
+ right: 0;
65
+ margin-inline: auto;
66
+ }
67
+
68
+ .nav__menu{
69
+ width: 380px;
70
+ margin-inline: auto;
71
+ }
72
+
73
+ .home__container,
74
+ .discount__container{
75
+ grid-template-columns: 420px;
76
+ justify-content: center;
77
+ }
78
+
79
+ .join__form{
80
+ width: 328px;
81
+ justify-self: center;
82
+ }
83
+
84
+ .footer__data{
85
+ grid-template-columns: repeat(3, max-content);
86
+ }
87
+ }
88
+
89
+ @media screen and (min-width: 768px){
90
+ .home{
91
+ &__container{
92
+ grid-template-columns: 580px;
93
+ }
94
+ &__data{
95
+ width: 420px;
96
+ justify-self: center;
97
+ }
98
+ }
99
+
100
+ .services__container{
101
+ grid-template-columns: repeat(3, max-content);
102
+ justify-content: center;
103
+ column-gap: 5rem;
104
+ }
105
+
106
+ .footer__container{
107
+ grid-template-columns: repeat(2, max-content);
108
+ justify-content: space-between;
109
+ }
110
+ }
111
+
112
+ /* For large devices */
113
+ @media screen and (min-width: 1150px){
114
+ .section{
115
+ padding-block: 7rem 2rem;
116
+ }
117
+
118
+ .nav{
119
+ height: calc(var(--header-height) + 2rem);
120
+ column-gap: 4rem;
121
+
122
+ &__link i{
123
+ display: none;
124
+ }
125
+ &__link span{
126
+ display: block;
127
+ }
128
+ &__menu{
129
+ width: initial;
130
+ margin-inline: auto 0;
131
+ }
132
+ &__list{
133
+ column-gap: 4rem;
134
+ }
135
+ &__link{
136
+ font-weight: var(--font-medium);
137
+ }
138
+ }
139
+
140
+ .dark-theme .nav__menu{
141
+ box-shadow: none;
142
+ }
143
+
144
+ .home__data{
145
+ width: initial;
146
+ }
147
+
148
+ .services{
149
+ &__container{
150
+ column-gap: 10rem;
151
+ }
152
+ &__card i{
153
+ font-size: 3.5rem;
154
+ }
155
+ }
156
+
157
+ .featured{
158
+ &__container{
159
+ padding-top: 2rem;
160
+ }
161
+ &__title{
162
+ font-size: var(--h3-font-size);
163
+ }
164
+ }
165
+
166
+ .discount{
167
+ &__container{
168
+ grid-template-columns: 615px 500px;
169
+ justify-content: space-between;
170
+ align-items: center;
171
+ }
172
+ &__data{
173
+ order: 1;
174
+ }
175
+ &__data,
176
+ &__title{
177
+ text-align: initial;
178
+ }
179
+ &__description{
180
+ margin-bottom: 3.5rem;
181
+ }
182
+ &__img-1,
183
+ &__img-2{
184
+ width: 300px;
185
+ }
186
+ }
187
+
188
+ .new{
189
+ &__container{
190
+ padding-top: 2rem;
191
+ }
192
+ &__card{
193
+ padding: 1.5rem;
194
+ }
195
+ &__img{
196
+ width: 120px;
197
+ }
198
+ &__title{
199
+ font-size: var(--h3-font-size);
200
+ }
201
+ }
202
+
203
+ .join__bg{
204
+ object-position: 0 -5rem;
205
+ }
206
+
207
+ .testimonial{
208
+ &__container{
209
+ padding-top: 2rem;
210
+ }
211
+ &__card{
212
+ padding-inline: 2rem;
213
+ }
214
+ &__title{
215
+ font-size: var(--h3-font-size);
216
+ }
217
+ &__description{
218
+ font-size: var(--normal-font-size);
219
+ }
220
+ }
221
+
222
+ .footer{
223
+ padding-block: 6rem 3rem;
224
+
225
+ &__data{
226
+ grid-template-columns: repeat(4, max-content);
227
+ column-gap: 4.5rem;
228
+ }
229
+ &__logo,
230
+ &__title{
231
+ font-size: var(--h2-font-size);
232
+ margin-bottom: 1.5rem;
233
+ }
234
+ &__links{
235
+ row-gap: 1rem;
236
+ }
237
+ &__social{
238
+ column-gap: 1.5rem;
239
+
240
+ &-link{
241
+ font-size: 1.5rem;
242
+ }
243
+ }
244
+ &__copy{
245
+ margin-top: 7.5rem;
246
+ }
247
+ }
248
+
249
+ .scrollup{
250
+ right: 3rem;
251
+ }
252
+ .show-scroll{
253
+ bottom: 3rem;
254
+ }
255
+ }
256
+
257
+ @media screen and (min-width: 1220px){
258
+ .container{
259
+ margin-inline: auto;
260
+ }
261
+
262
+ .home{
263
+ &__container{
264
+ grid-template-columns: 435px 745px;
265
+ align-items: center;
266
+ padding-block: 7rem 2rem;
267
+ }
268
+ &__data{
269
+ text-align: initial;
270
+ }
271
+ &__description{
272
+ margin-bottom: 4rem;
273
+ }
274
+ &__article,
275
+ &__img{
276
+ width: 290px;
277
+ }
278
+ }
279
+ }
assets/scss/components/_button.scss ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== BUTTON ===============*/
2
+ .button{
3
+ display: inline-block;
4
+ background-color: var(--first-color);
5
+ color: var(--white-color);
6
+ font-weight: var(--font-semi-bold);
7
+ padding: 1rem 1.5rem;
8
+ transition: box-shadow .4s;
9
+
10
+ &:hover{
11
+ box-shadow: 0 4px 32px hsla(230, 72%, 32%, .4);
12
+ }
13
+ }
assets/scss/components/_discount.scss ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== DISCOUNT ===============*/
2
+ .discount{
3
+ &__container{
4
+ row-gap: 3.5rem;
5
+ }
6
+ &__data{
7
+ text-align: center;
8
+ }
9
+ &__title{
10
+ margin-bottom: 1rem;
11
+ }
12
+ &__description{
13
+ margin-bottom: 2rem;
14
+ }
15
+ &__images{
16
+ display: flex;
17
+ justify-content: center;
18
+ }
19
+ &__img-1,
20
+ &__img-2{
21
+ width: 170px;
22
+ }
23
+ &__img-1{
24
+ transform: translateX(1rem) rotate(-10deg);
25
+ }
26
+ &__img-2{
27
+ transform: translateX(-1rem) rotate(10deg);
28
+ }
29
+ }
assets/scss/components/_featured.scss ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== FEATURED ===============*/
2
+ .featured{
3
+ &__card{
4
+ position: relative;
5
+ text-align: center;
6
+ background-color: var(--container-color);
7
+ padding: 2rem;
8
+ overflow: hidden;
9
+ border: 2px solid var(--border-color);
10
+ transition: border .4s, background-color .4s;
11
+ }
12
+ &__img{
13
+ width: 150px;
14
+ margin: 0 auto .75rem;
15
+ }
16
+ &__title{
17
+ font-size: var(--h2-font-size);
18
+ margin-bottom: .5rem;
19
+ }
20
+ &__prices{
21
+ display: flex;
22
+ justify-content: center;
23
+ align-items: center;
24
+ column-gap: .75rem;
25
+ margin-bottom: 1.25rem;
26
+ }
27
+ &__discount{
28
+ color: var(--title-color);
29
+ }
30
+ &__price{
31
+ font-size: var(--small-font-size);
32
+ text-decoration: line-through;
33
+ }
34
+ &__card .button{
35
+ cursor: pointer;
36
+ }
37
+ &__actions{
38
+ display: inline-flex;
39
+ flex-direction: column;
40
+ row-gap: .75rem;
41
+ position: absolute;
42
+ top: 2rem;
43
+ right: -1.5rem;
44
+ transition: right .4s;
45
+
46
+ & button{
47
+ background: none;
48
+ font-size: 1.25rem;
49
+ color: var(--first-color);
50
+ cursor: pointer;
51
+ }
52
+ }
53
+ &__card:hover &__actions{
54
+ right: 1.5rem;
55
+ }
56
+ }
57
+
58
+ /* Swiper class */
59
+ .swiper-button-prev::after,
60
+ .swiper-button-next::after{
61
+ content: '';
62
+ }
63
+
64
+ .swiper-button-prev,
65
+ .swiper-button-next{
66
+ width: initial;
67
+ height: initial;
68
+ background-color: var(--container-color);
69
+ border: 2px solid var(--border-color);
70
+ padding: .5rem;
71
+ font-size: 1.5rem;
72
+ color: var(--first-color);
73
+ transition: border .4s, background-color .4s;
74
+ }
assets/scss/components/_footer.scss ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== FOOTER ===============*/
2
+ .footer{
3
+ padding-block: 4rem 6rem;
4
+
5
+ &__container{
6
+ row-gap: 3rem;
7
+ }
8
+ &__logo{
9
+ display: inline-flex;
10
+ align-items: center;
11
+ column-gap: .5rem;
12
+ color: var(--first-color);
13
+ font-size: var(--h3-font-size);
14
+ font-family: var(--second-font);
15
+ margin-bottom: 1.25rem;
16
+
17
+ & i{
18
+ font-size: 1.25rem;
19
+ }
20
+ }
21
+ &__data{
22
+ grid-template-columns: repeat(2, max-content);
23
+ gap: 3rem 2rem;
24
+ }
25
+ &__title{
26
+ font-size: var(--h3-font-size);
27
+ margin-bottom: 1.25rem;
28
+ }
29
+ &__links{
30
+ display: grid;
31
+ row-gap: .5rem;
32
+ }
33
+ &__link{
34
+ color: var(--text-color);
35
+ transition: color .4s;
36
+
37
+ &:hover{
38
+ color: var(--first-color);
39
+ }
40
+ }
41
+ &__info{
42
+ font-style: normal;
43
+ }
44
+ &__social{
45
+ display: flex;
46
+ column-gap: 1.25rem;
47
+
48
+ &-link{
49
+ font-size: 1.25rem;
50
+ color: var(--first-color);
51
+ }
52
+ }
53
+ &__copy{
54
+ display: block;
55
+ margin-top: 5rem;
56
+ text-align: center;
57
+ font-size: var(--small-font-size);
58
+ }
59
+ }
assets/scss/components/_header.scss ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== HEADER & NAV ===============*/
2
+ .header{
3
+ position: fixed;
4
+ top: 0;
5
+ left: 0;
6
+ width: 100%;
7
+ background-color: var(--body-color);
8
+ z-index: var(--z-fixed);
9
+ transition: box-shadow .4s, background-color .4s;
10
+ }
11
+
12
+ .nav{
13
+ height: var(--header-height);
14
+ display: flex;
15
+ justify-content: space-between;
16
+ align-items: center;
17
+
18
+ &__logo{
19
+ display: inline-flex;
20
+ align-items: center;
21
+ column-gap: .5rem;
22
+ color: var(--first-color);
23
+ font-weight: var(--font-medium);
24
+
25
+ & i{
26
+ font-size: 1.25rem;
27
+ }
28
+ }
29
+ // Navigation for mobile devices
30
+ @media screen and (max-width: 1150px){
31
+ &__menu{
32
+ position: fixed;
33
+ bottom: 0;
34
+ left: 0;
35
+ right: 0;
36
+ width: 100%;
37
+ background-color: var(--container-color);
38
+ box-shadow: 0 -8px 32px hsla(0, 0%, 0%, .1);
39
+ padding: 1.25rem 4rem;
40
+ transition: background-color .4s;
41
+ }
42
+ }
43
+ &__list{
44
+ display: flex;
45
+ justify-content: space-between;
46
+ }
47
+ &__link{
48
+ color: var(--text-color);
49
+ transition: color .4s;
50
+
51
+ & span{
52
+ display: none;
53
+ }
54
+ & i{
55
+ font-size: 1.25rem;
56
+ }
57
+ &:hover{
58
+ color: var(--first-color);
59
+ }
60
+ }
61
+ &__actions{
62
+ display: flex;
63
+ align-items: center;
64
+ column-gap: 1rem;
65
+
66
+ & i{
67
+ font-size: 1.25rem;
68
+ color: var(--title-color);
69
+ cursor: pointer;
70
+ transition: color .4s;
71
+
72
+ &:hover{
73
+ color: var(--first-color);
74
+ }
75
+ }
76
+ }
77
+ }
78
+
79
+ /* Add shadow header */
80
+ .shadow-header{
81
+ box-shadow: 0 2px 16px hsla(0, 0%, 0%, .1);
82
+ }
83
+
84
+ /* Active link */
85
+ .active-link{
86
+ color: var(--first-color);
87
+ }
assets/scss/components/_home.scss ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== HOME ===============*/
2
+ .home{
3
+ &__swiper{
4
+ margin: initial;
5
+ }
6
+ &__container{
7
+ padding-top: 2rem;
8
+ row-gap: 2.5rem;
9
+ }
10
+ &__data{
11
+ text-align: center;
12
+ }
13
+ &__title{
14
+ font-size: var(--biggest-font-size);
15
+ margin-bottom: 1rem;
16
+ }
17
+ &__description{
18
+ margin-bottom: 2rem;
19
+ }
20
+ &__images{
21
+ display: grid;
22
+ }
23
+ &__article,
24
+ &__img{
25
+ width: 220px;
26
+ transition: scale .4s;
27
+ }
28
+ &__article{
29
+ scale: .8;
30
+ }
31
+ }
32
+
33
+ /* Swiper class */
34
+ .swiper-slide-active,
35
+ .swiper-slide-duplicate-active{
36
+ scale: 1;
37
+ }
assets/scss/components/_join.scss ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== JOIN ===============*/
2
+ .join{
3
+ &__container{
4
+ position: relative;
5
+ padding-block: 3rem;
6
+ }
7
+ &__bg{
8
+ position: absolute;
9
+ top: 0;
10
+ left: 0;
11
+ width: 100%;
12
+ height: 100%;
13
+ object-fit: cover;
14
+ object-position: center;
15
+ }
16
+ &__data{
17
+ position: relative;
18
+ }
19
+ &__title{
20
+ color: var(--white-color);
21
+
22
+ }
23
+ &__form{
24
+ display: grid;
25
+ row-gap: 1rem;
26
+ }
27
+ &__input{
28
+ padding: 1.25rem 1rem;
29
+ background-color: var(--body-color);
30
+ color: var(--title-color);
31
+ transition: background-color .4s;
32
+
33
+ &::placeholder{
34
+ color: var(--text-color);
35
+ }
36
+ }
37
+ &__button{
38
+ padding-block: 1.25rem;
39
+ cursor: pointer;
40
+ }
41
+ }
assets/scss/components/_login.scss ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== LOGIN ===============*/
2
+ .login{
3
+ position: fixed;
4
+ top: -100%;
5
+ left: 0;
6
+ width: 100%;
7
+ height: 100%;
8
+ z-index: var(--z-fixed);
9
+ background-color: hsla(230, 62%, 96%, .6);
10
+ backdrop-filter: blur(16px);
11
+ align-items: center;
12
+ padding: 1.5rem;
13
+ text-align: center;
14
+ transition: top .4s;
15
+
16
+ &__form{
17
+ background-color: var(--container-color);
18
+ padding: 2rem 1.5rem;
19
+ border: 2px solid var(--border-color);
20
+ row-gap: 1.25rem;
21
+ }
22
+ &__title{
23
+ font-size: var(--h2-font-size);
24
+ }
25
+ &__group{
26
+ row-gap: 1.25rem;
27
+ }
28
+ &__label{
29
+ display: block;
30
+ text-align: initial;
31
+ color: var(--title-color);
32
+ font-weight: var(--font-medium);
33
+ margin-bottom: .25rem;
34
+ }
35
+ &__input{
36
+ width: 100%;
37
+ background-color: var(--container-color);
38
+ border: 2px solid var(--border-color);
39
+ padding: 1rem;
40
+ color: var(--text-color);
41
+ }
42
+ &__signup,
43
+ &__forgot{
44
+ display: block;
45
+ font-size: var(--small-font-size);
46
+ }
47
+ &__signup{
48
+ margin-bottom: .5rem;
49
+
50
+ & a{
51
+ color: var(--first-color);
52
+ font-weight: var(--font-medium);
53
+ }
54
+ }
55
+ &__forgot{
56
+ color: var(--first-color);
57
+ margin-bottom: 1.25rem;
58
+ }
59
+ &__button{
60
+ width: 100%;
61
+ cursor: pointer;
62
+ }
63
+ &__close{
64
+ position: absolute;
65
+ top: 2rem;
66
+ right: 2rem;
67
+ font-size: 2rem;
68
+ color: var(--title-color);
69
+ cursor: pointer;
70
+ }
71
+ }
72
+
73
+ /* Show login */
74
+ .show-login{
75
+ top: 0;
76
+ }
assets/scss/components/_new.scss ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== NEW ===============*/
2
+ .new{
3
+ &__card{
4
+ display: flex;
5
+ align-items: center;
6
+ column-gap: 2.5rem;
7
+ background-color: var(--container-color);
8
+ padding: 1.5rem 1rem;
9
+ color: var(--text-color);
10
+ border: 2px solid var(--border-color);
11
+ transition: border .4s, background-color .4s;
12
+
13
+ &:hover{
14
+ border: 2px solid var(--text-color);
15
+ }
16
+ }
17
+ &__img{
18
+ width: 100px;
19
+ }
20
+ &__title{
21
+ font-size: var(--h2-font-size);
22
+ margin-bottom: .5rem;
23
+ }
24
+ &__prices{
25
+ display: flex;
26
+ align-items: center;
27
+ column-gap: .75rem;
28
+ margin-bottom: .75rem;
29
+ }
30
+ &__discount{
31
+ color: var(--title-color);
32
+ }
33
+ &__price{
34
+ font-size: var(--small-font-size);
35
+ text-decoration: line-through;
36
+ }
37
+ &__stars{
38
+ color: var(--first-color);
39
+ }
40
+ &__swiper:nth-child(1){
41
+ margin-bottom: 2rem;
42
+ }
43
+ }
assets/scss/components/_scroll.scss ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== SCROLL BAR ===============*/
2
+ ::-webkit-scrollbar{
3
+ width: .6rem;
4
+ border-radius: .5rem;
5
+ background-color: hsl(230, 16%, 85%);
6
+
7
+ &-thumb{
8
+ background-color: hsl(230, 16%, 65%);
9
+ border-radius: .5rem;
10
+
11
+ &:hover{
12
+ background-color: hsl(230, 16%, 55%);
13
+ }
14
+ }
15
+ }
16
+
17
+ /*=============== SCROLL UP ===============*/
18
+ .scrollup {
19
+ position: fixed;
20
+ right: 1rem;
21
+ bottom: -50%;
22
+ background-color: var(--container-color);
23
+ box-shadow: 0 2px 8px hsla(0, 0%, 0%, .1);
24
+ display: inline-flex;
25
+ padding: 6px;
26
+ font-size: 1.25rem;
27
+ color: var(--title-color);
28
+ z-index: var(--z-tooltip);
29
+ transition: bottom .4s, transform .4s, background-color .4s;
30
+
31
+ &:hover{
32
+ transform: translateY(-.5rem);
33
+ }
34
+ }
35
+
36
+ /* Show Scroll Up */
37
+ .show-scroll{
38
+ bottom: 6rem;
39
+ }
assets/scss/components/_search.scss ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== SEARCH ===============*/
2
+ .search{
3
+ position: fixed;
4
+ top: -100%;
5
+ left: 0;
6
+ width: 100%;
7
+ height: 100%;
8
+ z-index: var(--z-fixed);
9
+ background-color: hsla(230, 62%, 96%, .6);
10
+ backdrop-filter: blur(16px);
11
+ padding: 8rem 1.5rem;
12
+ transition: top .4s;
13
+
14
+ &__form{
15
+ display: flex;
16
+ align-items: center;
17
+ column-gap: .5rem;
18
+ background-color: var(--container-color);
19
+ border: 2px solid var(--border-color);
20
+ padding-inline: 1rem;
21
+ }
22
+ &__icon{
23
+ font-size: 1.25rem;
24
+ color: var(--title-color);
25
+ }
26
+ &__input{
27
+ width: 100%;
28
+ padding-block: 1rem;
29
+ background-color: var(--container-color);
30
+ color: var(--text-color);
31
+ }
32
+ &__close{
33
+ position: absolute;
34
+ top: 2rem;
35
+ right: 2rem;
36
+ font-size: 2rem;
37
+ color: var(--title-color);
38
+ cursor: pointer;
39
+ }
40
+ }
41
+
42
+ /* Show search */
43
+ .show-search{
44
+ top: 0;
45
+ }
assets/scss/components/_services.scss ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== SERVICES ===============*/
2
+ .services{
3
+ &__container{
4
+ row-gap: 3rem;
5
+ }
6
+ &__card{
7
+ text-align: center;
8
+
9
+ & i{
10
+ display: block;
11
+ font-size: 3rem;
12
+ color: var(--first-color);
13
+ margin-bottom: 1rem;
14
+ }
15
+ }
16
+ &__title{
17
+ font-size: var(--h3-font-size);
18
+ margin-bottom: .5rem;
19
+ }
20
+ }
assets/scss/components/_testimonial.scss ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== TESTIMONIAL ===============*/
2
+ .testimonial{
3
+ &__card{
4
+ text-align: center;
5
+ background-color: var(--container-color);
6
+ padding: 2rem 3rem 2.5rem;
7
+ border: 2px solid var(--border-color);
8
+ transition: border .4s, background-color .4s;
9
+ }
10
+ &__img{
11
+ width: 100px;
12
+ border-radius: 50%;
13
+ margin: 0 auto 1.5rem;
14
+ }
15
+ &__title{
16
+ font-size: var(--h2-font-size);
17
+ margin-bottom: .75rem;
18
+ }
19
+ &__description{
20
+ font-size: var(--small-font-size);
21
+ margin-bottom: 1.25rem;
22
+ }
23
+ &__stars{
24
+ color: var(--first-color);
25
+ }
26
+ }
assets/scss/config/_variables.scss ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== GOOGLE FONTS ===============*/
2
+ @import url("https://fonts.googleapis.com/css2?family=Montagu+Slab:wght@500&family=Montserrat:wght@400;500;600&display=swap");
3
+
4
+ /*=============== VARIABLES CSS ===============*/
5
+ :root {
6
+ --header-height: 3.5rem;
7
+
8
+ /*========== Colors ==========*/
9
+ /*Color mode HSL(hue, saturation, lightness)*/
10
+ --first-color: #5e0011;
11
+ --title-color: hsl(230, 70%, 16%);
12
+ --text-color: hsl(230, 16%, 45%);
13
+ --border-color: #a67c87;
14
+ --white-color: hsl(0, 0%, 100%);
15
+ --body-color: #f2dce0;
16
+ --container-color: #f2c4d0;
17
+
18
+ /*========== Font and typography ==========*/
19
+ /*.5rem = 8px | 1rem = 16px ...*/
20
+ --body-font: "Montserrat", sans-serif;
21
+ --second-font: "Montagu Slab", serif;
22
+
23
+ --biggest-font-size: 2rem;
24
+ --h1-font-size: 1.5rem;
25
+ --h2-font-size: 1.25rem;
26
+ --h3-font-size: 1rem;
27
+ --normal-font-size: 0.938rem;
28
+ --small-font-size: 0.813rem;
29
+ --smaller-font-size: 0.75rem;
30
+
31
+ // Responsive typography
32
+ @media screen and (min-width: 1150px) {
33
+ --biggest-font-size: 3.5rem;
34
+ --h1-font-size: 2.25rem;
35
+ --h2-font-size: 1.5rem;
36
+ --h3-font-size: 1.25rem;
37
+ --normal-font-size: 1rem;
38
+ --small-font-size: 0.875rem;
39
+ --smaller-font-size: 0.813rem;
40
+ }
41
+
42
+ /*========== Font weight ==========*/
43
+ --font-regular: 400;
44
+ --font-medium: 500;
45
+ --font-semi-bold: 600;
46
+
47
+ /*========== z index ==========*/
48
+ --z-tooltip: 10;
49
+ --z-fixed: 100;
50
+ }
assets/scss/layout/_layout.scss ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== REUSABLE CSS CLASSES ===============*/
2
+ .container{
3
+ max-width: 1220px;
4
+ margin-inline: 1.5rem;
5
+ }
6
+
7
+ .grid{
8
+ display: grid;
9
+ gap: 1.5rem;
10
+ }
11
+
12
+ .section{
13
+ padding-block: 5rem 1rem;
14
+
15
+ &__title{
16
+ text-align: center;
17
+ font-size: var(--h1-font-size);
18
+ font-family: var(--second-font);
19
+ margin-bottom: 2rem;
20
+ }
21
+ }
22
+
23
+ .main{
24
+ overflow: hidden; /* For animation ScrollReveal */
25
+ }
assets/scss/styles.scss ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import 'config/variables';
2
+ @import 'base/base';
3
+ @import 'theme/theme';
4
+ @import 'layout/layout';
5
+ @import 'components/header';
6
+ @import 'components/search';
7
+ @import 'components/login';
8
+ @import 'components/home';
9
+ @import 'components/button';
10
+ @import 'components/services';
11
+ @import 'components/featured';
12
+ @import 'components/discount';
13
+ @import 'components/new';
14
+ @import 'components/join';
15
+ @import 'components/testimonial';
16
+ @import 'components/footer';
17
+ @import 'components/scroll';
18
+ @import 'components/breakpoints';
assets/scss/theme/_theme.scss ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*=============== THEME ===============*/
2
+
3
+ /*========== Variables Dark theme ==========*/
4
+ body.dark-theme{
5
+ --title-color: hsl(230, 48%, 85%);
6
+ --text-color: hsl(230, 16%, 70%);
7
+ --border-color: hsl(230, 12%, 18%);
8
+ --body-color: hsl(230, 12%, 8%);
9
+ --container-color: hsl(230, 12%, 12%);
10
+ }
11
+
12
+ /*==========
13
+ Color changes in some parts of
14
+ the website, in dark theme
15
+ ==========*/
16
+ .dark-theme .shadow-header{
17
+ box-shadow: 0 2px 16px hsla(0, 0%, 0%, .4);
18
+ }
19
+
20
+ .dark-theme .nav__menu{
21
+ box-shadow: 0 -8px 32px hsla(0, 0%, 0%, .4);
22
+ }
23
+
24
+ .dark-theme .scrollup{
25
+ box-shadow: 0 2px 8px hsla(0, 0%, 0%, .4);
26
+ }
27
+
28
+ .dark-theme .search,
29
+ .dark-theme .login{
30
+ background-color: hsla(230, 12, 8, .6);
31
+ }
32
+
33
+ .dark-theme::-webkit-scrollbar{
34
+ background-color: hsl(230, 16%, 15%);
35
+
36
+ &-thumb{
37
+ background-color: hsl(230, 16%, 25%);
38
+
39
+ &:hover{
40
+ background-color: hsl(230, 16%, 35%);
41
+ }
42
+ }
43
+ }
index.html CHANGED
@@ -1,19 +1,1890 @@
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="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+
7
+ <!--=============== FAVICON ===============-->
8
+ <link
9
+ rel="shortcut icon"
10
+ href="assets/img/favicon.png"
11
+ type="image/x-icon"
12
+ />
13
+
14
+ <!--=============== REMIXICONS ===============-->
15
+ <link
16
+ rel="stylesheet"
17
+ href="https://cdnjs.cloudflare.com/ajax/libs/remixicon/3.5.0/remixicon.css"
18
+ />
19
+
20
+ <!--=============== SWIPER CSS ===============-->
21
+ <link rel="stylesheet" href="assets/css/swiper-bundle.min.css" />
22
+
23
+ <!--=============== CSS ===============-->
24
+ <link rel="stylesheet" href="assets/css/styles.css" />
25
+
26
+ <title>ThuLieu Cosmetics Store</title>
27
+ </head>
28
+ <body>
29
+ <!--==================== HEADER ====================-->
30
+ <header class="header" id="header">
31
+ <nav class="nav container">
32
+ <a href="#" class="nav__logo">
33
+ <i class="ri-store-2-line"></i> ThuLieu Store
34
+ </a>
35
+
36
+ <div class="nav__menu">
37
+ <ul class="nav__list">
38
+ <li class="nav__item">
39
+ <a href="#home" class="nav__link active-link">
40
+ <i class="ri-home-line"></i>
41
+ <span>Trang chủ</span>
42
+ </a>
43
+ </li>
44
+
45
+ <li class="nav__item">
46
+ <a href="#featured" class="nav__link">
47
+ <i class="ri-fire-line"></i>
48
+ <span>Bán chạy</span>
49
+ </a>
50
+ </li>
51
+
52
+ <li class="nav__item">
53
+ <a href="#discount" class="nav__link">
54
+ <i class="ri-price-tag-3-line"></i>
55
+ <span>Khuyến mãi</span>
56
+ </a>
57
+ </li>
58
+
59
+ <li class="nav__item">
60
+ <a href="#new" class="nav__link">
61
+ <i class="ri-bookmark-line"></i>
62
+ <span>Hàng mới</span>
63
+ </a>
64
+ </li>
65
+
66
+ <li class="nav__item">
67
+ <a href="#testimonial" class="nav__link">
68
+ <i class="ri-message-3-line"></i>
69
+ <span>Đánh giá</span>
70
+ </a>
71
+ </li>
72
+ </ul>
73
+ </div>
74
+
75
+ <div class="nav__actions">
76
+ <!-- Search button -->
77
+ <i class="ri-search-line search-button" id="search-button"></i>
78
+
79
+ <!-- Login button -->
80
+ <i class="ri-user-line login-button" id="login-button"></i>
81
+
82
+ <!-- Shopping bag button -->
83
+ <i class="ri-shopping-bag-line bag-button" id="bag-button"></i>
84
+
85
+ <!-- Theme button -->
86
+ <i class="ri-moon-line change-theme" id="theme-button"></i>
87
+ </div>
88
+ </nav>
89
+ </header>
90
+
91
+ <!--==================== SEARCH ====================-->
92
+ <div class="search" id="search-content">
93
+ <form action="" class="search__form">
94
+ <i class="ri-search-line search__icon"></i>
95
+ <input
96
+ type="search"
97
+ placeholder="Nhập tên sản phẩm bạn muốn tìm..."
98
+ class="search__input"
99
+ />
100
+ </form>
101
+
102
+ <i class="ri-close-line search__close" id="search-close"></i>
103
+ </div>
104
+
105
+ <!--=============== SHOPPING BAG ===============-->
106
+ <div class="bag grid" id="bag-content">
107
+ <form action="" class="bag__form grid">
108
+ <h3 class="bag__title">Giỏ hàng của bạn</h3>
109
+
110
+ <div class="bag__group grid">
111
+ <div id="cartItemsContainer"></div>
112
+ <div id="totalAmountContainer"></div>
113
+ <button type="button" class="bag__button button" id="clearCart">
114
+ Reset giỏ hàng
115
+ </button>
116
+ <div>
117
+ <h3>Thông tin người nhận</h3>
118
+ <h4>Ngân hàng thụ hưởng: MBBank</h4>
119
+ <h4>Người thụ hưởng: DO THU LIEU</h4>
120
+ <h4>Tài khoản thụ hưởng: 0947.066.385</h4>
121
+ <h4>Nội dung: nguoimuahang_sanpham_ngaymuahang</h4>
122
+ </div>
123
+ <div class="bag__qr">
124
+ <img src="./assets/img/QR.png" alt="QR" />
125
+ </div>
126
+
127
+ <button type="submit" class="bag__button button" id="checkOut">
128
+ Thanh toán
129
+ </button>
130
+ </div>
131
+ </form>
132
+
133
+ <i class="ri-close-line bag__close" id="bag-close"></i>
134
+ </div>
135
+
136
+ <!--==================== LOGIN ====================-->
137
+ <div class="login grid" id="login-content">
138
+ <form action="" class="login__form grid">
139
+ <h3 class="login__title">Đăng nhập</h3>
140
+
141
+ <div class="login__group grid">
142
+ <div>
143
+ <label for="login-email" class="login__label">Email</label>
144
+ <input
145
+ type="email"
146
+ placeholder="Email của bạn"
147
+ id="login-email"
148
+ class="login__input"
149
+ />
150
+ </div>
151
+
152
+ <div>
153
+ <label for="login-pass" class="login__label">Mật khẩu</label>
154
+ <input
155
+ type="password"
156
+ placeholder="Mật khẩu của bạn"
157
+ id="login-pass"
158
+ class="login__input"
159
+ />
160
+ </div>
161
+ </div>
162
+
163
+ <div>
164
+ <span class="login__signup">
165
+ Bạn chưa có tài khoản? <a href="#">Đăng ký ngay</a>
166
+ </span>
167
+
168
+ <a href="#" class="login__forgot"> Quên mật khẩu </a>
169
+
170
+ <button type="submit" class="login__button button">Đăng nhập</button>
171
+ </div>
172
+ </form>
173
+
174
+ <i class="ri-close-line login__close" id="login-close"></i>
175
+ </div>
176
+
177
+ <!--==================== MAIN ====================-->
178
+ <main class="main">
179
+ <!--==================== HOME ====================-->
180
+ <section class="home section" id="home">
181
+ <div class="home__container container grid">
182
+ <div class="home__data">
183
+ <h1 class="home__title">
184
+ Tỏa sáng <br />
185
+ vẻ đẹp tự nhiên
186
+ </h1>
187
+
188
+ <p class="home__description">
189
+ Khám phá vẻ đẹp tự nhiên của bạn với bộ sưu tập mỹ phẩm đa dạng,
190
+ từ các thương hiệu uy tín hàng đầu, cùng với những ưu đãi đặc biệt
191
+ và trải nghiệm mua sắm tuyệt vời.
192
+ </p>
193
+
194
+ <a href="#" class="button">Khám phá ngay</a>
195
+ </div>
196
+
197
+ <div class="home__images">
198
+ <div class="home__swiper swiper">
199
+ <div class="swiper-wrapper">
200
+ <article class="home__article swiper-slide">
201
+ <img
202
+ src="assets/img/home-book-1.png"
203
+ alt="image"
204
+ class="home__img"
205
+ />
206
+ </article>
207
+
208
+ <article class="home__article swiper-slide">
209
+ <img
210
+ src="assets/img/home-book-2.png"
211
+ alt="image"
212
+ class="home__img"
213
+ />
214
+ </article>
215
+
216
+ <article class="home__article swiper-slide">
217
+ <img
218
+ src="assets/img/home-book-3.png"
219
+ alt="image"
220
+ class="home__img"
221
+ />
222
+ </article>
223
+
224
+ <article class="home__article swiper-slide">
225
+ <img
226
+ src="assets/img/home-book-4.png"
227
+ alt="image"
228
+ class="home__img"
229
+ />
230
+ </article>
231
+
232
+ <article class="home__article swiper-slide">
233
+ <img
234
+ src="assets/img/home-book-5.png"
235
+ alt="image"
236
+ class="home__img"
237
+ />
238
+ </article>
239
+
240
+ <article class="home__article swiper-slide">
241
+ <img
242
+ src="assets/img/home-book-6.png"
243
+ alt="image"
244
+ class="home__img"
245
+ />
246
+ </article>
247
+
248
+ <article class="home__article swiper-slide">
249
+ <img
250
+ src="assets/img/home-book-7.png"
251
+ alt="image"
252
+ class="home__img"
253
+ />
254
+ </article>
255
+ </div>
256
+ </div>
257
+ </div>
258
+ </div>
259
+ </section>
260
+
261
+ <!--==================== SERVICES ====================-->
262
+ <section class="services section">
263
+ <div class="services__container container grid">
264
+ <article class="services__card">
265
+ <i class="ri-truck-line"></i>
266
+ <h3 class="services__title">Miễn phí vận chuyển</h3>
267
+ <p class="services__description">Cho đơn hàng trên 500.000 ₫</p>
268
+ </article>
269
+
270
+ <article class="services__card">
271
+ <i class="ri-verified-badge-line"></i>
272
+ <h3 class="services__title">Sản phẩm chất lượng</h3>
273
+ <p class="services__description">Sản phẩm chính hãng 100%</p>
274
+ </article>
275
+
276
+ <article class="services__card">
277
+ <i class="ri-customer-service-2-line"></i>
278
+ <h3 class="services__title">Hỗ trợ 24/7</h3>
279
+ <p class="services__description">Chăm sóc khách hàng 24/7</p>
280
+ </article>
281
+ </div>
282
+ </section>
283
+
284
+ <!--==================== FEATURED ====================-->
285
+ <section class="featured section" id="featured">
286
+ <h2 class="section__title">Sản phẩm bán chạy</h2>
287
+
288
+ <div class="featured__container container">
289
+ <div class="featured__swiper swiper">
290
+ <div class="swiper-wrapper">
291
+ <article class="featured__card swiper-slide">
292
+ <img
293
+ src="assets/img/home-book-1.png"
294
+ alt="image"
295
+ class="featured__img"
296
+ />
297
+
298
+ <h2 class="featured__title">Sản phẩm X</h2>
299
+ <div class="featured__prices">
300
+ <span class="featured__discount" data-price="999999"
301
+ >999.999 ₫</span
302
+ >
303
+ <span class="featured__price">1.111.111 ₫</span>
304
+ </div>
305
+
306
+ <button class="button">Thêm vào giỏ hàng</button>
307
+
308
+ <div class="featured__actions">
309
+ <!-- <button><i class="ri-search-line"></i></button> -->
310
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
311
+ <button>
312
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
313
+ </button>
314
+ </div>
315
+ </article>
316
+
317
+ <article class="featured__card swiper-slide">
318
+ <img
319
+ src="assets/img/home-book-1.png"
320
+ alt="image"
321
+ class="featured__img"
322
+ />
323
+
324
+ <h2 class="featured__title">Sản phẩm X</h2>
325
+ <div class="featured__prices">
326
+ <span class="featured__discount" data-price="999999"
327
+ >999.999 ₫</span
328
+ >
329
+ <span class="featured__price">1.111.111 ₫</span>
330
+ </div>
331
+
332
+ <button class="button">Thêm vào giỏ hàng</button>
333
+
334
+ <div class="featured__actions">
335
+ <!-- <button><i class="ri-search-line"></i></button> -->
336
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
337
+ <button>
338
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
339
+ </button>
340
+ </div>
341
+ </article>
342
+
343
+ <article class="featured__card swiper-slide">
344
+ <img
345
+ src="assets/img/home-book-1.png"
346
+ alt="image"
347
+ class="featured__img"
348
+ />
349
+
350
+ <h2 class="featured__title">Sản phẩm X</h2>
351
+ <div class="featured__prices">
352
+ <span class="featured__discount" data-price="999999"
353
+ >999.999 ₫</span
354
+ >
355
+ <span class="featured__price">1.111.111 ₫</span>
356
+ </div>
357
+
358
+ <button class="button">Thêm vào giỏ hàng</button>
359
+
360
+ <div class="featured__actions">
361
+ <!-- <button><i class="ri-search-line"></i></button> -->
362
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
363
+ <button>
364
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
365
+ </button>
366
+ </div>
367
+ </article>
368
+
369
+ <article class="featured__card swiper-slide">
370
+ <img
371
+ src="assets/img/home-book-1.png"
372
+ alt="image"
373
+ class="featured__img"
374
+ />
375
+
376
+ <h2 class="featured__title">Sản phẩm X</h2>
377
+ <div class="featured__prices">
378
+ <span class="featured__discount" data-price="999999"
379
+ >999.999 ₫</span
380
+ >
381
+ <span class="featured__price">1.111.111 ₫</span>
382
+ </div>
383
+
384
+ <button class="button">Thêm vào giỏ hàng</button>
385
+
386
+ <div class="featured__actions">
387
+ <!-- <button><i class="ri-search-line"></i></button> -->
388
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
389
+ <button>
390
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
391
+ </button>
392
+ </div>
393
+ </article>
394
+
395
+ <article class="featured__card swiper-slide">
396
+ <img
397
+ src="assets/img/home-book-1.png"
398
+ alt="image"
399
+ class="featured__img"
400
+ />
401
+
402
+ <h2 class="featured__title">Sản phẩm X</h2>
403
+ <div class="featured__prices">
404
+ <span class="featured__discount" data-price="999999"
405
+ >999.999 ₫</span
406
+ >
407
+ <span class="featured__price">1.111.111 ₫</span>
408
+ </div>
409
+
410
+ <button class="button">Thêm vào giỏ hàng</button>
411
+
412
+ <div class="featured__actions">
413
+ <!-- <button><i class="ri-search-line"></i></button> -->
414
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
415
+ <button>
416
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
417
+ </button>
418
+ </div>
419
+ </article>
420
+
421
+ <article class="featured__card swiper-slide">
422
+ <img
423
+ src="assets/img/home-book-1.png"
424
+ alt="image"
425
+ class="featured__img"
426
+ />
427
+
428
+ <h2 class="featured__title">Sản phẩm X</h2>
429
+ <div class="featured__prices">
430
+ <span class="featured__discount" data-price="999999"
431
+ >999.999 ₫</span
432
+ >
433
+ <span class="featured__price">1.111.111 ₫</span>
434
+ </div>
435
+
436
+ <button class="button">Thêm vào giỏ hàng</button>
437
+
438
+ <div class="featured__actions">
439
+ <!-- <button><i class="ri-search-line"></i></button> -->
440
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
441
+ <button>
442
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
443
+ </button>
444
+ </div>
445
+ </article>
446
+
447
+ <article class="featured__card swiper-slide">
448
+ <img
449
+ src="assets/img/home-book-1.png"
450
+ alt="image"
451
+ class="featured__img"
452
+ />
453
+
454
+ <h2 class="featured__title">Sản phẩm X</h2>
455
+ <div class="featured__prices">
456
+ <span class="featured__discount" data-price="999999"
457
+ >999.999 ₫</span
458
+ >
459
+ <span class="featured__price">1.111.111 ₫</span>
460
+ </div>
461
+
462
+ <button class="button">Thêm vào giỏ hàng</button>
463
+
464
+ <div class="featured__actions">
465
+ <!-- <button><i class="ri-search-line"></i></button> -->
466
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
467
+ <button>
468
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
469
+ </button>
470
+ </div>
471
+ </article>
472
+
473
+ <article class="featured__card swiper-slide">
474
+ <img
475
+ src="assets/img/home-book-1.png"
476
+ alt="image"
477
+ class="featured__img"
478
+ />
479
+
480
+ <h2 class="featured__title">Sản phẩm X</h2>
481
+ <div class="featured__prices">
482
+ <span class="featured__discount" data-price="999999"
483
+ >999.999 ₫</span
484
+ >
485
+ <span class="featured__price">1.111.111 ₫</span>
486
+ </div>
487
+
488
+ <button class="button">Thêm vào giỏ hàng</button>
489
+
490
+ <div class="featured__actions">
491
+ <!-- <button><i class="ri-search-line"></i></button> -->
492
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
493
+ <button>
494
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
495
+ </button>
496
+ </div>
497
+ </article>
498
+
499
+ <article class="featured__card swiper-slide">
500
+ <img
501
+ src="assets/img/home-book-1.png"
502
+ alt="image"
503
+ class="featured__img"
504
+ />
505
+
506
+ <h2 class="featured__title">Sản phẩm X</h2>
507
+ <div class="featured__prices">
508
+ <span class="featured__discount" data-price="999999"
509
+ >999.999 ₫</span
510
+ >
511
+ <span class="featured__price">1.111.111 ₫</span>
512
+ </div>
513
+
514
+ <button class="button">Thêm vào giỏ hàng</button>
515
+
516
+ <div class="featured__actions">
517
+ <!-- <button><i class="ri-search-line"></i></button> -->
518
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
519
+ <button>
520
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
521
+ </button>
522
+ </div>
523
+ </article>
524
+
525
+ <article class="featured__card swiper-slide">
526
+ <img
527
+ src="assets/img/home-book-1.png"
528
+ alt="image"
529
+ class="featured__img"
530
+ />
531
+
532
+ <h2 class="featured__title">Sản phẩm X</h2>
533
+ <div class="featured__prices">
534
+ <span class="featured__discount" data-price="999999"
535
+ >999.999 ₫</span
536
+ >
537
+ <span class="featured__price">1.111.111 ₫</span>
538
+ </div>
539
+
540
+ <button class="button">Thêm vào giỏ hàng</button>
541
+
542
+ <div class="featured__actions">
543
+ <!-- <button><i class="ri-search-line"></i></button> -->
544
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
545
+ <button>
546
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
547
+ </button>
548
+ </div>
549
+ </article>
550
+ </div>
551
+
552
+ <div class="swiper-button-prev">
553
+ <i class="ri-arrow-left-s-line"></i>
554
+ </div>
555
+
556
+ <div class="swiper-button-next">
557
+ <i class="ri-arrow-right-s-line"></i>
558
+ </div>
559
+ </div>
560
+ </div>
561
+
562
+ <div class="featured__container container">
563
+ <div class="featured__swiper swiper">
564
+ <div class="swiper-wrapper">
565
+ <article class="featured__card swiper-slide">
566
+ <img
567
+ src="assets/img/home-book-4.png"
568
+ alt="image"
569
+ class="featured__img"
570
+ />
571
+
572
+ <h2 class="featured__title">Sản phẩm X</h2>
573
+ <div class="featured__prices">
574
+ <span class="featured__discount" data-price="999999"
575
+ >999.999 ₫</span
576
+ >
577
+ <span class="featured__price">1.111.111 ₫</span>
578
+ </div>
579
+
580
+ <button class="button">Thêm vào giỏ hàng</button>
581
+
582
+ <div class="featured__actions">
583
+ <!-- <button><i class="ri-search-line"></i></button> -->
584
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
585
+ <button>
586
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
587
+ </button>
588
+ </div>
589
+ </article>
590
+
591
+ <article class="featured__card swiper-slide">
592
+ <img
593
+ src="assets/img/home-book-4.png"
594
+ alt="image"
595
+ class="featured__img"
596
+ />
597
+
598
+ <h2 class="featured__title">Sản phẩm X</h2>
599
+ <div class="featured__prices">
600
+ <span class="featured__discount" data-price="999999"
601
+ >999.999 ₫</span
602
+ >
603
+ <span class="featured__price">1.111.111 ₫</span>
604
+ </div>
605
+
606
+ <button class="button">Thêm vào giỏ hàng</button>
607
+
608
+ <div class="featured__actions">
609
+ <!-- <button><i class="ri-search-line"></i></button> -->
610
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
611
+ <button>
612
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
613
+ </button>
614
+ </div>
615
+ </article>
616
+
617
+ <article class="featured__card swiper-slide">
618
+ <img
619
+ src="assets/img/home-book-4.png"
620
+ alt="image"
621
+ class="featured__img"
622
+ />
623
+
624
+ <h2 class="featured__title">Sản phẩm X</h2>
625
+ <div class="featured__prices">
626
+ <span class="featured__discount" data-price="999999"
627
+ >999.999 ₫</span
628
+ >
629
+ <span class="featured__price">1.111.111 ₫</span>
630
+ </div>
631
+
632
+ <button class="button">Thêm vào giỏ hàng</button>
633
+
634
+ <div class="featured__actions">
635
+ <!-- <button><i class="ri-search-line"></i></button> -->
636
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
637
+ <button>
638
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
639
+ </button>
640
+ </div>
641
+ </article>
642
+
643
+ <article class="featured__card swiper-slide">
644
+ <img
645
+ src="assets/img/home-book-4.png"
646
+ alt="image"
647
+ class="featured__img"
648
+ />
649
+
650
+ <h2 class="featured__title">Sản phẩm X</h2>
651
+ <div class="featured__prices">
652
+ <span class="featured__discount" data-price="999999"
653
+ >999.999 ₫</span
654
+ >
655
+ <span class="featured__price">1.111.111 ₫</span>
656
+ </div>
657
+
658
+ <button class="button">Thêm vào giỏ hàng</button>
659
+
660
+ <div class="featured__actions">
661
+ <!-- <button><i class="ri-search-line"></i></button> -->
662
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
663
+ <button>
664
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
665
+ </button>
666
+ </div>
667
+ </article>
668
+
669
+ <article class="featured__card swiper-slide">
670
+ <img
671
+ src="assets/img/home-book-4.png"
672
+ alt="image"
673
+ class="featured__img"
674
+ />
675
+
676
+ <h2 class="featured__title">Sản phẩm X</h2>
677
+ <div class="featured__prices">
678
+ <span class="featured__discount" data-price="999999"
679
+ >999.999 ₫</span
680
+ >
681
+ <span class="featured__price">1.111.111 ₫</span>
682
+ </div>
683
+
684
+ <button class="button">Thêm vào giỏ hàng</button>
685
+
686
+ <div class="featured__actions">
687
+ <!-- <button><i class="ri-search-line"></i></button> -->
688
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
689
+ <button>
690
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
691
+ </button>
692
+ </div>
693
+ </article>
694
+
695
+ <article class="featured__card swiper-slide">
696
+ <img
697
+ src="assets/img/home-book-4.png"
698
+ alt="image"
699
+ class="featured__img"
700
+ />
701
+
702
+ <h2 class="featured__title">Sản phẩm X</h2>
703
+ <div class="featured__prices">
704
+ <span class="featured__discount" data-price="999999"
705
+ >999.999 ₫</span
706
+ >
707
+ <span class="featured__price">1.111.111 ₫</span>
708
+ </div>
709
+
710
+ <button class="button">Thêm vào giỏ hàng</button>
711
+
712
+ <div class="featured__actions">
713
+ <!-- <button><i class="ri-search-line"></i></button> -->
714
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
715
+ <button>
716
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
717
+ </button>
718
+ </div>
719
+ </article>
720
+
721
+ <article class="featured__card swiper-slide">
722
+ <img
723
+ src="assets/img/home-book-4.png"
724
+ alt="image"
725
+ class="featured__img"
726
+ />
727
+
728
+ <h2 class="featured__title">Sản phẩm X</h2>
729
+ <div class="featured__prices">
730
+ <span class="featured__discount" data-price="999999"
731
+ >999.999 ₫</span
732
+ >
733
+ <span class="featured__price">1.111.111 ₫</span>
734
+ </div>
735
+
736
+ <button class="button">Thêm vào giỏ hàng</button>
737
+
738
+ <div class="featured__actions">
739
+ <!-- <button><i class="ri-search-line"></i></button> -->
740
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
741
+ <button>
742
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
743
+ </button>
744
+ </div>
745
+ </article>
746
+
747
+ <article class="featured__card swiper-slide">
748
+ <img
749
+ src="assets/img/home-book-4.png"
750
+ alt="image"
751
+ class="featured__img"
752
+ />
753
+
754
+ <h2 class="featured__title">Sản phẩm X</h2>
755
+ <div class="featured__prices">
756
+ <span class="featured__discount" data-price="999999"
757
+ >999.999 ₫</span
758
+ >
759
+ <span class="featured__price">1.111.111 ₫</span>
760
+ </div>
761
+
762
+ <button class="button">Thêm vào giỏ hàng</button>
763
+
764
+ <div class="featured__actions">
765
+ <!-- <button><i class="ri-search-line"></i></button> -->
766
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
767
+ <button>
768
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
769
+ </button>
770
+ </div>
771
+ </article>
772
+
773
+ <article class="featured__card swiper-slide">
774
+ <img
775
+ src="assets/img/home-book-4.png"
776
+ alt="image"
777
+ class="featured__img"
778
+ />
779
+
780
+ <h2 class="featured__title">Sản phẩm X</h2>
781
+ <div class="featured__prices">
782
+ <span class="featured__discount" data-price="999999"
783
+ >999.999 ₫</span
784
+ >
785
+ <span class="featured__price">1.111.111 ₫</span>
786
+ </div>
787
+
788
+ <button class="button">Thêm vào giỏ hàng</button>
789
+
790
+ <div class="featured__actions">
791
+ <!-- <button><i class="ri-search-line"></i></button> -->
792
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
793
+ <button>
794
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
795
+ </button>
796
+ </div>
797
+ </article>
798
+
799
+ <article class="featured__card swiper-slide">
800
+ <img
801
+ src="assets/img/home-book-4.png"
802
+ alt="image"
803
+ class="featured__img"
804
+ />
805
+
806
+ <h2 class="featured__title">Sản phẩm X</h2>
807
+ <div class="featured__prices">
808
+ <span class="featured__discount" data-price="999999"
809
+ >999.999 ₫</span
810
+ >
811
+ <span class="featured__price">1.111.111 ₫</span>
812
+ </div>
813
+
814
+ <button class="button">Thêm vào giỏ hàng</button>
815
+
816
+ <div class="featured__actions">
817
+ <!-- <button><i class="ri-search-line"></i></button> -->
818
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
819
+ <button>
820
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
821
+ </button>
822
+ </div>
823
+ </article>
824
+ </div>
825
+
826
+ <div class="swiper-button-prev">
827
+ <i class="ri-arrow-left-s-line"></i>
828
+ </div>
829
+
830
+ <div class="swiper-button-next">
831
+ <i class="ri-arrow-right-s-line"></i>
832
+ </div>
833
+ </div>
834
+ </div>
835
+
836
+ <div class="featured__container container">
837
+ <div class="featured__swiper swiper">
838
+ <div class="swiper-wrapper">
839
+ <article class="featured__card swiper-slide">
840
+ <img
841
+ src="assets/img/home-book-6.png"
842
+ alt="image"
843
+ class="featured__img"
844
+ />
845
+
846
+ <h2 class="featured__title">Sản phẩm X</h2>
847
+ <div class="featured__prices">
848
+ <span class="featured__discount" data-price="999999"
849
+ >999.999 ₫</span
850
+ >
851
+ <span class="featured__price">1.111.111 ₫</span>
852
+ </div>
853
+
854
+ <button class="button">Thêm vào giỏ hàng</button>
855
+
856
+ <div class="featured__actions">
857
+ <!-- <button><i class="ri-search-line"></i></button> -->
858
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
859
+ <button>
860
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
861
+ </button>
862
+ </div>
863
+ </article>
864
+
865
+ <article class="featured__card swiper-slide">
866
+ <img
867
+ src="assets/img/home-book-6.png"
868
+ alt="image"
869
+ class="featured__img"
870
+ />
871
+
872
+ <h2 class="featured__title">Sản phẩm X</h2>
873
+ <div class="featured__prices">
874
+ <span class="featured__discount" data-price="999999"
875
+ >999.999 ₫</span
876
+ >
877
+ <span class="featured__price">1.111.111 ₫</span>
878
+ </div>
879
+
880
+ <button class="button">Thêm vào giỏ hàng</button>
881
+
882
+ <div class="featured__actions">
883
+ <!-- <button><i class="ri-search-line"></i></button> -->
884
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
885
+ <button>
886
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
887
+ </button>
888
+ </div>
889
+ </article>
890
+
891
+ <article class="featured__card swiper-slide">
892
+ <img
893
+ src="assets/img/home-book-6.png"
894
+ alt="image"
895
+ class="featured__img"
896
+ />
897
+
898
+ <h2 class="featured__title">Sản phẩm X</h2>
899
+ <div class="featured__prices">
900
+ <span class="featured__discount" data-price="999999"
901
+ >999.999 ₫</span
902
+ >
903
+ <span class="featured__price">1.111.111 ₫</span>
904
+ </div>
905
+
906
+ <button class="button">Thêm vào giỏ hàng</button>
907
+
908
+ <div class="featured__actions">
909
+ <!-- <button><i class="ri-search-line"></i></button> -->
910
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
911
+ <button>
912
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
913
+ </button>
914
+ </div>
915
+ </article>
916
+
917
+ <article class="featured__card swiper-slide">
918
+ <img
919
+ src="assets/img/home-book-6.png"
920
+ alt="image"
921
+ class="featured__img"
922
+ />
923
+
924
+ <h2 class="featured__title">Sản phẩm X</h2>
925
+ <div class="featured__prices">
926
+ <span class="featured__discount" data-price="999999"
927
+ >999.999 ₫</span
928
+ >
929
+ <span class="featured__price">1.111.111 ₫</span>
930
+ </div>
931
+
932
+ <button class="button">Thêm vào giỏ hàng</button>
933
+
934
+ <div class="featured__actions">
935
+ <!-- <button><i class="ri-search-line"></i></button> -->
936
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
937
+ <button>
938
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
939
+ </button>
940
+ </div>
941
+ </article>
942
+
943
+ <article class="featured__card swiper-slide">
944
+ <img
945
+ src="assets/img/home-book-6.png"
946
+ alt="image"
947
+ class="featured__img"
948
+ />
949
+
950
+ <h2 class="featured__title">Sản phẩm X</h2>
951
+ <div class="featured__prices">
952
+ <span class="featured__discount" data-price="999999"
953
+ >999.999 ₫</span
954
+ >
955
+ <span class="featured__price">1.111.111 ₫</span>
956
+ </div>
957
+
958
+ <button class="button">Thêm vào giỏ hàng</button>
959
+
960
+ <div class="featured__actions">
961
+ <!-- <button><i class="ri-search-line"></i></button> -->
962
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
963
+ <button>
964
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
965
+ </button>
966
+ </div>
967
+ </article>
968
+
969
+ <article class="featured__card swiper-slide">
970
+ <img
971
+ src="assets/img/home-book-6.png"
972
+ alt="image"
973
+ class="featured__img"
974
+ />
975
+
976
+ <h2 class="featured__title">Sản phẩm X</h2>
977
+ <div class="featured__prices">
978
+ <span class="featured__discount" data-price="999999"
979
+ >999.999 ₫</span
980
+ >
981
+ <span class="featured__price">1.111.111 ₫</span>
982
+ </div>
983
+
984
+ <button class="button">Thêm vào giỏ hàng</button>
985
+
986
+ <div class="featured__actions">
987
+ <!-- <button><i class="ri-search-line"></i></button> -->
988
+ <!-- <button><i class="ri-heart-3-line"></i></button> -->
989
+ <button>
990
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
991
+ </button>
992
+ </div>
993
+ </article>
994
+
995
+ <article class="featured__card swiper-slide">
996
+ <img
997
+ src="assets/img/home-book-6.png"
998
+ alt="image"
999
+ class="featured__img"
1000
+ />
1001
+
1002
+ <h2 class="featured__title">Sản phẩm X</h2>
1003
+ <div class="featured__prices">
1004
+ <span class="featured__discount" data-price="999999"
1005
+ >999.999 ₫</span
1006
+ >
1007
+ <span class="featured__price">1.111.111 ₫</span>
1008
+ </div>
1009
+
1010
+ <button class="button">Thêm vào giỏ hàng</button>
1011
+
1012
+ <div class="featured__actions">
1013
+ <button><i class="ri-search-line"></i></button>
1014
+ <button><i class="ri-heart-3-line"></i></button>
1015
+ <button>
1016
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
1017
+ </button>
1018
+ </div>
1019
+ </article>
1020
+
1021
+ <article class="featured__card swiper-slide">
1022
+ <img
1023
+ src="assets/img/home-book-6.png"
1024
+ alt="image"
1025
+ class="featured__img"
1026
+ />
1027
+
1028
+ <h2 class="featured__title">Sản phẩm X</h2>
1029
+ <div class="featured__prices">
1030
+ <span class="featured__discount" data-price="999999"
1031
+ >999.999 ₫</span
1032
+ >
1033
+ <span class="featured__price">1.111.111 ₫</span>
1034
+ </div>
1035
+
1036
+ <button class="button">Thêm vào giỏ hàng</button>
1037
+
1038
+ <div class="featured__actions">
1039
+ <button><i class="ri-search-line"></i></button>
1040
+ <button><i class="ri-heart-3-line"></i></button>
1041
+ <button>
1042
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
1043
+ </button>
1044
+ </div>
1045
+ </article>
1046
+
1047
+ <article class="featured__card swiper-slide">
1048
+ <img
1049
+ src="assets/img/home-book-6.png"
1050
+ alt="image"
1051
+ class="featured__img"
1052
+ />
1053
+
1054
+ <h2 class="featured__title">Sản phẩm X</h2>
1055
+ <div class="featured__prices">
1056
+ <span class="featured__discount" data-price="999999"
1057
+ >999.999 ₫</span
1058
+ >
1059
+ <span class="featured__price">1.111.111 ₫</span>
1060
+ </div>
1061
+
1062
+ <button class="button">Thêm vào giỏ hàng</button>
1063
+
1064
+ <div class="featured__actions">
1065
+ <button><i class="ri-search-line"></i></button>
1066
+ <button><i class="ri-heart-3-line"></i></button>
1067
+ <button>
1068
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
1069
+ </button>
1070
+ </div>
1071
+ </article>
1072
+
1073
+ <article class="featured__card swiper-slide">
1074
+ <img
1075
+ src="assets/img/home-book-6.png"
1076
+ alt="image"
1077
+ class="featured__img"
1078
+ />
1079
+
1080
+ <h2 class="featured__title">Sản phẩm X</h2>
1081
+ <div class="featured__prices">
1082
+ <span class="featured__discount" data-price="999999"
1083
+ >999.999 ₫</span
1084
+ >
1085
+ <span class="featured__price">1.111.111 ₫</span>
1086
+ </div>
1087
+
1088
+ <button class="button">Thêm vào giỏ hàng</button>
1089
+
1090
+ <div class="featured__actions">
1091
+ <button><i class="ri-search-line"></i></button>
1092
+ <button><i class="ri-heart-3-line"></i></button>
1093
+ <button>
1094
+ <i class="ri-eye-line" onclick="openDetailPage()"></i>
1095
+ </button>
1096
+ </div>
1097
+ </article>
1098
+ </div>
1099
+
1100
+ <div class="swiper-button-prev">
1101
+ <i class="ri-arrow-left-s-line"></i>
1102
+ </div>
1103
+
1104
+ <div class="swiper-button-next">
1105
+ <i class="ri-arrow-right-s-line"></i>
1106
+ </div>
1107
+ </div>
1108
+ </div>
1109
+ </section>
1110
+
1111
+ <!--==================== DISCOUNT ====================-->
1112
+ <section class="discount section" id="discount">
1113
+ <div class="discount__container container grid">
1114
+ <div class="discount__data">
1115
+ <h2 class="discount__title section__title">Giảm Giá Lên Đến 50%</h2>
1116
+
1117
+ <p class="discount__description">
1118
+ Đừng bỏ lỡ cơ hội sở hữu những sản phẩm mỹ phẩm yêu thích với mức
1119
+ giá ưu đãi tuyệt vời. Càng mua nhiều, càng tiết kiệm nhiều hơn.
1120
+ </p>
1121
+
1122
+ <a href="#" class="button">Mua ngay</a>
1123
+ </div>
1124
+
1125
+ <div class="discount__images">
1126
+ <img
1127
+ src="assets/img/home-book-3.png"
1128
+ alt=""
1129
+ class="discount__img-1"
1130
+ />
1131
+ <img
1132
+ src="assets/img/home-book-4.png"
1133
+ alt=""
1134
+ class="discount__img-2"
1135
+ />
1136
+ </div>
1137
+ </div>
1138
+ </section>
1139
+
1140
+ <!--==================== Mỹ Kphẩm mới về ====================-->
1141
+ <section class="new section" id="new">
1142
+ <h2 class="section__title">Hàng mới về</h2>
1143
+
1144
+ <div class="new__container container">
1145
+ <div class="new__swiper swiper">
1146
+ <div class="swiper-wrapper">
1147
+ <a href="#" class="new__card swiper-slide">
1148
+ <img
1149
+ src="assets/img/home-book-1.png"
1150
+ alt="image"
1151
+ class="new__img"
1152
+ />
1153
+
1154
+ <div>
1155
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1156
+ <div class="new__prices">
1157
+ <span class="new__discount">999.999</span>
1158
+ <span class="new__price">1.111.111</span>
1159
+ </div>
1160
+
1161
+ <div class="new__stars">
1162
+ <i class="ri-star-fill"></i>
1163
+ <i class="ri-star-fill"></i>
1164
+ <i class="ri-star-fill"></i>
1165
+ <i class="ri-star-fill"></i>
1166
+ <i class="ri-star-half-fill"></i>
1167
+ </div>
1168
+ </div>
1169
+ </a>
1170
+
1171
+ <a href="#" class="new__card swiper-slide">
1172
+ <img
1173
+ src="assets/img/home-book-2.png"
1174
+ alt="image"
1175
+ class="new__img"
1176
+ />
1177
+
1178
+ <div>
1179
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1180
+ <div class="new__prices">
1181
+ <span class="new__discount">999.999</span>
1182
+ <span class="new__price">1.111.111</span>
1183
+ </div>
1184
+
1185
+ <div class="new__stars">
1186
+ <i class="ri-star-fill"></i>
1187
+ <i class="ri-star-fill"></i>
1188
+ <i class="ri-star-fill"></i>
1189
+ <i class="ri-star-fill"></i>
1190
+ <i class="ri-star-half-fill"></i>
1191
+ </div>
1192
+ </div>
1193
+ </a>
1194
+
1195
+ <a href="#" class="new__card swiper-slide">
1196
+ <img
1197
+ src="assets/img/home-book-3.png"
1198
+ alt="image"
1199
+ class="new__img"
1200
+ />
1201
+
1202
+ <div>
1203
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1204
+ <div class="new__prices">
1205
+ <span class="new__discount">999.999</span>
1206
+ <span class="new__price">1.111.111</span>
1207
+ </div>
1208
+
1209
+ <div class="new__stars">
1210
+ <i class="ri-star-fill"></i>
1211
+ <i class="ri-star-fill"></i>
1212
+ <i class="ri-star-fill"></i>
1213
+ <i class="ri-star-fill"></i>
1214
+ <i class="ri-star-half-fill"></i>
1215
+ </div>
1216
+ </div>
1217
+ </a>
1218
+
1219
+ <a href="#" class="new__card swiper-slide">
1220
+ <img
1221
+ src="assets/img/home-book-4.png"
1222
+ alt="image"
1223
+ class="new__img"
1224
+ />
1225
+
1226
+ <div>
1227
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1228
+ <div class="new__prices">
1229
+ <span class="new__discount">999.999</span>
1230
+ <span class="new__price">1.111.111</span>
1231
+ </div>
1232
+
1233
+ <div class="new__stars">
1234
+ <i class="ri-star-fill"></i>
1235
+ <i class="ri-star-fill"></i>
1236
+ <i class="ri-star-fill"></i>
1237
+ <i class="ri-star-fill"></i>
1238
+ <i class="ri-star-half-fill"></i>
1239
+ </div>
1240
+ </div>
1241
+ </a>
1242
+
1243
+ <a href="#" class="new__card swiper-slide">
1244
+ <img
1245
+ src="assets/img/home-book-5.png"
1246
+ alt="image"
1247
+ class="new__img"
1248
+ />
1249
+
1250
+ <div>
1251
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1252
+ <div class="new__prices">
1253
+ <span class="new__discount">999.999</span>
1254
+ <span class="new__price">1.111.111</span>
1255
+ </div>
1256
+
1257
+ <div class="new__stars">
1258
+ <i class="ri-star-fill"></i>
1259
+ <i class="ri-star-fill"></i>
1260
+ <i class="ri-star-fill"></i>
1261
+ <i class="ri-star-fill"></i>
1262
+ <i class="ri-star-half-fill"></i>
1263
+ </div>
1264
+ </div>
1265
+ </a>
1266
+
1267
+ <a href="#" class="new__card swiper-slide">
1268
+ <img
1269
+ src="assets/img/home-book-6.png"
1270
+ alt="image"
1271
+ class="new__img"
1272
+ />
1273
+
1274
+ <div>
1275
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1276
+ <div class="new__prices">
1277
+ <span class="new__discount">999.999</span>
1278
+ <span class="new__price">1.111.111</span>
1279
+ </div>
1280
+
1281
+ <div class="new__stars">
1282
+ <i class="ri-star-fill"></i>
1283
+ <i class="ri-star-fill"></i>
1284
+ <i class="ri-star-fill"></i>
1285
+ <i class="ri-star-fill"></i>
1286
+ <i class="ri-star-half-fill"></i>
1287
+ </div>
1288
+ </div>
1289
+ </a>
1290
+
1291
+ <a href="#" class="new__card swiper-slide">
1292
+ <img
1293
+ src="assets/img/home-book-7.png"
1294
+ alt="image"
1295
+ class="new__img"
1296
+ />
1297
+
1298
+ <div>
1299
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1300
+ <div class="new__prices">
1301
+ <span class="new__discount">999.999</span>
1302
+ <span class="new__price">1.111.111</span>
1303
+ </div>
1304
+
1305
+ <div class="new__stars">
1306
+ <i class="ri-star-fill"></i>
1307
+ <i class="ri-star-fill"></i>
1308
+ <i class="ri-star-fill"></i>
1309
+ <i class="ri-star-fill"></i>
1310
+ <i class="ri-star-half-fill"></i>
1311
+ </div>
1312
+ </div>
1313
+ </a>
1314
+
1315
+ <a href="#" class="new__card swiper-slide">
1316
+ <img
1317
+ src="assets/img/home-book-1.png"
1318
+ alt="image"
1319
+ class="new__img"
1320
+ />
1321
+
1322
+ <div>
1323
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1324
+ <div class="new__prices">
1325
+ <span class="new__discount">999.999</span>
1326
+ <span class="new__price">1.111.111</span>
1327
+ </div>
1328
+
1329
+ <div class="new__stars">
1330
+ <i class="ri-star-fill"></i>
1331
+ <i class="ri-star-fill"></i>
1332
+ <i class="ri-star-fill"></i>
1333
+ <i class="ri-star-fill"></i>
1334
+ <i class="ri-star-half-fill"></i>
1335
+ </div>
1336
+ </div>
1337
+ </a>
1338
+
1339
+ <a href="#" class="new__card swiper-slide">
1340
+ <img
1341
+ src="assets/img/home-book-2.png"
1342
+ alt="image"
1343
+ class="new__img"
1344
+ />
1345
+
1346
+ <div>
1347
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1348
+ <div class="new__prices">
1349
+ <span class="new__discount">999.999</span>
1350
+ <span class="new__price">1.111.111</span>
1351
+ </div>
1352
+
1353
+ <div class="new__stars">
1354
+ <i class="ri-star-fill"></i>
1355
+ <i class="ri-star-fill"></i>
1356
+ <i class="ri-star-fill"></i>
1357
+ <i class="ri-star-fill"></i>
1358
+ <i class="ri-star-half-fill"></i>
1359
+ </div>
1360
+ </div>
1361
+ </a>
1362
+
1363
+ <a href="#" class="new__card swiper-slide">
1364
+ <img
1365
+ src="assets/img/home-book-3.png"
1366
+ alt="image"
1367
+ class="new__img"
1368
+ />
1369
+
1370
+ <div>
1371
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1372
+ <div class="new__prices">
1373
+ <span class="new__discount">999.999</span>
1374
+ <span class="new__price">1.111.111</span>
1375
+ </div>
1376
+
1377
+ <div class="new__stars">
1378
+ <i class="ri-star-fill"></i>
1379
+ <i class="ri-star-fill"></i>
1380
+ <i class="ri-star-fill"></i>
1381
+ <i class="ri-star-fill"></i>
1382
+ <i class="ri-star-half-fill"></i>
1383
+ </div>
1384
+ </div>
1385
+ </a>
1386
+ </div>
1387
+ </div>
1388
+
1389
+ <div class="new__swiper swiper">
1390
+ <div class="swiper-wrapper">
1391
+ <a href="#" class="new__card swiper-slide">
1392
+ <img
1393
+ src="assets/img/home-book-3.png"
1394
+ alt="image"
1395
+ class="new__img"
1396
+ />
1397
+
1398
+ <div>
1399
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1400
+ <div class="new__prices">
1401
+ <span class="new__discount">999.999</span>
1402
+ <span class="new__price">1.111.111</span>
1403
+ </div>
1404
+
1405
+ <div class="new__stars">
1406
+ <i class="ri-star-fill"></i>
1407
+ <i class="ri-star-fill"></i>
1408
+ <i class="ri-star-fill"></i>
1409
+ <i class="ri-star-fill"></i>
1410
+ <i class="ri-star-half-fill"></i>
1411
+ </div>
1412
+ </div>
1413
+ </a>
1414
+
1415
+ <a href="#" class="new__card swiper-slide">
1416
+ <img
1417
+ src="assets/img/home-book-2.png"
1418
+ alt="image"
1419
+ class="new__img"
1420
+ />
1421
+
1422
+ <div>
1423
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1424
+ <div class="new__prices">
1425
+ <span class="new__discount">999.999</span>
1426
+ <span class="new__price">1.111.111</span>
1427
+ </div>
1428
+
1429
+ <div class="new__stars">
1430
+ <i class="ri-star-fill"></i>
1431
+ <i class="ri-star-fill"></i>
1432
+ <i class="ri-star-fill"></i>
1433
+ <i class="ri-star-fill"></i>
1434
+ <i class="ri-star-half-fill"></i>
1435
+ </div>
1436
+ </div>
1437
+ </a>
1438
+
1439
+ <a href="#" class="new__card swiper-slide">
1440
+ <img
1441
+ src="assets/img/home-book-1.png"
1442
+ alt="image"
1443
+ class="new__img"
1444
+ />
1445
+
1446
+ <div>
1447
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1448
+ <div class="new__prices">
1449
+ <span class="new__discount">999.999</span>
1450
+ <span class="new__price">1.111.111</span>
1451
+ </div>
1452
+
1453
+ <div class="new__stars">
1454
+ <i class="ri-star-fill"></i>
1455
+ <i class="ri-star-fill"></i>
1456
+ <i class="ri-star-fill"></i>
1457
+ <i class="ri-star-fill"></i>
1458
+ <i class="ri-star-half-fill"></i>
1459
+ </div>
1460
+ </div>
1461
+ </a>
1462
+
1463
+ <a href="#" class="new__card swiper-slide">
1464
+ <img
1465
+ src="assets/img/home-book-7.png"
1466
+ alt="image"
1467
+ class="new__img"
1468
+ />
1469
+
1470
+ <div>
1471
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1472
+ <div class="new__prices">
1473
+ <span class="new__discount">999.999</span>
1474
+ <span class="new__price">1.111.111</span>
1475
+ </div>
1476
+
1477
+ <div class="new__stars">
1478
+ <i class="ri-star-fill"></i>
1479
+ <i class="ri-star-fill"></i>
1480
+ <i class="ri-star-fill"></i>
1481
+ <i class="ri-star-fill"></i>
1482
+ <i class="ri-star-half-fill"></i>
1483
+ </div>
1484
+ </div>
1485
+ </a>
1486
+
1487
+ <a href="#" class="new__card swiper-slide">
1488
+ <img
1489
+ src="assets/img/home-book-6.png"
1490
+ alt="image"
1491
+ class="new__img"
1492
+ />
1493
+
1494
+ <div>
1495
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1496
+ <div class="new__prices">
1497
+ <span class="new__discount">999.999</span>
1498
+ <span class="new__price">1.111.111</span>
1499
+ </div>
1500
+
1501
+ <div class="new__stars">
1502
+ <i class="ri-star-fill"></i>
1503
+ <i class="ri-star-fill"></i>
1504
+ <i class="ri-star-fill"></i>
1505
+ <i class="ri-star-fill"></i>
1506
+ <i class="ri-star-half-fill"></i>
1507
+ </div>
1508
+ </div>
1509
+ </a>
1510
+
1511
+ <a href="#" class="new__card swiper-slide">
1512
+ <img
1513
+ src="assets/img/home-book-5.png"
1514
+ alt="image"
1515
+ class="new__img"
1516
+ />
1517
+
1518
+ <div>
1519
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1520
+ <div class="new__prices">
1521
+ <span class="new__discount">999.999</span>
1522
+ <span class="new__price">1.111.111</span>
1523
+ </div>
1524
+
1525
+ <div class="new__stars">
1526
+ <i class="ri-star-fill"></i>
1527
+ <i class="ri-star-fill"></i>
1528
+ <i class="ri-star-fill"></i>
1529
+ <i class="ri-star-fill"></i>
1530
+ <i class="ri-star-half-fill"></i>
1531
+ </div>
1532
+ </div>
1533
+ </a>
1534
+
1535
+ <a href="#" class="new__card swiper-slide">
1536
+ <img
1537
+ src="assets/img/home-book-4.png"
1538
+ alt="image"
1539
+ class="new__img"
1540
+ />
1541
+
1542
+ <div>
1543
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1544
+ <div class="new__prices">
1545
+ <span class="new__discount">999.999</span>
1546
+ <span class="new__price">1.111.111</span>
1547
+ </div>
1548
+
1549
+ <div class="new__stars">
1550
+ <i class="ri-star-fill"></i>
1551
+ <i class="ri-star-fill"></i>
1552
+ <i class="ri-star-fill"></i>
1553
+ <i class="ri-star-fill"></i>
1554
+ <i class="ri-star-half-fill"></i>
1555
+ </div>
1556
+ </div>
1557
+ </a>
1558
+
1559
+ <a href="#" class="new__card swiper-slide">
1560
+ <img
1561
+ src="assets/img/home-book-3.png"
1562
+ alt="image"
1563
+ class="new__img"
1564
+ />
1565
+
1566
+ <div>
1567
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1568
+ <div class="new__prices">
1569
+ <span class="new__discount">999.999</span>
1570
+ <span class="new__price">1.111.111</span>
1571
+ </div>
1572
+
1573
+ <div class="new__stars">
1574
+ <i class="ri-star-fill"></i>
1575
+ <i class="ri-star-fill"></i>
1576
+ <i class="ri-star-fill"></i>
1577
+ <i class="ri-star-fill"></i>
1578
+ <i class="ri-star-half-fill"></i>
1579
+ </div>
1580
+ </div>
1581
+ </a>
1582
+
1583
+ <a href="#" class="new__card swiper-slide">
1584
+ <img
1585
+ src="assets/img/home-book-2.png"
1586
+ alt="image"
1587
+ class="new__img"
1588
+ />
1589
+
1590
+ <div>
1591
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1592
+ <div class="new__prices">
1593
+ <span class="new__discount">999.999</span>
1594
+ <span class="new__price">1.111.111</span>
1595
+ </div>
1596
+
1597
+ <div class="new__stars">
1598
+ <i class="ri-star-fill"></i>
1599
+ <i class="ri-star-fill"></i>
1600
+ <i class="ri-star-fill"></i>
1601
+ <i class="ri-star-fill"></i>
1602
+ <i class="ri-star-half-fill"></i>
1603
+ </div>
1604
+ </div>
1605
+ </a>
1606
+
1607
+ <a href="#" class="new__card swiper-slide">
1608
+ <img
1609
+ src="assets/img/home-book-1.png"
1610
+ alt="image"
1611
+ class="new__img"
1612
+ />
1613
+
1614
+ <div>
1615
+ <h2 class="new__title">Mỹ phẩm mới về</h2>
1616
+ <div class="new__prices">
1617
+ <span class="new__discount">999.999</span>
1618
+ <span class="new__price">1.111.111</span>
1619
+ </div>
1620
+
1621
+ <div class="new__stars">
1622
+ <i class="ri-star-fill"></i>
1623
+ <i class="ri-star-fill"></i>
1624
+ <i class="ri-star-fill"></i>
1625
+ <i class="ri-star-fill"></i>
1626
+ <i class="ri-star-half-fill"></i>
1627
+ </div>
1628
+ </div>
1629
+ </a>
1630
+ </div>
1631
+ </div>
1632
+ </div>
1633
+ </section>
1634
+
1635
+ <!--==================== JOIN ====================-->
1636
+ <section class="join section">
1637
+ <div class="join__container">
1638
+ <img src="assets/img/join-bg.jpg" alt="image" class="join__bg" />
1639
+
1640
+ <div class="join__data container grid">
1641
+ <h2 class="join__title section__title">
1642
+ Đăng ký để nhận thông báo <br />
1643
+ về sản phẩm mới
1644
+ </h2>
1645
+
1646
+ <form action="" class="join__form">
1647
+ <input
1648
+ type="email"
1649
+ placeholder="Email của bạn"
1650
+ class="join__input"
1651
+ />
1652
+ <button type="submit" class="join__button button">Đăng ký</button>
1653
+ </form>
1654
+ </div>
1655
+ </div>
1656
+ </section>
1657
+
1658
+ <!--==================== TESTIMONIAL ====================-->
1659
+ <section class="testimonial section" id="testimonial">
1660
+ <h2 class="section__title">Phản hồi từ khách hàng</h2>
1661
+
1662
+ <div class="testimonial__container container">
1663
+ <div class="testimonial__swiper swiper">
1664
+ <div class="swiper-wrapper">
1665
+ <article class="testimonial__card swiper-slide">
1666
+ <img
1667
+ src="assets/img/testimonial-perfil-1.png"
1668
+ alt="img"
1669
+ class="testimonial__img"
1670
+ />
1671
+
1672
+ <h2 class="testimonial__title">Hồ Ngọc Hà</h2>
1673
+ <p class="testimonial__description">
1674
+ Sản phẩm chính hãng, chất lượng tuyệt vời! Giao hàng nhanh
1675
+ chóng và đóng gói rất cẩn thận. Sẽ tiếp tục ủng hộ shop.
1676
+ </p>
1677
+
1678
+ <div class="testimonial__stars">
1679
+ <i class="ri-star-fill"></i>
1680
+ <i class="ri-star-fill"></i>
1681
+ <i class="ri-star-fill"></i>
1682
+ <i class="ri-star-fill"></i>
1683
+ <i class="ri-star-half-fill"></i>
1684
+ </div>
1685
+ </article>
1686
+
1687
+ <article class="testimonial__card swiper-slide">
1688
+ <img
1689
+ src="assets/img/testimonial-perfil-2.png"
1690
+ alt="img"
1691
+ class="testimonial__img"
1692
+ />
1693
+
1694
+ <h2 class="testimonial__title">Sơn Tùng M-TP</h2>
1695
+ <p class="testimonial__description">
1696
+ Tư vấn rất nhiệt tình và chuyên nghiệp. Các cô tư vấn giúp
1697
+ mình chọn được sản phẩm phù hợp với da. Rất hài lòng!
1698
+ </p>
1699
+
1700
+ <div class="testimonial__stars">
1701
+ <i class="ri-star-fill"></i>
1702
+ <i class="ri-star-fill"></i>
1703
+ <i class="ri-star-fill"></i>
1704
+ <i class="ri-star-fill"></i>
1705
+ <i class="ri-star-half-fill"></i>
1706
+ </div>
1707
+ </article>
1708
+
1709
+ <article class="testimonial__card swiper-slide">
1710
+ <img
1711
+ src="assets/img/testimonial-perfil-3.png"
1712
+ alt="img"
1713
+ class="testimonial__img"
1714
+ />
1715
+
1716
+ <h2 class="testimonial__title">Châu Bùi</h2>
1717
+ <p class="testimonial__description">
1718
+ Lần đầu mua online nhưng rất an tâm. Tư vấn tận tình, giao
1719
+ hàng đúng hẹn. Son môi mình mua màu đẹp lắm!
1720
+ </p>
1721
+
1722
+ <div class="testimonial__stars">
1723
+ <i class="ri-star-fill"></i>
1724
+ <i class="ri-star-fill"></i>
1725
+ <i class="ri-star-fill"></i>
1726
+ <i class="ri-star-fill"></i>
1727
+ <i class="ri-star-half-fill"></i>
1728
+ </div>
1729
+ </article>
1730
+
1731
+ <article class="testimonial__card swiper-slide">
1732
+ <img
1733
+ src="assets/img/testimonial-perfil-4.png"
1734
+ alt="img"
1735
+ class="testimonial__img"
1736
+ />
1737
+
1738
+ <h2 class="testimonial__title">Trấn Thành</h2>
1739
+ <p class="testimonial__description">
1740
+ Shop gói hàng đẹp quá! Mua tặng bạn mà cảm giác như nhận quà
1741
+ cao cấp. Sản phẩm đúng như mô tả, rất ưng ý.
1742
+ </p>
1743
+
1744
+ <div class="testimonial__stars">
1745
+ <i class="ri-star-fill"></i>
1746
+ <i class="ri-star-fill"></i>
1747
+ <i class="ri-star-fill"></i>
1748
+ <i class="ri-star-fill"></i>
1749
+ <i class="ri-star-half-fill"></i>
1750
+ </div>
1751
+ </article>
1752
+ </div>
1753
+ </div>
1754
+ </div>
1755
+ </section>
1756
+ </main>
1757
+
1758
+ <!--==================== FOOTER ====================-->
1759
+ <footer class="footer">
1760
+ <div class="footer__container container grid">
1761
+ <div>
1762
+ <a href="#" class="footer__logo">
1763
+ <i class="ri-store-2-line"></i> ThuLieu Store
1764
+ </a>
1765
+
1766
+ <p class="footer__description">
1767
+ Đồng hành cùng bạn trên<br />
1768
+ hành trình khám phá<br />
1769
+ vẻ đẹp tự nhiên<br />
1770
+ và tự tin.
1771
+ </p>
1772
+ </div>
1773
+
1774
+ <div class="footer__data grid">
1775
+ <div>
1776
+ <h3 class="footer__title">Giới thiệu</h3>
1777
+
1778
+ <ul class="footer__links">
1779
+ <li>
1780
+ <a href="#" class="footer__link">Giải thưởng</a>
1781
+ </li>
1782
+
1783
+ <li>
1784
+ <a href="#" class="footer__link">FAQs</a>
1785
+ </li>
1786
+
1787
+ <li>
1788
+ <a href="#" class="footer__link">Chính sách bảo mật</a>
1789
+ </li>
1790
+
1791
+ <li>
1792
+ <a href="#" class="footer__link">Điều khoản dịch vụ</a>
1793
+ </li>
1794
+ </ul>
1795
+ </div>
1796
+
1797
+ <div>
1798
+ <h3 class="footer__title">Về chúng tôi</h3>
1799
+
1800
+ <ul class="footer__links">
1801
+ <li>
1802
+ <a href="#" class="footer__link">Tin tức</a>
1803
+ </li>
1804
+
1805
+ <li>
1806
+ <a href="#" class="footer__link">Cộng đồng</a>
1807
+ </li>
1808
+
1809
+ <li>
1810
+ <a href="#" class="footer__link">Đội ngũ của chúng tôi</a>
1811
+ </li>
1812
+
1813
+ <li>
1814
+ <a href="#" class="footer__link">Trung tâm hỗ trợ</a>
1815
+ </li>
1816
+ </ul>
1817
+ </div>
1818
+
1819
+ <div>
1820
+ <h3 class="footer__title">Liên hệ</h3>
1821
+
1822
+ <ul class="footer__links">
1823
+ <li>
1824
+ <address class="footer__info">
1825
+ X. Phương Chiểu<br />
1826
+ TP. Hưng Yên, Hưng Yên
1827
+ </address>
1828
+ </li>
1829
+
1830
+ <li>
1831
+ <address class="footer__info">
1832
+ dothulieu12@gmail.com <br />
1833
+ 0947-066-385
1834
+ </address>
1835
+ </li>
1836
+ </ul>
1837
+ </div>
1838
+
1839
+ <div>
1840
+ <h3 class="footer__title">Social</h3>
1841
+
1842
+ <div class="footer__social">
1843
+ <a
1844
+ href="https://www.facebook.com/"
1845
+ target="_blank"
1846
+ class="footer__social-link"
1847
+ >
1848
+ <i class="ri-facebook-circle-line"></i>
1849
+ </a>
1850
+
1851
+ <a
1852
+ href="https://www.facebook.com/"
1853
+ target="_blank"
1854
+ class="footer__social-link"
1855
+ >
1856
+ <i class="ri-instagram-line"></i>
1857
+ </a>
1858
+
1859
+ <a
1860
+ href="https://twitter.com/"
1861
+ target="_blank"
1862
+ class="footer__social-link"
1863
+ >
1864
+ <i class="ri-twitter-x-line"></i>
1865
+ </a>
1866
+ </div>
1867
+ </div>
1868
+ </div>
1869
+ </div>
1870
+
1871
+ <span class="footer__copy">
1872
+ &#169; All Rights Reserved By ThuLieu Do
1873
+ </span>
1874
+ </footer>
1875
+
1876
+ <!--========== SCROLL UP ==========-->
1877
+ <a href="#" class="scrollup" id="scroll-up">
1878
+ <i class="ri-arrow-up-line"></i>
1879
+ </a>
1880
+
1881
+ <!--=============== SCROLLREVEAL ===============-->
1882
+ <script src="assets/js/scrollreveal.min.js"></script>
1883
+
1884
+ <!--=============== SWIPER JS ===============-->
1885
+ <script src="assets/js/swiper-bundle.min.js"></script>
1886
+
1887
+ <!--=============== MAIN JS ===============-->
1888
+ <script src="assets/js/main.js"></script>
1889
+ </body>
1890
+ </html>
product_detail.html ADDED
@@ -0,0 +1,462 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+
7
+ <!--=============== FAVICON ===============-->
8
+ <link
9
+ rel="shortcut icon"
10
+ href="assets/img/favicon.png"
11
+ type="image/x-icon"
12
+ />
13
+
14
+ <!--=============== REMIXICONS ===============-->
15
+ <link
16
+ rel="stylesheet"
17
+ href="https://cdnjs.cloudflare.com/ajax/libs/remixicon/3.5.0/remixicon.css"
18
+ />
19
+
20
+ <!--=============== SWIPER CSS ===============-->
21
+ <link rel="stylesheet" href="assets/css/swiper-bundle.min.css" />
22
+
23
+ <!--=============== CSS ===============-->
24
+ <link rel="stylesheet" href="assets/css/styles.css" />
25
+
26
+ <title>ThuLieu Cosmetics Store</title>
27
+ </head>
28
+ <body>
29
+ <!--==================== HEADER ====================-->
30
+ <header class="header" id="header">
31
+ <nav class="nav container">
32
+ <a href="#" class="nav__logo">
33
+ <i class="ri-store-2-line"></i> ThuLieu Store
34
+ </a>
35
+
36
+ <div class="nav__menu">
37
+ <ul class="nav__list">
38
+ <li class="nav__item">
39
+ <a href="#home" class="nav__link active-link">
40
+ <i class="ri-home-line"></i>
41
+ <span>Trang chủ</span>
42
+ </a>
43
+ </li>
44
+
45
+ <li class="nav__item">
46
+ <a href="#featured" class="nav__link">
47
+ <i class="ri-fire-line"></i>
48
+ <span>Bán chạy</span>
49
+ </a>
50
+ </li>
51
+
52
+ <li class="nav__item">
53
+ <a href="#discount" class="nav__link">
54
+ <i class="ri-price-tag-3-line"></i>
55
+ <span>Khuyến mãi</span>
56
+ </a>
57
+ </li>
58
+
59
+ <li class="nav__item">
60
+ <a href="#new" class="nav__link">
61
+ <i class="ri-bookmark-line"></i>
62
+ <span>Hàng mới</span>
63
+ </a>
64
+ </li>
65
+
66
+ <li class="nav__item">
67
+ <a href="#testimonial" class="nav__link">
68
+ <i class="ri-message-3-line"></i>
69
+ <span>Đánh giá</span>
70
+ </a>
71
+ </li>
72
+ </ul>
73
+ </div>
74
+
75
+ <div class="nav__actions">
76
+ <!-- Search button -->
77
+ <i class="ri-search-line search-button" id="search-button"></i>
78
+
79
+ <!-- Login button -->
80
+ <i class="ri-user-line login-button" id="login-button"></i>
81
+
82
+ <!-- Shopping bag button -->
83
+ <i class="ri-shopping-bag-line bag-button" id="bag-button"></i>
84
+
85
+ <!-- Theme button -->
86
+ <i class="ri-moon-line change-theme" id="theme-button"></i>
87
+ </div>
88
+ </nav>
89
+ </header>
90
+
91
+ <!--==================== SEARCH ====================-->
92
+ <div class="search" id="search-content">
93
+ <form action="" class="search__form">
94
+ <i class="ri-search-line search__icon"></i>
95
+ <input
96
+ type="search"
97
+ placeholder="Nhập tên sản phẩm bạn muốn tìm..."
98
+ class="search__input"
99
+ />
100
+ </form>
101
+
102
+ <i class="ri-close-line search__close" id="search-close"></i>
103
+ </div>
104
+
105
+ <!--=============== SHOPPING BAG ===============-->
106
+ <div class="bag grid" id="bag-content">
107
+ <form action="" class="bag__form grid">
108
+ <h3 class="bag__title">Giỏ hàng của bạn</h3>
109
+
110
+ <div class="bag__group grid">
111
+ <div id="cartItemsContainer"></div>
112
+ <div id="totalAmountContainer"></div>
113
+ <button type="button" class="bag__button button" id="clearCart">
114
+ Reset giỏ hàng
115
+ </button>
116
+ <div>
117
+ <h3>Thông tin người nhận</h3>
118
+ <h4>Ngân hàng thụ hưởng: MBBank</h4>
119
+ <h4>Người thụ hưởng: Do THU LIEU</h4>
120
+ <h4>Tài khoản thụ hưởng: 0947.066.385</h4>
121
+ <h4>Nội dung: nguoimuahang_sanpham_ngaymuahang</h4>
122
+ </div>
123
+ <div>
124
+ <img src="./assets/img/QR.png" alt="QR" />
125
+ </div>
126
+
127
+ <button type="submit" class="bag__button button" id="clearCart">
128
+ Thanh toán
129
+ </button>
130
+ </div>
131
+ </form>
132
+
133
+ <i class="ri-close-line bag__close" id="bag-close"></i>
134
+ </div>
135
+
136
+ <!--==================== LOGIN ====================-->
137
+ <div class="login grid" id="login-content">
138
+ <form action="" class="login__form grid">
139
+ <h3 class="login__title">Đăng nhập</h3>
140
+
141
+ <div class="login__group grid">
142
+ <div>
143
+ <label for="login-email" class="login__label">Email</label>
144
+ <input
145
+ type="email"
146
+ placeholder="Email của bạn"
147
+ id="login-email"
148
+ class="login__input"
149
+ />
150
+ </div>
151
+
152
+ <div>
153
+ <label for="login-pass" class="login__label">Mật khẩu</label>
154
+ <input
155
+ type="password"
156
+ placeholder="Mật khẩu của bạn"
157
+ id="login-pass"
158
+ class="login__input"
159
+ />
160
+ </div>
161
+ </div>
162
+
163
+ <div>
164
+ <span class="login__signup">
165
+ Bạn chưa có tài khoản? <a href="#">Đăng ký ngay</a>
166
+ </span>
167
+
168
+ <a href="#" class="login__forgot"> Quên mật khẩu </a>
169
+
170
+ <button type="submit" class="login__button button">Đăng nhập</button>
171
+ </div>
172
+ </form>
173
+
174
+ <i class="ri-close-line login__close" id="login-close"></i>
175
+ </div>
176
+
177
+ <!--==================== MAIN ====================-->
178
+ <main class="main">
179
+ <!--==================== DETAIL SECTION ====================-->
180
+ <section class="detail section">
181
+ <div class="product__title">
182
+ <h2 class="title">Sản phẩm X</h2>
183
+ </div>
184
+ <div style="clear: both"></div>
185
+ <div class="product__info">
186
+ <div class="product__img">
187
+ <img src="./assets/img/home-book-1.png" alt="image" />
188
+ </div>
189
+ <div class="product__detail">
190
+ <h3 class="product__about">Thông số kỹ thuật</h3>
191
+ <p class="detail">
192
+ - Độ Cứng: Trung Bình <br />
193
+ - Vật liệu khung: H.M Graphite + Nanometrix + Tungsten <br />
194
+ - Vật liệu trục: H.M. Graphite + Namd <br />
195
+ - Trọng lượng: 4U 83g +/-2 <br />
196
+ - Chu vi cán vợt: 4U G5. <br />
197
+ - Chiều dài: 673mm +/-2 <br />
198
+ - Mức căng: 28lbs ~ 12,5kg <br />
199
+ - Màu sắc: Màu Xanh chuối <br />
200
+ - Sản xuất: Nhật Bản. <br />
201
+ </p>
202
+ </div>
203
+ </div>
204
+
205
+ <div class="product__add2cart"></div>
206
+ </section>
207
+ <!--==================== JOIN ====================-->
208
+ <section class="join section">
209
+ <div class="join__container">
210
+ <img src="assets/img/join-bg.jpg" alt="image" class="join__bg" />
211
+
212
+ <div class="join__data container grid">
213
+ <h2 class="join__title section__title">
214
+ Đăng ký để nhận thông báo <br />
215
+ về sản phẩm mới
216
+ </h2>
217
+
218
+ <form action="" class="join__form">
219
+ <input
220
+ type="email"
221
+ placeholder="Email của bạn"
222
+ class="join__input"
223
+ />
224
+ <button type="submit" class="join__button button">Đăng ký</button>
225
+ </form>
226
+ </div>
227
+ </div>
228
+ </section>
229
+
230
+ <!--==================== TESTIMONIAL ====================-->
231
+ <section class="testimonial section" id="testimonial">
232
+ <h2 class="section__title">Phản hồi từ khách hàng</h2>
233
+
234
+ <div class="testimonial__container container">
235
+ <div class="testimonial__swiper swiper">
236
+ <div class="swiper-wrapper">
237
+ <article class="testimonial__card swiper-slide">
238
+ <img
239
+ src="assets/img/testimonial-perfil-1.png"
240
+ alt="img"
241
+ class="testimonial__img"
242
+ />
243
+
244
+ <h2 class="testimonial__title">Hồ Ngọc Hà</h2>
245
+ <p class="testimonial__description">
246
+ Sản phẩm chính hãng, chất lượng tuyệt vời! Giao hàng nhanh
247
+ chóng và đóng gói rất cẩn thận. Sẽ tiếp tục ủng hộ shop.
248
+ </p>
249
+
250
+ <div class="testimonial__stars">
251
+ <i class="ri-star-fill"></i>
252
+ <i class="ri-star-fill"></i>
253
+ <i class="ri-star-fill"></i>
254
+ <i class="ri-star-fill"></i>
255
+ <i class="ri-star-half-fill"></i>
256
+ </div>
257
+ </article>
258
+
259
+ <article class="testimonial__card swiper-slide">
260
+ <img
261
+ src="assets/img/testimonial-perfil-2.png"
262
+ alt="img"
263
+ class="testimonial__img"
264
+ />
265
+
266
+ <h2 class="testimonial__title">Sơn Tùng M-TP</h2>
267
+ <p class="testimonial__description">
268
+ Tư vấn rất nhiệt tình và chuyên nghiệp. Các cô tư vấn giúp
269
+ mình chọn được sản phẩm phù hợp với da. Rất hài lòng!
270
+ </p>
271
+
272
+ <div class="testimonial__stars">
273
+ <i class="ri-star-fill"></i>
274
+ <i class="ri-star-fill"></i>
275
+ <i class="ri-star-fill"></i>
276
+ <i class="ri-star-fill"></i>
277
+ <i class="ri-star-half-fill"></i>
278
+ </div>
279
+ </article>
280
+
281
+ <article class="testimonial__card swiper-slide">
282
+ <img
283
+ src="assets/img/testimonial-perfil-3.png"
284
+ alt="img"
285
+ class="testimonial__img"
286
+ />
287
+
288
+ <h2 class="testimonial__title">Châu Bùi</h2>
289
+ <p class="testimonial__description">
290
+ Lần đầu mua online nhưng rất an tâm. Tư vấn tận tình, giao
291
+ hàng đúng hẹn. Son môi mình mua màu đẹp lắm!
292
+ </p>
293
+
294
+ <div class="testimonial__stars">
295
+ <i class="ri-star-fill"></i>
296
+ <i class="ri-star-fill"></i>
297
+ <i class="ri-star-fill"></i>
298
+ <i class="ri-star-fill"></i>
299
+ <i class="ri-star-half-fill"></i>
300
+ </div>
301
+ </article>
302
+
303
+ <article class="testimonial__card swiper-slide">
304
+ <img
305
+ src="assets/img/testimonial-perfil-4.png"
306
+ alt="img"
307
+ class="testimonial__img"
308
+ />
309
+
310
+ <h2 class="testimonial__title">Trấn Thành</h2>
311
+ <p class="testimonial__description">
312
+ Shop gói hàng đẹp quá! Mua tặng bạn mà cảm giác như nhận quà
313
+ cao cấp. Sản phẩm đúng như mô tả, rất ưng ý.
314
+ </p>
315
+
316
+ <div class="testimonial__stars">
317
+ <i class="ri-star-fill"></i>
318
+ <i class="ri-star-fill"></i>
319
+ <i class="ri-star-fill"></i>
320
+ <i class="ri-star-fill"></i>
321
+ <i class="ri-star-half-fill"></i>
322
+ </div>
323
+ </article>
324
+ </div>
325
+ </div>
326
+ </div>
327
+ </section>
328
+ </main>
329
+
330
+ <!--==================== FOOTER ====================-->
331
+ <footer class="footer">
332
+ <div class="footer__container container grid">
333
+ <div>
334
+ <a href="#" class="footer__logo">
335
+ <i class="ri-store-2-line"></i> ThuLieu Store
336
+ </a>
337
+
338
+ <p class="footer__description">
339
+ Đồng hành cùng bạn trên<br />
340
+ hành trình khám phá<br />
341
+ vẻ đẹp tự nhiên<br />
342
+ và tự tin.
343
+ </p>
344
+ </div>
345
+
346
+ <div class="footer__data grid">
347
+ <div>
348
+ <h3 class="footer__title">Giới thiệu</h3>
349
+
350
+ <ul class="footer__links">
351
+ <li>
352
+ <a href="#" class="footer__link">Giải thưởng</a>
353
+ </li>
354
+
355
+ <li>
356
+ <a href="#" class="footer__link">FAQs</a>
357
+ </li>
358
+
359
+ <li>
360
+ <a href="#" class="footer__link">Chính sách bảo mật</a>
361
+ </li>
362
+
363
+ <li>
364
+ <a href="#" class="footer__link">Điều khoản dịch vụ</a>
365
+ </li>
366
+ </ul>
367
+ </div>
368
+
369
+ <div>
370
+ <h3 class="footer__title">Về chúng tôi</h3>
371
+
372
+ <ul class="footer__links">
373
+ <li>
374
+ <a href="#" class="footer__link">Tin tức</a>
375
+ </li>
376
+
377
+ <li>
378
+ <a href="#" class="footer__link">Cộng đồng</a>
379
+ </li>
380
+
381
+ <li>
382
+ <a href="#" class="footer__link">Đội ngũ của chúng tôi</a>
383
+ </li>
384
+
385
+ <li>
386
+ <a href="#" class="footer__link">Trung tâm hỗ trợ</a>
387
+ </li>
388
+ </ul>
389
+ </div>
390
+
391
+ <div>
392
+ <h3 class="footer__title">Liên hệ</h3>
393
+
394
+ <ul class="footer__links">
395
+ <li>
396
+ <address class="footer__info">
397
+ X. Phương Chiểu<br />
398
+ TP. Hưng Yên, Hưng Yên
399
+ </address>
400
+ </li>
401
+
402
+ <li>
403
+ <address class="footer__info">
404
+ dothulieu12@gmail.com <br />
405
+ 0947-066-385
406
+ </address>
407
+ </li>
408
+ </ul>
409
+ </div>
410
+
411
+ <div>
412
+ <h3 class="footer__title">Social</h3>
413
+
414
+ <div class="footer__social">
415
+ <a
416
+ href="https://www.facebook.com/"
417
+ target="_blank"
418
+ class="footer__social-link"
419
+ >
420
+ <i class="ri-facebook-circle-line"></i>
421
+ </a>
422
+
423
+ <a
424
+ href="https://www.facebook.com/"
425
+ target="_blank"
426
+ class="footer__social-link"
427
+ >
428
+ <i class="ri-instagram-line"></i>
429
+ </a>
430
+
431
+ <a
432
+ href="https://twitter.com/"
433
+ target="_blank"
434
+ class="footer__social-link"
435
+ >
436
+ <i class="ri-twitter-x-line"></i>
437
+ </a>
438
+ </div>
439
+ </div>
440
+ </div>
441
+ </div>
442
+
443
+ <span class="footer__copy">
444
+ &#169; All Rights Reserved By ThuLieu Do
445
+ </span>
446
+ </footer>
447
+
448
+ <!--========== SCROLL UP ==========-->
449
+ <a href="#" class="scrollup" id="scroll-up">
450
+ <i class="ri-arrow-up-line"></i>
451
+ </a>
452
+
453
+ <!--=============== SCROLLREVEAL ===============-->
454
+ <script src="assets/js/scrollreveal.min.js"></script>
455
+
456
+ <!--=============== SWIPER JS ===============-->
457
+ <script src="assets/js/swiper-bundle.min.js"></script>
458
+
459
+ <!--=============== MAIN JS ===============-->
460
+ <script src="assets/js/main.js"></script>
461
+ </body>
462
+ </html>