@nuvler/theme-default 1.0.6 → 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 (46) hide show
  1. package/dist/nuvler.theme.json +151 -8
  2. package/dist/src/banner-carousel.d.ts +7 -10
  3. package/dist/src/banner-carousel.js +21 -7
  4. package/dist/src/banner-carousel.js.map +1 -1
  5. package/dist/src/carousel-frame.js +5 -2
  6. package/dist/src/carousel-frame.js.map +1 -1
  7. package/dist/src/definition.d.ts +2 -0
  8. package/dist/src/definition.js +2 -1
  9. package/dist/src/definition.js.map +1 -1
  10. package/dist/src/footer.d.ts +3 -1
  11. package/dist/src/footer.js +3 -2
  12. package/dist/src/footer.js.map +1 -1
  13. package/dist/src/header-interactions.d.ts +5 -4
  14. package/dist/src/header-interactions.js +35 -19
  15. package/dist/src/header-interactions.js.map +1 -1
  16. package/dist/src/header.d.ts +1 -1
  17. package/dist/src/header.js +21 -9
  18. package/dist/src/header.js.map +1 -1
  19. package/dist/src/home.d.ts +1 -1
  20. package/dist/src/home.js +60 -44
  21. package/dist/src/home.js.map +1 -1
  22. package/dist/src/index.d.ts +2 -1
  23. package/dist/src/index.js +1 -0
  24. package/dist/src/index.js.map +1 -1
  25. package/dist/src/not-found.d.ts +2 -0
  26. package/dist/src/not-found.js +14 -0
  27. package/dist/src/not-found.js.map +1 -0
  28. package/dist/src/product-carousel.d.ts +2 -2
  29. package/dist/src/product-carousel.js.map +1 -1
  30. package/dist/src/product-detail-interactive.d.ts +2 -1
  31. package/dist/src/product-detail-interactive.js +6 -3
  32. package/dist/src/product-detail-interactive.js.map +1 -1
  33. package/dist/src/product-detail.js +24 -3
  34. package/dist/src/product-detail.js.map +1 -1
  35. package/dist/src/products.js +13 -2
  36. package/dist/src/products.js.map +1 -1
  37. package/dist/src/server-shell.d.ts +3 -2
  38. package/dist/src/server-shell.js +6 -4
  39. package/dist/src/server-shell.js.map +1 -1
  40. package/dist/src/theme-component.d.ts +1 -0
  41. package/dist/src/theme-component.js +37 -10
  42. package/dist/src/theme-component.js.map +1 -1
  43. package/dist/src/theme-config.js +12 -12
  44. package/dist/src/theme-config.js.map +1 -1
  45. package/dist/theme.css +1733 -171
  46. package/package.json +2 -2
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%;
@@ -514,6 +942,7 @@ select {
514
942
  .cart-heading button { width: 36px; height: 36px; border: 0; border-radius: 10px; background: var(--store-background); color: var(--store-text); cursor: pointer; font-size: 25px; }
515
943
  .mobile-menu-links { display: grid; padding: 10px 16px; border-bottom: 1px solid var(--store-line); }
516
944
  .mobile-menu-links a { padding: 12px 4px; font-size: 13px; font-weight: 750; }
945
+ .mobile-menu-links .mobile-menu-highlight { margin-top: 8px; padding: 13px 16px; border-radius: var(--border-radius); text-align: center; }
517
946
  .mobile-menu-categories { padding: 18px 16px; }
518
947
  .mobile-menu-categories h2 { margin: 0 0 10px; color: var(--store-muted); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
519
948
  .mobile-menu-category-status { margin: 0 0 10px; color: var(--store-muted); font-size: 12px; }
@@ -594,7 +1023,7 @@ select {
594
1023
  gap: 11px;
595
1024
  overflow: hidden;
596
1025
  border: 1px solid color-mix(in srgb, var(--color-secondary), transparent 82%);
597
- border-radius: 14px;
1026
+ border-radius: var(--radius-md);
598
1027
  background: color-mix(in srgb, var(--color-secondary), transparent 93%);
599
1028
  padding: 7px 12px;
600
1029
  }
@@ -628,7 +1057,7 @@ select {
628
1057
  }
629
1058
 
630
1059
  .header-message-copy small {
631
- color: var(--color-secondary);
1060
+ color: var(--color-primary);
632
1061
  font-size: 9px;
633
1062
  font-weight: 850;
634
1063
  letter-spacing: 0.08em;
@@ -646,6 +1075,18 @@ select {
646
1075
  -webkit-line-clamp: 2;
647
1076
  }
648
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
+
649
1090
  .main-nav {
650
1091
  display: flex;
651
1092
  position: relative;
@@ -1094,6 +1535,7 @@ select {
1094
1535
  align-items: center;
1095
1536
  gap: 10px;
1096
1537
  }
1538
+ .header-highlight-link { flex: 0 0 auto; padding: 12px 16px; border-radius: var(--border-radius); font-size: 12px; font-weight: 800; white-space: nowrap; }
1097
1539
 
1098
1540
  .header-more-menu {
1099
1541
  position: relative;
@@ -1152,12 +1594,12 @@ select {
1152
1594
 
1153
1595
  .button {
1154
1596
  display: inline-flex;
1155
- min-height: 48px;
1597
+ min-height: 46px;
1156
1598
  align-items: center;
1157
1599
  justify-content: center;
1158
1600
  border: 1px solid transparent;
1159
- border-radius: calc(var(--border-radius) * 0.65);
1160
- padding: 12px 20px;
1601
+ border-radius: var(--radius-sm);
1602
+ padding: 11px 18px;
1161
1603
  cursor: pointer;
1162
1604
  font-size: 14px;
1163
1605
  font-weight: 800;
@@ -1177,7 +1619,7 @@ select {
1177
1619
  .button-primary {
1178
1620
  background: var(--color-primary);
1179
1621
  color: var(--color-primary-text);
1180
- box-shadow: 0 9px 24px color-mix(in srgb, var(--color-primary), transparent 76%);
1622
+ box-shadow: none;
1181
1623
  }
1182
1624
 
1183
1625
  .button-primary:hover {
@@ -1203,15 +1645,15 @@ select {
1203
1645
  .hero-section {
1204
1646
  position: relative;
1205
1647
  overflow: hidden;
1206
- padding: 86px 0 92px;
1648
+ padding: clamp(64px, 9vw, 116px) 0;
1207
1649
  background:
1208
- radial-gradient(circle at 72% 35%, color-mix(in srgb, var(--color-secondary), transparent 80%), transparent 28%),
1209
- 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);
1210
1652
  }
1211
1653
 
1212
1654
  .hero-section-image {
1213
1655
  display: grid;
1214
- min-height: clamp(420px, 43vw, 650px);
1656
+ min-height: clamp(460px, 43vw, 640px);
1215
1657
  align-items: stretch;
1216
1658
  padding: 0;
1217
1659
  background: var(--store-text);
@@ -1231,7 +1673,7 @@ select {
1231
1673
  }
1232
1674
 
1233
1675
  .hero-background-overlay {
1234
- 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%);
1235
1677
  }
1236
1678
 
1237
1679
  .hero-image-content {
@@ -1261,7 +1703,7 @@ select {
1261
1703
  .banner-carousel {
1262
1704
  position: relative;
1263
1705
  overflow: hidden;
1264
- background: #e9ece7;
1706
+ background: transparent;
1265
1707
  }
1266
1708
 
1267
1709
  .banner-track {
@@ -1272,10 +1714,16 @@ select {
1272
1714
  .banner-slide {
1273
1715
  position: relative;
1274
1716
  flex: 0 0 100%;
1275
- min-height: clamp(320px, 38vw, 590px);
1717
+ height: var(--banner-desktop-height, 590px);
1276
1718
  }
1277
1719
 
1278
- .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,
1279
1727
  .banner-slide > .store-image-placeholder {
1280
1728
  position: absolute;
1281
1729
  inset: 0;
@@ -1283,6 +1731,9 @@ select {
1283
1731
  height: 100%;
1284
1732
  object-fit: cover;
1285
1733
  }
1734
+ .banner-image-mobile { display: none; }
1735
+ .banner-carousel-settings[data-image-fit="contain"] .banner-slide > img { object-fit: contain; }
1736
+ .banner-carousel-settings[data-image-fit="natural"] .banner-slide > img { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; left: 50%; top: 50%; transform: translate(-50%, -50%); }
1286
1737
 
1287
1738
  .banner-overlay {
1288
1739
  position: absolute;
@@ -1371,7 +1822,7 @@ select {
1371
1822
  }
1372
1823
 
1373
1824
  .hero-copy {
1374
- max-width: 680px;
1825
+ max-width: 630px;
1375
1826
  }
1376
1827
 
1377
1828
  .hero-eyebrow,
@@ -1390,15 +1841,15 @@ select {
1390
1841
  .hero-copy h1 {
1391
1842
  max-width: 720px;
1392
1843
  margin: 0;
1393
- font-size: clamp(46px, 6vw, 78px);
1844
+ font-size: clamp(44px, 5.6vw, 72px);
1394
1845
  font-weight: 850;
1395
1846
  letter-spacing: -0.065em;
1396
- line-height: 0.98;
1847
+ line-height: 1.02;
1397
1848
  }
1398
1849
 
1399
1850
  .hero-copy p {
1400
1851
  max-width: 590px;
1401
- margin: 28px 0 0;
1852
+ margin: 22px 0 0;
1402
1853
  color: var(--store-muted);
1403
1854
  font-size: clamp(17px, 2vw, 20px);
1404
1855
  line-height: 1.7;
@@ -1407,8 +1858,8 @@ select {
1407
1858
  .hero-actions {
1408
1859
  display: flex;
1409
1860
  align-items: center;
1410
- gap: 26px;
1411
- margin-top: 34px;
1861
+ gap: 16px;
1862
+ margin-top: 30px;
1412
1863
  }
1413
1864
 
1414
1865
  .text-link {
@@ -1484,7 +1935,29 @@ select {
1484
1935
  }
1485
1936
 
1486
1937
  .store-section {
1487
- 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);
1488
1961
  }
1489
1962
 
1490
1963
  .editorial-section {
@@ -1664,7 +2137,7 @@ select {
1664
2137
  display: grid;
1665
2138
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
1666
2139
  align-items: center;
1667
- gap: 64px;
2140
+ gap: clamp(32px, 6vw, 84px);
1668
2141
  }
1669
2142
 
1670
2143
  .image-text-layout[data-position="right"] .image-text-media {
@@ -1674,7 +2147,7 @@ select {
1674
2147
  .image-text-media {
1675
2148
  overflow: hidden;
1676
2149
  aspect-ratio: 4 / 3;
1677
- border-radius: var(--border-radius);
2150
+ border-radius: var(--radius-md);
1678
2151
  background: #eef0ea;
1679
2152
  }
1680
2153
 
@@ -1695,8 +2168,8 @@ select {
1695
2168
 
1696
2169
  .image-text-copy h2 {
1697
2170
  margin: 12px 0 0;
1698
- font-size: clamp(34px, 4vw, 52px);
1699
- letter-spacing: -0.05em;
2171
+ font-size: clamp(32px, 4vw, 50px);
2172
+ letter-spacing: -0.045em;
1700
2173
  }
1701
2174
 
1702
2175
  .image-text-copy p {
@@ -1710,20 +2183,20 @@ select {
1710
2183
  .editorial-grid {
1711
2184
  display: grid;
1712
2185
  grid-template-columns: repeat(3, minmax(0, 1fr));
1713
- gap: 24px;
2186
+ gap: 16px;
1714
2187
  }
1715
2188
 
1716
2189
  .editorial-card {
1717
2190
  overflow: hidden;
1718
2191
  border: 1px solid var(--store-line);
1719
- border-radius: var(--border-radius);
2192
+ border-radius: var(--radius-md);
1720
2193
  background: var(--store-surface);
1721
2194
  transition: transform 180ms ease, box-shadow 180ms ease;
1722
2195
  }
1723
2196
 
1724
2197
  .editorial-card:hover {
1725
2198
  transform: translateY(-4px);
1726
- box-shadow: 0 20px 50px rgba(24, 34, 27, 0.1);
2199
+ box-shadow: var(--shadow-card);
1727
2200
  }
1728
2201
 
1729
2202
  .editorial-card-image {
@@ -1741,7 +2214,7 @@ select {
1741
2214
  }
1742
2215
 
1743
2216
  .editorial-card-content {
1744
- padding: 24px;
2217
+ padding: 18px;
1745
2218
  }
1746
2219
 
1747
2220
  .editorial-card-content > span,
@@ -1757,7 +2230,7 @@ select {
1757
2230
 
1758
2231
  .editorial-card h2 {
1759
2232
  margin: 0;
1760
- font-size: 21px;
2233
+ font-size: 19px;
1761
2234
  letter-spacing: -0.035em;
1762
2235
  line-height: 1.25;
1763
2236
  }
@@ -1766,7 +2239,7 @@ select {
1766
2239
  display: -webkit-box;
1767
2240
  overflow: hidden;
1768
2241
  min-height: 62px;
1769
- margin: 12px 0 18px;
2242
+ margin: 10px 0 16px;
1770
2243
  color: var(--store-muted);
1771
2244
  font-size: 14px;
1772
2245
  line-height: 1.55;
@@ -1774,6 +2247,18 @@ select {
1774
2247
  -webkit-line-clamp: 3;
1775
2248
  }
1776
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
+
1777
2262
  .article-page {
1778
2263
  padding: 32px 0 100px;
1779
2264
  }
@@ -1809,10 +2294,14 @@ select {
1809
2294
  }
1810
2295
 
1811
2296
  .article-cover {
2297
+ display: block;
2298
+ width: 100%;
2299
+ aspect-ratio: 16 / 9;
1812
2300
  overflow: hidden;
1813
2301
  max-height: 620px;
1814
2302
  border-radius: var(--border-radius);
1815
2303
  background: #eef0ea;
2304
+ object-fit: cover;
1816
2305
  }
1817
2306
 
1818
2307
  .article-cover img,
@@ -1876,30 +2365,34 @@ select {
1876
2365
  align-items: end;
1877
2366
  justify-content: space-between;
1878
2367
  gap: 24px;
1879
- margin-bottom: 34px;
2368
+ margin-bottom: 28px;
1880
2369
  }
1881
2370
 
1882
2371
  .section-heading h2,
1883
2372
  .catalog-hero h1,
1884
2373
  .page-heading h1 {
1885
2374
  margin: 0;
1886
- font-size: clamp(34px, 4vw, 52px);
1887
- letter-spacing: -0.05em;
2375
+ font-size: clamp(30px, 3.4vw, 46px);
2376
+ letter-spacing: -0.045em;
1888
2377
  line-height: 1.05;
1889
2378
  }
1890
2379
 
1891
2380
  .section-heading a {
1892
- border-bottom: 1px solid currentColor;
1893
- padding-bottom: 4px;
1894
- color: var(--color-secondary);
1895
- 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;
1896
2389
  font-weight: 800;
1897
2390
  }
1898
2391
 
1899
2392
  .product-grid {
1900
2393
  display: grid;
1901
2394
  grid-template-columns: repeat(4, minmax(0, 1fr));
1902
- gap: 22px;
2395
+ gap: 16px;
1903
2396
  }
1904
2397
 
1905
2398
  .product-grid[data-columns="3"] {
@@ -1918,8 +2411,8 @@ select {
1918
2411
  display: flex;
1919
2412
  align-items: stretch;
1920
2413
  overflow-x: auto;
1921
- gap: 22px;
1922
- padding: 5px 0 25px;
2414
+ gap: 16px;
2415
+ padding: 4px 0 22px;
1923
2416
  scroll-behavior: smooth;
1924
2417
  scroll-snap-type: x mandatory;
1925
2418
  scrollbar-width: none;
@@ -1929,8 +2422,8 @@ select {
1929
2422
 
1930
2423
  .product-carousel-item {
1931
2424
  display: flex;
1932
- flex: 0 0 calc((100% - 66px) / 4);
1933
- min-width: 250px;
2425
+ flex: 0 0 calc((100% - 48px) / 4);
2426
+ min-width: 230px;
1934
2427
  scroll-snap-align: start;
1935
2428
  }
1936
2429
 
@@ -1950,14 +2443,14 @@ select {
1950
2443
  flex-direction: column;
1951
2444
  overflow: hidden;
1952
2445
  border: 1px solid var(--store-line);
1953
- border-radius: var(--border-radius);
2446
+ border-radius: var(--radius-md);
1954
2447
  background: var(--store-surface);
1955
2448
  transition: transform 180ms ease, box-shadow 180ms ease;
1956
2449
  }
1957
2450
 
1958
2451
  .product-card:hover {
1959
2452
  transform: translateY(-4px);
1960
- box-shadow: 0 20px 50px rgba(24, 34, 27, 0.1);
2453
+ box-shadow: var(--shadow-card);
1961
2454
  }
1962
2455
 
1963
2456
  .product-card-image {
@@ -1965,7 +2458,7 @@ select {
1965
2458
  display: block;
1966
2459
  overflow: hidden;
1967
2460
  aspect-ratio: 1 / 1;
1968
- background: var(--store-surface-alt);
2461
+ background: color-mix(in srgb, var(--store-surface-alt), #fff 30%);
1969
2462
  }
1970
2463
 
1971
2464
  .product-card-image img,
@@ -1976,6 +2469,37 @@ select {
1976
2469
  transition: transform 300ms ease;
1977
2470
  }
1978
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
+
1979
2503
  .product-card:hover .product-card-image img {
1980
2504
  transform: scale(1.035);
1981
2505
  }
@@ -1998,7 +2522,7 @@ select {
1998
2522
  display: flex;
1999
2523
  flex: 1;
2000
2524
  flex-direction: column;
2001
- padding: 20px;
2525
+ padding: 16px;
2002
2526
  }
2003
2527
 
2004
2528
  .product-category {
@@ -2020,7 +2544,7 @@ select {
2020
2544
  min-height: 48px;
2021
2545
  overflow: hidden;
2022
2546
  margin: 0;
2023
- font-size: 18px;
2547
+ font-size: 16px;
2024
2548
  letter-spacing: -0.025em;
2025
2549
  line-height: 1.35;
2026
2550
  -webkit-box-orient: vertical;
@@ -2031,18 +2555,52 @@ select {
2031
2555
  display: -webkit-box;
2032
2556
  min-height: 42px;
2033
2557
  overflow: hidden;
2034
- margin: 10px 0 18px;
2558
+ margin: 8px 0 14px;
2035
2559
  color: var(--store-muted);
2036
- font-size: 13px;
2560
+ font-size: 12px;
2037
2561
  line-height: 1.55;
2038
2562
  -webkit-box-orient: vertical;
2039
2563
  -webkit-line-clamp: 2;
2040
2564
  }
2041
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
+
2042
2600
  .product-card-content > .button {
2043
2601
  position: relative;
2044
2602
  z-index: 1;
2045
- margin-top: auto;
2603
+ margin-top: 16px;
2046
2604
  }
2047
2605
 
2048
2606
  .product-card-details-link::after {
@@ -2055,11 +2613,18 @@ select {
2055
2613
  cursor: pointer;
2056
2614
  }
2057
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
+
2058
2623
  .benefits-section {
2059
2624
  border-top: 1px solid var(--store-line);
2060
2625
  border-bottom: 1px solid var(--store-line);
2061
2626
  background: var(--store-surface);
2062
- padding: 34px 0;
2627
+ padding: 28px 0;
2063
2628
  }
2064
2629
 
2065
2630
  .benefits-grid {
@@ -2088,6 +2653,162 @@ select {
2088
2653
  font-size: 12px;
2089
2654
  }
2090
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
+
2091
2812
  .catalog-hero {
2092
2813
  border-bottom: 1px solid var(--store-line);
2093
2814
  background: color-mix(in srgb, var(--color-primary), #fff 94%);
@@ -2562,46 +3283,141 @@ select {
2562
3283
  hyphens: auto;
2563
3284
  }
2564
3285
 
2565
- .product-description {
2566
- 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 {
2567
3295
  color: var(--store-muted);
2568
- font-size: 16px;
2569
- line-height: 1.75;
2570
- white-space: pre-line;
3296
+ font-size: 15px;
2571
3297
  }
2572
3298
 
2573
- .product-description > :first-child {
2574
- 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;
2575
3304
  }
2576
3305
 
2577
- .product-description > :last-child {
2578
- margin-bottom: 0;
3306
+ .product-price-block > span {
3307
+ color: var(--store-muted);
3308
+ font-size: 15px;
3309
+ font-weight: 700;
2579
3310
  }
2580
3311
 
2581
- .product-description p,
2582
- .product-description ul,
2583
- .product-description ol,
2584
- .product-description blockquote,
2585
- .product-description table,
2586
- .product-description figure {
2587
- 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;
2588
3319
  }
2589
3320
 
2590
- .product-description ul,
2591
- .product-description ol {
2592
- 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;
2593
3327
  }
2594
3328
 
2595
- .product-description li + li {
2596
- margin-top: 6px;
3329
+ .product-availability {
3330
+ color: var(--color-primary);
2597
3331
  }
2598
3332
 
2599
- .product-description h1,
2600
- .product-description h2,
2601
- .product-description h3,
2602
- .product-description h4,
2603
- .product-description h5,
2604
- .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 {
2605
3421
  margin: 24px 0 10px;
2606
3422
  color: var(--store-text);
2607
3423
  font-size: clamp(18px, 2vw, 24px);
@@ -2644,6 +3460,17 @@ select {
2644
3460
  max-width: 440px;
2645
3461
  }
2646
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
+
2647
3474
  .variant-selector {
2648
3475
  display: grid;
2649
3476
  gap: 18px;
@@ -2727,108 +3554,615 @@ select {
2727
3554
  padding-top: 20px;
2728
3555
  }
2729
3556
 
2730
- .purchase-benefits span {
2731
- display: grid;
2732
- gap: 3px;
2733
- color: var(--store-muted);
2734
- 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);
2735
4028
  }
2736
4029
 
2737
- .purchase-benefits strong {
2738
- color: var(--store-text);
2739
- font-size: 13px;
4030
+ .banner-carousel .carousel-arrow {
4031
+ width: 40px;
4032
+ height: 40px;
4033
+ font-size: 0;
2740
4034
  }
2741
4035
 
2742
- .empty-state {
2743
- grid-column: 1 / -1;
2744
- border: 1px dashed var(--store-line);
2745
- 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;
2746
4045
  background: var(--store-surface);
2747
- padding: 68px 30px;
2748
- text-align: center;
2749
4046
  }
2750
4047
 
2751
- .empty-state > span {
2752
- display: grid;
2753
- width: 58px;
2754
- height: 58px;
2755
- place-items: center;
2756
- margin: 0 auto 18px;
2757
- border-radius: 18px 6px 18px 6px;
2758
- background: color-mix(in srgb, var(--color-primary), #fff 88%);
2759
- color: var(--color-primary);
2760
- font-size: 31px;
2761
- font-weight: 900;
4048
+ .product-carousel .carousel-arrow-prev {
4049
+ right: 42px;
4050
+ left: auto;
2762
4051
  }
2763
4052
 
2764
- .empty-state h2 {
2765
- margin: 0;
2766
- font-size: 24px;
4053
+ .product-carousel .carousel-arrow-next {
4054
+ right: 0;
2767
4055
  }
2768
4056
 
2769
- .empty-state p {
2770
- margin: 10px 0 0;
2771
- 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);
2772
4062
  }
2773
4063
 
2774
- .empty-state .button {
2775
- margin-top: 24px;
4064
+ .category-nav-inner {
4065
+ min-height: 38px;
4066
+ justify-content: flex-start;
4067
+ gap: 18px;
2776
4068
  }
2777
4069
 
2778
- .store-footer {
2779
- background: var(--store-footer-background);
2780
- color: var(--store-footer-text);
2781
- 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;
2782
4076
  }
2783
4077
 
2784
- .footer-grid {
2785
- display: grid;
2786
- grid-template-columns: minmax(260px, 2fr) repeat(auto-fit, minmax(130px, 1fr));
2787
- gap: 72px;
4078
+ .category-nav .all-categories {
4079
+ padding-right: 18px;
2788
4080
  }
2789
4081
 
2790
- .footer-grid > div {
2791
- display: flex;
2792
- flex-direction: column;
2793
- align-items: flex-start;
2794
- gap: 10px;
4082
+ .main-nav a,
4083
+ .text-link {
4084
+ font-size: 11px;
2795
4085
  }
2796
4086
 
2797
- .footer-grid strong {
2798
- margin-bottom: 6px;
2799
- font-size: 14px;
4087
+ .hero-section-image {
4088
+ min-height: clamp(390px, 39vw, 560px);
2800
4089
  }
2801
4090
 
2802
- .footer-grid .footer-brand {
2803
- font-size: 24px;
2804
- letter-spacing: -0.04em;
4091
+ .hero-image-content {
4092
+ padding-block: 58px;
2805
4093
  }
2806
4094
 
2807
- .footer-grid p,
2808
- .footer-grid a,
2809
- .footer-grid span {
2810
- max-width: 480px;
2811
- margin: 0;
2812
- color: color-mix(in srgb, var(--store-footer-text), transparent 38%);
2813
- font-size: 13px;
2814
- line-height: 1.65;
4095
+ .hero-copy h1 {
4096
+ max-width: 560px;
4097
+ font-size: clamp(36px, 4.4vw, 60px);
2815
4098
  }
2816
4099
 
2817
- .footer-grid a:hover {
2818
- color: var(--store-footer-text);
4100
+ .hero-copy p {
4101
+ max-width: 470px;
4102
+ font-size: clamp(14px, 1.45vw, 17px);
2819
4103
  }
2820
4104
 
2821
- .footer-bottom {
2822
- display: flex;
2823
- justify-content: space-between;
2824
- gap: 20px;
2825
- margin-top: 48px;
2826
- border-top: 1px solid color-mix(in srgb, var(--store-footer-text), transparent 88%);
2827
- padding-top: 22px;
2828
- color: color-mix(in srgb, var(--store-footer-text), transparent 54%);
2829
- 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;
2830
4112
  }
2831
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
+
2832
4166
  @media (max-width: 1050px) {
2833
4167
  .header-message {
2834
4168
  display: none;
@@ -2862,14 +4196,16 @@ select {
2862
4196
  width: min(calc(100% - 28px), var(--container-width));
2863
4197
  }
2864
4198
 
2865
- .product-carousel .carousel-arrow-prev { left: 8px; }
2866
- .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; }
2867
4203
 
2868
4204
  .announcement-inner {
2869
4205
  justify-content: center;
2870
4206
  }
2871
4207
 
2872
- .announcement-inner span + span {
4208
+ .announcement-inner > :not(:first-child) {
2873
4209
  display: none;
2874
4210
  }
2875
4211
 
@@ -2881,6 +4217,17 @@ select {
2881
4217
  padding-bottom: 10px;
2882
4218
  }
2883
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
+
2884
4231
  .main-nav {
2885
4232
  overflow-x: auto;
2886
4233
  justify-content: flex-start;
@@ -2889,14 +4236,25 @@ select {
2889
4236
  white-space: nowrap;
2890
4237
  }
2891
4238
 
4239
+ .main-nav-inline {
4240
+ display: none;
4241
+ }
4242
+
2892
4243
  .header-search-shell {
2893
- grid-column: 1 / -1;
2894
- grid-row: 2;
2895
- 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));
2896
4255
  }
2897
4256
 
2898
4257
  .mobile-menu-trigger { display: grid; }
2899
- .header-actions { display: none; }
2900
4258
  .category-nav,
2901
4259
  .primary-nav-shell { display: none; }
2902
4260
 
@@ -2907,11 +4265,6 @@ select {
2907
4265
  font-size: 17px;
2908
4266
  }
2909
4267
 
2910
- .cart-button {
2911
- grid-column: 3;
2912
- justify-self: end;
2913
- }
2914
-
2915
4268
  .brand-mark {
2916
4269
  width: 34px;
2917
4270
  height: 34px;
@@ -3010,8 +4363,16 @@ select {
3010
4363
  }
3011
4364
 
3012
4365
  .banner-slide {
3013
- min-height: 420px;
4366
+ height: var(--banner-mobile-height, 420px);
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);
3014
4373
  }
4374
+ .banner-image-desktop { display: none; }
4375
+ .banner-image-mobile { display: block; }
3015
4376
 
3016
4377
  .banner-overlay {
3017
4378
  align-items: end;
@@ -3028,15 +4389,15 @@ select {
3028
4389
  }
3029
4390
 
3030
4391
  .banner-carousel .carousel-arrow {
3031
- width: 35px;
3032
- height: 35px;
4392
+ width: 44px;
4393
+ height: 44px;
3033
4394
  }
3034
4395
 
3035
4396
  .banner-carousel .carousel-arrow-prev { left: 8px; }
3036
4397
  .banner-carousel .carousel-arrow-next { right: 8px; }
3037
4398
 
3038
4399
  .store-section {
3039
- padding: 62px 0;
4400
+ padding: 56px 0;
3040
4401
  }
3041
4402
 
3042
4403
  .contact-form-layout,
@@ -3067,6 +4428,18 @@ select {
3067
4428
  gap: 24px;
3068
4429
  }
3069
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
+
3070
4443
  .benefits-grid > div + div {
3071
4444
  border-top: 1px solid var(--store-line);
3072
4445
  border-left: 0;
@@ -3116,6 +4489,35 @@ select {
3116
4489
  gap: 28px;
3117
4490
  }
3118
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
+
3119
4521
  .image-text-layout {
3120
4522
  grid-template-columns: 1fr;
3121
4523
  gap: 30px;
@@ -3153,6 +4555,103 @@ select {
3153
4555
  }
3154
4556
 
3155
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
+ }
3156
4655
  .search-suggestions {
3157
4656
  max-height: min(430px, calc(100dvh - 155px));
3158
4657
  border-radius: 14px;
@@ -3212,6 +4711,28 @@ select {
3212
4711
  grid-template-columns: 1fr;
3213
4712
  }
3214
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
+
3215
4736
  .product-carousel-item {
3216
4737
  flex-basis: min(84vw, 300px);
3217
4738
  min-width: min(84vw, 300px);
@@ -3221,6 +4742,47 @@ select {
3221
4742
  flex-wrap: wrap;
3222
4743
  }
3223
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
+
3224
4786
  .catalog-pagination-pages {
3225
4787
  order: -1;
3226
4788
  width: 100%;