@nuvler/theme-default 1.0.7 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/nuvler.theme.json +150 -7
  2. package/dist/src/banner-carousel.js +10 -0
  3. package/dist/src/banner-carousel.js.map +1 -1
  4. package/dist/src/carousel-frame.js +5 -2
  5. package/dist/src/carousel-frame.js.map +1 -1
  6. package/dist/src/definition.d.ts +2 -0
  7. package/dist/src/definition.js +2 -1
  8. package/dist/src/definition.js.map +1 -1
  9. package/dist/src/footer.d.ts +3 -1
  10. package/dist/src/footer.js +3 -2
  11. package/dist/src/footer.js.map +1 -1
  12. package/dist/src/header-interactions.d.ts +4 -4
  13. package/dist/src/header-interactions.js +34 -18
  14. package/dist/src/header-interactions.js.map +1 -1
  15. package/dist/src/header.d.ts +1 -1
  16. package/dist/src/header.js +21 -9
  17. package/dist/src/header.js.map +1 -1
  18. package/dist/src/home.d.ts +1 -1
  19. package/dist/src/home.js +56 -42
  20. package/dist/src/home.js.map +1 -1
  21. package/dist/src/index.d.ts +2 -1
  22. package/dist/src/index.js +1 -0
  23. package/dist/src/index.js.map +1 -1
  24. package/dist/src/not-found.d.ts +2 -0
  25. package/dist/src/not-found.js +14 -0
  26. package/dist/src/not-found.js.map +1 -0
  27. package/dist/src/product-carousel.d.ts +2 -2
  28. package/dist/src/product-carousel.js.map +1 -1
  29. package/dist/src/product-detail-interactive.d.ts +2 -1
  30. package/dist/src/product-detail-interactive.js +6 -3
  31. package/dist/src/product-detail-interactive.js.map +1 -1
  32. package/dist/src/product-detail.js +24 -3
  33. package/dist/src/product-detail.js.map +1 -1
  34. package/dist/src/products.js +13 -2
  35. package/dist/src/products.js.map +1 -1
  36. package/dist/src/server-shell.js +5 -3
  37. package/dist/src/server-shell.js.map +1 -1
  38. package/dist/src/theme-component.js +37 -10
  39. package/dist/src/theme-component.js.map +1 -1
  40. package/dist/src/theme-config.js +12 -12
  41. package/dist/src/theme-config.js.map +1 -1
  42. package/dist/theme.css +1724 -169
  43. package/package.json +1 -1
package/dist/theme.css CHANGED
@@ -1,21 +1,40 @@
1
1
  :root {
2
+ /* Tokens públicos: cores e layout podem ser sobrescritos pelo tenant. */
2
3
  --color-primary: #176b3a;
3
4
  --color-primary-text: #ffffff;
4
5
  --color-secondary: #d99b31;
5
6
  --color-secondary-text: #18221b;
6
7
  --color-accent: #b45309;
7
- --store-background: #f7f7f2;
8
- --store-text: #18221b;
8
+ --store-background: #fbfcfa;
9
+ --store-text: #172019;
9
10
  --container-width: 1280px;
10
- --border-radius: 18px;
11
+ --border-radius: 16px;
11
12
  --store-muted: #657068;
12
- --store-line: #dfe4dd;
13
+ --store-line: #dce3dc;
13
14
  --store-surface: #ffffff;
14
- --store-surface-alt: #eef2e9;
15
+ --store-surface-alt: #f4f7f3;
15
16
  --store-header-background: #ffffff;
16
17
  --store-header-text: #18221b;
17
18
  --store-footer-background: #14251a;
18
19
  --store-footer-text: #f7f7f2;
20
+
21
+ /* Escala interna do tema. Não representa configuração adicional do painel. */
22
+ --space-1: 4px;
23
+ --space-2: 8px;
24
+ --space-3: 12px;
25
+ --space-4: 16px;
26
+ --space-5: 24px;
27
+ --space-6: 32px;
28
+ --space-7: 48px;
29
+ --space-8: 64px;
30
+ --radius-sm: max(8px, calc(var(--border-radius) * .5));
31
+ --radius-md: calc(var(--border-radius) * .75);
32
+ --radius-lg: var(--border-radius);
33
+ --shadow-card: 0 12px 32px rgba(23, 32, 25, .08);
34
+ --shadow-overlay: 0 24px 64px rgba(23, 32, 25, .16);
35
+ --font-size-label: 12px;
36
+ --font-size-body: 15px;
37
+ --line-height-body: 1.55;
19
38
  }
20
39
 
21
40
  * {
@@ -44,11 +63,40 @@ body {
44
63
  margin: 0;
45
64
  background: var(--store-background);
46
65
  color: var(--store-text);
66
+ font-size: var(--font-size-body);
67
+ line-height: var(--line-height-body);
47
68
  -webkit-font-smoothing: antialiased;
48
69
  }
49
70
 
71
+ html {
72
+ scrollbar-color: color-mix(in srgb, var(--color-primary), var(--store-muted) 28%) var(--store-surface-alt);
73
+ scrollbar-width: thin;
74
+ }
75
+
76
+ ::-webkit-scrollbar {
77
+ width: 12px;
78
+ height: 12px;
79
+ }
80
+
81
+ ::-webkit-scrollbar-track {
82
+ background: var(--store-surface-alt);
83
+ }
84
+
85
+ ::-webkit-scrollbar-thumb {
86
+ border: 3px solid var(--store-surface-alt);
87
+ border-radius: 999px;
88
+ background: color-mix(in srgb, var(--color-primary), var(--store-muted) 28%);
89
+ }
90
+
91
+ ::-webkit-scrollbar-thumb:hover {
92
+ background: var(--color-primary);
93
+ }
94
+
50
95
  .store-shell {
96
+ display: flex;
51
97
  min-height: 100vh;
98
+ flex-direction: column;
99
+ overflow-x: clip;
52
100
  background: var(--store-background);
53
101
  color: var(--store-text);
54
102
  font-family: var(
@@ -64,6 +112,11 @@ body {
64
112
  );
65
113
  }
66
114
 
115
+ .store-shell img {
116
+ display: block;
117
+ max-width: 100%;
118
+ }
119
+
67
120
  .floating-whatsapp {
68
121
  position: fixed;
69
122
  right: max(22px, env(safe-area-inset-right));
@@ -214,11 +267,297 @@ body {
214
267
  margin-top: 30px;
215
268
  }
216
269
 
270
+ /* 404 do tema: ilustração responsiva composta por CSS, sem imagem rasterizada. */
271
+ .nuvler-not-found {
272
+ display: grid;
273
+ min-height: min(720px, 76vh);
274
+ place-items: center;
275
+ overflow: hidden;
276
+ padding: clamp(44px, 7vw, 88px) 20px;
277
+ background:
278
+ radial-gradient(circle at 14% 20%, color-mix(in srgb, var(--color-primary), transparent 92%), transparent 28%),
279
+ radial-gradient(circle at 88% 76%, color-mix(in srgb, var(--color-secondary), transparent 91%), transparent 26%),
280
+ var(--store-background);
281
+ }
282
+
283
+ .nuvler-not-found-content {
284
+ display: grid;
285
+ width: min(100%, 620px);
286
+ justify-items: center;
287
+ text-align: center;
288
+ }
289
+
290
+ .nuvler-not-found-cloud {
291
+ position: relative;
292
+ width: min(76vw, 330px);
293
+ height: min(56vw, 238px);
294
+ min-height: 185px;
295
+ margin-bottom: -6px;
296
+ filter: drop-shadow(0 20px 28px color-mix(in srgb, var(--color-primary), transparent 82%));
297
+ }
298
+
299
+ .nuvler-not-found-cloud::before,
300
+ .nuvler-not-found-cloud-lobe {
301
+ position: absolute;
302
+ display: block;
303
+ border: 1px solid color-mix(in srgb, var(--store-line), transparent 25%);
304
+ background: linear-gradient(145deg, var(--store-surface), color-mix(in srgb, var(--store-surface-alt), var(--color-primary) 10%));
305
+ box-shadow: inset 12px 12px 20px color-mix(in srgb, var(--store-surface), transparent 45%), inset -12px -12px 22px color-mix(in srgb, var(--color-primary), transparent 92%);
306
+ content: "";
307
+ }
308
+
309
+ .nuvler-not-found-cloud::before {
310
+ z-index: 1;
311
+ right: 5%;
312
+ bottom: 3%;
313
+ left: 5%;
314
+ height: 48%;
315
+ border-radius: 48% 48% 42% 42%;
316
+ }
317
+
318
+ .nuvler-not-found-cloud-lobe {
319
+ z-index: 2;
320
+ border-radius: 50%;
321
+ }
322
+
323
+ .nuvler-not-found-cloud .lobe-left {
324
+ bottom: 18%;
325
+ left: 2%;
326
+ width: 43%;
327
+ aspect-ratio: 1;
328
+ }
329
+
330
+ .nuvler-not-found-cloud .lobe-top {
331
+ top: 3%;
332
+ left: 28%;
333
+ width: 47%;
334
+ aspect-ratio: 1;
335
+ }
336
+
337
+ .nuvler-not-found-cloud .lobe-right {
338
+ right: 1%;
339
+ bottom: 18%;
340
+ width: 43%;
341
+ aspect-ratio: 1;
342
+ }
343
+
344
+ .nuvler-not-found-cloud .lobe-bottom-left,
345
+ .nuvler-not-found-cloud .lobe-bottom-right {
346
+ bottom: 0;
347
+ width: 30%;
348
+ aspect-ratio: 1;
349
+ }
350
+
351
+ .nuvler-not-found-cloud .lobe-bottom-left { left: 19%; }
352
+ .nuvler-not-found-cloud .lobe-bottom-right { right: 19%; }
353
+
354
+ .nuvler-not-found-cloud-face {
355
+ position: absolute;
356
+ z-index: 3;
357
+ top: 46%;
358
+ left: 50%;
359
+ width: 42%;
360
+ height: 31%;
361
+ transform: translateX(-50%);
362
+ }
363
+
364
+ .nuvler-not-found-eye {
365
+ position: absolute;
366
+ top: 4%;
367
+ width: 18%;
368
+ aspect-ratio: .68;
369
+ border-radius: 50%;
370
+ background: var(--store-text);
371
+ box-shadow: inset -3px -4px 6px color-mix(in srgb, var(--color-primary), transparent 60%);
372
+ }
373
+
374
+ .nuvler-not-found-eye::after {
375
+ position: absolute;
376
+ top: 17%;
377
+ right: 19%;
378
+ width: 28%;
379
+ aspect-ratio: 1;
380
+ border-radius: 50%;
381
+ background: var(--store-surface);
382
+ content: "";
383
+ }
384
+
385
+ .nuvler-not-found-eye.eye-left {
386
+ left: 15%;
387
+ transform: rotate(-15deg);
388
+ }
389
+
390
+ .nuvler-not-found-eye.eye-right {
391
+ right: 15%;
392
+ }
393
+
394
+ .nuvler-not-found-mouth {
395
+ position: absolute;
396
+ bottom: 4%;
397
+ left: 50%;
398
+ width: 28%;
399
+ height: 19%;
400
+ transform: translateX(-50%);
401
+ border: 3px solid var(--store-text);
402
+ border-bottom: 0;
403
+ border-radius: 50% 50% 0 0;
404
+ }
405
+
406
+ .nuvler-not-found-code {
407
+ color: color-mix(in srgb, var(--color-primary), var(--store-text) 10%);
408
+ font-size: clamp(72px, 13vw, 132px);
409
+ font-weight: 950;
410
+ letter-spacing: -.1em;
411
+ line-height: .84;
412
+ }
413
+
414
+ .nuvler-not-found-kicker {
415
+ margin-top: 18px;
416
+ color: var(--color-primary);
417
+ font-size: 14px;
418
+ font-weight: 900;
419
+ letter-spacing: .12em;
420
+ text-transform: uppercase;
421
+ }
422
+
423
+ .nuvler-not-found h1 {
424
+ margin: 8px 0 0;
425
+ color: var(--store-text);
426
+ font-size: clamp(32px, 5vw, 54px);
427
+ letter-spacing: -.055em;
428
+ line-height: 1.03;
429
+ }
430
+
431
+ .nuvler-not-found p {
432
+ max-width: 470px;
433
+ margin: 16px 0 0;
434
+ color: var(--store-muted);
435
+ font-size: clamp(15px, 2vw, 17px);
436
+ line-height: 1.65;
437
+ }
438
+
439
+ .nuvler-not-found-actions {
440
+ display: flex;
441
+ flex-wrap: wrap;
442
+ justify-content: center;
443
+ gap: 10px;
444
+ margin-top: 28px;
445
+ }
446
+
447
+ /* Composição com a ilustração PNG fornecida pela marca, sem texto embutido. */
448
+ .nuvler-not-found {
449
+ min-height: 0;
450
+ align-content: start;
451
+ padding: 14px 20px 18px;
452
+ background:
453
+ radial-gradient(ellipse at 50% 43%, color-mix(in srgb, var(--color-primary), transparent 83%), transparent 30%),
454
+ radial-gradient(ellipse at 50% 62%, color-mix(in srgb, var(--color-secondary), transparent 91%), transparent 42%),
455
+ var(--store-background);
456
+ }
457
+
458
+ .nuvler-not-found-content {
459
+ color: var(--store-text);
460
+ }
461
+
462
+ .nuvler-not-found-visual {
463
+ position: relative;
464
+ isolation: isolate;
465
+ width: min(64vw, 280px);
466
+ aspect-ratio: 1.28;
467
+ margin-top: 0;
468
+ margin-bottom: -16px;
469
+ }
470
+
471
+ .nuvler-not-found-visual::after {
472
+ display: none;
473
+ }
474
+
475
+ .nuvler-not-found-cloud-svg {
476
+ position: absolute;
477
+ z-index: 2;
478
+ top: 0;
479
+ left: 50%;
480
+ width: 82%;
481
+ aspect-ratio: 640 / 420;
482
+ transform: translateX(-50%);
483
+ color: var(--color-primary);
484
+ }
485
+
486
+ .nuvler-not-found-cloud-svg svg {
487
+ display: block;
488
+ width: 100%;
489
+ height: 100%;
490
+ }
491
+
492
+ .nuvler-not-found-code {
493
+ position: absolute;
494
+ z-index: 1;
495
+ right: 0;
496
+ bottom: 0;
497
+ left: 0;
498
+ color: var(--color-primary);
499
+ font-size: clamp(118px, 23vw, 190px);
500
+ font-weight: 950;
501
+ letter-spacing: -.13em;
502
+ line-height: .66;
503
+ text-align: center;
504
+ }
505
+
506
+ .nuvler-not-found h1 {
507
+ color: var(--store-text);
508
+ }
509
+
510
+ .nuvler-not-found p {
511
+ color: var(--store-muted);
512
+ }
513
+
514
+ @media (max-width: 520px) {
515
+ .nuvler-not-found-visual {
516
+ width: min(66vw, 240px);
517
+ margin-bottom: -10px;
518
+ }
519
+
520
+ }
521
+
522
+ @media (max-width: 520px) {
523
+ .nuvler-not-found {
524
+ min-height: 0;
525
+ padding-block: 12px 16px;
526
+ }
527
+
528
+ .nuvler-not-found-cloud {
529
+ width: min(82vw, 300px);
530
+ height: min(61vw, 218px);
531
+ }
532
+
533
+ .nuvler-not-found-actions {
534
+ width: 100%;
535
+ }
536
+
537
+ .nuvler-not-found-actions .button {
538
+ width: 100%;
539
+ }
540
+ }
541
+
217
542
  a {
218
543
  color: inherit;
219
544
  text-decoration: none;
220
545
  }
221
546
 
547
+ button,
548
+ a,
549
+ input,
550
+ textarea,
551
+ select,
552
+ summary {
553
+ -webkit-tap-highlight-color: transparent;
554
+ }
555
+
556
+ :where(a, button, input, textarea, select, summary):focus-visible {
557
+ outline: 3px solid color-mix(in srgb, var(--color-primary), transparent 68%);
558
+ outline-offset: 3px;
559
+ }
560
+
222
561
  button,
223
562
  input,
224
563
  textarea,
@@ -228,6 +567,15 @@ select {
228
567
 
229
568
  .store-page {
230
569
  min-height: 60vh;
570
+ overflow-x: clip;
571
+ }
572
+
573
+ .store-page-not-found {
574
+ min-height: 0;
575
+ }
576
+
577
+ .store-page:has(.nuvler-not-found) {
578
+ min-height: 0;
231
579
  }
232
580
 
233
581
  .store-container {
@@ -235,6 +583,73 @@ select {
235
583
  margin-inline: auto;
236
584
  }
237
585
 
586
+ /* Primitivas compartilhadas pelas páginas e seções do tema. */
587
+ .theme-page-hero {
588
+ border-bottom: 1px solid var(--store-line);
589
+ background: color-mix(in srgb, var(--color-primary), #fff 95%);
590
+ padding: clamp(var(--space-7), 8vw, 96px) 0;
591
+ }
592
+
593
+ .theme-page-hero h1 {
594
+ max-width: 800px;
595
+ margin: 0;
596
+ font-size: clamp(36px, 5vw, 64px);
597
+ letter-spacing: -.055em;
598
+ line-height: 1.04;
599
+ }
600
+
601
+ .theme-page-hero p {
602
+ max-width: 650px;
603
+ margin: var(--space-4) 0 0;
604
+ color: var(--store-muted);
605
+ font-size: clamp(16px, 2vw, 19px);
606
+ line-height: 1.65;
607
+ }
608
+
609
+ .page-kicker {
610
+ display: block;
611
+ margin-bottom: var(--space-3);
612
+ color: var(--color-primary);
613
+ font-size: var(--font-size-label);
614
+ font-weight: 900;
615
+ letter-spacing: .12em;
616
+ text-transform: uppercase;
617
+ }
618
+
619
+ .theme-badge {
620
+ display: inline-flex;
621
+ min-height: 24px;
622
+ align-items: center;
623
+ border-radius: 999px;
624
+ background: color-mix(in srgb, var(--color-accent), transparent 88%);
625
+ color: var(--color-accent);
626
+ padding: 4px 9px;
627
+ font-size: 10px;
628
+ font-weight: 850;
629
+ letter-spacing: .08em;
630
+ line-height: 1;
631
+ text-transform: uppercase;
632
+ }
633
+
634
+ .theme-state {
635
+ display: grid;
636
+ min-height: 180px;
637
+ place-items: center;
638
+ align-content: center;
639
+ gap: var(--space-2);
640
+ border: 1px dashed var(--store-line);
641
+ border-radius: var(--radius-lg);
642
+ background: var(--store-surface);
643
+ padding: var(--space-6);
644
+ color: var(--store-muted);
645
+ text-align: center;
646
+ }
647
+
648
+ .theme-state[data-status="error"] {
649
+ border-color: color-mix(in srgb, #b42318, var(--store-line) 45%);
650
+ color: #9f2018;
651
+ }
652
+
238
653
  .announcement {
239
654
  background: var(--color-primary);
240
655
  color: var(--color-primary-text);
@@ -250,6 +665,11 @@ select {
250
665
  align-items: center;
251
666
  }
252
667
 
668
+ .announcement a {
669
+ color: inherit;
670
+ font-weight: 750;
671
+ }
672
+
253
673
  .store-header {
254
674
  position: sticky;
255
675
  z-index: 30;
@@ -267,6 +687,14 @@ select {
267
687
  gap: clamp(20px, 2.5vw, 36px);
268
688
  }
269
689
 
690
+ .header-tools {
691
+ display: flex;
692
+ flex: 0 0 auto;
693
+ align-items: center;
694
+ justify-content: flex-end;
695
+ gap: 10px;
696
+ }
697
+
270
698
  .header-search {
271
699
  position: relative;
272
700
  width: 100%;
@@ -595,7 +1023,7 @@ select {
595
1023
  gap: 11px;
596
1024
  overflow: hidden;
597
1025
  border: 1px solid color-mix(in srgb, var(--color-secondary), transparent 82%);
598
- border-radius: 14px;
1026
+ border-radius: var(--radius-md);
599
1027
  background: color-mix(in srgb, var(--color-secondary), transparent 93%);
600
1028
  padding: 7px 12px;
601
1029
  }
@@ -629,7 +1057,7 @@ select {
629
1057
  }
630
1058
 
631
1059
  .header-message-copy small {
632
- color: var(--color-secondary);
1060
+ color: var(--color-primary);
633
1061
  font-size: 9px;
634
1062
  font-weight: 850;
635
1063
  letter-spacing: 0.08em;
@@ -647,6 +1075,18 @@ select {
647
1075
  -webkit-line-clamp: 2;
648
1076
  }
649
1077
 
1078
+ .header-tools .header-highlight-link {
1079
+ display: inline-flex;
1080
+ min-height: 42px;
1081
+ align-items: center;
1082
+ justify-content: center;
1083
+ border-radius: var(--radius-sm);
1084
+ padding: 9px 13px;
1085
+ font-size: 12px;
1086
+ font-weight: 800;
1087
+ white-space: nowrap;
1088
+ }
1089
+
650
1090
  .main-nav {
651
1091
  display: flex;
652
1092
  position: relative;
@@ -1154,12 +1594,12 @@ select {
1154
1594
 
1155
1595
  .button {
1156
1596
  display: inline-flex;
1157
- min-height: 48px;
1597
+ min-height: 46px;
1158
1598
  align-items: center;
1159
1599
  justify-content: center;
1160
1600
  border: 1px solid transparent;
1161
- border-radius: calc(var(--border-radius) * 0.65);
1162
- padding: 12px 20px;
1601
+ border-radius: var(--radius-sm);
1602
+ padding: 11px 18px;
1163
1603
  cursor: pointer;
1164
1604
  font-size: 14px;
1165
1605
  font-weight: 800;
@@ -1179,7 +1619,7 @@ select {
1179
1619
  .button-primary {
1180
1620
  background: var(--color-primary);
1181
1621
  color: var(--color-primary-text);
1182
- box-shadow: 0 9px 24px color-mix(in srgb, var(--color-primary), transparent 76%);
1622
+ box-shadow: none;
1183
1623
  }
1184
1624
 
1185
1625
  .button-primary:hover {
@@ -1205,15 +1645,15 @@ select {
1205
1645
  .hero-section {
1206
1646
  position: relative;
1207
1647
  overflow: hidden;
1208
- padding: 86px 0 92px;
1648
+ padding: clamp(64px, 9vw, 116px) 0;
1209
1649
  background:
1210
- radial-gradient(circle at 72% 35%, color-mix(in srgb, var(--color-secondary), transparent 80%), transparent 28%),
1211
- linear-gradient(135deg, color-mix(in srgb, var(--color-primary), #fff 92%), var(--store-background));
1650
+ radial-gradient(circle at 80% 20%, color-mix(in srgb, var(--color-primary), transparent 88%), transparent 34%),
1651
+ var(--store-surface-alt);
1212
1652
  }
1213
1653
 
1214
1654
  .hero-section-image {
1215
1655
  display: grid;
1216
- min-height: clamp(420px, 43vw, 650px);
1656
+ min-height: clamp(460px, 43vw, 640px);
1217
1657
  align-items: stretch;
1218
1658
  padding: 0;
1219
1659
  background: var(--store-text);
@@ -1233,7 +1673,7 @@ select {
1233
1673
  }
1234
1674
 
1235
1675
  .hero-background-overlay {
1236
- background: linear-gradient(90deg, rgba(8, 17, 11, 0.78) 0%, rgba(8, 17, 11, 0.48) 46%, rgba(8, 17, 11, 0.08) 78%);
1676
+ background: linear-gradient(90deg, rgba(8, 17, 11, .82) 0%, rgba(8, 17, 11, .54) 42%, rgba(8, 17, 11, .08) 78%);
1237
1677
  }
1238
1678
 
1239
1679
  .hero-image-content {
@@ -1263,7 +1703,7 @@ select {
1263
1703
  .banner-carousel {
1264
1704
  position: relative;
1265
1705
  overflow: hidden;
1266
- background: #e9ece7;
1706
+ background: transparent;
1267
1707
  }
1268
1708
 
1269
1709
  .banner-track {
@@ -1277,7 +1717,13 @@ select {
1277
1717
  height: var(--banner-desktop-height, 590px);
1278
1718
  }
1279
1719
 
1280
- .banner-slide > img,
1720
+ .banner-carousel-settings[data-image-fit="cover"] .banner-slide {
1721
+ height: auto;
1722
+ max-height: var(--banner-desktop-height, 590px);
1723
+ aspect-ratio: var(--banner-desktop-aspect-ratio, 1.78);
1724
+ }
1725
+
1726
+ .banner-slide > img,
1281
1727
  .banner-slide > .store-image-placeholder {
1282
1728
  position: absolute;
1283
1729
  inset: 0;
@@ -1376,7 +1822,7 @@ select {
1376
1822
  }
1377
1823
 
1378
1824
  .hero-copy {
1379
- max-width: 680px;
1825
+ max-width: 630px;
1380
1826
  }
1381
1827
 
1382
1828
  .hero-eyebrow,
@@ -1395,15 +1841,15 @@ select {
1395
1841
  .hero-copy h1 {
1396
1842
  max-width: 720px;
1397
1843
  margin: 0;
1398
- font-size: clamp(46px, 6vw, 78px);
1844
+ font-size: clamp(44px, 5.6vw, 72px);
1399
1845
  font-weight: 850;
1400
1846
  letter-spacing: -0.065em;
1401
- line-height: 0.98;
1847
+ line-height: 1.02;
1402
1848
  }
1403
1849
 
1404
1850
  .hero-copy p {
1405
1851
  max-width: 590px;
1406
- margin: 28px 0 0;
1852
+ margin: 22px 0 0;
1407
1853
  color: var(--store-muted);
1408
1854
  font-size: clamp(17px, 2vw, 20px);
1409
1855
  line-height: 1.7;
@@ -1412,8 +1858,8 @@ select {
1412
1858
  .hero-actions {
1413
1859
  display: flex;
1414
1860
  align-items: center;
1415
- gap: 26px;
1416
- margin-top: 34px;
1861
+ gap: 16px;
1862
+ margin-top: 30px;
1417
1863
  }
1418
1864
 
1419
1865
  .text-link {
@@ -1489,7 +1935,29 @@ select {
1489
1935
  }
1490
1936
 
1491
1937
  .store-section {
1492
- padding: 88px 0;
1938
+ padding: clamp(56px, 7vw, 96px) 0;
1939
+ }
1940
+
1941
+ .home-banner-section {
1942
+ padding: 0;
1943
+ }
1944
+
1945
+ .home-banner-section .banner-carousel-settings {
1946
+ overflow: hidden;
1947
+ background: transparent;
1948
+ }
1949
+
1950
+ .home-products-section {
1951
+ background: var(--store-surface);
1952
+ }
1953
+
1954
+ .home-products-section[data-layout="carousel"],
1955
+ .home-editorial-section {
1956
+ background: var(--store-surface-alt);
1957
+ }
1958
+
1959
+ .home-editorial-section {
1960
+ border-top: 1px solid var(--store-line);
1493
1961
  }
1494
1962
 
1495
1963
  .editorial-section {
@@ -1669,7 +2137,7 @@ select {
1669
2137
  display: grid;
1670
2138
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
1671
2139
  align-items: center;
1672
- gap: 64px;
2140
+ gap: clamp(32px, 6vw, 84px);
1673
2141
  }
1674
2142
 
1675
2143
  .image-text-layout[data-position="right"] .image-text-media {
@@ -1679,7 +2147,7 @@ select {
1679
2147
  .image-text-media {
1680
2148
  overflow: hidden;
1681
2149
  aspect-ratio: 4 / 3;
1682
- border-radius: var(--border-radius);
2150
+ border-radius: var(--radius-md);
1683
2151
  background: #eef0ea;
1684
2152
  }
1685
2153
 
@@ -1700,8 +2168,8 @@ select {
1700
2168
 
1701
2169
  .image-text-copy h2 {
1702
2170
  margin: 12px 0 0;
1703
- font-size: clamp(34px, 4vw, 52px);
1704
- letter-spacing: -0.05em;
2171
+ font-size: clamp(32px, 4vw, 50px);
2172
+ letter-spacing: -0.045em;
1705
2173
  }
1706
2174
 
1707
2175
  .image-text-copy p {
@@ -1715,20 +2183,20 @@ select {
1715
2183
  .editorial-grid {
1716
2184
  display: grid;
1717
2185
  grid-template-columns: repeat(3, minmax(0, 1fr));
1718
- gap: 24px;
2186
+ gap: 16px;
1719
2187
  }
1720
2188
 
1721
2189
  .editorial-card {
1722
2190
  overflow: hidden;
1723
2191
  border: 1px solid var(--store-line);
1724
- border-radius: var(--border-radius);
2192
+ border-radius: var(--radius-md);
1725
2193
  background: var(--store-surface);
1726
2194
  transition: transform 180ms ease, box-shadow 180ms ease;
1727
2195
  }
1728
2196
 
1729
2197
  .editorial-card:hover {
1730
2198
  transform: translateY(-4px);
1731
- box-shadow: 0 20px 50px rgba(24, 34, 27, 0.1);
2199
+ box-shadow: var(--shadow-card);
1732
2200
  }
1733
2201
 
1734
2202
  .editorial-card-image {
@@ -1746,7 +2214,7 @@ select {
1746
2214
  }
1747
2215
 
1748
2216
  .editorial-card-content {
1749
- padding: 24px;
2217
+ padding: 18px;
1750
2218
  }
1751
2219
 
1752
2220
  .editorial-card-content > span,
@@ -1762,7 +2230,7 @@ select {
1762
2230
 
1763
2231
  .editorial-card h2 {
1764
2232
  margin: 0;
1765
- font-size: 21px;
2233
+ font-size: 19px;
1766
2234
  letter-spacing: -0.035em;
1767
2235
  line-height: 1.25;
1768
2236
  }
@@ -1771,7 +2239,7 @@ select {
1771
2239
  display: -webkit-box;
1772
2240
  overflow: hidden;
1773
2241
  min-height: 62px;
1774
- margin: 12px 0 18px;
2242
+ margin: 10px 0 16px;
1775
2243
  color: var(--store-muted);
1776
2244
  font-size: 14px;
1777
2245
  line-height: 1.55;
@@ -1779,6 +2247,18 @@ select {
1779
2247
  -webkit-line-clamp: 3;
1780
2248
  }
1781
2249
 
2250
+ .editorial-card-date {
2251
+ display: block;
2252
+ margin-top: 10px;
2253
+ color: var(--store-muted);
2254
+ font-size: 11px;
2255
+ font-weight: 700;
2256
+ }
2257
+
2258
+ .editorial-card-date + p {
2259
+ margin-top: 10px;
2260
+ }
2261
+
1782
2262
  .article-page {
1783
2263
  padding: 32px 0 100px;
1784
2264
  }
@@ -1814,10 +2294,14 @@ select {
1814
2294
  }
1815
2295
 
1816
2296
  .article-cover {
2297
+ display: block;
2298
+ width: 100%;
2299
+ aspect-ratio: 16 / 9;
1817
2300
  overflow: hidden;
1818
2301
  max-height: 620px;
1819
2302
  border-radius: var(--border-radius);
1820
2303
  background: #eef0ea;
2304
+ object-fit: cover;
1821
2305
  }
1822
2306
 
1823
2307
  .article-cover img,
@@ -1881,30 +2365,34 @@ select {
1881
2365
  align-items: end;
1882
2366
  justify-content: space-between;
1883
2367
  gap: 24px;
1884
- margin-bottom: 34px;
2368
+ margin-bottom: 28px;
1885
2369
  }
1886
2370
 
1887
2371
  .section-heading h2,
1888
2372
  .catalog-hero h1,
1889
2373
  .page-heading h1 {
1890
2374
  margin: 0;
1891
- font-size: clamp(34px, 4vw, 52px);
1892
- letter-spacing: -0.05em;
2375
+ font-size: clamp(30px, 3.4vw, 46px);
2376
+ letter-spacing: -0.045em;
1893
2377
  line-height: 1.05;
1894
2378
  }
1895
2379
 
1896
2380
  .section-heading a {
1897
- border-bottom: 1px solid currentColor;
1898
- padding-bottom: 4px;
1899
- color: var(--color-secondary);
1900
- font-size: 14px;
2381
+ display: inline-flex;
2382
+ min-height: 40px;
2383
+ align-items: center;
2384
+ border: 1px solid var(--store-line);
2385
+ border-radius: 999px;
2386
+ padding: 8px 13px;
2387
+ color: var(--color-primary);
2388
+ font-size: 12px;
1901
2389
  font-weight: 800;
1902
2390
  }
1903
2391
 
1904
2392
  .product-grid {
1905
2393
  display: grid;
1906
2394
  grid-template-columns: repeat(4, minmax(0, 1fr));
1907
- gap: 22px;
2395
+ gap: 16px;
1908
2396
  }
1909
2397
 
1910
2398
  .product-grid[data-columns="3"] {
@@ -1923,8 +2411,8 @@ select {
1923
2411
  display: flex;
1924
2412
  align-items: stretch;
1925
2413
  overflow-x: auto;
1926
- gap: 22px;
1927
- padding: 5px 0 25px;
2414
+ gap: 16px;
2415
+ padding: 4px 0 22px;
1928
2416
  scroll-behavior: smooth;
1929
2417
  scroll-snap-type: x mandatory;
1930
2418
  scrollbar-width: none;
@@ -1934,8 +2422,8 @@ select {
1934
2422
 
1935
2423
  .product-carousel-item {
1936
2424
  display: flex;
1937
- flex: 0 0 calc((100% - 66px) / 4);
1938
- min-width: 250px;
2425
+ flex: 0 0 calc((100% - 48px) / 4);
2426
+ min-width: 230px;
1939
2427
  scroll-snap-align: start;
1940
2428
  }
1941
2429
 
@@ -1955,14 +2443,14 @@ select {
1955
2443
  flex-direction: column;
1956
2444
  overflow: hidden;
1957
2445
  border: 1px solid var(--store-line);
1958
- border-radius: var(--border-radius);
2446
+ border-radius: var(--radius-md);
1959
2447
  background: var(--store-surface);
1960
2448
  transition: transform 180ms ease, box-shadow 180ms ease;
1961
2449
  }
1962
2450
 
1963
2451
  .product-card:hover {
1964
2452
  transform: translateY(-4px);
1965
- box-shadow: 0 20px 50px rgba(24, 34, 27, 0.1);
2453
+ box-shadow: var(--shadow-card);
1966
2454
  }
1967
2455
 
1968
2456
  .product-card-image {
@@ -1970,7 +2458,7 @@ select {
1970
2458
  display: block;
1971
2459
  overflow: hidden;
1972
2460
  aspect-ratio: 1 / 1;
1973
- background: var(--store-surface-alt);
2461
+ background: color-mix(in srgb, var(--store-surface-alt), #fff 30%);
1974
2462
  }
1975
2463
 
1976
2464
  .product-card-image img,
@@ -1981,6 +2469,37 @@ select {
1981
2469
  transition: transform 300ms ease;
1982
2470
  }
1983
2471
 
2472
+ .product-card-badge,
2473
+ .product-card-stock {
2474
+ position: absolute;
2475
+ z-index: 2;
2476
+ top: 12px;
2477
+ left: 12px;
2478
+ display: inline-flex;
2479
+ min-height: 25px;
2480
+ align-items: center;
2481
+ border-radius: 999px;
2482
+ padding: 5px 9px;
2483
+ font-size: 10px;
2484
+ font-weight: 900;
2485
+ letter-spacing: .04em;
2486
+ }
2487
+
2488
+ .product-card-badge {
2489
+ background: var(--color-accent);
2490
+ color: #fff;
2491
+ }
2492
+
2493
+ .product-card-stock {
2494
+ background: rgba(23, 32, 25, .84);
2495
+ color: #fff;
2496
+ }
2497
+
2498
+ .product-card[data-unavailable="true"] .product-card-image img {
2499
+ filter: saturate(.25);
2500
+ opacity: .72;
2501
+ }
2502
+
1984
2503
  .product-card:hover .product-card-image img {
1985
2504
  transform: scale(1.035);
1986
2505
  }
@@ -2003,7 +2522,7 @@ select {
2003
2522
  display: flex;
2004
2523
  flex: 1;
2005
2524
  flex-direction: column;
2006
- padding: 20px;
2525
+ padding: 16px;
2007
2526
  }
2008
2527
 
2009
2528
  .product-category {
@@ -2025,7 +2544,7 @@ select {
2025
2544
  min-height: 48px;
2026
2545
  overflow: hidden;
2027
2546
  margin: 0;
2028
- font-size: 18px;
2547
+ font-size: 16px;
2029
2548
  letter-spacing: -0.025em;
2030
2549
  line-height: 1.35;
2031
2550
  -webkit-box-orient: vertical;
@@ -2036,18 +2555,52 @@ select {
2036
2555
  display: -webkit-box;
2037
2556
  min-height: 42px;
2038
2557
  overflow: hidden;
2039
- margin: 10px 0 18px;
2558
+ margin: 8px 0 14px;
2040
2559
  color: var(--store-muted);
2041
- font-size: 13px;
2560
+ font-size: 12px;
2042
2561
  line-height: 1.55;
2043
2562
  -webkit-box-orient: vertical;
2044
2563
  -webkit-line-clamp: 2;
2045
2564
  }
2046
2565
 
2566
+ .product-card-price {
2567
+ display: grid;
2568
+ gap: 2px;
2569
+ margin-top: auto;
2570
+ padding-top: 4px;
2571
+ }
2572
+
2573
+ .product-card-price s {
2574
+ color: var(--store-muted);
2575
+ font-size: 12px;
2576
+ line-height: 1.2;
2577
+ }
2578
+
2579
+ .product-card-price strong {
2580
+ color: var(--color-primary);
2581
+ font-size: 20px;
2582
+ letter-spacing: -.035em;
2583
+ line-height: 1.2;
2584
+ }
2585
+
2586
+ .product-card-price > span {
2587
+ color: var(--store-muted);
2588
+ font-size: 13px;
2589
+ font-weight: 700;
2590
+ }
2591
+
2592
+ .product-card-sku {
2593
+ display: block;
2594
+ min-height: 16px;
2595
+ margin-top: 5px;
2596
+ color: var(--store-muted);
2597
+ font-size: 10px;
2598
+ }
2599
+
2047
2600
  .product-card-content > .button {
2048
2601
  position: relative;
2049
2602
  z-index: 1;
2050
- margin-top: auto;
2603
+ margin-top: 16px;
2051
2604
  }
2052
2605
 
2053
2606
  .product-card-details-link::after {
@@ -2060,11 +2613,18 @@ select {
2060
2613
  cursor: pointer;
2061
2614
  }
2062
2615
 
2616
+ .product-card-action-unavailable {
2617
+ border-color: var(--store-line);
2618
+ background: var(--store-surface-alt);
2619
+ color: var(--store-muted);
2620
+ cursor: not-allowed;
2621
+ }
2622
+
2063
2623
  .benefits-section {
2064
2624
  border-top: 1px solid var(--store-line);
2065
2625
  border-bottom: 1px solid var(--store-line);
2066
2626
  background: var(--store-surface);
2067
- padding: 34px 0;
2627
+ padding: 28px 0;
2068
2628
  }
2069
2629
 
2070
2630
  .benefits-grid {
@@ -2093,6 +2653,162 @@ select {
2093
2653
  font-size: 12px;
2094
2654
  }
2095
2655
 
2656
+ .home-categories-section {
2657
+ background: var(--store-surface);
2658
+ }
2659
+
2660
+ .home-category-grid {
2661
+ display: grid;
2662
+ grid-template-columns: repeat(4, minmax(0, 1fr));
2663
+ gap: var(--space-4);
2664
+ }
2665
+
2666
+ .home-category-card {
2667
+ display: grid;
2668
+ min-height: 250px;
2669
+ align-content: end;
2670
+ overflow: hidden;
2671
+ border: 1px solid var(--store-line);
2672
+ border-radius: var(--radius-lg);
2673
+ background: var(--store-surface-alt);
2674
+ color: var(--store-text);
2675
+ isolation: isolate;
2676
+ padding: 18px;
2677
+ position: relative;
2678
+ transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
2679
+ }
2680
+
2681
+ .home-category-card:hover {
2682
+ border-color: color-mix(in srgb, var(--color-primary), var(--store-line) 55%);
2683
+ box-shadow: var(--shadow-card);
2684
+ transform: translateY(-3px);
2685
+ }
2686
+
2687
+ .home-category-card img,
2688
+ .home-category-card .home-category-placeholder {
2689
+ position: absolute;
2690
+ z-index: -1;
2691
+ inset: 0;
2692
+ width: 100%;
2693
+ height: 100%;
2694
+ object-fit: cover;
2695
+ transition: transform 260ms ease;
2696
+ }
2697
+
2698
+ .home-category-card:hover img {
2699
+ transform: scale(1.04);
2700
+ }
2701
+
2702
+ .home-category-card:has(img)::after {
2703
+ position: absolute;
2704
+ z-index: -1;
2705
+ inset: 0;
2706
+ background: linear-gradient(0deg, rgba(10, 21, 13, .65), rgba(10, 21, 13, 0) 62%);
2707
+ content: "";
2708
+ }
2709
+
2710
+ .home-category-placeholder {
2711
+ display: grid;
2712
+ place-items: center;
2713
+ background: color-mix(in srgb, var(--color-primary), #fff 90%);
2714
+ color: color-mix(in srgb, var(--color-primary), transparent 55%);
2715
+ font-size: 80px;
2716
+ font-weight: 850;
2717
+ }
2718
+
2719
+ .home-category-card:has(img) > span,
2720
+ .home-category-card:has(img) > small {
2721
+ color: #fff;
2722
+ }
2723
+
2724
+ .home-category-card > span {
2725
+ font-size: 18px;
2726
+ font-weight: 800;
2727
+ letter-spacing: -.025em;
2728
+ }
2729
+
2730
+ .home-category-card small {
2731
+ margin-top: 4px;
2732
+ color: var(--store-muted);
2733
+ font-size: 12px;
2734
+ font-weight: 700;
2735
+ }
2736
+
2737
+ .home-category-card small b {
2738
+ margin-left: 4px;
2739
+ font-size: 14px;
2740
+ }
2741
+
2742
+ .home-benefits-section {
2743
+ border-block: 1px solid var(--store-line);
2744
+ background: var(--store-surface-alt);
2745
+ }
2746
+
2747
+ .home-benefits-grid {
2748
+ display: grid;
2749
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2750
+ gap: var(--space-4);
2751
+ }
2752
+
2753
+ .home-benefits-grid > article,
2754
+ .home-benefits-grid > a {
2755
+ display: grid;
2756
+ gap: 8px;
2757
+ border: 1px solid var(--store-line);
2758
+ border-radius: var(--radius-md);
2759
+ background: var(--store-surface);
2760
+ padding: 24px;
2761
+ }
2762
+
2763
+ .home-benefit-index {
2764
+ color: var(--color-primary);
2765
+ font-size: 11px;
2766
+ font-weight: 900;
2767
+ letter-spacing: .1em;
2768
+ }
2769
+
2770
+ .home-benefits-grid strong {
2771
+ font-size: 17px;
2772
+ letter-spacing: -.02em;
2773
+ }
2774
+
2775
+ .home-benefits-grid p {
2776
+ margin: 0;
2777
+ color: var(--store-muted);
2778
+ font-size: 14px;
2779
+ line-height: 1.55;
2780
+ }
2781
+
2782
+ .home-brands-grid {
2783
+ display: grid;
2784
+ grid-template-columns: repeat(5, minmax(0, 1fr));
2785
+ gap: var(--space-3);
2786
+ }
2787
+
2788
+ .home-brands-grid > article,
2789
+ .home-brands-grid > a {
2790
+ display: grid;
2791
+ min-height: 104px;
2792
+ place-items: center;
2793
+ overflow: hidden;
2794
+ border: 1px solid var(--store-line);
2795
+ border-radius: var(--radius-md);
2796
+ background: var(--store-surface);
2797
+ padding: var(--space-4);
2798
+ text-align: center;
2799
+ }
2800
+
2801
+ .home-brands-grid img {
2802
+ width: 100%;
2803
+ max-width: 150px;
2804
+ max-height: 54px;
2805
+ object-fit: contain;
2806
+ }
2807
+
2808
+ .home-brands-grid strong {
2809
+ font-size: 14px;
2810
+ }
2811
+
2096
2812
  .catalog-hero {
2097
2813
  border-bottom: 1px solid var(--store-line);
2098
2814
  background: color-mix(in srgb, var(--color-primary), #fff 94%);
@@ -2567,46 +3283,141 @@ select {
2567
3283
  hyphens: auto;
2568
3284
  }
2569
3285
 
2570
- .product-description {
2571
- margin: 26px 0;
3286
+ .product-price-block {
3287
+ display: flex;
3288
+ flex-wrap: wrap;
3289
+ align-items: baseline;
3290
+ gap: 8px 12px;
3291
+ margin-top: 20px;
3292
+ }
3293
+
3294
+ .product-price-block s {
2572
3295
  color: var(--store-muted);
2573
- font-size: 16px;
2574
- line-height: 1.75;
2575
- white-space: pre-line;
3296
+ font-size: 15px;
2576
3297
  }
2577
3298
 
2578
- .product-description > :first-child {
2579
- margin-top: 0;
3299
+ .product-price-block strong {
3300
+ color: var(--color-primary);
3301
+ font-size: clamp(28px, 3vw, 38px);
3302
+ letter-spacing: -.05em;
3303
+ line-height: 1;
2580
3304
  }
2581
3305
 
2582
- .product-description > :last-child {
2583
- margin-bottom: 0;
3306
+ .product-price-block > span {
3307
+ color: var(--store-muted);
3308
+ font-size: 15px;
3309
+ font-weight: 700;
2584
3310
  }
2585
3311
 
2586
- .product-description p,
2587
- .product-description ul,
2588
- .product-description ol,
2589
- .product-description blockquote,
2590
- .product-description table,
2591
- .product-description figure {
2592
- margin: 0 0 16px;
3312
+ .product-price-block small {
3313
+ border-radius: 999px;
3314
+ background: color-mix(in srgb, var(--color-accent), transparent 88%);
3315
+ padding: 5px 8px;
3316
+ color: var(--color-accent);
3317
+ font-size: 11px;
3318
+ font-weight: 850;
2593
3319
  }
2594
3320
 
2595
- .product-description ul,
2596
- .product-description ol {
2597
- padding-left: 24px;
3321
+ .product-availability,
3322
+ .product-reference {
3323
+ margin: 10px 0 0;
3324
+ color: var(--store-muted);
3325
+ font-size: 12px;
3326
+ font-weight: 700;
2598
3327
  }
2599
3328
 
2600
- .product-description li + li {
2601
- margin-top: 6px;
3329
+ .product-availability {
3330
+ color: var(--color-primary);
2602
3331
  }
2603
3332
 
2604
- .product-description h1,
2605
- .product-description h2,
2606
- .product-description h3,
2607
- .product-description h4,
2608
- .product-description h5,
2609
- .product-description h6 {
3333
+ .product-availability.unavailable {
3334
+ color: #a1241c;
3335
+ }
3336
+
3337
+ .product-specifications {
3338
+ margin: 26px 0;
3339
+ border-top: 1px solid var(--store-line);
3340
+ padding-top: 22px;
3341
+ }
3342
+
3343
+ .product-specifications h2 {
3344
+ margin: 0 0 12px;
3345
+ font-size: 16px;
3346
+ letter-spacing: -.02em;
3347
+ }
3348
+
3349
+ .product-specifications dl {
3350
+ display: grid;
3351
+ gap: 0;
3352
+ margin: 0;
3353
+ border: 1px solid var(--store-line);
3354
+ border-radius: var(--radius-md);
3355
+ overflow: hidden;
3356
+ }
3357
+
3358
+ .product-specifications dl > div {
3359
+ display: grid;
3360
+ grid-template-columns: minmax(105px, .7fr) minmax(0, 1.3fr);
3361
+ gap: 14px;
3362
+ padding: 10px 12px;
3363
+ }
3364
+
3365
+ .product-specifications dl > div + div {
3366
+ border-top: 1px solid var(--store-line);
3367
+ }
3368
+
3369
+ .product-specifications dt {
3370
+ color: var(--store-muted);
3371
+ font-size: 12px;
3372
+ }
3373
+
3374
+ .product-specifications dd {
3375
+ margin: 0;
3376
+ font-size: 12px;
3377
+ font-weight: 750;
3378
+ overflow-wrap: anywhere;
3379
+ }
3380
+
3381
+ .product-description {
3382
+ margin: 26px 0;
3383
+ color: var(--store-muted);
3384
+ font-size: 16px;
3385
+ line-height: 1.75;
3386
+ white-space: pre-line;
3387
+ }
3388
+
3389
+ .product-description > :first-child {
3390
+ margin-top: 0;
3391
+ }
3392
+
3393
+ .product-description > :last-child {
3394
+ margin-bottom: 0;
3395
+ }
3396
+
3397
+ .product-description p,
3398
+ .product-description ul,
3399
+ .product-description ol,
3400
+ .product-description blockquote,
3401
+ .product-description table,
3402
+ .product-description figure {
3403
+ margin: 0 0 16px;
3404
+ }
3405
+
3406
+ .product-description ul,
3407
+ .product-description ol {
3408
+ padding-left: 24px;
3409
+ }
3410
+
3411
+ .product-description li + li {
3412
+ margin-top: 6px;
3413
+ }
3414
+
3415
+ .product-description h1,
3416
+ .product-description h2,
3417
+ .product-description h3,
3418
+ .product-description h4,
3419
+ .product-description h5,
3420
+ .product-description h6 {
2610
3421
  margin: 24px 0 10px;
2611
3422
  color: var(--store-text);
2612
3423
  font-size: clamp(18px, 2vw, 24px);
@@ -2649,6 +3460,17 @@ select {
2649
3460
  max-width: 440px;
2650
3461
  }
2651
3462
 
3463
+ .product-purchase-unavailable {
3464
+ margin: 0;
3465
+ border: 1px solid color-mix(in srgb, #a1241c, var(--store-line) 50%);
3466
+ border-radius: var(--radius-sm);
3467
+ background: #fff5f4;
3468
+ padding: 12px 14px;
3469
+ color: #a1241c;
3470
+ font-size: 13px;
3471
+ font-weight: 750;
3472
+ }
3473
+
2652
3474
  .variant-selector {
2653
3475
  display: grid;
2654
3476
  gap: 18px;
@@ -2732,108 +3554,615 @@ select {
2732
3554
  padding-top: 20px;
2733
3555
  }
2734
3556
 
2735
- .purchase-benefits span {
2736
- display: grid;
2737
- gap: 3px;
2738
- color: var(--store-muted);
2739
- font-size: 12px;
3557
+ .purchase-benefits span {
3558
+ display: grid;
3559
+ gap: 3px;
3560
+ color: var(--store-muted);
3561
+ font-size: 12px;
3562
+ }
3563
+
3564
+ .purchase-benefits strong {
3565
+ color: var(--store-text);
3566
+ font-size: 13px;
3567
+ }
3568
+
3569
+ .empty-state {
3570
+ grid-column: 1 / -1;
3571
+ border: 1px dashed var(--store-line);
3572
+ border-radius: var(--border-radius);
3573
+ background: var(--store-surface);
3574
+ padding: 68px 30px;
3575
+ text-align: center;
3576
+ }
3577
+
3578
+ .empty-state > span {
3579
+ display: grid;
3580
+ width: 58px;
3581
+ height: 58px;
3582
+ place-items: center;
3583
+ margin: 0 auto 18px;
3584
+ border-radius: 18px 6px 18px 6px;
3585
+ background: color-mix(in srgb, var(--color-primary), #fff 88%);
3586
+ color: var(--color-primary);
3587
+ font-size: 31px;
3588
+ font-weight: 900;
3589
+ }
3590
+
3591
+ .empty-state h2 {
3592
+ margin: 0;
3593
+ font-size: 24px;
3594
+ }
3595
+
3596
+ .empty-state p {
3597
+ margin: 10px 0 0;
3598
+ color: var(--store-muted);
3599
+ }
3600
+
3601
+ .empty-state .button {
3602
+ margin-top: 24px;
3603
+ }
3604
+
3605
+ .store-footer {
3606
+ flex: 0 0 auto;
3607
+ background: var(--store-footer-background);
3608
+ color: var(--store-footer-text);
3609
+ padding: 72px 0 22px;
3610
+ }
3611
+
3612
+ .footer-grid {
3613
+ display: grid;
3614
+ grid-template-columns: minmax(260px, 2fr) repeat(auto-fit, minmax(130px, 1fr));
3615
+ gap: 56px;
3616
+ }
3617
+
3618
+ .footer-grid > div {
3619
+ display: flex;
3620
+ flex-direction: column;
3621
+ align-items: flex-start;
3622
+ gap: 10px;
3623
+ }
3624
+
3625
+ .footer-grid strong {
3626
+ margin-bottom: 6px;
3627
+ font-size: 14px;
3628
+ }
3629
+
3630
+ .footer-grid .footer-brand {
3631
+ display: inline-flex;
3632
+ align-items: center;
3633
+ min-height: 36px;
3634
+ color: var(--store-footer-text);
3635
+ font-size: 24px;
3636
+ letter-spacing: -0.04em;
3637
+ }
3638
+
3639
+ .footer-logo {
3640
+ width: auto;
3641
+ max-width: 200px;
3642
+ height: 52px;
3643
+ object-fit: contain;
3644
+ }
3645
+
3646
+ .footer-grid p,
3647
+ .footer-grid a,
3648
+ .footer-grid span {
3649
+ max-width: 480px;
3650
+ margin: 0;
3651
+ color: color-mix(in srgb, var(--store-footer-text), transparent 38%);
3652
+ font-size: 13px;
3653
+ line-height: 1.65;
3654
+ }
3655
+
3656
+ .footer-grid a:hover {
3657
+ color: var(--store-footer-text);
3658
+ }
3659
+
3660
+ .footer-contact-cta {
3661
+ display: inline-flex;
3662
+ align-items: center;
3663
+ gap: 8px;
3664
+ margin-top: 8px !important;
3665
+ color: var(--store-footer-text) !important;
3666
+ font-weight: 800;
3667
+ }
3668
+
3669
+ .footer-contact-cta span {
3670
+ color: inherit !important;
3671
+ font-size: 16px !important;
3672
+ }
3673
+
3674
+ .footer-bottom {
3675
+ display: flex;
3676
+ justify-content: space-between;
3677
+ gap: 20px;
3678
+ margin-top: 48px;
3679
+ border-top: 1px solid color-mix(in srgb, var(--store-footer-text), transparent 88%);
3680
+ padding-top: 22px;
3681
+ color: color-mix(in srgb, var(--store-footer-text), transparent 54%);
3682
+ font-size: 11px;
3683
+ }
3684
+
3685
+ /* Composição densa de storefront: as seções continuam sendo entregues pelo tenant. */
3686
+ .announcement {
3687
+ background: var(--store-footer-background);
3688
+ font-size: 10px;
3689
+ }
3690
+
3691
+ .announcement-inner {
3692
+ min-height: 28px;
3693
+ }
3694
+
3695
+ .store-header {
3696
+ position: sticky;
3697
+ z-index: 30;
3698
+ top: 0;
3699
+ flex: 0 0 auto;
3700
+ border-bottom: 0;
3701
+ background: var(--store-header-background);
3702
+ backdrop-filter: none;
3703
+ }
3704
+
3705
+ .header-inner {
3706
+ position: relative;
3707
+ display: grid;
3708
+ grid-template-columns: minmax(150px, 1fr) minmax(0, 760px) minmax(150px, 1fr);
3709
+ min-height: 68px;
3710
+ gap: 24px;
3711
+ transition: min-height 220ms ease, gap 220ms ease;
3712
+ }
3713
+
3714
+ .brand {
3715
+ max-width: 180px;
3716
+ justify-self: start;
3717
+ font-size: 22px;
3718
+ }
3719
+
3720
+ .brand-mark {
3721
+ width: 34px;
3722
+ height: 34px;
3723
+ border-radius: 8px 3px 8px 3px;
3724
+ font-size: 20px;
3725
+ }
3726
+
3727
+ .brand-logo {
3728
+ max-width: 165px;
3729
+ height: 42px;
3730
+ }
3731
+
3732
+ .store-header.is-compact .header-inner {
3733
+ min-height: 52px;
3734
+ gap: 18px;
3735
+ }
3736
+
3737
+ .store-header.is-compact .brand-logo {
3738
+ height: 32px;
3739
+ }
3740
+
3741
+ .store-header.is-compact .main-nav-group,
3742
+ .store-header.is-compact .main-nav-group > a {
3743
+ min-height: 32px;
3744
+ }
3745
+
3746
+ .store-header.is-compact .header-search-shell,
3747
+ .store-header.is-compact .header-search-toggle,
3748
+ .store-header.is-compact .cart-button {
3749
+ width: 34px;
3750
+ height: 34px;
3751
+ flex-basis: 34px;
3752
+ }
3753
+
3754
+ .store-header.is-compact .header-highlight-link {
3755
+ min-height: 34px;
3756
+ padding-block: 7px;
3757
+ }
3758
+
3759
+ .header-search-shell {
3760
+ position: relative;
3761
+ z-index: 45;
3762
+ width: 38px;
3763
+ height: 38px;
3764
+ flex: 0 0 38px;
3765
+ max-width: none;
3766
+ transition: width 260ms cubic-bezier(.2, .8, .2, 1);
3767
+ }
3768
+
3769
+ .header-tools {
3770
+ grid-column: 3;
3771
+ justify-self: end;
3772
+ }
3773
+
3774
+ .main-nav-inline {
3775
+ grid-column: 2;
3776
+ width: 100%;
3777
+ min-width: 0;
3778
+ justify-content: center;
3779
+ gap: clamp(14px, 2vw, 28px);
3780
+ }
3781
+
3782
+ .header-search-toggle {
3783
+ display: grid;
3784
+ width: 38px;
3785
+ height: 38px;
3786
+ place-items: center;
3787
+ border: 0;
3788
+ border-radius: 6px;
3789
+ background: transparent;
3790
+ color: var(--store-text);
3791
+ cursor: pointer;
3792
+ }
3793
+
3794
+ .header-search-toggle:hover {
3795
+ background: var(--store-surface-alt);
3796
+ }
3797
+
3798
+ .header-search-toggle svg,
3799
+ .header-search-close {
3800
+ width: 18px;
3801
+ height: 18px;
3802
+ fill: none;
3803
+ stroke: currentColor;
3804
+ stroke-width: 2;
3805
+ stroke-linecap: round;
3806
+ }
3807
+
3808
+ .header-search-shell > .header-search {
3809
+ position: absolute;
3810
+ inset: 0;
3811
+ opacity: 0;
3812
+ pointer-events: none;
3813
+ clip-path: inset(0 0 0 100%);
3814
+ transition: clip-path 280ms cubic-bezier(.2, .8, .2, 1), opacity 160ms ease;
3815
+ }
3816
+
3817
+ .header-search-shell.is-expanded {
3818
+ position: relative;
3819
+ width: 38px;
3820
+ }
3821
+
3822
+ .header-search-shell.is-expanded > .header-search {
3823
+ inset: auto;
3824
+ top: 0;
3825
+ right: 0;
3826
+ width: min(640px, calc(100vw - 40px));
3827
+ opacity: 1;
3828
+ pointer-events: auto;
3829
+ clip-path: inset(0);
3830
+ }
3831
+
3832
+ .header-search-shell.is-expanded .header-search-toggle {
3833
+ opacity: 0;
3834
+ pointer-events: none;
3835
+ }
3836
+
3837
+ .header-search-shell:not(.is-expanded) .search-suggestions {
3838
+ display: none;
3839
+ }
3840
+
3841
+ .header-search-shell.is-expanded .search-suggestions {
3842
+ right: 0;
3843
+ left: auto;
3844
+ width: min(640px, calc(100vw - 40px));
3845
+ }
3846
+
3847
+ /* A barra é formada exclusivamente pelos itens configurados no painel. */
3848
+ .main-nav {
3849
+ justify-content: center;
3850
+ gap: 22px;
3851
+ }
3852
+
3853
+ .main-nav.main-nav-inline {
3854
+ justify-content: flex-start;
3855
+ padding-left: clamp(32px, 5vw, 72px);
3856
+ }
3857
+
3858
+ .main-nav-group {
3859
+ position: relative;
3860
+ min-height: 38px;
3861
+ }
3862
+
3863
+ .main-nav-group > a {
3864
+ min-height: 38px;
3865
+ font-size: 11px;
3866
+ }
3867
+
3868
+ /* Subcategorias ficam ancoradas no próprio item, sem intervalo de hover. */
3869
+ .main-nav-group .configured-category-submenu {
3870
+ top: 100%;
3871
+ left: 0;
3872
+ width: min(230px, calc(100vw - 32px));
3873
+ max-height: 360px;
3874
+ transform: none;
3875
+ border-radius: 8px;
3876
+ box-shadow: var(--shadow-overlay);
3877
+ padding: 6px;
3878
+ }
3879
+
3880
+ .configured-category-heading {
3881
+ display: none;
3882
+ }
3883
+
3884
+ .configured-category-heading strong {
3885
+ font-size: 12px;
3886
+ }
3887
+
3888
+ .configured-category-heading span {
3889
+ display: none;
3890
+ }
3891
+
3892
+ .main-nav .configured-category-heading > a {
3893
+ border-radius: 6px;
3894
+ padding: 5px 7px;
3895
+ background: transparent;
3896
+ color: var(--color-primary);
3897
+ font-size: 10px;
3898
+ }
3899
+
3900
+ .configured-category-grid {
3901
+ grid-template-columns: 1fr;
3902
+ max-height: 348px;
3903
+ gap: 2px;
3904
+ padding: 0;
3905
+ }
3906
+
3907
+ .configured-category-grid > .category-nav-tree-node > a {
3908
+ min-height: 38px;
3909
+ border-radius: 6px;
3910
+ padding-inline: 12px !important;
3911
+ background: transparent;
3912
+ font-size: 12px;
3913
+ }
3914
+
3915
+ .configured-category-grid > .category-nav-tree-node > a:hover {
3916
+ background: var(--store-surface-alt);
3917
+ color: var(--color-primary);
3918
+ }
3919
+
3920
+ .configured-category-grid .category-nav-tree-node .category-nav-tree-node > a {
3921
+ min-height: 28px;
3922
+ padding-inline: 10px !important;
3923
+ font-size: 10px;
3924
+ }
3925
+
3926
+ .header-search input {
3927
+ height: 40px;
3928
+ border-radius: 7px;
3929
+ background: var(--store-surface-alt);
3930
+ padding-left: 14px;
3931
+ font-size: 11px;
3932
+ }
3933
+
3934
+ .header-search button {
3935
+ width: 32px;
3936
+ height: 32px;
3937
+ border-radius: 6px;
3938
+ background: transparent;
3939
+ color: var(--store-text);
3940
+ }
3941
+
3942
+ .header-search button[type="submit"] {
3943
+ right: 42px;
3944
+ }
3945
+
3946
+ .header-search-close {
3947
+ position: absolute;
3948
+ top: 50%;
3949
+ right: 5px;
3950
+ display: grid;
3951
+ width: 32px;
3952
+ height: 32px;
3953
+ place-items: center;
3954
+ transform: translateY(-50%);
3955
+ border: 0;
3956
+ border-radius: 6px;
3957
+ background: transparent;
3958
+ color: var(--store-text);
3959
+ cursor: pointer;
3960
+ font-size: 23px;
3961
+ line-height: 1;
3962
+ }
3963
+
3964
+ .header-search-close:hover {
3965
+ background: var(--store-surface-alt);
3966
+ }
3967
+
3968
+ .header-search-shell.is-expanded .header-search input {
3969
+ padding-right: 90px;
3970
+ }
3971
+
3972
+ .header-message {
3973
+ min-width: 145px;
3974
+ min-height: 38px;
3975
+ flex: 0 1 180px;
3976
+ border: 0;
3977
+ border-radius: 0;
3978
+ background: transparent;
3979
+ padding: 0;
3980
+ }
3981
+
3982
+ .header-message-icon {
3983
+ width: 26px;
3984
+ height: 26px;
3985
+ flex-basis: 26px;
3986
+ border-radius: 50%;
3987
+ background: var(--store-surface-alt);
3988
+ color: var(--color-primary);
3989
+ }
3990
+
3991
+ .header-message-icon svg { width: 14px; height: 14px; }
3992
+ .header-message-copy small { color: var(--store-muted); font-size: 8px; }
3993
+ .header-message-copy strong { font-size: 9px; }
3994
+
3995
+ .cart-button,
3996
+ .mobile-menu-trigger {
3997
+ width: 38px;
3998
+ height: 38px;
3999
+ flex-basis: 38px;
4000
+ border: 0;
4001
+ border-radius: 6px;
4002
+ background: transparent;
4003
+ }
4004
+
4005
+ .cart-button:hover,
4006
+ .mobile-menu-trigger:hover {
4007
+ background: var(--store-surface-alt);
4008
+ }
4009
+
4010
+ .carousel-arrow {
4011
+ transition: background 160ms ease, color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
4012
+ }
4013
+
4014
+ .carousel-arrow svg {
4015
+ width: 18px;
4016
+ height: 18px;
4017
+ fill: none;
4018
+ stroke: currentColor;
4019
+ stroke-linecap: round;
4020
+ stroke-linejoin: round;
4021
+ stroke-width: 2.25;
4022
+ }
4023
+
4024
+ .carousel-arrow:hover {
4025
+ background: var(--color-primary);
4026
+ box-shadow: 0 10px 24px color-mix(in srgb, var(--color-primary), transparent 70%);
4027
+ color: var(--color-primary-text);
2740
4028
  }
2741
4029
 
2742
- .purchase-benefits strong {
2743
- color: var(--store-text);
2744
- font-size: 13px;
4030
+ .banner-carousel .carousel-arrow {
4031
+ width: 40px;
4032
+ height: 40px;
4033
+ font-size: 0;
2745
4034
  }
2746
4035
 
2747
- .empty-state {
2748
- grid-column: 1 / -1;
2749
- border: 1px dashed var(--store-line);
2750
- border-radius: var(--border-radius);
4036
+ .product-carousel {
4037
+ padding-top: 46px;
4038
+ }
4039
+
4040
+ .product-carousel .carousel-arrow {
4041
+ top: 0;
4042
+ width: 34px;
4043
+ height: 34px;
4044
+ transform: none;
2751
4045
  background: var(--store-surface);
2752
- padding: 68px 30px;
2753
- text-align: center;
2754
4046
  }
2755
4047
 
2756
- .empty-state > span {
2757
- display: grid;
2758
- width: 58px;
2759
- height: 58px;
2760
- place-items: center;
2761
- margin: 0 auto 18px;
2762
- border-radius: 18px 6px 18px 6px;
2763
- background: color-mix(in srgb, var(--color-primary), #fff 88%);
2764
- color: var(--color-primary);
2765
- font-size: 31px;
2766
- font-weight: 900;
4048
+ .product-carousel .carousel-arrow-prev {
4049
+ right: 42px;
4050
+ left: auto;
2767
4051
  }
2768
4052
 
2769
- .empty-state h2 {
2770
- margin: 0;
2771
- font-size: 24px;
4053
+ .product-carousel .carousel-arrow-next {
4054
+ right: 0;
2772
4055
  }
2773
4056
 
2774
- .empty-state p {
2775
- margin: 10px 0 0;
2776
- color: var(--store-muted);
4057
+ .primary-nav-shell,
4058
+ .category-nav {
4059
+ border-top: 1px solid var(--store-line);
4060
+ border-bottom: 1px solid var(--store-line);
4061
+ background: var(--store-surface);
2777
4062
  }
2778
4063
 
2779
- .empty-state .button {
2780
- margin-top: 24px;
4064
+ .category-nav-inner {
4065
+ min-height: 38px;
4066
+ justify-content: flex-start;
4067
+ gap: 18px;
2781
4068
  }
2782
4069
 
2783
- .store-footer {
2784
- background: var(--store-footer-background);
2785
- color: var(--store-footer-text);
2786
- padding: 64px 0 22px;
4070
+ .category-nav .all-categories,
4071
+ .category-nav a {
4072
+ min-height: 37px;
4073
+ padding-top: 8px;
4074
+ padding-bottom: 8px;
4075
+ font-size: 10px;
2787
4076
  }
2788
4077
 
2789
- .footer-grid {
2790
- display: grid;
2791
- grid-template-columns: minmax(260px, 2fr) repeat(auto-fit, minmax(130px, 1fr));
2792
- gap: 72px;
4078
+ .category-nav .all-categories {
4079
+ padding-right: 18px;
2793
4080
  }
2794
4081
 
2795
- .footer-grid > div {
2796
- display: flex;
2797
- flex-direction: column;
2798
- align-items: flex-start;
2799
- gap: 10px;
4082
+ .main-nav a,
4083
+ .text-link {
4084
+ font-size: 11px;
2800
4085
  }
2801
4086
 
2802
- .footer-grid strong {
2803
- margin-bottom: 6px;
2804
- font-size: 14px;
4087
+ .hero-section-image {
4088
+ min-height: clamp(390px, 39vw, 560px);
2805
4089
  }
2806
4090
 
2807
- .footer-grid .footer-brand {
2808
- font-size: 24px;
2809
- letter-spacing: -0.04em;
4091
+ .hero-image-content {
4092
+ padding-block: 58px;
2810
4093
  }
2811
4094
 
2812
- .footer-grid p,
2813
- .footer-grid a,
2814
- .footer-grid span {
2815
- max-width: 480px;
2816
- margin: 0;
2817
- color: color-mix(in srgb, var(--store-footer-text), transparent 38%);
2818
- font-size: 13px;
2819
- line-height: 1.65;
4095
+ .hero-copy h1 {
4096
+ max-width: 560px;
4097
+ font-size: clamp(36px, 4.4vw, 60px);
2820
4098
  }
2821
4099
 
2822
- .footer-grid a:hover {
2823
- color: var(--store-footer-text);
4100
+ .hero-copy p {
4101
+ max-width: 470px;
4102
+ font-size: clamp(14px, 1.45vw, 17px);
2824
4103
  }
2825
4104
 
2826
- .footer-bottom {
2827
- display: flex;
2828
- justify-content: space-between;
2829
- gap: 20px;
2830
- margin-top: 48px;
2831
- border-top: 1px solid color-mix(in srgb, var(--store-footer-text), transparent 88%);
2832
- padding-top: 22px;
2833
- color: color-mix(in srgb, var(--store-footer-text), transparent 54%);
2834
- font-size: 11px;
4105
+ .hero-eyebrow,
4106
+ .catalog-hero > div > span,
4107
+ .page-heading > span,
4108
+ .section-heading > div > span {
4109
+ margin-bottom: 10px;
4110
+ font-size: 9px;
4111
+ letter-spacing: .12em;
2835
4112
  }
2836
4113
 
4114
+ .home-banner-section { padding-top: 0; }
4115
+ .banner-slide { height: min(var(--banner-desktop-height, 590px), 470px); }
4116
+ .banner-copy { max-width: 470px; }
4117
+ .banner-copy h2 { font-size: clamp(30px, 3.6vw, 50px); }
4118
+ .banner-copy p { font-size: 14px; }
4119
+
4120
+ .store-section { padding: clamp(42px, 5vw, 68px) 0; }
4121
+ .section-heading { margin-bottom: 20px; }
4122
+ .section-heading h2 { font-size: clamp(24px, 2.6vw, 34px); }
4123
+
4124
+ .section-heading a {
4125
+ min-height: auto;
4126
+ border: 0;
4127
+ border-radius: 0;
4128
+ padding: 3px 0;
4129
+ color: var(--store-text);
4130
+ font-size: 10px;
4131
+ text-decoration: underline;
4132
+ text-underline-offset: 4px;
4133
+ }
4134
+
4135
+ .product-grid { gap: 12px; }
4136
+ .product-carousel-track { gap: 12px; padding-bottom: 16px; }
4137
+ .product-carousel-item { flex-basis: calc((100% - 36px) / 4); min-width: 205px; }
4138
+ .product-card { border-radius: 8px; }
4139
+ .product-card-image { aspect-ratio: 1 / 1.05; }
4140
+ .product-card-content { padding: 12px; }
4141
+ .product-category { margin-bottom: 5px; font-size: 8px; }
4142
+ .product-card h3 { min-height: 38px; font-size: 13px; line-height: 1.35; }
4143
+ .product-card-description { min-height: 34px; margin: 6px 0 10px; font-size: 10px; }
4144
+ .product-card-price strong { font-size: 16px; }
4145
+ .product-card-price s { font-size: 10px; }
4146
+ .product-card-sku { min-height: 13px; margin-top: 3px; font-size: 8px; }
4147
+ .product-card-content > .button { min-height: 34px; margin-top: 10px; border-radius: 5px; padding: 7px 10px; font-size: 10px; }
4148
+ .product-card-badge, .product-card-stock { top: 8px; left: 8px; min-height: 20px; padding: 3px 6px; font-size: 8px; }
4149
+
4150
+ .editorial-grid { gap: 12px; }
4151
+ .editorial-card { border-radius: 8px; }
4152
+ .editorial-card-content { padding: 14px; }
4153
+ .editorial-card h2 { font-size: 15px; }
4154
+ .editorial-card p { min-height: 48px; margin: 7px 0 10px; font-size: 11px; }
4155
+ .editorial-card .text-link { font-size: 10px; }
4156
+
4157
+ .image-text-layout { gap: 42px; }
4158
+ .image-text-media { border-radius: 8px; }
4159
+ .image-text-copy h2 { font-size: clamp(27px, 3vw, 40px); }
4160
+ .image-text-copy p { margin-top: 14px; font-size: 15px; line-height: 1.6; }
4161
+
4162
+ .store-footer { padding: 46px 0 16px; }
4163
+ .footer-grid { gap: 36px; }
4164
+ .footer-bottom { margin-top: 34px; padding-top: 16px; }
4165
+
2837
4166
  @media (max-width: 1050px) {
2838
4167
  .header-message {
2839
4168
  display: none;
@@ -2867,14 +4196,16 @@ select {
2867
4196
  width: min(calc(100% - 28px), var(--container-width));
2868
4197
  }
2869
4198
 
2870
- .product-carousel .carousel-arrow-prev { left: 8px; }
2871
- .product-carousel .carousel-arrow-next { right: 8px; }
4199
+ .product-carousel { padding-top: 42px; }
4200
+ .product-carousel .carousel-arrow { top: 0; }
4201
+ .product-carousel .carousel-arrow-prev { right: 40px; left: auto; }
4202
+ .product-carousel .carousel-arrow-next { right: 0; }
2872
4203
 
2873
4204
  .announcement-inner {
2874
4205
  justify-content: center;
2875
4206
  }
2876
4207
 
2877
- .announcement-inner span + span {
4208
+ .announcement-inner > :not(:first-child) {
2878
4209
  display: none;
2879
4210
  }
2880
4211
 
@@ -2886,6 +4217,17 @@ select {
2886
4217
  padding-bottom: 10px;
2887
4218
  }
2888
4219
 
4220
+ .header-tools {
4221
+ grid-column: 3;
4222
+ grid-row: 1;
4223
+ justify-self: end;
4224
+ }
4225
+
4226
+ .header-tools .header-more-menu,
4227
+ .header-tools .header-highlight-link {
4228
+ display: none;
4229
+ }
4230
+
2889
4231
  .main-nav {
2890
4232
  overflow-x: auto;
2891
4233
  justify-content: flex-start;
@@ -2894,14 +4236,25 @@ select {
2894
4236
  white-space: nowrap;
2895
4237
  }
2896
4238
 
4239
+ .main-nav-inline {
4240
+ display: none;
4241
+ }
4242
+
2897
4243
  .header-search-shell {
2898
- grid-column: 1 / -1;
2899
- grid-row: 2;
2900
- max-width: none;
4244
+ grid-column: auto;
4245
+ grid-row: auto;
4246
+ }
4247
+
4248
+ .header-search-shell.is-expanded {
4249
+ position: relative;
4250
+ }
4251
+
4252
+ .header-search-shell.is-expanded > .header-search,
4253
+ .header-search-shell.is-expanded .search-suggestions {
4254
+ width: min(560px, calc(100vw - 28px));
2901
4255
  }
2902
4256
 
2903
4257
  .mobile-menu-trigger { display: grid; }
2904
- .header-actions { display: none; }
2905
4258
  .category-nav,
2906
4259
  .primary-nav-shell { display: none; }
2907
4260
 
@@ -2912,11 +4265,6 @@ select {
2912
4265
  font-size: 17px;
2913
4266
  }
2914
4267
 
2915
- .cart-button {
2916
- grid-column: 3;
2917
- justify-self: end;
2918
- }
2919
-
2920
4268
  .brand-mark {
2921
4269
  width: 34px;
2922
4270
  height: 34px;
@@ -3017,6 +4365,12 @@ select {
3017
4365
  .banner-slide {
3018
4366
  height: var(--banner-mobile-height, 420px);
3019
4367
  }
4368
+
4369
+ .banner-carousel-settings[data-image-fit="cover"] .banner-slide {
4370
+ height: auto;
4371
+ max-height: var(--banner-mobile-height, 420px);
4372
+ aspect-ratio: var(--banner-mobile-aspect-ratio, 1.78);
4373
+ }
3020
4374
  .banner-image-desktop { display: none; }
3021
4375
  .banner-image-mobile { display: block; }
3022
4376
 
@@ -3035,15 +4389,15 @@ select {
3035
4389
  }
3036
4390
 
3037
4391
  .banner-carousel .carousel-arrow {
3038
- width: 35px;
3039
- height: 35px;
4392
+ width: 44px;
4393
+ height: 44px;
3040
4394
  }
3041
4395
 
3042
4396
  .banner-carousel .carousel-arrow-prev { left: 8px; }
3043
4397
  .banner-carousel .carousel-arrow-next { right: 8px; }
3044
4398
 
3045
4399
  .store-section {
3046
- padding: 62px 0;
4400
+ padding: 56px 0;
3047
4401
  }
3048
4402
 
3049
4403
  .contact-form-layout,
@@ -3074,6 +4428,18 @@ select {
3074
4428
  gap: 24px;
3075
4429
  }
3076
4430
 
4431
+ .home-category-grid {
4432
+ grid-template-columns: repeat(2, minmax(0, 1fr));
4433
+ }
4434
+
4435
+ .home-benefits-grid {
4436
+ grid-template-columns: 1fr;
4437
+ }
4438
+
4439
+ .home-brands-grid {
4440
+ grid-template-columns: repeat(3, minmax(0, 1fr));
4441
+ }
4442
+
3077
4443
  .benefits-grid > div + div {
3078
4444
  border-top: 1px solid var(--store-line);
3079
4445
  border-left: 0;
@@ -3123,6 +4489,35 @@ select {
3123
4489
  gap: 28px;
3124
4490
  }
3125
4491
 
4492
+ .product-page {
4493
+ padding: 20px 0 64px;
4494
+ }
4495
+
4496
+ .product-info {
4497
+ padding-top: 0;
4498
+ }
4499
+
4500
+ .product-main-image {
4501
+ border-radius: var(--radius-md);
4502
+ }
4503
+
4504
+ .product-thumbnails {
4505
+ gap: 8px;
4506
+ }
4507
+
4508
+ .article-page {
4509
+ padding: 20px 0 64px;
4510
+ }
4511
+
4512
+ .article-header {
4513
+ margin: 40px auto 28px;
4514
+ }
4515
+
4516
+ .product-specifications dl > div {
4517
+ grid-template-columns: 1fr;
4518
+ gap: 3px;
4519
+ }
4520
+
3126
4521
  .image-text-layout {
3127
4522
  grid-template-columns: 1fr;
3128
4523
  gap: 30px;
@@ -3160,6 +4555,103 @@ select {
3160
4555
  }
3161
4556
 
3162
4557
  @media (max-width: 520px) {
4558
+ .store-container {
4559
+ width: min(calc(100% - 24px), var(--container-width));
4560
+ }
4561
+
4562
+ .announcement {
4563
+ font-size: 11px;
4564
+ }
4565
+
4566
+ .announcement-inner {
4567
+ min-height: 32px;
4568
+ text-align: center;
4569
+ }
4570
+
4571
+ .header-inner {
4572
+ gap: 10px;
4573
+ }
4574
+
4575
+ .header-search input {
4576
+ height: 44px;
4577
+ padding-left: 16px;
4578
+ font-size: 12px;
4579
+ }
4580
+
4581
+ .header-search button {
4582
+ width: 36px;
4583
+ height: 36px;
4584
+ }
4585
+
4586
+ .hero-section-image {
4587
+ min-height: 460px;
4588
+ }
4589
+
4590
+ .hero-image-content {
4591
+ padding-block: 56px 42px;
4592
+ }
4593
+
4594
+ .hero-copy h1 {
4595
+ font-size: clamp(38px, 11vw, 52px);
4596
+ }
4597
+
4598
+ .hero-copy p {
4599
+ margin-top: 18px;
4600
+ line-height: 1.55;
4601
+ }
4602
+
4603
+ .hero-actions {
4604
+ gap: 14px;
4605
+ margin-top: 26px;
4606
+ }
4607
+
4608
+ .hero-actions .button {
4609
+ width: 100%;
4610
+ }
4611
+
4612
+ .theme-page-hero {
4613
+ padding: 48px 0;
4614
+ }
4615
+
4616
+ .theme-page-hero h1 {
4617
+ font-size: 36px;
4618
+ }
4619
+
4620
+ .section-heading {
4621
+ gap: 12px;
4622
+ margin-bottom: 24px;
4623
+ }
4624
+
4625
+ .section-heading h2,
4626
+ .catalog-hero h1,
4627
+ .page-heading h1 {
4628
+ font-size: 30px;
4629
+ }
4630
+
4631
+ .home-category-card {
4632
+ min-height: 190px;
4633
+ padding: 14px;
4634
+ }
4635
+
4636
+ .home-category-card > span {
4637
+ font-size: 16px;
4638
+ }
4639
+
4640
+ .home-brands-grid {
4641
+ grid-template-columns: repeat(2, minmax(0, 1fr));
4642
+ }
4643
+
4644
+ .benefits-section {
4645
+ padding: 24px 0;
4646
+ }
4647
+
4648
+ .benefits-grid {
4649
+ gap: 18px;
4650
+ }
4651
+
4652
+ .benefits-grid > div {
4653
+ padding-inline: 12px;
4654
+ }
3163
4655
  .search-suggestions {
3164
4656
  max-height: min(430px, calc(100dvh - 155px));
3165
4657
  border-radius: 14px;
@@ -3219,6 +4711,28 @@ select {
3219
4711
  grid-template-columns: 1fr;
3220
4712
  }
3221
4713
 
4714
+ .product-card-content {
4715
+ padding: 16px;
4716
+ }
4717
+
4718
+ .product-card h3 {
4719
+ min-height: auto;
4720
+ font-size: 17px;
4721
+ }
4722
+
4723
+ .product-card-description {
4724
+ min-height: auto;
4725
+ margin-bottom: 14px;
4726
+ }
4727
+
4728
+ .product-card-price strong {
4729
+ font-size: 19px;
4730
+ }
4731
+
4732
+ .product-card-action {
4733
+ margin-top: 14px !important;
4734
+ }
4735
+
3222
4736
  .product-carousel-item {
3223
4737
  flex-basis: min(84vw, 300px);
3224
4738
  min-width: min(84vw, 300px);
@@ -3228,6 +4742,47 @@ select {
3228
4742
  flex-wrap: wrap;
3229
4743
  }
3230
4744
 
4745
+ .breadcrumbs {
4746
+ margin-bottom: 20px;
4747
+ font-size: 11px;
4748
+ }
4749
+
4750
+ .product-info h1 {
4751
+ font-size: 34px;
4752
+ }
4753
+
4754
+ .product-price-block strong {
4755
+ font-size: 30px;
4756
+ }
4757
+
4758
+ .product-description {
4759
+ margin: 20px 0;
4760
+ font-size: 15px;
4761
+ line-height: 1.65;
4762
+ }
4763
+
4764
+ .product-specifications {
4765
+ margin: 20px 0;
4766
+ }
4767
+
4768
+ .article-header {
4769
+ margin: 28px auto 22px;
4770
+ text-align: left;
4771
+ }
4772
+
4773
+ .article-header h1 {
4774
+ font-size: 38px;
4775
+ }
4776
+
4777
+ .article-header p {
4778
+ margin-top: 16px;
4779
+ font-size: 16px;
4780
+ }
4781
+
4782
+ .editorial-card-content {
4783
+ padding: 18px;
4784
+ }
4785
+
3231
4786
  .catalog-pagination-pages {
3232
4787
  order: -1;
3233
4788
  width: 100%;