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

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 (155) 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/bundleCategories.scss +301 -301
  16. package/dist/bundleDetails.scss +6189 -6189
  17. package/dist/buy-for-tab-container.scss +141 -141
  18. package/dist/buy-for-tab.scss +649 -649
  19. package/dist/buy-for-tabs-container-item.scss +80 -80
  20. package/dist/buyForPopup.scss +339 -339
  21. package/dist/cart-details.scss +3986 -3986
  22. package/dist/cart-products-sidebar.scss +211 -211
  23. package/dist/cart-summary.scss +2826 -2826
  24. package/dist/cart-wrapper.scss +127 -127
  25. package/dist/cartAttributes.scss +1422 -1422
  26. package/dist/cartDropdownOverlay.scss +653 -653
  27. package/dist/cartGrouping.scss +89 -89
  28. package/dist/category-groups-element.scss +739 -739
  29. package/dist/category-groups-quota-details.scss +626 -626
  30. package/dist/category.scss +137 -137
  31. package/dist/categoryDetails.scss +61 -61
  32. package/dist/categoryWidget.scss +34 -34
  33. package/dist/checkbox-radio.scss +124 -124
  34. package/dist/code-temp.scss +59 -59
  35. package/dist/colorpicker_v2.scss +62 -62
  36. package/dist/common-element.scss +35 -35
  37. package/dist/confirm-modal.scss +370 -370
  38. package/dist/confirmationModal.scss +139 -139
  39. package/dist/contact-us.scss +105 -105
  40. package/dist/container.scss +168 -168
  41. package/dist/countdown.scss +899 -899
  42. package/dist/coupon.scss +1519 -1519
  43. package/dist/custom-fonts.scss +100 -100
  44. package/dist/customization-tree.scss +162 -162
  45. package/dist/default-dropdown.scss +259 -259
  46. package/dist/dropdownTemplate.scss +699 -699
  47. package/dist/editCartItem.scss +110 -110
  48. package/dist/embed-temp.scss +73 -73
  49. package/dist/embroider-preview-element.scss +94 -94
  50. package/dist/embroider-template-1-v2.scss +1105 -1105
  51. package/dist/embroider-template-1.scss +501 -501
  52. package/dist/embroidery.scss +247 -247
  53. package/dist/employee-bulk-order.scss +4060 -4060
  54. package/dist/emtpy-templates.scss +165 -165
  55. package/dist/faq.scss +696 -696
  56. package/dist/fb-dropdown.scss +135 -135
  57. package/dist/filter-results.scss +361 -361
  58. package/dist/filters.scss +3040 -3040
  59. package/dist/flex-text-editor.scss +271 -271
  60. package/dist/form-preview.scss +530 -530
  61. package/dist/gallery-slider-temp.scss +1776 -1776
  62. package/dist/global-styles.scss +198 -198
  63. package/dist/grid.scss +169 -169
  64. package/dist/icon-library.scss +78 -78
  65. package/dist/image-for-product.scss +21 -21
  66. package/dist/image-temp.scss +203 -203
  67. package/dist/item-stock.scss +93 -93
  68. package/dist/kitDetails.scss +5739 -5739
  69. package/dist/kits.scss +305 -305
  70. package/dist/language-selector.scss +948 -948
  71. package/dist/last-x-orders.scss +285 -285
  72. package/dist/layouter-item.scss +141 -141
  73. package/dist/layouter-pro-item.scss +139 -139
  74. package/dist/layouter-pro.scss +134 -134
  75. package/dist/layouter.scss +491 -491
  76. package/dist/light-box-v2.scss +155 -155
  77. package/dist/lightbox.scss +78 -78
  78. package/dist/loader.scss +37 -37
  79. package/dist/login.scss +29 -11
  80. package/dist/map.scss +1359 -1359
  81. package/dist/marchandiserSets.scss +141 -141
  82. package/dist/mega-menu-container.scss +152 -152
  83. package/dist/menu-item.scss +19 -19
  84. package/dist/menu-v2.scss +999 -999
  85. package/dist/menu.scss +174 -174
  86. package/dist/multi-select-dropdown.scss +316 -316
  87. package/dist/my-templates.scss +477 -477
  88. package/dist/my-wishlist.scss +27 -27
  89. package/dist/option-bar.scss +886 -886
  90. package/dist/order-processing.scss +61 -61
  91. package/dist/order-status.scss +2187 -2187
  92. package/dist/overflow-module.scss +63 -63
  93. package/dist/past-orders.scss +1039 -1039
  94. package/dist/payment-methods.scss +307 -307
  95. package/dist/phone-input.scss +208 -208
  96. package/dist/pickup-locations.scss +1359 -1359
  97. package/dist/position-module.scss +95 -95
  98. package/dist/prefix-list.scss +86 -86
  99. package/dist/product-actions.scss +2872 -2872
  100. package/dist/product-basic-elements.scss +600 -600
  101. package/dist/product-customizations.scss +155 -155
  102. package/dist/product-highlights.scss +348 -348
  103. package/dist/product-image-allocation.scss +1477 -1477
  104. package/dist/product-inventory.scss +1621 -1621
  105. package/dist/product-labels.scss +265 -265
  106. package/dist/product-options.scss +1444 -1444
  107. package/dist/product-price.scss +3392 -3392
  108. package/dist/product-promotions.scss +3224 -3224
  109. package/dist/product-sizechart.scss +1921 -1921
  110. package/dist/product.scss +140 -140
  111. package/dist/profile.scss +824 -824
  112. package/dist/quantity-selector.scss +1074 -1074
  113. package/dist/quick-inventory-check.scss +285 -285
  114. package/dist/quick-links.scss +627 -627
  115. package/dist/quota-details.scss +526 -526
  116. package/dist/quotes.scss +847 -847
  117. package/dist/repeater-embla-controls.scss +211 -211
  118. package/dist/repeater-grid-toggle.scss +206 -206
  119. package/dist/repeater-item.scss +152 -152
  120. package/dist/repeater.scss +946 -946
  121. package/dist/request-for-quotes.scss +841 -841
  122. package/dist/responsive-behaviour.scss +29 -29
  123. package/dist/rfqs.scss +861 -861
  124. package/dist/scroll.scss +414 -414
  125. package/dist/search-results-heading.scss +309 -309
  126. package/dist/search.scss +689 -689
  127. package/dist/section.scss +276 -276
  128. package/dist/shareCartSideBar.scss +254 -254
  129. package/dist/shipping-estimator.scss +41 -41
  130. package/dist/shipping-payments.scss +2518 -2518
  131. package/dist/simple-list.scss +338 -338
  132. package/dist/skeleton.scss +64 -64
  133. package/dist/spotlight.scss +1706 -1706
  134. package/dist/stack.scss +171 -171
  135. package/dist/static-global.scss +292 -292
  136. package/dist/static-text.scss +52 -52
  137. package/dist/stockStatus.scss +70 -70
  138. package/dist/store-locations.scss +1592 -1592
  139. package/dist/sub-category.scss +74 -74
  140. package/dist/submit-quote.scss +275 -275
  141. package/dist/tab-container-item.scss +80 -80
  142. package/dist/tab-container.scss +141 -141
  143. package/dist/table.scss +9 -0
  144. package/dist/tabs.scss +440 -440
  145. package/dist/text-temp.scss +109 -109
  146. package/dist/theme-classes.scss +421 -421
  147. package/dist/toaster.scss +392 -392
  148. package/dist/toggle-button.scss +32 -32
  149. package/dist/transform-properties-module.scss +20 -20
  150. package/dist/types/builder/tools/element-edit/login.d.ts +1 -0
  151. package/dist/types/builder/tools/element-edit/resetPassword.d.ts +1 -0
  152. package/dist/user-elements.scss +2896 -2896
  153. package/dist/widget.scss +153 -153
  154. package/dist/wishlist-overlay.scss +48 -48
  155. package/package.json +1 -1
@@ -1,1776 +1,1776 @@
1
- @use "sass:map";
2
- @use "sass:list";
3
- @use "./functions.scss" as *;
4
-
5
- $overflowSelector: ".flex__overflow";
6
-
7
- [data-div-type="element"] {
8
- &[data-element-type="gallerySlider"] {
9
- // width: var(--_sf-nw-wh, var(--_tst-lt-wh));
10
- width: var(
11
- --_sf-el-wh-st-mx,
12
- calc(
13
- 1% *
14
- var(
15
- --_ctm-mob-ele-nw-wh-vl,
16
- var(--_ctm-tab-ele-nw-wh-vl, var(--_ctm-ele-nw-wh-vl, var(--_sf-nw-wh)))
17
- )
18
- )
19
- );
20
- // height: var(--_ctm-mob-lt-ht, var(--_ctm-tab-lt-ht, var(--_ctm-lt-ht)));
21
- &:not(:has([data-display-style="Grid"][data-scroll-direction="Vertical"])) {
22
- height: var(--_ctm-mob-lt-ht, var(--_ctm-tab-lt-ht, var(--_ctm-lt-ht)));
23
- }
24
- margin: var(--_ctm-mob-lt-mn, var(--_ctm-tab-lt-mn, var(--_ctm-lt-mn)));
25
-
26
- --_aspect-ratio: calc(
27
- 1 *
28
- (
29
- var(--_ctm-mob-lt-ht, var(--_ctm-tab-lt-ht, var(--_ctm-lt-ht, var(--_tst-lt-ht)))) /
30
- var(--_ctm-mob-lt-wh, var(--_ctm-tab-lt-wh, var(--_ctm-lt-wh, var(--_tst-lt-wh))))
31
- )
32
- );
33
- &[data-view-state="full"] {
34
- // aspect-ratio: 1/0.01;
35
- & > .wrapper {
36
- & > div {
37
- height: 100%;
38
- }
39
- }
40
- img {
41
- height: 100%;
42
- object-fit: cover;
43
- }
44
- }
45
-
46
- .arrow-navigation {
47
- pointer-events: none;
48
- }
49
- .arrow-navigation > button {
50
- pointer-events: all;
51
- }
52
-
53
- // &[data-view-state="full"] {
54
- // width: auto;
55
- // // height: 100%;
56
- // margin: 0;
57
- // justify-self: stretch !important;
58
- // align-self: stretch !important;
59
- // cursor: auto;
60
- // }
61
-
62
- & > .wrapper {
63
- width: 100%;
64
- height: 100%;
65
- }
66
- &[data-show-shadow="false"] {
67
- --_show-shadow: none;
68
- }
69
-
70
- .gallery-slider-element {
71
- --text-high-contrast-rgb-value: 49, 49, 49;
72
- --detail-medium-contrast: rgb(234, 234, 234);
73
- --text-body: rgb(54, 49, 61);
74
-
75
- position: relative;
76
- background-color: var(
77
- --_ctm-mob-dn-gy-wt-se-bd-cr,
78
- var(--_ctm-tab-dn-gy-wt-se-bd-cr, var(--_ctm-dn-gy-wt-se-bd-cr))
79
- );
80
-
81
- padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
82
-
83
- display: flex;
84
- flex-direction: column;
85
-
86
- --_sf-cd-gp: calc(var(--_sf-gp) * 0.5);
87
-
88
- gap: var(
89
- --_ctm-mob-dn-gy-wt-lt-gy-tt-ad-im-sg,
90
- var(--_ctm-tab-dn-gy-wt-lt-gy-tt-ad-im-sg, var(--_ctm-dn-gy-wt-lt-gy-tt-ad-im-sg))
91
- );
92
-
93
- width: 100%;
94
- height: 100%;
95
-
96
- border-color: var(
97
- --_ctm-mob-dn-gy-wt-se-br-cr,
98
- var(--_ctm-tab-dn-gy-wt-se-br-cr, var(--_ctm-dn-gy-wt-se-br-cr))
99
- );
100
-
101
- border-style: var(
102
- --_ctm-mob-dn-gy-wt-se-br-se,
103
- var(--_ctm-tab-dn-gy-wt-se-br-se, var(--_ctm-dn-gy-wt-se-br-se))
104
- );
105
-
106
- border-width: var(
107
- --_ctm-mob-dn-gy-wt-se-br-wh,
108
- var(--_ctm-tab-dn-gy-wt-se-br-wh, var(--_ctm-dn-gy-wt-se-br-wh))
109
- );
110
-
111
- border-radius: var(
112
- --_ctm-mob-dn-gy-wt-se-br-rs,
113
- var(--_ctm-tab-dn-gy-wt-se-br-rs, var(--_ctm-dn-gy-wt-se-br-rs))
114
- );
115
-
116
- box-shadow: var(
117
- --_show-shadow,
118
- var(
119
- --_ctm-mob-dn-gy-wt-se-sw-ae,
120
- var(--_ctm-tab-dn-gy-wt-se-sw-ae, var(--_ctm-dn-gy-wt-se-sw-ae))
121
- )
122
- var(
123
- --_ctm-mob-dn-gy-wt-se-sw-br,
124
- var(--_ctm-tab-dn-gy-wt-se-sw-br, var(--_ctm-dn-gy-wt-se-sw-br))
125
- )
126
- var(
127
- --_ctm-mob-dn-gy-wt-se-sw-sd,
128
- var(--_ctm-tab-dn-gy-wt-se-sw-sd, var(--_ctm-dn-gy-wt-se-sw-sd))
129
- )
130
- var(
131
- --_ctm-mob-dn-gy-wt-se-sw-cr,
132
- var(--_ctm-tab-dn-gy-wt-se-sw-cr, var(--_ctm-dn-gy-wt-se-sw-cr))
133
- )
134
- );
135
-
136
- .gallery-header {
137
- // text-align: var(--_ctm-dn-gy-lt-an, var(--_tst-dn-gy-lt-an));
138
- // line-height: var(--_ctm-dn-gy-lt-tt-ad-dn-sg, var(--_tst-dn-gy-lt-tt-ad-dn-sg));
139
- display: flex;
140
- flex-direction: column;
141
-
142
- gap: var(
143
- --_ctm-mob-dn-gy-wt-tt-cr-lt-te-ad-dn-sg,
144
- var(--_ctm-tab-dn-gy-wt-tt-cr-lt-te-ad-dn-sg, var(--_ctm-dn-gy-wt-tt-cr-lt-te-ad-dn-sg))
145
- );
146
-
147
- padding-block: var(
148
- --_ctm-mob-dn-gy-wt-tt-cr-lt-tt-vl-pg,
149
- var(--_ctm-tab-dn-gy-wt-tt-cr-lt-tt-vl-pg, var(--_ctm-dn-gy-wt-tt-cr-lt-tt-vl-pg))
150
- );
151
-
152
- padding-inline: var(
153
- --_ctm-mob-dn-gy-wt-tt-cr-lt-tt-hl-pg,
154
- var(--_ctm-tab-dn-gy-wt-tt-cr-lt-tt-hl-pg, var(--_ctm-dn-gy-wt-tt-cr-lt-tt-hl-pg))
155
- );
156
-
157
- background-color: var(
158
- --_ctm-mob-dn-gy-wt-tt-cr-dn-bd-cr,
159
- var(--_ctm-tab-dn-gy-wt-tt-cr-dn-bd-cr, var(--_ctm-dn-gy-wt-tt-cr-dn-bd-cr))
160
- );
161
-
162
- // Text Container Width. 100% is the previous behaviour, so an unset width
163
- // still spans the widget.
164
- width: prepareMediaVariable(--_ctm-dn-gy-wt-lt-tt-cr-wh, 100%);
165
- // Shrink to that width, and never below the height the wrapped text needs.
166
- min-width: 0;
167
- flex: 0 0 auto;
168
-
169
- border-color: var(
170
- --_ctm-mob-dn-gy-wt-tt-cr-dn-br-cr,
171
- var(--_ctm-tab-dn-gy-wt-tt-cr-dn-br-cr, var(--_ctm-dn-gy-wt-tt-cr-dn-br-cr))
172
- );
173
-
174
- border-style: var(
175
- --_ctm-mob-dn-gy-wt-tt-cr-dn-br-se,
176
- var(--_ctm-tab-dn-gy-wt-tt-cr-dn-br-se, var(--_ctm-dn-gy-wt-tt-cr-dn-br-se))
177
- );
178
-
179
- border-width: var(
180
- --_ctm-mob-dn-gy-wt-tt-cr-dn-br-wh,
181
- var(--_ctm-tab-dn-gy-wt-tt-cr-dn-br-wh, var(--_ctm-dn-gy-wt-tt-cr-dn-br-wh))
182
- );
183
-
184
- border-radius: var(
185
- --_ctm-mob-dn-gy-wt-tt-cr-dn-br-rs,
186
- var(--_ctm-tab-dn-gy-wt-tt-cr-dn-br-rs, var(--_ctm-dn-gy-wt-tt-cr-dn-br-rs))
187
- );
188
-
189
- box-shadow: var(
190
- --_show-shadow,
191
- var(
192
- --_ctm-mob-dn-gy-wt-tt-cr-dn-sw-ae,
193
- var(--_ctm-tab-dn-gy-wt-tt-cr-dn-sw-ae, var(--_ctm-dn-gy-wt-tt-cr-dn-sw-ae))
194
- )
195
- var(
196
- --_ctm-mob-dn-gy-wt-tt-cr-dn-sw-br,
197
- var(--_ctm-tab-dn-gy-wt-tt-cr-dn-sw-br, var(--_ctm-dn-gy-wt-tt-cr-dn-sw-br))
198
- )
199
- var(
200
- --_ctm-mob-dn-gy-wt-tt-cr-dn-sw-sd,
201
- var(--_ctm-tab-dn-gy-wt-tt-cr-dn-sw-sd, var(--_ctm-dn-gy-wt-tt-cr-dn-sw-sd))
202
- )
203
- var(
204
- --_ctm-mob-dn-gy-wt-tt-cr-dn-sw-cr,
205
- var(--_ctm-tab-dn-gy-wt-tt-cr-dn-sw-cr, var(--_ctm-dn-gy-wt-tt-cr-dn-sw-cr))
206
- )
207
- );
208
-
209
- & h3 {
210
- color: var(
211
- --_ctm-mob-dn-gy-wt-se-cr,
212
- var(--_ctm-tab-dn-gy-wt-se-cr, var(--_ctm-dn-gy-wt-se-cr))
213
- );
214
- font-family: var(
215
- --_ctm-mob-dn-gy-wt-se-ft-fy,
216
- var(--_ctm-tab-dn-gy-wt-se-ft-fy, var(--_ctm-dn-gy-wt-se-ft-fy))
217
- );
218
- font-size: var(
219
- --_ctm-mob-dn-gy-wt-se-ft-se,
220
- var(--_ctm-tab-dn-gy-wt-se-ft-se, var(--_ctm-dn-gy-wt-se-ft-se))
221
- );
222
- font-weight: var(
223
- --_ctm-mob-dn-gy-wt-se-ft-wt,
224
- var(--_ctm-tab-dn-gy-wt-se-ft-wt, var(--_ctm-dn-gy-wt-se-ft-wt))
225
- );
226
- font-style: var(
227
- --_ctm-mob-dn-gy-wt-se-ft-se-ic,
228
- var(--_ctm-tab-dn-gy-wt-se-ft-se-ic, var(--_ctm-dn-gy-wt-se-ft-se-ic))
229
- );
230
- text-align: var(
231
- --_ctm-mob-dn-gy-wt-se-tt-an,
232
- var(--_ctm-tab-dn-gy-wt-se-tt-an, var(--_ctm-dn-gy-wt-se-tt-an))
233
- );
234
- letter-spacing: var(
235
- --_ctm-mob-dn-gy-wt-se-lr-sg,
236
- var(--_ctm-tab-dn-gy-wt-se-lr-sg, var(--_ctm-dn-gy-wt-se-lr-sg))
237
- );
238
- line-height: var(
239
- --_ctm-mob-dn-gy-wt-se-le-ht,
240
- var(--_ctm-tab-dn-gy-wt-se-le-ht, var(--_ctm-dn-gy-wt-se-le-ht))
241
- );
242
- text-decoration: var(
243
- --_ctm-mob-dn-gy-wt-se-ue,
244
- var(--_ctm-tab-dn-gy-wt-se-ue, var(--_ctm-dn-gy-wt-se-ue))
245
- );
246
- text-transform: var(
247
- --_ctm-mob-dn-gy-wt-se-tt-tm,
248
- var(--_ctm-tab-dn-gy-wt-se-tt-tm, var(--_ctm-dn-gy-wt-se-tt-tm, none))
249
- );
250
- word-wrap: var(
251
- --_ctm-mob-dn-gy-wt-se-wd-wp,
252
- var(--_ctm-tab-dn-gy-wt-se-wd-wp, var(--_ctm-dn-gy-wt-se-wd-wp, normal))
253
- );
254
- word-break: var(
255
- --_ctm-mob-dn-gy-wt-se-wd-bk,
256
- var(--_ctm-tab-dn-gy-wt-se-wd-bk, var(--_ctm-dn-gy-wt-se-wd-bk, normal))
257
- );
258
-
259
- // Text Overflow toggle in the typography panel; the line count rides in on
260
- // --_sf-line-clamp from the element.
261
- &#{$overflowSelector} {
262
- @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
263
- }
264
- }
265
-
266
- & p {
267
- color: var(
268
- --_ctm-mob-dn-gy-wt-se-cr-dc,
269
- var(--_ctm-tab-dn-gy-wt-se-cr-dc, var(--_ctm-dn-gy-wt-se-cr-dc))
270
- );
271
- font-family: var(
272
- --_ctm-mob-dn-gy-wt-se-ft-fy-dc,
273
- var(--_ctm-tab-dn-gy-wt-se-ft-fy-dc, var(--_ctm-dn-gy-wt-se-ft-fy-dc))
274
- );
275
- font-size: var(
276
- --_ctm-mob-dn-gy-wt-se-ft-se-dc,
277
- var(--_ctm-tab-dn-gy-wt-se-ft-se-dc, var(--_ctm-dn-gy-wt-se-ft-se-dc))
278
- );
279
- font-weight: var(
280
- --_ctm-mob-dn-gy-wt-se-ft-wt-dc,
281
- var(--_ctm-tab-dn-gy-wt-se-ft-wt-dc, var(--_ctm-dn-gy-wt-se-ft-wt-dc))
282
- );
283
- font-style: var(
284
- --_ctm-mob-dn-gy-wt-se-ft-se-ic-dc,
285
- var(--_ctm-tab-dn-gy-wt-se-ft-se-ic-dc, var(--_ctm-dn-gy-wt-se-ft-se-ic-dc))
286
- );
287
- text-align: var(
288
- --_ctm-mob-dn-gy-wt-se-tt-an-dc,
289
- var(--_ctm-tab-dn-gy-wt-se-tt-an-dc, var(--_ctm-dn-gy-wt-se-tt-an-dc))
290
- );
291
- letter-spacing: var(
292
- --_ctm-mob-dn-gy-wt-se-lr-sg-dc,
293
- var(--_ctm-tab-dn-gy-wt-se-lr-sg-dc, var(--_ctm-dn-gy-wt-se-lr-sg-dc))
294
- );
295
- line-height: var(
296
- --_ctm-mob-dn-gy-wt-se-le-ht-dc,
297
- var(--_ctm-tab-dn-gy-wt-se-le-ht-dc, var(--_ctm-dn-gy-wt-se-le-ht-dc))
298
- );
299
- text-decoration: var(
300
- --_ctm-mob-dn-gy-wt-se-ue-dc,
301
- var(--_ctm-tab-dn-gy-wt-se-ue-dc, var(--_ctm-dn-gy-wt-se-ue-dc))
302
- );
303
- text-transform: var(
304
- --_ctm-mob-dn-gy-wt-se-tt-tm-dc,
305
- var(--_ctm-tab-dn-gy-wt-se-tt-tm-dc, var(--_ctm-dn-gy-wt-se-tt-tm-dc, none))
306
- );
307
- word-wrap: var(
308
- --_ctm-mob-dn-gy-wt-se-wd-wp-dc,
309
- var(--_ctm-tab-dn-gy-wt-se-wd-wp-dc, var(--_ctm-dn-gy-wt-se-wd-wp-dc, normal))
310
- );
311
- word-break: var(
312
- --_ctm-mob-dn-gy-wt-se-wd-bk-dc,
313
- var(--_ctm-tab-dn-gy-wt-se-wd-bk-dc, var(--_ctm-dn-gy-wt-se-wd-bk-dc, normal))
314
- );
315
-
316
- &#{$overflowSelector} {
317
- @include restrictToLinesShow(#{var(--_sf-line-clamp-desc, 1)});
318
- }
319
- }
320
-
321
- // h3 {
322
- // margin-bottom: var(--_mb-4);
323
- // }
324
- }
325
- }
326
-
327
- &[data-text-position="top"] {
328
- .gallery-slider-element {
329
- flex-direction: column;
330
- }
331
- }
332
- &[data-text-position="bottom"] {
333
- .gallery-slider-element {
334
- flex-direction: column-reverse;
335
- }
336
- }
337
- // Gallery Text and Item Alignment places the text container horizontally when
338
- // it is stacked above/below the gallery — only visible once its width is under
339
- // 100%. Left/right positions use [data-widget-alignment] for the cross axis.
340
- &:not([data-text-position="left"]):not([data-text-position="right"]) {
341
- &[data-text-alignment="left"] .gallery-header {
342
- margin-right: auto;
343
- }
344
- &[data-text-alignment="center"] .gallery-header {
345
- margin-inline: auto;
346
- }
347
- &[data-text-alignment="right"] .gallery-header {
348
- margin-left: auto;
349
- }
350
- }
351
-
352
- &[data-text-position="left"] {
353
- .gallery-slider-element {
354
- flex-direction: row;
355
- }
356
- // Child combinator: as a plain descendant this also matched the per-item captions
357
- // inside the slides, so the widget's text position resized those too.
358
- .gallery-slider-element > .gallery-header {
359
- // Beside the slider, Text Container Width is a ceiling rather than a fixed width
360
- // (what the schema comment describes). It is always emitted as 100%, so used as
361
- // `width` it made the header's flex basis the whole row: no free space for the
362
- // slider to grow into and no overflow to shrink anyone, leaving the slider 0px.
363
- width: fit-content;
364
- max-width: prepareMediaVariable(--_ctm-dn-gy-wt-lt-tt-cr-wh, 100%);
365
- min-width: 0;
366
- flex-shrink: 1;
367
- height: 100%;
368
- }
369
- // The slider takes whatever the caption leaves.
370
- .gallery-slider-element > .embla {
371
- flex: 1 1 0;
372
- min-width: 0;
373
- }
374
- &[data-widget-alignment="top"] {
375
- .gallery-slider-element {
376
- align-items: flex-start;
377
- }
378
- .gallery-header {
379
- justify-content: flex-start;
380
- }
381
- }
382
- &[data-widget-alignment="center"] {
383
- .gallery-slider-element {
384
- align-items: center;
385
- }
386
- .gallery-header {
387
- justify-content: center;
388
- }
389
- }
390
- &[data-widget-alignment="bottom"] {
391
- .gallery-slider-element {
392
- align-items: flex-end;
393
- }
394
- .gallery-header {
395
- justify-content: flex-end;
396
- }
397
- }
398
- }
399
- &[data-text-position="right"] {
400
- // Same pair as the "left" block above — see the comments there.
401
- .gallery-slider-element > .gallery-header {
402
- width: fit-content;
403
- max-width: prepareMediaVariable(--_ctm-dn-gy-wt-lt-tt-cr-wh, 100%);
404
- min-width: 0;
405
- flex-shrink: 1;
406
- height: 100%;
407
- }
408
- .gallery-slider-element > .embla {
409
- flex: 1 1 0;
410
- min-width: 0;
411
- }
412
- .gallery-slider-element {
413
- flex-direction: row-reverse;
414
- }
415
-
416
- &[data-widget-alignment="top"] {
417
- .gallery-slider-element {
418
- align-items: flex-start;
419
- }
420
- .gallery-header {
421
- justify-content: flex-start;
422
- }
423
- }
424
- &[data-widget-alignment="center"] {
425
- .gallery-slider-element {
426
- align-items: center;
427
- }
428
- .gallery-header {
429
- justify-content: center;
430
- }
431
- }
432
- &[data-widget-alignment="bottom"] {
433
- .gallery-slider-element {
434
- align-items: flex-end;
435
- }
436
- .gallery-header {
437
- justify-content: flex-end;
438
- }
439
- }
440
- }
441
- .embla {
442
- width: 100%;
443
- height: 100%;
444
- position: relative;
445
- display: flex;
446
- flex-direction: column;
447
- // overflow: hidden;
448
-
449
- .embla__viewport {
450
- width: 100%;
451
- height: 100%;
452
- position: relative;
453
- display: flex;
454
- flex-direction: column;
455
-
456
- overflow: hidden;
457
-
458
- .embla__container {
459
- width: 100%;
460
- height: 100%;
461
- display: grid;
462
- grid-template-rows: 100%;
463
-
464
- grid-template-columns: repeat(
465
- var(--_ctm-mob-lt-is-pr-se, var(--_ctm-tab-lt-is-pr-se, var(--_ctm-lt-is-pr-se))),
466
- calc(
467
- 100% /
468
- var(--_ctm-mob-lt-is-pr-se, var(--_ctm-tab-lt-is-pr-se, var(--_ctm-lt-is-pr-se)))
469
- )
470
- );
471
-
472
- grid-auto-flow: column;
473
- gap: var(--_ctm-mob-lt-im-gp, var(--_ctm-tab-lt-im-gp, var(--_ctm-lt-im-gp)));
474
-
475
- &[data-control-type="Bottom"][data-slider-control="Arrows"] {
476
- height: calc(
477
- 100% - calc(
478
- var(
479
- --_ctm-mob-dn-pn-as-aw-se,
480
- var(--_ctm-tab-dn-pn-as-aw-se, var(--_ctm-dn-pn-as-aw-se))
481
- ) +
482
- 10px
483
- )
484
- );
485
- }
486
-
487
- &[data-control-type="Bottom"][data-slider-control="Pagination Line"] {
488
- height: calc(
489
- 100% - calc(
490
- var(
491
- --_ctm-mob-dn-pn-le-le-ht,
492
- var(--_ctm-tab-dn-pn-le-le-ht, var(--_ctm-dn-pn-le-le-ht))
493
- ) +
494
- 20px
495
- )
496
- );
497
- }
498
-
499
- &[data-control-type="Bottom"][data-slider-control="Dots"] {
500
- height: calc(
501
- 100% - calc(
502
- var(
503
- --_ctm-mob-dn-pn-ds-dt-se,
504
- var(--_ctm-tab-dn-pn-ds-dt-se, var(--_ctm-dn-pn-ds-dt-se))
505
- ) +
506
- 20px
507
- )
508
- );
509
- }
510
-
511
- .embla__slide {
512
- width: 100%;
513
- height: 100%;
514
- // Grid item: without this it cannot shrink below its longest word, so a long
515
- // caption widens the whole track past the widget.
516
- min-width: 0;
517
- }
518
- }
519
- }
520
- &:not([data-display-style="Column"]) {
521
- .embla__container {
522
- grid-auto-columns: calc(
523
- 100% / var(--_ctm-mob-lt-is-pr-se, var(--_ctm-tab-lt-is-pr-se, var(--_ctm-lt-is-pr-se)))
524
- );
525
- }
526
- }
527
-
528
- &[data-display-style="Grid"][data-scroll-direction="Vertical"] {
529
- // overflow: unset;
530
-
531
- .embla__viewport {
532
- overflow: unset;
533
- height: 80%;
534
- flex-grow: 1;
535
- &:not([data-is-builder-type="true"]) {
536
- height: var(--_ctm-mob-height, var(--_ctm-tab-height, var(--_ctm-height)));
537
- }
538
-
539
- .embla__container {
540
- overflow: unset;
541
- height: var(--_ctm-mob-height, var(--_ctm-tab-height, var(--_ctm-height)));
542
- // min-height: var(--_ctm-mob-height, var(--_ctm-tab-height, var(--_ctm-height)));
543
-
544
- grid-template-columns: repeat(var(--_ctm-lt-is-pr-rw), 1fr);
545
- grid-template-rows: unset;
546
-
547
- grid-auto-flow: row;
548
-
549
- &[data-overflow-hidden="true"] {
550
- overflow: hidden;
551
- }
552
- }
553
- }
554
- }
555
-
556
- &[data-display-style="Grid"][data-scroll-direction="Horizontal"] {
557
- .embla__viewport {
558
- .embla__container {
559
- grid-template-rows: repeat(
560
- var(--_ctm-mob-lt-is-pr-cn, var(--_ctm-tab-lt-is-pr-cn, var(--_ctm-lt-is-pr-cn))),
561
- calc(
562
- 100% /
563
- var(--_ctm-mob-lt-is-pr-cn, var(--_ctm-tab-lt-is-pr-cn, var(--_ctm-lt-is-pr-cn)))
564
- )
565
- );
566
- }
567
- }
568
- }
569
-
570
- &[data-display-style="Rows"] {
571
- // overflow: unset;
572
-
573
- .embla__viewport {
574
- overflow: unset;
575
- height: 80%;
576
- flex-grow: 1;
577
-
578
- &:not([data-is-builder-type="true"]) {
579
- height: var(--_ctm-height);
580
- }
581
-
582
- .embla__container {
583
- // overflow: hidden;
584
- height: var(--_ctm-height);
585
- // min-height: var(--_ctm-height);
586
-
587
- grid-template-columns: repeat(1, 1fr);
588
- grid-template-rows: unset;
589
- grid-auto-flow: row;
590
- .embla__slide {
591
- aspect-ratio: 7 / 2;
592
- }
593
- }
594
- }
595
- }
596
-
597
- &[data-display-style="Column"] {
598
- // overflow: unset;
599
-
600
- .embla__viewport {
601
- .embla__container {
602
- display: flex;
603
- .embla__slide {
604
- width: unset;
605
- height: 100%;
606
- aspect-ratio: 1 / 2;
607
- }
608
- }
609
- }
610
- }
611
- &[data-display-style="Masonry"] {
612
- // overflow: unset;
613
-
614
- .embla__viewport {
615
- overflow: hidden;
616
- height: 80%;
617
- flex-grow: 1;
618
-
619
- &:not([data-is-builder-type="true"]) {
620
- height: var(--_ctm-height);
621
- }
622
-
623
- .embla__container {
624
- overflow: unset;
625
- display: block;
626
-
627
- column-count: var(
628
- --_ctm-mob-lt-is-pr-rw,
629
- var(--_ctm-tab-lt-is-pr-rw, var(--_ctm-lt-is-pr-rw))
630
- );
631
- gap: unset;
632
-
633
- column-gap: var(--_ctm-mob-lt-im-gp, var(--_ctm-tab-lt-im-gp, var(--_ctm-lt-im-gp)));
634
-
635
- height: auto;
636
-
637
- .embla__slide {
638
- margin-bottom: var(
639
- --_ctm-mob-lt-im-gp,
640
- var(--_ctm-tab-lt-im-gp, var(--_ctm-lt-im-gp))
641
- );
642
- height: unset;
643
-
644
- .gallery__slide {
645
- height: unset;
646
- }
647
- }
648
- }
649
- }
650
- }
651
-
652
- .arrow-navigation {
653
- display: flex;
654
- position: absolute;
655
- top: 50%;
656
- left: 50%;
657
- width: 100%;
658
- justify-content: space-between;
659
- transform: translate(-50%, -50%);
660
- // padding-left: 20px;
661
-
662
- &[data-control-type="Bottom-Overflow"] {
663
- transform: translateX(-50%);
664
- width: 100%;
665
- justify-content: center;
666
- gap: 12px;
667
- top: unset;
668
- bottom: 6px;
669
- }
670
- &[data-control-type="Bottom"] {
671
- transform: unset;
672
- position: static;
673
- width: 100%;
674
- justify-content: center;
675
- gap: 12px;
676
- margin-top: 10px;
677
- }
678
- }
679
- :is(.left-button, .right-button) {
680
- // background: prepareMediaVariable(--_ctm-dn-pn-as-bd-cr);
681
- @include BgColorLighter(var(--_ctm-dn-pn-as-bd-cr), 10%);
682
-
683
- &:not(:disabled):hover {
684
- @include BgColorLighter(var(--_ctm-dn-pn-as-bd-cr), 20%);
685
- }
686
- }
687
- .left-button {
688
- padding: 10px;
689
- border-radius: 50%;
690
- border: none;
691
- width: var(
692
- --_ctm-mob-dn-pn-as-aw-se,
693
- var(--_ctm-tab-dn-pn-as-aw-se, var(--_ctm-dn-pn-as-aw-se))
694
- );
695
- height: var(
696
- --_ctm-mob-dn-pn-as-aw-se,
697
- var(--_ctm-tab-dn-pn-as-aw-se, var(--_ctm-dn-pn-as-aw-se))
698
- );
699
-
700
- display: flex;
701
- align-items: center;
702
- justify-content: center;
703
- cursor: pointer;
704
- outline: none;
705
- margin-left: 12px;
706
- &:disabled {
707
- & svg {
708
- path {
709
- stroke: rgb(192, 192, 192);
710
- }
711
- }
712
- }
713
- }
714
- .right-button {
715
- border-radius: 50%;
716
- border: none;
717
- width: var(
718
- --_ctm-mob-dn-pn-as-aw-se,
719
- var(--_ctm-tab-dn-pn-as-aw-se, var(--_ctm-dn-pn-as-aw-se))
720
- );
721
- height: var(
722
- --_ctm-mob-dn-pn-as-aw-se,
723
- var(--_ctm-tab-dn-pn-as-aw-se, var(--_ctm-dn-pn-as-aw-se))
724
- );
725
-
726
- display: flex;
727
- align-items: center;
728
- justify-content: center;
729
- cursor: pointer;
730
- outline: none;
731
- margin-right: 12px;
732
- padding: 10px;
733
-
734
- &:disabled {
735
- & svg {
736
- path {
737
- stroke: rgb(192, 192, 192);
738
- }
739
- }
740
- }
741
- }
742
- .icon {
743
- display: flex;
744
-
745
- svg {
746
- width: calc(
747
- var(
748
- --_ctm-mob-dn-pn-as-aw-se,
749
- var(--_ctm-tab-dn-pn-as-aw-se, var(--_ctm-dn-pn-as-aw-se))
750
- ) *
751
- 0.5
752
- );
753
- height: calc(
754
- var(
755
- --_ctm-mob-dn-pn-as-aw-se,
756
- var(--_ctm-tab-dn-pn-as-aw-se, var(--_ctm-dn-pn-as-aw-se))
757
- ) *
758
- 0.5
759
- );
760
-
761
- path {
762
- stroke: var(
763
- --_ctm-mob-dn-pn-as-aw-cr,
764
- var(--_ctm-tab-dn-pn-as-aw-cr, var(--_ctm-dn-pn-as-aw-cr))
765
- );
766
- }
767
- }
768
- }
769
-
770
- &[data-control-type="Side"] {
771
- .left-button,
772
- .right-button {
773
- // background-color: transparent;
774
- }
775
- }
776
- &[data-background-shape="Round"] {
777
- .left-button,
778
- .right-button {
779
- // background-color: #f2f5f5;
780
- // box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
781
- }
782
- }
783
- &[data-background-shape="None"] {
784
- .left-button,
785
- .right-button {
786
- border-radius: 0;
787
- }
788
- }
789
- &[data-background-shape="Square"] {
790
- .left-button,
791
- .right-button {
792
- border-radius: 4px;
793
- }
794
- }
795
-
796
- &[data-control-type="Side"] {
797
- .embla__viewport {
798
- width: calc(100% - 120px);
799
- margin-inline: auto;
800
- }
801
- .left-button {
802
- position: absolute;
803
- left: 0;
804
- top: 50%;
805
- transform: translateY(-50%);
806
- }
807
- .right-button {
808
- position: absolute;
809
-
810
- right: 0;
811
- top: 50%;
812
- transform: translateY(-50%);
813
- }
814
- }
815
-
816
- &[data-display-style="Thumbnail"] {
817
- .embla__viewport {
818
- flex: 1;
819
- min-height: 0;
820
- height: auto;
821
- }
822
- }
823
-
824
- &[data-thumbnail-placement="top"] {
825
- flex-direction: column-reverse;
826
- }
827
- &[data-thumbnail-placement="bottom"] {
828
- flex-direction: column;
829
- }
830
- &[data-thumbnail-placement="left"] {
831
- flex-direction: row-reverse;
832
-
833
- .embla__thumbs {
834
- width: var(--_ctm-mob-lt-tl-wh, var(--_ctm-tab-lt-tl-wh, var(--_ctm-lt-tl-wh)));
835
- height: 100%;
836
- flex-direction: column;
837
- margin-top: 0;
838
- margin-right: var(
839
- --_ctm-mob-lt-sr-ad-tl-gp,
840
- var(--_ctm-tab-lt-sr-ad-tl-gp, var(--_ctm-lt-sr-ad-tl-gp))
841
- );
842
-
843
- & .embla__thumbs__container {
844
- flex-direction: column;
845
- height: 100%;
846
- justify-content: prepareMediaVariable(--_ctm-lt-an-is);
847
- }
848
-
849
- .thumb-prev-button,
850
- .thumb-next-button {
851
- span {
852
- transform: rotate(90deg);
853
- }
854
- }
855
-
856
- .embla__thumbs__viewport {
857
- min-height: 0;
858
- }
859
- }
860
- }
861
- &[data-thumbnail-placement="right"] {
862
- flex-direction: row;
863
- .embla__thumbs {
864
- width: var(--_ctm-mob-lt-tl-wh, var(--_ctm-tab-lt-tl-wh, var(--_ctm-lt-tl-wh)));
865
- height: 100%;
866
- flex-direction: column;
867
- margin-top: 0;
868
- margin-left: var(
869
- --_ctm-mob-lt-sr-ad-tl-gp,
870
- var(--_ctm-tab-lt-sr-ad-tl-gp, var(--_ctm-lt-sr-ad-tl-gp))
871
- );
872
-
873
- & .embla__thumbs__container {
874
- flex-direction: column;
875
- height: 100%;
876
- justify-content: prepareMediaVariable(--_ctm-lt-an-is);
877
- }
878
-
879
- .thumb-prev-button,
880
- .thumb-next-button {
881
- span {
882
- transform: rotate(90deg);
883
- }
884
- }
885
-
886
- .embla__thumbs__viewport {
887
- min-height: 0;
888
- }
889
- }
890
- }
891
- .embla__dots {
892
- display: flex;
893
- flex-wrap: wrap;
894
- justify-content: center;
895
- align-items: center;
896
- margin-right: calc((2.6rem - 1.4rem) / 2 * -1);
897
- gap: 6px;
898
- margin-top: 16px;
899
-
900
- &[data-control-type="Bottom-Overflow"] {
901
- position: absolute;
902
- bottom: 10px;
903
- left: 50%;
904
- transform: translateX(-50%);
905
- width: 75%;
906
- }
907
- // Pagination Dots (design > Pagination Dots). Border and shadow go on the
908
- // ::after overlay — that pseudo-element is the visible dot, the button behind it
909
- // is only the hit area. There is deliberately no radius control: dots stay
910
- // circles, so the 50% is fixed. The Pagination Line variant overrides these.
911
- &[data-dots-show-border="false"] {
912
- --_show-pn-ds-border: none;
913
- }
914
- // A transparent shadow rather than `none`, so the selected dot can list this
915
- // next to its inset ring without the whole declaration going invalid.
916
- &[data-dots-show-shadow="false"] {
917
- --_show-pn-ds-shadow: 0 0 0 0 transparent;
918
- }
919
-
920
- $pnDsShadow: var(
921
- --_show-pn-ds-shadow,
922
- var(--_ctm-mob-dn-pn-ds-sw-ae, var(--_ctm-tab-dn-pn-ds-sw-ae, var(--_ctm-dn-pn-ds-sw-ae)))
923
- var(
924
- --_ctm-mob-dn-pn-ds-sw-br,
925
- var(--_ctm-tab-dn-pn-ds-sw-br, var(--_ctm-dn-pn-ds-sw-br))
926
- )
927
- var(
928
- --_ctm-mob-dn-pn-ds-sw-sd,
929
- var(--_ctm-tab-dn-pn-ds-sw-sd, var(--_ctm-dn-pn-ds-sw-sd))
930
- )
931
- var(
932
- --_ctm-mob-dn-pn-ds-sw-cr,
933
- var(--_ctm-tab-dn-pn-ds-sw-cr, var(--_ctm-dn-pn-ds-sw-cr))
934
- )
935
- );
936
-
937
- .embla__dot {
938
- -webkit-tap-highlight-color: rgba(var(--text-high-contrast-rgb-value), 0.5);
939
- -webkit-appearance: none;
940
- appearance: none;
941
- background-color: var(
942
- --_ctm-mob-dn-pn-ds-or-dt-cr,
943
- var(--_ctm-tab-dn-pn-ds-or-dt-cr, var(--_ctm-dn-pn-ds-or-dt-cr))
944
- );
945
-
946
- touch-action: manipulation;
947
- display: inline-flex;
948
- text-decoration: none;
949
- cursor: pointer;
950
- border: 0;
951
- padding: 0;
952
- margin: 0;
953
- // width: 0.6rem;
954
- // height: 0.6rem;
955
- width: var(
956
- --_ctm-mob-dn-pn-ds-dt-se,
957
- var(--_ctm-tab-dn-pn-ds-dt-se, var(--_ctm-dn-pn-ds-dt-se))
958
- );
959
- height: var(
960
- --_ctm-mob-dn-pn-ds-dt-se,
961
- var(--_ctm-tab-dn-pn-ds-dt-se, var(--_ctm-dn-pn-ds-dt-se))
962
- );
963
-
964
- display: flex;
965
- align-items: center;
966
- justify-content: center;
967
- border-radius: 50%;
968
- }
969
- .embla__dot:after {
970
- // box-shadow: inset 0 0 0 0.2rem var(--detail-medium-contrast);
971
- width: var(
972
- --_ctm-mob-dn-pn-ds-dt-se,
973
- var(--_ctm-tab-dn-pn-ds-dt-se, var(--_ctm-dn-pn-ds-dt-se))
974
- );
975
- height: var(
976
- --_ctm-mob-dn-pn-ds-dt-se,
977
- var(--_ctm-tab-dn-pn-ds-dt-se, var(--_ctm-dn-pn-ds-dt-se))
978
- );
979
-
980
- // The overlay is sized to the button, so the border has to grow inwards or the
981
- // dot would render larger than its configured Dot Size.
982
- box-sizing: border-box;
983
- border-color: var(
984
- --_show-pn-ds-border,
985
- var(
986
- --_ctm-mob-dn-pn-ds-br-cr,
987
- var(--_ctm-tab-dn-pn-ds-br-cr, var(--_ctm-dn-pn-ds-br-cr))
988
- )
989
- );
990
- border-style: var(
991
- --_show-pn-ds-border,
992
- var(
993
- --_ctm-mob-dn-pn-ds-br-se,
994
- var(--_ctm-tab-dn-pn-ds-br-se, var(--_ctm-dn-pn-ds-br-se))
995
- )
996
- );
997
- border-width: var(
998
- --_show-pn-ds-border,
999
- var(
1000
- --_ctm-mob-dn-pn-ds-br-wh,
1001
- var(--_ctm-tab-dn-pn-ds-br-wh, var(--_ctm-dn-pn-ds-br-wh))
1002
- )
1003
- );
1004
- box-shadow: $pnDsShadow;
1005
-
1006
- border-radius: 50%;
1007
- display: flex;
1008
- align-items: center;
1009
- content: "";
1010
- }
1011
- .embla__dot--selected:after {
1012
- // Keeps the existing 1px ring on the active dot and still honours a configured
1013
- // shadow — this rule would otherwise shadow the one above it entirely.
1014
- box-shadow: $pnDsShadow;
1015
- background-color: var(
1016
- --_ctm-mob-dn-pn-ds-ct-dt-cr,
1017
- var(--_ctm-tab-dn-pn-ds-ct-dt-cr, var(--_ctm-dn-pn-ds-ct-dt-cr))
1018
- );
1019
- }
1020
- // Pagination Line (design > Pagination Line). Border, border radius and shadow
1021
- // sit on the line itself. The two toggles arrive as data attributes from the
1022
- // element; `none` short-circuits the whole var chain the way Item Style does.
1023
- // The 6px radius fallback keeps pages saved before Border Radius existed
1024
- // looking as they did.
1025
- &[data-slider-control="Pagination Line"] {
1026
- &[data-line-show-border="false"] {
1027
- --_show-pn-le-border: none;
1028
- }
1029
- &[data-line-show-shadow="false"] {
1030
- --_show-pn-le-shadow: none;
1031
- }
1032
-
1033
- .embla__dot {
1034
- width: var(
1035
- --_ctm-mob-dn-pn-le-le-wh,
1036
- var(--_ctm-tab-dn-pn-le-le-wh, var(--_ctm-dn-pn-le-le-wh))
1037
- );
1038
- height: var(
1039
- --_ctm-mob-dn-pn-le-le-ht,
1040
- var(--_ctm-tab-dn-pn-le-le-ht, var(--_ctm-dn-pn-le-le-ht))
1041
- );
1042
- // Draw the border inside the configured Line Width / Height rather than
1043
- // adding to it, so the track stays the size set in the panel.
1044
- box-sizing: border-box;
1045
- background-color: var(
1046
- --_ctm-mob-dn-pn-le-or-le-cr,
1047
- var(--_ctm-tab-dn-pn-le-or-le-cr, var(--_ctm-dn-pn-le-or-le-cr))
1048
- );
1049
-
1050
- border-color: var(
1051
- --_show-pn-le-border,
1052
- var(
1053
- --_ctm-mob-dn-pn-le-br-cr,
1054
- var(--_ctm-tab-dn-pn-le-br-cr, var(--_ctm-dn-pn-le-br-cr))
1055
- )
1056
- );
1057
- border-style: var(
1058
- --_show-pn-le-border,
1059
- var(
1060
- --_ctm-mob-dn-pn-le-br-se,
1061
- var(--_ctm-tab-dn-pn-le-br-se, var(--_ctm-dn-pn-le-br-se))
1062
- )
1063
- );
1064
- border-width: var(
1065
- --_show-pn-le-border,
1066
- var(
1067
- --_ctm-mob-dn-pn-le-br-wh,
1068
- var(--_ctm-tab-dn-pn-le-br-wh, var(--_ctm-dn-pn-le-br-wh))
1069
- )
1070
- );
1071
- border-radius: var(
1072
- --_ctm-mob-dn-pn-le-br-rs,
1073
- var(--_ctm-tab-dn-pn-le-br-rs, var(--_ctm-dn-pn-le-br-rs, 6px))
1074
- );
1075
-
1076
- box-shadow: var(
1077
- --_show-pn-le-shadow,
1078
- var(
1079
- --_ctm-mob-dn-pn-le-sw-ae,
1080
- var(--_ctm-tab-dn-pn-le-sw-ae, var(--_ctm-dn-pn-le-sw-ae))
1081
- )
1082
- var(
1083
- --_ctm-mob-dn-pn-le-sw-br,
1084
- var(--_ctm-tab-dn-pn-le-sw-br, var(--_ctm-dn-pn-le-sw-br))
1085
- )
1086
- var(
1087
- --_ctm-mob-dn-pn-le-sw-sd,
1088
- var(--_ctm-tab-dn-pn-le-sw-sd, var(--_ctm-dn-pn-le-sw-sd))
1089
- )
1090
- var(
1091
- --_ctm-mob-dn-pn-le-sw-cr,
1092
- var(--_ctm-tab-dn-pn-le-sw-cr, var(--_ctm-dn-pn-le-sw-cr))
1093
- )
1094
- );
1095
- }
1096
-
1097
- // The Pagination Dots rules above style `.embla__dot:after` unscoped, so the
1098
- // line's overlay would otherwise inherit the Dots' border, circular radius and
1099
- // shadow — a second, wrongly-shaped outline on top of the line's own border.
1100
- // The line carries its border on the track, so the overlay just fills whatever
1101
- // the border leaves.
1102
- .embla__dot:after {
1103
- width: 100%;
1104
- height: 100%;
1105
- border: 0;
1106
- box-shadow: none;
1107
- border-radius: inherit;
1108
- }
1109
-
1110
- .embla__dot--selected:after {
1111
- background-color: var(
1112
- --_ctm-mob-dn-pn-le-ct-le-cr,
1113
- var(--_ctm-tab-dn-pn-le-ct-le-cr, var(--_ctm-dn-pn-le-ct-le-cr))
1114
- );
1115
- }
1116
- }
1117
- }
1118
-
1119
- .embla__thumbs {
1120
- width: 100%;
1121
- height: var(--_ctm-mob-lt-tl-ht, var(--_ctm-tab-lt-tl-ht, var(--_ctm-lt-tl-ht)));
1122
- margin-top: var(
1123
- --_ctm-mob-lt-sr-ad-tl-gp,
1124
- var(--_ctm-tab-lt-sr-ad-tl-gp, var(--_ctm-lt-sr-ad-tl-gp))
1125
- );
1126
-
1127
- position: relative;
1128
- display: flex;
1129
- flex-direction: row;
1130
- align-items: center;
1131
- overflow: hidden;
1132
-
1133
- // Thumbnail arrow shared styles
1134
- .thumb-prev-button,
1135
- .thumb-next-button {
1136
- flex-shrink: 0;
1137
- padding: 6px;
1138
- border-radius: 50%;
1139
- border: none;
1140
- cursor: pointer;
1141
- outline: none;
1142
- display: flex;
1143
- align-items: center;
1144
- justify-content: center;
1145
- background-color: transparent;
1146
- z-index: 1;
1147
-
1148
- width: var(
1149
- --_ctm-mob-dn-tl-as-aw-se,
1150
- var(--_ctm-tab-dn-tl-as-aw-se, var(--_ctm-dn-tl-as-aw-se, 30px))
1151
- );
1152
- height: var(
1153
- --_ctm-mob-dn-tl-as-aw-se,
1154
- var(--_ctm-tab-dn-tl-as-aw-se, var(--_ctm-dn-tl-as-aw-se, 30px))
1155
- );
1156
-
1157
- span {
1158
- display: flex;
1159
- svg {
1160
- width: calc(
1161
- var(
1162
- --_ctm-mob-dn-tl-as-aw-se,
1163
- var(--_ctm-tab-dn-tl-as-aw-se, var(--_ctm-dn-tl-as-aw-se, 30px))
1164
- ) *
1165
- 0.5
1166
- );
1167
- height: calc(
1168
- var(
1169
- --_ctm-mob-dn-tl-as-aw-se,
1170
- var(--_ctm-tab-dn-tl-as-aw-se, var(--_ctm-dn-tl-as-aw-se, 30px))
1171
- ) *
1172
- 0.5
1173
- );
1174
- path {
1175
- stroke: var(
1176
- --_ctm-mob-dn-tl-as-aw-cr,
1177
- var(--_ctm-tab-dn-tl-as-aw-cr, var(--_ctm-dn-tl-as-aw-cr))
1178
- );
1179
- }
1180
- }
1181
- }
1182
-
1183
- &:disabled {
1184
- opacity: 0.3;
1185
- cursor: not-allowed;
1186
- }
1187
- }
1188
-
1189
- &[data-background-shape="Round"] {
1190
- .thumb-prev-button,
1191
- .thumb-next-button {
1192
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
1193
- &:not(:disabled):hover {
1194
- @include BgColorLighter(var(--_ctm-dn-tl-as-bd-cr), 5%);
1195
- }
1196
- }
1197
- }
1198
- &[data-background-shape="None"] {
1199
- .thumb-prev-button,
1200
- .thumb-next-button {
1201
- border-radius: 0;
1202
- }
1203
- }
1204
- &[data-background-shape="Square"] {
1205
- .thumb-prev-button,
1206
- .thumb-next-button {
1207
- border-radius: 4px;
1208
- }
1209
- }
1210
-
1211
- .embla__thumbs__viewport {
1212
- width: 100%;
1213
- height: 100%;
1214
- flex: 1;
1215
- min-width: 0;
1216
- position: relative;
1217
- display: flex;
1218
- flex-direction: column;
1219
-
1220
- overflow: hidden;
1221
- }
1222
- .embla__thumbs__container {
1223
- display: flex;
1224
- flex-direction: row;
1225
- justify-content: prepareMediaVariable(--_ctm-lt-an-is);
1226
- gap: var(--_ctm-mob-lt-tl-sg, var(--_ctm-tab-lt-tl-sg, var(--_ctm-lt-tl-sg)));
1227
-
1228
- width: 100%;
1229
-
1230
- .embla__thumbs__slide {
1231
- flex-shrink: 0;
1232
- box-sizing: border-box;
1233
- max-width: var(--_ctm-mob-lt-tl-wh, var(--_ctm-tab-lt-tl-wh, var(--_ctm-lt-tl-wh)));
1234
- height: var(--_ctm-mob-lt-tl-ht, var(--_ctm-tab-lt-tl-ht, var(--_ctm-lt-tl-ht)));
1235
- cursor: pointer;
1236
- overflow: hidden;
1237
- padding: var(--_ctm-mob-lt-tl-pg, var(--_ctm-tab-lt-tl-pg, var(--_ctm-lt-tl-pg)));
1238
-
1239
- // thumbnailStyle - hoverState
1240
- &:hover {
1241
- --_sf-hr-bd-cr: var(
1242
- --_ctm-mob-dn-tl-se-hr-se-bd-cr,
1243
- var(--_ctm-tab-dn-tl-se-hr-se-bd-cr, var(--_ctm-dn-tl-se-hr-se-bd-cr))
1244
- );
1245
- --_sf-hr-br-cr: var(
1246
- --_ctm-mob-dn-tl-se-hr-se-br-cr,
1247
- var(--_ctm-tab-dn-tl-se-hr-se-br-cr, var(--_ctm-dn-tl-se-hr-se-br-cr))
1248
- );
1249
- --_sf-hr-br-se: var(
1250
- --_ctm-mob-dn-tl-se-hr-se-br-se,
1251
- var(--_ctm-tab-dn-tl-se-hr-se-br-se, var(--_ctm-dn-tl-se-hr-se-br-se))
1252
- );
1253
- --_sf-hr-br-wh: var(
1254
- --_ctm-mob-dn-tl-se-hr-se-br-wh,
1255
- var(--_ctm-tab-dn-tl-se-hr-se-br-wh, var(--_ctm-dn-tl-se-hr-se-br-wh))
1256
- );
1257
- --_sf-hr-br-rs: var(
1258
- --_ctm-mob-dn-tl-se-hr-se-br-rs,
1259
- var(--_ctm-tab-dn-tl-se-hr-se-br-rs, var(--_ctm-dn-tl-se-hr-se-br-rs))
1260
- );
1261
- --_sf-hr-sw-ae: var(
1262
- --_ctm-mob-dn-tl-se-hr-se-sw-ae,
1263
- var(--_ctm-tab-dn-tl-se-hr-se-sw-ae, var(--_ctm-dn-tl-se-hr-se-sw-ae))
1264
- );
1265
- --_sf-hr-sw-br: var(
1266
- --_ctm-mob-dn-tl-se-hr-se-sw-br,
1267
- var(--_ctm-tab-dn-tl-se-hr-se-sw-br, var(--_ctm-dn-tl-se-hr-se-sw-br))
1268
- );
1269
- --_sf-hr-sw-sd: var(
1270
- --_ctm-mob-dn-tl-se-hr-se-sw-sd,
1271
- var(--_ctm-tab-dn-tl-se-hr-se-sw-sd, var(--_ctm-dn-tl-se-hr-se-sw-sd))
1272
- );
1273
- --_sf-hr-sw-cr: var(
1274
- --_ctm-mob-dn-tl-se-hr-se-sw-cr,
1275
- var(--_ctm-tab-dn-tl-se-hr-se-sw-cr, var(--_ctm-dn-tl-se-hr-se-sw-cr))
1276
- );
1277
- }
1278
-
1279
- // thumbnailStyle - defaultState
1280
- background-color: var(
1281
- --_sf-hr-bd-cr,
1282
- prepareMediaVariable(--_ctm-dn-tl-se-dt-se-bd-cr)
1283
- );
1284
- border-color: var(--_sf-hr-br-cr, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-br-cr));
1285
- border-style: var(--_sf-hr-br-se, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-br-se));
1286
- border-width: var(--_sf-hr-br-wh, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-br-wh));
1287
- border-radius: var(--_sf-hr-br-rs, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-br-rs));
1288
- box-shadow: var(--_sf-hr-sw-ae, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-sw-ae))
1289
- var(--_sf-hr-sw-br, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-sw-br))
1290
- var(--_sf-hr-sw-sd, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-sw-sd))
1291
- var(--_sf-hr-sw-cr, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-sw-cr));
1292
-
1293
- // thumbnailStyle - selectedState
1294
- &[data-selected="true"] {
1295
- --_sf-sd-bd-cr: var(
1296
- --_ctm-mob-dn-tl-se-sd-se-bd-cr,
1297
- var(--_ctm-tab-dn-tl-se-sd-se-bd-cr, var(--_ctm-dn-tl-se-sd-se-bd-cr))
1298
- );
1299
- --_sf-sd-br-cr: var(
1300
- --_ctm-mob-dn-tl-se-sd-se-br-cr,
1301
- var(--_ctm-tab-dn-tl-se-sd-se-br-cr, var(--_ctm-dn-tl-se-sd-se-br-cr))
1302
- );
1303
- --_sf-sd-br-se: var(
1304
- --_ctm-mob-dn-tl-se-sd-se-br-se,
1305
- var(--_ctm-tab-dn-tl-se-sd-se-br-se, var(--_ctm-dn-tl-se-sd-se-br-se))
1306
- );
1307
- --_sf-sd-br-wh: var(
1308
- --_ctm-mob-dn-tl-se-sd-se-br-wh,
1309
- var(--_ctm-tab-dn-tl-se-sd-se-br-wh, var(--_ctm-dn-tl-se-sd-se-br-wh))
1310
- );
1311
- --_sf-sd-br-rs: var(
1312
- --_ctm-mob-dn-tl-se-sd-se-br-rs,
1313
- var(--_ctm-tab-dn-tl-se-sd-se-br-rs, var(--_ctm-dn-tl-se-sd-se-br-rs))
1314
- );
1315
- --_sf-sd-sw-ae: var(
1316
- --_ctm-mob-dn-tl-se-sd-se-sw-ae,
1317
- var(--_ctm-tab-dn-tl-se-sd-se-sw-ae, var(--_ctm-dn-tl-se-sd-se-sw-ae))
1318
- );
1319
- --_sf-sd-sw-br: var(
1320
- --_ctm-mob-dn-tl-se-sd-se-sw-br,
1321
- var(--_ctm-tab-dn-tl-se-sd-se-sw-br, var(--_ctm-dn-tl-se-sd-se-sw-br))
1322
- );
1323
- --_sf-sd-sw-sd: var(
1324
- --_ctm-mob-dn-tl-se-sd-se-sw-sd,
1325
- var(--_ctm-tab-dn-tl-se-sd-se-sw-sd, var(--_ctm-dn-tl-se-sd-se-sw-sd))
1326
- );
1327
- --_sf-sd-sw-cr: var(
1328
- --_ctm-mob-dn-tl-se-sd-se-sw-cr,
1329
- var(--_ctm-tab-dn-tl-se-sd-se-sw-cr, var(--_ctm-dn-tl-se-sd-se-sw-cr))
1330
- );
1331
-
1332
- background-color: var(
1333
- --_sf-sd-bd-cr,
1334
- prepareMediaVariable(--_ctm-dn-tl-se-dt-se-bd-cr)
1335
- );
1336
- border-color: var(--_sf-sd-br-cr, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-br-cr));
1337
- border-style: var(--_sf-sd-br-se, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-br-se));
1338
- border-width: var(--_sf-sd-br-wh, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-br-wh));
1339
- border-radius: var(--_sf-sd-br-rs, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-br-rs));
1340
- box-shadow: var(--_sf-sd-sw-ae, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-sw-ae))
1341
- var(--_sf-sd-sw-br, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-sw-br))
1342
- var(--_sf-sd-sw-sd, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-sw-sd))
1343
- var(--_sf-sd-sw-cr, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-sw-cr));
1344
- }
1345
-
1346
- & img {
1347
- width: 100%;
1348
- height: 100%;
1349
- object-fit: cover;
1350
- }
1351
- }
1352
- }
1353
- }
1354
- }
1355
-
1356
- .gallery__slide {
1357
- // Containing block for the item header. With text position "On Image" that header
1358
- // is `position: absolute`; without this it resolved against `.embla__viewport`, so
1359
- // `width: 100%` spanned the whole slider and it sat centred across every slide
1360
- // instead of over its own image. It also puts the slide back in the containing
1361
- // block chain, so the `overflow: hidden` below actually clips the header.
1362
- position: relative;
1363
- width: 100%;
1364
- height: 100%;
1365
- display: flex;
1366
- // Same reason as the slide above — let the caption wrap to the slide.
1367
- min-width: 0;
1368
- // flex-direction: column;
1369
-
1370
- background-color: var(
1371
- --_ctm-mob-dn-im-se-bd-cr,
1372
- var(--_ctm-tab-dn-im-se-bd-cr, var(--_ctm-dn-im-se-bd-cr))
1373
- );
1374
-
1375
- border-color: var(
1376
- --_ctm-mob-dn-im-se-br-cr,
1377
- var(--_ctm-tab-dn-im-se-br-cr, var(--_ctm-dn-im-se-br-cr))
1378
- );
1379
-
1380
- border-style: var(
1381
- --_ctm-mob-dn-im-se-br-se,
1382
- var(--_ctm-tab-dn-im-se-br-se, var(--_ctm-dn-im-se-br-se))
1383
- );
1384
-
1385
- border-width: var(
1386
- --_ctm-mob-dn-im-se-br-wh,
1387
- var(--_ctm-tab-dn-im-se-br-wh, var(--_ctm-dn-im-se-br-wh))
1388
- );
1389
-
1390
- border-radius: var(
1391
- --_ctm-mob-dn-im-se-br-rs,
1392
- var(--_ctm-tab-dn-im-se-br-rs, var(--_ctm-dn-im-se-br-rs))
1393
- );
1394
-
1395
- box-shadow: var(
1396
- --_show-shadow,
1397
- var(--_ctm-mob-dn-im-se-sw-ae, var(--_ctm-tab-dn-im-se-sw-ae, var(--_ctm-dn-im-se-sw-ae)))
1398
- var(--_ctm-mob-dn-im-se-sw-br, var(--_ctm-tab-dn-im-se-sw-br, var(--_ctm-dn-im-se-sw-br)))
1399
- var(--_ctm-mob-dn-im-se-sw-sd, var(--_ctm-tab-dn-im-se-sw-sd, var(--_ctm-dn-im-se-sw-sd)))
1400
- var(--_ctm-mob-dn-im-se-sw-cr, var(--_ctm-tab-dn-im-se-sw-cr, var(--_ctm-dn-im-se-sw-cr)))
1401
- );
1402
-
1403
- gap: var(
1404
- --_ctm-mob-dn-im-lt-gy-tt-ad-im-sg,
1405
- var(--_ctm-tab-dn-im-lt-gy-tt-ad-im-sg, var(--_ctm-dn-im-lt-gy-tt-ad-im-sg))
1406
- );
1407
-
1408
- // Clip the image to the item's border radius; without this the img's
1409
- // square corners paint over the rounded container.
1410
- overflow: hidden;
1411
-
1412
- .gallery-header {
1413
- // text-align: var(--_ctm-dn-gy-lt-an, var(--_tst-dn-gy-lt-an));
1414
- // line-height: var(--_ctm-dn-gy-lt-tt-ad-dn-sg, var(--_tst-dn-gy-lt-tt-ad-dn-sg));
1415
- display: flex;
1416
- flex-direction: column;
1417
-
1418
- gap: var(
1419
- --_ctm-mob-dn-im-tt-cr-lt-te-ad-dn-sg,
1420
- var(--_ctm-tab-dn-im-tt-cr-lt-te-ad-dn-sg, var(--_ctm-dn-im-tt-cr-lt-te-ad-dn-sg))
1421
- );
1422
-
1423
- padding-block: var(
1424
- --_ctm-mob-dn-im-tt-cr-lt-tt-vl-pg,
1425
- var(--_ctm-tab-dn-im-tt-cr-lt-tt-vl-pg, var(--_ctm-dn-im-tt-cr-lt-tt-vl-pg))
1426
- );
1427
-
1428
- padding-inline: var(
1429
- --_ctm-mob-dn-im-tt-cr-lt-tt-hl-pg,
1430
- var(--_ctm-tab-dn-im-tt-cr-lt-tt-hl-pg, var(--_ctm-dn-im-tt-cr-lt-tt-hl-pg))
1431
- );
1432
-
1433
- background-color: var(
1434
- --_ctm-mob-dn-im-tt-cr-dn-bd-cr,
1435
- var(--_ctm-tab-dn-im-tt-cr-dn-bd-cr, var(--_ctm-dn-im-tt-cr-dn-bd-cr))
1436
- );
1437
-
1438
- width: 100%;
1439
- // Shrink to the slide, and never below the height the wrapped caption needs —
1440
- // the same pair the widget-level header uses.
1441
- min-width: 0;
1442
- flex: 0 0 auto;
1443
-
1444
- border-color: var(
1445
- --_ctm-mob-dn-im-tt-cr-dn-br-cr,
1446
- var(--_ctm-tab-dn-im-tt-cr-dn-br-cr, var(--_ctm-dn-im-tt-cr-dn-br-cr))
1447
- );
1448
-
1449
- border-style: var(
1450
- --_ctm-mob-dn-im-tt-cr-dn-br-se,
1451
- var(--_ctm-tab-dn-im-tt-cr-dn-br-se, var(--_ctm-dn-im-tt-cr-dn-br-se))
1452
- );
1453
-
1454
- border-width: var(
1455
- --_ctm-mob-dn-im-tt-cr-dn-br-wh,
1456
- var(--_ctm-tab-dn-im-tt-cr-dn-br-wh, var(--_ctm-dn-im-tt-cr-dn-br-wh))
1457
- );
1458
-
1459
- border-radius: var(
1460
- --_ctm-mob-dn-im-tt-cr-dn-br-rs,
1461
- var(--_ctm-tab-dn-im-tt-cr-dn-br-rs, var(--_ctm-dn-im-tt-cr-dn-br-rs))
1462
- );
1463
-
1464
- box-shadow: var(
1465
- --_show-shadow,
1466
- var(
1467
- --_ctm-mob-dn-im-tt-cr-dn-sw-ae,
1468
- var(--_ctm-tab-dn-im-tt-cr-dn-sw-ae, var(--_ctm-dn-im-tt-cr-dn-sw-ae))
1469
- )
1470
- var(
1471
- --_ctm-mob-dn-im-tt-cr-dn-sw-br,
1472
- var(--_ctm-tab-dn-im-tt-cr-dn-sw-br, var(--_ctm-dn-im-tt-cr-dn-sw-br))
1473
- )
1474
- var(
1475
- --_ctm-mob-dn-im-tt-cr-dn-sw-sd,
1476
- var(--_ctm-tab-dn-im-tt-cr-dn-sw-sd, var(--_ctm-dn-im-tt-cr-dn-sw-sd))
1477
- )
1478
- var(
1479
- --_ctm-mob-dn-im-tt-cr-dn-sw-cr,
1480
- var(--_ctm-tab-dn-im-tt-cr-dn-sw-cr, var(--_ctm-dn-im-tt-cr-dn-sw-cr))
1481
- )
1482
- );
1483
-
1484
- & h3 {
1485
- color: var(--_ctm-mob-dn-im-se-cr, var(--_ctm-tab-dn-im-se-cr, var(--_ctm-dn-im-se-cr)));
1486
-
1487
- font-family: var(
1488
- --_ctm-mob-dn-im-se-ft-fy,
1489
- var(--_ctm-tab-dn-im-se-ft-fy, var(--_ctm-dn-im-se-ft-fy))
1490
- );
1491
- text-transform: var(
1492
- --_ctm-mob-dn-im-se-tt-tm,
1493
- var(--_ctm-tab-dn-im-se-tt-tm, var(--_ctm-dn-im-se-tt-tm))
1494
- );
1495
- word-wrap: var(
1496
- --_ctm-mob-dn-im-se-wd-wp,
1497
- var(--_ctm-tab-dn-im-se-wd-wp, var(--_ctm-dn-im-se-wd-wp))
1498
- );
1499
- word-break: var(
1500
- --_ctm-mob-dn-im-se-wd-bk,
1501
- var(--_ctm-tab-dn-im-se-wd-bk, var(--_ctm-dn-im-se-wd-bk))
1502
- );
1503
-
1504
- &#{$overflowSelector} {
1505
- @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
1506
- }
1507
-
1508
- font-size: var(
1509
- --_ctm-mob-dn-im-se-ft-se,
1510
- var(--_ctm-tab-dn-im-se-ft-se, var(--_ctm-dn-im-se-ft-se))
1511
- );
1512
-
1513
- font-weight: var(
1514
- --_ctm-mob-dn-im-se-ft-wt,
1515
- var(--_ctm-tab-dn-im-se-ft-wt, var(--_ctm-dn-im-se-ft-wt))
1516
- );
1517
-
1518
- font-style: var(
1519
- --_ctm-mob-dn-im-se-ft-se-ic,
1520
- var(--_ctm-tab-dn-im-se-ft-se-ic, var(--_ctm-dn-im-se-ft-se-ic))
1521
- );
1522
-
1523
- text-align: var(
1524
- --_ctm-mob-dn-im-se-tt-an,
1525
- var(--_ctm-tab-dn-im-se-tt-an, var(--_ctm-dn-im-se-tt-an))
1526
- );
1527
-
1528
- letter-spacing: var(
1529
- --_ctm-mob-dn-im-se-lr-sg,
1530
- var(--_ctm-tab-dn-im-se-lr-sg, var(--_ctm-dn-im-se-lr-sg))
1531
- );
1532
-
1533
- line-height: var(
1534
- --_ctm-mob-dn-im-se-le-ht,
1535
- var(--_ctm-tab-dn-im-se-le-ht, var(--_ctm-dn-im-se-le-ht))
1536
- );
1537
-
1538
- text-decoration: var(
1539
- --_ctm-mob-dn-im-se-ue,
1540
- var(--_ctm-tab-dn-im-se-ue, var(--_ctm-dn-im-se-ue))
1541
- );
1542
- }
1543
-
1544
- & p {
1545
- color: var(
1546
- --_ctm-mob-dn-im-se-cr-dc,
1547
- var(--_ctm-tab-dn-im-se-cr-dc, var(--_ctm-dn-im-se-cr-dc))
1548
- );
1549
-
1550
- font-family: var(
1551
- --_ctm-mob-dn-im-se-ft-fy-dc,
1552
- var(--_ctm-tab-dn-im-se-ft-fy-dc, var(--_ctm-dn-im-se-ft-fy-dc))
1553
- );
1554
- text-transform: var(
1555
- --_ctm-mob-dn-im-se-tt-tm-dc,
1556
- var(--_ctm-tab-dn-im-se-tt-tm-dc, var(--_ctm-dn-im-se-tt-tm-dc))
1557
- );
1558
- word-wrap: var(
1559
- --_ctm-mob-dn-im-se-wd-wp-dc,
1560
- var(--_ctm-tab-dn-im-se-wd-wp-dc, var(--_ctm-dn-im-se-wd-wp-dc))
1561
- );
1562
- word-break: var(
1563
- --_ctm-mob-dn-im-se-wd-bk-dc,
1564
- var(--_ctm-tab-dn-im-se-wd-bk-dc, var(--_ctm-dn-im-se-wd-bk-dc))
1565
- );
1566
-
1567
- &#{$overflowSelector} {
1568
- @include restrictToLinesShow(#{var(--_sf-line-clamp-desc, 1)});
1569
- }
1570
-
1571
- font-size: var(
1572
- --_ctm-mob-dn-im-se-ft-se-dc,
1573
- var(--_ctm-tab-dn-im-se-ft-se-dc, var(--_ctm-dn-im-se-ft-se-dc))
1574
- );
1575
-
1576
- font-weight: var(
1577
- --_ctm-mob-dn-im-se-ft-wt-dc,
1578
- var(--_ctm-tab-dn-im-se-ft-wt-dc, var(--_ctm-dn-im-se-ft-wt-dc))
1579
- );
1580
-
1581
- font-style: var(
1582
- --_ctm-mob-dn-im-se-ft-se-ic-dc,
1583
- var(--_ctm-tab-dn-im-se-ft-se-ic-dc, var(--_ctm-dn-im-se-ft-se-ic-dc))
1584
- );
1585
-
1586
- text-align: var(
1587
- --_ctm-mob-dn-im-se-tt-an-dc,
1588
- var(--_ctm-tab-dn-im-se-tt-an-dc, var(--_ctm-dn-im-se-tt-an-dc))
1589
- );
1590
-
1591
- letter-spacing: var(
1592
- --_ctm-mob-dn-im-se-lr-sg-dc,
1593
- var(--_ctm-tab-dn-im-se-lr-sg-dc, var(--_ctm-dn-im-se-lr-sg-dc))
1594
- );
1595
-
1596
- line-height: var(
1597
- --_ctm-mob-dn-im-se-le-ht-dc,
1598
- var(--_ctm-tab-dn-im-se-le-ht-dc, var(--_ctm-dn-im-se-le-ht-dc))
1599
- );
1600
-
1601
- text-decoration: var(
1602
- --_ctm-mob-dn-im-se-ue-dc,
1603
- var(--_ctm-tab-dn-im-se-ue-dc, var(--_ctm-dn-im-se-ue-dc))
1604
- );
1605
- }
1606
-
1607
- // h3 {
1608
- // margin-bottom: var(--_mb-4);
1609
- // }
1610
- }
1611
- > img {
1612
- object-fit: cover;
1613
- }
1614
- &[data-text-position="On Image"] {
1615
- .gallery-header {
1616
- width: 100%;
1617
- // height: 100%;
1618
- position: absolute;
1619
- }
1620
-
1621
- &[data-widget-alignment="top"] {
1622
- // align-items: flex-start;
1623
-
1624
- .gallery-header {
1625
- top: 0;
1626
-
1627
- justify-content: flex-start;
1628
- }
1629
- }
1630
- &[data-widget-alignment="center"] {
1631
- // align-items: center;
1632
-
1633
- .gallery-header {
1634
- top: 50%;
1635
- transform: translateY(-50%);
1636
- justify-content: center;
1637
- }
1638
- }
1639
- &[data-widget-alignment="bottom"] {
1640
- // align-items: flex-end;
1641
- .gallery-header {
1642
- bottom: 0;
1643
-
1644
- justify-content: flex-end;
1645
- }
1646
- }
1647
- }
1648
-
1649
- &[data-text-position="top"] {
1650
- flex-direction: column;
1651
- }
1652
-
1653
- &[data-text-position="bottom"] {
1654
- flex-direction: column-reverse;
1655
- }
1656
- &[data-text-position="left"] {
1657
- flex-direction: row;
1658
-
1659
- .gallery-header {
1660
- // The item's own Text Container Width, not the widget's. This read
1661
- // --_ctm-dn-gy-wt-lt-tt-cr-wh, which is always emitted as 100%; combined with
1662
- // the header's `flex: 0 0 auto` it never gave any of that width back, so the
1663
- // image was squeezed to 0px and vanished. There is no item-level control yet,
1664
- // so this falls back to fit-content and the caption sizes to its own text.
1665
- width: fit-content;
1666
- max-width: prepareMediaVariable(--_ctm-dn-im-lt-tt-cr-wh, 100%);
1667
- min-width: 0;
1668
- // Beside the image the caption has to be able to give way. The base rule's
1669
- // flex-shrink 0 is right for the stacked positions, not for these.
1670
- flex-shrink: 1;
1671
- height: 100%;
1672
- }
1673
-
1674
- // The image takes whatever the caption leaves. Scoped to the row directions —
1675
- // in top/bottom the main axis is vertical and a flex-basis here would break it.
1676
- > img {
1677
- flex: 1 1 0;
1678
- min-width: 0;
1679
- }
1680
- &[data-widget-alignment="top"] {
1681
- align-items: flex-start;
1682
-
1683
- .gallery-header {
1684
- justify-content: flex-start;
1685
- }
1686
- }
1687
- &[data-widget-alignment="center"] {
1688
- align-items: center;
1689
-
1690
- .gallery-header {
1691
- justify-content: center;
1692
- }
1693
- }
1694
- &[data-widget-alignment="bottom"] {
1695
- align-items: flex-end;
1696
-
1697
- .gallery-header {
1698
- justify-content: flex-end;
1699
- }
1700
- }
1701
- }
1702
- &[data-text-position="right"] {
1703
- flex-direction: row-reverse;
1704
- .gallery-header {
1705
- // The item's own Text Container Width, not the widget's. This read
1706
- // --_ctm-dn-gy-wt-lt-tt-cr-wh, which is always emitted as 100%; combined with
1707
- // the header's `flex: 0 0 auto` it never gave any of that width back, so the
1708
- // image was squeezed to 0px and vanished. There is no item-level control yet,
1709
- // so this falls back to fit-content and the caption sizes to its own text.
1710
- width: fit-content;
1711
- max-width: prepareMediaVariable(--_ctm-dn-im-lt-tt-cr-wh, 100%);
1712
- min-width: 0;
1713
- // Beside the image the caption has to be able to give way. The base rule's
1714
- // flex-shrink 0 is right for the stacked positions, not for these.
1715
- flex-shrink: 1;
1716
- height: 100%;
1717
- }
1718
-
1719
- // The image takes whatever the caption leaves. Scoped to the row directions —
1720
- // in top/bottom the main axis is vertical and a flex-basis here would break it.
1721
- > img {
1722
- flex: 1 1 0;
1723
- min-width: 0;
1724
- }
1725
-
1726
- &[data-widget-alignment="top"] {
1727
- align-items: flex-start;
1728
-
1729
- .gallery-header {
1730
- justify-content: flex-start;
1731
- }
1732
- }
1733
- &[data-widget-alignment="center"] {
1734
- align-items: center;
1735
-
1736
- .gallery-header {
1737
- justify-content: center;
1738
- }
1739
- }
1740
- &[data-widget-alignment="bottom"] {
1741
- align-items: flex-end;
1742
-
1743
- .gallery-header {
1744
- justify-content: flex-end;
1745
- }
1746
- }
1747
- }
1748
- & > img {
1749
- width: 100%;
1750
- height: 100%;
1751
- // object-fit: cover;
1752
-
1753
- // object-fit: var(--_ctm-dn-im-se-ot-ft, var(--_tst-dn-im-se-ot-ft));
1754
- // object-fit: cover;
1755
-
1756
- &[data-has-title="true"] {
1757
- height: 85%;
1758
- }
1759
-
1760
- /* display: block; */
1761
- }
1762
- }
1763
-
1764
- .load__more__div {
1765
- display: flex;
1766
- justify-content: center;
1767
- margin-block: 12px;
1768
- & > button {
1769
- padding-inline: 24px;
1770
- border: 1px solid gray;
1771
- padding-block: 12px;
1772
- border-radius: 6px;
1773
- }
1774
- }
1775
- }
1776
- }
1
+ @use "sass:map";
2
+ @use "sass:list";
3
+ @use "./functions.scss" as *;
4
+
5
+ $overflowSelector: ".flex__overflow";
6
+
7
+ [data-div-type="element"] {
8
+ &[data-element-type="gallerySlider"] {
9
+ // width: var(--_sf-nw-wh, var(--_tst-lt-wh));
10
+ width: var(
11
+ --_sf-el-wh-st-mx,
12
+ calc(
13
+ 1% *
14
+ var(
15
+ --_ctm-mob-ele-nw-wh-vl,
16
+ var(--_ctm-tab-ele-nw-wh-vl, var(--_ctm-ele-nw-wh-vl, var(--_sf-nw-wh)))
17
+ )
18
+ )
19
+ );
20
+ // height: var(--_ctm-mob-lt-ht, var(--_ctm-tab-lt-ht, var(--_ctm-lt-ht)));
21
+ &:not(:has([data-display-style="Grid"][data-scroll-direction="Vertical"])) {
22
+ height: var(--_ctm-mob-lt-ht, var(--_ctm-tab-lt-ht, var(--_ctm-lt-ht)));
23
+ }
24
+ margin: var(--_ctm-mob-lt-mn, var(--_ctm-tab-lt-mn, var(--_ctm-lt-mn)));
25
+
26
+ --_aspect-ratio: calc(
27
+ 1 *
28
+ (
29
+ var(--_ctm-mob-lt-ht, var(--_ctm-tab-lt-ht, var(--_ctm-lt-ht, var(--_tst-lt-ht)))) /
30
+ var(--_ctm-mob-lt-wh, var(--_ctm-tab-lt-wh, var(--_ctm-lt-wh, var(--_tst-lt-wh))))
31
+ )
32
+ );
33
+ &[data-view-state="full"] {
34
+ // aspect-ratio: 1/0.01;
35
+ & > .wrapper {
36
+ & > div {
37
+ height: 100%;
38
+ }
39
+ }
40
+ img {
41
+ height: 100%;
42
+ object-fit: cover;
43
+ }
44
+ }
45
+
46
+ .arrow-navigation {
47
+ pointer-events: none;
48
+ }
49
+ .arrow-navigation > button {
50
+ pointer-events: all;
51
+ }
52
+
53
+ // &[data-view-state="full"] {
54
+ // width: auto;
55
+ // // height: 100%;
56
+ // margin: 0;
57
+ // justify-self: stretch !important;
58
+ // align-self: stretch !important;
59
+ // cursor: auto;
60
+ // }
61
+
62
+ & > .wrapper {
63
+ width: 100%;
64
+ height: 100%;
65
+ }
66
+ &[data-show-shadow="false"] {
67
+ --_show-shadow: none;
68
+ }
69
+
70
+ .gallery-slider-element {
71
+ --text-high-contrast-rgb-value: 49, 49, 49;
72
+ --detail-medium-contrast: rgb(234, 234, 234);
73
+ --text-body: rgb(54, 49, 61);
74
+
75
+ position: relative;
76
+ background-color: var(
77
+ --_ctm-mob-dn-gy-wt-se-bd-cr,
78
+ var(--_ctm-tab-dn-gy-wt-se-bd-cr, var(--_ctm-dn-gy-wt-se-bd-cr))
79
+ );
80
+
81
+ padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
82
+
83
+ display: flex;
84
+ flex-direction: column;
85
+
86
+ --_sf-cd-gp: calc(var(--_sf-gp) * 0.5);
87
+
88
+ gap: var(
89
+ --_ctm-mob-dn-gy-wt-lt-gy-tt-ad-im-sg,
90
+ var(--_ctm-tab-dn-gy-wt-lt-gy-tt-ad-im-sg, var(--_ctm-dn-gy-wt-lt-gy-tt-ad-im-sg))
91
+ );
92
+
93
+ width: 100%;
94
+ height: 100%;
95
+
96
+ border-color: var(
97
+ --_ctm-mob-dn-gy-wt-se-br-cr,
98
+ var(--_ctm-tab-dn-gy-wt-se-br-cr, var(--_ctm-dn-gy-wt-se-br-cr))
99
+ );
100
+
101
+ border-style: var(
102
+ --_ctm-mob-dn-gy-wt-se-br-se,
103
+ var(--_ctm-tab-dn-gy-wt-se-br-se, var(--_ctm-dn-gy-wt-se-br-se))
104
+ );
105
+
106
+ border-width: var(
107
+ --_ctm-mob-dn-gy-wt-se-br-wh,
108
+ var(--_ctm-tab-dn-gy-wt-se-br-wh, var(--_ctm-dn-gy-wt-se-br-wh))
109
+ );
110
+
111
+ border-radius: var(
112
+ --_ctm-mob-dn-gy-wt-se-br-rs,
113
+ var(--_ctm-tab-dn-gy-wt-se-br-rs, var(--_ctm-dn-gy-wt-se-br-rs))
114
+ );
115
+
116
+ box-shadow: var(
117
+ --_show-shadow,
118
+ var(
119
+ --_ctm-mob-dn-gy-wt-se-sw-ae,
120
+ var(--_ctm-tab-dn-gy-wt-se-sw-ae, var(--_ctm-dn-gy-wt-se-sw-ae))
121
+ )
122
+ var(
123
+ --_ctm-mob-dn-gy-wt-se-sw-br,
124
+ var(--_ctm-tab-dn-gy-wt-se-sw-br, var(--_ctm-dn-gy-wt-se-sw-br))
125
+ )
126
+ var(
127
+ --_ctm-mob-dn-gy-wt-se-sw-sd,
128
+ var(--_ctm-tab-dn-gy-wt-se-sw-sd, var(--_ctm-dn-gy-wt-se-sw-sd))
129
+ )
130
+ var(
131
+ --_ctm-mob-dn-gy-wt-se-sw-cr,
132
+ var(--_ctm-tab-dn-gy-wt-se-sw-cr, var(--_ctm-dn-gy-wt-se-sw-cr))
133
+ )
134
+ );
135
+
136
+ .gallery-header {
137
+ // text-align: var(--_ctm-dn-gy-lt-an, var(--_tst-dn-gy-lt-an));
138
+ // line-height: var(--_ctm-dn-gy-lt-tt-ad-dn-sg, var(--_tst-dn-gy-lt-tt-ad-dn-sg));
139
+ display: flex;
140
+ flex-direction: column;
141
+
142
+ gap: var(
143
+ --_ctm-mob-dn-gy-wt-tt-cr-lt-te-ad-dn-sg,
144
+ var(--_ctm-tab-dn-gy-wt-tt-cr-lt-te-ad-dn-sg, var(--_ctm-dn-gy-wt-tt-cr-lt-te-ad-dn-sg))
145
+ );
146
+
147
+ padding-block: var(
148
+ --_ctm-mob-dn-gy-wt-tt-cr-lt-tt-vl-pg,
149
+ var(--_ctm-tab-dn-gy-wt-tt-cr-lt-tt-vl-pg, var(--_ctm-dn-gy-wt-tt-cr-lt-tt-vl-pg))
150
+ );
151
+
152
+ padding-inline: var(
153
+ --_ctm-mob-dn-gy-wt-tt-cr-lt-tt-hl-pg,
154
+ var(--_ctm-tab-dn-gy-wt-tt-cr-lt-tt-hl-pg, var(--_ctm-dn-gy-wt-tt-cr-lt-tt-hl-pg))
155
+ );
156
+
157
+ background-color: var(
158
+ --_ctm-mob-dn-gy-wt-tt-cr-dn-bd-cr,
159
+ var(--_ctm-tab-dn-gy-wt-tt-cr-dn-bd-cr, var(--_ctm-dn-gy-wt-tt-cr-dn-bd-cr))
160
+ );
161
+
162
+ // Text Container Width. 100% is the previous behaviour, so an unset width
163
+ // still spans the widget.
164
+ width: prepareMediaVariable(--_ctm-dn-gy-wt-lt-tt-cr-wh, 100%);
165
+ // Shrink to that width, and never below the height the wrapped text needs.
166
+ min-width: 0;
167
+ flex: 0 0 auto;
168
+
169
+ border-color: var(
170
+ --_ctm-mob-dn-gy-wt-tt-cr-dn-br-cr,
171
+ var(--_ctm-tab-dn-gy-wt-tt-cr-dn-br-cr, var(--_ctm-dn-gy-wt-tt-cr-dn-br-cr))
172
+ );
173
+
174
+ border-style: var(
175
+ --_ctm-mob-dn-gy-wt-tt-cr-dn-br-se,
176
+ var(--_ctm-tab-dn-gy-wt-tt-cr-dn-br-se, var(--_ctm-dn-gy-wt-tt-cr-dn-br-se))
177
+ );
178
+
179
+ border-width: var(
180
+ --_ctm-mob-dn-gy-wt-tt-cr-dn-br-wh,
181
+ var(--_ctm-tab-dn-gy-wt-tt-cr-dn-br-wh, var(--_ctm-dn-gy-wt-tt-cr-dn-br-wh))
182
+ );
183
+
184
+ border-radius: var(
185
+ --_ctm-mob-dn-gy-wt-tt-cr-dn-br-rs,
186
+ var(--_ctm-tab-dn-gy-wt-tt-cr-dn-br-rs, var(--_ctm-dn-gy-wt-tt-cr-dn-br-rs))
187
+ );
188
+
189
+ box-shadow: var(
190
+ --_show-shadow,
191
+ var(
192
+ --_ctm-mob-dn-gy-wt-tt-cr-dn-sw-ae,
193
+ var(--_ctm-tab-dn-gy-wt-tt-cr-dn-sw-ae, var(--_ctm-dn-gy-wt-tt-cr-dn-sw-ae))
194
+ )
195
+ var(
196
+ --_ctm-mob-dn-gy-wt-tt-cr-dn-sw-br,
197
+ var(--_ctm-tab-dn-gy-wt-tt-cr-dn-sw-br, var(--_ctm-dn-gy-wt-tt-cr-dn-sw-br))
198
+ )
199
+ var(
200
+ --_ctm-mob-dn-gy-wt-tt-cr-dn-sw-sd,
201
+ var(--_ctm-tab-dn-gy-wt-tt-cr-dn-sw-sd, var(--_ctm-dn-gy-wt-tt-cr-dn-sw-sd))
202
+ )
203
+ var(
204
+ --_ctm-mob-dn-gy-wt-tt-cr-dn-sw-cr,
205
+ var(--_ctm-tab-dn-gy-wt-tt-cr-dn-sw-cr, var(--_ctm-dn-gy-wt-tt-cr-dn-sw-cr))
206
+ )
207
+ );
208
+
209
+ & h3 {
210
+ color: var(
211
+ --_ctm-mob-dn-gy-wt-se-cr,
212
+ var(--_ctm-tab-dn-gy-wt-se-cr, var(--_ctm-dn-gy-wt-se-cr))
213
+ );
214
+ font-family: var(
215
+ --_ctm-mob-dn-gy-wt-se-ft-fy,
216
+ var(--_ctm-tab-dn-gy-wt-se-ft-fy, var(--_ctm-dn-gy-wt-se-ft-fy))
217
+ );
218
+ font-size: var(
219
+ --_ctm-mob-dn-gy-wt-se-ft-se,
220
+ var(--_ctm-tab-dn-gy-wt-se-ft-se, var(--_ctm-dn-gy-wt-se-ft-se))
221
+ );
222
+ font-weight: var(
223
+ --_ctm-mob-dn-gy-wt-se-ft-wt,
224
+ var(--_ctm-tab-dn-gy-wt-se-ft-wt, var(--_ctm-dn-gy-wt-se-ft-wt))
225
+ );
226
+ font-style: var(
227
+ --_ctm-mob-dn-gy-wt-se-ft-se-ic,
228
+ var(--_ctm-tab-dn-gy-wt-se-ft-se-ic, var(--_ctm-dn-gy-wt-se-ft-se-ic))
229
+ );
230
+ text-align: var(
231
+ --_ctm-mob-dn-gy-wt-se-tt-an,
232
+ var(--_ctm-tab-dn-gy-wt-se-tt-an, var(--_ctm-dn-gy-wt-se-tt-an))
233
+ );
234
+ letter-spacing: var(
235
+ --_ctm-mob-dn-gy-wt-se-lr-sg,
236
+ var(--_ctm-tab-dn-gy-wt-se-lr-sg, var(--_ctm-dn-gy-wt-se-lr-sg))
237
+ );
238
+ line-height: var(
239
+ --_ctm-mob-dn-gy-wt-se-le-ht,
240
+ var(--_ctm-tab-dn-gy-wt-se-le-ht, var(--_ctm-dn-gy-wt-se-le-ht))
241
+ );
242
+ text-decoration: var(
243
+ --_ctm-mob-dn-gy-wt-se-ue,
244
+ var(--_ctm-tab-dn-gy-wt-se-ue, var(--_ctm-dn-gy-wt-se-ue))
245
+ );
246
+ text-transform: var(
247
+ --_ctm-mob-dn-gy-wt-se-tt-tm,
248
+ var(--_ctm-tab-dn-gy-wt-se-tt-tm, var(--_ctm-dn-gy-wt-se-tt-tm, none))
249
+ );
250
+ word-wrap: var(
251
+ --_ctm-mob-dn-gy-wt-se-wd-wp,
252
+ var(--_ctm-tab-dn-gy-wt-se-wd-wp, var(--_ctm-dn-gy-wt-se-wd-wp, normal))
253
+ );
254
+ word-break: var(
255
+ --_ctm-mob-dn-gy-wt-se-wd-bk,
256
+ var(--_ctm-tab-dn-gy-wt-se-wd-bk, var(--_ctm-dn-gy-wt-se-wd-bk, normal))
257
+ );
258
+
259
+ // Text Overflow toggle in the typography panel; the line count rides in on
260
+ // --_sf-line-clamp from the element.
261
+ &#{$overflowSelector} {
262
+ @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
263
+ }
264
+ }
265
+
266
+ & p {
267
+ color: var(
268
+ --_ctm-mob-dn-gy-wt-se-cr-dc,
269
+ var(--_ctm-tab-dn-gy-wt-se-cr-dc, var(--_ctm-dn-gy-wt-se-cr-dc))
270
+ );
271
+ font-family: var(
272
+ --_ctm-mob-dn-gy-wt-se-ft-fy-dc,
273
+ var(--_ctm-tab-dn-gy-wt-se-ft-fy-dc, var(--_ctm-dn-gy-wt-se-ft-fy-dc))
274
+ );
275
+ font-size: var(
276
+ --_ctm-mob-dn-gy-wt-se-ft-se-dc,
277
+ var(--_ctm-tab-dn-gy-wt-se-ft-se-dc, var(--_ctm-dn-gy-wt-se-ft-se-dc))
278
+ );
279
+ font-weight: var(
280
+ --_ctm-mob-dn-gy-wt-se-ft-wt-dc,
281
+ var(--_ctm-tab-dn-gy-wt-se-ft-wt-dc, var(--_ctm-dn-gy-wt-se-ft-wt-dc))
282
+ );
283
+ font-style: var(
284
+ --_ctm-mob-dn-gy-wt-se-ft-se-ic-dc,
285
+ var(--_ctm-tab-dn-gy-wt-se-ft-se-ic-dc, var(--_ctm-dn-gy-wt-se-ft-se-ic-dc))
286
+ );
287
+ text-align: var(
288
+ --_ctm-mob-dn-gy-wt-se-tt-an-dc,
289
+ var(--_ctm-tab-dn-gy-wt-se-tt-an-dc, var(--_ctm-dn-gy-wt-se-tt-an-dc))
290
+ );
291
+ letter-spacing: var(
292
+ --_ctm-mob-dn-gy-wt-se-lr-sg-dc,
293
+ var(--_ctm-tab-dn-gy-wt-se-lr-sg-dc, var(--_ctm-dn-gy-wt-se-lr-sg-dc))
294
+ );
295
+ line-height: var(
296
+ --_ctm-mob-dn-gy-wt-se-le-ht-dc,
297
+ var(--_ctm-tab-dn-gy-wt-se-le-ht-dc, var(--_ctm-dn-gy-wt-se-le-ht-dc))
298
+ );
299
+ text-decoration: var(
300
+ --_ctm-mob-dn-gy-wt-se-ue-dc,
301
+ var(--_ctm-tab-dn-gy-wt-se-ue-dc, var(--_ctm-dn-gy-wt-se-ue-dc))
302
+ );
303
+ text-transform: var(
304
+ --_ctm-mob-dn-gy-wt-se-tt-tm-dc,
305
+ var(--_ctm-tab-dn-gy-wt-se-tt-tm-dc, var(--_ctm-dn-gy-wt-se-tt-tm-dc, none))
306
+ );
307
+ word-wrap: var(
308
+ --_ctm-mob-dn-gy-wt-se-wd-wp-dc,
309
+ var(--_ctm-tab-dn-gy-wt-se-wd-wp-dc, var(--_ctm-dn-gy-wt-se-wd-wp-dc, normal))
310
+ );
311
+ word-break: var(
312
+ --_ctm-mob-dn-gy-wt-se-wd-bk-dc,
313
+ var(--_ctm-tab-dn-gy-wt-se-wd-bk-dc, var(--_ctm-dn-gy-wt-se-wd-bk-dc, normal))
314
+ );
315
+
316
+ &#{$overflowSelector} {
317
+ @include restrictToLinesShow(#{var(--_sf-line-clamp-desc, 1)});
318
+ }
319
+ }
320
+
321
+ // h3 {
322
+ // margin-bottom: var(--_mb-4);
323
+ // }
324
+ }
325
+ }
326
+
327
+ &[data-text-position="top"] {
328
+ .gallery-slider-element {
329
+ flex-direction: column;
330
+ }
331
+ }
332
+ &[data-text-position="bottom"] {
333
+ .gallery-slider-element {
334
+ flex-direction: column-reverse;
335
+ }
336
+ }
337
+ // Gallery Text and Item Alignment places the text container horizontally when
338
+ // it is stacked above/below the gallery — only visible once its width is under
339
+ // 100%. Left/right positions use [data-widget-alignment] for the cross axis.
340
+ &:not([data-text-position="left"]):not([data-text-position="right"]) {
341
+ &[data-text-alignment="left"] .gallery-header {
342
+ margin-right: auto;
343
+ }
344
+ &[data-text-alignment="center"] .gallery-header {
345
+ margin-inline: auto;
346
+ }
347
+ &[data-text-alignment="right"] .gallery-header {
348
+ margin-left: auto;
349
+ }
350
+ }
351
+
352
+ &[data-text-position="left"] {
353
+ .gallery-slider-element {
354
+ flex-direction: row;
355
+ }
356
+ // Child combinator: as a plain descendant this also matched the per-item captions
357
+ // inside the slides, so the widget's text position resized those too.
358
+ .gallery-slider-element > .gallery-header {
359
+ // Beside the slider, Text Container Width is a ceiling rather than a fixed width
360
+ // (what the schema comment describes). It is always emitted as 100%, so used as
361
+ // `width` it made the header's flex basis the whole row: no free space for the
362
+ // slider to grow into and no overflow to shrink anyone, leaving the slider 0px.
363
+ width: fit-content;
364
+ max-width: prepareMediaVariable(--_ctm-dn-gy-wt-lt-tt-cr-wh, 100%);
365
+ min-width: 0;
366
+ flex-shrink: 1;
367
+ height: 100%;
368
+ }
369
+ // The slider takes whatever the caption leaves.
370
+ .gallery-slider-element > .embla {
371
+ flex: 1 1 0;
372
+ min-width: 0;
373
+ }
374
+ &[data-widget-alignment="top"] {
375
+ .gallery-slider-element {
376
+ align-items: flex-start;
377
+ }
378
+ .gallery-header {
379
+ justify-content: flex-start;
380
+ }
381
+ }
382
+ &[data-widget-alignment="center"] {
383
+ .gallery-slider-element {
384
+ align-items: center;
385
+ }
386
+ .gallery-header {
387
+ justify-content: center;
388
+ }
389
+ }
390
+ &[data-widget-alignment="bottom"] {
391
+ .gallery-slider-element {
392
+ align-items: flex-end;
393
+ }
394
+ .gallery-header {
395
+ justify-content: flex-end;
396
+ }
397
+ }
398
+ }
399
+ &[data-text-position="right"] {
400
+ // Same pair as the "left" block above — see the comments there.
401
+ .gallery-slider-element > .gallery-header {
402
+ width: fit-content;
403
+ max-width: prepareMediaVariable(--_ctm-dn-gy-wt-lt-tt-cr-wh, 100%);
404
+ min-width: 0;
405
+ flex-shrink: 1;
406
+ height: 100%;
407
+ }
408
+ .gallery-slider-element > .embla {
409
+ flex: 1 1 0;
410
+ min-width: 0;
411
+ }
412
+ .gallery-slider-element {
413
+ flex-direction: row-reverse;
414
+ }
415
+
416
+ &[data-widget-alignment="top"] {
417
+ .gallery-slider-element {
418
+ align-items: flex-start;
419
+ }
420
+ .gallery-header {
421
+ justify-content: flex-start;
422
+ }
423
+ }
424
+ &[data-widget-alignment="center"] {
425
+ .gallery-slider-element {
426
+ align-items: center;
427
+ }
428
+ .gallery-header {
429
+ justify-content: center;
430
+ }
431
+ }
432
+ &[data-widget-alignment="bottom"] {
433
+ .gallery-slider-element {
434
+ align-items: flex-end;
435
+ }
436
+ .gallery-header {
437
+ justify-content: flex-end;
438
+ }
439
+ }
440
+ }
441
+ .embla {
442
+ width: 100%;
443
+ height: 100%;
444
+ position: relative;
445
+ display: flex;
446
+ flex-direction: column;
447
+ // overflow: hidden;
448
+
449
+ .embla__viewport {
450
+ width: 100%;
451
+ height: 100%;
452
+ position: relative;
453
+ display: flex;
454
+ flex-direction: column;
455
+
456
+ overflow: hidden;
457
+
458
+ .embla__container {
459
+ width: 100%;
460
+ height: 100%;
461
+ display: grid;
462
+ grid-template-rows: 100%;
463
+
464
+ grid-template-columns: repeat(
465
+ var(--_ctm-mob-lt-is-pr-se, var(--_ctm-tab-lt-is-pr-se, var(--_ctm-lt-is-pr-se))),
466
+ calc(
467
+ 100% /
468
+ var(--_ctm-mob-lt-is-pr-se, var(--_ctm-tab-lt-is-pr-se, var(--_ctm-lt-is-pr-se)))
469
+ )
470
+ );
471
+
472
+ grid-auto-flow: column;
473
+ gap: var(--_ctm-mob-lt-im-gp, var(--_ctm-tab-lt-im-gp, var(--_ctm-lt-im-gp)));
474
+
475
+ &[data-control-type="Bottom"][data-slider-control="Arrows"] {
476
+ height: calc(
477
+ 100% - calc(
478
+ var(
479
+ --_ctm-mob-dn-pn-as-aw-se,
480
+ var(--_ctm-tab-dn-pn-as-aw-se, var(--_ctm-dn-pn-as-aw-se))
481
+ ) +
482
+ 10px
483
+ )
484
+ );
485
+ }
486
+
487
+ &[data-control-type="Bottom"][data-slider-control="Pagination Line"] {
488
+ height: calc(
489
+ 100% - calc(
490
+ var(
491
+ --_ctm-mob-dn-pn-le-le-ht,
492
+ var(--_ctm-tab-dn-pn-le-le-ht, var(--_ctm-dn-pn-le-le-ht))
493
+ ) +
494
+ 20px
495
+ )
496
+ );
497
+ }
498
+
499
+ &[data-control-type="Bottom"][data-slider-control="Dots"] {
500
+ height: calc(
501
+ 100% - calc(
502
+ var(
503
+ --_ctm-mob-dn-pn-ds-dt-se,
504
+ var(--_ctm-tab-dn-pn-ds-dt-se, var(--_ctm-dn-pn-ds-dt-se))
505
+ ) +
506
+ 20px
507
+ )
508
+ );
509
+ }
510
+
511
+ .embla__slide {
512
+ width: 100%;
513
+ height: 100%;
514
+ // Grid item: without this it cannot shrink below its longest word, so a long
515
+ // caption widens the whole track past the widget.
516
+ min-width: 0;
517
+ }
518
+ }
519
+ }
520
+ &:not([data-display-style="Column"]) {
521
+ .embla__container {
522
+ grid-auto-columns: calc(
523
+ 100% / var(--_ctm-mob-lt-is-pr-se, var(--_ctm-tab-lt-is-pr-se, var(--_ctm-lt-is-pr-se)))
524
+ );
525
+ }
526
+ }
527
+
528
+ &[data-display-style="Grid"][data-scroll-direction="Vertical"] {
529
+ // overflow: unset;
530
+
531
+ .embla__viewport {
532
+ overflow: unset;
533
+ height: 80%;
534
+ flex-grow: 1;
535
+ &:not([data-is-builder-type="true"]) {
536
+ height: var(--_ctm-mob-height, var(--_ctm-tab-height, var(--_ctm-height)));
537
+ }
538
+
539
+ .embla__container {
540
+ overflow: unset;
541
+ height: var(--_ctm-mob-height, var(--_ctm-tab-height, var(--_ctm-height)));
542
+ // min-height: var(--_ctm-mob-height, var(--_ctm-tab-height, var(--_ctm-height)));
543
+
544
+ grid-template-columns: repeat(var(--_ctm-lt-is-pr-rw), 1fr);
545
+ grid-template-rows: unset;
546
+
547
+ grid-auto-flow: row;
548
+
549
+ &[data-overflow-hidden="true"] {
550
+ overflow: hidden;
551
+ }
552
+ }
553
+ }
554
+ }
555
+
556
+ &[data-display-style="Grid"][data-scroll-direction="Horizontal"] {
557
+ .embla__viewport {
558
+ .embla__container {
559
+ grid-template-rows: repeat(
560
+ var(--_ctm-mob-lt-is-pr-cn, var(--_ctm-tab-lt-is-pr-cn, var(--_ctm-lt-is-pr-cn))),
561
+ calc(
562
+ 100% /
563
+ var(--_ctm-mob-lt-is-pr-cn, var(--_ctm-tab-lt-is-pr-cn, var(--_ctm-lt-is-pr-cn)))
564
+ )
565
+ );
566
+ }
567
+ }
568
+ }
569
+
570
+ &[data-display-style="Rows"] {
571
+ // overflow: unset;
572
+
573
+ .embla__viewport {
574
+ overflow: unset;
575
+ height: 80%;
576
+ flex-grow: 1;
577
+
578
+ &:not([data-is-builder-type="true"]) {
579
+ height: var(--_ctm-height);
580
+ }
581
+
582
+ .embla__container {
583
+ // overflow: hidden;
584
+ height: var(--_ctm-height);
585
+ // min-height: var(--_ctm-height);
586
+
587
+ grid-template-columns: repeat(1, 1fr);
588
+ grid-template-rows: unset;
589
+ grid-auto-flow: row;
590
+ .embla__slide {
591
+ aspect-ratio: 7 / 2;
592
+ }
593
+ }
594
+ }
595
+ }
596
+
597
+ &[data-display-style="Column"] {
598
+ // overflow: unset;
599
+
600
+ .embla__viewport {
601
+ .embla__container {
602
+ display: flex;
603
+ .embla__slide {
604
+ width: unset;
605
+ height: 100%;
606
+ aspect-ratio: 1 / 2;
607
+ }
608
+ }
609
+ }
610
+ }
611
+ &[data-display-style="Masonry"] {
612
+ // overflow: unset;
613
+
614
+ .embla__viewport {
615
+ overflow: hidden;
616
+ height: 80%;
617
+ flex-grow: 1;
618
+
619
+ &:not([data-is-builder-type="true"]) {
620
+ height: var(--_ctm-height);
621
+ }
622
+
623
+ .embla__container {
624
+ overflow: unset;
625
+ display: block;
626
+
627
+ column-count: var(
628
+ --_ctm-mob-lt-is-pr-rw,
629
+ var(--_ctm-tab-lt-is-pr-rw, var(--_ctm-lt-is-pr-rw))
630
+ );
631
+ gap: unset;
632
+
633
+ column-gap: var(--_ctm-mob-lt-im-gp, var(--_ctm-tab-lt-im-gp, var(--_ctm-lt-im-gp)));
634
+
635
+ height: auto;
636
+
637
+ .embla__slide {
638
+ margin-bottom: var(
639
+ --_ctm-mob-lt-im-gp,
640
+ var(--_ctm-tab-lt-im-gp, var(--_ctm-lt-im-gp))
641
+ );
642
+ height: unset;
643
+
644
+ .gallery__slide {
645
+ height: unset;
646
+ }
647
+ }
648
+ }
649
+ }
650
+ }
651
+
652
+ .arrow-navigation {
653
+ display: flex;
654
+ position: absolute;
655
+ top: 50%;
656
+ left: 50%;
657
+ width: 100%;
658
+ justify-content: space-between;
659
+ transform: translate(-50%, -50%);
660
+ // padding-left: 20px;
661
+
662
+ &[data-control-type="Bottom-Overflow"] {
663
+ transform: translateX(-50%);
664
+ width: 100%;
665
+ justify-content: center;
666
+ gap: 12px;
667
+ top: unset;
668
+ bottom: 6px;
669
+ }
670
+ &[data-control-type="Bottom"] {
671
+ transform: unset;
672
+ position: static;
673
+ width: 100%;
674
+ justify-content: center;
675
+ gap: 12px;
676
+ margin-top: 10px;
677
+ }
678
+ }
679
+ :is(.left-button, .right-button) {
680
+ // background: prepareMediaVariable(--_ctm-dn-pn-as-bd-cr);
681
+ @include BgColorLighter(var(--_ctm-dn-pn-as-bd-cr), 10%);
682
+
683
+ &:not(:disabled):hover {
684
+ @include BgColorLighter(var(--_ctm-dn-pn-as-bd-cr), 20%);
685
+ }
686
+ }
687
+ .left-button {
688
+ padding: 10px;
689
+ border-radius: 50%;
690
+ border: none;
691
+ width: var(
692
+ --_ctm-mob-dn-pn-as-aw-se,
693
+ var(--_ctm-tab-dn-pn-as-aw-se, var(--_ctm-dn-pn-as-aw-se))
694
+ );
695
+ height: var(
696
+ --_ctm-mob-dn-pn-as-aw-se,
697
+ var(--_ctm-tab-dn-pn-as-aw-se, var(--_ctm-dn-pn-as-aw-se))
698
+ );
699
+
700
+ display: flex;
701
+ align-items: center;
702
+ justify-content: center;
703
+ cursor: pointer;
704
+ outline: none;
705
+ margin-left: 12px;
706
+ &:disabled {
707
+ & svg {
708
+ path {
709
+ stroke: rgb(192, 192, 192);
710
+ }
711
+ }
712
+ }
713
+ }
714
+ .right-button {
715
+ border-radius: 50%;
716
+ border: none;
717
+ width: var(
718
+ --_ctm-mob-dn-pn-as-aw-se,
719
+ var(--_ctm-tab-dn-pn-as-aw-se, var(--_ctm-dn-pn-as-aw-se))
720
+ );
721
+ height: var(
722
+ --_ctm-mob-dn-pn-as-aw-se,
723
+ var(--_ctm-tab-dn-pn-as-aw-se, var(--_ctm-dn-pn-as-aw-se))
724
+ );
725
+
726
+ display: flex;
727
+ align-items: center;
728
+ justify-content: center;
729
+ cursor: pointer;
730
+ outline: none;
731
+ margin-right: 12px;
732
+ padding: 10px;
733
+
734
+ &:disabled {
735
+ & svg {
736
+ path {
737
+ stroke: rgb(192, 192, 192);
738
+ }
739
+ }
740
+ }
741
+ }
742
+ .icon {
743
+ display: flex;
744
+
745
+ svg {
746
+ width: calc(
747
+ var(
748
+ --_ctm-mob-dn-pn-as-aw-se,
749
+ var(--_ctm-tab-dn-pn-as-aw-se, var(--_ctm-dn-pn-as-aw-se))
750
+ ) *
751
+ 0.5
752
+ );
753
+ height: calc(
754
+ var(
755
+ --_ctm-mob-dn-pn-as-aw-se,
756
+ var(--_ctm-tab-dn-pn-as-aw-se, var(--_ctm-dn-pn-as-aw-se))
757
+ ) *
758
+ 0.5
759
+ );
760
+
761
+ path {
762
+ stroke: var(
763
+ --_ctm-mob-dn-pn-as-aw-cr,
764
+ var(--_ctm-tab-dn-pn-as-aw-cr, var(--_ctm-dn-pn-as-aw-cr))
765
+ );
766
+ }
767
+ }
768
+ }
769
+
770
+ &[data-control-type="Side"] {
771
+ .left-button,
772
+ .right-button {
773
+ // background-color: transparent;
774
+ }
775
+ }
776
+ &[data-background-shape="Round"] {
777
+ .left-button,
778
+ .right-button {
779
+ // background-color: #f2f5f5;
780
+ // box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
781
+ }
782
+ }
783
+ &[data-background-shape="None"] {
784
+ .left-button,
785
+ .right-button {
786
+ border-radius: 0;
787
+ }
788
+ }
789
+ &[data-background-shape="Square"] {
790
+ .left-button,
791
+ .right-button {
792
+ border-radius: 4px;
793
+ }
794
+ }
795
+
796
+ &[data-control-type="Side"] {
797
+ .embla__viewport {
798
+ width: calc(100% - 120px);
799
+ margin-inline: auto;
800
+ }
801
+ .left-button {
802
+ position: absolute;
803
+ left: 0;
804
+ top: 50%;
805
+ transform: translateY(-50%);
806
+ }
807
+ .right-button {
808
+ position: absolute;
809
+
810
+ right: 0;
811
+ top: 50%;
812
+ transform: translateY(-50%);
813
+ }
814
+ }
815
+
816
+ &[data-display-style="Thumbnail"] {
817
+ .embla__viewport {
818
+ flex: 1;
819
+ min-height: 0;
820
+ height: auto;
821
+ }
822
+ }
823
+
824
+ &[data-thumbnail-placement="top"] {
825
+ flex-direction: column-reverse;
826
+ }
827
+ &[data-thumbnail-placement="bottom"] {
828
+ flex-direction: column;
829
+ }
830
+ &[data-thumbnail-placement="left"] {
831
+ flex-direction: row-reverse;
832
+
833
+ .embla__thumbs {
834
+ width: var(--_ctm-mob-lt-tl-wh, var(--_ctm-tab-lt-tl-wh, var(--_ctm-lt-tl-wh)));
835
+ height: 100%;
836
+ flex-direction: column;
837
+ margin-top: 0;
838
+ margin-right: var(
839
+ --_ctm-mob-lt-sr-ad-tl-gp,
840
+ var(--_ctm-tab-lt-sr-ad-tl-gp, var(--_ctm-lt-sr-ad-tl-gp))
841
+ );
842
+
843
+ & .embla__thumbs__container {
844
+ flex-direction: column;
845
+ height: 100%;
846
+ justify-content: prepareMediaVariable(--_ctm-lt-an-is);
847
+ }
848
+
849
+ .thumb-prev-button,
850
+ .thumb-next-button {
851
+ span {
852
+ transform: rotate(90deg);
853
+ }
854
+ }
855
+
856
+ .embla__thumbs__viewport {
857
+ min-height: 0;
858
+ }
859
+ }
860
+ }
861
+ &[data-thumbnail-placement="right"] {
862
+ flex-direction: row;
863
+ .embla__thumbs {
864
+ width: var(--_ctm-mob-lt-tl-wh, var(--_ctm-tab-lt-tl-wh, var(--_ctm-lt-tl-wh)));
865
+ height: 100%;
866
+ flex-direction: column;
867
+ margin-top: 0;
868
+ margin-left: var(
869
+ --_ctm-mob-lt-sr-ad-tl-gp,
870
+ var(--_ctm-tab-lt-sr-ad-tl-gp, var(--_ctm-lt-sr-ad-tl-gp))
871
+ );
872
+
873
+ & .embla__thumbs__container {
874
+ flex-direction: column;
875
+ height: 100%;
876
+ justify-content: prepareMediaVariable(--_ctm-lt-an-is);
877
+ }
878
+
879
+ .thumb-prev-button,
880
+ .thumb-next-button {
881
+ span {
882
+ transform: rotate(90deg);
883
+ }
884
+ }
885
+
886
+ .embla__thumbs__viewport {
887
+ min-height: 0;
888
+ }
889
+ }
890
+ }
891
+ .embla__dots {
892
+ display: flex;
893
+ flex-wrap: wrap;
894
+ justify-content: center;
895
+ align-items: center;
896
+ margin-right: calc((2.6rem - 1.4rem) / 2 * -1);
897
+ gap: 6px;
898
+ margin-top: 16px;
899
+
900
+ &[data-control-type="Bottom-Overflow"] {
901
+ position: absolute;
902
+ bottom: 10px;
903
+ left: 50%;
904
+ transform: translateX(-50%);
905
+ width: 75%;
906
+ }
907
+ // Pagination Dots (design > Pagination Dots). Border and shadow go on the
908
+ // ::after overlay — that pseudo-element is the visible dot, the button behind it
909
+ // is only the hit area. There is deliberately no radius control: dots stay
910
+ // circles, so the 50% is fixed. The Pagination Line variant overrides these.
911
+ &[data-dots-show-border="false"] {
912
+ --_show-pn-ds-border: none;
913
+ }
914
+ // A transparent shadow rather than `none`, so the selected dot can list this
915
+ // next to its inset ring without the whole declaration going invalid.
916
+ &[data-dots-show-shadow="false"] {
917
+ --_show-pn-ds-shadow: 0 0 0 0 transparent;
918
+ }
919
+
920
+ $pnDsShadow: var(
921
+ --_show-pn-ds-shadow,
922
+ var(--_ctm-mob-dn-pn-ds-sw-ae, var(--_ctm-tab-dn-pn-ds-sw-ae, var(--_ctm-dn-pn-ds-sw-ae)))
923
+ var(
924
+ --_ctm-mob-dn-pn-ds-sw-br,
925
+ var(--_ctm-tab-dn-pn-ds-sw-br, var(--_ctm-dn-pn-ds-sw-br))
926
+ )
927
+ var(
928
+ --_ctm-mob-dn-pn-ds-sw-sd,
929
+ var(--_ctm-tab-dn-pn-ds-sw-sd, var(--_ctm-dn-pn-ds-sw-sd))
930
+ )
931
+ var(
932
+ --_ctm-mob-dn-pn-ds-sw-cr,
933
+ var(--_ctm-tab-dn-pn-ds-sw-cr, var(--_ctm-dn-pn-ds-sw-cr))
934
+ )
935
+ );
936
+
937
+ .embla__dot {
938
+ -webkit-tap-highlight-color: rgba(var(--text-high-contrast-rgb-value), 0.5);
939
+ -webkit-appearance: none;
940
+ appearance: none;
941
+ background-color: var(
942
+ --_ctm-mob-dn-pn-ds-or-dt-cr,
943
+ var(--_ctm-tab-dn-pn-ds-or-dt-cr, var(--_ctm-dn-pn-ds-or-dt-cr))
944
+ );
945
+
946
+ touch-action: manipulation;
947
+ display: inline-flex;
948
+ text-decoration: none;
949
+ cursor: pointer;
950
+ border: 0;
951
+ padding: 0;
952
+ margin: 0;
953
+ // width: 0.6rem;
954
+ // height: 0.6rem;
955
+ width: var(
956
+ --_ctm-mob-dn-pn-ds-dt-se,
957
+ var(--_ctm-tab-dn-pn-ds-dt-se, var(--_ctm-dn-pn-ds-dt-se))
958
+ );
959
+ height: var(
960
+ --_ctm-mob-dn-pn-ds-dt-se,
961
+ var(--_ctm-tab-dn-pn-ds-dt-se, var(--_ctm-dn-pn-ds-dt-se))
962
+ );
963
+
964
+ display: flex;
965
+ align-items: center;
966
+ justify-content: center;
967
+ border-radius: 50%;
968
+ }
969
+ .embla__dot:after {
970
+ // box-shadow: inset 0 0 0 0.2rem var(--detail-medium-contrast);
971
+ width: var(
972
+ --_ctm-mob-dn-pn-ds-dt-se,
973
+ var(--_ctm-tab-dn-pn-ds-dt-se, var(--_ctm-dn-pn-ds-dt-se))
974
+ );
975
+ height: var(
976
+ --_ctm-mob-dn-pn-ds-dt-se,
977
+ var(--_ctm-tab-dn-pn-ds-dt-se, var(--_ctm-dn-pn-ds-dt-se))
978
+ );
979
+
980
+ // The overlay is sized to the button, so the border has to grow inwards or the
981
+ // dot would render larger than its configured Dot Size.
982
+ box-sizing: border-box;
983
+ border-color: var(
984
+ --_show-pn-ds-border,
985
+ var(
986
+ --_ctm-mob-dn-pn-ds-br-cr,
987
+ var(--_ctm-tab-dn-pn-ds-br-cr, var(--_ctm-dn-pn-ds-br-cr))
988
+ )
989
+ );
990
+ border-style: var(
991
+ --_show-pn-ds-border,
992
+ var(
993
+ --_ctm-mob-dn-pn-ds-br-se,
994
+ var(--_ctm-tab-dn-pn-ds-br-se, var(--_ctm-dn-pn-ds-br-se))
995
+ )
996
+ );
997
+ border-width: var(
998
+ --_show-pn-ds-border,
999
+ var(
1000
+ --_ctm-mob-dn-pn-ds-br-wh,
1001
+ var(--_ctm-tab-dn-pn-ds-br-wh, var(--_ctm-dn-pn-ds-br-wh))
1002
+ )
1003
+ );
1004
+ box-shadow: $pnDsShadow;
1005
+
1006
+ border-radius: 50%;
1007
+ display: flex;
1008
+ align-items: center;
1009
+ content: "";
1010
+ }
1011
+ .embla__dot--selected:after {
1012
+ // Keeps the existing 1px ring on the active dot and still honours a configured
1013
+ // shadow — this rule would otherwise shadow the one above it entirely.
1014
+ box-shadow: $pnDsShadow;
1015
+ background-color: var(
1016
+ --_ctm-mob-dn-pn-ds-ct-dt-cr,
1017
+ var(--_ctm-tab-dn-pn-ds-ct-dt-cr, var(--_ctm-dn-pn-ds-ct-dt-cr))
1018
+ );
1019
+ }
1020
+ // Pagination Line (design > Pagination Line). Border, border radius and shadow
1021
+ // sit on the line itself. The two toggles arrive as data attributes from the
1022
+ // element; `none` short-circuits the whole var chain the way Item Style does.
1023
+ // The 6px radius fallback keeps pages saved before Border Radius existed
1024
+ // looking as they did.
1025
+ &[data-slider-control="Pagination Line"] {
1026
+ &[data-line-show-border="false"] {
1027
+ --_show-pn-le-border: none;
1028
+ }
1029
+ &[data-line-show-shadow="false"] {
1030
+ --_show-pn-le-shadow: none;
1031
+ }
1032
+
1033
+ .embla__dot {
1034
+ width: var(
1035
+ --_ctm-mob-dn-pn-le-le-wh,
1036
+ var(--_ctm-tab-dn-pn-le-le-wh, var(--_ctm-dn-pn-le-le-wh))
1037
+ );
1038
+ height: var(
1039
+ --_ctm-mob-dn-pn-le-le-ht,
1040
+ var(--_ctm-tab-dn-pn-le-le-ht, var(--_ctm-dn-pn-le-le-ht))
1041
+ );
1042
+ // Draw the border inside the configured Line Width / Height rather than
1043
+ // adding to it, so the track stays the size set in the panel.
1044
+ box-sizing: border-box;
1045
+ background-color: var(
1046
+ --_ctm-mob-dn-pn-le-or-le-cr,
1047
+ var(--_ctm-tab-dn-pn-le-or-le-cr, var(--_ctm-dn-pn-le-or-le-cr))
1048
+ );
1049
+
1050
+ border-color: var(
1051
+ --_show-pn-le-border,
1052
+ var(
1053
+ --_ctm-mob-dn-pn-le-br-cr,
1054
+ var(--_ctm-tab-dn-pn-le-br-cr, var(--_ctm-dn-pn-le-br-cr))
1055
+ )
1056
+ );
1057
+ border-style: var(
1058
+ --_show-pn-le-border,
1059
+ var(
1060
+ --_ctm-mob-dn-pn-le-br-se,
1061
+ var(--_ctm-tab-dn-pn-le-br-se, var(--_ctm-dn-pn-le-br-se))
1062
+ )
1063
+ );
1064
+ border-width: var(
1065
+ --_show-pn-le-border,
1066
+ var(
1067
+ --_ctm-mob-dn-pn-le-br-wh,
1068
+ var(--_ctm-tab-dn-pn-le-br-wh, var(--_ctm-dn-pn-le-br-wh))
1069
+ )
1070
+ );
1071
+ border-radius: var(
1072
+ --_ctm-mob-dn-pn-le-br-rs,
1073
+ var(--_ctm-tab-dn-pn-le-br-rs, var(--_ctm-dn-pn-le-br-rs, 6px))
1074
+ );
1075
+
1076
+ box-shadow: var(
1077
+ --_show-pn-le-shadow,
1078
+ var(
1079
+ --_ctm-mob-dn-pn-le-sw-ae,
1080
+ var(--_ctm-tab-dn-pn-le-sw-ae, var(--_ctm-dn-pn-le-sw-ae))
1081
+ )
1082
+ var(
1083
+ --_ctm-mob-dn-pn-le-sw-br,
1084
+ var(--_ctm-tab-dn-pn-le-sw-br, var(--_ctm-dn-pn-le-sw-br))
1085
+ )
1086
+ var(
1087
+ --_ctm-mob-dn-pn-le-sw-sd,
1088
+ var(--_ctm-tab-dn-pn-le-sw-sd, var(--_ctm-dn-pn-le-sw-sd))
1089
+ )
1090
+ var(
1091
+ --_ctm-mob-dn-pn-le-sw-cr,
1092
+ var(--_ctm-tab-dn-pn-le-sw-cr, var(--_ctm-dn-pn-le-sw-cr))
1093
+ )
1094
+ );
1095
+ }
1096
+
1097
+ // The Pagination Dots rules above style `.embla__dot:after` unscoped, so the
1098
+ // line's overlay would otherwise inherit the Dots' border, circular radius and
1099
+ // shadow — a second, wrongly-shaped outline on top of the line's own border.
1100
+ // The line carries its border on the track, so the overlay just fills whatever
1101
+ // the border leaves.
1102
+ .embla__dot:after {
1103
+ width: 100%;
1104
+ height: 100%;
1105
+ border: 0;
1106
+ box-shadow: none;
1107
+ border-radius: inherit;
1108
+ }
1109
+
1110
+ .embla__dot--selected:after {
1111
+ background-color: var(
1112
+ --_ctm-mob-dn-pn-le-ct-le-cr,
1113
+ var(--_ctm-tab-dn-pn-le-ct-le-cr, var(--_ctm-dn-pn-le-ct-le-cr))
1114
+ );
1115
+ }
1116
+ }
1117
+ }
1118
+
1119
+ .embla__thumbs {
1120
+ width: 100%;
1121
+ height: var(--_ctm-mob-lt-tl-ht, var(--_ctm-tab-lt-tl-ht, var(--_ctm-lt-tl-ht)));
1122
+ margin-top: var(
1123
+ --_ctm-mob-lt-sr-ad-tl-gp,
1124
+ var(--_ctm-tab-lt-sr-ad-tl-gp, var(--_ctm-lt-sr-ad-tl-gp))
1125
+ );
1126
+
1127
+ position: relative;
1128
+ display: flex;
1129
+ flex-direction: row;
1130
+ align-items: center;
1131
+ overflow: hidden;
1132
+
1133
+ // Thumbnail arrow shared styles
1134
+ .thumb-prev-button,
1135
+ .thumb-next-button {
1136
+ flex-shrink: 0;
1137
+ padding: 6px;
1138
+ border-radius: 50%;
1139
+ border: none;
1140
+ cursor: pointer;
1141
+ outline: none;
1142
+ display: flex;
1143
+ align-items: center;
1144
+ justify-content: center;
1145
+ background-color: transparent;
1146
+ z-index: 1;
1147
+
1148
+ width: var(
1149
+ --_ctm-mob-dn-tl-as-aw-se,
1150
+ var(--_ctm-tab-dn-tl-as-aw-se, var(--_ctm-dn-tl-as-aw-se, 30px))
1151
+ );
1152
+ height: var(
1153
+ --_ctm-mob-dn-tl-as-aw-se,
1154
+ var(--_ctm-tab-dn-tl-as-aw-se, var(--_ctm-dn-tl-as-aw-se, 30px))
1155
+ );
1156
+
1157
+ span {
1158
+ display: flex;
1159
+ svg {
1160
+ width: calc(
1161
+ var(
1162
+ --_ctm-mob-dn-tl-as-aw-se,
1163
+ var(--_ctm-tab-dn-tl-as-aw-se, var(--_ctm-dn-tl-as-aw-se, 30px))
1164
+ ) *
1165
+ 0.5
1166
+ );
1167
+ height: calc(
1168
+ var(
1169
+ --_ctm-mob-dn-tl-as-aw-se,
1170
+ var(--_ctm-tab-dn-tl-as-aw-se, var(--_ctm-dn-tl-as-aw-se, 30px))
1171
+ ) *
1172
+ 0.5
1173
+ );
1174
+ path {
1175
+ stroke: var(
1176
+ --_ctm-mob-dn-tl-as-aw-cr,
1177
+ var(--_ctm-tab-dn-tl-as-aw-cr, var(--_ctm-dn-tl-as-aw-cr))
1178
+ );
1179
+ }
1180
+ }
1181
+ }
1182
+
1183
+ &:disabled {
1184
+ opacity: 0.3;
1185
+ cursor: not-allowed;
1186
+ }
1187
+ }
1188
+
1189
+ &[data-background-shape="Round"] {
1190
+ .thumb-prev-button,
1191
+ .thumb-next-button {
1192
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
1193
+ &:not(:disabled):hover {
1194
+ @include BgColorLighter(var(--_ctm-dn-tl-as-bd-cr), 5%);
1195
+ }
1196
+ }
1197
+ }
1198
+ &[data-background-shape="None"] {
1199
+ .thumb-prev-button,
1200
+ .thumb-next-button {
1201
+ border-radius: 0;
1202
+ }
1203
+ }
1204
+ &[data-background-shape="Square"] {
1205
+ .thumb-prev-button,
1206
+ .thumb-next-button {
1207
+ border-radius: 4px;
1208
+ }
1209
+ }
1210
+
1211
+ .embla__thumbs__viewport {
1212
+ width: 100%;
1213
+ height: 100%;
1214
+ flex: 1;
1215
+ min-width: 0;
1216
+ position: relative;
1217
+ display: flex;
1218
+ flex-direction: column;
1219
+
1220
+ overflow: hidden;
1221
+ }
1222
+ .embla__thumbs__container {
1223
+ display: flex;
1224
+ flex-direction: row;
1225
+ justify-content: prepareMediaVariable(--_ctm-lt-an-is);
1226
+ gap: var(--_ctm-mob-lt-tl-sg, var(--_ctm-tab-lt-tl-sg, var(--_ctm-lt-tl-sg)));
1227
+
1228
+ width: 100%;
1229
+
1230
+ .embla__thumbs__slide {
1231
+ flex-shrink: 0;
1232
+ box-sizing: border-box;
1233
+ max-width: var(--_ctm-mob-lt-tl-wh, var(--_ctm-tab-lt-tl-wh, var(--_ctm-lt-tl-wh)));
1234
+ height: var(--_ctm-mob-lt-tl-ht, var(--_ctm-tab-lt-tl-ht, var(--_ctm-lt-tl-ht)));
1235
+ cursor: pointer;
1236
+ overflow: hidden;
1237
+ padding: var(--_ctm-mob-lt-tl-pg, var(--_ctm-tab-lt-tl-pg, var(--_ctm-lt-tl-pg)));
1238
+
1239
+ // thumbnailStyle - hoverState
1240
+ &:hover {
1241
+ --_sf-hr-bd-cr: var(
1242
+ --_ctm-mob-dn-tl-se-hr-se-bd-cr,
1243
+ var(--_ctm-tab-dn-tl-se-hr-se-bd-cr, var(--_ctm-dn-tl-se-hr-se-bd-cr))
1244
+ );
1245
+ --_sf-hr-br-cr: var(
1246
+ --_ctm-mob-dn-tl-se-hr-se-br-cr,
1247
+ var(--_ctm-tab-dn-tl-se-hr-se-br-cr, var(--_ctm-dn-tl-se-hr-se-br-cr))
1248
+ );
1249
+ --_sf-hr-br-se: var(
1250
+ --_ctm-mob-dn-tl-se-hr-se-br-se,
1251
+ var(--_ctm-tab-dn-tl-se-hr-se-br-se, var(--_ctm-dn-tl-se-hr-se-br-se))
1252
+ );
1253
+ --_sf-hr-br-wh: var(
1254
+ --_ctm-mob-dn-tl-se-hr-se-br-wh,
1255
+ var(--_ctm-tab-dn-tl-se-hr-se-br-wh, var(--_ctm-dn-tl-se-hr-se-br-wh))
1256
+ );
1257
+ --_sf-hr-br-rs: var(
1258
+ --_ctm-mob-dn-tl-se-hr-se-br-rs,
1259
+ var(--_ctm-tab-dn-tl-se-hr-se-br-rs, var(--_ctm-dn-tl-se-hr-se-br-rs))
1260
+ );
1261
+ --_sf-hr-sw-ae: var(
1262
+ --_ctm-mob-dn-tl-se-hr-se-sw-ae,
1263
+ var(--_ctm-tab-dn-tl-se-hr-se-sw-ae, var(--_ctm-dn-tl-se-hr-se-sw-ae))
1264
+ );
1265
+ --_sf-hr-sw-br: var(
1266
+ --_ctm-mob-dn-tl-se-hr-se-sw-br,
1267
+ var(--_ctm-tab-dn-tl-se-hr-se-sw-br, var(--_ctm-dn-tl-se-hr-se-sw-br))
1268
+ );
1269
+ --_sf-hr-sw-sd: var(
1270
+ --_ctm-mob-dn-tl-se-hr-se-sw-sd,
1271
+ var(--_ctm-tab-dn-tl-se-hr-se-sw-sd, var(--_ctm-dn-tl-se-hr-se-sw-sd))
1272
+ );
1273
+ --_sf-hr-sw-cr: var(
1274
+ --_ctm-mob-dn-tl-se-hr-se-sw-cr,
1275
+ var(--_ctm-tab-dn-tl-se-hr-se-sw-cr, var(--_ctm-dn-tl-se-hr-se-sw-cr))
1276
+ );
1277
+ }
1278
+
1279
+ // thumbnailStyle - defaultState
1280
+ background-color: var(
1281
+ --_sf-hr-bd-cr,
1282
+ prepareMediaVariable(--_ctm-dn-tl-se-dt-se-bd-cr)
1283
+ );
1284
+ border-color: var(--_sf-hr-br-cr, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-br-cr));
1285
+ border-style: var(--_sf-hr-br-se, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-br-se));
1286
+ border-width: var(--_sf-hr-br-wh, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-br-wh));
1287
+ border-radius: var(--_sf-hr-br-rs, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-br-rs));
1288
+ box-shadow: var(--_sf-hr-sw-ae, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-sw-ae))
1289
+ var(--_sf-hr-sw-br, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-sw-br))
1290
+ var(--_sf-hr-sw-sd, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-sw-sd))
1291
+ var(--_sf-hr-sw-cr, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-sw-cr));
1292
+
1293
+ // thumbnailStyle - selectedState
1294
+ &[data-selected="true"] {
1295
+ --_sf-sd-bd-cr: var(
1296
+ --_ctm-mob-dn-tl-se-sd-se-bd-cr,
1297
+ var(--_ctm-tab-dn-tl-se-sd-se-bd-cr, var(--_ctm-dn-tl-se-sd-se-bd-cr))
1298
+ );
1299
+ --_sf-sd-br-cr: var(
1300
+ --_ctm-mob-dn-tl-se-sd-se-br-cr,
1301
+ var(--_ctm-tab-dn-tl-se-sd-se-br-cr, var(--_ctm-dn-tl-se-sd-se-br-cr))
1302
+ );
1303
+ --_sf-sd-br-se: var(
1304
+ --_ctm-mob-dn-tl-se-sd-se-br-se,
1305
+ var(--_ctm-tab-dn-tl-se-sd-se-br-se, var(--_ctm-dn-tl-se-sd-se-br-se))
1306
+ );
1307
+ --_sf-sd-br-wh: var(
1308
+ --_ctm-mob-dn-tl-se-sd-se-br-wh,
1309
+ var(--_ctm-tab-dn-tl-se-sd-se-br-wh, var(--_ctm-dn-tl-se-sd-se-br-wh))
1310
+ );
1311
+ --_sf-sd-br-rs: var(
1312
+ --_ctm-mob-dn-tl-se-sd-se-br-rs,
1313
+ var(--_ctm-tab-dn-tl-se-sd-se-br-rs, var(--_ctm-dn-tl-se-sd-se-br-rs))
1314
+ );
1315
+ --_sf-sd-sw-ae: var(
1316
+ --_ctm-mob-dn-tl-se-sd-se-sw-ae,
1317
+ var(--_ctm-tab-dn-tl-se-sd-se-sw-ae, var(--_ctm-dn-tl-se-sd-se-sw-ae))
1318
+ );
1319
+ --_sf-sd-sw-br: var(
1320
+ --_ctm-mob-dn-tl-se-sd-se-sw-br,
1321
+ var(--_ctm-tab-dn-tl-se-sd-se-sw-br, var(--_ctm-dn-tl-se-sd-se-sw-br))
1322
+ );
1323
+ --_sf-sd-sw-sd: var(
1324
+ --_ctm-mob-dn-tl-se-sd-se-sw-sd,
1325
+ var(--_ctm-tab-dn-tl-se-sd-se-sw-sd, var(--_ctm-dn-tl-se-sd-se-sw-sd))
1326
+ );
1327
+ --_sf-sd-sw-cr: var(
1328
+ --_ctm-mob-dn-tl-se-sd-se-sw-cr,
1329
+ var(--_ctm-tab-dn-tl-se-sd-se-sw-cr, var(--_ctm-dn-tl-se-sd-se-sw-cr))
1330
+ );
1331
+
1332
+ background-color: var(
1333
+ --_sf-sd-bd-cr,
1334
+ prepareMediaVariable(--_ctm-dn-tl-se-dt-se-bd-cr)
1335
+ );
1336
+ border-color: var(--_sf-sd-br-cr, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-br-cr));
1337
+ border-style: var(--_sf-sd-br-se, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-br-se));
1338
+ border-width: var(--_sf-sd-br-wh, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-br-wh));
1339
+ border-radius: var(--_sf-sd-br-rs, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-br-rs));
1340
+ box-shadow: var(--_sf-sd-sw-ae, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-sw-ae))
1341
+ var(--_sf-sd-sw-br, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-sw-br))
1342
+ var(--_sf-sd-sw-sd, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-sw-sd))
1343
+ var(--_sf-sd-sw-cr, prepareMediaVariable(--_ctm-dn-tl-se-dt-se-sw-cr));
1344
+ }
1345
+
1346
+ & img {
1347
+ width: 100%;
1348
+ height: 100%;
1349
+ object-fit: cover;
1350
+ }
1351
+ }
1352
+ }
1353
+ }
1354
+ }
1355
+
1356
+ .gallery__slide {
1357
+ // Containing block for the item header. With text position "On Image" that header
1358
+ // is `position: absolute`; without this it resolved against `.embla__viewport`, so
1359
+ // `width: 100%` spanned the whole slider and it sat centred across every slide
1360
+ // instead of over its own image. It also puts the slide back in the containing
1361
+ // block chain, so the `overflow: hidden` below actually clips the header.
1362
+ position: relative;
1363
+ width: 100%;
1364
+ height: 100%;
1365
+ display: flex;
1366
+ // Same reason as the slide above — let the caption wrap to the slide.
1367
+ min-width: 0;
1368
+ // flex-direction: column;
1369
+
1370
+ background-color: var(
1371
+ --_ctm-mob-dn-im-se-bd-cr,
1372
+ var(--_ctm-tab-dn-im-se-bd-cr, var(--_ctm-dn-im-se-bd-cr))
1373
+ );
1374
+
1375
+ border-color: var(
1376
+ --_ctm-mob-dn-im-se-br-cr,
1377
+ var(--_ctm-tab-dn-im-se-br-cr, var(--_ctm-dn-im-se-br-cr))
1378
+ );
1379
+
1380
+ border-style: var(
1381
+ --_ctm-mob-dn-im-se-br-se,
1382
+ var(--_ctm-tab-dn-im-se-br-se, var(--_ctm-dn-im-se-br-se))
1383
+ );
1384
+
1385
+ border-width: var(
1386
+ --_ctm-mob-dn-im-se-br-wh,
1387
+ var(--_ctm-tab-dn-im-se-br-wh, var(--_ctm-dn-im-se-br-wh))
1388
+ );
1389
+
1390
+ border-radius: var(
1391
+ --_ctm-mob-dn-im-se-br-rs,
1392
+ var(--_ctm-tab-dn-im-se-br-rs, var(--_ctm-dn-im-se-br-rs))
1393
+ );
1394
+
1395
+ box-shadow: var(
1396
+ --_show-shadow,
1397
+ var(--_ctm-mob-dn-im-se-sw-ae, var(--_ctm-tab-dn-im-se-sw-ae, var(--_ctm-dn-im-se-sw-ae)))
1398
+ var(--_ctm-mob-dn-im-se-sw-br, var(--_ctm-tab-dn-im-se-sw-br, var(--_ctm-dn-im-se-sw-br)))
1399
+ var(--_ctm-mob-dn-im-se-sw-sd, var(--_ctm-tab-dn-im-se-sw-sd, var(--_ctm-dn-im-se-sw-sd)))
1400
+ var(--_ctm-mob-dn-im-se-sw-cr, var(--_ctm-tab-dn-im-se-sw-cr, var(--_ctm-dn-im-se-sw-cr)))
1401
+ );
1402
+
1403
+ gap: var(
1404
+ --_ctm-mob-dn-im-lt-gy-tt-ad-im-sg,
1405
+ var(--_ctm-tab-dn-im-lt-gy-tt-ad-im-sg, var(--_ctm-dn-im-lt-gy-tt-ad-im-sg))
1406
+ );
1407
+
1408
+ // Clip the image to the item's border radius; without this the img's
1409
+ // square corners paint over the rounded container.
1410
+ overflow: hidden;
1411
+
1412
+ .gallery-header {
1413
+ // text-align: var(--_ctm-dn-gy-lt-an, var(--_tst-dn-gy-lt-an));
1414
+ // line-height: var(--_ctm-dn-gy-lt-tt-ad-dn-sg, var(--_tst-dn-gy-lt-tt-ad-dn-sg));
1415
+ display: flex;
1416
+ flex-direction: column;
1417
+
1418
+ gap: var(
1419
+ --_ctm-mob-dn-im-tt-cr-lt-te-ad-dn-sg,
1420
+ var(--_ctm-tab-dn-im-tt-cr-lt-te-ad-dn-sg, var(--_ctm-dn-im-tt-cr-lt-te-ad-dn-sg))
1421
+ );
1422
+
1423
+ padding-block: var(
1424
+ --_ctm-mob-dn-im-tt-cr-lt-tt-vl-pg,
1425
+ var(--_ctm-tab-dn-im-tt-cr-lt-tt-vl-pg, var(--_ctm-dn-im-tt-cr-lt-tt-vl-pg))
1426
+ );
1427
+
1428
+ padding-inline: var(
1429
+ --_ctm-mob-dn-im-tt-cr-lt-tt-hl-pg,
1430
+ var(--_ctm-tab-dn-im-tt-cr-lt-tt-hl-pg, var(--_ctm-dn-im-tt-cr-lt-tt-hl-pg))
1431
+ );
1432
+
1433
+ background-color: var(
1434
+ --_ctm-mob-dn-im-tt-cr-dn-bd-cr,
1435
+ var(--_ctm-tab-dn-im-tt-cr-dn-bd-cr, var(--_ctm-dn-im-tt-cr-dn-bd-cr))
1436
+ );
1437
+
1438
+ width: 100%;
1439
+ // Shrink to the slide, and never below the height the wrapped caption needs —
1440
+ // the same pair the widget-level header uses.
1441
+ min-width: 0;
1442
+ flex: 0 0 auto;
1443
+
1444
+ border-color: var(
1445
+ --_ctm-mob-dn-im-tt-cr-dn-br-cr,
1446
+ var(--_ctm-tab-dn-im-tt-cr-dn-br-cr, var(--_ctm-dn-im-tt-cr-dn-br-cr))
1447
+ );
1448
+
1449
+ border-style: var(
1450
+ --_ctm-mob-dn-im-tt-cr-dn-br-se,
1451
+ var(--_ctm-tab-dn-im-tt-cr-dn-br-se, var(--_ctm-dn-im-tt-cr-dn-br-se))
1452
+ );
1453
+
1454
+ border-width: var(
1455
+ --_ctm-mob-dn-im-tt-cr-dn-br-wh,
1456
+ var(--_ctm-tab-dn-im-tt-cr-dn-br-wh, var(--_ctm-dn-im-tt-cr-dn-br-wh))
1457
+ );
1458
+
1459
+ border-radius: var(
1460
+ --_ctm-mob-dn-im-tt-cr-dn-br-rs,
1461
+ var(--_ctm-tab-dn-im-tt-cr-dn-br-rs, var(--_ctm-dn-im-tt-cr-dn-br-rs))
1462
+ );
1463
+
1464
+ box-shadow: var(
1465
+ --_show-shadow,
1466
+ var(
1467
+ --_ctm-mob-dn-im-tt-cr-dn-sw-ae,
1468
+ var(--_ctm-tab-dn-im-tt-cr-dn-sw-ae, var(--_ctm-dn-im-tt-cr-dn-sw-ae))
1469
+ )
1470
+ var(
1471
+ --_ctm-mob-dn-im-tt-cr-dn-sw-br,
1472
+ var(--_ctm-tab-dn-im-tt-cr-dn-sw-br, var(--_ctm-dn-im-tt-cr-dn-sw-br))
1473
+ )
1474
+ var(
1475
+ --_ctm-mob-dn-im-tt-cr-dn-sw-sd,
1476
+ var(--_ctm-tab-dn-im-tt-cr-dn-sw-sd, var(--_ctm-dn-im-tt-cr-dn-sw-sd))
1477
+ )
1478
+ var(
1479
+ --_ctm-mob-dn-im-tt-cr-dn-sw-cr,
1480
+ var(--_ctm-tab-dn-im-tt-cr-dn-sw-cr, var(--_ctm-dn-im-tt-cr-dn-sw-cr))
1481
+ )
1482
+ );
1483
+
1484
+ & h3 {
1485
+ color: var(--_ctm-mob-dn-im-se-cr, var(--_ctm-tab-dn-im-se-cr, var(--_ctm-dn-im-se-cr)));
1486
+
1487
+ font-family: var(
1488
+ --_ctm-mob-dn-im-se-ft-fy,
1489
+ var(--_ctm-tab-dn-im-se-ft-fy, var(--_ctm-dn-im-se-ft-fy))
1490
+ );
1491
+ text-transform: var(
1492
+ --_ctm-mob-dn-im-se-tt-tm,
1493
+ var(--_ctm-tab-dn-im-se-tt-tm, var(--_ctm-dn-im-se-tt-tm))
1494
+ );
1495
+ word-wrap: var(
1496
+ --_ctm-mob-dn-im-se-wd-wp,
1497
+ var(--_ctm-tab-dn-im-se-wd-wp, var(--_ctm-dn-im-se-wd-wp))
1498
+ );
1499
+ word-break: var(
1500
+ --_ctm-mob-dn-im-se-wd-bk,
1501
+ var(--_ctm-tab-dn-im-se-wd-bk, var(--_ctm-dn-im-se-wd-bk))
1502
+ );
1503
+
1504
+ &#{$overflowSelector} {
1505
+ @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
1506
+ }
1507
+
1508
+ font-size: var(
1509
+ --_ctm-mob-dn-im-se-ft-se,
1510
+ var(--_ctm-tab-dn-im-se-ft-se, var(--_ctm-dn-im-se-ft-se))
1511
+ );
1512
+
1513
+ font-weight: var(
1514
+ --_ctm-mob-dn-im-se-ft-wt,
1515
+ var(--_ctm-tab-dn-im-se-ft-wt, var(--_ctm-dn-im-se-ft-wt))
1516
+ );
1517
+
1518
+ font-style: var(
1519
+ --_ctm-mob-dn-im-se-ft-se-ic,
1520
+ var(--_ctm-tab-dn-im-se-ft-se-ic, var(--_ctm-dn-im-se-ft-se-ic))
1521
+ );
1522
+
1523
+ text-align: var(
1524
+ --_ctm-mob-dn-im-se-tt-an,
1525
+ var(--_ctm-tab-dn-im-se-tt-an, var(--_ctm-dn-im-se-tt-an))
1526
+ );
1527
+
1528
+ letter-spacing: var(
1529
+ --_ctm-mob-dn-im-se-lr-sg,
1530
+ var(--_ctm-tab-dn-im-se-lr-sg, var(--_ctm-dn-im-se-lr-sg))
1531
+ );
1532
+
1533
+ line-height: var(
1534
+ --_ctm-mob-dn-im-se-le-ht,
1535
+ var(--_ctm-tab-dn-im-se-le-ht, var(--_ctm-dn-im-se-le-ht))
1536
+ );
1537
+
1538
+ text-decoration: var(
1539
+ --_ctm-mob-dn-im-se-ue,
1540
+ var(--_ctm-tab-dn-im-se-ue, var(--_ctm-dn-im-se-ue))
1541
+ );
1542
+ }
1543
+
1544
+ & p {
1545
+ color: var(
1546
+ --_ctm-mob-dn-im-se-cr-dc,
1547
+ var(--_ctm-tab-dn-im-se-cr-dc, var(--_ctm-dn-im-se-cr-dc))
1548
+ );
1549
+
1550
+ font-family: var(
1551
+ --_ctm-mob-dn-im-se-ft-fy-dc,
1552
+ var(--_ctm-tab-dn-im-se-ft-fy-dc, var(--_ctm-dn-im-se-ft-fy-dc))
1553
+ );
1554
+ text-transform: var(
1555
+ --_ctm-mob-dn-im-se-tt-tm-dc,
1556
+ var(--_ctm-tab-dn-im-se-tt-tm-dc, var(--_ctm-dn-im-se-tt-tm-dc))
1557
+ );
1558
+ word-wrap: var(
1559
+ --_ctm-mob-dn-im-se-wd-wp-dc,
1560
+ var(--_ctm-tab-dn-im-se-wd-wp-dc, var(--_ctm-dn-im-se-wd-wp-dc))
1561
+ );
1562
+ word-break: var(
1563
+ --_ctm-mob-dn-im-se-wd-bk-dc,
1564
+ var(--_ctm-tab-dn-im-se-wd-bk-dc, var(--_ctm-dn-im-se-wd-bk-dc))
1565
+ );
1566
+
1567
+ &#{$overflowSelector} {
1568
+ @include restrictToLinesShow(#{var(--_sf-line-clamp-desc, 1)});
1569
+ }
1570
+
1571
+ font-size: var(
1572
+ --_ctm-mob-dn-im-se-ft-se-dc,
1573
+ var(--_ctm-tab-dn-im-se-ft-se-dc, var(--_ctm-dn-im-se-ft-se-dc))
1574
+ );
1575
+
1576
+ font-weight: var(
1577
+ --_ctm-mob-dn-im-se-ft-wt-dc,
1578
+ var(--_ctm-tab-dn-im-se-ft-wt-dc, var(--_ctm-dn-im-se-ft-wt-dc))
1579
+ );
1580
+
1581
+ font-style: var(
1582
+ --_ctm-mob-dn-im-se-ft-se-ic-dc,
1583
+ var(--_ctm-tab-dn-im-se-ft-se-ic-dc, var(--_ctm-dn-im-se-ft-se-ic-dc))
1584
+ );
1585
+
1586
+ text-align: var(
1587
+ --_ctm-mob-dn-im-se-tt-an-dc,
1588
+ var(--_ctm-tab-dn-im-se-tt-an-dc, var(--_ctm-dn-im-se-tt-an-dc))
1589
+ );
1590
+
1591
+ letter-spacing: var(
1592
+ --_ctm-mob-dn-im-se-lr-sg-dc,
1593
+ var(--_ctm-tab-dn-im-se-lr-sg-dc, var(--_ctm-dn-im-se-lr-sg-dc))
1594
+ );
1595
+
1596
+ line-height: var(
1597
+ --_ctm-mob-dn-im-se-le-ht-dc,
1598
+ var(--_ctm-tab-dn-im-se-le-ht-dc, var(--_ctm-dn-im-se-le-ht-dc))
1599
+ );
1600
+
1601
+ text-decoration: var(
1602
+ --_ctm-mob-dn-im-se-ue-dc,
1603
+ var(--_ctm-tab-dn-im-se-ue-dc, var(--_ctm-dn-im-se-ue-dc))
1604
+ );
1605
+ }
1606
+
1607
+ // h3 {
1608
+ // margin-bottom: var(--_mb-4);
1609
+ // }
1610
+ }
1611
+ > img {
1612
+ object-fit: cover;
1613
+ }
1614
+ &[data-text-position="On Image"] {
1615
+ .gallery-header {
1616
+ width: 100%;
1617
+ // height: 100%;
1618
+ position: absolute;
1619
+ }
1620
+
1621
+ &[data-widget-alignment="top"] {
1622
+ // align-items: flex-start;
1623
+
1624
+ .gallery-header {
1625
+ top: 0;
1626
+
1627
+ justify-content: flex-start;
1628
+ }
1629
+ }
1630
+ &[data-widget-alignment="center"] {
1631
+ // align-items: center;
1632
+
1633
+ .gallery-header {
1634
+ top: 50%;
1635
+ transform: translateY(-50%);
1636
+ justify-content: center;
1637
+ }
1638
+ }
1639
+ &[data-widget-alignment="bottom"] {
1640
+ // align-items: flex-end;
1641
+ .gallery-header {
1642
+ bottom: 0;
1643
+
1644
+ justify-content: flex-end;
1645
+ }
1646
+ }
1647
+ }
1648
+
1649
+ &[data-text-position="top"] {
1650
+ flex-direction: column;
1651
+ }
1652
+
1653
+ &[data-text-position="bottom"] {
1654
+ flex-direction: column-reverse;
1655
+ }
1656
+ &[data-text-position="left"] {
1657
+ flex-direction: row;
1658
+
1659
+ .gallery-header {
1660
+ // The item's own Text Container Width, not the widget's. This read
1661
+ // --_ctm-dn-gy-wt-lt-tt-cr-wh, which is always emitted as 100%; combined with
1662
+ // the header's `flex: 0 0 auto` it never gave any of that width back, so the
1663
+ // image was squeezed to 0px and vanished. There is no item-level control yet,
1664
+ // so this falls back to fit-content and the caption sizes to its own text.
1665
+ width: fit-content;
1666
+ max-width: prepareMediaVariable(--_ctm-dn-im-lt-tt-cr-wh, 100%);
1667
+ min-width: 0;
1668
+ // Beside the image the caption has to be able to give way. The base rule's
1669
+ // flex-shrink 0 is right for the stacked positions, not for these.
1670
+ flex-shrink: 1;
1671
+ height: 100%;
1672
+ }
1673
+
1674
+ // The image takes whatever the caption leaves. Scoped to the row directions —
1675
+ // in top/bottom the main axis is vertical and a flex-basis here would break it.
1676
+ > img {
1677
+ flex: 1 1 0;
1678
+ min-width: 0;
1679
+ }
1680
+ &[data-widget-alignment="top"] {
1681
+ align-items: flex-start;
1682
+
1683
+ .gallery-header {
1684
+ justify-content: flex-start;
1685
+ }
1686
+ }
1687
+ &[data-widget-alignment="center"] {
1688
+ align-items: center;
1689
+
1690
+ .gallery-header {
1691
+ justify-content: center;
1692
+ }
1693
+ }
1694
+ &[data-widget-alignment="bottom"] {
1695
+ align-items: flex-end;
1696
+
1697
+ .gallery-header {
1698
+ justify-content: flex-end;
1699
+ }
1700
+ }
1701
+ }
1702
+ &[data-text-position="right"] {
1703
+ flex-direction: row-reverse;
1704
+ .gallery-header {
1705
+ // The item's own Text Container Width, not the widget's. This read
1706
+ // --_ctm-dn-gy-wt-lt-tt-cr-wh, which is always emitted as 100%; combined with
1707
+ // the header's `flex: 0 0 auto` it never gave any of that width back, so the
1708
+ // image was squeezed to 0px and vanished. There is no item-level control yet,
1709
+ // so this falls back to fit-content and the caption sizes to its own text.
1710
+ width: fit-content;
1711
+ max-width: prepareMediaVariable(--_ctm-dn-im-lt-tt-cr-wh, 100%);
1712
+ min-width: 0;
1713
+ // Beside the image the caption has to be able to give way. The base rule's
1714
+ // flex-shrink 0 is right for the stacked positions, not for these.
1715
+ flex-shrink: 1;
1716
+ height: 100%;
1717
+ }
1718
+
1719
+ // The image takes whatever the caption leaves. Scoped to the row directions —
1720
+ // in top/bottom the main axis is vertical and a flex-basis here would break it.
1721
+ > img {
1722
+ flex: 1 1 0;
1723
+ min-width: 0;
1724
+ }
1725
+
1726
+ &[data-widget-alignment="top"] {
1727
+ align-items: flex-start;
1728
+
1729
+ .gallery-header {
1730
+ justify-content: flex-start;
1731
+ }
1732
+ }
1733
+ &[data-widget-alignment="center"] {
1734
+ align-items: center;
1735
+
1736
+ .gallery-header {
1737
+ justify-content: center;
1738
+ }
1739
+ }
1740
+ &[data-widget-alignment="bottom"] {
1741
+ align-items: flex-end;
1742
+
1743
+ .gallery-header {
1744
+ justify-content: flex-end;
1745
+ }
1746
+ }
1747
+ }
1748
+ & > img {
1749
+ width: 100%;
1750
+ height: 100%;
1751
+ // object-fit: cover;
1752
+
1753
+ // object-fit: var(--_ctm-dn-im-se-ot-ft, var(--_tst-dn-im-se-ot-ft));
1754
+ // object-fit: cover;
1755
+
1756
+ &[data-has-title="true"] {
1757
+ height: 85%;
1758
+ }
1759
+
1760
+ /* display: block; */
1761
+ }
1762
+ }
1763
+
1764
+ .load__more__div {
1765
+ display: flex;
1766
+ justify-content: center;
1767
+ margin-block: 12px;
1768
+ & > button {
1769
+ padding-inline: 24px;
1770
+ border: 1px solid gray;
1771
+ padding-block: 12px;
1772
+ border-radius: 6px;
1773
+ }
1774
+ }
1775
+ }
1776
+ }