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

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