@stoovles/gap-kit 1.0.0

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 (35) hide show
  1. package/dist/index.js +2417 -0
  2. package/dist/styles.css +4309 -0
  3. package/guidelines/components/accordion.md +99 -0
  4. package/guidelines/components/breadcrumb.md +74 -0
  5. package/guidelines/components/buttons.md +90 -0
  6. package/guidelines/components/checkbox.md +86 -0
  7. package/guidelines/components/chip.md +77 -0
  8. package/guidelines/components/divider.md +52 -0
  9. package/guidelines/components/dropdown.md +125 -0
  10. package/guidelines/components/filter-sort.md +108 -0
  11. package/guidelines/components/fulfillment.md +100 -0
  12. package/guidelines/components/global-footer.md +71 -0
  13. package/guidelines/components/global-header.md +67 -0
  14. package/guidelines/components/hamburger-nav.md +79 -0
  15. package/guidelines/components/handle.md +49 -0
  16. package/guidelines/components/icons.md +147 -0
  17. package/guidelines/components/link.md +70 -0
  18. package/guidelines/components/logo.md +63 -0
  19. package/guidelines/components/mega-nav.md +103 -0
  20. package/guidelines/components/notification.md +97 -0
  21. package/guidelines/components/pagination.md +88 -0
  22. package/guidelines/components/popover.md +77 -0
  23. package/guidelines/components/price.md +86 -0
  24. package/guidelines/components/product-card.md +82 -0
  25. package/guidelines/components/radio.md +92 -0
  26. package/guidelines/components/search-input.md +63 -0
  27. package/guidelines/components/selector-swatch.md +78 -0
  28. package/guidelines/components/selector.md +95 -0
  29. package/guidelines/components/slider.md +116 -0
  30. package/guidelines/components/switch.md +108 -0
  31. package/guidelines/components/tabs.md +83 -0
  32. package/guidelines/components/text-input.md +80 -0
  33. package/guidelines/composition/buy-box.md +132 -0
  34. package/guidelines/composition/recommendations.md +100 -0
  35. package/package.json +38 -0
@@ -0,0 +1,4309 @@
1
+ /* @stoovles/gap-kit — barrel stylesheet */
2
+
3
+ /* Tokens */
4
+ /* =============================================================================
5
+ * @stoovles/gap-kit — Gap 1.0.0 Design Tokens
6
+ * Extracted from Fabric Theming Variables 1.0
7
+ * Source: figma.com/design/yl7oauvHXCR3p6xRvr38Q7
8
+ *
9
+ * Collections:
10
+ * .00 Foundational (320 primitives)
11
+ * Universal Toolkit (65 semantic tokens)
12
+ * Branded Toolkit / Gap 1.0.0 (608 brand tokens)
13
+ *
14
+ * Gap 1.0.0 identity: Gap Sans · weight 400 · 0px radius · deep blue #031ba1
15
+ * ============================================================================= */
16
+
17
+ :root {
18
+ /* ===========================================================================
19
+ TYPOGRAPHY
20
+ =========================================================================== */
21
+
22
+ /* Font Families */
23
+ --font-family-base: "Gap Sans", sans-serif;
24
+ --font-family-display: "Gap Sans", sans-serif;
25
+
26
+ /* Font Size Scale (semantic steps -2 through 8) */
27
+ --font-size--2: 10px;
28
+ --font-size--1: 12px;
29
+ --font-size-0: 16px;
30
+ --font-size-1: 18px;
31
+ --font-size-2: 20px;
32
+ --font-size-3: 24px;
33
+ --font-size-4: 32px;
34
+ --font-size-5: 40px;
35
+ --font-size-6: 60px;
36
+ --font-size-7: 90px;
37
+ --font-size-8: 120px;
38
+
39
+ /* Font Weights */
40
+ --font-weight-base: 400;
41
+ --font-weight-base-heavier: 400;
42
+ --font-weight-display: 400;
43
+ --font-weight-display-heavier: 400;
44
+
45
+ /* Font Letter Spacing Scale (semantic steps -2 through 8) */
46
+ --font-letter-spacing--2: 0.2px;
47
+ --font-letter-spacing--1: 0.24px;
48
+ --font-letter-spacing-0: 0.32px;
49
+ --font-letter-spacing-1: 0.36px;
50
+ --font-letter-spacing-2: 0.2px;
51
+ --font-letter-spacing-3: 0px;
52
+ --font-letter-spacing-4: 0px;
53
+ --font-letter-spacing-5: 0px;
54
+ --font-letter-spacing-6: -1.2px;
55
+ --font-letter-spacing-7: 0px;
56
+ --font-letter-spacing-8: 0px;
57
+ --font-letter-spacing-base: 0.02px;
58
+ --font-letter-spacing-display: 0px;
59
+
60
+ /* ===========================================================================
61
+ COLOR — SEMANTIC TYPE
62
+ =========================================================================== */
63
+
64
+ --color-type-primary: #000000;
65
+ --color-type-secondary: #757575;
66
+ --color-type-accent: #000000;
67
+ --color-type-neutral: #000000;
68
+ --color-type-subtle: #757575;
69
+ --color-type-link: #031ba1;
70
+ --color-type-disabled: #cccccc;
71
+ --color-type-visited: #757575;
72
+ --color-type-copy: #000000;
73
+ --color-type-inverse: #ffffff;
74
+ --color-type-sale: #e10000;
75
+ --color-type-success: #13560e;
76
+ --color-type-success-2: #068006;
77
+ --color-type-error: #d00000;
78
+ --color-type-warning: #e7a32e;
79
+ --color-type-informational: #5ca8fe;
80
+
81
+ /* ===========================================================================
82
+ COLOR — SEMANTIC BACKGROUND
83
+ =========================================================================== */
84
+
85
+ --color-background-dark: #000000;
86
+ --color-background-light: #ffffff;
87
+ --color-background-default: #ffffff;
88
+ --color-background-subtle: #ededed;
89
+ --color-background-transparent-dark: rgba(29, 29, 29, 0.3);
90
+ --color-background-info: #5ca8fe;
91
+ --color-background-success: #edf8ed;
92
+ --color-background-error: #fff9f9;
93
+ --color-background-warning: #fffbe3;
94
+
95
+ /* ===========================================================================
96
+ COLOR — SEMANTIC BORDER
97
+ =========================================================================== */
98
+
99
+ --color-border-default: #595959;
100
+ --color-border-accent: #031ba1;
101
+ --color-border-subtle: #cccccc;
102
+ --color-border-info: #000000;
103
+ --color-border-disabled: #ededed;
104
+ --color-border-hover: #000000;
105
+ --color-border-black: #000000;
106
+ --color-border-gray: #cccccc;
107
+ --color-border-inverse: #ffffff;
108
+ --color-border-success: #068006;
109
+ --color-border-error: #d00000;
110
+ --color-border-warning: #e7a32e;
111
+
112
+ /* ===========================================================================
113
+ COLOR — SEMANTIC FILL
114
+ =========================================================================== */
115
+
116
+ --color-fill-accent: #031ba1;
117
+ --color-fill-action: #000000;
118
+ --color-fill-dark: #595959;
119
+ --color-fill-subtle: #cccccc;
120
+ --color-fill-disabled: #ededed;
121
+ --color-fill-default: #ffffff;
122
+ --color-fill-black: #000000;
123
+ --color-fill-error: #d00000;
124
+ --color-fill-handle-hover: #757575;
125
+ --color-fill-image-overlay: rgba(0, 0, 0, 0.6);
126
+
127
+ /* ===========================================================================
128
+ COLOR — SEMANTIC ICON
129
+ =========================================================================== */
130
+
131
+ --color-icon-default: #000000;
132
+ --color-icon-base: #000000;
133
+ --color-icon-hover: #cccccc;
134
+ --color-icon-dark: #595959;
135
+ --color-icon-disabled: #999999;
136
+ --color-icon-subtle: #595959;
137
+ --color-icon-inverse: #ffffff;
138
+ --color-icon-info: #5ca8fe;
139
+ --color-icon-success: #068006;
140
+ --color-icon-error: #d00000;
141
+ --color-icon-warning: #e7a32e;
142
+
143
+ /* ===========================================================================
144
+ COLOR — BRAND
145
+ =========================================================================== */
146
+
147
+ --color-brand: #031ba1;
148
+ --color-brand-secondary: #1a1a1a;
149
+ --color-brand-tertiary: #16a816;
150
+ --color-brand-black-glass: rgba(29, 29, 29, 0.3);
151
+ --color-brand-white-glass: rgba(231, 231, 231, 0.3);
152
+ --color-brand-red: #e10000;
153
+
154
+ /* ===========================================================================
155
+ COLOR — GRAY SCALE (Semantic 5-tier)
156
+ =========================================================================== */
157
+
158
+ --color-gray-1: #f3f3f3;
159
+ --color-gray-2: #ededed;
160
+ --color-gray-3: #999999;
161
+ --color-gray-4: #757575;
162
+ --color-gray-5: #595959;
163
+
164
+ /* ===========================================================================
165
+ COLOR — GRAY SCALE (Foundational primitives 100–1400)
166
+ =========================================================================== */
167
+
168
+ --color-gray-100: #f7f7f7;
169
+ --color-gray-200: #f2f2f2;
170
+ --color-gray-300: #e9e9e9;
171
+ --color-gray-350: #e5e5e5;
172
+ --color-gray-400: #e5e4e4;
173
+ --color-gray-500: #d9d9d9;
174
+ --color-gray-600: #cccccc;
175
+ --color-gray-650: #bfbfbf;
176
+ --color-gray-700: #afafaf;
177
+ --color-gray-800: #999999;
178
+ --color-gray-900: #757575;
179
+ --color-gray-1000: #666666;
180
+ --color-gray-1100: #5e5c5a;
181
+ --color-gray-1200: #333333;
182
+ --color-gray-1300: #262626;
183
+ --color-gray-1400: #0c0c0c;
184
+
185
+ /* ===========================================================================
186
+ COLOR — STATUS PRIMITIVES
187
+ =========================================================================== */
188
+
189
+ --color-red-100: #fff9f9;
190
+ --color-red-200: #d00000;
191
+ --color-orange-100: #fffbe3;
192
+ --color-orange-200: #e7a32e;
193
+ --color-green-100: #edf8ed;
194
+ --color-green-200: #068006;
195
+ --color-green-300: #13560e;
196
+ --color-blue-100: #5ca8fe;
197
+
198
+ /* ===========================================================================
199
+ COLOR — BLACK & WHITE
200
+ =========================================================================== */
201
+
202
+ --color-white: #ffffff;
203
+ --color-white-25: rgba(255, 255, 255, 0.25);
204
+ --color-white-30: rgba(255, 255, 255, 0.3);
205
+ --color-white-50: rgba(255, 255, 255, 0.5);
206
+ --color-white-80: rgba(255, 255, 255, 0.8);
207
+ --color-black: #000000;
208
+ --color-black-25: rgba(0, 0, 0, 0.25);
209
+ --color-black-30: rgba(0, 0, 0, 0.3);
210
+ --color-black-50: rgba(0, 0, 0, 0.5);
211
+ --color-black-60: rgba(0, 0, 0, 0.6);
212
+ --color-black-80: rgba(0, 0, 0, 0.8);
213
+
214
+ /* ===========================================================================
215
+ SPACING — BRANDED
216
+ =========================================================================== */
217
+
218
+ --spacing-xs: 4px;
219
+ --spacing-s: 8px;
220
+ --spacing-m: 16px;
221
+ --spacing-l: 24px;
222
+
223
+ /* ===========================================================================
224
+ SPACING — UNIVERSAL TOOLKIT SCALE
225
+ =========================================================================== */
226
+
227
+ --spacing-4xs: 0px;
228
+ --spacing-3xs: 2px;
229
+ --spacing-2xs: 4px;
230
+ --spacing-utk-xs: 6px;
231
+ --spacing-utk-s: 8px;
232
+ --spacing-utk-m: 12px;
233
+ --spacing-utk-l: 16px;
234
+ --spacing-xl: 24px;
235
+ --spacing-2xl: 32px;
236
+ --spacing-3xl: 48px;
237
+ --spacing-4xl: 64px;
238
+
239
+ /* ===========================================================================
240
+ SPACING — FOUNDATIONAL PRIMITIVES
241
+ =========================================================================== */
242
+
243
+ --spacing-0: 0px;
244
+ --spacing-00625: 0.5px;
245
+ --spacing-0125: 1px;
246
+ --spacing-025: 2px;
247
+ --spacing-050: 4px;
248
+ --spacing-075: 6px;
249
+ --spacing-100: 8px;
250
+ --spacing-125: 10px;
251
+ --spacing-150: 12px;
252
+ --spacing-175: 14px;
253
+ --spacing-200: 16px;
254
+ --spacing-250: 20px;
255
+ --spacing-300: 24px;
256
+ --spacing-325: 26px;
257
+ --spacing-375: 30px;
258
+ --spacing-400: 32px;
259
+ --spacing-450: 34px;
260
+ --spacing-500: 40px;
261
+ --spacing-525: 42px;
262
+ --spacing-550: 44px;
263
+ --spacing-600: 48px;
264
+ --spacing-650: 56px;
265
+ --spacing-750: 60px;
266
+ --spacing-800: 64px;
267
+ --spacing-1000: 80px;
268
+
269
+ /* ===========================================================================
270
+ BORDER
271
+ =========================================================================== */
272
+
273
+ --border-radius-hard: 0px;
274
+ --border-radius-curved: 16px;
275
+ --border-radius-round: 999px;
276
+ --border-radius-curved-s: 0px;
277
+ --border-radius-curved-m: 0px;
278
+ --border-radius-curved-l: 0px;
279
+ --border-width-1: 1px;
280
+ --border-width-2: 2px;
281
+ --border-width-2-focus: 2px;
282
+
283
+ /* ===========================================================================
284
+ SHADOW
285
+ =========================================================================== */
286
+
287
+ --shadow-color: rgba(0, 0, 0, 0.08);
288
+ --shadow-fill: rgba(0, 0, 0, 0.3);
289
+ --shadow-high: 2px 4px 8px rgba(0, 0, 0, 0.08);
290
+ --shadow-medium: 2px 3px 3px rgba(0, 0, 0, 0.3);
291
+ --shadow-low: 1px 1px 2px rgba(0, 0, 0, 0.3);
292
+ --shadow-pagination: 0px 2px 6px rgba(0, 0, 0, 0.1);
293
+
294
+ /* ===========================================================================
295
+ SCREEN SIZES
296
+ =========================================================================== */
297
+
298
+ --screen-max: 1920px;
299
+ --screen-min: 390px;
300
+
301
+ /* ===========================================================================
302
+ COMPONENT — BUTTON
303
+ =========================================================================== */
304
+
305
+ --button-border-radius: 0px;
306
+ --button-min-height: 44px;
307
+ --button-padding-horizontal: 48px;
308
+ --button-hover-border-width: 0px;
309
+
310
+ /* Button: Primary */
311
+ --button-primary-fill: #ffffff;
312
+ --button-primary-font: #000000;
313
+ --button-primary-icon: #000000;
314
+ --button-primary-border-color: #cccccc;
315
+ --button-primary-border-width: 2px;
316
+ --button-primary-hover-fill: #031ba1;
317
+ --button-primary-hover-font: #ffffff;
318
+ --button-primary-pressed-fill: #ffffff;
319
+ --button-primary-pressed-font: #000000;
320
+ --button-primary-pressed-border-color: #000000;
321
+
322
+ /* Button: Secondary */
323
+ --button-secondary-fill: #000000;
324
+ --button-secondary-font: #ffffff;
325
+ --button-secondary-border: #000000;
326
+ --button-secondary-hover-fill: #031ba1;
327
+ --button-secondary-hover-font: #ffffff;
328
+ --button-secondary-hover-border: #031ba1;
329
+ --button-secondary-hover-icon: #ffffff;
330
+ --button-secondary-disabled-fill: #ededed;
331
+ --button-secondary-disabled-font: #cccccc;
332
+
333
+ /* Button: Critical */
334
+ --button-critical-hover-fill: #000000;
335
+ --button-critical-caution-fill: #757575;
336
+ --button-critical-caution-fill-2: #e7a32e;
337
+
338
+ /* Button: Floating Action */
339
+ --button-floating-action-border-radius: 0px;
340
+ --button-floating-action-border-width: 0px;
341
+ --button-floating-action-primary-icon: #000000;
342
+ --button-floating-action-primary-icon-hover: #ffffff;
343
+ --button-floating-action-primary-pressed-fill: #ffffff;
344
+ --button-floating-action-secondary-icon: #000000;
345
+ --button-floating-action-secondary-icon-hover: #ffffff;
346
+
347
+ /* Button: Typography */
348
+ --button-font-size: 16px;
349
+ --button-font-weight: 400;
350
+ --button-letter-spacing: 0.32px;
351
+
352
+ /* ===========================================================================
353
+ COMPONENT — ACCORDION
354
+ =========================================================================== */
355
+
356
+ --accordion-border-default: #595959;
357
+ --accordion-border-subtle: #cccccc;
358
+ --accordion-font-size: 16px;
359
+
360
+ /* ===========================================================================
361
+ COMPONENT — BADGE
362
+ =========================================================================== */
363
+
364
+ --badge-border-radius: 0px;
365
+ --badge-fill: #ffffff;
366
+ --badge-font-color: #000000;
367
+ --badge-font-weight: 400;
368
+ --badge-padding-y: 4px;
369
+ --badge-padding-x: 4px;
370
+
371
+ /* ===========================================================================
372
+ COMPONENT — BREADCRUMB
373
+ =========================================================================== */
374
+
375
+ --breadcrumb-padding-horizontal: 0px;
376
+ --breadcrumb-font-color: #000000;
377
+ --breadcrumb-default: #031ba1;
378
+ --breadcrumb-hover: #031ba1;
379
+ --breadcrumb-visited: #757575;
380
+
381
+ /* ===========================================================================
382
+ COMPONENT — CHIPS
383
+ =========================================================================== */
384
+
385
+ --chips-border-color: rgba(231, 231, 231, 0.3);
386
+ --chips-hover-border: rgba(231, 231, 231, 0.3);
387
+ --chips-border-radius: 0px;
388
+ --chips-default: rgba(231, 231, 231, 0.3);
389
+ --chips-default-border-color: rgba(231, 231, 231, 0.3);
390
+ --chips-font-color: #031ba1;
391
+ --chips-link-color: #000000;
392
+ --chips-icon-color: #031ba1;
393
+ --chips-swatch-icon-color: #cccccc;
394
+ --chips-focused: #cccccc;
395
+ --chips-active: #afafaf;
396
+
397
+ /* ===========================================================================
398
+ COMPONENT — DIVIDER
399
+ =========================================================================== */
400
+
401
+ --divider-border-width: 2px;
402
+ --divider-color: #595959;
403
+
404
+ /* ===========================================================================
405
+ COMPONENT — DROPDOWN
406
+ =========================================================================== */
407
+
408
+ --dropdown-font-color: #ffffff;
409
+ --dropdown-border-width: 2px;
410
+ --dropdown-selected-border-width: 2px;
411
+ --dropdown-fill-selected: #031ba1;
412
+ --dropdown-filled-hover: #031ba1;
413
+ --dropdown-border-color: #595959;
414
+ --dropdown-default-font-color: #757575;
415
+
416
+ /* ===========================================================================
417
+ COMPONENT — LINK
418
+ =========================================================================== */
419
+
420
+ --link-subtle: #f7f7f7;
421
+ --link-hover: #031ba1;
422
+
423
+ /* ===========================================================================
424
+ COMPONENT — MODAL
425
+ =========================================================================== */
426
+
427
+ --modal-background: #ffffff;
428
+ --modal-border-radius: 0px;
429
+ --modal-header-font: #000000;
430
+ --modal-header-icon: #000000;
431
+
432
+ /* ===========================================================================
433
+ COMPONENT — SEARCH
434
+ =========================================================================== */
435
+
436
+ --search-input-background: rgba(231, 231, 231, 0.3);
437
+ --search-input-border-color: rgba(231, 231, 231, 0.3);
438
+ --search-input-border-width: 0px;
439
+ --search-text-color: #000000;
440
+ --search-section-header-color: #595959;
441
+ --search-cursor-color: #031ba1;
442
+ --search-cursor-border-width: 2px;
443
+
444
+ /* ===========================================================================
445
+ COMPONENT — SELECTOR (SIZE)
446
+ =========================================================================== */
447
+
448
+ --selector-border-radius: 0px;
449
+ --selector-size-available-default: #ffffff;
450
+ --selector-size-available-selected: #ffffff;
451
+ --selector-size-available-hover: #ffffff;
452
+ --selector-size-unavailable-default: #ffffff;
453
+ --selector-size-unavailable-disabled: #ededed;
454
+ --selector-size-unavailable-hover: #000000;
455
+ --selector-size-border-default: #cccccc;
456
+ --selector-size-border-selected: #000000;
457
+ --selector-size-border-disabled: #ededed;
458
+ --selector-size-border-hover: #000000;
459
+ --selector-size-border-width: 2px;
460
+ --selector-size-selected-border-width: 2px;
461
+ --selector-size-font-default: #000000;
462
+ --selector-size-font-selected: #000000;
463
+ --selector-size-font-disabled: #757575;
464
+ --selector-size-font-hover: #000000;
465
+ --selector-size-font-link: #031ba1;
466
+ --selector-size-font-size: 16px;
467
+ --selector-size-header-font-size: 16px;
468
+
469
+ /* ===========================================================================
470
+ COMPONENT — SELECTION INPUTS (CHECKBOX, RADIO)
471
+ =========================================================================== */
472
+
473
+ --selection-input-border: #000000;
474
+ --selection-input-border-accent: #000000;
475
+ --selection-input-border-disabled: #ededed;
476
+ --selection-input-border-selected: #000000;
477
+ --selection-input-fill: #ffffff;
478
+ --selection-input-selected-fill: #595959;
479
+ --selection-input-disabled-fill: #ededed;
480
+ --selection-input-checkbox-border-radius: 0px;
481
+
482
+ /* ===========================================================================
483
+ COMPONENT — SLIDER
484
+ =========================================================================== */
485
+
486
+ --slider-default-color: #595959;
487
+
488
+ /* ===========================================================================
489
+ COMPONENT — SWITCH
490
+ =========================================================================== */
491
+
492
+ --switch-subtle: #ededed;
493
+ --switch-action: #ededed;
494
+ --switch-border-radius: 999px;
495
+ --switch-handle-on-fill: #031ba1;
496
+ --switch-handle-off-fill: #757575;
497
+
498
+ /* ===========================================================================
499
+ COMPONENT — TABS
500
+ =========================================================================== */
501
+
502
+ --tabs-padding-horizontal: 20px;
503
+ --tabs-padding-vertical: 0px;
504
+ --tabs-border-width: 0px;
505
+ --tabs-selected-border-width: 1px;
506
+ --tabs-border-color: #ededed;
507
+ --tabs-font-color: #757575;
508
+
509
+ /* ===========================================================================
510
+ COMPONENT — TEXT INPUT
511
+ =========================================================================== */
512
+
513
+ --text-input-font-size: 16px;
514
+ --text-input-border-default: rgba(231, 231, 231, 0.3);
515
+ --text-input-border-focused: #000000;
516
+ --text-input-border-disabled: #ededed;
517
+ --text-input-border-error: rgba(231, 231, 231, 0.3);
518
+ --text-input-fill-default: rgba(231, 231, 231, 0.3);
519
+ --text-input-fill-disabled: #ededed;
520
+ --text-input-label-fill: rgba(231, 231, 231, 0.3);
521
+ --text-input-text-default: #595959;
522
+ --text-input-text-disabled: #999999;
523
+ --text-input-text-error: #000000;
524
+ --text-input-helper-text: #000000;
525
+
526
+ /* ===========================================================================
527
+ COMPONENT — PAGINATION
528
+ =========================================================================== */
529
+
530
+ --pagination-font-color: #000000;
531
+
532
+ /* ===========================================================================
533
+ COMPONENT — SEO CROSSLINK
534
+ =========================================================================== */
535
+
536
+ --seo-crosslink-border-radius: 0px;
537
+ --seo-crosslink-border-width: 0px;
538
+ --seo-crosslink-fill-default: #f3f3f3;
539
+ --seo-crosslink-fill-hover: #757575;
540
+ --seo-crosslink-fill-press: #757575;
541
+ --seo-crosslink-padding-horizontal: 8px;
542
+ --seo-crosslink-padding-vertical: 0px;
543
+
544
+ /* ===========================================================================
545
+ COMPONENT — FILTER & SORT
546
+ =========================================================================== */
547
+
548
+ --filter-sort-border-width: 2px;
549
+ --filter-sort-border-color: #ffffff;
550
+ --filter-sort-border-color-disabled: #ededed;
551
+
552
+ /* ===========================================================================
553
+ COMPONENT — STICKY FOOTER
554
+ =========================================================================== */
555
+
556
+ --sticky-footer-disabled: #ededed;
557
+ --sticky-footer-border-width: 2px;
558
+
559
+ /* ===========================================================================
560
+ COMPONENT — GLOBAL HEADER
561
+ =========================================================================== */
562
+
563
+ --global-header-brand-bar-bg: #000000;
564
+ --global-header-brand-bar-font: #999999;
565
+ --global-header-brand-bar-hover-bg: #000000;
566
+ --global-header-brand-bar-hover-font: #ffffff;
567
+ --global-header-brand-bar-selected-font: #ffffff;
568
+ --global-header-edfs-mobile-bg: #000000;
569
+ --global-header-edfs-mobile-border: #666666;
570
+ --global-header-edfs-mobile-font: #ffffff;
571
+ --global-header-edfs-desktop-font: #ffffff;
572
+ --global-header-account-icon: #ffffff;
573
+ --global-header-account-font: #ffffff;
574
+ --global-header-bag-mobile-fill: #d00000;
575
+ --global-header-bag-desktop-icon: #ffffff;
576
+ --global-header-bag-desktop-font: #000000;
577
+
578
+ /* ===========================================================================
579
+ COMPONENT — GLOBAL FOOTER
580
+ =========================================================================== */
581
+
582
+ --global-footer-background: #ffffff;
583
+
584
+ /* ===========================================================================
585
+ COMPONENT — MEGA NAV
586
+ =========================================================================== */
587
+
588
+ --mega-nav-top-padding: 16px;
589
+ --mega-nav-link-font-color: #757575;
590
+ --mega-nav-link-fill: #f3f3f3;
591
+ --mega-nav-link-border-width: 0px;
592
+
593
+ /* ===========================================================================
594
+ COMPONENT — QUICK ADD
595
+ =========================================================================== */
596
+
597
+ --quick-add-fill: rgba(29, 29, 29, 0.3);
598
+ --quick-add-hover-fill: #000000;
599
+ --quick-add-icon-inverse-fill: #ffffff;
600
+ --quick-add-font-size: 16px;
601
+ --quick-add-letter-spacing: 0.32px;
602
+
603
+ /* ===========================================================================
604
+ COMPONENT — PRODUCT
605
+ =========================================================================== */
606
+
607
+ --product-card-marketing-flag: #757575;
608
+ --product-price-strikethrough: #757575;
609
+ --product-price-percent-off-font: #595959;
610
+ --product-style-flag-font: #757575;
611
+ --product-image-thumbnail-border-radius: 0px;
612
+ --product-info-top-spacing: 30px;
613
+ --product-info-bottom-spacing: 24px;
614
+ --product-info-left-spacing: 0px;
615
+ --product-info-right-spacing: 0px;
616
+ --product-info-font-weight: 400;
617
+
618
+ /* ===========================================================================
619
+ COMPONENT — DROP SHADOW
620
+ =========================================================================== */
621
+
622
+ --drop-shadow-color: rgba(0, 0, 0, 0.08);
623
+ --drop-shadow-high-x: 2px;
624
+ --drop-shadow-high-y: 4px;
625
+ --drop-shadow-high-blur: 8px;
626
+ --drop-shadow-high-spread: 0px;
627
+
628
+ /* ===========================================================================
629
+ CONTENT — TYPOGRAPHY (Responsive)
630
+ =========================================================================== */
631
+
632
+ /* Headline */
633
+ --content-headline-desktop-font-size: 60px;
634
+ --content-headline-desktop-line-height: 64px;
635
+ --content-headline-desktop-letter-spacing: -1.2px;
636
+ --content-headline-desktop-weight: 400;
637
+ --content-headline-mobile-font-size: 32px;
638
+ --content-headline-mobile-line-height: 36px;
639
+ --content-headline-mobile-letter-spacing: 0px;
640
+ --content-headline-mobile-weight: 400;
641
+ --content-headline-max-font-size: 72.8px;
642
+ --content-headline-min-font-size: 32px;
643
+
644
+ /* Headline Alt (the only 500-weight variant) */
645
+ --content-headline-alt-desktop-font-size: 60px;
646
+ --content-headline-alt-desktop-line-height: 64px;
647
+ --content-headline-alt-desktop-letter-spacing: -1.2px;
648
+ --content-headline-alt-desktop-weight: 500;
649
+ --content-headline-alt-mobile-font-size: 40px;
650
+ --content-headline-alt-mobile-line-height: 64px;
651
+ --content-headline-alt-mobile-letter-spacing: 0px;
652
+ --content-headline-alt-mobile-weight: 500;
653
+ --content-headline-alt-max-font-size: 69.14px;
654
+ --content-headline-alt-min-font-size: 40px;
655
+
656
+ /* Product Feed Headline */
657
+ --content-product-feed-headline-desktop-font-size: 48px;
658
+ --content-product-feed-headline-desktop-line-height: 56px;
659
+ --content-product-feed-headline-desktop-letter-spacing: 0px;
660
+ --content-product-feed-headline-desktop-weight: 400;
661
+ --content-product-feed-headline-mobile-font-size: 64px;
662
+ --content-product-feed-headline-mobile-letter-spacing: 0px;
663
+ --content-product-feed-headline-mobile-weight: 400;
664
+
665
+ /* Subhead */
666
+ --content-subhead-desktop-font-size: 24px;
667
+ --content-subhead-desktop-line-height: 28px;
668
+ --content-subhead-desktop-letter-spacing: 0px;
669
+ --content-subhead-desktop-weight: 400;
670
+ --content-subhead-mobile-font-size: 20px;
671
+ --content-subhead-mobile-line-height: 24px;
672
+ --content-subhead-mobile-letter-spacing: 0.2px;
673
+ --content-subhead-mobile-weight: 400;
674
+ --content-subhead-max-font-size: 25.83px;
675
+ --content-subhead-min-font-size: 20px;
676
+
677
+ /* Eyebrow */
678
+ --content-eyebrow-desktop-font-size: 24px;
679
+ --content-eyebrow-desktop-line-height: 28px;
680
+ --content-eyebrow-desktop-letter-spacing: 0px;
681
+ --content-eyebrow-desktop-weight: 400;
682
+ --content-eyebrow-mobile-font-size: 18px;
683
+ --content-eyebrow-mobile-line-height: 22px;
684
+ --content-eyebrow-mobile-letter-spacing: 0.2px;
685
+ --content-eyebrow-mobile-weight: 400;
686
+ --content-eyebrow-max-font-size: 25.83px;
687
+ --content-eyebrow-min-font-size: 20px;
688
+
689
+ /* Copy */
690
+ --content-copy-desktop-font-size: 14px;
691
+ --content-copy-desktop-line-height: 18px;
692
+ --content-copy-desktop-letter-spacing: 0px;
693
+ --content-copy-desktop-weight: 400;
694
+ --content-copy-mobile-font-size: 14px;
695
+ --content-copy-mobile-line-height: 18px;
696
+ --content-copy-mobile-letter-spacing: 0px;
697
+ --content-copy-mobile-weight: 400;
698
+
699
+ /* Copy Bold */
700
+ --content-copy-bold-desktop-font-size: 14px;
701
+ --content-copy-bold-desktop-line-height: 18px;
702
+ --content-copy-bold-desktop-letter-spacing: 0px;
703
+ --content-copy-bold-desktop-weight: 500;
704
+ --content-copy-bold-mobile-font-size: 14px;
705
+ --content-copy-bold-mobile-line-height: 18px;
706
+ --content-copy-bold-mobile-letter-spacing: 0px;
707
+ --content-copy-bold-mobile-weight: 500;
708
+
709
+ /* Details */
710
+ --content-details-font-size: 10px;
711
+ --content-details-letter-spacing: 0.2px;
712
+ --content-details-max-font-size: 10px;
713
+ --content-details-min-font-size: 10px;
714
+
715
+ /* Media Card Headline */
716
+ --content-media-card-headline-font-weight: 400;
717
+ --content-media-card-headline-desktop-font-size: 24px;
718
+ --content-media-card-headline-desktop-letter-spacing: 0px;
719
+ --content-media-card-headline-mobile-font-size: 20px;
720
+ --content-media-card-headline-mobile-letter-spacing: 0.2px;
721
+
722
+ /* ===========================================================================
723
+ CONTENT — BUTTON
724
+ =========================================================================== */
725
+
726
+ --content-button-border-radius: 0px;
727
+ --content-button-padding-horizontal: 12px;
728
+ --content-button-padding-vertical: 12px;
729
+ --content-button-solid-font-size: 10px;
730
+ --content-button-solid-letter-spacing: 0.2px;
731
+ --content-button-solid-font-weight: 400;
732
+ --content-button-solid-border-radius: 0px;
733
+ --content-button-solid-min-width: 0px;
734
+ --content-button-solid-max-width: 800px;
735
+ --content-button-text-font-size: 10px;
736
+ --content-button-text-letter-spacing: 0.2px;
737
+ --content-button-text-font-weight: 400;
738
+ --content-button-dark-fill: #000000;
739
+ --content-button-dark-hover: #595959;
740
+ --content-button-light-fill: #ffffff;
741
+ --content-button-light-hover: #ededed;
742
+
743
+ /* ===========================================================================
744
+ CONTENT — COLOR
745
+ =========================================================================== */
746
+
747
+ --content-color-type-accent: #000000;
748
+ --content-color-fill-dark: #000000;
749
+ --content-color-fill-light: #ededed;
750
+ --content-color-border-default: #000000;
751
+
752
+ /* ===========================================================================
753
+ CONTENT — LAYOUT
754
+ =========================================================================== */
755
+
756
+ --content-spotlight-max-width: 900px;
757
+ --content-spotlight-desktop-padding-h: 64px;
758
+ --content-spotlight-desktop-padding-v: 32px;
759
+ --content-spotlight-mobile-padding-h: 16px;
760
+ --content-spotlight-mobile-padding-v: 16px;
761
+ --content-wayfinding-desktop-gutter: 32px;
762
+ --content-wayfinding-mobile-gutter: 16px;
763
+ --content-wayfinding-desktop-padding-h: 64px;
764
+ --content-wayfinding-desktop-padding-v: 32px;
765
+ --content-wayfinding-mobile-padding-h: 16px;
766
+ --content-wayfinding-mobile-padding-v: 12px;
767
+ --content-volume-control-border-radius: 0px;
768
+
769
+ /* ===========================================================================
770
+ STYLE — TEXT PRESETS
771
+ =========================================================================== */
772
+
773
+ /* Button Text */
774
+ --text-button-font-size: 16px;
775
+ --text-button-font-weight: 400;
776
+
777
+ /* Caption */
778
+ --text-caption-font-size: 10px;
779
+ --text-caption-font-weight: 400;
780
+
781
+ /* Card */
782
+ --text-card-font-size: 16px;
783
+ --text-card-letter-spacing: 0.32px;
784
+
785
+ /* Dialog Header */
786
+ --text-dialog-header-font-size: 16px;
787
+ --text-dialog-header-letter-spacing: 0.32px;
788
+
789
+ /* Header */
790
+ --text-header-font-size: 16px;
791
+ --text-header-letter-spacing: 0.32px;
792
+ --text-header-font-weight: 400;
793
+
794
+ /* Subhead */
795
+ --text-subhead-font-size: 12px;
796
+ --text-subhead-letter-spacing: 0.24px;
797
+
798
+ /* Title Small */
799
+ --text-title-small-font-size: 20px;
800
+ --text-title-small-letter-spacing: 0.2px;
801
+
802
+ /* Title Medium */
803
+ --text-title-medium-font-size: 24px;
804
+
805
+ /* Link Regular */
806
+ --text-link-regular-font-size: 16px;
807
+ --text-link-regular-font-weight: 400;
808
+
809
+ /* Link Small */
810
+ --text-link-small-font-weight: 400;
811
+
812
+ /* Price */
813
+ --text-price-large-font-size: 16px;
814
+ --text-price-large-letter-spacing: 0.32px;
815
+ --text-price-large-font-weight: 400;
816
+ --text-price-small-font-size: 16px;
817
+ --text-price-small-letter-spacing: 0.32px;
818
+ --text-price-small-font-weight: 400;
819
+ --text-price-percent-off-font-size: 16px;
820
+ --text-price-percent-off-letter-spacing: 0.32px;
821
+ --text-price-percent-off-font-weight: 400;
822
+
823
+ /* Selector */
824
+ --text-selector-header-font-size: 16px;
825
+ --text-selector-header-letter-spacing: 0.32px;
826
+ --text-selector-label-font-size: 16px;
827
+ --text-selector-label-letter-spacing: 0.32px;
828
+ --text-selector-label-selected-font-weight: 400;
829
+ --text-selector-header-tile-font-size: 16px;
830
+ --text-selector-header-tile-letter-spacing: 0.32px;
831
+ --text-selector-header-tile-font-weight: 400;
832
+
833
+ /* Merchandising */
834
+ --text-merchandising-badge-font-size: 12px;
835
+ --text-merchandising-badge-letter-spacing: 0.24px;
836
+ --text-merchandising-marketing-flag-font-size: 16px;
837
+ --text-merchandising-marketing-flag-letter-spacing: 0.32px;
838
+
839
+ /* Count */
840
+ --text-count-font-size: 12px;
841
+
842
+ /* SEO Crosslink */
843
+ --text-seo-crosslink-font-size: 16px;
844
+
845
+ /* Input / Search */
846
+ --text-input-search-font-size: 16px;
847
+ --text-input-search-letter-spacing: 0.32px;
848
+
849
+ /* Mega Nav */
850
+ --text-mega-nav-font-size: 16px;
851
+ --text-mega-nav-letter-spacing: 0.32px;
852
+ --text-mega-nav-font-weight: 400;
853
+ --text-mega-nav-category-header-font-size: 16px;
854
+ --text-mega-nav-category-header-letter-spacing: 0.32px;
855
+ --text-mega-nav-category-header-font-weight: 400;
856
+ --text-mega-nav-department-link-font-size: 16px;
857
+ --text-mega-nav-department-link-letter-spacing: 0.32px;
858
+ --text-mega-nav-department-link-font-weight: 400;
859
+
860
+ /* Hamburger Nav */
861
+ --text-hamburger-nav-title-font-size: 20px;
862
+ --text-hamburger-nav-title-letter-spacing: 0.2px;
863
+ --text-hamburger-nav-title-font-weight: 400;
864
+ --text-hamburger-nav-subtitle-font-size: 12px;
865
+ --text-hamburger-nav-subtitle-letter-spacing: 0.24px;
866
+ --text-hamburger-nav-subtitle-font-weight: 400;
867
+ --text-hamburger-nav-nav-title-font-size: 16px;
868
+ --text-hamburger-nav-nav-title-letter-spacing: 0.32px;
869
+ --text-hamburger-nav-nav-title-font-weight: 400;
870
+
871
+ /* Global Header */
872
+ --text-global-header-brand-bar-font-size: 10px;
873
+ --text-global-header-brand-bar-letter-spacing: 0.2px;
874
+ --text-global-header-brand-bar-font-weight: 400;
875
+ --text-global-header-edfs-mobile-font-size: 10px;
876
+ --text-global-header-edfs-mobile-letter-spacing: 0.2px;
877
+ --text-global-header-bag-mobile-font-size: 10px;
878
+
879
+ /* Global Footer */
880
+ --text-global-footer-links-font-size: 16px;
881
+ --text-global-footer-links-letter-spacing: 0.32px;
882
+ --text-global-footer-nav-header-font-size: 16px;
883
+ --text-global-footer-nav-header-letter-spacing: 0.32px;
884
+ --text-global-footer-title-font-weight: 400;
885
+
886
+ /* Global Header Copy (Content) */
887
+ --content-global-header-copy-font-size: 12px;
888
+ --content-global-header-copy-letter-spacing: 0.24px;
889
+
890
+ /* Content Font Letter Spacing */
891
+ --content-font-letter-spacing--25: -0.25px;
892
+ --content-font-letter-spacing-0: 0px;
893
+ --content-font-letter-spacing-50: 0.5px;
894
+ --content-font-letter-spacing-80: 0.8px;
895
+ --content-font-letter-spacing-100: 1px;
896
+ --content-font-letter-spacing-200: 2px;
897
+ }
898
+
899
+
900
+ /* Atoms */
901
+ /* =============================================================================
902
+ * COMPONENT — BUTTON
903
+ * Variants: critical, primary, secondary
904
+ * States: default, hover, press/active, loading, disabled
905
+ * ============================================================================= */
906
+
907
+ .gap-button {
908
+ display: inline-flex;
909
+ align-items: center;
910
+ justify-content: center;
911
+ min-height: var(--button-min-height, 44px);
912
+ padding: 0 var(--button-padding-horizontal, 48px);
913
+ border-radius: var(--button-border-radius, 0px);
914
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
915
+ font-size: var(--button-font-size, 16px);
916
+ font-weight: var(--button-font-weight, 400);
917
+ letter-spacing: var(--button-letter-spacing, 0.32px);
918
+ line-height: 1;
919
+ text-align: center;
920
+ text-decoration: none;
921
+ cursor: pointer;
922
+ border: none;
923
+ transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
924
+ box-sizing: border-box;
925
+ }
926
+
927
+ .gap-button--full-width {
928
+ width: 100%;
929
+ }
930
+
931
+ .gap-button:focus-visible {
932
+ outline: var(--border-width-2-focus, 2px) solid var(--color-border-accent, #031ba1);
933
+ outline-offset: 2px;
934
+ }
935
+
936
+ /* — Critical (filled blue, white text) — */
937
+
938
+ .gap-button--critical {
939
+ background-color: var(--color-fill-accent, #031ba1);
940
+ color: var(--color-type-inverse, #fff);
941
+ border: none;
942
+ }
943
+
944
+ .gap-button--critical:hover:not(:disabled) {
945
+ background-color: var(--button-critical-hover-fill, #000);
946
+ color: var(--color-type-inverse, #fff);
947
+ }
948
+
949
+ .gap-button--critical:active:not(:disabled) {
950
+ background-color: var(--color-fill-accent, #031ba1);
951
+ color: var(--color-type-inverse, #fff);
952
+ }
953
+
954
+ .gap-button--critical:disabled {
955
+ background-color: var(--color-fill-disabled, #ededed);
956
+ color: var(--color-type-disabled, #ccc);
957
+ cursor: not-allowed;
958
+ }
959
+
960
+ /* — Primary (outlined, white bg, gray border) — */
961
+
962
+ .gap-button--primary {
963
+ background-color: var(--button-primary-fill, #fff);
964
+ color: var(--button-primary-font, #000);
965
+ border: var(--button-primary-border-width, 2px) solid
966
+ var(--button-primary-border-color, #ccc);
967
+ }
968
+
969
+ .gap-button--primary:hover:not(:disabled) {
970
+ background-color: var(--button-primary-hover-fill, #031ba1);
971
+ color: var(--button-primary-hover-font, #fff);
972
+ border-color: var(--button-primary-pressed-border-color, #000);
973
+ }
974
+
975
+ .gap-button--primary:active:not(:disabled) {
976
+ background-color: var(--button-primary-pressed-fill, #fff);
977
+ color: var(--button-primary-pressed-font, #000);
978
+ border-color: var(--button-primary-pressed-border-color, #000);
979
+ }
980
+
981
+ .gap-button--primary:disabled {
982
+ background-color: var(--color-fill-default, #fff);
983
+ color: var(--color-type-disabled, #ccc);
984
+ border-color: var(--color-border-disabled, #ededed);
985
+ cursor: not-allowed;
986
+ }
987
+
988
+ /* — Secondary (filled black, white text) — */
989
+
990
+ .gap-button--secondary {
991
+ background-color: var(--button-secondary-fill, #000);
992
+ color: var(--button-secondary-font, #fff);
993
+ border: var(--border-width-1, 1px) solid var(--button-secondary-border, #000);
994
+ }
995
+
996
+ .gap-button--secondary:hover:not(:disabled) {
997
+ background-color: var(--button-secondary-hover-fill, #031ba1);
998
+ color: var(--button-secondary-hover-font, #fff);
999
+ border-color: var(--button-secondary-hover-border, #031ba1);
1000
+ }
1001
+
1002
+ .gap-button--secondary:active:not(:disabled) {
1003
+ background-color: var(--button-secondary-hover-fill, #031ba1);
1004
+ color: var(--button-secondary-font, #fff);
1005
+ border-color: var(--button-secondary-hover-border, #031ba1);
1006
+ }
1007
+
1008
+ .gap-button--secondary:disabled {
1009
+ background-color: var(--button-secondary-disabled-fill, #ededed);
1010
+ color: var(--button-secondary-disabled-font, #ccc);
1011
+ border-color: var(--color-fill-disabled, #ededed);
1012
+ cursor: not-allowed;
1013
+ }
1014
+
1015
+ /* — Loading state — */
1016
+
1017
+ .gap-button--loading {
1018
+ pointer-events: none;
1019
+ }
1020
+
1021
+ .gap-button-label {
1022
+ display: inline-block;
1023
+ }
1024
+
1025
+ .gap-button-loader {
1026
+ display: inline-flex;
1027
+ align-items: center;
1028
+ justify-content: center;
1029
+ gap: 5px;
1030
+ height: 24px;
1031
+ }
1032
+
1033
+ .gap-button-loader-dot {
1034
+ display: block;
1035
+ border-radius: 50%;
1036
+ background-color: currentColor;
1037
+ animation: gap-button-pulse 1.2s ease-in-out infinite;
1038
+ }
1039
+
1040
+ .gap-button-loader-dot--1 {
1041
+ width: 3px;
1042
+ height: 3px;
1043
+ animation-delay: 0s;
1044
+ }
1045
+
1046
+ .gap-button-loader-dot--2 {
1047
+ width: 4.5px;
1048
+ height: 4.5px;
1049
+ animation-delay: 0.15s;
1050
+ }
1051
+
1052
+ .gap-button-loader-dot--3 {
1053
+ width: 6px;
1054
+ height: 6px;
1055
+ animation-delay: 0.3s;
1056
+ }
1057
+
1058
+ @keyframes gap-button-pulse {
1059
+ 0%, 80%, 100% {
1060
+ opacity: 0.4;
1061
+ transform: scale(0.8);
1062
+ }
1063
+ 40% {
1064
+ opacity: 1;
1065
+ transform: scale(1);
1066
+ }
1067
+ }
1068
+
1069
+ /* =============================================================================
1070
+ * COMPONENT — CHECKBOX
1071
+ * States: default, error, disabled × unchecked / checked
1072
+ * ============================================================================= */
1073
+
1074
+ .gap-checkbox {
1075
+ display: inline-flex;
1076
+ align-items: center;
1077
+ gap: var(--spacing-s, 8px);
1078
+ cursor: pointer;
1079
+ }
1080
+
1081
+ .gap-checkbox--disabled {
1082
+ cursor: not-allowed;
1083
+ }
1084
+
1085
+ /* Visually-hidden native input */
1086
+ .gap-checkbox-input {
1087
+ position: absolute;
1088
+ width: 1px;
1089
+ height: 1px;
1090
+ margin: -1px;
1091
+ padding: 0;
1092
+ overflow: hidden;
1093
+ clip: rect(0 0 0 0);
1094
+ border: 0;
1095
+ white-space: nowrap;
1096
+ }
1097
+
1098
+ /* Custom box */
1099
+ .gap-checkbox-control {
1100
+ position: relative;
1101
+ display: inline-flex;
1102
+ align-items: center;
1103
+ justify-content: center;
1104
+ flex-shrink: 0;
1105
+ width: 24px;
1106
+ height: 24px;
1107
+ }
1108
+
1109
+ .gap-checkbox-box {
1110
+ display: flex;
1111
+ align-items: center;
1112
+ justify-content: center;
1113
+ width: 22px;
1114
+ height: 22px;
1115
+ border: var(--border-width-1, 1px) solid var(--selection-input-border, #000);
1116
+ border-radius: var(--selection-input-checkbox-border-radius, 0px);
1117
+ background-color: var(--selection-input-fill, #fff);
1118
+ transition: background-color 0.15s ease, border-color 0.15s ease;
1119
+ box-sizing: border-box;
1120
+ }
1121
+
1122
+ .gap-checkbox-checkmark {
1123
+ display: none;
1124
+ color: #fff;
1125
+ width: 16px;
1126
+ height: 12px;
1127
+ }
1128
+
1129
+ /* Checked */
1130
+ .gap-checkbox-input:checked + .gap-checkbox-box {
1131
+ background-color: var(--selection-input-selected-fill, #595959);
1132
+ border-color: var(--selection-input-border-selected, #000);
1133
+ }
1134
+
1135
+ .gap-checkbox-input:checked + .gap-checkbox-box .gap-checkbox-checkmark {
1136
+ display: block;
1137
+ }
1138
+
1139
+ /* Focus ring */
1140
+ .gap-checkbox-input:focus-visible + .gap-checkbox-box {
1141
+ outline: var(--border-width-2-focus, 2px) solid var(--color-border-accent, #031ba1);
1142
+ outline-offset: 2px;
1143
+ }
1144
+
1145
+ /* Error */
1146
+ .gap-checkbox--error .gap-checkbox-box {
1147
+ border-color: var(--color-border-error, #d00000);
1148
+ }
1149
+
1150
+ .gap-checkbox--error .gap-checkbox-input:checked + .gap-checkbox-box {
1151
+ background-color: var(--color-fill-error, #d00000);
1152
+ border-color: var(--color-border-error, #d00000);
1153
+ }
1154
+
1155
+ .gap-checkbox--error .gap-checkbox-label {
1156
+ color: var(--color-type-error, #d00000);
1157
+ }
1158
+
1159
+ /* Disabled */
1160
+ .gap-checkbox--disabled .gap-checkbox-box {
1161
+ border-color: var(--selection-input-border-disabled, #ededed);
1162
+ cursor: not-allowed;
1163
+ }
1164
+
1165
+ .gap-checkbox--disabled .gap-checkbox-input:checked + .gap-checkbox-box {
1166
+ background-color: var(--selection-input-disabled-fill, #ededed);
1167
+ border-color: var(--selection-input-border-disabled, #ededed);
1168
+ }
1169
+
1170
+ .gap-checkbox--disabled .gap-checkbox-label {
1171
+ color: var(--color-type-disabled, #ccc);
1172
+ }
1173
+
1174
+ /* Label */
1175
+ .gap-checkbox-label {
1176
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
1177
+ font-size: var(--font-size-0, 16px);
1178
+ font-weight: var(--font-weight-base, 400);
1179
+ letter-spacing: var(--font-letter-spacing-0, 0.32px);
1180
+ line-height: normal;
1181
+ color: var(--color-type-primary, #000);
1182
+ cursor: inherit;
1183
+ user-select: none;
1184
+ }
1185
+
1186
+ /* CheckboxGroup */
1187
+ .gap-checkbox-group {
1188
+ display: flex;
1189
+ flex-direction: column;
1190
+ gap: var(--spacing-xl, 24px);
1191
+ border: none;
1192
+ padding: 0;
1193
+ margin: 0;
1194
+ }
1195
+
1196
+ .gap-checkbox-group-legend {
1197
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
1198
+ font-size: var(--font-size-0, 16px);
1199
+ font-weight: var(--font-weight-base, 400);
1200
+ letter-spacing: var(--font-letter-spacing-0, 0.32px);
1201
+ color: var(--color-type-primary, #000);
1202
+ padding: 0;
1203
+ margin-bottom: var(--spacing-s, 8px);
1204
+ }
1205
+
1206
+ /* =============================================================================
1207
+ * COMPONENT — CHIP
1208
+ * Removable filter tag with optional color swatch
1209
+ * ============================================================================= */
1210
+
1211
+ .gap-chip {
1212
+ display: inline-flex;
1213
+ align-items: center;
1214
+ justify-content: center;
1215
+ gap: var(--spacing-utk-s, 8px);
1216
+ min-height: 32px;
1217
+ min-width: 48px;
1218
+ padding: var(--spacing-utk-s, 8px) var(--spacing-utk-m, 12px);
1219
+ background-color: var(--chips-default, rgba(231, 231, 231, 0.3));
1220
+ border: 0px solid var(--chips-default-border-color, rgba(231, 231, 231, 0.3));
1221
+ border-radius: var(--chips-border-radius, 0px);
1222
+ overflow: hidden;
1223
+ box-sizing: border-box;
1224
+ transition: background-color 0.15s ease, border-color 0.15s ease;
1225
+ }
1226
+
1227
+ .gap-chip:hover {
1228
+ border-width: var(--border-width-1, 1px);
1229
+ border-color: var(--chips-hover-border, rgba(231, 231, 231, 0.3));
1230
+ padding: calc(var(--spacing-utk-s, 8px) - 1px) calc(var(--spacing-utk-m, 12px) - 1px);
1231
+ }
1232
+
1233
+ .gap-chip:focus-within {
1234
+ background-color: var(--chips-focused, #ccc);
1235
+ border-width: var(--border-width-1, 1px);
1236
+ border-color: var(--chips-hover-border, rgba(231, 231, 231, 0.3));
1237
+ padding: calc(var(--spacing-utk-s, 8px) - 1px) calc(var(--spacing-utk-m, 12px) - 1px);
1238
+ }
1239
+
1240
+ .gap-chip:active {
1241
+ background-color: var(--chips-active, #afafaf);
1242
+ }
1243
+
1244
+ .gap-chip-swatch {
1245
+ display: block;
1246
+ flex-shrink: 0;
1247
+ width: 16px;
1248
+ height: 16px;
1249
+ border-radius: 999px;
1250
+ }
1251
+
1252
+ .gap-chip-label {
1253
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
1254
+ font-size: 16px;
1255
+ font-weight: var(--font-weight-base, 400);
1256
+ letter-spacing: var(--font-letter-spacing--1, 0.24px);
1257
+ line-height: normal;
1258
+ color: var(--chips-font-color, #031ba1);
1259
+ white-space: nowrap;
1260
+ }
1261
+
1262
+ .gap-chip-dismiss {
1263
+ display: inline-flex;
1264
+ align-items: center;
1265
+ justify-content: center;
1266
+ flex-shrink: 0;
1267
+ width: 16px;
1268
+ height: 16px;
1269
+ padding: 0;
1270
+ border: none;
1271
+ background: none;
1272
+ cursor: pointer;
1273
+ color: var(--chips-icon-color, #031ba1);
1274
+ }
1275
+
1276
+ .gap-chip-dismiss:focus-visible {
1277
+ outline: var(--border-width-2-focus, 2px) solid var(--color-border-accent, #031ba1);
1278
+ outline-offset: 2px;
1279
+ }
1280
+
1281
+ .gap-chip-dismiss-icon {
1282
+ width: 9px;
1283
+ height: 9px;
1284
+ }
1285
+
1286
+ /* — ChipGroup — */
1287
+
1288
+ .gap-chip-group {
1289
+ display: flex;
1290
+ flex-direction: column;
1291
+ gap: var(--spacing-utk-m, 12px);
1292
+ align-items: flex-start;
1293
+ }
1294
+
1295
+ .gap-chip-group-clear {
1296
+ display: inline-flex;
1297
+ align-items: center;
1298
+ justify-content: center;
1299
+ padding: 0;
1300
+ border: none;
1301
+ border-bottom: var(--border-width-1, 1px) solid var(--chips-link-color, #000);
1302
+ background: none;
1303
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
1304
+ font-size: var(--text-link-regular-font-size, 16px);
1305
+ font-weight: var(--text-link-regular-font-weight, 400);
1306
+ letter-spacing: var(--font-letter-spacing-0, 0.32px);
1307
+ line-height: normal;
1308
+ color: var(--chips-link-color, #000);
1309
+ cursor: pointer;
1310
+ white-space: nowrap;
1311
+ }
1312
+
1313
+ .gap-chip-group-clear:hover {
1314
+ opacity: 0.7;
1315
+ }
1316
+
1317
+ .gap-chip-group-chips {
1318
+ display: flex;
1319
+ flex-wrap: wrap;
1320
+ gap: 12px 8px;
1321
+ align-items: center;
1322
+ }
1323
+
1324
+ /* =============================================================================
1325
+ * COMPONENT — DIVIDER
1326
+ * Variants: default (dark), subtle (light)
1327
+ * ============================================================================= */
1328
+
1329
+ .gap-divider {
1330
+ width: 100%;
1331
+ border: none;
1332
+ border-top-style: solid;
1333
+ border-top-width: var(--divider-border-width, 2px);
1334
+ margin: 0;
1335
+ }
1336
+
1337
+ .gap-divider--default {
1338
+ border-top-color: var(--divider-color, #595959);
1339
+ }
1340
+
1341
+ .gap-divider--subtle {
1342
+ border-top-color: var(--color-border-subtle, #ccc);
1343
+ }
1344
+
1345
+ /* =============================================================================
1346
+ * COMPONENT — HANDLE
1347
+ * Circular drag thumb for sliders / range controls
1348
+ * Sizes: large (24px), small (20px)
1349
+ * ============================================================================= */
1350
+
1351
+ .gap-handle {
1352
+ position: relative;
1353
+ display: inline-flex;
1354
+ align-items: center;
1355
+ justify-content: center;
1356
+ cursor: grab;
1357
+ }
1358
+
1359
+ .gap-handle:active {
1360
+ cursor: grabbing;
1361
+ }
1362
+
1363
+ .gap-handle--large {
1364
+ width: 24px;
1365
+ height: 24px;
1366
+ }
1367
+
1368
+ .gap-handle--small {
1369
+ width: 20px;
1370
+ height: 20px;
1371
+ }
1372
+
1373
+ .gap-handle-ring {
1374
+ position: absolute;
1375
+ top: 50%;
1376
+ left: 50%;
1377
+ transform: translate(-50%, -50%);
1378
+ width: 32px;
1379
+ height: 32px;
1380
+ border-radius: 100px;
1381
+ background: transparent;
1382
+ transition: width 0.15s ease, height 0.15s ease, background-color 0.15s ease;
1383
+ pointer-events: none;
1384
+ }
1385
+
1386
+ .gap-handle:hover .gap-handle-ring {
1387
+ width: 48px;
1388
+ height: 48px;
1389
+ background-color: var(--color-fill-handle-hover, #757575);
1390
+ opacity: 0.3;
1391
+ }
1392
+
1393
+ .gap-handle:active .gap-handle-ring {
1394
+ width: 48px;
1395
+ height: 48px;
1396
+ background-color: var(--color-fill-handle-hover, #757575);
1397
+ opacity: 0.5;
1398
+ }
1399
+
1400
+ .gap-handle-thumb {
1401
+ position: absolute;
1402
+ top: 50%;
1403
+ left: 50%;
1404
+ transform: translate(-50%, -50%);
1405
+ border-radius: 50%;
1406
+ background-color: #fff;
1407
+ box-shadow: var(--shadow-high, 2px 4px 8px rgba(0, 0, 0, 0.08));
1408
+ pointer-events: none;
1409
+ }
1410
+
1411
+ .gap-handle--large .gap-handle-thumb {
1412
+ width: 24px;
1413
+ height: 24px;
1414
+ }
1415
+
1416
+ .gap-handle--small .gap-handle-thumb {
1417
+ width: 20px;
1418
+ height: 20px;
1419
+ }
1420
+
1421
+ /* =============================================================================
1422
+ * COMPONENT — LINK
1423
+ * Variants: inline (underlined, blue), subtle (no underline, gray)
1424
+ * ============================================================================= */
1425
+
1426
+ .gap-link {
1427
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
1428
+ font-size: var(--text-link-regular-font-size, 16px);
1429
+ font-weight: var(--text-link-regular-font-weight, 400);
1430
+ letter-spacing: var(--font-letter-spacing-0, 0.32px);
1431
+ line-height: normal;
1432
+ text-decoration: none;
1433
+ cursor: pointer;
1434
+ transition: color 0.15s ease, border-color 0.15s ease;
1435
+ border-bottom-style: solid;
1436
+ border-bottom-width: 0px;
1437
+ }
1438
+
1439
+ /* — Inline: underlined blue link — */
1440
+
1441
+ .gap-link--inline {
1442
+ color: var(--color-type-link, #031ba1);
1443
+ border-bottom-width: var(--border-width-1, 1px);
1444
+ border-bottom-color: var(--color-type-link, #031ba1);
1445
+ }
1446
+
1447
+ .gap-link--inline:hover,
1448
+ .gap-link--inline:active {
1449
+ color: var(--link-hover, #031ba1);
1450
+ border-bottom-color: var(--link-hover, #031ba1);
1451
+ }
1452
+
1453
+ .gap-link--inline:visited {
1454
+ color: var(--color-type-visited, #757575);
1455
+ border-bottom-color: var(--color-type-visited, #757575);
1456
+ }
1457
+
1458
+ /* — Subtle: no underline, gray text — */
1459
+
1460
+ .gap-link--subtle {
1461
+ color: var(--color-type-subtle, #757575);
1462
+ border-bottom-width: 0px;
1463
+ border-bottom-color: transparent;
1464
+ }
1465
+
1466
+ .gap-link--subtle:hover,
1467
+ .gap-link--subtle:active {
1468
+ color: var(--link-hover, #031ba1);
1469
+ border-bottom-width: var(--border-width-1, 1px);
1470
+ border-bottom-color: var(--link-hover, #031ba1);
1471
+ }
1472
+
1473
+ .gap-link--subtle:visited {
1474
+ color: var(--color-type-visited, #757575);
1475
+ }
1476
+
1477
+ /* Focus */
1478
+ .gap-link:focus-visible {
1479
+ outline: var(--border-width-2-focus, 2px) solid var(--color-border-accent, #031ba1);
1480
+ outline-offset: 2px;
1481
+ }
1482
+
1483
+ /* =============================================================================
1484
+ * COMPONENT — PRICE
1485
+ * Layouts: inline, stacked | States: regular, sale (with optional range)
1486
+ * ============================================================================= */
1487
+
1488
+ .gap-price {
1489
+ display: inline-flex;
1490
+ align-items: center;
1491
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
1492
+ font-size: var(--text-price-small-font-size, 16px);
1493
+ font-weight: var(--text-price-small-font-weight, 400);
1494
+ letter-spacing: var(--text-price-small-letter-spacing, 0.32px);
1495
+ line-height: normal;
1496
+ }
1497
+
1498
+ .gap-price--inline {
1499
+ flex-direction: row;
1500
+ gap: var(--spacing-2xs, 4px);
1501
+ }
1502
+
1503
+ .gap-price--stacked {
1504
+ flex-direction: column;
1505
+ align-items: flex-start;
1506
+ gap: var(--spacing-2xs, 4px);
1507
+ }
1508
+
1509
+ .gap-price-current {
1510
+ color: var(--color-type-primary, #000);
1511
+ }
1512
+
1513
+ .gap-price-original {
1514
+ color: var(--product-price-strikethrough, #757575);
1515
+ text-decoration: line-through;
1516
+ }
1517
+
1518
+ .gap-price-details {
1519
+ display: inline-flex;
1520
+ align-items: center;
1521
+ gap: var(--spacing-2xs, 4px);
1522
+ }
1523
+
1524
+ .gap-price-discount {
1525
+ color: var(--product-price-percent-off-font, #595959);
1526
+ font-size: var(--text-price-percent-off-font-size, 16px);
1527
+ font-weight: var(--text-price-percent-off-font-weight, 400);
1528
+ letter-spacing: var(--text-price-percent-off-letter-spacing, 0.32px);
1529
+ }
1530
+
1531
+ .gap-price-sale {
1532
+ color: var(--color-type-sale, #e10000);
1533
+ }
1534
+
1535
+ .gap-price-range {
1536
+ display: inline-flex;
1537
+ align-items: flex-start;
1538
+ gap: var(--spacing-3xs, 2px);
1539
+ }
1540
+
1541
+ .gap-price-range-separator {
1542
+ color: var(--color-type-primary, #000);
1543
+ }
1544
+
1545
+ .gap-price-range-end {
1546
+ color: var(--color-type-primary, #000);
1547
+ }
1548
+
1549
+ /* =============================================================================
1550
+ * COMPONENT — RADIO
1551
+ * States: default, error, disabled × unselected / selected
1552
+ * ============================================================================= */
1553
+
1554
+ .gap-radio {
1555
+ display: inline-flex;
1556
+ align-items: center;
1557
+ gap: var(--spacing-2xs, 4px);
1558
+ cursor: pointer;
1559
+ }
1560
+
1561
+ .gap-radio--disabled {
1562
+ cursor: not-allowed;
1563
+ }
1564
+
1565
+ .gap-radio-input {
1566
+ position: absolute;
1567
+ width: 1px;
1568
+ height: 1px;
1569
+ margin: -1px;
1570
+ padding: 0;
1571
+ overflow: hidden;
1572
+ clip: rect(0 0 0 0);
1573
+ border: 0;
1574
+ white-space: nowrap;
1575
+ }
1576
+
1577
+ .gap-radio-control {
1578
+ position: relative;
1579
+ display: inline-flex;
1580
+ align-items: center;
1581
+ justify-content: center;
1582
+ flex-shrink: 0;
1583
+ width: 24px;
1584
+ height: 24px;
1585
+ }
1586
+
1587
+ .gap-radio-circle {
1588
+ display: flex;
1589
+ align-items: center;
1590
+ justify-content: center;
1591
+ width: 20px;
1592
+ height: 20px;
1593
+ border: var(--border-width-1, 1px) solid var(--selection-input-border, #000);
1594
+ border-radius: 50%;
1595
+ background-color: var(--selection-input-fill, #fff);
1596
+ transition: background-color 0.15s ease, border-color 0.15s ease;
1597
+ box-sizing: border-box;
1598
+ }
1599
+
1600
+ .gap-radio-circle::after {
1601
+ content: "";
1602
+ display: block;
1603
+ width: 10px;
1604
+ height: 10px;
1605
+ border-radius: 50%;
1606
+ background-color: transparent;
1607
+ transition: background-color 0.15s ease;
1608
+ }
1609
+
1610
+ /* Selected */
1611
+ .gap-radio-input:checked + .gap-radio-circle {
1612
+ border-color: var(--selection-input-border-selected, #000);
1613
+ }
1614
+
1615
+ .gap-radio-input:checked + .gap-radio-circle::after {
1616
+ background-color: var(--selection-input-selected-fill, #595959);
1617
+ }
1618
+
1619
+ /* Focus ring */
1620
+ .gap-radio-input:focus-visible + .gap-radio-circle {
1621
+ outline: var(--border-width-2-focus, 2px) solid var(--color-border-accent, #031ba1);
1622
+ outline-offset: 2px;
1623
+ }
1624
+
1625
+ /* Error */
1626
+ .gap-radio--error .gap-radio-circle {
1627
+ border-color: var(--color-border-error, #d00000);
1628
+ }
1629
+
1630
+ .gap-radio--error .gap-radio-input:checked + .gap-radio-circle::after {
1631
+ background-color: var(--color-fill-error, #d00000);
1632
+ }
1633
+
1634
+ .gap-radio--error .gap-radio-label {
1635
+ color: var(--color-type-error, #d00000);
1636
+ }
1637
+
1638
+ /* Disabled */
1639
+ .gap-radio--disabled .gap-radio-circle {
1640
+ border-color: var(--selection-input-border-disabled, #ededed);
1641
+ }
1642
+
1643
+ .gap-radio--disabled .gap-radio-input:checked + .gap-radio-circle::after {
1644
+ background-color: var(--selection-input-disabled-fill, #ededed);
1645
+ }
1646
+
1647
+ .gap-radio--disabled .gap-radio-label {
1648
+ color: var(--color-type-disabled, #ccc);
1649
+ }
1650
+
1651
+ /* Label */
1652
+ .gap-radio-label {
1653
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
1654
+ font-size: var(--font-size-0, 16px);
1655
+ font-weight: var(--font-weight-base, 400);
1656
+ letter-spacing: var(--font-letter-spacing-0, 0.32px);
1657
+ line-height: normal;
1658
+ color: var(--color-type-primary, #000);
1659
+ cursor: inherit;
1660
+ user-select: none;
1661
+ }
1662
+
1663
+ /* RadioGroup */
1664
+ .gap-radio-group {
1665
+ display: flex;
1666
+ flex-direction: column;
1667
+ gap: var(--spacing-xl, 24px);
1668
+ padding: var(--spacing-utk-l, 16px) 0;
1669
+ border: none;
1670
+ margin: 0;
1671
+ }
1672
+
1673
+ .gap-radio-group-legend {
1674
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
1675
+ font-size: var(--font-size-0, 16px);
1676
+ font-weight: var(--font-weight-base, 400);
1677
+ letter-spacing: var(--font-letter-spacing-0, 0.32px);
1678
+ color: var(--color-type-primary, #000);
1679
+ padding: 0;
1680
+ margin-bottom: var(--spacing-s, 8px);
1681
+ }
1682
+
1683
+ /* =============================================================================
1684
+ * COMPONENT — SWITCH
1685
+ * Pill-shaped toggle: off (gray handle) / on (blue handle)
1686
+ * ============================================================================= */
1687
+
1688
+ .gap-switch {
1689
+ display: inline-flex;
1690
+ align-items: center;
1691
+ width: 54px;
1692
+ padding: var(--spacing-3xs, 2px);
1693
+ border: none;
1694
+ border-radius: var(--switch-border-radius, 999px);
1695
+ cursor: pointer;
1696
+ gap: var(--spacing-3xs, 2px);
1697
+ box-sizing: border-box;
1698
+ transition: background-color 0.2s ease;
1699
+ }
1700
+
1701
+ .gap-switch--off {
1702
+ background-color: var(--switch-subtle, #ededed);
1703
+ justify-content: flex-start;
1704
+ }
1705
+
1706
+ .gap-switch--on {
1707
+ background-color: var(--switch-action, #ededed);
1708
+ justify-content: flex-end;
1709
+ }
1710
+
1711
+ .gap-switch--disabled {
1712
+ opacity: 0.4;
1713
+ cursor: not-allowed;
1714
+ }
1715
+
1716
+ .gap-switch-thumb {
1717
+ display: block;
1718
+ flex-shrink: 0;
1719
+ width: 24px;
1720
+ height: 24px;
1721
+ border-radius: 50%;
1722
+ box-shadow: var(--shadow-high, 2px 4px 8px rgba(0, 0, 0, 0.08));
1723
+ transition: background-color 0.2s ease;
1724
+ }
1725
+
1726
+ .gap-switch--off .gap-switch-thumb {
1727
+ background-color: var(--switch-handle-off-fill, #757575);
1728
+ }
1729
+
1730
+ .gap-switch--on .gap-switch-thumb {
1731
+ background-color: var(--switch-handle-on-fill, #031ba1);
1732
+ }
1733
+
1734
+ .gap-switch-label {
1735
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
1736
+ font-size: var(--font-size--2, 10px);
1737
+ letter-spacing: var(--font-letter-spacing--2, 0.2px);
1738
+ line-height: 1;
1739
+ user-select: none;
1740
+ }
1741
+
1742
+ .gap-switch--off .gap-switch-label {
1743
+ color: var(--color-type-primary, #000);
1744
+ }
1745
+
1746
+ .gap-switch--on .gap-switch-label {
1747
+ color: var(--color-type-inverse, #fff);
1748
+ }
1749
+
1750
+ .gap-switch:focus-visible {
1751
+ outline: var(--border-width-2-focus, 2px) solid var(--color-border-accent, #031ba1);
1752
+ outline-offset: 2px;
1753
+ }
1754
+
1755
+ /* =============================================================================
1756
+ * COMPONENT — BOPIS SWITCH
1757
+ * Store Pickup toggle with header, description, and store link
1758
+ * ============================================================================= */
1759
+
1760
+ .gap-bopis-switch {
1761
+ display: flex;
1762
+ flex-direction: column;
1763
+ gap: var(--spacing-m, 16px);
1764
+ padding-bottom: var(--spacing-m, 16px);
1765
+ }
1766
+
1767
+ .gap-bopis-switch-content {
1768
+ display: flex;
1769
+ flex-direction: column;
1770
+ gap: var(--spacing-utk-s, 8px);
1771
+ }
1772
+
1773
+ .gap-bopis-switch-header {
1774
+ display: flex;
1775
+ align-items: center;
1776
+ justify-content: space-between;
1777
+ }
1778
+
1779
+ .gap-bopis-switch-title {
1780
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
1781
+ font-size: var(--text-header-font-size, 16px);
1782
+ font-weight: var(--font-weight-base-heavier, 400);
1783
+ letter-spacing: var(--text-subhead-letter-spacing, 0.24px);
1784
+ line-height: normal;
1785
+ color: var(--color-type-copy, #000);
1786
+ }
1787
+
1788
+ .gap-bopis-switch-description {
1789
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
1790
+ font-size: var(--text-subhead-font-size, 12px);
1791
+ letter-spacing: var(--text-subhead-letter-spacing, 0.24px);
1792
+ font-weight: var(--font-weight-base, 400);
1793
+ line-height: normal;
1794
+ color: var(--color-type-copy, #000);
1795
+ }
1796
+
1797
+ .gap-bopis-switch-store {
1798
+ font-size: var(--text-link-regular-font-size, 16px);
1799
+ }
1800
+
1801
+ /* =============================================================================
1802
+ * COMPONENT — TEXT INPUT
1803
+ * Floating-label input with helper text, error, and character count
1804
+ * ============================================================================= */
1805
+
1806
+ .gap-text-input {
1807
+ display: flex;
1808
+ flex-direction: column;
1809
+ gap: var(--spacing-2xs, 4px);
1810
+ width: 100%;
1811
+ position: relative;
1812
+ }
1813
+
1814
+ .gap-text-input-field {
1815
+ position: relative;
1816
+ display: flex;
1817
+ align-items: center;
1818
+ gap: var(--spacing-utk-s, 8px);
1819
+ height: 44px;
1820
+ padding: 0 var(--spacing-utk-l, 16px);
1821
+ background-color: var(--text-input-fill-default, rgba(231, 231, 231, 0.3));
1822
+ border: var(--border-width-1, 1px) solid
1823
+ var(--text-input-border-default, rgba(231, 231, 231, 0.3));
1824
+ border-radius: var(--border-radius-curved-m, 0px);
1825
+ box-sizing: border-box;
1826
+ transition: border-color 0.15s ease, border-width 0.15s ease;
1827
+ }
1828
+
1829
+ .gap-text-input-input {
1830
+ flex: 1 0 0;
1831
+ min-width: 0;
1832
+ border: none;
1833
+ outline: none;
1834
+ background: transparent;
1835
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
1836
+ font-size: var(--text-input-font-size, 16px);
1837
+ font-weight: var(--font-weight-base, 400);
1838
+ letter-spacing: var(--font-letter-spacing-0, 0.32px);
1839
+ line-height: normal;
1840
+ color: var(--color-type-primary, #000);
1841
+ padding: 0;
1842
+ }
1843
+
1844
+ .gap-text-input-input::placeholder {
1845
+ color: var(--text-input-text-default, #595959);
1846
+ }
1847
+
1848
+ /* Floating label */
1849
+ .gap-text-input-floating-label {
1850
+ position: absolute;
1851
+ top: -10px;
1852
+ left: 12px;
1853
+ padding: 0 var(--spacing-2xs, 4px);
1854
+ background-color: var(--text-input-label-fill, rgba(231, 231, 231, 0.3));
1855
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
1856
+ font-size: var(--font-size--2, 10px);
1857
+ font-weight: var(--font-weight-base, 400);
1858
+ letter-spacing: var(--font-letter-spacing--2, 0.2px);
1859
+ line-height: normal;
1860
+ color: var(--color-type-primary, #000);
1861
+ pointer-events: none;
1862
+ }
1863
+
1864
+ /* Focused */
1865
+ .gap-text-input--focused .gap-text-input-field {
1866
+ border-width: var(--border-width-2, 2px);
1867
+ border-color: var(--text-input-border-focused, #000);
1868
+ padding: 0 calc(var(--spacing-utk-l, 16px) - 1px);
1869
+ }
1870
+
1871
+ /* Error */
1872
+ .gap-text-input--error .gap-text-input-field {
1873
+ border-color: var(--color-border-error, #d00000);
1874
+ }
1875
+
1876
+ .gap-text-input--error.gap-text-input--focused .gap-text-input-field {
1877
+ border-width: var(--border-width-2, 2px);
1878
+ border-color: var(--color-border-error, #d00000);
1879
+ padding: 0 calc(var(--spacing-utk-l, 16px) - 1px);
1880
+ }
1881
+
1882
+ .gap-text-input--error .gap-text-input-floating-label {
1883
+ color: var(--color-type-error, #d00000);
1884
+ }
1885
+
1886
+ .gap-text-input--error .gap-text-input-helper-text {
1887
+ color: var(--color-type-error, #d00000);
1888
+ }
1889
+
1890
+ /* Disabled */
1891
+ .gap-text-input--disabled .gap-text-input-field {
1892
+ background-color: var(--text-input-fill-disabled, #ededed);
1893
+ border-color: var(--text-input-border-disabled, #ededed);
1894
+ }
1895
+
1896
+ .gap-text-input--disabled .gap-text-input-input {
1897
+ color: var(--text-input-text-disabled, #999);
1898
+ cursor: not-allowed;
1899
+ }
1900
+
1901
+ .gap-text-input--disabled .gap-text-input-input::placeholder {
1902
+ color: var(--text-input-text-disabled, #999);
1903
+ }
1904
+
1905
+ .gap-text-input--disabled .gap-text-input-floating-label {
1906
+ color: var(--text-input-text-disabled, #999);
1907
+ background-color: var(--text-input-fill-disabled, #ededed);
1908
+ }
1909
+
1910
+ /* Helper / assistive text */
1911
+ .gap-text-input-helper {
1912
+ display: flex;
1913
+ gap: var(--spacing-utk-l, 16px);
1914
+ align-items: flex-start;
1915
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
1916
+ font-size: var(--font-size--2, 10px);
1917
+ font-weight: var(--font-weight-base, 400);
1918
+ letter-spacing: var(--font-letter-spacing--2, 0.2px);
1919
+ line-height: normal;
1920
+ color: var(--text-input-helper-text, #000);
1921
+ }
1922
+
1923
+ .gap-text-input-helper-text {
1924
+ flex: 1 0 0;
1925
+ }
1926
+
1927
+ .gap-text-input-helper-count {
1928
+ flex-shrink: 0;
1929
+ text-align: right;
1930
+ white-space: nowrap;
1931
+ }
1932
+
1933
+
1934
+ /* Components */
1935
+ /* =============================================================================
1936
+ * COMPONENT — ACCORDION
1937
+ * Vertically stacked expandable/collapsible sections
1938
+ * ============================================================================= */
1939
+
1940
+ .gap-accordion {
1941
+ display: flex;
1942
+ flex-direction: column;
1943
+ align-items: flex-start;
1944
+ width: 100%;
1945
+ }
1946
+
1947
+ .gap-accordion-item {
1948
+ display: flex;
1949
+ flex-direction: column;
1950
+ gap: var(--spacing-l, 24px);
1951
+ padding-bottom: var(--spacing-l, 24px);
1952
+ width: 100%;
1953
+ }
1954
+
1955
+ .gap-accordion-header {
1956
+ display: flex;
1957
+ flex-direction: column;
1958
+ gap: var(--spacing-s, 8px);
1959
+ width: 100%;
1960
+ }
1961
+
1962
+ .gap-accordion-trigger {
1963
+ display: flex;
1964
+ align-items: center;
1965
+ gap: var(--spacing-utk-s, 8px);
1966
+ width: 100%;
1967
+ border: none;
1968
+ background: none;
1969
+ padding: 0;
1970
+ cursor: pointer;
1971
+ text-align: left;
1972
+ color: inherit;
1973
+ font: inherit;
1974
+ }
1975
+
1976
+ .gap-accordion-title-group {
1977
+ display: flex;
1978
+ flex: 1 0 0;
1979
+ align-items: center;
1980
+ gap: var(--spacing-xs, 4px);
1981
+ }
1982
+
1983
+ .gap-accordion-title {
1984
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
1985
+ font-size: var(--text-header-font-size, 16px);
1986
+ font-weight: var(--font-weight-base-heavier, 700);
1987
+ letter-spacing: var(--text-subhead-letter-spacing, 0.28px);
1988
+ line-height: normal;
1989
+ color: var(--color-type-primary, #000);
1990
+ white-space: nowrap;
1991
+ }
1992
+
1993
+ .gap-accordion-count {
1994
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
1995
+ font-size: var(--text-header-font-size, 16px);
1996
+ font-weight: var(--font-weight-base-heavier, 700);
1997
+ letter-spacing: var(--text-subhead-letter-spacing, 0.28px);
1998
+ line-height: normal;
1999
+ color: var(--color-type-primary, #000);
2000
+ white-space: nowrap;
2001
+ }
2002
+
2003
+ .gap-accordion-chevron {
2004
+ flex-shrink: 0;
2005
+ color: var(--color-type-primary, #000);
2006
+ transition: transform 0.2s ease;
2007
+ }
2008
+
2009
+ .gap-accordion-chevron--up {
2010
+ transform: rotate(180deg);
2011
+ }
2012
+
2013
+ .gap-accordion-subtitle {
2014
+ padding-right: var(--spacing-m, 16px);
2015
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
2016
+ font-size: var(--text-subhead-font-size, 14px);
2017
+ font-weight: var(--font-weight-base, 400);
2018
+ letter-spacing: var(--text-subhead-letter-spacing, 0.28px);
2019
+ line-height: normal;
2020
+ color: var(--color-type-secondary, #595959);
2021
+ }
2022
+
2023
+ .gap-accordion-content {
2024
+ width: 100%;
2025
+ }
2026
+
2027
+ /* =============================================================================
2028
+ * COMPONENT — BREADCRUMB
2029
+ * Horizontal navigation trail showing page hierarchy
2030
+ * ============================================================================= */
2031
+
2032
+ .gap-breadcrumb {
2033
+ display: flex;
2034
+ align-items: center;
2035
+ padding: var(--spacing-utk-l, 16px) 0;
2036
+ padding-left: var(--breadcrumb-horizontal-padding, 0px);
2037
+ width: 100%;
2038
+ }
2039
+
2040
+ .gap-breadcrumb-list {
2041
+ display: flex;
2042
+ align-items: center;
2043
+ gap: var(--spacing-xs, 4px);
2044
+ list-style: none;
2045
+ margin: 0;
2046
+ padding: 0;
2047
+ }
2048
+
2049
+ .gap-breadcrumb-item {
2050
+ display: flex;
2051
+ align-items: center;
2052
+ gap: var(--spacing-xs, 4px);
2053
+ }
2054
+
2055
+ .gap-breadcrumb-separator {
2056
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
2057
+ font-size: var(--font-size-0, 16px);
2058
+ font-weight: var(--font-weight-base, 400);
2059
+ letter-spacing: var(--font-letter-spacing-0, 0.32px);
2060
+ line-height: normal;
2061
+ color: var(--color-type-primary, #000);
2062
+ white-space: nowrap;
2063
+ }
2064
+
2065
+ .gap-breadcrumb-link {
2066
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
2067
+ font-size: var(--text-link-regular-font-size, 16px);
2068
+ font-weight: var(--text-link-regular-font-weight, 400);
2069
+ letter-spacing: var(--font-letter-spacing-0, 0.32px);
2070
+ line-height: normal;
2071
+ color: var(--color-type-link, #031ba1);
2072
+ text-decoration: underline;
2073
+ white-space: nowrap;
2074
+ }
2075
+
2076
+ .gap-breadcrumb-link:hover {
2077
+ text-decoration: none;
2078
+ }
2079
+
2080
+ .gap-breadcrumb-link--current {
2081
+ text-decoration: none;
2082
+ }
2083
+
2084
+ /* =============================================================================
2085
+ * COMPONENT — DROPDOWN
2086
+ * Custom select with floating label, menu overlay, and keyboard navigation
2087
+ * ============================================================================= */
2088
+
2089
+ .gap-dropdown {
2090
+ position: relative;
2091
+ display: flex;
2092
+ flex-direction: column;
2093
+ align-items: flex-start;
2094
+ width: 100%;
2095
+ }
2096
+
2097
+ .gap-dropdown-trigger {
2098
+ position: relative;
2099
+ display: flex;
2100
+ align-items: center;
2101
+ gap: var(--spacing-utk-l, 16px);
2102
+ width: 100%;
2103
+ height: 44px;
2104
+ padding: var(--spacing-utk-s, 8px) var(--spacing-utk-l, 16px);
2105
+ background-color: var(--color-background-default-white, #fff);
2106
+ border: var(--border-width-1, 1px) solid
2107
+ var(--dropdown-border-color, #595959);
2108
+ border-radius: var(--border-radius-curved-m, 0px);
2109
+ box-sizing: border-box;
2110
+ cursor: pointer;
2111
+ font: inherit;
2112
+ text-align: left;
2113
+ color: var(--color-type-primary, #000);
2114
+ transition: border-color 0.15s ease, border-width 0.15s ease;
2115
+ }
2116
+
2117
+ .gap-dropdown-value {
2118
+ flex: 1 0 0;
2119
+ min-width: 0;
2120
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
2121
+ font-size: var(--text-input-font-size, 16px);
2122
+ font-weight: var(--font-weight-base, 400);
2123
+ letter-spacing: var(--font-letter-spacing-0, 0.32px);
2124
+ line-height: normal;
2125
+ color: var(--color-type-primary, #000);
2126
+ white-space: nowrap;
2127
+ overflow: hidden;
2128
+ text-overflow: ellipsis;
2129
+ }
2130
+
2131
+ /* Empty state — label acts as placeholder */
2132
+ .gap-dropdown:not(.gap-dropdown--filled) .gap-dropdown-value {
2133
+ color: var(--color-type-subtle, #757575);
2134
+ }
2135
+
2136
+ .gap-dropdown-floating-label {
2137
+ position: absolute;
2138
+ top: -10px;
2139
+ left: 12px;
2140
+ padding: 0 var(--spacing-2xs, 4px);
2141
+ background-color: var(--color-background-default-white, #fff);
2142
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
2143
+ font-size: var(--font-size--2, 10px);
2144
+ font-weight: var(--font-weight-base, 400);
2145
+ letter-spacing: var(--font-letter-spacing--2, 0.2px);
2146
+ line-height: normal;
2147
+ color: var(--color-type-primary, #000);
2148
+ pointer-events: none;
2149
+ white-space: nowrap;
2150
+ }
2151
+
2152
+ .gap-dropdown-chevron {
2153
+ flex-shrink: 0;
2154
+ color: var(--color-type-primary, #000);
2155
+ transition: transform 0.2s ease;
2156
+ }
2157
+
2158
+ .gap-dropdown-chevron--up {
2159
+ transform: rotate(180deg);
2160
+ }
2161
+
2162
+ /* Open state */
2163
+ .gap-dropdown--open .gap-dropdown-trigger {
2164
+ border-width: var(--dropdown-selected-border-width, 2px);
2165
+ border-color: var(--dropdown-border-color, #595959);
2166
+ padding: calc(var(--spacing-utk-s, 8px) - 1px)
2167
+ calc(var(--spacing-utk-l, 16px) - 1px);
2168
+ }
2169
+
2170
+ /* Error state */
2171
+ .gap-dropdown--error .gap-dropdown-trigger {
2172
+ border-color: var(--color-border-error, #d00000);
2173
+ }
2174
+
2175
+ .gap-dropdown--error.gap-dropdown--open .gap-dropdown-trigger {
2176
+ border-width: var(--dropdown-selected-border-width, 2px);
2177
+ border-color: var(--color-border-error, #d00000);
2178
+ padding: calc(var(--spacing-utk-s, 8px) - 1px)
2179
+ calc(var(--spacing-utk-l, 16px) - 1px);
2180
+ }
2181
+
2182
+ .gap-dropdown--error .gap-dropdown-floating-label {
2183
+ color: var(--color-type-error, #d00000);
2184
+ }
2185
+
2186
+ /* Disabled state */
2187
+ .gap-dropdown--disabled .gap-dropdown-trigger {
2188
+ background-color: var(--color-fill-disabled, #ededed);
2189
+ border-color: var(--color-fill-disabled, #ededed);
2190
+ cursor: not-allowed;
2191
+ }
2192
+
2193
+ .gap-dropdown--disabled .gap-dropdown-value {
2194
+ color: var(--color-type-subtle, #757575);
2195
+ }
2196
+
2197
+ .gap-dropdown--disabled .gap-dropdown-floating-label {
2198
+ color: var(--color-type-subtle, #757575);
2199
+ background-color: var(--color-fill-disabled, #ededed);
2200
+ }
2201
+
2202
+ .gap-dropdown--disabled .gap-dropdown-chevron {
2203
+ color: var(--color-type-subtle, #757575);
2204
+ }
2205
+
2206
+ /* Dropdown menu */
2207
+ .gap-dropdown-menu {
2208
+ position: absolute;
2209
+ top: 100%;
2210
+ left: 0;
2211
+ right: 0;
2212
+ z-index: 10;
2213
+ display: flex;
2214
+ flex-direction: column;
2215
+ background-color: var(--color-background-default-white, #fff);
2216
+ border-radius: 0 0 var(--border-radius-curved-m, 0px)
2217
+ var(--border-radius-curved-m, 0px);
2218
+ box-shadow: var(--drop-shadow-high-x, 2px) var(--drop-shadow-high-y, 4px)
2219
+ var(--drop-shadow-high-blur, 8px) 0px var(--drop-shadow-color, rgba(0, 0, 0, 0.08));
2220
+ overflow: auto;
2221
+ max-height: 252px;
2222
+ }
2223
+
2224
+ .gap-dropdown-option {
2225
+ display: flex;
2226
+ align-items: flex-start;
2227
+ height: 42px;
2228
+ padding: var(--spacing-utk-m, 12px) var(--spacing-utk-l, 16px);
2229
+ box-sizing: border-box;
2230
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
2231
+ font-size: var(--text-input-font-size, 16px);
2232
+ font-weight: var(--font-weight-base, 400);
2233
+ letter-spacing: var(--font-letter-spacing-0, 0.32px);
2234
+ line-height: normal;
2235
+ color: var(--color-type-primary, #000);
2236
+ background-color: var(--color-background-default-white, #fff);
2237
+ cursor: pointer;
2238
+ white-space: nowrap;
2239
+ }
2240
+
2241
+ .gap-dropdown-option--active {
2242
+ background-color: var(--color-gray-2, #e7e7e7);
2243
+ }
2244
+
2245
+ .gap-dropdown-option--selected {
2246
+ background-color: var(--dropdown-fill-selected, #031ba1);
2247
+ color: var(--dropdown-font-color, #fff);
2248
+ }
2249
+
2250
+ .gap-dropdown-option--selected.gap-dropdown-option--active {
2251
+ background-color: var(--dropdown-filled-hover, #031ba1);
2252
+ }
2253
+
2254
+ /* =============================================================================
2255
+ * COMPONENT — NOTIFICATION
2256
+ * Banner and inline notification messages (info, warning, success, error)
2257
+ * ============================================================================= */
2258
+
2259
+ .gap-notification {
2260
+ display: flex;
2261
+ align-items: flex-start;
2262
+ width: 100%;
2263
+ overflow: hidden;
2264
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
2265
+ font-size: var(--text-caption-font-size, 10px);
2266
+ font-weight: var(--text-caption-font-weight, 400);
2267
+ letter-spacing: var(--font-letter-spacing--2, 0.2px);
2268
+ line-height: normal;
2269
+ color: var(--color-type-primary, #000);
2270
+ }
2271
+
2272
+ /* Layout — banner */
2273
+ .gap-notification--banner {
2274
+ gap: var(--spacing-utk-l, 16px);
2275
+ padding: var(--spacing-utk-l, 16px);
2276
+ }
2277
+
2278
+ /* Layout — inline (compact) */
2279
+ .gap-notification--inline {
2280
+ gap: var(--spacing-utk-s, 8px);
2281
+ padding: var(--spacing-utk-s, 8px);
2282
+ }
2283
+
2284
+ /* Layout — bare (text only, no background) */
2285
+ .gap-notification--bare {
2286
+ gap: 0;
2287
+ padding: var(--spacing-utk-s, 8px);
2288
+ }
2289
+
2290
+ /* Type backgrounds — banner & inline */
2291
+ .gap-notification--warning:not(.gap-notification--bare) {
2292
+ background-color: var(--color-background-warning, #fffbe3);
2293
+ }
2294
+
2295
+ .gap-notification--success:not(.gap-notification--bare) {
2296
+ background-color: var(--color-background-success, #edf8ed);
2297
+ }
2298
+
2299
+ .gap-notification--error:not(.gap-notification--bare) {
2300
+ background-color: var(--color-background-error, #fff9f9);
2301
+ }
2302
+
2303
+ /* Info has no background in Gap 1.0.0 */
2304
+ .gap-notification--info:not(.gap-notification--bare) {
2305
+ background-color: transparent;
2306
+ }
2307
+
2308
+ /* Icon colors by type */
2309
+ .gap-notification--info .gap-notification-icon {
2310
+ color: var(--color-type-primary, #000);
2311
+ }
2312
+
2313
+ .gap-notification--warning .gap-notification-icon {
2314
+ color: var(--color-type-warning, #e7a32e);
2315
+ }
2316
+
2317
+ .gap-notification--success .gap-notification-icon {
2318
+ color: var(--color-type-success, #13560e);
2319
+ }
2320
+
2321
+ .gap-notification--error .gap-notification-icon {
2322
+ color: var(--color-type-error, #d00000);
2323
+ }
2324
+
2325
+ .gap-notification-icon {
2326
+ flex-shrink: 0;
2327
+ display: flex;
2328
+ align-items: flex-start;
2329
+ }
2330
+
2331
+ .gap-notification-content {
2332
+ flex: 1 0 0;
2333
+ min-width: 0;
2334
+ }
2335
+
2336
+ /* Bare text color overrides */
2337
+ .gap-notification--bare.gap-notification--error .gap-notification-content {
2338
+ color: var(--color-type-error, #d00000);
2339
+ }
2340
+
2341
+ .gap-notification--bare.gap-notification--success .gap-notification-content {
2342
+ color: var(--color-type-success, #13560e);
2343
+ }
2344
+
2345
+ .gap-notification-close {
2346
+ flex-shrink: 0;
2347
+ display: flex;
2348
+ align-items: center;
2349
+ justify-content: center;
2350
+ width: 16px;
2351
+ height: 16px;
2352
+ padding: 0;
2353
+ border: none;
2354
+ background: none;
2355
+ cursor: pointer;
2356
+ color: var(--color-type-primary, #000);
2357
+ }
2358
+
2359
+ /* =============================================================================
2360
+ * COMPONENT — PAGINATION
2361
+ * Progressive loading with item count, "View more", and "Back to Top"
2362
+ * ============================================================================= */
2363
+
2364
+ .gap-pagination {
2365
+ display: flex;
2366
+ flex-direction: column;
2367
+ align-items: center;
2368
+ justify-content: center;
2369
+ gap: var(--spacing-utk-l, 16px);
2370
+ padding: var(--spacing-utk-xl, 24px) 0;
2371
+ width: 100%;
2372
+ }
2373
+
2374
+ .gap-pagination-count {
2375
+ display: flex;
2376
+ align-items: center;
2377
+ justify-content: center;
2378
+ gap: var(--spacing-xs, 4px);
2379
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
2380
+ font-size: var(--font-size-0, 16px);
2381
+ font-weight: var(--font-weight-base, 400);
2382
+ letter-spacing: var(--font-letter-spacing-0, 0.32px);
2383
+ line-height: normal;
2384
+ color: var(--pagination-font-color, #000);
2385
+ white-space: nowrap;
2386
+ }
2387
+
2388
+ .gap-pagination-btn {
2389
+ display: flex;
2390
+ align-items: center;
2391
+ justify-content: center;
2392
+ min-height: 44px;
2393
+ min-width: 175px;
2394
+ padding: 0 var(--spacing-utk-xl, 24px);
2395
+ background-color: var(--color-background-default-white, #fff);
2396
+ border: var(--border-width-1, 1px) solid var(--color-type-accent, #000);
2397
+ border-radius: 0;
2398
+ box-sizing: border-box;
2399
+ cursor: pointer;
2400
+ font: inherit;
2401
+ transition: background-color 0.15s ease, border-color 0.15s ease,
2402
+ color 0.15s ease;
2403
+ }
2404
+
2405
+ .gap-pagination-btn-text {
2406
+ flex: 1 0 0;
2407
+ min-width: 0;
2408
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
2409
+ font-size: var(--text-button-font-size, 16px);
2410
+ font-weight: var(--text-button-font-weight, 400);
2411
+ letter-spacing: var(--font-letter-spacing-0, 0.32px);
2412
+ line-height: normal;
2413
+ color: var(--color-type-accent, #000);
2414
+ text-align: center;
2415
+ white-space: nowrap;
2416
+ }
2417
+
2418
+ .gap-pagination-btn:hover {
2419
+ background-color: var(--button-secondary-hover-fill, #031ba1);
2420
+ border-color: var(--button-secondary-hover-border, #031ba1);
2421
+ }
2422
+
2423
+ .gap-pagination-btn:hover .gap-pagination-btn-text {
2424
+ color: var(--button-secondary-hover-font, #fff);
2425
+ text-decoration: underline;
2426
+ }
2427
+
2428
+ .gap-pagination-btn:active {
2429
+ background-color: var(--color-background-default-white, #fff);
2430
+ border-color: var(--color-type-accent, #000);
2431
+ }
2432
+
2433
+ .gap-pagination-btn:active .gap-pagination-btn-text {
2434
+ color: var(--color-type-accent, #000);
2435
+ text-decoration: none;
2436
+ }
2437
+
2438
+ /* Loading state */
2439
+ .gap-pagination-btn--loading {
2440
+ background-color: var(--button-secondary-fill, #000);
2441
+ border-color: var(--button-secondary-border, #000);
2442
+ cursor: default;
2443
+ }
2444
+
2445
+ .gap-pagination-btn--loading:hover {
2446
+ background-color: var(--button-secondary-fill, #000);
2447
+ border-color: var(--button-secondary-border, #000);
2448
+ }
2449
+
2450
+ .gap-pagination-loader {
2451
+ display: flex;
2452
+ align-items: center;
2453
+ justify-content: center;
2454
+ gap: 5px;
2455
+ }
2456
+
2457
+ .gap-pagination-dot {
2458
+ display: block;
2459
+ border-radius: 50%;
2460
+ background-color: #fff;
2461
+ }
2462
+
2463
+ .gap-pagination-dot--sm {
2464
+ width: 3px;
2465
+ height: 3px;
2466
+ }
2467
+
2468
+ .gap-pagination-dot--md {
2469
+ width: 4.5px;
2470
+ height: 4.5px;
2471
+ }
2472
+
2473
+ .gap-pagination-dot--lg {
2474
+ width: 6px;
2475
+ height: 6px;
2476
+ }
2477
+
2478
+ /* =============================================================================
2479
+ * COMPONENT — POPOVER
2480
+ * Floating overlay card with directional arrow
2481
+ * ============================================================================= */
2482
+
2483
+ .gap-popover {
2484
+ position: relative;
2485
+ display: inline-flex;
2486
+ flex-direction: column;
2487
+ width: 280px;
2488
+ }
2489
+
2490
+ .gap-popover-body {
2491
+ background-color: var(--color-background-default-white, #fff);
2492
+ padding: var(--spacing-utk-m, 12px) var(--spacing-utk-l, 16px);
2493
+ box-shadow: var(--drop-shadow-high-x, 2px) var(--drop-shadow-high-y, 4px)
2494
+ var(--drop-shadow-high-blur, 8px) var(--drop-shadow-high-spread, 0px)
2495
+ var(--drop-shadow-color, rgba(0, 0, 0, 0.08));
2496
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
2497
+ font-size: var(--font-size--1, 12px);
2498
+ font-weight: var(--font-weight-base-heavier, 400);
2499
+ letter-spacing: var(--font-letter-spacing--1, 0.24px);
2500
+ line-height: normal;
2501
+ color: var(--color-type-secondary, #595959);
2502
+ position: relative;
2503
+ z-index: 1;
2504
+ }
2505
+
2506
+ /* Arrow — CSS triangle via borders */
2507
+ .gap-popover-arrow {
2508
+ position: absolute;
2509
+ width: 0;
2510
+ height: 0;
2511
+ border-style: solid;
2512
+ }
2513
+
2514
+ /* ------- position: top (arrow points down, below the body) ------- */
2515
+ .gap-popover--top .gap-popover-arrow {
2516
+ bottom: -9px;
2517
+ border-width: 9px 9px 0 9px;
2518
+ border-color: var(--color-background-default-white, #fff) transparent
2519
+ transparent transparent;
2520
+ }
2521
+
2522
+ .gap-popover--top.gap-popover--align-start .gap-popover-arrow {
2523
+ left: 16px;
2524
+ }
2525
+
2526
+ .gap-popover--top.gap-popover--align-center .gap-popover-arrow {
2527
+ left: 50%;
2528
+ transform: translateX(-50%);
2529
+ }
2530
+
2531
+ .gap-popover--top.gap-popover--align-end .gap-popover-arrow {
2532
+ right: 16px;
2533
+ }
2534
+
2535
+ /* ------- position: bottom (arrow points up, above the body) ------- */
2536
+ .gap-popover--bottom .gap-popover-arrow {
2537
+ top: -9px;
2538
+ border-width: 0 9px 9px 9px;
2539
+ border-color: transparent transparent
2540
+ var(--color-background-default-white, #fff) transparent;
2541
+ }
2542
+
2543
+ .gap-popover--bottom.gap-popover--align-start .gap-popover-arrow {
2544
+ left: 16px;
2545
+ }
2546
+
2547
+ .gap-popover--bottom.gap-popover--align-center .gap-popover-arrow {
2548
+ left: 50%;
2549
+ transform: translateX(-50%);
2550
+ }
2551
+
2552
+ .gap-popover--bottom.gap-popover--align-end .gap-popover-arrow {
2553
+ right: 16px;
2554
+ }
2555
+
2556
+ /* ------- position: right (arrow points left, left of the body) ------- */
2557
+ .gap-popover--right .gap-popover-arrow {
2558
+ left: -9px;
2559
+ border-width: 9px 9px 9px 0;
2560
+ border-color: transparent var(--color-background-default-white, #fff)
2561
+ transparent transparent;
2562
+ }
2563
+
2564
+ .gap-popover--right.gap-popover--align-start .gap-popover-arrow {
2565
+ top: 12px;
2566
+ }
2567
+
2568
+ .gap-popover--right.gap-popover--align-center .gap-popover-arrow {
2569
+ top: 50%;
2570
+ transform: translateY(-50%);
2571
+ }
2572
+
2573
+ .gap-popover--right.gap-popover--align-end .gap-popover-arrow {
2574
+ bottom: 12px;
2575
+ }
2576
+
2577
+ /* ------- position: left (arrow points right, right of the body) ------- */
2578
+ .gap-popover--left .gap-popover-arrow {
2579
+ right: -9px;
2580
+ border-width: 9px 0 9px 9px;
2581
+ border-color: transparent transparent transparent
2582
+ var(--color-background-default-white, #fff);
2583
+ }
2584
+
2585
+ .gap-popover--left.gap-popover--align-start .gap-popover-arrow {
2586
+ top: 12px;
2587
+ }
2588
+
2589
+ .gap-popover--left.gap-popover--align-center .gap-popover-arrow {
2590
+ top: 50%;
2591
+ transform: translateY(-50%);
2592
+ }
2593
+
2594
+ .gap-popover--left.gap-popover--align-end .gap-popover-arrow {
2595
+ bottom: 12px;
2596
+ }
2597
+
2598
+ /* =============================================================================
2599
+ * COMPONENT — SELECTOR SWATCH
2600
+ * Circular color swatches for product color selection
2601
+ * ============================================================================= */
2602
+
2603
+ .gap-swatch {
2604
+ display: inline-flex;
2605
+ flex-direction: column;
2606
+ align-items: center;
2607
+ gap: var(--spacing-2xs, 4px);
2608
+ padding: 0;
2609
+ border: none;
2610
+ background: none;
2611
+ cursor: pointer;
2612
+ font: inherit;
2613
+ }
2614
+
2615
+ .gap-swatch-ring {
2616
+ display: flex;
2617
+ align-items: center;
2618
+ overflow: hidden;
2619
+ padding: var(--spacing-2xs, 4px);
2620
+ border-radius: 999px;
2621
+ border: 1px solid transparent;
2622
+ box-sizing: border-box;
2623
+ }
2624
+
2625
+ .gap-swatch--active .gap-swatch-ring {
2626
+ border-width: 1px;
2627
+ border-color: var(--color-border-accent, #031ba1);
2628
+ }
2629
+
2630
+ .gap-swatch--active.gap-swatch--focused .gap-swatch-ring {
2631
+ border-width: 2px;
2632
+ border-color: var(--color-border-accent, #031ba1);
2633
+ padding: 3px;
2634
+ }
2635
+
2636
+ .gap-swatch-circle {
2637
+ position: relative;
2638
+ border-radius: 999px;
2639
+ border: var(--border-width-1, 1px) solid var(--color-border-subtle, #ccc);
2640
+ box-sizing: border-box;
2641
+ overflow: hidden;
2642
+ }
2643
+
2644
+ /* Sizes — inner circle diameter */
2645
+ .gap-swatch--xl .gap-swatch-circle { width: 36px; height: 36px; }
2646
+ .gap-swatch--lg .gap-swatch-circle { width: 32px; height: 32px; }
2647
+ .gap-swatch--md .gap-swatch-circle { width: 28px; height: 28px; }
2648
+ .gap-swatch--sm .gap-swatch-circle { width: 24px; height: 24px; }
2649
+ .gap-swatch--xs .gap-swatch-circle { width: 20px; height: 20px; }
2650
+
2651
+ /* Unavailable slash */
2652
+ .gap-swatch-slash {
2653
+ position: absolute;
2654
+ top: 0;
2655
+ left: 50%;
2656
+ width: 1px;
2657
+ height: 141%;
2658
+ background-color: #000;
2659
+ border-left: 1px solid #fff;
2660
+ border-right: 1px solid #fff;
2661
+ transform: translateX(-50%) rotate(45deg);
2662
+ transform-origin: top center;
2663
+ }
2664
+
2665
+ .gap-swatch-label {
2666
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
2667
+ font-size: var(--font-size--2, 10px);
2668
+ font-weight: var(--font-weight-base, 400);
2669
+ letter-spacing: var(--font-letter-spacing--2, 0.2px);
2670
+ line-height: normal;
2671
+ color: var(--color-type-primary, #000);
2672
+ text-align: center;
2673
+ width: 60px;
2674
+ }
2675
+
2676
+ .gap-swatch-grid {
2677
+ display: flex;
2678
+ flex-wrap: wrap;
2679
+ gap: var(--spacing-utk-s, 8px);
2680
+ align-items: flex-start;
2681
+ }
2682
+
2683
+ /* =============================================================================
2684
+ * COMPONENT — SELECTOR
2685
+ * Pill-shaped option buttons for size/attribute selection
2686
+ * ============================================================================= */
2687
+
2688
+ .gap-selector {
2689
+ display: flex;
2690
+ flex-wrap: wrap;
2691
+ gap: var(--spacing-utk-s, 8px);
2692
+ }
2693
+
2694
+ .gap-selector-pill {
2695
+ position: relative;
2696
+ display: flex;
2697
+ align-items: center;
2698
+ justify-content: center;
2699
+ min-width: 44px;
2700
+ min-height: 44px;
2701
+ padding: var(--spacing-utk-s, 8px) var(--spacing-utk-m, 12px);
2702
+ border: var(--selector-size-border-width, 2px) solid
2703
+ var(--selector-size-border-default, #ccc);
2704
+ border-radius: var(--selector-border-radius, 0px);
2705
+ background-color: var(--selector-size-available-default, #fff);
2706
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
2707
+ font-size: var(--selector-size-font-size, 16px);
2708
+ font-weight: var(--font-weight-base, 400);
2709
+ letter-spacing: var(--text-selector-label-letter-spacing, 0.32px);
2710
+ line-height: normal;
2711
+ color: var(--selector-size-font-default, #000);
2712
+ cursor: pointer;
2713
+ box-sizing: border-box;
2714
+ text-align: center;
2715
+ overflow: hidden;
2716
+ }
2717
+
2718
+ .gap-selector-pill--selected {
2719
+ border-color: var(--selector-size-border-selected, #000);
2720
+ background-color: var(--selector-size-available-selected, #fff);
2721
+ color: var(--selector-size-font-selected, #000);
2722
+ font-weight: var(--text-selector-label-selected-font-weight, 400);
2723
+ }
2724
+
2725
+ .gap-selector-pill:hover:not(.gap-selector-pill--disabled):not(.gap-selector-pill--unavailable) {
2726
+ border-color: var(--selector-size-border-hover, #000);
2727
+ background-color: var(--selector-size-available-hover, #fff);
2728
+ color: var(--selector-size-font-hover, #000);
2729
+ }
2730
+
2731
+ .gap-selector-pill--disabled {
2732
+ border-color: var(--selector-size-border-disabled, #ededed);
2733
+ background-color: var(--selector-size-unavailable-disabled, #ededed);
2734
+ color: var(--selector-size-font-disabled, #757575);
2735
+ cursor: not-allowed;
2736
+ }
2737
+
2738
+ .gap-selector-pill--unavailable {
2739
+ background-color: var(--selector-size-unavailable-default, #fff);
2740
+ border-color: var(--selector-size-border-default, #ccc);
2741
+ color: var(--selector-size-font-default, #000);
2742
+ cursor: pointer;
2743
+ }
2744
+
2745
+ .gap-selector-slash {
2746
+ position: absolute;
2747
+ top: 0;
2748
+ left: 50%;
2749
+ width: 1px;
2750
+ height: 141%;
2751
+ background-color: #000;
2752
+ transform: translateX(-50%) rotate(45deg);
2753
+ transform-origin: top center;
2754
+ pointer-events: none;
2755
+ }
2756
+
2757
+ /* Selector Group */
2758
+ .gap-selector-group {
2759
+ display: flex;
2760
+ flex-direction: column;
2761
+ gap: var(--spacing-utk-s, 8px);
2762
+ border: none;
2763
+ margin: 0;
2764
+ padding: 0;
2765
+ }
2766
+
2767
+ .gap-selector-group-header {
2768
+ display: flex;
2769
+ align-items: center;
2770
+ gap: var(--spacing-xs, 4px);
2771
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
2772
+ font-size: var(--text-selector-header-font-size, 16px);
2773
+ font-weight: var(--font-weight-base-heavier, 400);
2774
+ letter-spacing: var(--text-selector-header-letter-spacing, 0.32px);
2775
+ line-height: normal;
2776
+ color: var(--color-type-primary, #000);
2777
+ }
2778
+
2779
+ .gap-selector-group-title {
2780
+ font-weight: var(--font-weight-base-heavier, 400);
2781
+ }
2782
+
2783
+ .gap-selector-group-selected {
2784
+ font-weight: var(--font-weight-base, 400);
2785
+ }
2786
+
2787
+ .gap-selector-group-options {
2788
+ display: flex;
2789
+ flex-wrap: wrap;
2790
+ gap: var(--spacing-utk-s, 8px);
2791
+ }
2792
+
2793
+ /* =============================================================================
2794
+ * COMPONENT — FULFILLMENT
2795
+ * Shipping/Pickup tile cards for fulfillment selection
2796
+ * ============================================================================= */
2797
+
2798
+ .gap-fulfillment {
2799
+ display: flex;
2800
+ gap: var(--spacing-utk-s, 8px);
2801
+ align-items: stretch;
2802
+ width: 100%;
2803
+ }
2804
+
2805
+ .gap-fulfillment-tile {
2806
+ display: flex;
2807
+ flex-direction: column;
2808
+ align-items: flex-start;
2809
+ justify-content: space-between;
2810
+ min-height: 124px;
2811
+ padding: var(--spacing-utk-l, 16px);
2812
+ background-color: var(--color-background-default-white, #fff);
2813
+ border: var(--border-width-1, 1px) solid var(--color-border-subtle, #ccc);
2814
+ border-radius: var(--border-radius-curved-m, 0px);
2815
+ box-sizing: border-box;
2816
+ cursor: pointer;
2817
+ flex: 1 1 0;
2818
+ text-align: left;
2819
+ font: inherit;
2820
+ color: inherit;
2821
+ }
2822
+
2823
+ .gap-fulfillment-tile--selected {
2824
+ border-width: var(--border-width-2, 2px);
2825
+ border-color: var(--color-border-accent, #031ba1);
2826
+ padding: calc(var(--spacing-utk-l, 16px) - 1px);
2827
+ }
2828
+
2829
+ .gap-fulfillment-tile-content {
2830
+ display: flex;
2831
+ flex-direction: column;
2832
+ gap: var(--spacing-utk-s, 8px);
2833
+ width: 100%;
2834
+ flex: 1 0 0;
2835
+ }
2836
+
2837
+ .gap-fulfillment-tile-title {
2838
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
2839
+ font-size: var(--text-selector-header-tile-font-size, 16px);
2840
+ font-weight: var(--text-selector-header-tile-font-weight, 400);
2841
+ letter-spacing: var(--text-selector-header-tile-letter-spacing, 0.32px);
2842
+ line-height: normal;
2843
+ color: var(--color-type-primary, #000);
2844
+ }
2845
+
2846
+ .gap-fulfillment-tile-body {
2847
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
2848
+ font-size: var(--text-selector-label-font-size, 16px);
2849
+ font-weight: var(--font-weight-base, 400);
2850
+ letter-spacing: var(--text-selector-label-letter-spacing, 0.32px);
2851
+ line-height: normal;
2852
+ color: var(--color-type-primary, #000);
2853
+ }
2854
+
2855
+ .gap-fulfillment-tile-availability {
2856
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
2857
+ font-size: var(--text-selector-label-font-size, 16px);
2858
+ font-weight: var(--font-weight-base, 400);
2859
+ letter-spacing: var(--text-selector-label-letter-spacing, 0.32px);
2860
+ line-height: normal;
2861
+ color: var(--color-type-primary, #000);
2862
+ }
2863
+
2864
+ .gap-fulfillment-tile-availability--selected {
2865
+ color: var(--color-type-success, #13560e);
2866
+ }
2867
+
2868
+ /* =============================================================================
2869
+ * COMPONENT — RANGE SLIDER
2870
+ * Dual-handle slider for selecting a numeric range
2871
+ * ============================================================================= */
2872
+
2873
+ .gap-range-slider {
2874
+ position: relative;
2875
+ width: 100%;
2876
+ height: 48px;
2877
+ display: flex;
2878
+ align-items: center;
2879
+ }
2880
+
2881
+ .gap-range-slider-track {
2882
+ position: absolute;
2883
+ left: 0;
2884
+ right: 0;
2885
+ height: 2px;
2886
+ background-color: var(--color-gray-3, #999);
2887
+ border-radius: 1px;
2888
+ }
2889
+
2890
+ .gap-range-slider-fill {
2891
+ position: absolute;
2892
+ height: 100%;
2893
+ background-color: var(--slider-default-color, #595959);
2894
+ }
2895
+
2896
+ /* Shared native input styling — layered on top of the track */
2897
+ .gap-range-slider-input {
2898
+ position: absolute;
2899
+ width: 100%;
2900
+ height: 0;
2901
+ top: 50%;
2902
+ margin: 0;
2903
+ padding: 0;
2904
+ pointer-events: none;
2905
+ -webkit-appearance: none;
2906
+ appearance: none;
2907
+ background: transparent;
2908
+ outline: none;
2909
+ }
2910
+
2911
+ .gap-range-slider-input::-webkit-slider-thumb {
2912
+ -webkit-appearance: none;
2913
+ appearance: none;
2914
+ width: 24px;
2915
+ height: 24px;
2916
+ border-radius: 50%;
2917
+ background-color: #fff;
2918
+ border: none;
2919
+ box-shadow: var(--drop-shadow-high-x, 2px) var(--drop-shadow-high-y, 4px)
2920
+ var(--drop-shadow-high-blur, 8px) var(--drop-shadow-high-spread, 0px)
2921
+ var(--drop-shadow-color, rgba(0, 0, 0, 0.08));
2922
+ cursor: pointer;
2923
+ pointer-events: all;
2924
+ position: relative;
2925
+ z-index: 2;
2926
+ }
2927
+
2928
+ .gap-range-slider-input::-moz-range-thumb {
2929
+ width: 24px;
2930
+ height: 24px;
2931
+ border-radius: 50%;
2932
+ background-color: #fff;
2933
+ border: none;
2934
+ box-shadow: var(--drop-shadow-high-x, 2px) var(--drop-shadow-high-y, 4px)
2935
+ var(--drop-shadow-high-blur, 8px) var(--drop-shadow-high-spread, 0px)
2936
+ var(--drop-shadow-color, rgba(0, 0, 0, 0.08));
2937
+ cursor: pointer;
2938
+ pointer-events: all;
2939
+ }
2940
+
2941
+ .gap-range-slider-input:focus::-webkit-slider-thumb {
2942
+ box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.08),
2943
+ var(--drop-shadow-high-x, 2px) var(--drop-shadow-high-y, 4px)
2944
+ var(--drop-shadow-high-blur, 8px) var(--drop-shadow-high-spread, 0px)
2945
+ var(--drop-shadow-color, rgba(0, 0, 0, 0.08));
2946
+ }
2947
+
2948
+ .gap-range-slider-input:focus::-moz-range-thumb {
2949
+ box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.08),
2950
+ var(--drop-shadow-high-x, 2px) var(--drop-shadow-high-y, 4px)
2951
+ var(--drop-shadow-high-blur, 8px) var(--drop-shadow-high-spread, 0px)
2952
+ var(--drop-shadow-color, rgba(0, 0, 0, 0.08));
2953
+ }
2954
+
2955
+ /* High thumb gets priority on overlap */
2956
+ .gap-range-slider-input--high {
2957
+ z-index: 3;
2958
+ }
2959
+
2960
+ /* =============================================================================
2961
+ * COMPONENT — PRICE FILTER
2962
+ * Range slider with min/max text inputs and reset link
2963
+ * ============================================================================= */
2964
+
2965
+ .gap-price-filter {
2966
+ display: flex;
2967
+ flex-direction: column;
2968
+ align-items: center;
2969
+ gap: var(--spacing-utk-xl, 24px);
2970
+ width: 100%;
2971
+ max-width: 342px;
2972
+ }
2973
+
2974
+ .gap-price-filter-slider {
2975
+ width: 100%;
2976
+ }
2977
+
2978
+ .gap-price-filter-inputs {
2979
+ display: flex;
2980
+ align-items: center;
2981
+ justify-content: space-between;
2982
+ width: 100%;
2983
+ gap: var(--spacing-utk-l, 16px);
2984
+ }
2985
+
2986
+ .gap-price-filter-field {
2987
+ position: relative;
2988
+ width: 96px;
2989
+ }
2990
+
2991
+ .gap-price-filter-field-box {
2992
+ display: flex;
2993
+ align-items: center;
2994
+ height: 44px;
2995
+ padding: 0 var(--spacing-utk-l, 16px);
2996
+ background-color: var(--color-background-default-white, #fff);
2997
+ border: var(--border-width-2, 2px) solid
2998
+ var(--text-input-border-focused, #000);
2999
+ border-radius: var(--border-radius-curved-m, 0px);
3000
+ box-sizing: border-box;
3001
+ }
3002
+
3003
+ .gap-price-filter-input {
3004
+ width: 100%;
3005
+ border: none;
3006
+ outline: none;
3007
+ background: transparent;
3008
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3009
+ font-size: var(--text-input-font-size, 16px);
3010
+ font-weight: var(--font-weight-base, 400);
3011
+ letter-spacing: var(--font-letter-spacing-0, 0.32px);
3012
+ line-height: normal;
3013
+ color: var(--color-type-primary, #000);
3014
+ padding: 0;
3015
+ -moz-appearance: textfield;
3016
+ }
3017
+
3018
+ .gap-price-filter-input::-webkit-inner-spin-button,
3019
+ .gap-price-filter-input::-webkit-outer-spin-button {
3020
+ -webkit-appearance: none;
3021
+ margin: 0;
3022
+ }
3023
+
3024
+ .gap-price-filter-label {
3025
+ position: absolute;
3026
+ top: -10px;
3027
+ left: 12px;
3028
+ padding: 0 var(--spacing-2xs, 4px);
3029
+ background-color: var(--color-background-default-white, #fff);
3030
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3031
+ font-size: var(--font-size--2, 10px);
3032
+ font-weight: var(--font-weight-base, 400);
3033
+ letter-spacing: var(--font-letter-spacing--2, 0.2px);
3034
+ line-height: normal;
3035
+ color: var(--color-type-primary, #000);
3036
+ pointer-events: none;
3037
+ }
3038
+
3039
+ .gap-price-filter-reset {
3040
+ border: none;
3041
+ background: none;
3042
+ padding: 0;
3043
+ cursor: pointer;
3044
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3045
+ font-size: var(--font-size--1, 12px);
3046
+ font-weight: var(--font-weight-base, 400);
3047
+ letter-spacing: var(--font-letter-spacing-0, 0.32px);
3048
+ line-height: normal;
3049
+ color: var(--color-type-secondary, #595959);
3050
+ }
3051
+
3052
+ /* =============================================================================
3053
+ * COMPONENT — TABS
3054
+ * Horizontal tab bar for switching between related views
3055
+ * ============================================================================= */
3056
+
3057
+ .gap-tabs {
3058
+ display: flex;
3059
+ flex-direction: column;
3060
+ gap: var(--spacing-s, 8px);
3061
+ align-items: flex-start;
3062
+ width: 100%;
3063
+ }
3064
+
3065
+ .gap-tabs-title {
3066
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3067
+ font-size: var(--text-selector-header-font-size, 16px);
3068
+ font-weight: var(--font-weight-base, 400);
3069
+ letter-spacing: var(--text-selector-header-letter-spacing, 0.32px);
3070
+ line-height: normal;
3071
+ color: var(--color-type-primary, #000);
3072
+ }
3073
+
3074
+ .gap-tabs-bar {
3075
+ display: flex;
3076
+ align-items: center;
3077
+ width: 100%;
3078
+ }
3079
+
3080
+ .gap-tabs-tab {
3081
+ flex: 1 0 0;
3082
+ display: flex;
3083
+ align-items: center;
3084
+ justify-content: center;
3085
+ padding: var(--spacing-utk-m, 12px);
3086
+ background-color: var(--color-background-default-white, #fff);
3087
+ border: none;
3088
+ border-bottom: var(--border-width-1, 1px) solid
3089
+ var(--tabs-border-color, #ededed);
3090
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3091
+ font-size: var(--text-selector-label-font-size, 16px);
3092
+ font-weight: var(--font-weight-base, 400);
3093
+ letter-spacing: var(--text-selector-label-letter-spacing, 0.32px);
3094
+ line-height: normal;
3095
+ color: var(--tabs-font-color, #757575);
3096
+ cursor: pointer;
3097
+ text-align: center;
3098
+ white-space: nowrap;
3099
+ box-sizing: border-box;
3100
+ }
3101
+
3102
+ .gap-tabs-tab--selected {
3103
+ border-bottom-width: var(--border-width-2, 2px);
3104
+ border-bottom-color: var(--color-border-accent, #031ba1);
3105
+ color: var(--color-type-accent, #000);
3106
+ }
3107
+
3108
+
3109
+ /* Templates */
3110
+ /* =============================================================================
3111
+ * TEMPLATE — GLOBAL HEADER
3112
+ * Top-level navigation bar with sister brands, promo, account, and bag
3113
+ * ============================================================================= */
3114
+
3115
+ .gap-global-header {
3116
+ width: 100%;
3117
+ }
3118
+
3119
+ .gap-global-header-bar {
3120
+ display: flex;
3121
+ align-items: center;
3122
+ width: 100%;
3123
+ min-height: 48px;
3124
+ background-color: var(--global-header-brand-bar-bg, #000);
3125
+ }
3126
+
3127
+ .gap-global-header-brands {
3128
+ display: flex;
3129
+ align-items: center;
3130
+ flex-shrink: 0;
3131
+ }
3132
+
3133
+ .gap-global-header-brand {
3134
+ display: flex;
3135
+ align-items: center;
3136
+ justify-content: center;
3137
+ min-height: 48px;
3138
+ padding: 0 var(--spacing-utk-l, 16px);
3139
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3140
+ font-size: var(--text-global-header-brand-bar-font-size, 10px);
3141
+ font-weight: var(--text-global-header-brand-bar-font-weight, 400);
3142
+ letter-spacing: var(--text-global-header-brand-bar-letter-spacing, 0.2px);
3143
+ line-height: normal;
3144
+ color: var(--global-header-brand-bar-font, #999);
3145
+ text-decoration: none;
3146
+ white-space: nowrap;
3147
+ }
3148
+
3149
+ .gap-global-header-brand:hover {
3150
+ color: var(--global-header-brand-bar-hover-font, #fff);
3151
+ }
3152
+
3153
+ .gap-global-header-promo {
3154
+ flex: 1 0 0;
3155
+ display: flex;
3156
+ align-items: center;
3157
+ justify-content: center;
3158
+ gap: var(--spacing-utk-m, 12px);
3159
+ min-height: 48px;
3160
+ padding: 0 var(--spacing-utk-m, 12px);
3161
+ }
3162
+
3163
+ .gap-global-header-promo-text {
3164
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3165
+ font-size: var(--font-size--1, 12px);
3166
+ font-weight: var(--font-weight-base-heavier, 400);
3167
+ letter-spacing: var(--font-letter-spacing--1, 0.24px);
3168
+ line-height: normal;
3169
+ color: var(--global-header-edfs-desktop-font, #fff);
3170
+ white-space: nowrap;
3171
+ text-align: right;
3172
+ }
3173
+
3174
+ .gap-global-header-promo-links {
3175
+ display: flex;
3176
+ align-items: center;
3177
+ gap: var(--spacing-utk-m, 12px);
3178
+ }
3179
+
3180
+ .gap-global-header-promo-link {
3181
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3182
+ font-size: var(--font-size--1, 12px);
3183
+ font-weight: var(--font-weight-base-heavier, 400);
3184
+ letter-spacing: var(--font-letter-spacing--1, 0.24px);
3185
+ line-height: normal;
3186
+ color: var(--global-header-edfs-desktop-font, #fff);
3187
+ text-decoration: underline;
3188
+ white-space: nowrap;
3189
+ }
3190
+
3191
+ .gap-global-header-promo-link:hover {
3192
+ text-decoration: none;
3193
+ }
3194
+
3195
+ .gap-global-header-actions {
3196
+ display: flex;
3197
+ align-items: center;
3198
+ flex-shrink: 0;
3199
+ }
3200
+
3201
+ .gap-global-header-icon-btn {
3202
+ display: flex;
3203
+ align-items: center;
3204
+ justify-content: center;
3205
+ width: 48px;
3206
+ height: 48px;
3207
+ padding: 0;
3208
+ border: none;
3209
+ background: none;
3210
+ cursor: pointer;
3211
+ color: var(--global-header-account-icon, #fff);
3212
+ }
3213
+
3214
+ .gap-global-header-bag {
3215
+ position: relative;
3216
+ color: var(--global-header-bag-desktop-icon, #fff);
3217
+ }
3218
+
3219
+ .gap-global-header-badge {
3220
+ position: absolute;
3221
+ top: 4px;
3222
+ left: 50%;
3223
+ transform: translateX(-50%);
3224
+ display: flex;
3225
+ align-items: center;
3226
+ justify-content: center;
3227
+ width: 16px;
3228
+ height: 16px;
3229
+ background-color: var(--global-header-bag-desktop-icon, #fff);
3230
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3231
+ font-size: var(--font-size--2, 10px);
3232
+ font-weight: var(--font-weight-base-heavier, 400);
3233
+ letter-spacing: var(--font-letter-spacing--2, 0.2px);
3234
+ line-height: normal;
3235
+ color: var(--global-header-bag-desktop-font, #000);
3236
+ text-align: center;
3237
+ }
3238
+
3239
+ /* =============================================================================
3240
+ * TEMPLATE — GLOBAL FOOTER
3241
+ * Site footer with promotional blocks, nav columns, social links, and legal
3242
+ * ============================================================================= */
3243
+
3244
+ .gap-global-footer {
3245
+ width: 100%;
3246
+ background-color: var(--global-footer-background, #fff);
3247
+ }
3248
+
3249
+ .gap-footer-blocks {
3250
+ display: flex;
3251
+ align-items: flex-start;
3252
+ justify-content: center;
3253
+ gap: var(--spacing-utk-2xl, 32px);
3254
+ padding: var(--spacing-utk-2xl, 32px) var(--spacing-utk-l, 16px);
3255
+ max-width: 1264px;
3256
+ margin: 0 auto;
3257
+ }
3258
+
3259
+ .gap-footer-block {
3260
+ flex: 1 1 0;
3261
+ display: flex;
3262
+ flex-direction: column;
3263
+ gap: var(--spacing-utk-m, 12px);
3264
+ align-items: flex-start;
3265
+ }
3266
+
3267
+ .gap-footer-block:not(:last-child) {
3268
+ padding-right: var(--spacing-utk-2xl, 32px);
3269
+ border-right: 1px solid var(--color-border-default, #ededed);
3270
+ }
3271
+
3272
+ .gap-footer-block-title {
3273
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3274
+ font-size: 18px;
3275
+ font-weight: var(--font-weight-base-heavier, 400);
3276
+ letter-spacing: 0px;
3277
+ line-height: normal;
3278
+ color: var(--color-type-primary, #000);
3279
+ margin: 0;
3280
+ }
3281
+
3282
+ .gap-footer-block-body {
3283
+ display: flex;
3284
+ flex-direction: column;
3285
+ gap: var(--spacing-utk-l, 16px);
3286
+ align-items: flex-start;
3287
+ }
3288
+
3289
+ .gap-footer-block-copy {
3290
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3291
+ font-size: var(--font-size-0, 14px);
3292
+ font-weight: var(--font-weight-base, 400);
3293
+ letter-spacing: var(--font-letter-spacing-0, 0.28px);
3294
+ line-height: normal;
3295
+ color: var(--color-type-primary, #000);
3296
+ margin: 0;
3297
+ }
3298
+
3299
+ .gap-footer-block-link {
3300
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3301
+ font-size: var(--font-size-0, 14px);
3302
+ font-weight: var(--font-weight-base, 400);
3303
+ letter-spacing: var(--font-letter-spacing-0, 0.28px);
3304
+ line-height: normal;
3305
+ color: var(--color-type-link, #000);
3306
+ text-decoration: underline;
3307
+ }
3308
+
3309
+ .gap-footer-block-link:hover {
3310
+ text-decoration: none;
3311
+ }
3312
+
3313
+ .gap-footer-block-links {
3314
+ display: flex;
3315
+ gap: var(--spacing-utk-l, 16px);
3316
+ align-items: center;
3317
+ }
3318
+
3319
+ .gap-footer-email-row {
3320
+ display: flex;
3321
+ gap: var(--spacing-utk-s, 8px);
3322
+ align-items: flex-start;
3323
+ width: 100%;
3324
+ max-width: 375px;
3325
+ }
3326
+
3327
+ .gap-footer-email-input {
3328
+ flex: 1 0 0;
3329
+ min-height: 44px;
3330
+ padding: 0 var(--spacing-utk-l, 16px);
3331
+ border: var(--border-width-default, 1px) solid var(--text-input-border-default, #767676);
3332
+ border-radius: var(--border-radius-curved-m, 6px);
3333
+ background-color: var(--text-input-fill-default, #fff);
3334
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3335
+ font-size: var(--text-text-input-text-font-size, 14px);
3336
+ font-weight: var(--font-weight-base, 400);
3337
+ color: var(--color-type-primary, #000);
3338
+ box-sizing: border-box;
3339
+ }
3340
+
3341
+ .gap-footer-email-input::placeholder {
3342
+ color: var(--color-type-secondary, #757575);
3343
+ }
3344
+
3345
+ .gap-footer-email-btn {
3346
+ display: flex;
3347
+ align-items: center;
3348
+ justify-content: center;
3349
+ min-height: 44px;
3350
+ padding: 0 var(--spacing-utk-l, 16px);
3351
+ min-width: 109px;
3352
+ border: none;
3353
+ border-radius: var(--border-radius-curved-m, 6px);
3354
+ background-color: var(--button-primary-fill, #000);
3355
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3356
+ font-size: var(--text-button-font-size, 14px);
3357
+ font-weight: var(--text-button-font-weight, 400);
3358
+ letter-spacing: var(--font-letter-spacing-0, 0.28px);
3359
+ line-height: normal;
3360
+ color: var(--button-primary-font, #fff);
3361
+ cursor: pointer;
3362
+ box-sizing: border-box;
3363
+ }
3364
+
3365
+ .gap-footer-nav {
3366
+ display: flex;
3367
+ align-items: flex-start;
3368
+ justify-content: space-between;
3369
+ max-width: 1264px;
3370
+ margin: 0 auto;
3371
+ padding: var(--spacing-utk-3xl, 48px) 0;
3372
+ }
3373
+
3374
+ .gap-footer-nav-col {
3375
+ display: flex;
3376
+ flex-direction: column;
3377
+ gap: var(--spacing-utk-m, 12px);
3378
+ align-items: flex-start;
3379
+ }
3380
+
3381
+ .gap-footer-nav-header {
3382
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3383
+ font-size: var(--text-global-footer-nav-header-font-size, 16px);
3384
+ font-weight: var(--font-weight-base-heavier, 400);
3385
+ letter-spacing: var(--text-global-footer-nav-header-letter-spacing, 0.32px);
3386
+ line-height: normal;
3387
+ color: var(--color-type-primary, #000);
3388
+ margin: 0;
3389
+ white-space: nowrap;
3390
+ }
3391
+
3392
+ .gap-footer-nav-links {
3393
+ display: flex;
3394
+ flex-direction: column;
3395
+ gap: var(--spacing-utk-s, 8px);
3396
+ list-style: none;
3397
+ margin: 0;
3398
+ padding: 0;
3399
+ }
3400
+
3401
+ .gap-footer-nav-link {
3402
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3403
+ font-size: var(--text-global-footer-links-font-size, 16px);
3404
+ font-weight: var(--font-weight-base, 400);
3405
+ letter-spacing: var(--text-global-footer-links-letter-spacing, 0.32px);
3406
+ line-height: normal;
3407
+ color: var(--color-type-secondary, #757575);
3408
+ text-decoration: none;
3409
+ white-space: nowrap;
3410
+ }
3411
+
3412
+ .gap-footer-nav-link:hover {
3413
+ color: var(--color-type-primary, #000);
3414
+ text-decoration: underline;
3415
+ }
3416
+
3417
+ .gap-footer-social {
3418
+ display: flex;
3419
+ align-items: center;
3420
+ gap: var(--spacing-utk-s, 8px);
3421
+ padding-top: var(--spacing-utk-2xs, 4px);
3422
+ }
3423
+
3424
+ .gap-footer-social-link {
3425
+ display: flex;
3426
+ align-items: center;
3427
+ justify-content: center;
3428
+ width: 32px;
3429
+ height: 32px;
3430
+ }
3431
+
3432
+ .gap-footer-legal {
3433
+ display: flex;
3434
+ flex-direction: column;
3435
+ gap: var(--spacing-utk-xs, 6px);
3436
+ max-width: 1264px;
3437
+ margin: 0 auto;
3438
+ padding-bottom: var(--spacing-utk-3xl, 48px);
3439
+ }
3440
+
3441
+ .gap-footer-legal-line {
3442
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3443
+ font-size: var(--font-size--1, 12px);
3444
+ font-weight: var(--font-weight-base, 400);
3445
+ letter-spacing: var(--font-letter-spacing-0, 0.28px);
3446
+ line-height: normal;
3447
+ color: var(--color-type-primary, #000);
3448
+ margin: 0;
3449
+ }
3450
+
3451
+ /* =============================================================================
3452
+ * TEMPLATE — SEARCH INPUT
3453
+ * Header search bar with clear action, divider, and search icon
3454
+ * ============================================================================= */
3455
+
3456
+ .gap-search-input {
3457
+ display: flex;
3458
+ align-items: center;
3459
+ min-width: 228px;
3460
+ width: 270px;
3461
+ height: 32px;
3462
+ background-color: var(--search-input-background, rgba(231, 231, 231, 0.3));
3463
+ border-bottom: var(--border-width-default, 1px) solid
3464
+ var(--search-input-border-color, rgba(231, 231, 231, 0.3));
3465
+ box-sizing: border-box;
3466
+ }
3467
+
3468
+ .gap-search-input--active {
3469
+ border-bottom-color: var(--search-cursor-color, #031ba1);
3470
+ }
3471
+
3472
+ .gap-search-input-field {
3473
+ flex: 1 0 0;
3474
+ height: 100%;
3475
+ padding: 0;
3476
+ border: none;
3477
+ background: none;
3478
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3479
+ font-size: var(--text-input-search-font-size, 16px);
3480
+ font-weight: var(--font-weight-base, 400);
3481
+ letter-spacing: var(--text-input-search-letter-spacing, 0.32px);
3482
+ line-height: normal;
3483
+ color: var(--color-type-primary, #000);
3484
+ caret-color: var(--search-cursor-color, #031ba1);
3485
+ outline: none;
3486
+ }
3487
+
3488
+ .gap-search-input-field::placeholder {
3489
+ color: var(--color-type-primary, #000);
3490
+ }
3491
+
3492
+ .gap-search-input--active .gap-search-input-field::placeholder {
3493
+ color: var(--search-text-color, #000);
3494
+ opacity: 0.4;
3495
+ }
3496
+
3497
+ .gap-search-input-field::-webkit-search-cancel-button {
3498
+ display: none;
3499
+ }
3500
+
3501
+ .gap-search-input-actions {
3502
+ display: flex;
3503
+ align-items: center;
3504
+ gap: var(--spacing-utk-s, 8px);
3505
+ flex-shrink: 0;
3506
+ }
3507
+
3508
+ .gap-search-input-clear {
3509
+ padding: 0;
3510
+ border: none;
3511
+ background: none;
3512
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3513
+ font-size: var(--font-size--2, 10px);
3514
+ font-weight: var(--font-weight-base, 400);
3515
+ letter-spacing: var(--font-letter-spacing--2, 0.2px);
3516
+ line-height: normal;
3517
+ color: var(--color-type-primary, #000);
3518
+ cursor: pointer;
3519
+ white-space: nowrap;
3520
+ }
3521
+
3522
+ .gap-search-input-divider {
3523
+ display: block;
3524
+ width: 1px;
3525
+ height: 20px;
3526
+ background-color: var(--color-border-default, #ededed);
3527
+ flex-shrink: 0;
3528
+ }
3529
+
3530
+ .gap-search-input-icon {
3531
+ display: flex;
3532
+ align-items: center;
3533
+ justify-content: center;
3534
+ width: 24px;
3535
+ height: 24px;
3536
+ padding: 0;
3537
+ border: none;
3538
+ background: none;
3539
+ color: var(--color-type-primary, #000);
3540
+ cursor: pointer;
3541
+ flex-shrink: 0;
3542
+ }
3543
+
3544
+ /* =============================================================================
3545
+ * TEMPLATE — PRODUCT CARD
3546
+ * Product listing card with image, swatches, pricing, and rating
3547
+ * ============================================================================= */
3548
+
3549
+ .gap-product-card {
3550
+ display: flex;
3551
+ position: relative;
3552
+ }
3553
+
3554
+ .gap-product-card--default {
3555
+ flex-direction: column;
3556
+ align-items: flex-start;
3557
+ gap: var(--spacing-utk-m, 12px);
3558
+ width: 220px;
3559
+ }
3560
+
3561
+ .gap-product-card--mini {
3562
+ flex-direction: row;
3563
+ align-items: center;
3564
+ gap: var(--spacing-utk-m, 12px);
3565
+ width: 326px;
3566
+ }
3567
+
3568
+ .gap-product-card-media {
3569
+ position: relative;
3570
+ width: 100%;
3571
+ aspect-ratio: 136 / 181;
3572
+ border-radius: var(--product-image-thumbnail-border-radius, 0px);
3573
+ overflow: hidden;
3574
+ }
3575
+
3576
+ .gap-product-card-media--mini {
3577
+ width: 60px;
3578
+ height: 80px;
3579
+ aspect-ratio: auto;
3580
+ flex-shrink: 0;
3581
+ border-radius: var(--border-radius-curved-m, 6px);
3582
+ }
3583
+
3584
+ .gap-product-card-img {
3585
+ width: 100%;
3586
+ height: 100%;
3587
+ object-fit: cover;
3588
+ display: block;
3589
+ }
3590
+
3591
+ .gap-product-card-placeholder {
3592
+ width: 100%;
3593
+ height: 100%;
3594
+ background-color: var(--color-gray-3, #e7e7e7);
3595
+ }
3596
+
3597
+ .gap-product-card-badge {
3598
+ position: absolute;
3599
+ bottom: 8px;
3600
+ left: 8px;
3601
+ display: inline-flex;
3602
+ align-items: center;
3603
+ justify-content: center;
3604
+ padding: var(--badge-padding-y, 4px) var(--badge-padding-x, 4px);
3605
+ background-color: var(--badge-fill, #fff);
3606
+ border-radius: var(--badge-border-radius, 0px);
3607
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3608
+ font-size: var(--text-merchandising-badge-font-size, 12px);
3609
+ font-weight: var(--badge-font-weight, 400);
3610
+ letter-spacing: var(--text-merchandising-badge-letter-spacing, 0.24px);
3611
+ line-height: normal;
3612
+ color: var(--badge-font-color, #000);
3613
+ white-space: nowrap;
3614
+ }
3615
+
3616
+ .gap-product-card-swatches {
3617
+ display: flex;
3618
+ align-items: center;
3619
+ justify-content: center;
3620
+ gap: var(--spacing-utk-3xs, 2px);
3621
+ }
3622
+
3623
+ .gap-product-card-swatch {
3624
+ width: 20px;
3625
+ height: 20px;
3626
+ border-radius: 999px;
3627
+ border: var(--border-width-default, 1px) solid var(--selector-swatch-border-color, #999);
3628
+ padding: var(--spacing-utk-2xs, 4px);
3629
+ box-sizing: content-box;
3630
+ }
3631
+
3632
+ .gap-product-card-swatch--active {
3633
+ outline: var(--selector-swatch-border-width-selected, 1px) solid
3634
+ var(--selector-swatch-border-color-selected, #000);
3635
+ outline-offset: 2px;
3636
+ }
3637
+
3638
+ .gap-product-card-more-swatches {
3639
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3640
+ font-size: var(--text-card-font-size, 16px);
3641
+ font-weight: var(--font-weight-base, 400);
3642
+ letter-spacing: var(--text-card-letter-spacing, 0.32px);
3643
+ line-height: normal;
3644
+ color: var(--color-type-primary, #000);
3645
+ white-space: nowrap;
3646
+ }
3647
+
3648
+ .gap-product-card-details {
3649
+ display: flex;
3650
+ flex-direction: column;
3651
+ gap: var(--spacing-utk-s, 8px);
3652
+ width: 100%;
3653
+ }
3654
+
3655
+ .gap-product-card-mini-details {
3656
+ display: flex;
3657
+ flex-direction: column;
3658
+ gap: var(--spacing-utk-s, 8px);
3659
+ flex: 1 1 0;
3660
+ }
3661
+
3662
+ .gap-product-card-name {
3663
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3664
+ font-size: var(--text-card-font-size, 16px);
3665
+ font-weight: var(--font-weight-base, 400);
3666
+ letter-spacing: var(--text-card-letter-spacing, 0.32px);
3667
+ line-height: normal;
3668
+ color: var(--color-type-neutral, #595959);
3669
+ }
3670
+
3671
+ .gap-product-card-price-stacked {
3672
+ display: flex;
3673
+ flex-direction: column;
3674
+ gap: var(--spacing-utk-2xs, 4px);
3675
+ align-items: flex-start;
3676
+ }
3677
+
3678
+ .gap-product-card-price-inline {
3679
+ display: flex;
3680
+ align-items: center;
3681
+ gap: var(--spacing-utk-2xs, 4px);
3682
+ }
3683
+
3684
+ .gap-product-card-original-price {
3685
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3686
+ font-size: var(--text-price-small-strikethrough-font-size, 16px);
3687
+ font-weight: var(--text-price-small-strikethrough-font-weight, 400);
3688
+ letter-spacing: var(--text-price-small-strikethrough-letter-spacing, 0.32px);
3689
+ line-height: normal;
3690
+ color: var(--product-price-strikethrough, #757575);
3691
+ text-decoration: line-through;
3692
+ }
3693
+
3694
+ .gap-product-card-discount {
3695
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3696
+ font-size: var(--text-price-percent-off-font-size, 16px);
3697
+ font-weight: var(--text-price-percent-off-font-weight, 400);
3698
+ letter-spacing: var(--text-price-percent-off-letter-spacing, 0.32px);
3699
+ line-height: normal;
3700
+ color: var(--product-price-percent-off-font, #595959);
3701
+ }
3702
+
3703
+ .gap-product-card-sale-price {
3704
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3705
+ font-size: var(--text-price-small-font-size, 16px);
3706
+ font-weight: var(--text-price-small-font-weight, 400);
3707
+ letter-spacing: var(--text-price-small-letter-spacing, 0.32px);
3708
+ line-height: normal;
3709
+ color: var(--color-type-sale, #d00000);
3710
+ }
3711
+
3712
+ .gap-product-card-flag {
3713
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3714
+ font-size: var(--text-merchandising-marketing-flag-font-size, 16px);
3715
+ font-weight: var(--font-weight-base, 400);
3716
+ letter-spacing: var(--text-merchandising-marketing-flag-letter-spacing, 0.32px);
3717
+ line-height: normal;
3718
+ color: var(--product-card-marketing-flag, #757575);
3719
+ }
3720
+
3721
+ .gap-product-card-rating {
3722
+ display: flex;
3723
+ align-items: center;
3724
+ gap: var(--spacing-utk-2xs, 4px);
3725
+ }
3726
+
3727
+ .gap-product-card-stars {
3728
+ display: flex;
3729
+ align-items: center;
3730
+ gap: var(--spacing-xs, 4px);
3731
+ color: var(--color-type-primary, #000);
3732
+ }
3733
+
3734
+ .gap-product-card-review-count {
3735
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3736
+ font-size: var(--font-size--2, 10px);
3737
+ font-weight: var(--font-weight-base, 400);
3738
+ letter-spacing: var(--font-letter-spacing--2, 0.2px);
3739
+ line-height: normal;
3740
+ color: var(--color-type-link, #000);
3741
+ text-decoration: underline;
3742
+ }
3743
+
3744
+ /* =============================================================================
3745
+ * TEMPLATE — HAMBURGER NAVIGATION
3746
+ * Mobile slide-out drawer with category navigation and utility links
3747
+ * ============================================================================= */
3748
+
3749
+ .gap-hamburger-nav {
3750
+ position: fixed;
3751
+ inset: 0;
3752
+ z-index: 1000;
3753
+ display: flex;
3754
+ align-items: flex-start;
3755
+ }
3756
+
3757
+ .gap-hamburger-nav-overlay {
3758
+ position: absolute;
3759
+ inset: 0;
3760
+ background-color: var(--color-background-transparent-dark, rgba(29, 29, 29, 0.3));
3761
+ }
3762
+
3763
+ .gap-hamburger-nav-panel {
3764
+ position: relative;
3765
+ z-index: 1;
3766
+ width: 350px;
3767
+ max-height: 100vh;
3768
+ overflow-y: auto;
3769
+ background-color: var(--color-background-default-white, #fff);
3770
+ display: flex;
3771
+ flex-direction: column;
3772
+ gap: var(--spacing-utk-xl, 24px);
3773
+ }
3774
+
3775
+ .gap-hamburger-nav-search {
3776
+ display: flex;
3777
+ align-items: center;
3778
+ gap: var(--spacing-utk-s, 8px);
3779
+ height: 44px;
3780
+ margin: 0 var(--spacing-utk-l, 16px);
3781
+ padding: 0 var(--spacing-utk-s, 8px);
3782
+ border: var(--border-width-1, 1px) solid var(--color-border-gray, #ccc);
3783
+ background-color: var(--color-fill-default-white, #fff);
3784
+ box-sizing: border-box;
3785
+ }
3786
+
3787
+ .gap-hamburger-nav-search-icon {
3788
+ display: flex;
3789
+ align-items: center;
3790
+ justify-content: center;
3791
+ width: 24px;
3792
+ height: 24px;
3793
+ flex-shrink: 0;
3794
+ color: var(--color-type-primary, #000);
3795
+ }
3796
+
3797
+ .gap-hamburger-nav-search-input {
3798
+ flex: 1 0 0;
3799
+ border: none;
3800
+ background: none;
3801
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3802
+ font-size: var(--text-text-input-text-font-size, 16px);
3803
+ font-weight: var(--font-weight-base, 400);
3804
+ letter-spacing: var(--font-letter-spacing-0, 0.28px);
3805
+ color: var(--color-type-primary, #000);
3806
+ outline: none;
3807
+ }
3808
+
3809
+ .gap-hamburger-nav-search-input::placeholder {
3810
+ color: var(--color-type-subtle, #757575);
3811
+ }
3812
+
3813
+ .gap-hamburger-nav-search-input::-webkit-search-cancel-button {
3814
+ display: none;
3815
+ }
3816
+
3817
+ .gap-hamburger-nav-body {
3818
+ display: flex;
3819
+ flex-direction: column;
3820
+ }
3821
+
3822
+ .gap-hamburger-nav-section {
3823
+ display: flex;
3824
+ flex-direction: column;
3825
+ }
3826
+
3827
+ .gap-hamburger-nav-section--secondary {
3828
+ background-color: var(--link-subtle, #f7f7f7);
3829
+ padding-bottom: var(--spacing-utk-xl, 24px);
3830
+ }
3831
+
3832
+ .gap-hamburger-nav-row {
3833
+ padding: var(--spacing-utk-xl, 24px) var(--spacing-utk-l, 16px) 0;
3834
+ }
3835
+
3836
+ .gap-hamburger-nav-link {
3837
+ display: flex;
3838
+ align-items: center;
3839
+ justify-content: space-between;
3840
+ width: 100%;
3841
+ padding: 0;
3842
+ border: none;
3843
+ background: none;
3844
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3845
+ font-size: var(--text-hamburger-nav-nav-title-font-size, 16px);
3846
+ font-weight: var(--text-hamburger-nav-nav-title-font-weight, 400);
3847
+ letter-spacing: var(--text-hamburger-nav-nav-title-letter-spacing, 0.32px);
3848
+ line-height: normal;
3849
+ color: var(--color-type-primary, #000);
3850
+ text-decoration: none;
3851
+ cursor: pointer;
3852
+ text-align: left;
3853
+ }
3854
+
3855
+ .gap-hamburger-nav-close {
3856
+ position: relative;
3857
+ z-index: 1;
3858
+ display: flex;
3859
+ align-items: center;
3860
+ justify-content: center;
3861
+ padding: var(--spacing-utk-m, 12px) var(--spacing-utk-s, 8px);
3862
+ border: none;
3863
+ background: none;
3864
+ color: #fff;
3865
+ cursor: pointer;
3866
+ align-self: flex-start;
3867
+ }
3868
+
3869
+ /* =============================================================================
3870
+ * TEMPLATE — MEGA NAVIGATION
3871
+ * Desktop horizontal nav bar with hover-triggered category dropdowns
3872
+ * ============================================================================= */
3873
+
3874
+ .gap-mega-nav {
3875
+ width: 100%;
3876
+ background-color: var(--color-background-default-white, #fff);
3877
+ display: flex;
3878
+ flex-direction: column;
3879
+ align-items: flex-end;
3880
+ padding: var(--mega-nav-top-padding, 16px) var(--spacing-utk-l, 16px)
3881
+ var(--spacing-m, 16px);
3882
+ gap: var(--spacing-utk-s, 8px);
3883
+ box-sizing: border-box;
3884
+ position: relative;
3885
+ }
3886
+
3887
+ .gap-mega-nav-utility {
3888
+ display: flex;
3889
+ align-items: center;
3890
+ gap: var(--spacing-utk-s, 8px);
3891
+ }
3892
+
3893
+ .gap-mega-nav-utility-link {
3894
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3895
+ font-size: var(--text-link-regular-font-size, 14px);
3896
+ font-weight: var(--text-link-regular-font-weight, 400);
3897
+ letter-spacing: var(--font-letter-spacing-0, 0.28px);
3898
+ line-height: normal;
3899
+ color: var(--color-type-accent, #000);
3900
+ text-decoration: none;
3901
+ }
3902
+
3903
+ .gap-mega-nav-utility-link:hover {
3904
+ text-decoration: underline;
3905
+ }
3906
+
3907
+ .gap-mega-nav-utility-sep {
3908
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3909
+ font-size: var(--text-link-regular-font-size, 14px);
3910
+ color: var(--color-type-accent, #000);
3911
+ }
3912
+
3913
+ .gap-mega-nav-bar {
3914
+ display: flex;
3915
+ align-items: center;
3916
+ justify-content: space-between;
3917
+ width: 100%;
3918
+ }
3919
+
3920
+ .gap-mega-nav-logo {
3921
+ display: flex;
3922
+ align-items: center;
3923
+ justify-content: center;
3924
+ padding: 0;
3925
+ border: none;
3926
+ background: none;
3927
+ cursor: pointer;
3928
+ flex-shrink: 0;
3929
+ }
3930
+
3931
+ .gap-mega-nav-departments {
3932
+ flex: 1 0 0;
3933
+ display: flex;
3934
+ align-items: center;
3935
+ justify-content: center;
3936
+ gap: var(--spacing-utk-2xl, 32px);
3937
+ padding: 0 var(--spacing-utk-xl, 24px);
3938
+ }
3939
+
3940
+ .gap-mega-nav-dept {
3941
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3942
+ font-size: var(--text-mega-nav-department-link-font-size, 16px);
3943
+ font-weight: var(--text-mega-nav-department-link-font-weight, 400);
3944
+ letter-spacing: var(--text-mega-nav-department-link-letter-spacing, 0.32px);
3945
+ line-height: normal;
3946
+ color: var(--color-type-accent, #000);
3947
+ text-decoration: none;
3948
+ white-space: nowrap;
3949
+ }
3950
+
3951
+ .gap-mega-nav-dept:hover,
3952
+ .gap-mega-nav-dept--active {
3953
+ text-decoration: underline;
3954
+ }
3955
+
3956
+ .gap-mega-nav-dept--sale {
3957
+ color: var(--color-type-sale, #d00000);
3958
+ }
3959
+
3960
+ .gap-mega-nav-search {
3961
+ flex-shrink: 0;
3962
+ }
3963
+
3964
+ .gap-mega-nav-dropdown {
3965
+ position: absolute;
3966
+ top: 100%;
3967
+ left: 0;
3968
+ right: 0;
3969
+ z-index: 100;
3970
+ background-color: var(--color-fill-default-white, #fff);
3971
+ padding: var(--spacing-utk-l, 16px) var(--spacing-utk-l, 16px)
3972
+ var(--spacing-utk-2xl, 32px);
3973
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
3974
+ }
3975
+
3976
+ .gap-mega-nav-dropdown-inner {
3977
+ display: flex;
3978
+ gap: var(--spacing-utk-2xl, 32px);
3979
+ align-items: flex-start;
3980
+ justify-content: center;
3981
+ }
3982
+
3983
+ .gap-mega-nav-category {
3984
+ display: flex;
3985
+ flex-direction: column;
3986
+ gap: var(--spacing-utk-m, 12px);
3987
+ max-width: 208px;
3988
+ }
3989
+
3990
+ .gap-mega-nav-category-title {
3991
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
3992
+ font-size: var(--text-mega-nav-category-header-font-size, 16px);
3993
+ font-weight: var(--text-mega-nav-category-header-font-weight, 400);
3994
+ letter-spacing: var(--text-mega-nav-category-header-letter-spacing, 0.32px);
3995
+ line-height: normal;
3996
+ color: var(--color-type-primary, #000);
3997
+ margin: 0;
3998
+ }
3999
+
4000
+ .gap-mega-nav-category-links {
4001
+ display: flex;
4002
+ flex-direction: column;
4003
+ gap: var(--spacing-utk-2xs, 4px);
4004
+ list-style: none;
4005
+ margin: 0;
4006
+ padding: 0;
4007
+ }
4008
+
4009
+ .gap-mega-nav-category-link {
4010
+ display: block;
4011
+ padding: var(--spacing-utk-2xs, 4px) 0;
4012
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
4013
+ font-size: var(--text-subhead-font-size, 12px);
4014
+ font-weight: var(--font-weight-base, 400);
4015
+ letter-spacing: var(--text-subhead-letter-spacing, 0.24px);
4016
+ line-height: normal;
4017
+ color: var(--mega-nav-link-font-color, #757575);
4018
+ text-decoration: none;
4019
+ }
4020
+
4021
+ .gap-mega-nav-category-link:hover {
4022
+ color: var(--color-type-primary, #000);
4023
+ text-decoration: underline;
4024
+ }
4025
+
4026
+ .gap-mega-nav-marketing {
4027
+ display: flex;
4028
+ flex-direction: column;
4029
+ gap: var(--spacing-utk-s, 8px);
4030
+ width: 208px;
4031
+ flex-shrink: 0;
4032
+ }
4033
+
4034
+ .gap-mega-nav-marketing-img-wrapper {
4035
+ width: 100%;
4036
+ aspect-ratio: 87 / 122;
4037
+ border-radius: var(--product-image-thumbnail-border-radius, 0px);
4038
+ overflow: hidden;
4039
+ }
4040
+
4041
+ .gap-mega-nav-marketing-img {
4042
+ width: 100%;
4043
+ height: 100%;
4044
+ object-fit: cover;
4045
+ display: block;
4046
+ }
4047
+
4048
+ .gap-mega-nav-marketing-link {
4049
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
4050
+ font-size: var(--text-link-regular-font-size, 14px);
4051
+ font-weight: var(--text-link-regular-font-weight, 400);
4052
+ letter-spacing: var(--font-letter-spacing-0, 0.28px);
4053
+ line-height: normal;
4054
+ color: var(--color-type-link, #000);
4055
+ text-decoration: underline;
4056
+ }
4057
+
4058
+ .gap-mega-nav-marketing-link:hover {
4059
+ text-decoration: none;
4060
+ }
4061
+
4062
+ /* =============================================================================
4063
+ * TEMPLATE — FILTER & SORT
4064
+ * Horizontal filter chips, active filter tags, and a slide-out filter drawer
4065
+ * ============================================================================= */
4066
+
4067
+ .gap-filter-controls {
4068
+ display: flex;
4069
+ flex-direction: column;
4070
+ gap: var(--spacing-utk-s, 8px);
4071
+ width: 100%;
4072
+ }
4073
+
4074
+ .gap-filter-chips {
4075
+ display: flex;
4076
+ align-items: center;
4077
+ gap: var(--spacing-utk-s, 8px);
4078
+ flex-wrap: wrap;
4079
+ }
4080
+
4081
+ .gap-filter-chip {
4082
+ display: inline-flex;
4083
+ align-items: center;
4084
+ gap: var(--spacing-utk-2xs, 4px);
4085
+ padding: var(--spacing-utk-s, 8px) var(--spacing-utk-m, 12px);
4086
+ border: var(--border-width-default, 1px) solid var(--color-border-default, #ededed);
4087
+ border-radius: var(--border-radius-curved-m, 6px);
4088
+ background: none;
4089
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
4090
+ font-size: var(--text-selector-label-font-size, 16px);
4091
+ font-weight: var(--font-weight-base, 400);
4092
+ letter-spacing: var(--text-selector-label-letter-spacing, 0.32px);
4093
+ line-height: normal;
4094
+ color: var(--color-type-primary, #000);
4095
+ cursor: pointer;
4096
+ white-space: nowrap;
4097
+ }
4098
+
4099
+ .gap-filter-chip--active {
4100
+ border-color: var(--color-border-accent, #031ba1);
4101
+ border-width: var(--border-width-2, 2px);
4102
+ }
4103
+
4104
+ .gap-filter-chip-icon {
4105
+ display: flex;
4106
+ align-items: center;
4107
+ justify-content: center;
4108
+ }
4109
+
4110
+ .gap-filter-active-row {
4111
+ display: flex;
4112
+ align-items: center;
4113
+ gap: var(--spacing-utk-s, 8px);
4114
+ flex-wrap: wrap;
4115
+ }
4116
+
4117
+ .gap-filter-clear-all {
4118
+ padding: 0;
4119
+ border: none;
4120
+ background: none;
4121
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
4122
+ font-size: var(--text-link-regular-font-size, 14px);
4123
+ font-weight: var(--text-link-regular-font-weight, 400);
4124
+ letter-spacing: var(--font-letter-spacing-0, 0.28px);
4125
+ line-height: normal;
4126
+ color: var(--color-type-link, #000);
4127
+ text-decoration: underline;
4128
+ cursor: pointer;
4129
+ }
4130
+
4131
+ .gap-filter-active-tags {
4132
+ display: flex;
4133
+ align-items: center;
4134
+ gap: var(--spacing-utk-s, 8px);
4135
+ flex-wrap: wrap;
4136
+ }
4137
+
4138
+ .gap-filter-active-tag {
4139
+ display: inline-flex;
4140
+ align-items: center;
4141
+ gap: var(--spacing-utk-2xs, 4px);
4142
+ padding: var(--spacing-utk-xs, 6px) var(--spacing-utk-s, 8px);
4143
+ border: var(--border-width-default, 1px) solid var(--color-border-accent, #031ba1);
4144
+ border-radius: var(--border-radius-curved-m, 6px);
4145
+ background-color: var(--color-background-default-white, #fff);
4146
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
4147
+ font-size: var(--text-subhead-font-size, 12px);
4148
+ font-weight: var(--font-weight-base, 400);
4149
+ letter-spacing: var(--text-subhead-letter-spacing, 0.24px);
4150
+ line-height: normal;
4151
+ color: var(--color-type-primary, #000);
4152
+ cursor: pointer;
4153
+ white-space: nowrap;
4154
+ }
4155
+
4156
+ .gap-filter-result-count {
4157
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
4158
+ font-size: var(--text-caption-font-size, 10px);
4159
+ font-weight: var(--font-weight-base, 400);
4160
+ letter-spacing: var(--font-letter-spacing--2, 0.2px);
4161
+ line-height: normal;
4162
+ color: var(--color-type-secondary, #757575);
4163
+ }
4164
+
4165
+ /* Filter Drawer */
4166
+
4167
+ .gap-filter-drawer-overlay {
4168
+ position: fixed;
4169
+ inset: 0;
4170
+ z-index: 1000;
4171
+ display: flex;
4172
+ justify-content: flex-end;
4173
+ }
4174
+
4175
+ .gap-filter-drawer-backdrop {
4176
+ position: absolute;
4177
+ inset: 0;
4178
+ background-color: var(--color-background-transparent-dark, rgba(29, 29, 29, 0.3));
4179
+ }
4180
+
4181
+ .gap-filter-drawer {
4182
+ position: relative;
4183
+ z-index: 1;
4184
+ width: 320px;
4185
+ max-height: 100vh;
4186
+ overflow-y: auto;
4187
+ background-color: var(--color-background-default-white, #fff);
4188
+ display: flex;
4189
+ flex-direction: column;
4190
+ }
4191
+
4192
+ .gap-filter-drawer-header {
4193
+ display: flex;
4194
+ align-items: center;
4195
+ justify-content: space-between;
4196
+ padding: var(--spacing-utk-xl, 24px) var(--spacing-utk-l, 16px);
4197
+ }
4198
+
4199
+ .gap-filter-drawer-title {
4200
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
4201
+ font-size: var(--text-dialog-header-font-size, 20px);
4202
+ font-weight: var(--font-weight-base-heavier, 400);
4203
+ letter-spacing: var(--text-dialog-header-letter-spacing, 0.2px);
4204
+ line-height: normal;
4205
+ color: var(--color-type-primary, #000);
4206
+ margin: 0;
4207
+ }
4208
+
4209
+ .gap-filter-drawer-close {
4210
+ display: flex;
4211
+ align-items: center;
4212
+ justify-content: center;
4213
+ padding: 0;
4214
+ border: none;
4215
+ background: none;
4216
+ color: var(--color-type-primary, #000);
4217
+ cursor: pointer;
4218
+ }
4219
+
4220
+ .gap-filter-drawer-body {
4221
+ flex: 1 0 0;
4222
+ overflow-y: auto;
4223
+ padding: 0 var(--spacing-utk-l, 16px);
4224
+ }
4225
+
4226
+ .gap-filter-drawer-section {
4227
+ display: flex;
4228
+ flex-direction: column;
4229
+ }
4230
+
4231
+ .gap-filter-drawer-section-header {
4232
+ display: flex;
4233
+ align-items: flex-start;
4234
+ justify-content: space-between;
4235
+ width: 100%;
4236
+ padding: var(--spacing-utk-l, 16px) 0;
4237
+ border: none;
4238
+ background: none;
4239
+ cursor: pointer;
4240
+ text-align: left;
4241
+ gap: var(--spacing-utk-s, 8px);
4242
+ }
4243
+
4244
+ .gap-filter-drawer-section-title-group {
4245
+ display: flex;
4246
+ flex-direction: column;
4247
+ gap: var(--spacing-utk-2xs, 4px);
4248
+ }
4249
+
4250
+ .gap-filter-drawer-section-title {
4251
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
4252
+ font-size: var(--text-header-font-size, 16px);
4253
+ font-weight: var(--font-weight-base-heavier, 400);
4254
+ letter-spacing: var(--text-subhead-letter-spacing, 0.24px);
4255
+ line-height: normal;
4256
+ color: var(--color-type-primary, #000);
4257
+ }
4258
+
4259
+ .gap-filter-drawer-section-count {
4260
+ font-weight: var(--font-weight-base, 400);
4261
+ }
4262
+
4263
+ .gap-filter-drawer-section-subtitle {
4264
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
4265
+ font-size: var(--text-subhead-font-size, 12px);
4266
+ font-weight: var(--font-weight-base, 400);
4267
+ letter-spacing: var(--text-subhead-letter-spacing, 0.24px);
4268
+ line-height: normal;
4269
+ color: var(--color-type-secondary, #757575);
4270
+ }
4271
+
4272
+ .gap-filter-drawer-chevron {
4273
+ transition: transform 0.2s ease;
4274
+ flex-shrink: 0;
4275
+ margin-top: 6px;
4276
+ }
4277
+
4278
+ .gap-filter-drawer-chevron--up {
4279
+ transform: rotate(180deg);
4280
+ }
4281
+
4282
+ .gap-filter-drawer-section-content {
4283
+ padding-bottom: var(--spacing-utk-l, 16px);
4284
+ }
4285
+
4286
+ .gap-filter-drawer-footer {
4287
+ padding: var(--spacing-utk-l, 16px);
4288
+ }
4289
+
4290
+ .gap-filter-drawer-apply {
4291
+ display: flex;
4292
+ align-items: center;
4293
+ justify-content: center;
4294
+ width: 100%;
4295
+ min-height: 44px;
4296
+ padding: 0 var(--button-padding-horizontal, 48px);
4297
+ border: var(--button-primary-border-width, 0px) solid
4298
+ var(--button-primary-border-color, #000);
4299
+ border-radius: var(--button-border-radius, 0px);
4300
+ background-color: var(--button-primary-fill, #000);
4301
+ font-family: var(--font-family-base, "Gap Sans", sans-serif);
4302
+ font-size: var(--text-button-font-size, 14px);
4303
+ font-weight: var(--text-button-font-weight, 400);
4304
+ letter-spacing: var(--font-letter-spacing-0, 0.28px);
4305
+ line-height: normal;
4306
+ color: var(--button-primary-font, #fff);
4307
+ cursor: pointer;
4308
+ }
4309
+