@sc-360-v2/storefront-cms-library 0.5.70 → 0.5.72

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 (141) hide show
  1. package/dist/add-existing-form.scss +68 -68
  2. package/dist/add-products-tab-details.scss +4071 -4071
  3. package/dist/add-products-tab-uom-details.scss +1106 -1106
  4. package/dist/add-products-tab.scss +2377 -2377
  5. package/dist/allocation-header-quota-details.scss +609 -609
  6. package/dist/allocations-quota-details.scss +525 -525
  7. package/dist/amount-estimator.scss +1192 -1192
  8. package/dist/animation-control.scss +23 -23
  9. package/dist/badge.scss +408 -408
  10. package/dist/brand-basic-elements.scss +387 -387
  11. package/dist/brand.scss +142 -142
  12. package/dist/breadcrumbs.scss +966 -966
  13. package/dist/builder.js +1 -1
  14. package/dist/bulk-order-pad.scss +692 -692
  15. package/dist/bundleDetails.scss +6189 -6189
  16. package/dist/buy-for-tab-container.scss +141 -141
  17. package/dist/buy-for-tab.scss +649 -649
  18. package/dist/buy-for-tabs-container-item.scss +80 -80
  19. package/dist/buyForPopup.scss +339 -339
  20. package/dist/cart-details.scss +3986 -3986
  21. package/dist/cart-products-sidebar.scss +211 -211
  22. package/dist/cart-wrapper.scss +127 -127
  23. package/dist/cartDropdownOverlay.scss +653 -653
  24. package/dist/cartGrouping.scss +89 -89
  25. package/dist/category-groups-element.scss +739 -739
  26. package/dist/category-groups-quota-details.scss +626 -626
  27. package/dist/category.scss +137 -137
  28. package/dist/categoryDetails.scss +61 -61
  29. package/dist/categoryWidget.scss +34 -34
  30. package/dist/checkbox-radio.scss +124 -124
  31. package/dist/code-temp.scss +59 -59
  32. package/dist/colorpicker_v2.scss +62 -62
  33. package/dist/common-element.scss +35 -35
  34. package/dist/confirm-modal.scss +370 -370
  35. package/dist/confirmationModal.scss +139 -139
  36. package/dist/contact-us.scss +105 -105
  37. package/dist/container.scss +168 -168
  38. package/dist/custom-fonts.scss +100 -100
  39. package/dist/customization-tree.scss +162 -162
  40. package/dist/default-dropdown.scss +259 -259
  41. package/dist/dropdownTemplate.scss +699 -699
  42. package/dist/editCartItem.scss +110 -110
  43. package/dist/embed-temp.scss +73 -73
  44. package/dist/embroider-preview-element.scss +94 -94
  45. package/dist/embroider-template-1-v2.scss +1105 -1105
  46. package/dist/embroider-template-1.scss +501 -501
  47. package/dist/embroidery.scss +247 -247
  48. package/dist/employee-bulk-order.scss +4060 -4060
  49. package/dist/emtpy-templates.scss +165 -165
  50. package/dist/faq.scss +696 -696
  51. package/dist/fb-dropdown.scss +135 -135
  52. package/dist/filter-results.scss +361 -361
  53. package/dist/flex-text-editor.scss +271 -271
  54. package/dist/form-preview.scss +530 -530
  55. package/dist/global-styles.scss +198 -198
  56. package/dist/grid.scss +169 -169
  57. package/dist/icon-library.scss +78 -78
  58. package/dist/image-for-product.scss +21 -21
  59. package/dist/image-temp.scss +203 -203
  60. package/dist/item-stock.scss +93 -93
  61. package/dist/kitDetails.scss +5739 -5739
  62. package/dist/kits.scss +305 -305
  63. package/dist/language-selector.scss +948 -948
  64. package/dist/last-x-orders.scss +285 -285
  65. package/dist/layouter-item.scss +141 -141
  66. package/dist/layouter-pro-item.scss +139 -139
  67. package/dist/layouter-pro.scss +134 -134
  68. package/dist/layouter.scss +491 -491
  69. package/dist/light-box-v2.scss +155 -155
  70. package/dist/lightbox.scss +78 -78
  71. package/dist/loader.scss +37 -37
  72. package/dist/login.scss +29 -11
  73. package/dist/marchandiserSets.scss +141 -141
  74. package/dist/mega-menu-container.scss +152 -152
  75. package/dist/menu-item.scss +19 -19
  76. package/dist/menu-v2.scss +999 -999
  77. package/dist/menu.scss +174 -174
  78. package/dist/multi-select-dropdown.scss +316 -316
  79. package/dist/my-templates.scss +477 -477
  80. package/dist/my-wishlist.scss +27 -27
  81. package/dist/option-bar.scss +886 -886
  82. package/dist/order-processing.scss +61 -61
  83. package/dist/order-status.scss +74 -0
  84. package/dist/overflow-module.scss +63 -63
  85. package/dist/past-orders.scss +1039 -1039
  86. package/dist/payment-methods.scss +307 -307
  87. package/dist/phone-input.scss +208 -208
  88. package/dist/pickup-locations.scss +1359 -1359
  89. package/dist/position-module.scss +95 -95
  90. package/dist/prefix-list.scss +86 -86
  91. package/dist/product-actions.scss +2872 -2872
  92. package/dist/product-basic-elements.scss +600 -600
  93. package/dist/product-customizations.scss +155 -155
  94. package/dist/product-inventory.scss +1621 -1621
  95. package/dist/product-labels.scss +265 -265
  96. package/dist/product-price.scss +3392 -3392
  97. package/dist/product-promotions.scss +3224 -3224
  98. package/dist/product-sizechart.scss +1921 -1921
  99. package/dist/product.scss +140 -140
  100. package/dist/profile.scss +824 -824
  101. package/dist/quantity-selector.scss +1074 -1074
  102. package/dist/quick-inventory-check.scss +285 -285
  103. package/dist/quick-links.scss +627 -627
  104. package/dist/quota-details.scss +526 -526
  105. package/dist/repeater-embla-controls.scss +211 -211
  106. package/dist/repeater-grid-toggle.scss +206 -206
  107. package/dist/repeater-item.scss +152 -152
  108. package/dist/repeater.scss +946 -946
  109. package/dist/request-for-quotes.scss +841 -841
  110. package/dist/responsive-behaviour.scss +29 -29
  111. package/dist/rfqs.scss +861 -861
  112. package/dist/scroll.scss +414 -414
  113. package/dist/search.scss +689 -689
  114. package/dist/section.scss +276 -276
  115. package/dist/shareCartSideBar.scss +254 -254
  116. package/dist/shipping-estimator.scss +41 -41
  117. package/dist/shipping-payments.scss +2518 -2518
  118. package/dist/simple-list.scss +338 -338
  119. package/dist/skeleton.scss +64 -64
  120. package/dist/sort.scss +176 -176
  121. package/dist/spotlight.scss +1706 -1706
  122. package/dist/stack.scss +171 -171
  123. package/dist/static-global.scss +292 -292
  124. package/dist/static-text.scss +52 -52
  125. package/dist/stockStatus.scss +70 -70
  126. package/dist/store-locations.scss +1592 -1592
  127. package/dist/sub-category.scss +74 -74
  128. package/dist/submit-quote.scss +275 -275
  129. package/dist/tab-container-item.scss +80 -80
  130. package/dist/tab-container.scss +141 -141
  131. package/dist/table.scss +9 -0
  132. package/dist/tabs.scss +440 -440
  133. package/dist/text-temp.scss +109 -109
  134. package/dist/theme-classes.scss +421 -421
  135. package/dist/toaster.scss +392 -392
  136. package/dist/toggle-button.scss +32 -32
  137. package/dist/transform-properties-module.scss +20 -20
  138. package/dist/types/builder/tools/element-edit/login.d.ts +1 -0
  139. package/dist/types/builder/tools/element-edit/resetPassword.d.ts +1 -0
  140. package/dist/wishlist-overlay.scss +48 -48
  141. package/package.json +1 -1
@@ -1,525 +1,525 @@
1
- @use "./functions.scss" as *;
2
-
3
- // Verbatim adaptation of quota-details.scss inner styles, rebound to the
4
- // Allocations quotaDetails layout/design CSS-variable paths.
5
- // @imported inside allocationDetails.scss within the allocationDetails scope.
6
-
7
- $overflowSelector: ".flex__overflow";
8
-
9
- // Text Transform (with the word wrap/break pair the panel groups with it) and Text
10
- // Overflow for one text node. $suffix is "-dc" for the Label blocks, which write the
11
- // *Desc keys. Declared here rather than reusing the allocationDetails mixins so this
12
- // file stays self-contained, matching how it already redeclares the rebound vars.
13
- @mixin aqd-text-controls($base, $suffix: "", $clampVar: --_sf-line-clamp) {
14
- text-transform: prepareMediaVariable(#{$base}-tt-tm#{$suffix}, none);
15
- word-wrap: prepareMediaVariable(#{$base}-wd-wp#{$suffix}, normal);
16
- word-break: prepareMediaVariable(#{$base}-wd-bk#{$suffix}, normal);
17
-
18
- // The clamp needs the text to wrap first, so it undoes the `nowrap` above it.
19
- &#{$overflowSelector} {
20
- white-space: normal;
21
- @include restrictToLinesShow(#{var($clampVar, 1)});
22
- }
23
- }
24
-
25
- .quota__details__element {
26
- background-color: var(
27
- --_ctm-mob-dn-qa-ds-qa-ds-dn-wt-se-bd-cr,
28
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-wt-se-bd-cr, var(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-bd-cr))
29
- );
30
- padding: var(
31
- --_ctm-mob-dn-qa-ds-qa-ds-lt-pg,
32
- var(--_ctm-tab-dn-qa-ds-qa-ds-lt-pg, var(--_ctm-dn-qa-ds-qa-ds-lt-pg))
33
- );
34
- display: flex;
35
- flex-direction: column;
36
- --_sf-gp: var(
37
- --_ctm-mob-dn-qa-ds-qa-ds-lt-im-sg,
38
- var(--_ctm-tab-dn-qa-ds-qa-ds-lt-im-sg, var(--_ctm-dn-qa-ds-qa-ds-lt-im-sg, 16px))
39
- );
40
- row-gap: var(--_sf-gp);
41
- // Embedded in an allocation card, not free-standing like the Quota Details element
42
- // itself: `fit-content` let the row size to its text and spill past the card, so it
43
- // is pinned to the card instead and the row below reflows within it.
44
- width: 100%;
45
- max-width: 100%;
46
- min-width: 0;
47
- height: auto;
48
- border-color: var(
49
- --_ctm-mob-dn-qa-ds-qa-ds-dn-wt-se-br-cr,
50
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-wt-se-br-cr, var(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-br-cr))
51
- );
52
- border-style: var(
53
- --_ctm-mob-dn-qa-ds-qa-ds-dn-wt-se-br-se,
54
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-wt-se-br-se, var(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-br-se))
55
- );
56
- border-width: var(
57
- --_ctm-mob-dn-qa-ds-qa-ds-dn-wt-se-br-wh,
58
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-wt-se-br-wh, var(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-br-wh))
59
- );
60
- border-radius: var(
61
- --_ctm-mob-dn-qa-ds-qa-ds-dn-wt-se-br-rs,
62
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-wt-se-br-rs, var(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-br-rs))
63
- );
64
- box-shadow: var(
65
- --_ctm-mob-dn-qa-ds-qa-ds-dn-wt-se-sw-ae,
66
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-wt-se-sw-ae, var(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-sw-ae))
67
- )
68
- var(
69
- --_ctm-mob-dn-qa-ds-qa-ds-dn-wt-se-sw-br,
70
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-wt-se-sw-br, var(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-sw-br))
71
- )
72
- var(
73
- --_ctm-mob-dn-qa-ds-qa-ds-dn-wt-se-sw-sd,
74
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-wt-se-sw-sd, var(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-sw-sd))
75
- )
76
- var(
77
- --_ctm-mob-dn-qa-ds-qa-ds-dn-wt-se-sw-cr,
78
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-wt-se-sw-cr, var(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-sw-cr))
79
- );
80
-
81
- .product__hilights {
82
- display: flex;
83
- align-items: center;
84
- // Design > Widget Style > alignment, falling back to the Layout panel's own
85
- // alignment so cards set up before the design control existed keep theirs.
86
- justify-content: prepareMediaVariable(
87
- --_ctm-dn-qa-ds-qa-ds-dn-wt-se-hl-at,
88
- prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-lt-hl-at)
89
- );
90
- gap: var(--_sf-gp);
91
- width: 100%;
92
- height: 100%;
93
- // Pinned to the card above, so the two stats wrap onto a second line when the
94
- // card is too narrow for both instead of running past its edge.
95
- flex-wrap: wrap;
96
- min-width: 0;
97
-
98
- &[data-show-dividers="true"] {
99
- // See quota-details.scss: Shape Size and Shape Color are the item's only two
100
- // controls, Size measuring the marker's diameter or the rule's thickness. The
101
- // `-dr-dr-` doubling is the `divider` node followed by the `divider…` property
102
- // name — the shape vars were written with only one, which is why neither
103
- // control did anything.
104
- $shapeSize: prepareMediaVariable(
105
- --_ctm-dn-qa-ds-qa-ds-dn-dr-dr-se-se,
106
- prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-dr-dr-wh, 1px)
107
- );
108
- $shapeColor: prepareMediaVariable(
109
- --_ctm-dn-qa-ds-qa-ds-dn-dr-dr-se-cr,
110
- prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-dr-dr-cr, #e4e7ec)
111
- );
112
-
113
- .product__list__item {
114
- position: relative;
115
- // The rule is a pseudo-element and takes no space of its own, so a wide one grew
116
- // back over the item beside it — see dividerGapReserve in functions.scss.
117
- &:not(:last-child) {
118
- @include dividerGapReserve($shapeSize, right);
119
- }
120
- &:not(:last-child)::after {
121
- content: "";
122
- width: $shapeSize;
123
- height: 100%;
124
- position: absolute;
125
- right: dividerGapOffset(var(--_sf-gp, 0px), $shapeSize);
126
- background-color: $shapeColor;
127
- }
128
-
129
- // Divider item (Divider -> Item Style). Same geometry as the standalone
130
- // element: the rule's centre sits at -(gap/2) - (width/2) from the item's right
131
- // edge, so the marker is pinned there and translated half its own width back.
132
- .divider__marker {
133
- position: absolute;
134
- top: 50%;
135
- right: dividerMarkerOffset(var(--_sf-gp, 0px), $shapeSize);
136
- transform: translate(50%, -50%);
137
- display: flex;
138
- align-items: center;
139
- justify-content: center;
140
- z-index: 1;
141
-
142
- // 8px rather than the rule's thickness when Shape Size is absent: a marker
143
- // falling back to a hairline would read as missing.
144
- &[data-shape="circle"],
145
- &[data-shape="square"] {
146
- width: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-dr-dr-se-se, 8px);
147
- height: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-dr-dr-se-se, 8px);
148
- background-color: $shapeColor;
149
- }
150
-
151
- &[data-shape="circle"] {
152
- border-radius: 50%;
153
- }
154
-
155
- &[data-shape="icon"] {
156
- padding-block: 2px;
157
- background-color: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-bd-cr, #ffffff);
158
- }
159
-
160
- .icon {
161
- display: flex;
162
-
163
- svg {
164
- width: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-dr-in-se, 12px);
165
- height: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-dr-in-se, 12px);
166
-
167
- &[stroke]:not([stroke="none"]),
168
- [stroke]:not([stroke="none"]) {
169
- stroke: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-dr-in-c1, #e4e7ec);
170
- // Overrides the stroke-width presentation attribute baked into the icon markup.
171
- stroke-width: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-dr-se-wh, 1.25);
172
- }
173
- &[fill]:not([fill="none"]),
174
- [fill]:not([fill="none"]) {
175
- fill: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-dr-in-c1, #e4e7ec);
176
- }
177
- }
178
- }
179
- }
180
-
181
- // Rendered inside every item; only the ones carrying a rule show it.
182
- &:last-child .divider__marker {
183
- display: none;
184
- }
185
- }
186
-
187
- // A shape or icon marker REPLACES the rule rather than sitting on it, so the
188
- // rule is drawn only while the separator is the plain "divider".
189
- &:not([data-divider-item="divider"]) .product__list__item:not(:last-child)::after {
190
- display: none;
191
- }
192
- }
193
-
194
- .product__list__item {
195
- display: flex;
196
- align-items: center;
197
- gap: 4px;
198
- // Flex items default to min-width:auto, so they refuse to shrink below their
199
- // text width — the same guard the standalone element carries.
200
- min-width: 0;
201
-
202
- .svg_icon {
203
- display: flex;
204
- }
205
- }
206
-
207
- .quota__left {
208
- .count {
209
- // No `white-space: nowrap` here: it stopped the text reflowing when the card
210
- // is narrowed, which forced the two stats onto separate lines instead of
211
- // letting them shrink and stay on one. Matches the standalone element.
212
- min-width: 0;
213
- color: var(
214
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-cr,
215
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-cr, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-cr))
216
- );
217
- font-family: var(
218
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ft-fy,
219
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ft-fy, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ft-fy))
220
- );
221
- text-transform: var(
222
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-tt-tm,
223
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-tt-tm, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-tt-tm))
224
- );
225
- word-wrap: var(
226
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-wd-wp,
227
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-wd-wp, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-wd-wp))
228
- );
229
- word-break: var(
230
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-wd-bk,
231
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-wd-bk, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-wd-bk))
232
- );
233
- font-size: var(
234
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ft-se,
235
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ft-se, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ft-se))
236
- );
237
- font-weight: var(
238
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ft-wt,
239
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ft-wt, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ft-wt))
240
- );
241
- font-style: var(
242
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ft-se-ic,
243
- var(
244
- --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ft-se-ic,
245
- var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ft-se-ic)
246
- )
247
- );
248
- letter-spacing: var(
249
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-lr-sg,
250
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-lr-sg, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-lr-sg))
251
- );
252
- line-height: var(
253
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-le-ht,
254
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-le-ht, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-le-ht))
255
- );
256
- text-decoration: var(
257
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ue,
258
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ue, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ue))
259
- );
260
- @include aqd-text-controls(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt);
261
- }
262
- .label {
263
- // No `white-space: nowrap` here: it stopped the text reflowing when the card
264
- // is narrowed, which forced the two stats onto separate lines instead of
265
- // letting them shrink and stay on one. Matches the standalone element.
266
- min-width: 0;
267
- color: var(
268
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-cr-dc,
269
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-cr-dc, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-cr-dc))
270
- );
271
- font-family: var(
272
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ft-fy-dc,
273
- var(
274
- --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ft-fy-dc,
275
- var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ft-fy-dc)
276
- )
277
- );
278
- text-transform: var(
279
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-tt-tm-dc,
280
- var(
281
- --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-tt-tm-dc,
282
- var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-tt-tm-dc)
283
- )
284
- );
285
- word-wrap: var(
286
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-wd-wp-dc,
287
- var(
288
- --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-wd-wp-dc,
289
- var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-wd-wp-dc)
290
- )
291
- );
292
- word-break: var(
293
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-wd-bk-dc,
294
- var(
295
- --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-wd-bk-dc,
296
- var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-wd-bk-dc)
297
- )
298
- );
299
- font-size: var(
300
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ft-se-dc,
301
- var(
302
- --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ft-se-dc,
303
- var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ft-se-dc)
304
- )
305
- );
306
- font-weight: var(
307
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ft-wt-dc,
308
- var(
309
- --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ft-wt-dc,
310
- var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ft-wt-dc)
311
- )
312
- );
313
- font-style: var(
314
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ft-se-ic-dc,
315
- var(
316
- --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ft-se-ic-dc,
317
- var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ft-se-ic-dc)
318
- )
319
- );
320
- letter-spacing: var(
321
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-lr-sg-dc,
322
- var(
323
- --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-lr-sg-dc,
324
- var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-lr-sg-dc)
325
- )
326
- );
327
- line-height: var(
328
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-le-ht-dc,
329
- var(
330
- --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-le-ht-dc,
331
- var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-le-ht-dc)
332
- )
333
- );
334
- text-decoration: var(
335
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ue-dc,
336
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ue-dc, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ue-dc))
337
- );
338
- @include aqd-text-controls(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt, "-dc", --_sf-line-clamp-desc);
339
- }
340
- .icon {
341
- display: flex;
342
- svg {
343
- width: var(
344
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-in-se,
345
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-in-se, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-in-se))
346
- );
347
- height: var(
348
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-in-se,
349
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-in-se, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-in-se))
350
- );
351
- path {
352
- stroke: var(
353
- --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-in-c1,
354
- var(
355
- --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-in-c1,
356
- var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-in-c1)
357
- )
358
- );
359
- // Overrides the stroke-width presentation attribute baked into the icon markup.
360
- stroke-width: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-se-wh, 1.25);
361
- }
362
- }
363
- }
364
- }
365
-
366
- .days__left {
367
- .count {
368
- // No `white-space: nowrap` here: it stopped the text reflowing when the card
369
- // is narrowed, which forced the two stats onto separate lines instead of
370
- // letting them shrink and stay on one. Matches the standalone element.
371
- min-width: 0;
372
- color: var(
373
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-cr,
374
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-cr, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-cr))
375
- );
376
- font-family: var(
377
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ft-fy,
378
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ft-fy, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ft-fy))
379
- );
380
- text-transform: var(
381
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-tt-tm,
382
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-tt-tm, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-tt-tm))
383
- );
384
- word-wrap: var(
385
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-wd-wp,
386
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-wd-wp, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-wd-wp))
387
- );
388
- word-break: var(
389
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-wd-bk,
390
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-wd-bk, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-wd-bk))
391
- );
392
- font-size: var(
393
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ft-se,
394
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ft-se, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ft-se))
395
- );
396
- font-weight: var(
397
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ft-wt,
398
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ft-wt, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ft-wt))
399
- );
400
- font-style: var(
401
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ft-se-ic,
402
- var(
403
- --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ft-se-ic,
404
- var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ft-se-ic)
405
- )
406
- );
407
- letter-spacing: var(
408
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-lr-sg,
409
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-lr-sg, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-lr-sg))
410
- );
411
- line-height: var(
412
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-le-ht,
413
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-le-ht, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-le-ht))
414
- );
415
- text-decoration: var(
416
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ue,
417
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ue, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ue))
418
- );
419
- @include aqd-text-controls(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt);
420
- }
421
- .label {
422
- // No `white-space: nowrap` here: it stopped the text reflowing when the card
423
- // is narrowed, which forced the two stats onto separate lines instead of
424
- // letting them shrink and stay on one. Matches the standalone element.
425
- min-width: 0;
426
- color: var(
427
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-cr-dc,
428
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-cr-dc, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-cr-dc))
429
- );
430
- font-family: var(
431
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ft-fy-dc,
432
- var(
433
- --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ft-fy-dc,
434
- var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ft-fy-dc)
435
- )
436
- );
437
- text-transform: var(
438
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-tt-tm-dc,
439
- var(
440
- --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-tt-tm-dc,
441
- var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-tt-tm-dc)
442
- )
443
- );
444
- word-wrap: var(
445
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-wd-wp-dc,
446
- var(
447
- --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-wd-wp-dc,
448
- var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-wd-wp-dc)
449
- )
450
- );
451
- word-break: var(
452
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-wd-bk-dc,
453
- var(
454
- --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-wd-bk-dc,
455
- var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-wd-bk-dc)
456
- )
457
- );
458
- font-size: var(
459
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ft-se-dc,
460
- var(
461
- --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ft-se-dc,
462
- var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ft-se-dc)
463
- )
464
- );
465
- font-weight: var(
466
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ft-wt-dc,
467
- var(
468
- --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ft-wt-dc,
469
- var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ft-wt-dc)
470
- )
471
- );
472
- font-style: var(
473
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ft-se-ic-dc,
474
- var(
475
- --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ft-se-ic-dc,
476
- var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ft-se-ic-dc)
477
- )
478
- );
479
- letter-spacing: var(
480
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-lr-sg-dc,
481
- var(
482
- --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-lr-sg-dc,
483
- var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-lr-sg-dc)
484
- )
485
- );
486
- line-height: var(
487
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-le-ht-dc,
488
- var(
489
- --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-le-ht-dc,
490
- var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-le-ht-dc)
491
- )
492
- );
493
- text-decoration: var(
494
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ue-dc,
495
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ue-dc, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ue-dc))
496
- );
497
- @include aqd-text-controls(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt, "-dc", --_sf-line-clamp-desc);
498
- }
499
- .icon {
500
- display: flex;
501
- svg {
502
- width: var(
503
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-in-se,
504
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-in-se, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-in-se))
505
- );
506
- height: var(
507
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-in-se,
508
- var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-in-se, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-in-se))
509
- );
510
- path {
511
- stroke: var(
512
- --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-in-c1,
513
- var(
514
- --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-in-c1,
515
- var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-in-c1)
516
- )
517
- );
518
- // Overrides the stroke-width presentation attribute baked into the icon markup.
519
- stroke-width: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-se-wh, 1.25);
520
- }
521
- }
522
- }
523
- }
524
- }
525
- }
1
+ @use "./functions.scss" as *;
2
+
3
+ // Verbatim adaptation of quota-details.scss inner styles, rebound to the
4
+ // Allocations quotaDetails layout/design CSS-variable paths.
5
+ // @imported inside allocationDetails.scss within the allocationDetails scope.
6
+
7
+ $overflowSelector: ".flex__overflow";
8
+
9
+ // Text Transform (with the word wrap/break pair the panel groups with it) and Text
10
+ // Overflow for one text node. $suffix is "-dc" for the Label blocks, which write the
11
+ // *Desc keys. Declared here rather than reusing the allocationDetails mixins so this
12
+ // file stays self-contained, matching how it already redeclares the rebound vars.
13
+ @mixin aqd-text-controls($base, $suffix: "", $clampVar: --_sf-line-clamp) {
14
+ text-transform: prepareMediaVariable(#{$base}-tt-tm#{$suffix}, none);
15
+ word-wrap: prepareMediaVariable(#{$base}-wd-wp#{$suffix}, normal);
16
+ word-break: prepareMediaVariable(#{$base}-wd-bk#{$suffix}, normal);
17
+
18
+ // The clamp needs the text to wrap first, so it undoes the `nowrap` above it.
19
+ &#{$overflowSelector} {
20
+ white-space: normal;
21
+ @include restrictToLinesShow(#{var($clampVar, 1)});
22
+ }
23
+ }
24
+
25
+ .quota__details__element {
26
+ background-color: var(
27
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-wt-se-bd-cr,
28
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-wt-se-bd-cr, var(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-bd-cr))
29
+ );
30
+ padding: var(
31
+ --_ctm-mob-dn-qa-ds-qa-ds-lt-pg,
32
+ var(--_ctm-tab-dn-qa-ds-qa-ds-lt-pg, var(--_ctm-dn-qa-ds-qa-ds-lt-pg))
33
+ );
34
+ display: flex;
35
+ flex-direction: column;
36
+ --_sf-gp: var(
37
+ --_ctm-mob-dn-qa-ds-qa-ds-lt-im-sg,
38
+ var(--_ctm-tab-dn-qa-ds-qa-ds-lt-im-sg, var(--_ctm-dn-qa-ds-qa-ds-lt-im-sg, 16px))
39
+ );
40
+ row-gap: var(--_sf-gp);
41
+ // Embedded in an allocation card, not free-standing like the Quota Details element
42
+ // itself: `fit-content` let the row size to its text and spill past the card, so it
43
+ // is pinned to the card instead and the row below reflows within it.
44
+ width: 100%;
45
+ max-width: 100%;
46
+ min-width: 0;
47
+ height: auto;
48
+ border-color: var(
49
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-wt-se-br-cr,
50
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-wt-se-br-cr, var(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-br-cr))
51
+ );
52
+ border-style: var(
53
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-wt-se-br-se,
54
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-wt-se-br-se, var(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-br-se))
55
+ );
56
+ border-width: var(
57
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-wt-se-br-wh,
58
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-wt-se-br-wh, var(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-br-wh))
59
+ );
60
+ border-radius: var(
61
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-wt-se-br-rs,
62
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-wt-se-br-rs, var(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-br-rs))
63
+ );
64
+ box-shadow: var(
65
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-wt-se-sw-ae,
66
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-wt-se-sw-ae, var(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-sw-ae))
67
+ )
68
+ var(
69
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-wt-se-sw-br,
70
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-wt-se-sw-br, var(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-sw-br))
71
+ )
72
+ var(
73
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-wt-se-sw-sd,
74
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-wt-se-sw-sd, var(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-sw-sd))
75
+ )
76
+ var(
77
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-wt-se-sw-cr,
78
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-wt-se-sw-cr, var(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-sw-cr))
79
+ );
80
+
81
+ .product__hilights {
82
+ display: flex;
83
+ align-items: center;
84
+ // Design > Widget Style > alignment, falling back to the Layout panel's own
85
+ // alignment so cards set up before the design control existed keep theirs.
86
+ justify-content: prepareMediaVariable(
87
+ --_ctm-dn-qa-ds-qa-ds-dn-wt-se-hl-at,
88
+ prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-lt-hl-at)
89
+ );
90
+ gap: var(--_sf-gp);
91
+ width: 100%;
92
+ height: 100%;
93
+ // Pinned to the card above, so the two stats wrap onto a second line when the
94
+ // card is too narrow for both instead of running past its edge.
95
+ flex-wrap: wrap;
96
+ min-width: 0;
97
+
98
+ &[data-show-dividers="true"] {
99
+ // See quota-details.scss: Shape Size and Shape Color are the item's only two
100
+ // controls, Size measuring the marker's diameter or the rule's thickness. The
101
+ // `-dr-dr-` doubling is the `divider` node followed by the `divider…` property
102
+ // name — the shape vars were written with only one, which is why neither
103
+ // control did anything.
104
+ $shapeSize: prepareMediaVariable(
105
+ --_ctm-dn-qa-ds-qa-ds-dn-dr-dr-se-se,
106
+ prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-dr-dr-wh, 1px)
107
+ );
108
+ $shapeColor: prepareMediaVariable(
109
+ --_ctm-dn-qa-ds-qa-ds-dn-dr-dr-se-cr,
110
+ prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-dr-dr-cr, #e4e7ec)
111
+ );
112
+
113
+ .product__list__item {
114
+ position: relative;
115
+ // The rule is a pseudo-element and takes no space of its own, so a wide one grew
116
+ // back over the item beside it — see dividerGapReserve in functions.scss.
117
+ &:not(:last-child) {
118
+ @include dividerGapReserve($shapeSize, right);
119
+ }
120
+ &:not(:last-child)::after {
121
+ content: "";
122
+ width: $shapeSize;
123
+ height: 100%;
124
+ position: absolute;
125
+ right: dividerGapOffset(var(--_sf-gp, 0px), $shapeSize);
126
+ background-color: $shapeColor;
127
+ }
128
+
129
+ // Divider item (Divider -> Item Style). Same geometry as the standalone
130
+ // element: the rule's centre sits at -(gap/2) - (width/2) from the item's right
131
+ // edge, so the marker is pinned there and translated half its own width back.
132
+ .divider__marker {
133
+ position: absolute;
134
+ top: 50%;
135
+ right: dividerMarkerOffset(var(--_sf-gp, 0px), $shapeSize);
136
+ transform: translate(50%, -50%);
137
+ display: flex;
138
+ align-items: center;
139
+ justify-content: center;
140
+ z-index: 1;
141
+
142
+ // 8px rather than the rule's thickness when Shape Size is absent: a marker
143
+ // falling back to a hairline would read as missing.
144
+ &[data-shape="circle"],
145
+ &[data-shape="square"] {
146
+ width: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-dr-dr-se-se, 8px);
147
+ height: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-dr-dr-se-se, 8px);
148
+ background-color: $shapeColor;
149
+ }
150
+
151
+ &[data-shape="circle"] {
152
+ border-radius: 50%;
153
+ }
154
+
155
+ &[data-shape="icon"] {
156
+ padding-block: 2px;
157
+ background-color: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-wt-se-bd-cr, #ffffff);
158
+ }
159
+
160
+ .icon {
161
+ display: flex;
162
+
163
+ svg {
164
+ width: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-dr-in-se, 12px);
165
+ height: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-dr-in-se, 12px);
166
+
167
+ &[stroke]:not([stroke="none"]),
168
+ [stroke]:not([stroke="none"]) {
169
+ stroke: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-dr-in-c1, #e4e7ec);
170
+ // Overrides the stroke-width presentation attribute baked into the icon markup.
171
+ stroke-width: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-dr-se-wh, 1.25);
172
+ }
173
+ &[fill]:not([fill="none"]),
174
+ [fill]:not([fill="none"]) {
175
+ fill: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-dr-in-c1, #e4e7ec);
176
+ }
177
+ }
178
+ }
179
+ }
180
+
181
+ // Rendered inside every item; only the ones carrying a rule show it.
182
+ &:last-child .divider__marker {
183
+ display: none;
184
+ }
185
+ }
186
+
187
+ // A shape or icon marker REPLACES the rule rather than sitting on it, so the
188
+ // rule is drawn only while the separator is the plain "divider".
189
+ &:not([data-divider-item="divider"]) .product__list__item:not(:last-child)::after {
190
+ display: none;
191
+ }
192
+ }
193
+
194
+ .product__list__item {
195
+ display: flex;
196
+ align-items: center;
197
+ gap: 4px;
198
+ // Flex items default to min-width:auto, so they refuse to shrink below their
199
+ // text width — the same guard the standalone element carries.
200
+ min-width: 0;
201
+
202
+ .svg_icon {
203
+ display: flex;
204
+ }
205
+ }
206
+
207
+ .quota__left {
208
+ .count {
209
+ // No `white-space: nowrap` here: it stopped the text reflowing when the card
210
+ // is narrowed, which forced the two stats onto separate lines instead of
211
+ // letting them shrink and stay on one. Matches the standalone element.
212
+ min-width: 0;
213
+ color: var(
214
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-cr,
215
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-cr, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-cr))
216
+ );
217
+ font-family: var(
218
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ft-fy,
219
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ft-fy, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ft-fy))
220
+ );
221
+ text-transform: var(
222
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-tt-tm,
223
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-tt-tm, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-tt-tm))
224
+ );
225
+ word-wrap: var(
226
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-wd-wp,
227
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-wd-wp, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-wd-wp))
228
+ );
229
+ word-break: var(
230
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-wd-bk,
231
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-wd-bk, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-wd-bk))
232
+ );
233
+ font-size: var(
234
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ft-se,
235
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ft-se, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ft-se))
236
+ );
237
+ font-weight: var(
238
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ft-wt,
239
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ft-wt, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ft-wt))
240
+ );
241
+ font-style: var(
242
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ft-se-ic,
243
+ var(
244
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ft-se-ic,
245
+ var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ft-se-ic)
246
+ )
247
+ );
248
+ letter-spacing: var(
249
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-lr-sg,
250
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-lr-sg, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-lr-sg))
251
+ );
252
+ line-height: var(
253
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-le-ht,
254
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-le-ht, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-le-ht))
255
+ );
256
+ text-decoration: var(
257
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ue,
258
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ue, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ue))
259
+ );
260
+ @include aqd-text-controls(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt);
261
+ }
262
+ .label {
263
+ // No `white-space: nowrap` here: it stopped the text reflowing when the card
264
+ // is narrowed, which forced the two stats onto separate lines instead of
265
+ // letting them shrink and stay on one. Matches the standalone element.
266
+ min-width: 0;
267
+ color: var(
268
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-cr-dc,
269
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-cr-dc, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-cr-dc))
270
+ );
271
+ font-family: var(
272
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ft-fy-dc,
273
+ var(
274
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ft-fy-dc,
275
+ var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ft-fy-dc)
276
+ )
277
+ );
278
+ text-transform: var(
279
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-tt-tm-dc,
280
+ var(
281
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-tt-tm-dc,
282
+ var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-tt-tm-dc)
283
+ )
284
+ );
285
+ word-wrap: var(
286
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-wd-wp-dc,
287
+ var(
288
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-wd-wp-dc,
289
+ var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-wd-wp-dc)
290
+ )
291
+ );
292
+ word-break: var(
293
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-wd-bk-dc,
294
+ var(
295
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-wd-bk-dc,
296
+ var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-wd-bk-dc)
297
+ )
298
+ );
299
+ font-size: var(
300
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ft-se-dc,
301
+ var(
302
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ft-se-dc,
303
+ var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ft-se-dc)
304
+ )
305
+ );
306
+ font-weight: var(
307
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ft-wt-dc,
308
+ var(
309
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ft-wt-dc,
310
+ var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ft-wt-dc)
311
+ )
312
+ );
313
+ font-style: var(
314
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ft-se-ic-dc,
315
+ var(
316
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ft-se-ic-dc,
317
+ var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ft-se-ic-dc)
318
+ )
319
+ );
320
+ letter-spacing: var(
321
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-lr-sg-dc,
322
+ var(
323
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-lr-sg-dc,
324
+ var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-lr-sg-dc)
325
+ )
326
+ );
327
+ line-height: var(
328
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-le-ht-dc,
329
+ var(
330
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-le-ht-dc,
331
+ var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-le-ht-dc)
332
+ )
333
+ );
334
+ text-decoration: var(
335
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-ue-dc,
336
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-ue-dc, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-ue-dc))
337
+ );
338
+ @include aqd-text-controls(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt, "-dc", --_sf-line-clamp-desc);
339
+ }
340
+ .icon {
341
+ display: flex;
342
+ svg {
343
+ width: var(
344
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-in-se,
345
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-in-se, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-in-se))
346
+ );
347
+ height: var(
348
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-in-se,
349
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-in-se, var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-in-se))
350
+ );
351
+ path {
352
+ stroke: var(
353
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-qa-lt-in-c1,
354
+ var(
355
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-qa-lt-in-c1,
356
+ var(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-in-c1)
357
+ )
358
+ );
359
+ // Overrides the stroke-width presentation attribute baked into the icon markup.
360
+ stroke-width: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-qa-lt-se-wh, 1.25);
361
+ }
362
+ }
363
+ }
364
+ }
365
+
366
+ .days__left {
367
+ .count {
368
+ // No `white-space: nowrap` here: it stopped the text reflowing when the card
369
+ // is narrowed, which forced the two stats onto separate lines instead of
370
+ // letting them shrink and stay on one. Matches the standalone element.
371
+ min-width: 0;
372
+ color: var(
373
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-cr,
374
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-cr, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-cr))
375
+ );
376
+ font-family: var(
377
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ft-fy,
378
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ft-fy, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ft-fy))
379
+ );
380
+ text-transform: var(
381
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-tt-tm,
382
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-tt-tm, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-tt-tm))
383
+ );
384
+ word-wrap: var(
385
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-wd-wp,
386
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-wd-wp, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-wd-wp))
387
+ );
388
+ word-break: var(
389
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-wd-bk,
390
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-wd-bk, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-wd-bk))
391
+ );
392
+ font-size: var(
393
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ft-se,
394
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ft-se, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ft-se))
395
+ );
396
+ font-weight: var(
397
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ft-wt,
398
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ft-wt, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ft-wt))
399
+ );
400
+ font-style: var(
401
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ft-se-ic,
402
+ var(
403
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ft-se-ic,
404
+ var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ft-se-ic)
405
+ )
406
+ );
407
+ letter-spacing: var(
408
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-lr-sg,
409
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-lr-sg, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-lr-sg))
410
+ );
411
+ line-height: var(
412
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-le-ht,
413
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-le-ht, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-le-ht))
414
+ );
415
+ text-decoration: var(
416
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ue,
417
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ue, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ue))
418
+ );
419
+ @include aqd-text-controls(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt);
420
+ }
421
+ .label {
422
+ // No `white-space: nowrap` here: it stopped the text reflowing when the card
423
+ // is narrowed, which forced the two stats onto separate lines instead of
424
+ // letting them shrink and stay on one. Matches the standalone element.
425
+ min-width: 0;
426
+ color: var(
427
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-cr-dc,
428
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-cr-dc, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-cr-dc))
429
+ );
430
+ font-family: var(
431
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ft-fy-dc,
432
+ var(
433
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ft-fy-dc,
434
+ var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ft-fy-dc)
435
+ )
436
+ );
437
+ text-transform: var(
438
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-tt-tm-dc,
439
+ var(
440
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-tt-tm-dc,
441
+ var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-tt-tm-dc)
442
+ )
443
+ );
444
+ word-wrap: var(
445
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-wd-wp-dc,
446
+ var(
447
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-wd-wp-dc,
448
+ var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-wd-wp-dc)
449
+ )
450
+ );
451
+ word-break: var(
452
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-wd-bk-dc,
453
+ var(
454
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-wd-bk-dc,
455
+ var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-wd-bk-dc)
456
+ )
457
+ );
458
+ font-size: var(
459
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ft-se-dc,
460
+ var(
461
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ft-se-dc,
462
+ var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ft-se-dc)
463
+ )
464
+ );
465
+ font-weight: var(
466
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ft-wt-dc,
467
+ var(
468
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ft-wt-dc,
469
+ var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ft-wt-dc)
470
+ )
471
+ );
472
+ font-style: var(
473
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ft-se-ic-dc,
474
+ var(
475
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ft-se-ic-dc,
476
+ var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ft-se-ic-dc)
477
+ )
478
+ );
479
+ letter-spacing: var(
480
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-lr-sg-dc,
481
+ var(
482
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-lr-sg-dc,
483
+ var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-lr-sg-dc)
484
+ )
485
+ );
486
+ line-height: var(
487
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-le-ht-dc,
488
+ var(
489
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-le-ht-dc,
490
+ var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-le-ht-dc)
491
+ )
492
+ );
493
+ text-decoration: var(
494
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-ue-dc,
495
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-ue-dc, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-ue-dc))
496
+ );
497
+ @include aqd-text-controls(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt, "-dc", --_sf-line-clamp-desc);
498
+ }
499
+ .icon {
500
+ display: flex;
501
+ svg {
502
+ width: var(
503
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-in-se,
504
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-in-se, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-in-se))
505
+ );
506
+ height: var(
507
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-in-se,
508
+ var(--_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-in-se, var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-in-se))
509
+ );
510
+ path {
511
+ stroke: var(
512
+ --_ctm-mob-dn-qa-ds-qa-ds-dn-ds-lt-in-c1,
513
+ var(
514
+ --_ctm-tab-dn-qa-ds-qa-ds-dn-ds-lt-in-c1,
515
+ var(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-in-c1)
516
+ )
517
+ );
518
+ // Overrides the stroke-width presentation attribute baked into the icon markup.
519
+ stroke-width: prepareMediaVariable(--_ctm-dn-qa-ds-qa-ds-dn-ds-lt-se-wh, 1.25);
520
+ }
521
+ }
522
+ }
523
+ }
524
+ }
525
+ }