@sc-360-v2/storefront-cms-library 0.5.69 → 0.5.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/add-existing-form.scss +68 -68
- package/dist/add-products-tab-details.scss +4071 -4071
- package/dist/add-products-tab-uom-details.scss +1106 -1106
- package/dist/add-products-tab.scss +2377 -2377
- package/dist/allocation-header-quota-details.scss +609 -609
- package/dist/allocations-quota-details.scss +525 -525
- package/dist/amount-estimator.scss +1192 -1192
- package/dist/animation-control.scss +23 -23
- package/dist/badge.scss +408 -408
- package/dist/brand-basic-elements.scss +387 -387
- package/dist/brand.scss +142 -142
- package/dist/breadcrumbs.scss +966 -966
- package/dist/builder.js +1 -1
- package/dist/bulk-order-pad.scss +692 -692
- package/dist/bundleCategories.scss +301 -301
- package/dist/bundleDetails.scss +6189 -6189
- package/dist/buy-for-tab-container.scss +141 -141
- package/dist/buy-for-tab.scss +649 -649
- package/dist/buy-for-tabs-container-item.scss +80 -80
- package/dist/buyForPopup.scss +339 -339
- package/dist/cart-details.scss +3986 -3986
- package/dist/cart-products-sidebar.scss +211 -211
- package/dist/cart-summary.scss +2826 -2826
- package/dist/cart-wrapper.scss +127 -127
- package/dist/cartAttributes.scss +1422 -1422
- package/dist/cartDropdownOverlay.scss +653 -653
- package/dist/cartGrouping.scss +89 -89
- package/dist/category-groups-element.scss +739 -739
- package/dist/category-groups-quota-details.scss +626 -626
- package/dist/category.scss +137 -137
- package/dist/categoryDetails.scss +61 -61
- package/dist/categoryWidget.scss +34 -34
- package/dist/checkbox-radio.scss +124 -124
- package/dist/code-temp.scss +59 -59
- package/dist/colorpicker_v2.scss +62 -62
- package/dist/common-element.scss +35 -35
- package/dist/confirm-modal.scss +370 -370
- package/dist/confirmationModal.scss +139 -139
- package/dist/contact-us.scss +105 -105
- package/dist/container.scss +168 -168
- package/dist/countdown.scss +899 -899
- package/dist/coupon.scss +1519 -1519
- package/dist/custom-fonts.scss +100 -100
- package/dist/customization-tree.scss +162 -162
- package/dist/default-dropdown.scss +259 -259
- package/dist/dropdownTemplate.scss +699 -699
- package/dist/editCartItem.scss +110 -110
- package/dist/embed-temp.scss +73 -73
- package/dist/embroider-preview-element.scss +94 -94
- package/dist/embroider-template-1-v2.scss +1105 -1105
- package/dist/embroider-template-1.scss +501 -501
- package/dist/embroidery.scss +247 -247
- package/dist/employee-bulk-order.scss +4060 -4060
- package/dist/emtpy-templates.scss +165 -165
- package/dist/faq.scss +696 -696
- package/dist/fb-dropdown.scss +135 -135
- package/dist/filter-results.scss +361 -361
- package/dist/filters.scss +3040 -3040
- package/dist/flex-text-editor.scss +271 -271
- package/dist/form-preview.scss +530 -530
- package/dist/gallery-slider-temp.scss +1776 -1776
- package/dist/global-styles.scss +198 -198
- package/dist/grid.scss +169 -169
- package/dist/icon-library.scss +78 -78
- package/dist/icon-list.scss +39 -0
- package/dist/image-for-product.scss +21 -21
- package/dist/image-temp.scss +203 -203
- package/dist/item-stock.scss +93 -93
- package/dist/kitDetails.scss +5739 -5739
- package/dist/kits.scss +305 -305
- package/dist/language-selector.scss +948 -948
- package/dist/last-x-orders.scss +285 -285
- package/dist/layouter-item.scss +141 -141
- package/dist/layouter-pro-item.scss +139 -139
- package/dist/layouter-pro.scss +134 -134
- package/dist/layouter.scss +491 -491
- package/dist/light-box-v2.scss +155 -155
- package/dist/lightbox.scss +78 -78
- package/dist/loader.scss +37 -37
- package/dist/login.scss +29 -11
- package/dist/map.scss +1359 -1359
- package/dist/marchandiserSets.scss +141 -141
- package/dist/mega-menu-container.scss +152 -152
- package/dist/menu-item.scss +19 -19
- package/dist/menu-v2.scss +999 -999
- package/dist/menu.scss +174 -174
- package/dist/multi-select-dropdown.scss +316 -316
- package/dist/my-templates.scss +477 -477
- package/dist/my-wishlist.scss +27 -27
- package/dist/option-bar.scss +886 -886
- package/dist/order-processing.scss +61 -61
- package/dist/order-status.scss +2187 -2187
- package/dist/overflow-module.scss +63 -63
- package/dist/past-orders.scss +1039 -1039
- package/dist/payment-methods.scss +307 -307
- package/dist/phone-input.scss +208 -208
- package/dist/pickup-locations.scss +1359 -1359
- package/dist/position-module.scss +95 -95
- package/dist/prefix-list.scss +86 -86
- package/dist/product-actions.scss +2872 -2872
- package/dist/product-basic-elements.scss +600 -600
- package/dist/product-customizations.scss +155 -155
- package/dist/product-highlights.scss +348 -348
- package/dist/product-image-allocation.scss +1477 -1477
- package/dist/product-inventory.scss +1621 -1621
- package/dist/product-labels.scss +265 -265
- package/dist/product-options.scss +1444 -1444
- package/dist/product-price.scss +4 -0
- package/dist/product-promotions.scss +3224 -3224
- package/dist/product-sizechart.scss +1921 -1921
- package/dist/product.scss +140 -140
- package/dist/profile.scss +824 -824
- package/dist/quantity-selector.scss +1074 -1074
- package/dist/quick-inventory-check.scss +285 -285
- package/dist/quick-links.scss +627 -627
- package/dist/quota-details.scss +526 -526
- package/dist/quotes.scss +847 -847
- package/dist/repeater-embla-controls.scss +211 -211
- package/dist/repeater-grid-toggle.scss +206 -206
- package/dist/repeater-item.scss +152 -152
- package/dist/repeater.scss +946 -946
- package/dist/request-for-quotes.scss +841 -841
- package/dist/responsive-behaviour.scss +29 -29
- package/dist/rfqs.scss +861 -861
- package/dist/scroll.scss +414 -414
- package/dist/search-results-heading.scss +309 -309
- package/dist/search.scss +689 -689
- package/dist/section.scss +276 -276
- package/dist/shareCartSideBar.scss +254 -254
- package/dist/shipping-estimator.scss +41 -41
- package/dist/shipping-payments.scss +2518 -2518
- package/dist/simple-list.scss +338 -338
- package/dist/skeleton.scss +64 -64
- package/dist/spotlight.scss +1706 -1706
- package/dist/stack.scss +171 -171
- package/dist/static-global.scss +292 -292
- package/dist/static-text.scss +52 -52
- package/dist/stockStatus.scss +70 -70
- package/dist/store-locations.scss +1592 -1592
- package/dist/sub-category.scss +74 -74
- package/dist/submit-quote.scss +275 -275
- package/dist/tab-container-item.scss +80 -80
- package/dist/tab-container.scss +141 -141
- package/dist/table.scss +9 -0
- package/dist/tabs.scss +440 -440
- package/dist/text-temp.scss +109 -109
- package/dist/theme-classes.scss +421 -421
- package/dist/toaster.scss +392 -392
- package/dist/toggle-button.scss +32 -32
- package/dist/transform-properties-module.scss +20 -20
- package/dist/types/builder/tools/element-edit/icon-list.d.ts +5 -0
- package/dist/types/builder/tools/element-edit/login.d.ts +1 -0
- package/dist/types/builder/tools/element-edit/resetPassword.d.ts +1 -0
- package/dist/types/builder/tools/element-edit/userElements.d.ts +99 -0
- package/dist/user-elements.scss +2896 -2911
- package/dist/widget.scss +153 -153
- package/dist/wishlist-overlay.scss +48 -48
- package/package.json +1 -1
package/dist/map.scss
CHANGED
|
@@ -1,1359 +1,1359 @@
|
|
|
1
|
-
@use "sass:map";
|
|
2
|
-
@use "sass:list";
|
|
3
|
-
@use "./functions.scss" as *;
|
|
4
|
-
|
|
5
|
-
// Tooltip tip + placement, ported from the image hotspot (hotspot.scss) so both
|
|
6
|
-
// elements anchor their tooltip the same way.
|
|
7
|
-
//
|
|
8
|
-
// $ics is the tip's border-width: a 5px border with no content box makes a 10px
|
|
9
|
-
// triangle whose apex sits at the centre of the 10px box.
|
|
10
|
-
$ics: 5px;
|
|
11
|
-
$tip: $ics * 2;
|
|
12
|
-
$bm: 30px;
|
|
13
|
-
|
|
14
|
-
// Gap between the pin's edge and the tooltip. Held in a custom property so it can
|
|
15
|
-
// track the pin's real size at runtime (see --_sf-tp-gp below) instead of the flat
|
|
16
|
-
// 20px this file used to assume — that offset ignored Pin Size, so the tip drifted
|
|
17
|
-
// off the pin as soon as the pin was resized.
|
|
18
|
-
$g: var(--_sf-tp-gp);
|
|
19
|
-
|
|
20
|
-
$overflowSelector: ".flex__overflow";
|
|
21
|
-
|
|
22
|
-
// Each entry places the tooltip relative to the pin's centre, then pins the tip to
|
|
23
|
-
// the tooltip edge that faces the pin. Because $g already absorbs the pin's
|
|
24
|
-
// half-size, every tip offset below is a constant: the triangle always spans exactly
|
|
25
|
-
// the gap, base on the tooltip edge and apex on the pin edge. The previous table did
|
|
26
|
-
// this with hand-tuned multipliers (1.25 / 1.75 / 2.05 / 2.7 …) and, in five entries,
|
|
27
|
-
// a stray top-level border-color that painted over the tooltip's own border colour.
|
|
28
|
-
$data: (
|
|
29
|
-
// tooltip to the LEFT — tip on its right edge, pointing right
|
|
30
|
-
leftTop: (
|
|
31
|
-
transform: translate(calc(-100% - #{$g}), calc(-100% + #{$bm})),
|
|
32
|
-
icon: (
|
|
33
|
-
right: -#{$tip},
|
|
34
|
-
bottom: calc(#{$bm} - #{$ics}),
|
|
35
|
-
border-color: transparent transparent transparent var(--_ctm-dn-tp-dn-bd-cr),
|
|
36
|
-
),
|
|
37
|
-
),
|
|
38
|
-
leftCenter: (
|
|
39
|
-
transform: translate(calc(-100% - #{$g}), -50%),
|
|
40
|
-
icon: (
|
|
41
|
-
right: -#{$tip},
|
|
42
|
-
top: calc(50% - #{$ics}),
|
|
43
|
-
border-color: transparent transparent transparent var(--_ctm-dn-tp-dn-bd-cr),
|
|
44
|
-
),
|
|
45
|
-
),
|
|
46
|
-
leftBottom: (
|
|
47
|
-
transform: translate(calc(-100% - #{$g}), calc(0% - #{$bm})),
|
|
48
|
-
icon: (
|
|
49
|
-
right: -#{$tip},
|
|
50
|
-
top: calc(#{$bm} - #{$ics}),
|
|
51
|
-
border-color: transparent transparent transparent var(--_ctm-dn-tp-dn-bd-cr),
|
|
52
|
-
),
|
|
53
|
-
),
|
|
54
|
-
// tooltip ABOVE — tip on its bottom edge, pointing down
|
|
55
|
-
topLeft: (
|
|
56
|
-
transform: translate(calc(-100% + #{$bm}), calc(-100% - #{$g})),
|
|
57
|
-
icon: (
|
|
58
|
-
bottom: -#{$tip},
|
|
59
|
-
right: calc(#{$bm} - #{$ics}),
|
|
60
|
-
border-color: var(--_ctm-dn-tp-dn-bd-cr) transparent transparent transparent,
|
|
61
|
-
),
|
|
62
|
-
),
|
|
63
|
-
topCenter: (
|
|
64
|
-
transform: translate(-50%, calc(-100% - #{$g})),
|
|
65
|
-
icon: (
|
|
66
|
-
bottom: -#{$tip},
|
|
67
|
-
left: calc(50% - #{$ics}),
|
|
68
|
-
border-color: var(--_ctm-dn-tp-dn-bd-cr) transparent transparent transparent,
|
|
69
|
-
),
|
|
70
|
-
),
|
|
71
|
-
topRight: (
|
|
72
|
-
transform: translate(calc(0% - #{$bm}), calc(-100% - #{$g})),
|
|
73
|
-
icon: (
|
|
74
|
-
bottom: -#{$tip},
|
|
75
|
-
left: calc(#{$bm} - #{$ics}),
|
|
76
|
-
border-color: var(--_ctm-dn-tp-dn-bd-cr) transparent transparent transparent,
|
|
77
|
-
),
|
|
78
|
-
),
|
|
79
|
-
// tooltip to the RIGHT — tip on its left edge, pointing left
|
|
80
|
-
rightTop: (
|
|
81
|
-
transform: translate(#{$g}, calc(-100% + #{$bm})),
|
|
82
|
-
icon: (
|
|
83
|
-
left: -#{$tip},
|
|
84
|
-
bottom: calc(#{$bm} - #{$ics}),
|
|
85
|
-
border-color: transparent var(--_ctm-dn-tp-dn-bd-cr) transparent transparent,
|
|
86
|
-
),
|
|
87
|
-
),
|
|
88
|
-
rightCenter: (
|
|
89
|
-
transform: translate(#{$g}, -50%),
|
|
90
|
-
icon: (
|
|
91
|
-
left: -#{$tip},
|
|
92
|
-
top: calc(50% - #{$ics}),
|
|
93
|
-
border-color: transparent var(--_ctm-dn-tp-dn-bd-cr) transparent transparent,
|
|
94
|
-
),
|
|
95
|
-
),
|
|
96
|
-
rightBottom: (
|
|
97
|
-
transform: translate(#{$g}, calc(0% - #{$bm})),
|
|
98
|
-
icon: (
|
|
99
|
-
left: -#{$tip},
|
|
100
|
-
top: calc(#{$bm} - #{$ics}),
|
|
101
|
-
border-color: transparent var(--_ctm-dn-tp-dn-bd-cr) transparent transparent,
|
|
102
|
-
),
|
|
103
|
-
),
|
|
104
|
-
// tooltip BELOW — tip on its top edge, pointing up
|
|
105
|
-
bottomLeft: (
|
|
106
|
-
transform: translate(calc(-100% + #{$bm}), #{$g}),
|
|
107
|
-
icon: (
|
|
108
|
-
top: -#{$tip},
|
|
109
|
-
right: calc(#{$bm} - #{$ics}),
|
|
110
|
-
border-color: transparent transparent var(--_ctm-dn-tp-dn-bd-cr) transparent,
|
|
111
|
-
),
|
|
112
|
-
),
|
|
113
|
-
bottomCenter: (
|
|
114
|
-
transform: translate(-50%, #{$g}),
|
|
115
|
-
icon: (
|
|
116
|
-
top: -#{$tip},
|
|
117
|
-
left: calc(50% - #{$ics}),
|
|
118
|
-
border-color: transparent transparent var(--_ctm-dn-tp-dn-bd-cr) transparent,
|
|
119
|
-
),
|
|
120
|
-
),
|
|
121
|
-
bottomRight: (
|
|
122
|
-
transform: translate(calc(0% - #{$bm}), #{$g}),
|
|
123
|
-
icon: (
|
|
124
|
-
top: -#{$tip},
|
|
125
|
-
left: calc(#{$bm} - #{$ics}),
|
|
126
|
-
border-color: transparent transparent var(--_ctm-dn-tp-dn-bd-cr) transparent,
|
|
127
|
-
),
|
|
128
|
-
)
|
|
129
|
-
);
|
|
130
|
-
|
|
131
|
-
// Tooltip Design > Horizontal Alignment, translated for `text-align`. The control is
|
|
132
|
-
// picked from the shared alignment list (flex-start | center | flex-end), and those
|
|
133
|
-
// keywords mean nothing to text-align, so the two ends have to be mapped. The last two
|
|
134
|
-
// entries are the pre-list values, still stored on pages saved before that fix.
|
|
135
|
-
$tooltipTextAlign: (
|
|
136
|
-
"flex-start": left,
|
|
137
|
-
"center": center,
|
|
138
|
-
"flex-end": right,
|
|
139
|
-
"left": left,
|
|
140
|
-
"right": right,
|
|
141
|
-
);
|
|
142
|
-
|
|
143
|
-
[data-div-type="element"] {
|
|
144
|
-
&[data-element-type="map"] {
|
|
145
|
-
// Half the pin as it actually renders, and the gap the tooltip keeps from the
|
|
146
|
-
// pin's centre — both driven by the Pin Size control rather than a literal, so
|
|
147
|
-
// the tip lands on the pin at any size. Unlike the image hotspot there is no
|
|
148
|
-
// icon-only variant to handle: .hotspot is always sized by the pin size here,
|
|
149
|
-
// with the icon drawn inside it.
|
|
150
|
-
--_sf-ht-hf: calc(#{prepareMediaVariable(--_ctm-dn-pn-se-ht-se, 24px)} / 2);
|
|
151
|
-
--_sf-tp-gp: calc(var(--_sf-ht-hf) + #{$ics});
|
|
152
|
-
|
|
153
|
-
&[data-hotspot-position] {
|
|
154
|
-
@each $key, $value in $data {
|
|
155
|
-
&[data-hotspot-position="#{$key}"] {
|
|
156
|
-
.hotspot__tooltip {
|
|
157
|
-
@each $prop, $val in $value {
|
|
158
|
-
@if ($prop != icon) {
|
|
159
|
-
#{$prop}: #{$val};
|
|
160
|
-
} @else {
|
|
161
|
-
@each $key2, $value2 in $val {
|
|
162
|
-
&:after {
|
|
163
|
-
#{$key2}: #{$value2};
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
[data-div-type="element"] {
|
|
175
|
-
&[data-element-type="map"] {
|
|
176
|
-
// width: var(--_lt-wh);
|
|
177
|
-
// height: var(--_lt-ht);
|
|
178
|
-
// margin: var(--_lt-mn);
|
|
179
|
-
// padding: var(--_lt-pg);
|
|
180
|
-
// width: var(--_ctm-lt-wh, var(--_tst-lt-wh));
|
|
181
|
-
width: var(
|
|
182
|
-
--_sf-el-wh-st-mx,
|
|
183
|
-
calc(
|
|
184
|
-
1% * var(--_ctm-mob-ele-nw-wh-vl, var(--_ctm-tab-ele-nw-wh-vl, var(--_ctm-ele-nw-wh-vl)))
|
|
185
|
-
)
|
|
186
|
-
);
|
|
187
|
-
margin: var(--_ctm-mob-lt-mn, var(--_ctm-tab-lt-mn, var(--_ctm-lt-mn)));
|
|
188
|
-
|
|
189
|
-
--_aspect-ratio: calc(
|
|
190
|
-
1 *
|
|
191
|
-
(
|
|
192
|
-
var(--_ctm-mob-lt-ht, var(--_ctm-tab-lt-ht, var(--_ctm-lt-ht))) /
|
|
193
|
-
var(--_ctm-mob-lt-wh, var(--_ctm-tab-lt-wh, var(--_ctm-lt-wh)))
|
|
194
|
-
)
|
|
195
|
-
);
|
|
196
|
-
|
|
197
|
-
& > .wrapper {
|
|
198
|
-
width: 100%;
|
|
199
|
-
// height: 100%;
|
|
200
|
-
}
|
|
201
|
-
&[data-show-shadow="false"] {
|
|
202
|
-
--_show-shadow: none;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
// design > Map Widget Layout — where the title/description block sits relative to
|
|
206
|
-
// the map. Top/Bottom stack it (column), Left/Right put it beside the map (row).
|
|
207
|
-
&[data-text-container-position="Bottom"] .map-element {
|
|
208
|
-
flex-direction: column-reverse;
|
|
209
|
-
}
|
|
210
|
-
&[data-text-container-position="Left"],
|
|
211
|
-
&[data-text-container-position="Right"] {
|
|
212
|
-
.map-element {
|
|
213
|
-
flex-direction: row;
|
|
214
|
-
|
|
215
|
-
// Beside the map the header sizes to its content and the map takes the rest;
|
|
216
|
-
// stacked above/below it keeps spanning the full width.
|
|
217
|
-
> .gallery-header {
|
|
218
|
-
// Text Container Width. `auto` (the default) is the previous behaviour.
|
|
219
|
-
width: prepareMediaVariable(--_ctm-dn-mp-wt-lt-tt-cr-wh, auto);
|
|
220
|
-
// Shrinkable: the width defaults to 100%, which beside the map is a ceiling —
|
|
221
|
-
// without this the header would take the whole row and collapse the map.
|
|
222
|
-
flex: 0 1 auto;
|
|
223
|
-
}
|
|
224
|
-
> .map {
|
|
225
|
-
flex: 1 1 auto;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
&[data-text-container-position="Right"] .map-element {
|
|
230
|
-
flex-direction: row-reverse;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
// The alignment control switches between the horizontal list (left/center/right)
|
|
234
|
-
// for stacked layouts and the vertical one (top/center/bottom) for side-by-side.
|
|
235
|
-
// Stacked: the header spans the full width, so align the text inside it. Side by
|
|
236
|
-
// side: align the header on the flex cross axis.
|
|
237
|
-
&[data-text-container-alignment="left"] .map-element > .gallery-header {
|
|
238
|
-
text-align: left;
|
|
239
|
-
}
|
|
240
|
-
&[data-text-container-alignment="right"] .map-element > .gallery-header {
|
|
241
|
-
text-align: right;
|
|
242
|
-
}
|
|
243
|
-
&[data-text-container-alignment="top"] .map-element {
|
|
244
|
-
align-items: flex-start;
|
|
245
|
-
}
|
|
246
|
-
&[data-text-container-alignment="bottom"] .map-element {
|
|
247
|
-
align-items: flex-end;
|
|
248
|
-
}
|
|
249
|
-
&[data-text-container-alignment="center"] {
|
|
250
|
-
.map-element {
|
|
251
|
-
align-items: center;
|
|
252
|
-
|
|
253
|
-
> .gallery-header {
|
|
254
|
-
text-align: center;
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
&[data-hotspot-image-style-show-border="true"] {
|
|
260
|
-
.imageHotspot-element {
|
|
261
|
-
border-style: var(--_ctm-dn-ie-se-br-se);
|
|
262
|
-
border-color: var(--_ctm-dn-ie-se-br-cr);
|
|
263
|
-
border-width: var(--_ctm-dn-ie-se-br-wh);
|
|
264
|
-
border-radius: var(--_ctm-dn-ie-se-br-rs);
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
&[data-hotspot-tooltip-style-show-border="true"] {
|
|
268
|
-
.hotspot__tooltip {
|
|
269
|
-
border-style: var(--_ctm-dn-tp-dn-br-se);
|
|
270
|
-
border-color: var(--_ctm-dn-tp-dn-br-cr);
|
|
271
|
-
border-width: var(--_ctm-dn-tp-dn-br-wh);
|
|
272
|
-
border-radius: var(--_ctm-dn-tp-dn-br-rs);
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
&[data-hotspot-tooltip-style-show-shadow="true"] {
|
|
276
|
-
.hotspot__tooltip {
|
|
277
|
-
box-shadow: var(--_ctm-dn-tp-dn-sw-ae) var(--_ctm-dn-tp-dn-sw-br) var(--_ctm-dn-tp-dn-sw-sd)
|
|
278
|
-
var(--_ctm-dn-tp-dn-sw-cr);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
// Tooltip Design > Horizontal Alignment, applied to the tooltip text itself.
|
|
283
|
-
//
|
|
284
|
-
// .text_box re-applies the control as align-items further down, which moves the
|
|
285
|
-
// title and the description only while they are narrower than the tooltip. A title
|
|
286
|
-
// long enough to wrap fills that wrapper, and a flex container cannot move a child
|
|
287
|
-
// that is already full width — which is why the control looked dead on the title
|
|
288
|
-
// while the shorter description still followed it.
|
|
289
|
-
//
|
|
290
|
-
// The value reaches the DOM as a data attribute because align-items keywords are
|
|
291
|
-
// not text-align keywords; Map Widget Layout's alignment takes the same route to
|
|
292
|
-
// .gallery-header above. The tooltip-level control wins over the per-text Alignment
|
|
293
|
-
// in Tooltip Text Design — it is the one that positions the text block.
|
|
294
|
-
@each $key, $align in $tooltipTextAlign {
|
|
295
|
-
&[data-tooltip-text-alignment="#{$key}"] {
|
|
296
|
-
.map-element .hotspot__tooltip .text_box > * {
|
|
297
|
-
text-align: $align;
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
&[data-hotspot-tooltip-image-style-show-border="true"] {
|
|
302
|
-
.tooltip__image {
|
|
303
|
-
border-style: var(--_ctm-dn-tp-ie-dn-br-se);
|
|
304
|
-
border-color: var(--_ctm-dn-tp-ie-dn-br-cr);
|
|
305
|
-
border-width: var(--_ctm-dn-tp-ie-dn-br-wh);
|
|
306
|
-
border-radius: var(--_ctm-dn-tp-ie-dn-br-rs);
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
&[data-hotspot-tooltip-image-style-show-shadow="true"] {
|
|
310
|
-
.tooltip__image {
|
|
311
|
-
box-shadow: var(
|
|
312
|
-
--_show-shadow,
|
|
313
|
-
var(--_ctm-dn-tp-ie-dn-sw-ae) var(--_ctm-dn-tp-ie-dn-sw-br) var(--_ctm-dn-tp-ie-dn-sw-sd)
|
|
314
|
-
var(--_ctm-dn-tp-ie-dn-sw-cr)
|
|
315
|
-
);
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
&[data-hotspot-style-show-shadow="true"] {
|
|
319
|
-
.hotspot {
|
|
320
|
-
box-shadow: var(--_ctm-dn-ht-se-sw-ae) var(--_ctm-dn-ht-se-sw-br) var(--_ctm-dn-ht-se-sw-sd)
|
|
321
|
-
var(--_ctm-dn-ht-se-sw-cr);
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
&[data-hotspot-style-show-border="true"] {
|
|
325
|
-
.hotspot {
|
|
326
|
-
border-style: var(--_ctm-dn-ht-se-br-se);
|
|
327
|
-
border-color: var(--_ctm-dn-ht-se-br-cr);
|
|
328
|
-
border-width: var(--_ctm-dn-ht-se-br-wh);
|
|
329
|
-
border-radius: var(--_ctm-dn-ht-se-br-rs);
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
.map-element {
|
|
333
|
-
--text-high-contrast-rgb-value: 49, 49, 49;
|
|
334
|
-
--detail-medium-contrast: rgb(234, 234, 234);
|
|
335
|
-
--text-body: rgb(54, 49, 61);
|
|
336
|
-
|
|
337
|
-
position: relative;
|
|
338
|
-
background-color: var(
|
|
339
|
-
--_ctm-mob-dn-mp-wt-bd-cr,
|
|
340
|
-
var(--_ctm-tab-dn-mp-wt-bd-cr, var(--_ctm-dn-mp-wt-bd-cr))
|
|
341
|
-
);
|
|
342
|
-
|
|
343
|
-
padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
|
|
344
|
-
|
|
345
|
-
display: flex;
|
|
346
|
-
flex-direction: column;
|
|
347
|
-
--_sf-cd-gp: calc(var(--_sf-gp) * 0.5);
|
|
348
|
-
|
|
349
|
-
gap: var(
|
|
350
|
-
--_ctm-mob-dn-mp-wt-lt-mp-ad-tt-cr-sg,
|
|
351
|
-
var(--_ctm-tab-dn-mp-wt-lt-mp-ad-tt-cr-sg, var(--_ctm-dn-mp-wt-lt-mp-ad-tt-cr-sg))
|
|
352
|
-
);
|
|
353
|
-
// Alignment comes from the [data-text-container-alignment] rules above. It used to
|
|
354
|
-
// read the *spacing* variable here, which is a length and never valid for
|
|
355
|
-
// align-content, so the control did nothing.
|
|
356
|
-
|
|
357
|
-
width: 100%;
|
|
358
|
-
height: var(--_ctm-mob-lt-ht, var(--_ctm-tab-lt-ht, var(--_ctm-lt-ht)));
|
|
359
|
-
// Height is a fixed value from layout, so keep the border inside it rather than
|
|
360
|
-
// letting it push the widget past the size the user set.
|
|
361
|
-
box-sizing: border-box;
|
|
362
|
-
|
|
363
|
-
border-color: var(
|
|
364
|
-
--_ctm-mob-dn-mp-wt-br-cr,
|
|
365
|
-
var(--_ctm-tab-dn-mp-wt-br-cr, var(--_ctm-dn-mp-wt-br-cr))
|
|
366
|
-
);
|
|
367
|
-
|
|
368
|
-
border-style: var(
|
|
369
|
-
--_ctm-mob-dn-mp-wt-br-se,
|
|
370
|
-
var(--_ctm-tab-dn-mp-wt-br-se, var(--_ctm-dn-mp-wt-br-se))
|
|
371
|
-
);
|
|
372
|
-
|
|
373
|
-
border-width: var(
|
|
374
|
-
--_ctm-mob-dn-mp-wt-br-wh,
|
|
375
|
-
var(--_ctm-tab-dn-mp-wt-br-wh, var(--_ctm-dn-mp-wt-br-wh))
|
|
376
|
-
);
|
|
377
|
-
|
|
378
|
-
border-radius: var(
|
|
379
|
-
--_ctm-mob-dn-mp-wt-br-rs,
|
|
380
|
-
var(--_ctm-tab-dn-mp-wt-br-rs, var(--_ctm-dn-mp-wt-br-rs))
|
|
381
|
-
);
|
|
382
|
-
|
|
383
|
-
box-shadow: var(
|
|
384
|
-
--_show-shadow,
|
|
385
|
-
var(--_ctm-mob-dn-mp-wt-sw-ae, var(--_ctm-tab-dn-mp-wt-sw-ae, var(--_ctm-dn-mp-wt-sw-ae)))
|
|
386
|
-
var(--_ctm-mob-dn-mp-wt-sw-br, var(--_ctm-tab-dn-mp-wt-sw-br, var(--_ctm-dn-mp-wt-sw-br)))
|
|
387
|
-
var(--_ctm-mob-dn-mp-wt-sw-sd, var(--_ctm-tab-dn-mp-wt-sw-sd, var(--_ctm-dn-mp-wt-sw-sd)))
|
|
388
|
-
var(--_ctm-mob-dn-mp-wt-sw-cr, var(--_ctm-tab-dn-mp-wt-sw-cr, var(--_ctm-dn-mp-wt-sw-cr)))
|
|
389
|
-
);
|
|
390
|
-
|
|
391
|
-
.gallery-header {
|
|
392
|
-
// Text alignment is driven by [data-text-container-alignment] above. The
|
|
393
|
-
// gallery variable that used to sit here is never emitted for a map element.
|
|
394
|
-
box-sizing: border-box;
|
|
395
|
-
|
|
396
|
-
// line-height: var(--_ctm-dn-gy-lt-tt-ad-dn-sg, var(--_tst-dn-gy-lt-tt-ad-dn-sg));
|
|
397
|
-
display: flex;
|
|
398
|
-
flex-direction: column;
|
|
399
|
-
|
|
400
|
-
gap: var(
|
|
401
|
-
--_ctm-mob-dn-mp-wt-tt-cr-lt-te-ad-dn-sg,
|
|
402
|
-
var(--_ctm-tab-dn-mp-wt-tt-cr-lt-te-ad-dn-sg, var(--_ctm-dn-mp-wt-tt-cr-lt-te-ad-dn-sg))
|
|
403
|
-
);
|
|
404
|
-
padding-block: var(
|
|
405
|
-
--_ctm-mob-dn-mp-wt-tt-cr-lt-tt-vl-pg,
|
|
406
|
-
var(--_ctm-tab-dn-mp-wt-tt-cr-lt-tt-vl-pg, var(--_ctm-dn-mp-wt-tt-cr-lt-tt-vl-pg))
|
|
407
|
-
);
|
|
408
|
-
padding-inline: var(
|
|
409
|
-
--_ctm-mob-dn-mp-wt-tt-cr-lt-tt-hl-pg,
|
|
410
|
-
var(--_ctm-tab-dn-mp-wt-tt-cr-lt-tt-hl-pg, var(--_ctm-dn-mp-wt-tt-cr-lt-tt-hl-pg))
|
|
411
|
-
);
|
|
412
|
-
// design > Map Widget Text Container Design. This used to read a
|
|
413
|
-
// `...-tt-cr-lt-tt-cr-bd-cr` variable — the Text Container *Layout* prefix with a
|
|
414
|
-
// property that section has never had — so the Fill control did nothing.
|
|
415
|
-
background-color: var(
|
|
416
|
-
--_ctm-mob-dn-mp-wt-tt-cr-dn-bd-cr,
|
|
417
|
-
var(--_ctm-tab-dn-mp-wt-tt-cr-dn-bd-cr, var(--_ctm-dn-mp-wt-tt-cr-dn-bd-cr))
|
|
418
|
-
);
|
|
419
|
-
|
|
420
|
-
// Text Container Width. 100% is the previous behaviour, so an unset width
|
|
421
|
-
// still spans the container.
|
|
422
|
-
width: prepareMediaVariable(--_ctm-dn-mp-wt-lt-tt-cr-wh, 100%);
|
|
423
|
-
// ...but never wider than the widget. The control accepts a percentage of the
|
|
424
|
-
// widget and a raw length, and either can be dialled past the widget's own
|
|
425
|
-
// width — a percentage over 100, or a length longer than the widget. Both used
|
|
426
|
-
// to push the header (and the text painted on it) out over whatever sits to the
|
|
427
|
-
// right of the map. Clamping here rather than only capping the control also
|
|
428
|
-
// covers pages already saved with an oversized width.
|
|
429
|
-
max-width: 100%;
|
|
430
|
-
// Lets it shrink to that width beside the map — a flex item defaults to
|
|
431
|
-
// min-width:auto and refuses to go below its longest word.
|
|
432
|
-
min-width: 0;
|
|
433
|
-
// Never shrink below the wrapped text — the map absorbs the remaining height
|
|
434
|
-
// instead, so a taller heading does not overflow the widget.
|
|
435
|
-
flex: 0 0 auto;
|
|
436
|
-
border-color: var(
|
|
437
|
-
--_ctm-mob-dn-mp-wt-tt-cr-dn-br-cr,
|
|
438
|
-
var(--_ctm-tab-dn-mp-wt-tt-cr-dn-br-cr, var(--_ctm-dn-mp-wt-tt-cr-dn-br-cr))
|
|
439
|
-
);
|
|
440
|
-
border-style: var(
|
|
441
|
-
--_ctm-mob-dn-mp-wt-tt-cr-dn-br-se,
|
|
442
|
-
var(--_ctm-tab-dn-mp-wt-tt-cr-dn-br-se, var(--_ctm-dn-mp-wt-tt-cr-dn-br-se))
|
|
443
|
-
);
|
|
444
|
-
border-width: var(
|
|
445
|
-
--_ctm-mob-dn-mp-wt-tt-cr-dn-br-wh,
|
|
446
|
-
var(--_ctm-tab-dn-mp-wt-tt-cr-dn-br-wh, var(--_ctm-dn-mp-wt-tt-cr-dn-br-wh))
|
|
447
|
-
);
|
|
448
|
-
border-radius: var(
|
|
449
|
-
--_ctm-mob-dn-mp-wt-tt-cr-dn-br-rs,
|
|
450
|
-
var(--_ctm-tab-dn-mp-wt-tt-cr-dn-br-rs, var(--_ctm-dn-mp-wt-tt-cr-dn-br-rs))
|
|
451
|
-
);
|
|
452
|
-
box-shadow: var(
|
|
453
|
-
--_show-shadow,
|
|
454
|
-
var(
|
|
455
|
-
--_ctm-mob-dn-mp-wt-tt-cr-dn-sw-ae,
|
|
456
|
-
var(--_ctm-tab-dn-mp-wt-tt-cr-dn-sw-ae, var(--_ctm-dn-mp-wt-tt-cr-dn-sw-ae))
|
|
457
|
-
)
|
|
458
|
-
var(
|
|
459
|
-
--_ctm-mob-dn-mp-wt-tt-cr-dn-sw-br,
|
|
460
|
-
var(--_ctm-tab-dn-mp-wt-tt-cr-dn-sw-br, var(--_ctm-dn-mp-wt-tt-cr-dn-sw-br))
|
|
461
|
-
)
|
|
462
|
-
var(
|
|
463
|
-
--_ctm-mob-dn-mp-wt-tt-cr-dn-sw-sd,
|
|
464
|
-
var(--_ctm-tab-dn-mp-wt-tt-cr-dn-sw-sd, var(--_ctm-dn-mp-wt-tt-cr-dn-sw-sd))
|
|
465
|
-
)
|
|
466
|
-
var(
|
|
467
|
-
--_ctm-mob-dn-mp-wt-tt-cr-dn-sw-cr,
|
|
468
|
-
var(--_ctm-tab-dn-mp-wt-tt-cr-dn-sw-cr, var(--_ctm-dn-mp-wt-tt-cr-dn-sw-cr))
|
|
469
|
-
)
|
|
470
|
-
);
|
|
471
|
-
|
|
472
|
-
& h3 {
|
|
473
|
-
color: var(
|
|
474
|
-
--_ctm-mob-dn-mp-wt-cr,
|
|
475
|
-
var(--_ctm-tab-dn-mp-wt-cr, var(--_ctm-dn-mp-wt-cr, var(--_tst-dn-mp-wt-cr)))
|
|
476
|
-
);
|
|
477
|
-
font-family: var(
|
|
478
|
-
--_ctm-mob-dn-mp-wt-ft-fy,
|
|
479
|
-
var(--_ctm-tab-dn-mp-wt-ft-fy, var(--_ctm-dn-mp-wt-ft-fy, var(--_tst-dn-mp-wt-ft-fy)))
|
|
480
|
-
);
|
|
481
|
-
text-transform: var(
|
|
482
|
-
--_ctm-mob-dn-mp-wt-tt-tm,
|
|
483
|
-
var(--_ctm-tab-dn-mp-wt-tt-tm, var(--_ctm-dn-mp-wt-tt-tm, var(--_tst-dn-mp-wt-tt-tm)))
|
|
484
|
-
);
|
|
485
|
-
word-wrap: var(
|
|
486
|
-
--_ctm-mob-dn-mp-wt-wd-wp,
|
|
487
|
-
var(--_ctm-tab-dn-mp-wt-wd-wp, var(--_ctm-dn-mp-wt-wd-wp, break-word))
|
|
488
|
-
);
|
|
489
|
-
word-break: var(
|
|
490
|
-
--_ctm-mob-dn-mp-wt-wd-bk,
|
|
491
|
-
var(--_ctm-tab-dn-mp-wt-wd-bk, var(--_ctm-dn-mp-wt-wd-bk, var(--_tst-dn-mp-wt-wd-bk)))
|
|
492
|
-
);
|
|
493
|
-
font-size: var(
|
|
494
|
-
--_ctm-mob-dn-mp-wt-ft-se,
|
|
495
|
-
var(--_ctm-tab-dn-mp-wt-ft-se, var(--_ctm-dn-mp-wt-ft-se, var(--_tst-dn-mp-wt-ft-se)))
|
|
496
|
-
);
|
|
497
|
-
font-weight: var(
|
|
498
|
-
--_ctm-mob-dn-mp-wt-ft-wt,
|
|
499
|
-
var(--_ctm-tab-dn-mp-wt-ft-wt, var(--_ctm-dn-mp-wt-ft-wt, var(--_tst-dn-mp-wt-ft-wt)))
|
|
500
|
-
);
|
|
501
|
-
font-style: var(
|
|
502
|
-
--_ctm-mob-dn-mp-wt-ft-se-ic,
|
|
503
|
-
var(
|
|
504
|
-
--_ctm-tab-dn-mp-wt-ft-se-ic,
|
|
505
|
-
var(--_ctm-dn-mp-wt-ft-se-ic, var(--_tst-dn-mp-wt-ft-se-ic))
|
|
506
|
-
)
|
|
507
|
-
);
|
|
508
|
-
text-align: var(
|
|
509
|
-
--_ctm-mob-dn-mp-wt-tt-an,
|
|
510
|
-
var(--_ctm-tab-dn-mp-wt-tt-an, var(--_ctm-dn-mp-wt-tt-an, var(--_tst-dn-mp-wt-tt-an)))
|
|
511
|
-
);
|
|
512
|
-
letter-spacing: var(
|
|
513
|
-
--_ctm-mob-dn-mp-wt-lr-sg,
|
|
514
|
-
var(--_ctm-tab-dn-mp-wt-lr-sg, var(--_ctm-dn-mp-wt-lr-sg, var(--_tst-dn-mp-wt-lr-sg)))
|
|
515
|
-
);
|
|
516
|
-
line-height: var(
|
|
517
|
-
--_ctm-mob-dn-mp-wt-le-ht,
|
|
518
|
-
var(--_ctm-tab-dn-mp-wt-le-ht, var(--_ctm-dn-mp-wt-le-ht, var(--_tst-dn-mp-wt-le-ht)))
|
|
519
|
-
);
|
|
520
|
-
text-decoration: var(
|
|
521
|
-
--_ctm-mob-dn-mp-wt-ue,
|
|
522
|
-
var(--_ctm-tab-dn-mp-wt-ue, var(--_ctm-dn-mp-wt-ue, var(--_tst-dn-mp-wt-ue)))
|
|
523
|
-
);
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
& p {
|
|
527
|
-
color: var(
|
|
528
|
-
--_ctm-mob-dn-mp-wt-cr-dc,
|
|
529
|
-
var(--_ctm-tab-dn-mp-wt-cr-dc, var(--_ctm-dn-mp-wt-cr-dc, var(--_tst-dn-mp-wt-cr-dc)))
|
|
530
|
-
);
|
|
531
|
-
font-family: var(
|
|
532
|
-
--_ctm-mob-dn-mp-wt-ft-fy-dc,
|
|
533
|
-
var(
|
|
534
|
-
--_ctm-tab-dn-mp-wt-ft-fy-dc,
|
|
535
|
-
var(--_ctm-dn-mp-wt-ft-fy-dc, var(--_tst-dn-mp-wt-ft-fy-dc))
|
|
536
|
-
)
|
|
537
|
-
);
|
|
538
|
-
text-transform: var(
|
|
539
|
-
--_ctm-mob-dn-mp-wt-tt-tm-dc,
|
|
540
|
-
var(
|
|
541
|
-
--_ctm-tab-dn-mp-wt-tt-tm-dc,
|
|
542
|
-
var(--_ctm-dn-mp-wt-tt-tm-dc, var(--_tst-dn-mp-wt-tt-tm-dc))
|
|
543
|
-
)
|
|
544
|
-
);
|
|
545
|
-
word-wrap: var(
|
|
546
|
-
--_ctm-mob-dn-mp-wt-wd-wp-dc,
|
|
547
|
-
var(--_ctm-tab-dn-mp-wt-wd-wp-dc, var(--_ctm-dn-mp-wt-wd-wp-dc, break-word))
|
|
548
|
-
);
|
|
549
|
-
word-break: var(
|
|
550
|
-
--_ctm-mob-dn-mp-wt-wd-bk-dc,
|
|
551
|
-
var(
|
|
552
|
-
--_ctm-tab-dn-mp-wt-wd-bk-dc,
|
|
553
|
-
var(--_ctm-dn-mp-wt-wd-bk-dc, var(--_tst-dn-mp-wt-wd-bk-dc))
|
|
554
|
-
)
|
|
555
|
-
);
|
|
556
|
-
font-size: var(
|
|
557
|
-
--_ctm-mob-dn-mp-wt-ft-se-dc,
|
|
558
|
-
var(
|
|
559
|
-
--_ctm-tab-dn-mp-wt-ft-se-dc,
|
|
560
|
-
var(--_ctm-dn-mp-wt-ft-se-dc, var(--_tst-dn-mp-wt-ft-se-dc))
|
|
561
|
-
)
|
|
562
|
-
);
|
|
563
|
-
font-weight: var(
|
|
564
|
-
--_ctm-mob-dn-mp-wt-ft-wt-dc,
|
|
565
|
-
var(
|
|
566
|
-
--_ctm-tab-dn-mp-wt-ft-wt-dc,
|
|
567
|
-
var(--_ctm-dn-mp-wt-ft-wt-dc, var(--_tst-dn-mp-wt-ft-wt-dc))
|
|
568
|
-
)
|
|
569
|
-
);
|
|
570
|
-
font-style: var(
|
|
571
|
-
--_ctm-mob-dn-mp-wt-ft-se-ic-dc,
|
|
572
|
-
var(
|
|
573
|
-
--_ctm-tab-dn-mp-wt-ft-se-ic-dc,
|
|
574
|
-
var(--_ctm-dn-mp-wt-ft-se-ic-dc, var(--_tst-dn-mp-wt-ft-se-ic-dc))
|
|
575
|
-
)
|
|
576
|
-
);
|
|
577
|
-
text-align: var(
|
|
578
|
-
--_ctm-mob-dn-mp-wt-tt-an-dc,
|
|
579
|
-
var(
|
|
580
|
-
--_ctm-tab-dn-mp-wt-tt-an-dc,
|
|
581
|
-
var(--_ctm-dn-mp-wt-tt-an-dc, var(--_tst-dn-mp-wt-tt-an-dc))
|
|
582
|
-
)
|
|
583
|
-
);
|
|
584
|
-
letter-spacing: var(
|
|
585
|
-
--_ctm-mob-dn-mp-wt-lr-sg-dc,
|
|
586
|
-
var(
|
|
587
|
-
--_ctm-tab-dn-mp-wt-lr-sg-dc,
|
|
588
|
-
var(--_ctm-dn-mp-wt-lr-sg-dc, var(--_tst-dn-mp-wt-lr-sg-dc))
|
|
589
|
-
)
|
|
590
|
-
);
|
|
591
|
-
line-height: var(
|
|
592
|
-
--_ctm-mob-dn-mp-wt-le-ht-dc,
|
|
593
|
-
var(
|
|
594
|
-
--_ctm-tab-dn-mp-wt-le-ht-dc,
|
|
595
|
-
var(--_ctm-dn-mp-wt-le-ht-dc, var(--_tst-dn-mp-wt-le-ht-dc))
|
|
596
|
-
)
|
|
597
|
-
);
|
|
598
|
-
text-decoration: var(
|
|
599
|
-
--_ctm-mob-dn-mp-wt-ue-dc,
|
|
600
|
-
var(--_ctm-tab-dn-mp-wt-ue-dc, var(--_ctm-dn-mp-wt-ue-dc, var(--_tst-dn-mp-wt-ue-dc)))
|
|
601
|
-
);
|
|
602
|
-
}
|
|
603
|
-
|
|
604
|
-
// h3 {
|
|
605
|
-
// margin-bottom: var(--_mb-4);
|
|
606
|
-
// }
|
|
607
|
-
}
|
|
608
|
-
|
|
609
|
-
.img__overlay {
|
|
610
|
-
background: var(
|
|
611
|
-
--_ctm-mob-dn-ie-se-oy-cr,
|
|
612
|
-
var(--_ctm-tab-dn-ie-se-oy-cr, var(--_ctm-dn-ie-se-oy-cr, var(--_tst-dn-ie-se-oy-cr)))
|
|
613
|
-
);
|
|
614
|
-
|
|
615
|
-
height: 100%;
|
|
616
|
-
width: 100%;
|
|
617
|
-
position: absolute;
|
|
618
|
-
top: 0;
|
|
619
|
-
}
|
|
620
|
-
@keyframes scaleInOut {
|
|
621
|
-
0% {
|
|
622
|
-
transform: scale(1);
|
|
623
|
-
}
|
|
624
|
-
50% {
|
|
625
|
-
transform: scale(1.5);
|
|
626
|
-
}
|
|
627
|
-
100% {
|
|
628
|
-
transform: scale(1);
|
|
629
|
-
}
|
|
630
|
-
}
|
|
631
|
-
// Sonar ripple: each ring fades in at the pin size, expands and fades out.
|
|
632
|
-
@keyframes sonar {
|
|
633
|
-
0% {
|
|
634
|
-
transform: scale(1);
|
|
635
|
-
opacity: 0.6;
|
|
636
|
-
}
|
|
637
|
-
100% {
|
|
638
|
-
// Expands to ~1.8x the pin — clearly visible motion but still tight to the
|
|
639
|
-
// pin (not spreading far, per the earlier "going very long" feedback).
|
|
640
|
-
transform: scale(1.8);
|
|
641
|
-
opacity: 0;
|
|
642
|
-
}
|
|
643
|
-
}
|
|
644
|
-
.hotspot__container {
|
|
645
|
-
position: absolute;
|
|
646
|
-
// The marker element is already anchored at the location's lat/lng, so the pin
|
|
647
|
-
// and the tooltip both sit at its origin and are placed from there. The 43%/12%
|
|
648
|
-
// that used to be here came from the image hotspot's static-image layout and
|
|
649
|
-
// means nothing for a marker.
|
|
650
|
-
top: 0;
|
|
651
|
-
left: 0;
|
|
652
|
-
.hotspot__main {
|
|
653
|
-
position: relative;
|
|
654
|
-
|
|
655
|
-
// Divi Pixel-style sonar: a single bordered ring centred on the pin that
|
|
656
|
-
// expands and fades out on a loop. Only the ring animates — the pin/icon is
|
|
657
|
-
// static and kept on top via z-index. Rendered in JS only when the animation
|
|
658
|
-
// toggle is on. Duration comes from the frequency control (2s if none set), so
|
|
659
|
-
// the user's ms value drives the speed.
|
|
660
|
-
.svg-sonar-container {
|
|
661
|
-
position: absolute;
|
|
662
|
-
top: 50%;
|
|
663
|
-
left: 50%;
|
|
664
|
-
width: prepareMediaVariable(--_ctm-dn-pn-se-ht-se);
|
|
665
|
-
height: prepareMediaVariable(--_ctm-dn-pn-se-ht-se);
|
|
666
|
-
translate: -50% -50%;
|
|
667
|
-
pointer-events: none;
|
|
668
|
-
z-index: 1;
|
|
669
|
-
|
|
670
|
-
.sonar-circle {
|
|
671
|
-
position: absolute;
|
|
672
|
-
inset: 0;
|
|
673
|
-
border-radius: 50%;
|
|
674
|
-
// Ring colour follows the pin's background colour; visible fallback so the
|
|
675
|
-
// ripple never renders invisibly if the background var isn't emitted.
|
|
676
|
-
border: 1px solid prepareMediaVariable(--_ctm-dn-pn-se-bd-cr, #243dc6);
|
|
677
|
-
opacity: 0;
|
|
678
|
-
animation: sonar prepareMediaVariable(--_ctm-dn-pn-se-an-fy, 2s) linear infinite;
|
|
679
|
-
}
|
|
680
|
-
|
|
681
|
-
// Square pins get matching square rings; circle (default) stays 50%.
|
|
682
|
-
&[data-hotspot-shape="square"] .sonar-circle {
|
|
683
|
-
border-radius: 0;
|
|
684
|
-
}
|
|
685
|
-
}
|
|
686
|
-
|
|
687
|
-
.hotspot {
|
|
688
|
-
// background: var(--_ctm-dn-ht-se-bd-cr);
|
|
689
|
-
// height: var(--_ctm-dn-tp-tt-dn-ft-se);
|
|
690
|
-
// width: var(--_ctm-dn-tp-tt-dn-ft-se);
|
|
691
|
-
position: absolute;
|
|
692
|
-
// Above the sonar rings (container is z-index 1), so the pin/icon stays on top.
|
|
693
|
-
z-index: 2;
|
|
694
|
-
cursor: pointer;
|
|
695
|
-
// width: var(--_ctm-dn-ht-se-ht-se);
|
|
696
|
-
// height: var(--_ctm-dn-ht-se-ht-se);
|
|
697
|
-
// background-color: var(--_ctm-dn-ht-se-bd-cr);
|
|
698
|
-
width: var(
|
|
699
|
-
--_ctm-mob-dn-pn-se-ht-se,
|
|
700
|
-
var(--_ctm-tab-dn-pn-se-ht-se, var(--_ctm-dn-pn-se-ht-se))
|
|
701
|
-
);
|
|
702
|
-
height: var(
|
|
703
|
-
--_ctm-mob-dn-pn-se-ht-se,
|
|
704
|
-
var(--_ctm-tab-dn-pn-se-ht-se, var(--_ctm-dn-pn-se-ht-se))
|
|
705
|
-
);
|
|
706
|
-
|
|
707
|
-
height: prepareMediaVariable(--_ctm-dn-pn-se-ht-se);
|
|
708
|
-
width: prepareMediaVariable(--_ctm-dn-pn-se-ht-se);
|
|
709
|
-
|
|
710
|
-
position: absolute;
|
|
711
|
-
cursor: pointer;
|
|
712
|
-
|
|
713
|
-
display: flex;
|
|
714
|
-
align-items: center;
|
|
715
|
-
top: 50%;
|
|
716
|
-
left: 50%;
|
|
717
|
-
|
|
718
|
-
translate: -50% -50%;
|
|
719
|
-
box-sizing: border-box;
|
|
720
|
-
justify-content: center;
|
|
721
|
-
box-shadow: var(
|
|
722
|
-
--_ctm-mob-dn-pn-se-sw-ae,
|
|
723
|
-
var(--_ctm-tab-dn-pn-se-sw-ae, var(--_ctm-dn-pn-se-sw-ae))
|
|
724
|
-
)
|
|
725
|
-
var(
|
|
726
|
-
--_ctm-mob-dn-pn-se-sw-br,
|
|
727
|
-
var(--_ctm-tab-dn-pn-se-sw-br, var(--_ctm-dn-pn-se-sw-br))
|
|
728
|
-
)
|
|
729
|
-
var(
|
|
730
|
-
--_ctm-mob-dn-pn-se-sw-sd,
|
|
731
|
-
var(--_ctm-tab-dn-pn-se-sw-sd, var(--_ctm-dn-pn-se-sw-sd))
|
|
732
|
-
)
|
|
733
|
-
var(
|
|
734
|
-
--_ctm-mob-dn-pn-se-sw-cr,
|
|
735
|
-
var(--_ctm-tab-dn-pn-se-sw-cr, var(--_ctm-dn-pn-se-sw-cr))
|
|
736
|
-
);
|
|
737
|
-
|
|
738
|
-
// Pin corners follow the Shape control only — Circle or Square. There is no
|
|
739
|
-
// separate radius control for pins, and this used to be applied as an inline
|
|
740
|
-
// style from MarkersComponent, which outranked every rule in this file.
|
|
741
|
-
&[data-hotspot-shape="circle"] {
|
|
742
|
-
border-radius: 50%;
|
|
743
|
-
}
|
|
744
|
-
&[data-hotspot-shape="square"] {
|
|
745
|
-
border-radius: 0;
|
|
746
|
-
}
|
|
747
|
-
|
|
748
|
-
svg {
|
|
749
|
-
width: prepareMediaVariable(--_ctm-dn-pn-se-in-se);
|
|
750
|
-
height: prepareMediaVariable(--_ctm-dn-pn-se-in-se);
|
|
751
|
-
|
|
752
|
-
path[fill] {
|
|
753
|
-
fill: prepareMediaVariable(--_ctm-dn-pn-se-in-c1);
|
|
754
|
-
}
|
|
755
|
-
path[stroke] {
|
|
756
|
-
stroke: prepareMediaVariable(--_ctm-dn-pn-se-in-c1);
|
|
757
|
-
// Overrides the stroke-width presentation attribute baked into the icon markup.
|
|
758
|
-
stroke-width: prepareMediaVariable(--_ctm-dn-pn-se-se-wh, 1.25);
|
|
759
|
-
}
|
|
760
|
-
}
|
|
761
|
-
|
|
762
|
-
// One gate for "this pin has a styled box": always true for a shape pin,
|
|
763
|
-
// and for an icon pin only while its Background toggle is on. It used to
|
|
764
|
-
// also match [data-show-animation="true"], which meant turning the
|
|
765
|
-
// background off did nothing as soon as the animation was enabled.
|
|
766
|
-
&[data-show-shape-styles="true"] {
|
|
767
|
-
background-color: var(
|
|
768
|
-
--_ctm-mob-dn-pn-se-bd-cr,
|
|
769
|
-
var(--_ctm-tab-dn-pn-se-bd-cr, var(--_ctm-dn-pn-se-bd-cr))
|
|
770
|
-
);
|
|
771
|
-
|
|
772
|
-
border-style: var(
|
|
773
|
-
--_ctm-mob-dn-pn-se-br-se,
|
|
774
|
-
var(--_ctm-tab-dn-pn-se-br-se, var(--_ctm-dn-pn-se-br-se))
|
|
775
|
-
);
|
|
776
|
-
border-color: var(
|
|
777
|
-
--_ctm-mob-dn-pn-se-br-cr,
|
|
778
|
-
var(--_ctm-tab-dn-pn-se-br-cr, var(--_ctm-dn-pn-se-br-cr))
|
|
779
|
-
);
|
|
780
|
-
border-width: var(
|
|
781
|
-
--_ctm-mob-dn-pn-se-br-wh,
|
|
782
|
-
var(--_ctm-tab-dn-pn-se-br-wh, var(--_ctm-dn-pn-se-br-wh))
|
|
783
|
-
);
|
|
784
|
-
// No border-radius here — it would land after the shape rules above and
|
|
785
|
-
// undo Circle. The Shape control is the only thing that rounds a pin.
|
|
786
|
-
// box-shadow is applied unconditionally above so it works for all pins,
|
|
787
|
-
// independent of this shape/animation gate.
|
|
788
|
-
}
|
|
789
|
-
}
|
|
790
|
-
}
|
|
791
|
-
}
|
|
792
|
-
.hotspot__tooltip {
|
|
793
|
-
--_sf-br-vl: var(--_ctm-dn-tp-dn-br-rs, 0px);
|
|
794
|
-
position: absolute;
|
|
795
|
-
background: prepareMediaVariable(--_ctm-dn-tp-dn-bd-cr);
|
|
796
|
-
z-index: 1000;
|
|
797
|
-
// Sizing follows the image hotspot: the user's width/height with a floor under
|
|
798
|
-
// them. The caps are viewport-relative on purpose — this element's containing
|
|
799
|
-
// block is the Google marker, which is effectively zero-sized, so a percentage
|
|
800
|
-
// max-width would resolve to 0 and clamp the tooltip down to its min instead of
|
|
801
|
-
// holding the size the user set. The viewport cap still stops a desktop-sized
|
|
802
|
-
// tooltip spilling off a phone screen.
|
|
803
|
-
width: prepareMediaVariable(--_ctm-dn-tp-dn-tp-wh);
|
|
804
|
-
height: prepareMediaVariable(--_ctm-dn-tp-dn-tp-ht);
|
|
805
|
-
min-width: 100px;
|
|
806
|
-
min-height: 100px;
|
|
807
|
-
max-width: calc(100vw - 32px);
|
|
808
|
-
max-height: calc(100vh - 32px);
|
|
809
|
-
box-sizing: border-box;
|
|
810
|
-
// Placement comes from the [data-hotspot-position] transforms above, measured
|
|
811
|
-
// from the marker origin.
|
|
812
|
-
top: 0;
|
|
813
|
-
left: 0;
|
|
814
|
-
// No overflow here on purpose. The tip is an ::after sitting 10px outside the
|
|
815
|
-
// box, so any overflow value other than visible clips it away — that's what was
|
|
816
|
-
// eating the caret. The image hotspot scrolls its inner wrapper instead, and
|
|
817
|
-
// .text_box below does the same.
|
|
818
|
-
overflow: visible;
|
|
819
|
-
|
|
820
|
-
padding: 4px 8px;
|
|
821
|
-
display: flex;
|
|
822
|
-
justify-content: prepareMediaVariable(--_ctm-dn-tp-dn-hl-at);
|
|
823
|
-
align-items: prepareMediaVariable(--_ctm-dn-tp-dn-vl-at);
|
|
824
|
-
|
|
825
|
-
&::after {
|
|
826
|
-
content: "";
|
|
827
|
-
position: absolute;
|
|
828
|
-
|
|
829
|
-
border-width: 5px;
|
|
830
|
-
border-style: solid;
|
|
831
|
-
}
|
|
832
|
-
// The scroll container, mirroring .tooltip__image_with_text on the image
|
|
833
|
-
// hotspot: long content scrolls in here rather than on the tooltip itself.
|
|
834
|
-
.text_box {
|
|
835
|
-
overflow-y: auto;
|
|
836
|
-
max-width: 100%;
|
|
837
|
-
width: 100%;
|
|
838
|
-
height: 100%;
|
|
839
|
-
// This wrapper fills the tooltip on both axes, so the justify-content /
|
|
840
|
-
// align-items set on .hotspot__tooltip above have nothing left to move —
|
|
841
|
-
// that is why both alignment controls looked dead. Same trap the image
|
|
842
|
-
// hotspot hit with .tooltip__image_with_text (hotspot.scss): the alignment
|
|
843
|
-
// has to be re-applied on the box that actually holds the title and the
|
|
844
|
-
// description. The stack is a column here, so the *vertical* control drives
|
|
845
|
-
// justify-content and the *horizontal* one drives align-items — the opposite
|
|
846
|
-
// mapping to the tooltip itself.
|
|
847
|
-
display: flex;
|
|
848
|
-
flex-direction: column;
|
|
849
|
-
justify-content: prepareMediaVariable(--_ctm-dn-tp-dn-vl-at);
|
|
850
|
-
align-items: prepareMediaVariable(--_ctm-dn-tp-dn-hl-at);
|
|
851
|
-
|
|
852
|
-
// align-items shrinks each child to its content width, so the text still
|
|
853
|
-
// needs a cap to wrap against instead of overflowing the tooltip.
|
|
854
|
-
> * {
|
|
855
|
-
max-width: 100%;
|
|
856
|
-
}
|
|
857
|
-
|
|
858
|
-
h6 {
|
|
859
|
-
font-size: prepareMediaVariable(--_ctm-dn-tp-tt-dn-ft-se);
|
|
860
|
-
font-family: prepareMediaVariable(--_ctm-dn-tp-tt-dn-ft-fy);
|
|
861
|
-
color: prepareMediaVariable(--_ctm-dn-tp-tt-dn-cr);
|
|
862
|
-
|
|
863
|
-
font-weight: prepareMediaVariable(--_ctm-dn-tp-tt-dn-ft-wt);
|
|
864
|
-
font-style: prepareMediaVariable(--_ctm-dn-tp-tt-dn-ft-se-ic);
|
|
865
|
-
text-align: prepareMediaVariable(--_ctm-dn-tp-tt-dn-tt-an);
|
|
866
|
-
letter-spacing: prepareMediaVariable(--_ctm-dn-tp-tt-dn-lr-sg);
|
|
867
|
-
line-height: prepareMediaVariable(--_ctm-dn-tp-tt-dn-le-ht);
|
|
868
|
-
// Underline and line-through are two independent toggles writing two
|
|
869
|
-
// variables, so they have to be composed, not chained. `var(--lh, <ue>)`
|
|
870
|
-
// never reaches its fallback: the schema declares linethrough with an
|
|
871
|
-
// empty value, and stylesToString emits it as `--…-lh: ;`, which is a
|
|
872
|
-
// *defined* empty value rather than a missing one — so var() substitutes
|
|
873
|
-
// nothing and the whole declaration is thrown away. Listing both keywords
|
|
874
|
-
// on text-decoration-line lets either, both or neither apply; when both
|
|
875
|
-
// resolve empty the declaration is invalid and the initial `none` stands,
|
|
876
|
-
// which is exactly the both-off case.
|
|
877
|
-
text-decoration-line: var(
|
|
878
|
-
--_ctm-mob-dn-tp-tt-dn-ue,
|
|
879
|
-
var(--_ctm-tab-dn-tp-tt-dn-ue, var(--_ctm-dn-tp-tt-dn-ue,))
|
|
880
|
-
)
|
|
881
|
-
var(
|
|
882
|
-
--_ctm-mob-dn-tp-tt-dn-lh,
|
|
883
|
-
var(--_ctm-tab-dn-tp-tt-dn-lh, var(--_ctm-dn-tp-tt-dn-lh,))
|
|
884
|
-
);
|
|
885
|
-
// Same text properties the text element exposes (see text-temp-v2.scss).
|
|
886
|
-
text-transform: prepareMediaVariable(--_ctm-dn-tp-tt-dn-tt-tm, none);
|
|
887
|
-
word-wrap: prepareMediaVariable(--_ctm-dn-tp-tt-dn-wd-wp, normal);
|
|
888
|
-
word-break: prepareMediaVariable(--_ctm-dn-tp-tt-dn-wd-bk, normal);
|
|
889
|
-
|
|
890
|
-
// Text Overflow toggle in the typography panel; the line count rides in on
|
|
891
|
-
// --_sf-line-clamp from the element.
|
|
892
|
-
&#{$overflowSelector} {
|
|
893
|
-
@include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
|
|
894
|
-
}
|
|
895
|
-
}
|
|
896
|
-
p {
|
|
897
|
-
font-size: prepareMediaVariable(--_ctm-dn-tp-tt-dn-ft-se-dc);
|
|
898
|
-
color: prepareMediaVariable(--_ctm-dn-tp-tt-dn-cr-dc);
|
|
899
|
-
font-family: prepareMediaVariable(--_ctm-dn-tp-tt-dn-ft-fy-dc);
|
|
900
|
-
font-weight: prepareMediaVariable(--_ctm-dn-tp-tt-dn-ft-wt-dc);
|
|
901
|
-
font-style: prepareMediaVariable(--_ctm-dn-tp-tt-dn-ft-se-ic-dc);
|
|
902
|
-
text-align: prepareMediaVariable(--_ctm-dn-tp-tt-dn-tt-an-dc);
|
|
903
|
-
letter-spacing: prepareMediaVariable(--_ctm-dn-tp-tt-dn-lr-sg-dc);
|
|
904
|
-
line-height: prepareMediaVariable(--_ctm-dn-tp-tt-dn-le-ht-dc);
|
|
905
|
-
// Same composition as the title above.
|
|
906
|
-
text-decoration-line: var(
|
|
907
|
-
--_ctm-mob-dn-tp-tt-dn-ue-dc,
|
|
908
|
-
var(--_ctm-tab-dn-tp-tt-dn-ue-dc, var(--_ctm-dn-tp-tt-dn-ue-dc,))
|
|
909
|
-
)
|
|
910
|
-
var(
|
|
911
|
-
--_ctm-mob-dn-tp-tt-dn-lh-dc,
|
|
912
|
-
var(--_ctm-tab-dn-tp-tt-dn-lh-dc, var(--_ctm-dn-tp-tt-dn-lh-dc,))
|
|
913
|
-
);
|
|
914
|
-
text-transform: prepareMediaVariable(--_ctm-dn-tp-tt-dn-tt-tm-dc, none);
|
|
915
|
-
word-wrap: prepareMediaVariable(--_ctm-dn-tp-tt-dn-wd-wp-dc, normal);
|
|
916
|
-
word-break: prepareMediaVariable(--_ctm-dn-tp-tt-dn-wd-bk-dc, normal);
|
|
917
|
-
|
|
918
|
-
&#{$overflowSelector} {
|
|
919
|
-
@include restrictToLinesShow(#{var(--_sf-line-clamp-desc, 1)});
|
|
920
|
-
}
|
|
921
|
-
}
|
|
922
|
-
}
|
|
923
|
-
.tooltip__image {
|
|
924
|
-
width: 100%;
|
|
925
|
-
background-color: var(--_ctm-dn-tp-ie-dn-bd-cr);
|
|
926
|
-
transition: transform 0.3s ease-in-out;
|
|
927
|
-
display: flex;
|
|
928
|
-
justify-content: var(--_ctm-dn-tp-ie-dn-hl-at);
|
|
929
|
-
align-items: var(--_ctm-dn-tp-ie-dn-vl-at);
|
|
930
|
-
img {
|
|
931
|
-
object-fit: var(--_ctm-dn-tp-ie-dn-ft-os);
|
|
932
|
-
height: -webkit-fill-available;
|
|
933
|
-
max-width: 100%;
|
|
934
|
-
rotate: calc(var(--_ctm-dn-tp-ie-dn-ud) * 1deg);
|
|
935
|
-
scale: var(--_ctm-dn-tp-ie-dn-zm-ie);
|
|
936
|
-
|
|
937
|
-
&:hover {
|
|
938
|
-
&[data-on-img-hover="Zoom In"] {
|
|
939
|
-
transform: scale(1.08);
|
|
940
|
-
}
|
|
941
|
-
&[data-on-img-hover="Zoom Out"] {
|
|
942
|
-
transform: scale(0.92);
|
|
943
|
-
}
|
|
944
|
-
}
|
|
945
|
-
}
|
|
946
|
-
}
|
|
947
|
-
}
|
|
948
|
-
// .hotspot__main {
|
|
949
|
-
// position: relative;
|
|
950
|
-
// .hotspot {
|
|
951
|
-
// background: var(
|
|
952
|
-
// --_ctm-mob-dn-pn-se-bd-cr,
|
|
953
|
-
// var(--_ctm-tab-dn-pn-se-bd-cr, var(--_ctm-dn-pn-se-bd-cr))
|
|
954
|
-
// );
|
|
955
|
-
// border-style: var(
|
|
956
|
-
// --_ctm-mob-dn-pn-se-br-se,
|
|
957
|
-
// var(--_ctm-tab-dn-pn-se-br-se, var(--_ctm-dn-pn-se-br-se))
|
|
958
|
-
// );
|
|
959
|
-
// border-color: var(
|
|
960
|
-
// --_ctm-mob-dn-pn-se-br-cr,
|
|
961
|
-
// var(--_ctm-tab-dn-pn-se-br-cr, var(--_ctm-dn-pn-se-br-cr))
|
|
962
|
-
// );
|
|
963
|
-
// border-width: var(
|
|
964
|
-
// --_ctm-mob-dn-pn-se-br-wh,
|
|
965
|
-
// var(--_ctm-tab-dn-pn-se-br-wh, var(--_ctm-dn-pn-se-br-wh))
|
|
966
|
-
// );
|
|
967
|
-
// border-radius: var(
|
|
968
|
-
// --_ctm-mob-dn-pn-se-br-rs,
|
|
969
|
-
// var(--_ctm-tab-dn-pn-se-br-rs, var(--_ctm-dn-pn-se-br-rs))
|
|
970
|
-
// );
|
|
971
|
-
// box-shadow: var(
|
|
972
|
-
// --_show-shadow,
|
|
973
|
-
// var(
|
|
974
|
-
// --_ctm-mob-dn-pn-se-sw-ae,
|
|
975
|
-
// var(--_ctm-tab-dn-pn-se-sw-ae, var(--_ctm-dn-pn-se-sw-ae))
|
|
976
|
-
// )
|
|
977
|
-
// var(
|
|
978
|
-
// --_ctm-mob-dn-pn-se-sw-br,
|
|
979
|
-
// var(--_ctm-tab-dn-pn-se-sw-br, var(--_ctm-dn-pn-se-sw-br))
|
|
980
|
-
// )
|
|
981
|
-
// var(
|
|
982
|
-
// --_ctm-mob-dn-pn-se-sw-sd,
|
|
983
|
-
// var(--_ctm-tab-dn-pn-se-sw-sd, var(--_ctm-dn-pn-se-sw-sd))
|
|
984
|
-
// )
|
|
985
|
-
// var(
|
|
986
|
-
// --_ctm-mob-dn-pn-se-sw-cr,
|
|
987
|
-
// var(--_ctm-tab-dn-pn-se-sw-cr, var(--_ctm-dn-pn-se-sw-cr))
|
|
988
|
-
// )
|
|
989
|
-
// );
|
|
990
|
-
|
|
991
|
-
// position: absolute;
|
|
992
|
-
// cursor: pointer;
|
|
993
|
-
// width: var(
|
|
994
|
-
// --_ctm-mob-dn-pn-se-ht-se,
|
|
995
|
-
// var(--_ctm-tab-dn-pn-se-ht-se, var(--_ctm-dn-pn-se-ht-se))
|
|
996
|
-
// );
|
|
997
|
-
// height: var(
|
|
998
|
-
// --_ctm-mob-dn-pn-se-ht-se,
|
|
999
|
-
// var(--_ctm-tab-dn-pn-se-ht-se, var(--_ctm-dn-pn-se-ht-se))
|
|
1000
|
-
// );
|
|
1001
|
-
// background-color: var(
|
|
1002
|
-
// --_ctm-mob-dn-pn-se-bd-cr,
|
|
1003
|
-
// var(--_ctm-tab-dn-pn-se-bd-cr, var(--_ctm-dn-pn-se-bd-cr))
|
|
1004
|
-
// );
|
|
1005
|
-
|
|
1006
|
-
// display: flex;
|
|
1007
|
-
// align-items: center;
|
|
1008
|
-
// top: 50%;
|
|
1009
|
-
// left: 50%;
|
|
1010
|
-
// transform: translate(-50%, -50%);
|
|
1011
|
-
// justify-content: center;
|
|
1012
|
-
// animation: scaleInOut
|
|
1013
|
-
// var(
|
|
1014
|
-
// --_ctm-mob-dn-pn-se-an-fy,
|
|
1015
|
-
// var(--_ctm-tab-dn-pn-se-an-fy, var(--_ctm-dn-pn-se-an-fy))
|
|
1016
|
-
// )
|
|
1017
|
-
// infinite;
|
|
1018
|
-
|
|
1019
|
-
// .icon {
|
|
1020
|
-
// display: var(--_sf-show-icon-ff, flex);
|
|
1021
|
-
|
|
1022
|
-
// svg {
|
|
1023
|
-
// width: var(
|
|
1024
|
-
// --_ctm-mob-dn-pn-se-in-se,
|
|
1025
|
-
// var(--_ctm-tab-dn-pn-se-in-se, var(--_ctm-dn-pn-se-in-se))
|
|
1026
|
-
// );
|
|
1027
|
-
// height: var(
|
|
1028
|
-
// --_ctm-mob-dn-pn-se-in-se,
|
|
1029
|
-
// var(--_ctm-tab-dn-pn-se-in-se, var(--_ctm-dn-pn-se-in-se))
|
|
1030
|
-
// );
|
|
1031
|
-
|
|
1032
|
-
// path {
|
|
1033
|
-
// stroke: var(
|
|
1034
|
-
// --_ctm-mob-dn-pn-se-in-c1,
|
|
1035
|
-
// var(--_ctm-tab-dn-pn-se-in-c1, var(--_ctm-dn-pn-se-in-c1))
|
|
1036
|
-
// );
|
|
1037
|
-
// Overrides the stroke-width presentation attribute baked into the icon markup.
|
|
1038
|
-
stroke-width: prepareMediaVariable(--_ctm-dn-pn-se-se-wh, 1.25);
|
|
1039
|
-
// fill: var(
|
|
1040
|
-
// --_ctm-mob-dn-pn-se-in-c1,
|
|
1041
|
-
// var(--_ctm-tab-dn-pn-se-in-c1, var(--_ctm-dn-pn-se-in-c1))
|
|
1042
|
-
// );
|
|
1043
|
-
// }
|
|
1044
|
-
// }
|
|
1045
|
-
// }
|
|
1046
|
-
// }
|
|
1047
|
-
// .hotspot__tooltip {
|
|
1048
|
-
// position: absolute;
|
|
1049
|
-
// background: var(
|
|
1050
|
-
// --_ctm-mob-dn-tp-dn-bd-cr,
|
|
1051
|
-
// var(--_ctm-tab-dn-tp-dn-bd-cr, var(--_ctm-dn-tp-dn-bd-cr))
|
|
1052
|
-
// );
|
|
1053
|
-
// border-style: var(
|
|
1054
|
-
// --_ctm-mob-dn-tp-dn-br-se,
|
|
1055
|
-
// var(--_ctm-tab-dn-tp-dn-br-se, var(--_ctm-dn-tp-dn-br-se))
|
|
1056
|
-
// );
|
|
1057
|
-
// border-color: var(
|
|
1058
|
-
// --_ctm-mob-dn-tp-dn-br-cr,
|
|
1059
|
-
// var(--_ctm-tab-dn-tp-dn-br-cr, var(--_ctm-dn-tp-dn-br-cr))
|
|
1060
|
-
// );
|
|
1061
|
-
// border-width: var(
|
|
1062
|
-
// --_ctm-mob-dn-tp-dn-br-wh,
|
|
1063
|
-
// var(--_ctm-tab-dn-tp-dn-br-wh, var(--_ctm-dn-tp-dn-br-wh))
|
|
1064
|
-
// );
|
|
1065
|
-
// border-radius: var(
|
|
1066
|
-
// --_ctm-mob-dn-tp-dn-br-rs,
|
|
1067
|
-
// var(--_ctm-tab-dn-tp-dn-br-rs, var(--_ctm-dn-tp-dn-br-rs))
|
|
1068
|
-
// );
|
|
1069
|
-
|
|
1070
|
-
// box-shadow: var(
|
|
1071
|
-
// --_show-shadow,
|
|
1072
|
-
// var(
|
|
1073
|
-
// --_ctm-mob-dn-tp-dn-sw-ae,
|
|
1074
|
-
// var(--_ctm-tab-dn-tp-dn-sw-ae, var(--_ctm-dn-tp-dn-sw-ae))
|
|
1075
|
-
// )
|
|
1076
|
-
// var(
|
|
1077
|
-
// --_ctm-mob-dn-tp-dn-sw-br,
|
|
1078
|
-
// var(--_ctm-tab-dn-tp-dn-sw-br, var(--_ctm-dn-tp-dn-sw-br))
|
|
1079
|
-
// )
|
|
1080
|
-
// var(
|
|
1081
|
-
// --_ctm-mob-dn-tp-dn-sw-sd,
|
|
1082
|
-
// var(--_ctm-tab-dn-tp-dn-sw-sd, var(--_ctm-dn-tp-dn-sw-sd))
|
|
1083
|
-
// )
|
|
1084
|
-
// var(
|
|
1085
|
-
// --_ctm-mob-dn-tp-dn-sw-cr,
|
|
1086
|
-
// var(--_ctm-tab-dn-tp-dn-sw-cr, var(--_ctm-dn-tp-dn-sw-cr))
|
|
1087
|
-
// )
|
|
1088
|
-
// );
|
|
1089
|
-
|
|
1090
|
-
// z-index: 1000;
|
|
1091
|
-
// min-width: 100px;
|
|
1092
|
-
// width: var(
|
|
1093
|
-
// --_ctm-mob-dn-tp-dn-tp-wh,
|
|
1094
|
-
// var(--_ctm-tab-dn-tp-dn-tp-wh, var(--_ctm-dn-tp-dn-tp-wh))
|
|
1095
|
-
// );
|
|
1096
|
-
// min-height: 100px;
|
|
1097
|
-
// height: var(
|
|
1098
|
-
// --_ctm-mob-dn-tp-dn-tp-ht,
|
|
1099
|
-
// var(--_ctm-tab-dn-tp-dn-tp-ht, var(--_ctm-dn-tp-dn-tp-ht))
|
|
1100
|
-
// );
|
|
1101
|
-
|
|
1102
|
-
// // border-radius: 4px;
|
|
1103
|
-
// // transform: translate(-10%, -130%);
|
|
1104
|
-
// left: -10px;
|
|
1105
|
-
// bottom: 7px;
|
|
1106
|
-
// padding: 4px 8px;
|
|
1107
|
-
// display: flex;
|
|
1108
|
-
// justify-content: var(
|
|
1109
|
-
// --_ctm-mob-dn-tp-dn-hl-at,
|
|
1110
|
-
// var(--_ctm-tab-dn-tp-dn-hl-at, var(--_ctm-dn-tp-dn-hl-at))
|
|
1111
|
-
// );
|
|
1112
|
-
// align-items: var(
|
|
1113
|
-
// --_ctm-mob-dn-tp-dn-vl-at,
|
|
1114
|
-
// var(--_ctm-tab-dn-tp-dn-vl-at, var(--_ctm-dn-tp-dn-vl-at))
|
|
1115
|
-
// );
|
|
1116
|
-
|
|
1117
|
-
// &::after {
|
|
1118
|
-
// content: "";
|
|
1119
|
-
// position: absolute;
|
|
1120
|
-
// top: 100%;
|
|
1121
|
-
// left: 20px;
|
|
1122
|
-
// margin-left: -5px;
|
|
1123
|
-
// border-width: 5px;
|
|
1124
|
-
// border-style: solid;
|
|
1125
|
-
// border-color: var(
|
|
1126
|
-
// --_ctm-mob-dn-tp-dn-bd-cr,
|
|
1127
|
-
// var(--_ctm-tab-dn-tp-dn-bd-cr, var(--_ctm-dn-tp-dn-bd-cr))
|
|
1128
|
-
// )
|
|
1129
|
-
// transparent transparent transparent;
|
|
1130
|
-
// }
|
|
1131
|
-
// span {
|
|
1132
|
-
// svg {
|
|
1133
|
-
// width: var(
|
|
1134
|
-
// --_ctm-mob-dn-pn-se-in-se,
|
|
1135
|
-
// var(--_ctm-tab-dn-pn-se-in-se, var(--_ctm-dn-pn-se-in-se))
|
|
1136
|
-
// );
|
|
1137
|
-
// height: var(
|
|
1138
|
-
// --_ctm-mob-dn-pn-se-in-se,
|
|
1139
|
-
// var(--_ctm-tab-dn-pn-se-in-se, var(--_ctm-dn-pn-se-in-se))
|
|
1140
|
-
// );
|
|
1141
|
-
// path {
|
|
1142
|
-
// stroke: var(
|
|
1143
|
-
// --_ctm-mob-dn-pn-se-in-c1,
|
|
1144
|
-
// var(--_ctm-tab-dn-pn-se-in-c1, var(--_ctm-dn-pn-se-in-c1))
|
|
1145
|
-
// );
|
|
1146
|
-
// Overrides the stroke-width presentation attribute baked into the icon markup.
|
|
1147
|
-
stroke-width: prepareMediaVariable(--_ctm-dn-pn-se-se-wh, 1.25);
|
|
1148
|
-
// }
|
|
1149
|
-
// }
|
|
1150
|
-
// }
|
|
1151
|
-
|
|
1152
|
-
// .text_box {
|
|
1153
|
-
// h6 {
|
|
1154
|
-
// font-size: var(
|
|
1155
|
-
// --_ctm-mob-dn-tp-tt-dn-ft-se,
|
|
1156
|
-
// var(--_ctm-tab-dn-tp-tt-dn-ft-se, var(--_ctm-dn-tp-tt-dn-ft-se))
|
|
1157
|
-
// );
|
|
1158
|
-
// font-family: var(
|
|
1159
|
-
// --_ctm-mob-dn-tp-tt-dn-ft-fy,
|
|
1160
|
-
// var(--_ctm-tab-dn-tp-tt-dn-ft-fy, var(--_ctm-dn-tp-tt-dn-ft-fy))
|
|
1161
|
-
// );
|
|
1162
|
-
// color: var(
|
|
1163
|
-
// --_ctm-mob-dn-tp-tt-dn-cr,
|
|
1164
|
-
// var(--_ctm-tab-dn-tp-tt-dn-cr, var(--_ctm-dn-tp-tt-dn-cr))
|
|
1165
|
-
// );
|
|
1166
|
-
|
|
1167
|
-
// font-weight: var(
|
|
1168
|
-
// --_ctm-mob-dn-tp-tt-dn-ft-wt,
|
|
1169
|
-
// var(--_ctm-tab-dn-tp-tt-dn-ft-wt, var(--_ctm-dn-tp-tt-dn-ft-wt))
|
|
1170
|
-
// );
|
|
1171
|
-
// font-style: var(
|
|
1172
|
-
// --_ctm-mob-dn-tp-tt-dn-ft-se-ic,
|
|
1173
|
-
// var(--_ctm-tab-dn-tp-tt-dn-ft-se-ic, var(--_ctm-dn-tp-tt-dn-ft-se-ic))
|
|
1174
|
-
// );
|
|
1175
|
-
// text-align: var(
|
|
1176
|
-
// --_ctm-mob-dn-tp-tt-dn-tt-an,
|
|
1177
|
-
// var(--_ctm-tab-dn-tp-tt-dn-tt-an, var(--_ctm-dn-tp-tt-dn-tt-an))
|
|
1178
|
-
// );
|
|
1179
|
-
// letter-spacing: var(
|
|
1180
|
-
// --_ctm-mob-dn-tp-tt-dn-lr-sg,
|
|
1181
|
-
// var(--_ctm-tab-dn-tp-tt-dn-lr-sg, var(--_ctm-dn-tp-tt-dn-lr-sg))
|
|
1182
|
-
// );
|
|
1183
|
-
// line-height: var(
|
|
1184
|
-
// --_ctm-mob-dn-tp-tt-dn-le-ht,
|
|
1185
|
-
// var(--_ctm-tab-dn-tp-tt-dn-le-ht, var(--_ctm-dn-tp-tt-dn-le-ht))
|
|
1186
|
-
// );
|
|
1187
|
-
// text-decoration: var(
|
|
1188
|
-
// --_ctm-mob-dn-tp-tt-dn-ue,
|
|
1189
|
-
// var(--_ctm-tab-dn-tp-tt-dn-ue, var(--_ctm-dn-tp-tt-dn-ue))
|
|
1190
|
-
// );
|
|
1191
|
-
// }
|
|
1192
|
-
|
|
1193
|
-
// p {
|
|
1194
|
-
// font-size: var(
|
|
1195
|
-
// --_ctm-mob-dn-tp-tt-dn-ft-se-dc,
|
|
1196
|
-
// var(--_ctm-tab-dn-tp-tt-dn-ft-se-dc, var(--_ctm-dn-tp-tt-dn-ft-se-dc))
|
|
1197
|
-
// );
|
|
1198
|
-
// color: var(
|
|
1199
|
-
// --_ctm-mob-dn-tp-tt-dn-cr-dc,
|
|
1200
|
-
// var(--_ctm-tab-dn-tp-tt-dn-cr-dc, var(--_ctm-dn-tp-tt-dn-cr-dc))
|
|
1201
|
-
// );
|
|
1202
|
-
// font-family: var(
|
|
1203
|
-
// --_ctm-mob-dn-tp-tt-dn-ft-fy-dc,
|
|
1204
|
-
// var(--_ctm-tab-dn-tp-tt-dn-ft-fy-dc, var(--_ctm-dn-tp-tt-dn-ft-fy-dc))
|
|
1205
|
-
// );
|
|
1206
|
-
// font-weight: var(
|
|
1207
|
-
// --_ctm-mob-dn-tp-tt-dn-ft-wt-dc,
|
|
1208
|
-
// var(--_ctm-tab-dn-tp-tt-dn-ft-wt-dc, var(--_ctm-dn-tp-tt-dn-ft-wt-dc))
|
|
1209
|
-
// );
|
|
1210
|
-
// font-style: var(
|
|
1211
|
-
// --_ctm-mob-dn-tp-tt-dn-ft-se-ic-dc,
|
|
1212
|
-
// var(--_ctm-tab-dn-tp-tt-dn-ft-se-ic-dc, var(--_ctm-dn-tp-tt-dn-ft-se-ic-dc))
|
|
1213
|
-
// );
|
|
1214
|
-
// text-align: var(
|
|
1215
|
-
// --_ctm-mob-dn-tp-tt-dn-tt-an-dc,
|
|
1216
|
-
// var(--_ctm-tab-dn-tp-tt-dn-tt-an-dc, var(--_ctm-dn-tp-tt-dn-tt-an-dc))
|
|
1217
|
-
// );
|
|
1218
|
-
// letter-spacing: var(
|
|
1219
|
-
// --_ctm-mob-dn-tp-tt-dn-lr-sg-dc,
|
|
1220
|
-
// var(--_ctm-tab-dn-tp-tt-dn-lr-sg-dc, var(--_ctm-dn-tp-tt-dn-lr-sg-dc))
|
|
1221
|
-
// );
|
|
1222
|
-
// line-height: var(
|
|
1223
|
-
// --_ctm-mob-dn-tp-tt-dn-le-ht-dc,
|
|
1224
|
-
// var(--_ctm-tab-dn-tp-tt-dn-le-ht-dc, var(--_ctm-dn-tp-tt-dn-le-ht-dc))
|
|
1225
|
-
// );
|
|
1226
|
-
// text-decoration: var(
|
|
1227
|
-
// --_ctm-mob-dn-tp-tt-dn-ue-dc,
|
|
1228
|
-
// var(--_ctm-tab-dn-tp-tt-dn-ue-dc, var(--_ctm-dn-tp-tt-dn-ue-dc))
|
|
1229
|
-
// );
|
|
1230
|
-
// }
|
|
1231
|
-
// }
|
|
1232
|
-
// .tooltip__image {
|
|
1233
|
-
// background-color: var(
|
|
1234
|
-
// --_ctm-mob-dn-tp-ie-dn-bd-cr,
|
|
1235
|
-
// var(--_ctm-tab-dn-tp-ie-dn-bd-cr, var(--_ctm-dn-tp-ie-dn-bd-cr))
|
|
1236
|
-
// );
|
|
1237
|
-
// transition: transform 0.3s ease-in-out;
|
|
1238
|
-
// border-style: var(
|
|
1239
|
-
// --_ctm-mob-dn-tp-ie-dn-br-se,
|
|
1240
|
-
// var(--_ctm-tab-dn-tp-ie-dn-br-se, var(--_ctm-dn-tp-ie-dn-br-se))
|
|
1241
|
-
// );
|
|
1242
|
-
// border-color: var(
|
|
1243
|
-
// --_ctm-mob-dn-tp-ie-dn-br-cr,
|
|
1244
|
-
// var(--_ctm-tab-dn-tp-ie-dn-br-cr, var(--_ctm-dn-tp-ie-dn-br-cr))
|
|
1245
|
-
// );
|
|
1246
|
-
// border-width: var(
|
|
1247
|
-
// --_ctm-mob-dn-tp-ie-dn-br-wh,
|
|
1248
|
-
// var(--_ctm-tab-dn-tp-ie-dn-br-wh, var(--_ctm-dn-tp-ie-dn-br-wh))
|
|
1249
|
-
// );
|
|
1250
|
-
// border-radius: var(
|
|
1251
|
-
// --_ctm-mob-dn-tp-ie-dn-br-rs,
|
|
1252
|
-
// var(--_ctm-tab-dn-tp-ie-dn-br-rs, var(--_ctm-dn-tp-ie-dn-br-rs))
|
|
1253
|
-
// );
|
|
1254
|
-
// box-shadow: var(
|
|
1255
|
-
// --_show-shadow,
|
|
1256
|
-
// var(
|
|
1257
|
-
// --_ctm-mob-dn-tp-ie-dn-sw-ae,
|
|
1258
|
-
// var(--_ctm-tab-dn-tp-ie-dn-sw-ae, var(--_ctm-dn-tp-ie-dn-sw-ae))
|
|
1259
|
-
// )
|
|
1260
|
-
// var(
|
|
1261
|
-
// --_ctm-mob-dn-tp-ie-dn-sw-br,
|
|
1262
|
-
// var(--_ctm-tab-dn-tp-ie-dn-sw-br, var(--_ctm-dn-tp-ie-dn-sw-br))
|
|
1263
|
-
// )
|
|
1264
|
-
// var(
|
|
1265
|
-
// --_ctm-mob-dn-tp-ie-dn-sw-sd,
|
|
1266
|
-
// var(--_ctm-tab-dn-tp-ie-dn-sw-sd, var(--_ctm-dn-tp-ie-dn-sw-sd))
|
|
1267
|
-
// )
|
|
1268
|
-
// var(
|
|
1269
|
-
// --_ctm-mob-dn-tp-ie-dn-sw-cr,
|
|
1270
|
-
// var(--_ctm-tab-dn-tp-ie-dn-sw-cr, var(--_ctm-dn-tp-ie-dn-sw-cr))
|
|
1271
|
-
// )
|
|
1272
|
-
// );
|
|
1273
|
-
// display: flex;
|
|
1274
|
-
// justify-content: var(
|
|
1275
|
-
// --_ctm-mob-dn-tp-ie-dn-hl-at,
|
|
1276
|
-
// var(--_ctm-tab-dn-tp-ie-dn-hl-at, var(--_ctm-dn-tp-ie-dn-hl-at))
|
|
1277
|
-
// );
|
|
1278
|
-
// align-items: var(
|
|
1279
|
-
// --_ctm-mob-dn-tp-ie-dn-vl-at,
|
|
1280
|
-
// var(--_ctm-tab-dn-tp-ie-dn-vl-at, var(--_ctm-dn-tp-ie-dn-vl-at))
|
|
1281
|
-
// );
|
|
1282
|
-
|
|
1283
|
-
// img {
|
|
1284
|
-
// object-fit: var(
|
|
1285
|
-
// --_ctm-mob-dn-tp-ie-dn-ft-os,
|
|
1286
|
-
// var(--_ctm-tab-dn-tp-ie-dn-ft-os, var(--_ctm-dn-tp-ie-dn-ft-os))
|
|
1287
|
-
// );
|
|
1288
|
-
// max-width: 100%;
|
|
1289
|
-
// rotate: calc(
|
|
1290
|
-
// var(
|
|
1291
|
-
// --_ctm-mob-dn-tp-ie-dn-ud,
|
|
1292
|
-
// var(--_ctm-tab-dn-tp-ie-dn-ud, var(--_ctm-dn-tp-ie-dn-ud))
|
|
1293
|
-
// ) *
|
|
1294
|
-
// 1deg
|
|
1295
|
-
// );
|
|
1296
|
-
// scale: var(
|
|
1297
|
-
// --_ctm-mob-dn-tp-ie-dn-zm-ie,
|
|
1298
|
-
// var(--_ctm-tab-dn-tp-ie-dn-zm-ie, var(--_ctm-dn-tp-ie-dn-zm-ie))
|
|
1299
|
-
// );
|
|
1300
|
-
// }
|
|
1301
|
-
// }
|
|
1302
|
-
// }
|
|
1303
|
-
// }
|
|
1304
|
-
|
|
1305
|
-
.map {
|
|
1306
|
-
width: 100%;
|
|
1307
|
-
height: 100%;
|
|
1308
|
-
min-width: 0;
|
|
1309
|
-
// Yields height to the heading rather than demanding the full 100%.
|
|
1310
|
-
flex: 1 1 auto;
|
|
1311
|
-
min-height: 0;
|
|
1312
|
-
// design > Map Style. The map box paints its own border from that section's
|
|
1313
|
-
// scope (`--_ctm-dn-mp-se-*`), independent of the widget's border on
|
|
1314
|
-
// `.map-element` and the header's on `.gallery-header`. `overflow: hidden` so a
|
|
1315
|
-
// rounded corner actually clips the tiles inside it.
|
|
1316
|
-
overflow: hidden;
|
|
1317
|
-
border-color: prepareMediaVariable(--_ctm-dn-mp-ie-br-cr);
|
|
1318
|
-
border-style: prepareMediaVariable(--_ctm-dn-mp-ie-br-se);
|
|
1319
|
-
border-width: prepareMediaVariable(--_ctm-dn-mp-ie-br-wh);
|
|
1320
|
-
border-radius: prepareMediaVariable(--_ctm-dn-mp-ie-br-rs);
|
|
1321
|
-
img {
|
|
1322
|
-
width: 100%;
|
|
1323
|
-
height: 100%;
|
|
1324
|
-
}
|
|
1325
|
-
}
|
|
1326
|
-
}
|
|
1327
|
-
|
|
1328
|
-
// "Show Border" / "Show Shadow" switches. Each design section paints its box from
|
|
1329
|
-
// CSS variables, so the switches reach the stylesheet as data attributes and the
|
|
1330
|
-
// matching border-width / box-shadow is zeroed here. Kept at the end of the block
|
|
1331
|
-
// and matched to the same selector depth as the rules they override — anywhere
|
|
1332
|
-
// earlier and the section rules above would win the tie on source order.
|
|
1333
|
-
&[data-map-widget-border="false"] .map-element {
|
|
1334
|
-
border-width: 0;
|
|
1335
|
-
border-style: none;
|
|
1336
|
-
}
|
|
1337
|
-
&[data-map-widget-shadow="false"] .map-element {
|
|
1338
|
-
box-shadow: none;
|
|
1339
|
-
}
|
|
1340
|
-
&[data-text-container-border="false"] .map-element > .gallery-header {
|
|
1341
|
-
border-width: 0;
|
|
1342
|
-
border-style: none;
|
|
1343
|
-
}
|
|
1344
|
-
&[data-text-container-shadow="false"] .map-element > .gallery-header {
|
|
1345
|
-
box-shadow: none;
|
|
1346
|
-
}
|
|
1347
|
-
&[data-pin-border="false"] .map-element .hotspot__container .hotspot__main .hotspot {
|
|
1348
|
-
border-width: 0;
|
|
1349
|
-
border-style: none;
|
|
1350
|
-
}
|
|
1351
|
-
&[data-pin-shadow="false"] .map-element .hotspot__container .hotspot__main .hotspot {
|
|
1352
|
-
box-shadow: none;
|
|
1353
|
-
}
|
|
1354
|
-
&[data-map-border="false"] .map-element .map {
|
|
1355
|
-
border-width: 0;
|
|
1356
|
-
border-style: none;
|
|
1357
|
-
}
|
|
1358
|
-
}
|
|
1359
|
-
}
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
@use "sass:list";
|
|
3
|
+
@use "./functions.scss" as *;
|
|
4
|
+
|
|
5
|
+
// Tooltip tip + placement, ported from the image hotspot (hotspot.scss) so both
|
|
6
|
+
// elements anchor their tooltip the same way.
|
|
7
|
+
//
|
|
8
|
+
// $ics is the tip's border-width: a 5px border with no content box makes a 10px
|
|
9
|
+
// triangle whose apex sits at the centre of the 10px box.
|
|
10
|
+
$ics: 5px;
|
|
11
|
+
$tip: $ics * 2;
|
|
12
|
+
$bm: 30px;
|
|
13
|
+
|
|
14
|
+
// Gap between the pin's edge and the tooltip. Held in a custom property so it can
|
|
15
|
+
// track the pin's real size at runtime (see --_sf-tp-gp below) instead of the flat
|
|
16
|
+
// 20px this file used to assume — that offset ignored Pin Size, so the tip drifted
|
|
17
|
+
// off the pin as soon as the pin was resized.
|
|
18
|
+
$g: var(--_sf-tp-gp);
|
|
19
|
+
|
|
20
|
+
$overflowSelector: ".flex__overflow";
|
|
21
|
+
|
|
22
|
+
// Each entry places the tooltip relative to the pin's centre, then pins the tip to
|
|
23
|
+
// the tooltip edge that faces the pin. Because $g already absorbs the pin's
|
|
24
|
+
// half-size, every tip offset below is a constant: the triangle always spans exactly
|
|
25
|
+
// the gap, base on the tooltip edge and apex on the pin edge. The previous table did
|
|
26
|
+
// this with hand-tuned multipliers (1.25 / 1.75 / 2.05 / 2.7 …) and, in five entries,
|
|
27
|
+
// a stray top-level border-color that painted over the tooltip's own border colour.
|
|
28
|
+
$data: (
|
|
29
|
+
// tooltip to the LEFT — tip on its right edge, pointing right
|
|
30
|
+
leftTop: (
|
|
31
|
+
transform: translate(calc(-100% - #{$g}), calc(-100% + #{$bm})),
|
|
32
|
+
icon: (
|
|
33
|
+
right: -#{$tip},
|
|
34
|
+
bottom: calc(#{$bm} - #{$ics}),
|
|
35
|
+
border-color: transparent transparent transparent var(--_ctm-dn-tp-dn-bd-cr),
|
|
36
|
+
),
|
|
37
|
+
),
|
|
38
|
+
leftCenter: (
|
|
39
|
+
transform: translate(calc(-100% - #{$g}), -50%),
|
|
40
|
+
icon: (
|
|
41
|
+
right: -#{$tip},
|
|
42
|
+
top: calc(50% - #{$ics}),
|
|
43
|
+
border-color: transparent transparent transparent var(--_ctm-dn-tp-dn-bd-cr),
|
|
44
|
+
),
|
|
45
|
+
),
|
|
46
|
+
leftBottom: (
|
|
47
|
+
transform: translate(calc(-100% - #{$g}), calc(0% - #{$bm})),
|
|
48
|
+
icon: (
|
|
49
|
+
right: -#{$tip},
|
|
50
|
+
top: calc(#{$bm} - #{$ics}),
|
|
51
|
+
border-color: transparent transparent transparent var(--_ctm-dn-tp-dn-bd-cr),
|
|
52
|
+
),
|
|
53
|
+
),
|
|
54
|
+
// tooltip ABOVE — tip on its bottom edge, pointing down
|
|
55
|
+
topLeft: (
|
|
56
|
+
transform: translate(calc(-100% + #{$bm}), calc(-100% - #{$g})),
|
|
57
|
+
icon: (
|
|
58
|
+
bottom: -#{$tip},
|
|
59
|
+
right: calc(#{$bm} - #{$ics}),
|
|
60
|
+
border-color: var(--_ctm-dn-tp-dn-bd-cr) transparent transparent transparent,
|
|
61
|
+
),
|
|
62
|
+
),
|
|
63
|
+
topCenter: (
|
|
64
|
+
transform: translate(-50%, calc(-100% - #{$g})),
|
|
65
|
+
icon: (
|
|
66
|
+
bottom: -#{$tip},
|
|
67
|
+
left: calc(50% - #{$ics}),
|
|
68
|
+
border-color: var(--_ctm-dn-tp-dn-bd-cr) transparent transparent transparent,
|
|
69
|
+
),
|
|
70
|
+
),
|
|
71
|
+
topRight: (
|
|
72
|
+
transform: translate(calc(0% - #{$bm}), calc(-100% - #{$g})),
|
|
73
|
+
icon: (
|
|
74
|
+
bottom: -#{$tip},
|
|
75
|
+
left: calc(#{$bm} - #{$ics}),
|
|
76
|
+
border-color: var(--_ctm-dn-tp-dn-bd-cr) transparent transparent transparent,
|
|
77
|
+
),
|
|
78
|
+
),
|
|
79
|
+
// tooltip to the RIGHT — tip on its left edge, pointing left
|
|
80
|
+
rightTop: (
|
|
81
|
+
transform: translate(#{$g}, calc(-100% + #{$bm})),
|
|
82
|
+
icon: (
|
|
83
|
+
left: -#{$tip},
|
|
84
|
+
bottom: calc(#{$bm} - #{$ics}),
|
|
85
|
+
border-color: transparent var(--_ctm-dn-tp-dn-bd-cr) transparent transparent,
|
|
86
|
+
),
|
|
87
|
+
),
|
|
88
|
+
rightCenter: (
|
|
89
|
+
transform: translate(#{$g}, -50%),
|
|
90
|
+
icon: (
|
|
91
|
+
left: -#{$tip},
|
|
92
|
+
top: calc(50% - #{$ics}),
|
|
93
|
+
border-color: transparent var(--_ctm-dn-tp-dn-bd-cr) transparent transparent,
|
|
94
|
+
),
|
|
95
|
+
),
|
|
96
|
+
rightBottom: (
|
|
97
|
+
transform: translate(#{$g}, calc(0% - #{$bm})),
|
|
98
|
+
icon: (
|
|
99
|
+
left: -#{$tip},
|
|
100
|
+
top: calc(#{$bm} - #{$ics}),
|
|
101
|
+
border-color: transparent var(--_ctm-dn-tp-dn-bd-cr) transparent transparent,
|
|
102
|
+
),
|
|
103
|
+
),
|
|
104
|
+
// tooltip BELOW — tip on its top edge, pointing up
|
|
105
|
+
bottomLeft: (
|
|
106
|
+
transform: translate(calc(-100% + #{$bm}), #{$g}),
|
|
107
|
+
icon: (
|
|
108
|
+
top: -#{$tip},
|
|
109
|
+
right: calc(#{$bm} - #{$ics}),
|
|
110
|
+
border-color: transparent transparent var(--_ctm-dn-tp-dn-bd-cr) transparent,
|
|
111
|
+
),
|
|
112
|
+
),
|
|
113
|
+
bottomCenter: (
|
|
114
|
+
transform: translate(-50%, #{$g}),
|
|
115
|
+
icon: (
|
|
116
|
+
top: -#{$tip},
|
|
117
|
+
left: calc(50% - #{$ics}),
|
|
118
|
+
border-color: transparent transparent var(--_ctm-dn-tp-dn-bd-cr) transparent,
|
|
119
|
+
),
|
|
120
|
+
),
|
|
121
|
+
bottomRight: (
|
|
122
|
+
transform: translate(calc(0% - #{$bm}), #{$g}),
|
|
123
|
+
icon: (
|
|
124
|
+
top: -#{$tip},
|
|
125
|
+
left: calc(#{$bm} - #{$ics}),
|
|
126
|
+
border-color: transparent transparent var(--_ctm-dn-tp-dn-bd-cr) transparent,
|
|
127
|
+
),
|
|
128
|
+
)
|
|
129
|
+
);
|
|
130
|
+
|
|
131
|
+
// Tooltip Design > Horizontal Alignment, translated for `text-align`. The control is
|
|
132
|
+
// picked from the shared alignment list (flex-start | center | flex-end), and those
|
|
133
|
+
// keywords mean nothing to text-align, so the two ends have to be mapped. The last two
|
|
134
|
+
// entries are the pre-list values, still stored on pages saved before that fix.
|
|
135
|
+
$tooltipTextAlign: (
|
|
136
|
+
"flex-start": left,
|
|
137
|
+
"center": center,
|
|
138
|
+
"flex-end": right,
|
|
139
|
+
"left": left,
|
|
140
|
+
"right": right,
|
|
141
|
+
);
|
|
142
|
+
|
|
143
|
+
[data-div-type="element"] {
|
|
144
|
+
&[data-element-type="map"] {
|
|
145
|
+
// Half the pin as it actually renders, and the gap the tooltip keeps from the
|
|
146
|
+
// pin's centre — both driven by the Pin Size control rather than a literal, so
|
|
147
|
+
// the tip lands on the pin at any size. Unlike the image hotspot there is no
|
|
148
|
+
// icon-only variant to handle: .hotspot is always sized by the pin size here,
|
|
149
|
+
// with the icon drawn inside it.
|
|
150
|
+
--_sf-ht-hf: calc(#{prepareMediaVariable(--_ctm-dn-pn-se-ht-se, 24px)} / 2);
|
|
151
|
+
--_sf-tp-gp: calc(var(--_sf-ht-hf) + #{$ics});
|
|
152
|
+
|
|
153
|
+
&[data-hotspot-position] {
|
|
154
|
+
@each $key, $value in $data {
|
|
155
|
+
&[data-hotspot-position="#{$key}"] {
|
|
156
|
+
.hotspot__tooltip {
|
|
157
|
+
@each $prop, $val in $value {
|
|
158
|
+
@if ($prop != icon) {
|
|
159
|
+
#{$prop}: #{$val};
|
|
160
|
+
} @else {
|
|
161
|
+
@each $key2, $value2 in $val {
|
|
162
|
+
&:after {
|
|
163
|
+
#{$key2}: #{$value2};
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
[data-div-type="element"] {
|
|
175
|
+
&[data-element-type="map"] {
|
|
176
|
+
// width: var(--_lt-wh);
|
|
177
|
+
// height: var(--_lt-ht);
|
|
178
|
+
// margin: var(--_lt-mn);
|
|
179
|
+
// padding: var(--_lt-pg);
|
|
180
|
+
// width: var(--_ctm-lt-wh, var(--_tst-lt-wh));
|
|
181
|
+
width: var(
|
|
182
|
+
--_sf-el-wh-st-mx,
|
|
183
|
+
calc(
|
|
184
|
+
1% * var(--_ctm-mob-ele-nw-wh-vl, var(--_ctm-tab-ele-nw-wh-vl, var(--_ctm-ele-nw-wh-vl)))
|
|
185
|
+
)
|
|
186
|
+
);
|
|
187
|
+
margin: var(--_ctm-mob-lt-mn, var(--_ctm-tab-lt-mn, var(--_ctm-lt-mn)));
|
|
188
|
+
|
|
189
|
+
--_aspect-ratio: calc(
|
|
190
|
+
1 *
|
|
191
|
+
(
|
|
192
|
+
var(--_ctm-mob-lt-ht, var(--_ctm-tab-lt-ht, var(--_ctm-lt-ht))) /
|
|
193
|
+
var(--_ctm-mob-lt-wh, var(--_ctm-tab-lt-wh, var(--_ctm-lt-wh)))
|
|
194
|
+
)
|
|
195
|
+
);
|
|
196
|
+
|
|
197
|
+
& > .wrapper {
|
|
198
|
+
width: 100%;
|
|
199
|
+
// height: 100%;
|
|
200
|
+
}
|
|
201
|
+
&[data-show-shadow="false"] {
|
|
202
|
+
--_show-shadow: none;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// design > Map Widget Layout — where the title/description block sits relative to
|
|
206
|
+
// the map. Top/Bottom stack it (column), Left/Right put it beside the map (row).
|
|
207
|
+
&[data-text-container-position="Bottom"] .map-element {
|
|
208
|
+
flex-direction: column-reverse;
|
|
209
|
+
}
|
|
210
|
+
&[data-text-container-position="Left"],
|
|
211
|
+
&[data-text-container-position="Right"] {
|
|
212
|
+
.map-element {
|
|
213
|
+
flex-direction: row;
|
|
214
|
+
|
|
215
|
+
// Beside the map the header sizes to its content and the map takes the rest;
|
|
216
|
+
// stacked above/below it keeps spanning the full width.
|
|
217
|
+
> .gallery-header {
|
|
218
|
+
// Text Container Width. `auto` (the default) is the previous behaviour.
|
|
219
|
+
width: prepareMediaVariable(--_ctm-dn-mp-wt-lt-tt-cr-wh, auto);
|
|
220
|
+
// Shrinkable: the width defaults to 100%, which beside the map is a ceiling —
|
|
221
|
+
// without this the header would take the whole row and collapse the map.
|
|
222
|
+
flex: 0 1 auto;
|
|
223
|
+
}
|
|
224
|
+
> .map {
|
|
225
|
+
flex: 1 1 auto;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
&[data-text-container-position="Right"] .map-element {
|
|
230
|
+
flex-direction: row-reverse;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// The alignment control switches between the horizontal list (left/center/right)
|
|
234
|
+
// for stacked layouts and the vertical one (top/center/bottom) for side-by-side.
|
|
235
|
+
// Stacked: the header spans the full width, so align the text inside it. Side by
|
|
236
|
+
// side: align the header on the flex cross axis.
|
|
237
|
+
&[data-text-container-alignment="left"] .map-element > .gallery-header {
|
|
238
|
+
text-align: left;
|
|
239
|
+
}
|
|
240
|
+
&[data-text-container-alignment="right"] .map-element > .gallery-header {
|
|
241
|
+
text-align: right;
|
|
242
|
+
}
|
|
243
|
+
&[data-text-container-alignment="top"] .map-element {
|
|
244
|
+
align-items: flex-start;
|
|
245
|
+
}
|
|
246
|
+
&[data-text-container-alignment="bottom"] .map-element {
|
|
247
|
+
align-items: flex-end;
|
|
248
|
+
}
|
|
249
|
+
&[data-text-container-alignment="center"] {
|
|
250
|
+
.map-element {
|
|
251
|
+
align-items: center;
|
|
252
|
+
|
|
253
|
+
> .gallery-header {
|
|
254
|
+
text-align: center;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
&[data-hotspot-image-style-show-border="true"] {
|
|
260
|
+
.imageHotspot-element {
|
|
261
|
+
border-style: var(--_ctm-dn-ie-se-br-se);
|
|
262
|
+
border-color: var(--_ctm-dn-ie-se-br-cr);
|
|
263
|
+
border-width: var(--_ctm-dn-ie-se-br-wh);
|
|
264
|
+
border-radius: var(--_ctm-dn-ie-se-br-rs);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
&[data-hotspot-tooltip-style-show-border="true"] {
|
|
268
|
+
.hotspot__tooltip {
|
|
269
|
+
border-style: var(--_ctm-dn-tp-dn-br-se);
|
|
270
|
+
border-color: var(--_ctm-dn-tp-dn-br-cr);
|
|
271
|
+
border-width: var(--_ctm-dn-tp-dn-br-wh);
|
|
272
|
+
border-radius: var(--_ctm-dn-tp-dn-br-rs);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
&[data-hotspot-tooltip-style-show-shadow="true"] {
|
|
276
|
+
.hotspot__tooltip {
|
|
277
|
+
box-shadow: var(--_ctm-dn-tp-dn-sw-ae) var(--_ctm-dn-tp-dn-sw-br) var(--_ctm-dn-tp-dn-sw-sd)
|
|
278
|
+
var(--_ctm-dn-tp-dn-sw-cr);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
// Tooltip Design > Horizontal Alignment, applied to the tooltip text itself.
|
|
283
|
+
//
|
|
284
|
+
// .text_box re-applies the control as align-items further down, which moves the
|
|
285
|
+
// title and the description only while they are narrower than the tooltip. A title
|
|
286
|
+
// long enough to wrap fills that wrapper, and a flex container cannot move a child
|
|
287
|
+
// that is already full width — which is why the control looked dead on the title
|
|
288
|
+
// while the shorter description still followed it.
|
|
289
|
+
//
|
|
290
|
+
// The value reaches the DOM as a data attribute because align-items keywords are
|
|
291
|
+
// not text-align keywords; Map Widget Layout's alignment takes the same route to
|
|
292
|
+
// .gallery-header above. The tooltip-level control wins over the per-text Alignment
|
|
293
|
+
// in Tooltip Text Design — it is the one that positions the text block.
|
|
294
|
+
@each $key, $align in $tooltipTextAlign {
|
|
295
|
+
&[data-tooltip-text-alignment="#{$key}"] {
|
|
296
|
+
.map-element .hotspot__tooltip .text_box > * {
|
|
297
|
+
text-align: $align;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
&[data-hotspot-tooltip-image-style-show-border="true"] {
|
|
302
|
+
.tooltip__image {
|
|
303
|
+
border-style: var(--_ctm-dn-tp-ie-dn-br-se);
|
|
304
|
+
border-color: var(--_ctm-dn-tp-ie-dn-br-cr);
|
|
305
|
+
border-width: var(--_ctm-dn-tp-ie-dn-br-wh);
|
|
306
|
+
border-radius: var(--_ctm-dn-tp-ie-dn-br-rs);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
&[data-hotspot-tooltip-image-style-show-shadow="true"] {
|
|
310
|
+
.tooltip__image {
|
|
311
|
+
box-shadow: var(
|
|
312
|
+
--_show-shadow,
|
|
313
|
+
var(--_ctm-dn-tp-ie-dn-sw-ae) var(--_ctm-dn-tp-ie-dn-sw-br) var(--_ctm-dn-tp-ie-dn-sw-sd)
|
|
314
|
+
var(--_ctm-dn-tp-ie-dn-sw-cr)
|
|
315
|
+
);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
&[data-hotspot-style-show-shadow="true"] {
|
|
319
|
+
.hotspot {
|
|
320
|
+
box-shadow: var(--_ctm-dn-ht-se-sw-ae) var(--_ctm-dn-ht-se-sw-br) var(--_ctm-dn-ht-se-sw-sd)
|
|
321
|
+
var(--_ctm-dn-ht-se-sw-cr);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
&[data-hotspot-style-show-border="true"] {
|
|
325
|
+
.hotspot {
|
|
326
|
+
border-style: var(--_ctm-dn-ht-se-br-se);
|
|
327
|
+
border-color: var(--_ctm-dn-ht-se-br-cr);
|
|
328
|
+
border-width: var(--_ctm-dn-ht-se-br-wh);
|
|
329
|
+
border-radius: var(--_ctm-dn-ht-se-br-rs);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
.map-element {
|
|
333
|
+
--text-high-contrast-rgb-value: 49, 49, 49;
|
|
334
|
+
--detail-medium-contrast: rgb(234, 234, 234);
|
|
335
|
+
--text-body: rgb(54, 49, 61);
|
|
336
|
+
|
|
337
|
+
position: relative;
|
|
338
|
+
background-color: var(
|
|
339
|
+
--_ctm-mob-dn-mp-wt-bd-cr,
|
|
340
|
+
var(--_ctm-tab-dn-mp-wt-bd-cr, var(--_ctm-dn-mp-wt-bd-cr))
|
|
341
|
+
);
|
|
342
|
+
|
|
343
|
+
padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
|
|
344
|
+
|
|
345
|
+
display: flex;
|
|
346
|
+
flex-direction: column;
|
|
347
|
+
--_sf-cd-gp: calc(var(--_sf-gp) * 0.5);
|
|
348
|
+
|
|
349
|
+
gap: var(
|
|
350
|
+
--_ctm-mob-dn-mp-wt-lt-mp-ad-tt-cr-sg,
|
|
351
|
+
var(--_ctm-tab-dn-mp-wt-lt-mp-ad-tt-cr-sg, var(--_ctm-dn-mp-wt-lt-mp-ad-tt-cr-sg))
|
|
352
|
+
);
|
|
353
|
+
// Alignment comes from the [data-text-container-alignment] rules above. It used to
|
|
354
|
+
// read the *spacing* variable here, which is a length and never valid for
|
|
355
|
+
// align-content, so the control did nothing.
|
|
356
|
+
|
|
357
|
+
width: 100%;
|
|
358
|
+
height: var(--_ctm-mob-lt-ht, var(--_ctm-tab-lt-ht, var(--_ctm-lt-ht)));
|
|
359
|
+
// Height is a fixed value from layout, so keep the border inside it rather than
|
|
360
|
+
// letting it push the widget past the size the user set.
|
|
361
|
+
box-sizing: border-box;
|
|
362
|
+
|
|
363
|
+
border-color: var(
|
|
364
|
+
--_ctm-mob-dn-mp-wt-br-cr,
|
|
365
|
+
var(--_ctm-tab-dn-mp-wt-br-cr, var(--_ctm-dn-mp-wt-br-cr))
|
|
366
|
+
);
|
|
367
|
+
|
|
368
|
+
border-style: var(
|
|
369
|
+
--_ctm-mob-dn-mp-wt-br-se,
|
|
370
|
+
var(--_ctm-tab-dn-mp-wt-br-se, var(--_ctm-dn-mp-wt-br-se))
|
|
371
|
+
);
|
|
372
|
+
|
|
373
|
+
border-width: var(
|
|
374
|
+
--_ctm-mob-dn-mp-wt-br-wh,
|
|
375
|
+
var(--_ctm-tab-dn-mp-wt-br-wh, var(--_ctm-dn-mp-wt-br-wh))
|
|
376
|
+
);
|
|
377
|
+
|
|
378
|
+
border-radius: var(
|
|
379
|
+
--_ctm-mob-dn-mp-wt-br-rs,
|
|
380
|
+
var(--_ctm-tab-dn-mp-wt-br-rs, var(--_ctm-dn-mp-wt-br-rs))
|
|
381
|
+
);
|
|
382
|
+
|
|
383
|
+
box-shadow: var(
|
|
384
|
+
--_show-shadow,
|
|
385
|
+
var(--_ctm-mob-dn-mp-wt-sw-ae, var(--_ctm-tab-dn-mp-wt-sw-ae, var(--_ctm-dn-mp-wt-sw-ae)))
|
|
386
|
+
var(--_ctm-mob-dn-mp-wt-sw-br, var(--_ctm-tab-dn-mp-wt-sw-br, var(--_ctm-dn-mp-wt-sw-br)))
|
|
387
|
+
var(--_ctm-mob-dn-mp-wt-sw-sd, var(--_ctm-tab-dn-mp-wt-sw-sd, var(--_ctm-dn-mp-wt-sw-sd)))
|
|
388
|
+
var(--_ctm-mob-dn-mp-wt-sw-cr, var(--_ctm-tab-dn-mp-wt-sw-cr, var(--_ctm-dn-mp-wt-sw-cr)))
|
|
389
|
+
);
|
|
390
|
+
|
|
391
|
+
.gallery-header {
|
|
392
|
+
// Text alignment is driven by [data-text-container-alignment] above. The
|
|
393
|
+
// gallery variable that used to sit here is never emitted for a map element.
|
|
394
|
+
box-sizing: border-box;
|
|
395
|
+
|
|
396
|
+
// line-height: var(--_ctm-dn-gy-lt-tt-ad-dn-sg, var(--_tst-dn-gy-lt-tt-ad-dn-sg));
|
|
397
|
+
display: flex;
|
|
398
|
+
flex-direction: column;
|
|
399
|
+
|
|
400
|
+
gap: var(
|
|
401
|
+
--_ctm-mob-dn-mp-wt-tt-cr-lt-te-ad-dn-sg,
|
|
402
|
+
var(--_ctm-tab-dn-mp-wt-tt-cr-lt-te-ad-dn-sg, var(--_ctm-dn-mp-wt-tt-cr-lt-te-ad-dn-sg))
|
|
403
|
+
);
|
|
404
|
+
padding-block: var(
|
|
405
|
+
--_ctm-mob-dn-mp-wt-tt-cr-lt-tt-vl-pg,
|
|
406
|
+
var(--_ctm-tab-dn-mp-wt-tt-cr-lt-tt-vl-pg, var(--_ctm-dn-mp-wt-tt-cr-lt-tt-vl-pg))
|
|
407
|
+
);
|
|
408
|
+
padding-inline: var(
|
|
409
|
+
--_ctm-mob-dn-mp-wt-tt-cr-lt-tt-hl-pg,
|
|
410
|
+
var(--_ctm-tab-dn-mp-wt-tt-cr-lt-tt-hl-pg, var(--_ctm-dn-mp-wt-tt-cr-lt-tt-hl-pg))
|
|
411
|
+
);
|
|
412
|
+
// design > Map Widget Text Container Design. This used to read a
|
|
413
|
+
// `...-tt-cr-lt-tt-cr-bd-cr` variable — the Text Container *Layout* prefix with a
|
|
414
|
+
// property that section has never had — so the Fill control did nothing.
|
|
415
|
+
background-color: var(
|
|
416
|
+
--_ctm-mob-dn-mp-wt-tt-cr-dn-bd-cr,
|
|
417
|
+
var(--_ctm-tab-dn-mp-wt-tt-cr-dn-bd-cr, var(--_ctm-dn-mp-wt-tt-cr-dn-bd-cr))
|
|
418
|
+
);
|
|
419
|
+
|
|
420
|
+
// Text Container Width. 100% is the previous behaviour, so an unset width
|
|
421
|
+
// still spans the container.
|
|
422
|
+
width: prepareMediaVariable(--_ctm-dn-mp-wt-lt-tt-cr-wh, 100%);
|
|
423
|
+
// ...but never wider than the widget. The control accepts a percentage of the
|
|
424
|
+
// widget and a raw length, and either can be dialled past the widget's own
|
|
425
|
+
// width — a percentage over 100, or a length longer than the widget. Both used
|
|
426
|
+
// to push the header (and the text painted on it) out over whatever sits to the
|
|
427
|
+
// right of the map. Clamping here rather than only capping the control also
|
|
428
|
+
// covers pages already saved with an oversized width.
|
|
429
|
+
max-width: 100%;
|
|
430
|
+
// Lets it shrink to that width beside the map — a flex item defaults to
|
|
431
|
+
// min-width:auto and refuses to go below its longest word.
|
|
432
|
+
min-width: 0;
|
|
433
|
+
// Never shrink below the wrapped text — the map absorbs the remaining height
|
|
434
|
+
// instead, so a taller heading does not overflow the widget.
|
|
435
|
+
flex: 0 0 auto;
|
|
436
|
+
border-color: var(
|
|
437
|
+
--_ctm-mob-dn-mp-wt-tt-cr-dn-br-cr,
|
|
438
|
+
var(--_ctm-tab-dn-mp-wt-tt-cr-dn-br-cr, var(--_ctm-dn-mp-wt-tt-cr-dn-br-cr))
|
|
439
|
+
);
|
|
440
|
+
border-style: var(
|
|
441
|
+
--_ctm-mob-dn-mp-wt-tt-cr-dn-br-se,
|
|
442
|
+
var(--_ctm-tab-dn-mp-wt-tt-cr-dn-br-se, var(--_ctm-dn-mp-wt-tt-cr-dn-br-se))
|
|
443
|
+
);
|
|
444
|
+
border-width: var(
|
|
445
|
+
--_ctm-mob-dn-mp-wt-tt-cr-dn-br-wh,
|
|
446
|
+
var(--_ctm-tab-dn-mp-wt-tt-cr-dn-br-wh, var(--_ctm-dn-mp-wt-tt-cr-dn-br-wh))
|
|
447
|
+
);
|
|
448
|
+
border-radius: var(
|
|
449
|
+
--_ctm-mob-dn-mp-wt-tt-cr-dn-br-rs,
|
|
450
|
+
var(--_ctm-tab-dn-mp-wt-tt-cr-dn-br-rs, var(--_ctm-dn-mp-wt-tt-cr-dn-br-rs))
|
|
451
|
+
);
|
|
452
|
+
box-shadow: var(
|
|
453
|
+
--_show-shadow,
|
|
454
|
+
var(
|
|
455
|
+
--_ctm-mob-dn-mp-wt-tt-cr-dn-sw-ae,
|
|
456
|
+
var(--_ctm-tab-dn-mp-wt-tt-cr-dn-sw-ae, var(--_ctm-dn-mp-wt-tt-cr-dn-sw-ae))
|
|
457
|
+
)
|
|
458
|
+
var(
|
|
459
|
+
--_ctm-mob-dn-mp-wt-tt-cr-dn-sw-br,
|
|
460
|
+
var(--_ctm-tab-dn-mp-wt-tt-cr-dn-sw-br, var(--_ctm-dn-mp-wt-tt-cr-dn-sw-br))
|
|
461
|
+
)
|
|
462
|
+
var(
|
|
463
|
+
--_ctm-mob-dn-mp-wt-tt-cr-dn-sw-sd,
|
|
464
|
+
var(--_ctm-tab-dn-mp-wt-tt-cr-dn-sw-sd, var(--_ctm-dn-mp-wt-tt-cr-dn-sw-sd))
|
|
465
|
+
)
|
|
466
|
+
var(
|
|
467
|
+
--_ctm-mob-dn-mp-wt-tt-cr-dn-sw-cr,
|
|
468
|
+
var(--_ctm-tab-dn-mp-wt-tt-cr-dn-sw-cr, var(--_ctm-dn-mp-wt-tt-cr-dn-sw-cr))
|
|
469
|
+
)
|
|
470
|
+
);
|
|
471
|
+
|
|
472
|
+
& h3 {
|
|
473
|
+
color: var(
|
|
474
|
+
--_ctm-mob-dn-mp-wt-cr,
|
|
475
|
+
var(--_ctm-tab-dn-mp-wt-cr, var(--_ctm-dn-mp-wt-cr, var(--_tst-dn-mp-wt-cr)))
|
|
476
|
+
);
|
|
477
|
+
font-family: var(
|
|
478
|
+
--_ctm-mob-dn-mp-wt-ft-fy,
|
|
479
|
+
var(--_ctm-tab-dn-mp-wt-ft-fy, var(--_ctm-dn-mp-wt-ft-fy, var(--_tst-dn-mp-wt-ft-fy)))
|
|
480
|
+
);
|
|
481
|
+
text-transform: var(
|
|
482
|
+
--_ctm-mob-dn-mp-wt-tt-tm,
|
|
483
|
+
var(--_ctm-tab-dn-mp-wt-tt-tm, var(--_ctm-dn-mp-wt-tt-tm, var(--_tst-dn-mp-wt-tt-tm)))
|
|
484
|
+
);
|
|
485
|
+
word-wrap: var(
|
|
486
|
+
--_ctm-mob-dn-mp-wt-wd-wp,
|
|
487
|
+
var(--_ctm-tab-dn-mp-wt-wd-wp, var(--_ctm-dn-mp-wt-wd-wp, break-word))
|
|
488
|
+
);
|
|
489
|
+
word-break: var(
|
|
490
|
+
--_ctm-mob-dn-mp-wt-wd-bk,
|
|
491
|
+
var(--_ctm-tab-dn-mp-wt-wd-bk, var(--_ctm-dn-mp-wt-wd-bk, var(--_tst-dn-mp-wt-wd-bk)))
|
|
492
|
+
);
|
|
493
|
+
font-size: var(
|
|
494
|
+
--_ctm-mob-dn-mp-wt-ft-se,
|
|
495
|
+
var(--_ctm-tab-dn-mp-wt-ft-se, var(--_ctm-dn-mp-wt-ft-se, var(--_tst-dn-mp-wt-ft-se)))
|
|
496
|
+
);
|
|
497
|
+
font-weight: var(
|
|
498
|
+
--_ctm-mob-dn-mp-wt-ft-wt,
|
|
499
|
+
var(--_ctm-tab-dn-mp-wt-ft-wt, var(--_ctm-dn-mp-wt-ft-wt, var(--_tst-dn-mp-wt-ft-wt)))
|
|
500
|
+
);
|
|
501
|
+
font-style: var(
|
|
502
|
+
--_ctm-mob-dn-mp-wt-ft-se-ic,
|
|
503
|
+
var(
|
|
504
|
+
--_ctm-tab-dn-mp-wt-ft-se-ic,
|
|
505
|
+
var(--_ctm-dn-mp-wt-ft-se-ic, var(--_tst-dn-mp-wt-ft-se-ic))
|
|
506
|
+
)
|
|
507
|
+
);
|
|
508
|
+
text-align: var(
|
|
509
|
+
--_ctm-mob-dn-mp-wt-tt-an,
|
|
510
|
+
var(--_ctm-tab-dn-mp-wt-tt-an, var(--_ctm-dn-mp-wt-tt-an, var(--_tst-dn-mp-wt-tt-an)))
|
|
511
|
+
);
|
|
512
|
+
letter-spacing: var(
|
|
513
|
+
--_ctm-mob-dn-mp-wt-lr-sg,
|
|
514
|
+
var(--_ctm-tab-dn-mp-wt-lr-sg, var(--_ctm-dn-mp-wt-lr-sg, var(--_tst-dn-mp-wt-lr-sg)))
|
|
515
|
+
);
|
|
516
|
+
line-height: var(
|
|
517
|
+
--_ctm-mob-dn-mp-wt-le-ht,
|
|
518
|
+
var(--_ctm-tab-dn-mp-wt-le-ht, var(--_ctm-dn-mp-wt-le-ht, var(--_tst-dn-mp-wt-le-ht)))
|
|
519
|
+
);
|
|
520
|
+
text-decoration: var(
|
|
521
|
+
--_ctm-mob-dn-mp-wt-ue,
|
|
522
|
+
var(--_ctm-tab-dn-mp-wt-ue, var(--_ctm-dn-mp-wt-ue, var(--_tst-dn-mp-wt-ue)))
|
|
523
|
+
);
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
& p {
|
|
527
|
+
color: var(
|
|
528
|
+
--_ctm-mob-dn-mp-wt-cr-dc,
|
|
529
|
+
var(--_ctm-tab-dn-mp-wt-cr-dc, var(--_ctm-dn-mp-wt-cr-dc, var(--_tst-dn-mp-wt-cr-dc)))
|
|
530
|
+
);
|
|
531
|
+
font-family: var(
|
|
532
|
+
--_ctm-mob-dn-mp-wt-ft-fy-dc,
|
|
533
|
+
var(
|
|
534
|
+
--_ctm-tab-dn-mp-wt-ft-fy-dc,
|
|
535
|
+
var(--_ctm-dn-mp-wt-ft-fy-dc, var(--_tst-dn-mp-wt-ft-fy-dc))
|
|
536
|
+
)
|
|
537
|
+
);
|
|
538
|
+
text-transform: var(
|
|
539
|
+
--_ctm-mob-dn-mp-wt-tt-tm-dc,
|
|
540
|
+
var(
|
|
541
|
+
--_ctm-tab-dn-mp-wt-tt-tm-dc,
|
|
542
|
+
var(--_ctm-dn-mp-wt-tt-tm-dc, var(--_tst-dn-mp-wt-tt-tm-dc))
|
|
543
|
+
)
|
|
544
|
+
);
|
|
545
|
+
word-wrap: var(
|
|
546
|
+
--_ctm-mob-dn-mp-wt-wd-wp-dc,
|
|
547
|
+
var(--_ctm-tab-dn-mp-wt-wd-wp-dc, var(--_ctm-dn-mp-wt-wd-wp-dc, break-word))
|
|
548
|
+
);
|
|
549
|
+
word-break: var(
|
|
550
|
+
--_ctm-mob-dn-mp-wt-wd-bk-dc,
|
|
551
|
+
var(
|
|
552
|
+
--_ctm-tab-dn-mp-wt-wd-bk-dc,
|
|
553
|
+
var(--_ctm-dn-mp-wt-wd-bk-dc, var(--_tst-dn-mp-wt-wd-bk-dc))
|
|
554
|
+
)
|
|
555
|
+
);
|
|
556
|
+
font-size: var(
|
|
557
|
+
--_ctm-mob-dn-mp-wt-ft-se-dc,
|
|
558
|
+
var(
|
|
559
|
+
--_ctm-tab-dn-mp-wt-ft-se-dc,
|
|
560
|
+
var(--_ctm-dn-mp-wt-ft-se-dc, var(--_tst-dn-mp-wt-ft-se-dc))
|
|
561
|
+
)
|
|
562
|
+
);
|
|
563
|
+
font-weight: var(
|
|
564
|
+
--_ctm-mob-dn-mp-wt-ft-wt-dc,
|
|
565
|
+
var(
|
|
566
|
+
--_ctm-tab-dn-mp-wt-ft-wt-dc,
|
|
567
|
+
var(--_ctm-dn-mp-wt-ft-wt-dc, var(--_tst-dn-mp-wt-ft-wt-dc))
|
|
568
|
+
)
|
|
569
|
+
);
|
|
570
|
+
font-style: var(
|
|
571
|
+
--_ctm-mob-dn-mp-wt-ft-se-ic-dc,
|
|
572
|
+
var(
|
|
573
|
+
--_ctm-tab-dn-mp-wt-ft-se-ic-dc,
|
|
574
|
+
var(--_ctm-dn-mp-wt-ft-se-ic-dc, var(--_tst-dn-mp-wt-ft-se-ic-dc))
|
|
575
|
+
)
|
|
576
|
+
);
|
|
577
|
+
text-align: var(
|
|
578
|
+
--_ctm-mob-dn-mp-wt-tt-an-dc,
|
|
579
|
+
var(
|
|
580
|
+
--_ctm-tab-dn-mp-wt-tt-an-dc,
|
|
581
|
+
var(--_ctm-dn-mp-wt-tt-an-dc, var(--_tst-dn-mp-wt-tt-an-dc))
|
|
582
|
+
)
|
|
583
|
+
);
|
|
584
|
+
letter-spacing: var(
|
|
585
|
+
--_ctm-mob-dn-mp-wt-lr-sg-dc,
|
|
586
|
+
var(
|
|
587
|
+
--_ctm-tab-dn-mp-wt-lr-sg-dc,
|
|
588
|
+
var(--_ctm-dn-mp-wt-lr-sg-dc, var(--_tst-dn-mp-wt-lr-sg-dc))
|
|
589
|
+
)
|
|
590
|
+
);
|
|
591
|
+
line-height: var(
|
|
592
|
+
--_ctm-mob-dn-mp-wt-le-ht-dc,
|
|
593
|
+
var(
|
|
594
|
+
--_ctm-tab-dn-mp-wt-le-ht-dc,
|
|
595
|
+
var(--_ctm-dn-mp-wt-le-ht-dc, var(--_tst-dn-mp-wt-le-ht-dc))
|
|
596
|
+
)
|
|
597
|
+
);
|
|
598
|
+
text-decoration: var(
|
|
599
|
+
--_ctm-mob-dn-mp-wt-ue-dc,
|
|
600
|
+
var(--_ctm-tab-dn-mp-wt-ue-dc, var(--_ctm-dn-mp-wt-ue-dc, var(--_tst-dn-mp-wt-ue-dc)))
|
|
601
|
+
);
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
// h3 {
|
|
605
|
+
// margin-bottom: var(--_mb-4);
|
|
606
|
+
// }
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
.img__overlay {
|
|
610
|
+
background: var(
|
|
611
|
+
--_ctm-mob-dn-ie-se-oy-cr,
|
|
612
|
+
var(--_ctm-tab-dn-ie-se-oy-cr, var(--_ctm-dn-ie-se-oy-cr, var(--_tst-dn-ie-se-oy-cr)))
|
|
613
|
+
);
|
|
614
|
+
|
|
615
|
+
height: 100%;
|
|
616
|
+
width: 100%;
|
|
617
|
+
position: absolute;
|
|
618
|
+
top: 0;
|
|
619
|
+
}
|
|
620
|
+
@keyframes scaleInOut {
|
|
621
|
+
0% {
|
|
622
|
+
transform: scale(1);
|
|
623
|
+
}
|
|
624
|
+
50% {
|
|
625
|
+
transform: scale(1.5);
|
|
626
|
+
}
|
|
627
|
+
100% {
|
|
628
|
+
transform: scale(1);
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
// Sonar ripple: each ring fades in at the pin size, expands and fades out.
|
|
632
|
+
@keyframes sonar {
|
|
633
|
+
0% {
|
|
634
|
+
transform: scale(1);
|
|
635
|
+
opacity: 0.6;
|
|
636
|
+
}
|
|
637
|
+
100% {
|
|
638
|
+
// Expands to ~1.8x the pin — clearly visible motion but still tight to the
|
|
639
|
+
// pin (not spreading far, per the earlier "going very long" feedback).
|
|
640
|
+
transform: scale(1.8);
|
|
641
|
+
opacity: 0;
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
.hotspot__container {
|
|
645
|
+
position: absolute;
|
|
646
|
+
// The marker element is already anchored at the location's lat/lng, so the pin
|
|
647
|
+
// and the tooltip both sit at its origin and are placed from there. The 43%/12%
|
|
648
|
+
// that used to be here came from the image hotspot's static-image layout and
|
|
649
|
+
// means nothing for a marker.
|
|
650
|
+
top: 0;
|
|
651
|
+
left: 0;
|
|
652
|
+
.hotspot__main {
|
|
653
|
+
position: relative;
|
|
654
|
+
|
|
655
|
+
// Divi Pixel-style sonar: a single bordered ring centred on the pin that
|
|
656
|
+
// expands and fades out on a loop. Only the ring animates — the pin/icon is
|
|
657
|
+
// static and kept on top via z-index. Rendered in JS only when the animation
|
|
658
|
+
// toggle is on. Duration comes from the frequency control (2s if none set), so
|
|
659
|
+
// the user's ms value drives the speed.
|
|
660
|
+
.svg-sonar-container {
|
|
661
|
+
position: absolute;
|
|
662
|
+
top: 50%;
|
|
663
|
+
left: 50%;
|
|
664
|
+
width: prepareMediaVariable(--_ctm-dn-pn-se-ht-se);
|
|
665
|
+
height: prepareMediaVariable(--_ctm-dn-pn-se-ht-se);
|
|
666
|
+
translate: -50% -50%;
|
|
667
|
+
pointer-events: none;
|
|
668
|
+
z-index: 1;
|
|
669
|
+
|
|
670
|
+
.sonar-circle {
|
|
671
|
+
position: absolute;
|
|
672
|
+
inset: 0;
|
|
673
|
+
border-radius: 50%;
|
|
674
|
+
// Ring colour follows the pin's background colour; visible fallback so the
|
|
675
|
+
// ripple never renders invisibly if the background var isn't emitted.
|
|
676
|
+
border: 1px solid prepareMediaVariable(--_ctm-dn-pn-se-bd-cr, #243dc6);
|
|
677
|
+
opacity: 0;
|
|
678
|
+
animation: sonar prepareMediaVariable(--_ctm-dn-pn-se-an-fy, 2s) linear infinite;
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
// Square pins get matching square rings; circle (default) stays 50%.
|
|
682
|
+
&[data-hotspot-shape="square"] .sonar-circle {
|
|
683
|
+
border-radius: 0;
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
.hotspot {
|
|
688
|
+
// background: var(--_ctm-dn-ht-se-bd-cr);
|
|
689
|
+
// height: var(--_ctm-dn-tp-tt-dn-ft-se);
|
|
690
|
+
// width: var(--_ctm-dn-tp-tt-dn-ft-se);
|
|
691
|
+
position: absolute;
|
|
692
|
+
// Above the sonar rings (container is z-index 1), so the pin/icon stays on top.
|
|
693
|
+
z-index: 2;
|
|
694
|
+
cursor: pointer;
|
|
695
|
+
// width: var(--_ctm-dn-ht-se-ht-se);
|
|
696
|
+
// height: var(--_ctm-dn-ht-se-ht-se);
|
|
697
|
+
// background-color: var(--_ctm-dn-ht-se-bd-cr);
|
|
698
|
+
width: var(
|
|
699
|
+
--_ctm-mob-dn-pn-se-ht-se,
|
|
700
|
+
var(--_ctm-tab-dn-pn-se-ht-se, var(--_ctm-dn-pn-se-ht-se))
|
|
701
|
+
);
|
|
702
|
+
height: var(
|
|
703
|
+
--_ctm-mob-dn-pn-se-ht-se,
|
|
704
|
+
var(--_ctm-tab-dn-pn-se-ht-se, var(--_ctm-dn-pn-se-ht-se))
|
|
705
|
+
);
|
|
706
|
+
|
|
707
|
+
height: prepareMediaVariable(--_ctm-dn-pn-se-ht-se);
|
|
708
|
+
width: prepareMediaVariable(--_ctm-dn-pn-se-ht-se);
|
|
709
|
+
|
|
710
|
+
position: absolute;
|
|
711
|
+
cursor: pointer;
|
|
712
|
+
|
|
713
|
+
display: flex;
|
|
714
|
+
align-items: center;
|
|
715
|
+
top: 50%;
|
|
716
|
+
left: 50%;
|
|
717
|
+
|
|
718
|
+
translate: -50% -50%;
|
|
719
|
+
box-sizing: border-box;
|
|
720
|
+
justify-content: center;
|
|
721
|
+
box-shadow: var(
|
|
722
|
+
--_ctm-mob-dn-pn-se-sw-ae,
|
|
723
|
+
var(--_ctm-tab-dn-pn-se-sw-ae, var(--_ctm-dn-pn-se-sw-ae))
|
|
724
|
+
)
|
|
725
|
+
var(
|
|
726
|
+
--_ctm-mob-dn-pn-se-sw-br,
|
|
727
|
+
var(--_ctm-tab-dn-pn-se-sw-br, var(--_ctm-dn-pn-se-sw-br))
|
|
728
|
+
)
|
|
729
|
+
var(
|
|
730
|
+
--_ctm-mob-dn-pn-se-sw-sd,
|
|
731
|
+
var(--_ctm-tab-dn-pn-se-sw-sd, var(--_ctm-dn-pn-se-sw-sd))
|
|
732
|
+
)
|
|
733
|
+
var(
|
|
734
|
+
--_ctm-mob-dn-pn-se-sw-cr,
|
|
735
|
+
var(--_ctm-tab-dn-pn-se-sw-cr, var(--_ctm-dn-pn-se-sw-cr))
|
|
736
|
+
);
|
|
737
|
+
|
|
738
|
+
// Pin corners follow the Shape control only — Circle or Square. There is no
|
|
739
|
+
// separate radius control for pins, and this used to be applied as an inline
|
|
740
|
+
// style from MarkersComponent, which outranked every rule in this file.
|
|
741
|
+
&[data-hotspot-shape="circle"] {
|
|
742
|
+
border-radius: 50%;
|
|
743
|
+
}
|
|
744
|
+
&[data-hotspot-shape="square"] {
|
|
745
|
+
border-radius: 0;
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
svg {
|
|
749
|
+
width: prepareMediaVariable(--_ctm-dn-pn-se-in-se);
|
|
750
|
+
height: prepareMediaVariable(--_ctm-dn-pn-se-in-se);
|
|
751
|
+
|
|
752
|
+
path[fill] {
|
|
753
|
+
fill: prepareMediaVariable(--_ctm-dn-pn-se-in-c1);
|
|
754
|
+
}
|
|
755
|
+
path[stroke] {
|
|
756
|
+
stroke: prepareMediaVariable(--_ctm-dn-pn-se-in-c1);
|
|
757
|
+
// Overrides the stroke-width presentation attribute baked into the icon markup.
|
|
758
|
+
stroke-width: prepareMediaVariable(--_ctm-dn-pn-se-se-wh, 1.25);
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
|
|
762
|
+
// One gate for "this pin has a styled box": always true for a shape pin,
|
|
763
|
+
// and for an icon pin only while its Background toggle is on. It used to
|
|
764
|
+
// also match [data-show-animation="true"], which meant turning the
|
|
765
|
+
// background off did nothing as soon as the animation was enabled.
|
|
766
|
+
&[data-show-shape-styles="true"] {
|
|
767
|
+
background-color: var(
|
|
768
|
+
--_ctm-mob-dn-pn-se-bd-cr,
|
|
769
|
+
var(--_ctm-tab-dn-pn-se-bd-cr, var(--_ctm-dn-pn-se-bd-cr))
|
|
770
|
+
);
|
|
771
|
+
|
|
772
|
+
border-style: var(
|
|
773
|
+
--_ctm-mob-dn-pn-se-br-se,
|
|
774
|
+
var(--_ctm-tab-dn-pn-se-br-se, var(--_ctm-dn-pn-se-br-se))
|
|
775
|
+
);
|
|
776
|
+
border-color: var(
|
|
777
|
+
--_ctm-mob-dn-pn-se-br-cr,
|
|
778
|
+
var(--_ctm-tab-dn-pn-se-br-cr, var(--_ctm-dn-pn-se-br-cr))
|
|
779
|
+
);
|
|
780
|
+
border-width: var(
|
|
781
|
+
--_ctm-mob-dn-pn-se-br-wh,
|
|
782
|
+
var(--_ctm-tab-dn-pn-se-br-wh, var(--_ctm-dn-pn-se-br-wh))
|
|
783
|
+
);
|
|
784
|
+
// No border-radius here — it would land after the shape rules above and
|
|
785
|
+
// undo Circle. The Shape control is the only thing that rounds a pin.
|
|
786
|
+
// box-shadow is applied unconditionally above so it works for all pins,
|
|
787
|
+
// independent of this shape/animation gate.
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
}
|
|
792
|
+
.hotspot__tooltip {
|
|
793
|
+
--_sf-br-vl: var(--_ctm-dn-tp-dn-br-rs, 0px);
|
|
794
|
+
position: absolute;
|
|
795
|
+
background: prepareMediaVariable(--_ctm-dn-tp-dn-bd-cr);
|
|
796
|
+
z-index: 1000;
|
|
797
|
+
// Sizing follows the image hotspot: the user's width/height with a floor under
|
|
798
|
+
// them. The caps are viewport-relative on purpose — this element's containing
|
|
799
|
+
// block is the Google marker, which is effectively zero-sized, so a percentage
|
|
800
|
+
// max-width would resolve to 0 and clamp the tooltip down to its min instead of
|
|
801
|
+
// holding the size the user set. The viewport cap still stops a desktop-sized
|
|
802
|
+
// tooltip spilling off a phone screen.
|
|
803
|
+
width: prepareMediaVariable(--_ctm-dn-tp-dn-tp-wh);
|
|
804
|
+
height: prepareMediaVariable(--_ctm-dn-tp-dn-tp-ht);
|
|
805
|
+
min-width: 100px;
|
|
806
|
+
min-height: 100px;
|
|
807
|
+
max-width: calc(100vw - 32px);
|
|
808
|
+
max-height: calc(100vh - 32px);
|
|
809
|
+
box-sizing: border-box;
|
|
810
|
+
// Placement comes from the [data-hotspot-position] transforms above, measured
|
|
811
|
+
// from the marker origin.
|
|
812
|
+
top: 0;
|
|
813
|
+
left: 0;
|
|
814
|
+
// No overflow here on purpose. The tip is an ::after sitting 10px outside the
|
|
815
|
+
// box, so any overflow value other than visible clips it away — that's what was
|
|
816
|
+
// eating the caret. The image hotspot scrolls its inner wrapper instead, and
|
|
817
|
+
// .text_box below does the same.
|
|
818
|
+
overflow: visible;
|
|
819
|
+
|
|
820
|
+
padding: 4px 8px;
|
|
821
|
+
display: flex;
|
|
822
|
+
justify-content: prepareMediaVariable(--_ctm-dn-tp-dn-hl-at);
|
|
823
|
+
align-items: prepareMediaVariable(--_ctm-dn-tp-dn-vl-at);
|
|
824
|
+
|
|
825
|
+
&::after {
|
|
826
|
+
content: "";
|
|
827
|
+
position: absolute;
|
|
828
|
+
|
|
829
|
+
border-width: 5px;
|
|
830
|
+
border-style: solid;
|
|
831
|
+
}
|
|
832
|
+
// The scroll container, mirroring .tooltip__image_with_text on the image
|
|
833
|
+
// hotspot: long content scrolls in here rather than on the tooltip itself.
|
|
834
|
+
.text_box {
|
|
835
|
+
overflow-y: auto;
|
|
836
|
+
max-width: 100%;
|
|
837
|
+
width: 100%;
|
|
838
|
+
height: 100%;
|
|
839
|
+
// This wrapper fills the tooltip on both axes, so the justify-content /
|
|
840
|
+
// align-items set on .hotspot__tooltip above have nothing left to move —
|
|
841
|
+
// that is why both alignment controls looked dead. Same trap the image
|
|
842
|
+
// hotspot hit with .tooltip__image_with_text (hotspot.scss): the alignment
|
|
843
|
+
// has to be re-applied on the box that actually holds the title and the
|
|
844
|
+
// description. The stack is a column here, so the *vertical* control drives
|
|
845
|
+
// justify-content and the *horizontal* one drives align-items — the opposite
|
|
846
|
+
// mapping to the tooltip itself.
|
|
847
|
+
display: flex;
|
|
848
|
+
flex-direction: column;
|
|
849
|
+
justify-content: prepareMediaVariable(--_ctm-dn-tp-dn-vl-at);
|
|
850
|
+
align-items: prepareMediaVariable(--_ctm-dn-tp-dn-hl-at);
|
|
851
|
+
|
|
852
|
+
// align-items shrinks each child to its content width, so the text still
|
|
853
|
+
// needs a cap to wrap against instead of overflowing the tooltip.
|
|
854
|
+
> * {
|
|
855
|
+
max-width: 100%;
|
|
856
|
+
}
|
|
857
|
+
|
|
858
|
+
h6 {
|
|
859
|
+
font-size: prepareMediaVariable(--_ctm-dn-tp-tt-dn-ft-se);
|
|
860
|
+
font-family: prepareMediaVariable(--_ctm-dn-tp-tt-dn-ft-fy);
|
|
861
|
+
color: prepareMediaVariable(--_ctm-dn-tp-tt-dn-cr);
|
|
862
|
+
|
|
863
|
+
font-weight: prepareMediaVariable(--_ctm-dn-tp-tt-dn-ft-wt);
|
|
864
|
+
font-style: prepareMediaVariable(--_ctm-dn-tp-tt-dn-ft-se-ic);
|
|
865
|
+
text-align: prepareMediaVariable(--_ctm-dn-tp-tt-dn-tt-an);
|
|
866
|
+
letter-spacing: prepareMediaVariable(--_ctm-dn-tp-tt-dn-lr-sg);
|
|
867
|
+
line-height: prepareMediaVariable(--_ctm-dn-tp-tt-dn-le-ht);
|
|
868
|
+
// Underline and line-through are two independent toggles writing two
|
|
869
|
+
// variables, so they have to be composed, not chained. `var(--lh, <ue>)`
|
|
870
|
+
// never reaches its fallback: the schema declares linethrough with an
|
|
871
|
+
// empty value, and stylesToString emits it as `--…-lh: ;`, which is a
|
|
872
|
+
// *defined* empty value rather than a missing one — so var() substitutes
|
|
873
|
+
// nothing and the whole declaration is thrown away. Listing both keywords
|
|
874
|
+
// on text-decoration-line lets either, both or neither apply; when both
|
|
875
|
+
// resolve empty the declaration is invalid and the initial `none` stands,
|
|
876
|
+
// which is exactly the both-off case.
|
|
877
|
+
text-decoration-line: var(
|
|
878
|
+
--_ctm-mob-dn-tp-tt-dn-ue,
|
|
879
|
+
var(--_ctm-tab-dn-tp-tt-dn-ue, var(--_ctm-dn-tp-tt-dn-ue,))
|
|
880
|
+
)
|
|
881
|
+
var(
|
|
882
|
+
--_ctm-mob-dn-tp-tt-dn-lh,
|
|
883
|
+
var(--_ctm-tab-dn-tp-tt-dn-lh, var(--_ctm-dn-tp-tt-dn-lh,))
|
|
884
|
+
);
|
|
885
|
+
// Same text properties the text element exposes (see text-temp-v2.scss).
|
|
886
|
+
text-transform: prepareMediaVariable(--_ctm-dn-tp-tt-dn-tt-tm, none);
|
|
887
|
+
word-wrap: prepareMediaVariable(--_ctm-dn-tp-tt-dn-wd-wp, normal);
|
|
888
|
+
word-break: prepareMediaVariable(--_ctm-dn-tp-tt-dn-wd-bk, normal);
|
|
889
|
+
|
|
890
|
+
// Text Overflow toggle in the typography panel; the line count rides in on
|
|
891
|
+
// --_sf-line-clamp from the element.
|
|
892
|
+
&#{$overflowSelector} {
|
|
893
|
+
@include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
|
|
894
|
+
}
|
|
895
|
+
}
|
|
896
|
+
p {
|
|
897
|
+
font-size: prepareMediaVariable(--_ctm-dn-tp-tt-dn-ft-se-dc);
|
|
898
|
+
color: prepareMediaVariable(--_ctm-dn-tp-tt-dn-cr-dc);
|
|
899
|
+
font-family: prepareMediaVariable(--_ctm-dn-tp-tt-dn-ft-fy-dc);
|
|
900
|
+
font-weight: prepareMediaVariable(--_ctm-dn-tp-tt-dn-ft-wt-dc);
|
|
901
|
+
font-style: prepareMediaVariable(--_ctm-dn-tp-tt-dn-ft-se-ic-dc);
|
|
902
|
+
text-align: prepareMediaVariable(--_ctm-dn-tp-tt-dn-tt-an-dc);
|
|
903
|
+
letter-spacing: prepareMediaVariable(--_ctm-dn-tp-tt-dn-lr-sg-dc);
|
|
904
|
+
line-height: prepareMediaVariable(--_ctm-dn-tp-tt-dn-le-ht-dc);
|
|
905
|
+
// Same composition as the title above.
|
|
906
|
+
text-decoration-line: var(
|
|
907
|
+
--_ctm-mob-dn-tp-tt-dn-ue-dc,
|
|
908
|
+
var(--_ctm-tab-dn-tp-tt-dn-ue-dc, var(--_ctm-dn-tp-tt-dn-ue-dc,))
|
|
909
|
+
)
|
|
910
|
+
var(
|
|
911
|
+
--_ctm-mob-dn-tp-tt-dn-lh-dc,
|
|
912
|
+
var(--_ctm-tab-dn-tp-tt-dn-lh-dc, var(--_ctm-dn-tp-tt-dn-lh-dc,))
|
|
913
|
+
);
|
|
914
|
+
text-transform: prepareMediaVariable(--_ctm-dn-tp-tt-dn-tt-tm-dc, none);
|
|
915
|
+
word-wrap: prepareMediaVariable(--_ctm-dn-tp-tt-dn-wd-wp-dc, normal);
|
|
916
|
+
word-break: prepareMediaVariable(--_ctm-dn-tp-tt-dn-wd-bk-dc, normal);
|
|
917
|
+
|
|
918
|
+
&#{$overflowSelector} {
|
|
919
|
+
@include restrictToLinesShow(#{var(--_sf-line-clamp-desc, 1)});
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
.tooltip__image {
|
|
924
|
+
width: 100%;
|
|
925
|
+
background-color: var(--_ctm-dn-tp-ie-dn-bd-cr);
|
|
926
|
+
transition: transform 0.3s ease-in-out;
|
|
927
|
+
display: flex;
|
|
928
|
+
justify-content: var(--_ctm-dn-tp-ie-dn-hl-at);
|
|
929
|
+
align-items: var(--_ctm-dn-tp-ie-dn-vl-at);
|
|
930
|
+
img {
|
|
931
|
+
object-fit: var(--_ctm-dn-tp-ie-dn-ft-os);
|
|
932
|
+
height: -webkit-fill-available;
|
|
933
|
+
max-width: 100%;
|
|
934
|
+
rotate: calc(var(--_ctm-dn-tp-ie-dn-ud) * 1deg);
|
|
935
|
+
scale: var(--_ctm-dn-tp-ie-dn-zm-ie);
|
|
936
|
+
|
|
937
|
+
&:hover {
|
|
938
|
+
&[data-on-img-hover="Zoom In"] {
|
|
939
|
+
transform: scale(1.08);
|
|
940
|
+
}
|
|
941
|
+
&[data-on-img-hover="Zoom Out"] {
|
|
942
|
+
transform: scale(0.92);
|
|
943
|
+
}
|
|
944
|
+
}
|
|
945
|
+
}
|
|
946
|
+
}
|
|
947
|
+
}
|
|
948
|
+
// .hotspot__main {
|
|
949
|
+
// position: relative;
|
|
950
|
+
// .hotspot {
|
|
951
|
+
// background: var(
|
|
952
|
+
// --_ctm-mob-dn-pn-se-bd-cr,
|
|
953
|
+
// var(--_ctm-tab-dn-pn-se-bd-cr, var(--_ctm-dn-pn-se-bd-cr))
|
|
954
|
+
// );
|
|
955
|
+
// border-style: var(
|
|
956
|
+
// --_ctm-mob-dn-pn-se-br-se,
|
|
957
|
+
// var(--_ctm-tab-dn-pn-se-br-se, var(--_ctm-dn-pn-se-br-se))
|
|
958
|
+
// );
|
|
959
|
+
// border-color: var(
|
|
960
|
+
// --_ctm-mob-dn-pn-se-br-cr,
|
|
961
|
+
// var(--_ctm-tab-dn-pn-se-br-cr, var(--_ctm-dn-pn-se-br-cr))
|
|
962
|
+
// );
|
|
963
|
+
// border-width: var(
|
|
964
|
+
// --_ctm-mob-dn-pn-se-br-wh,
|
|
965
|
+
// var(--_ctm-tab-dn-pn-se-br-wh, var(--_ctm-dn-pn-se-br-wh))
|
|
966
|
+
// );
|
|
967
|
+
// border-radius: var(
|
|
968
|
+
// --_ctm-mob-dn-pn-se-br-rs,
|
|
969
|
+
// var(--_ctm-tab-dn-pn-se-br-rs, var(--_ctm-dn-pn-se-br-rs))
|
|
970
|
+
// );
|
|
971
|
+
// box-shadow: var(
|
|
972
|
+
// --_show-shadow,
|
|
973
|
+
// var(
|
|
974
|
+
// --_ctm-mob-dn-pn-se-sw-ae,
|
|
975
|
+
// var(--_ctm-tab-dn-pn-se-sw-ae, var(--_ctm-dn-pn-se-sw-ae))
|
|
976
|
+
// )
|
|
977
|
+
// var(
|
|
978
|
+
// --_ctm-mob-dn-pn-se-sw-br,
|
|
979
|
+
// var(--_ctm-tab-dn-pn-se-sw-br, var(--_ctm-dn-pn-se-sw-br))
|
|
980
|
+
// )
|
|
981
|
+
// var(
|
|
982
|
+
// --_ctm-mob-dn-pn-se-sw-sd,
|
|
983
|
+
// var(--_ctm-tab-dn-pn-se-sw-sd, var(--_ctm-dn-pn-se-sw-sd))
|
|
984
|
+
// )
|
|
985
|
+
// var(
|
|
986
|
+
// --_ctm-mob-dn-pn-se-sw-cr,
|
|
987
|
+
// var(--_ctm-tab-dn-pn-se-sw-cr, var(--_ctm-dn-pn-se-sw-cr))
|
|
988
|
+
// )
|
|
989
|
+
// );
|
|
990
|
+
|
|
991
|
+
// position: absolute;
|
|
992
|
+
// cursor: pointer;
|
|
993
|
+
// width: var(
|
|
994
|
+
// --_ctm-mob-dn-pn-se-ht-se,
|
|
995
|
+
// var(--_ctm-tab-dn-pn-se-ht-se, var(--_ctm-dn-pn-se-ht-se))
|
|
996
|
+
// );
|
|
997
|
+
// height: var(
|
|
998
|
+
// --_ctm-mob-dn-pn-se-ht-se,
|
|
999
|
+
// var(--_ctm-tab-dn-pn-se-ht-se, var(--_ctm-dn-pn-se-ht-se))
|
|
1000
|
+
// );
|
|
1001
|
+
// background-color: var(
|
|
1002
|
+
// --_ctm-mob-dn-pn-se-bd-cr,
|
|
1003
|
+
// var(--_ctm-tab-dn-pn-se-bd-cr, var(--_ctm-dn-pn-se-bd-cr))
|
|
1004
|
+
// );
|
|
1005
|
+
|
|
1006
|
+
// display: flex;
|
|
1007
|
+
// align-items: center;
|
|
1008
|
+
// top: 50%;
|
|
1009
|
+
// left: 50%;
|
|
1010
|
+
// transform: translate(-50%, -50%);
|
|
1011
|
+
// justify-content: center;
|
|
1012
|
+
// animation: scaleInOut
|
|
1013
|
+
// var(
|
|
1014
|
+
// --_ctm-mob-dn-pn-se-an-fy,
|
|
1015
|
+
// var(--_ctm-tab-dn-pn-se-an-fy, var(--_ctm-dn-pn-se-an-fy))
|
|
1016
|
+
// )
|
|
1017
|
+
// infinite;
|
|
1018
|
+
|
|
1019
|
+
// .icon {
|
|
1020
|
+
// display: var(--_sf-show-icon-ff, flex);
|
|
1021
|
+
|
|
1022
|
+
// svg {
|
|
1023
|
+
// width: var(
|
|
1024
|
+
// --_ctm-mob-dn-pn-se-in-se,
|
|
1025
|
+
// var(--_ctm-tab-dn-pn-se-in-se, var(--_ctm-dn-pn-se-in-se))
|
|
1026
|
+
// );
|
|
1027
|
+
// height: var(
|
|
1028
|
+
// --_ctm-mob-dn-pn-se-in-se,
|
|
1029
|
+
// var(--_ctm-tab-dn-pn-se-in-se, var(--_ctm-dn-pn-se-in-se))
|
|
1030
|
+
// );
|
|
1031
|
+
|
|
1032
|
+
// path {
|
|
1033
|
+
// stroke: var(
|
|
1034
|
+
// --_ctm-mob-dn-pn-se-in-c1,
|
|
1035
|
+
// var(--_ctm-tab-dn-pn-se-in-c1, var(--_ctm-dn-pn-se-in-c1))
|
|
1036
|
+
// );
|
|
1037
|
+
// Overrides the stroke-width presentation attribute baked into the icon markup.
|
|
1038
|
+
stroke-width: prepareMediaVariable(--_ctm-dn-pn-se-se-wh, 1.25);
|
|
1039
|
+
// fill: var(
|
|
1040
|
+
// --_ctm-mob-dn-pn-se-in-c1,
|
|
1041
|
+
// var(--_ctm-tab-dn-pn-se-in-c1, var(--_ctm-dn-pn-se-in-c1))
|
|
1042
|
+
// );
|
|
1043
|
+
// }
|
|
1044
|
+
// }
|
|
1045
|
+
// }
|
|
1046
|
+
// }
|
|
1047
|
+
// .hotspot__tooltip {
|
|
1048
|
+
// position: absolute;
|
|
1049
|
+
// background: var(
|
|
1050
|
+
// --_ctm-mob-dn-tp-dn-bd-cr,
|
|
1051
|
+
// var(--_ctm-tab-dn-tp-dn-bd-cr, var(--_ctm-dn-tp-dn-bd-cr))
|
|
1052
|
+
// );
|
|
1053
|
+
// border-style: var(
|
|
1054
|
+
// --_ctm-mob-dn-tp-dn-br-se,
|
|
1055
|
+
// var(--_ctm-tab-dn-tp-dn-br-se, var(--_ctm-dn-tp-dn-br-se))
|
|
1056
|
+
// );
|
|
1057
|
+
// border-color: var(
|
|
1058
|
+
// --_ctm-mob-dn-tp-dn-br-cr,
|
|
1059
|
+
// var(--_ctm-tab-dn-tp-dn-br-cr, var(--_ctm-dn-tp-dn-br-cr))
|
|
1060
|
+
// );
|
|
1061
|
+
// border-width: var(
|
|
1062
|
+
// --_ctm-mob-dn-tp-dn-br-wh,
|
|
1063
|
+
// var(--_ctm-tab-dn-tp-dn-br-wh, var(--_ctm-dn-tp-dn-br-wh))
|
|
1064
|
+
// );
|
|
1065
|
+
// border-radius: var(
|
|
1066
|
+
// --_ctm-mob-dn-tp-dn-br-rs,
|
|
1067
|
+
// var(--_ctm-tab-dn-tp-dn-br-rs, var(--_ctm-dn-tp-dn-br-rs))
|
|
1068
|
+
// );
|
|
1069
|
+
|
|
1070
|
+
// box-shadow: var(
|
|
1071
|
+
// --_show-shadow,
|
|
1072
|
+
// var(
|
|
1073
|
+
// --_ctm-mob-dn-tp-dn-sw-ae,
|
|
1074
|
+
// var(--_ctm-tab-dn-tp-dn-sw-ae, var(--_ctm-dn-tp-dn-sw-ae))
|
|
1075
|
+
// )
|
|
1076
|
+
// var(
|
|
1077
|
+
// --_ctm-mob-dn-tp-dn-sw-br,
|
|
1078
|
+
// var(--_ctm-tab-dn-tp-dn-sw-br, var(--_ctm-dn-tp-dn-sw-br))
|
|
1079
|
+
// )
|
|
1080
|
+
// var(
|
|
1081
|
+
// --_ctm-mob-dn-tp-dn-sw-sd,
|
|
1082
|
+
// var(--_ctm-tab-dn-tp-dn-sw-sd, var(--_ctm-dn-tp-dn-sw-sd))
|
|
1083
|
+
// )
|
|
1084
|
+
// var(
|
|
1085
|
+
// --_ctm-mob-dn-tp-dn-sw-cr,
|
|
1086
|
+
// var(--_ctm-tab-dn-tp-dn-sw-cr, var(--_ctm-dn-tp-dn-sw-cr))
|
|
1087
|
+
// )
|
|
1088
|
+
// );
|
|
1089
|
+
|
|
1090
|
+
// z-index: 1000;
|
|
1091
|
+
// min-width: 100px;
|
|
1092
|
+
// width: var(
|
|
1093
|
+
// --_ctm-mob-dn-tp-dn-tp-wh,
|
|
1094
|
+
// var(--_ctm-tab-dn-tp-dn-tp-wh, var(--_ctm-dn-tp-dn-tp-wh))
|
|
1095
|
+
// );
|
|
1096
|
+
// min-height: 100px;
|
|
1097
|
+
// height: var(
|
|
1098
|
+
// --_ctm-mob-dn-tp-dn-tp-ht,
|
|
1099
|
+
// var(--_ctm-tab-dn-tp-dn-tp-ht, var(--_ctm-dn-tp-dn-tp-ht))
|
|
1100
|
+
// );
|
|
1101
|
+
|
|
1102
|
+
// // border-radius: 4px;
|
|
1103
|
+
// // transform: translate(-10%, -130%);
|
|
1104
|
+
// left: -10px;
|
|
1105
|
+
// bottom: 7px;
|
|
1106
|
+
// padding: 4px 8px;
|
|
1107
|
+
// display: flex;
|
|
1108
|
+
// justify-content: var(
|
|
1109
|
+
// --_ctm-mob-dn-tp-dn-hl-at,
|
|
1110
|
+
// var(--_ctm-tab-dn-tp-dn-hl-at, var(--_ctm-dn-tp-dn-hl-at))
|
|
1111
|
+
// );
|
|
1112
|
+
// align-items: var(
|
|
1113
|
+
// --_ctm-mob-dn-tp-dn-vl-at,
|
|
1114
|
+
// var(--_ctm-tab-dn-tp-dn-vl-at, var(--_ctm-dn-tp-dn-vl-at))
|
|
1115
|
+
// );
|
|
1116
|
+
|
|
1117
|
+
// &::after {
|
|
1118
|
+
// content: "";
|
|
1119
|
+
// position: absolute;
|
|
1120
|
+
// top: 100%;
|
|
1121
|
+
// left: 20px;
|
|
1122
|
+
// margin-left: -5px;
|
|
1123
|
+
// border-width: 5px;
|
|
1124
|
+
// border-style: solid;
|
|
1125
|
+
// border-color: var(
|
|
1126
|
+
// --_ctm-mob-dn-tp-dn-bd-cr,
|
|
1127
|
+
// var(--_ctm-tab-dn-tp-dn-bd-cr, var(--_ctm-dn-tp-dn-bd-cr))
|
|
1128
|
+
// )
|
|
1129
|
+
// transparent transparent transparent;
|
|
1130
|
+
// }
|
|
1131
|
+
// span {
|
|
1132
|
+
// svg {
|
|
1133
|
+
// width: var(
|
|
1134
|
+
// --_ctm-mob-dn-pn-se-in-se,
|
|
1135
|
+
// var(--_ctm-tab-dn-pn-se-in-se, var(--_ctm-dn-pn-se-in-se))
|
|
1136
|
+
// );
|
|
1137
|
+
// height: var(
|
|
1138
|
+
// --_ctm-mob-dn-pn-se-in-se,
|
|
1139
|
+
// var(--_ctm-tab-dn-pn-se-in-se, var(--_ctm-dn-pn-se-in-se))
|
|
1140
|
+
// );
|
|
1141
|
+
// path {
|
|
1142
|
+
// stroke: var(
|
|
1143
|
+
// --_ctm-mob-dn-pn-se-in-c1,
|
|
1144
|
+
// var(--_ctm-tab-dn-pn-se-in-c1, var(--_ctm-dn-pn-se-in-c1))
|
|
1145
|
+
// );
|
|
1146
|
+
// Overrides the stroke-width presentation attribute baked into the icon markup.
|
|
1147
|
+
stroke-width: prepareMediaVariable(--_ctm-dn-pn-se-se-wh, 1.25);
|
|
1148
|
+
// }
|
|
1149
|
+
// }
|
|
1150
|
+
// }
|
|
1151
|
+
|
|
1152
|
+
// .text_box {
|
|
1153
|
+
// h6 {
|
|
1154
|
+
// font-size: var(
|
|
1155
|
+
// --_ctm-mob-dn-tp-tt-dn-ft-se,
|
|
1156
|
+
// var(--_ctm-tab-dn-tp-tt-dn-ft-se, var(--_ctm-dn-tp-tt-dn-ft-se))
|
|
1157
|
+
// );
|
|
1158
|
+
// font-family: var(
|
|
1159
|
+
// --_ctm-mob-dn-tp-tt-dn-ft-fy,
|
|
1160
|
+
// var(--_ctm-tab-dn-tp-tt-dn-ft-fy, var(--_ctm-dn-tp-tt-dn-ft-fy))
|
|
1161
|
+
// );
|
|
1162
|
+
// color: var(
|
|
1163
|
+
// --_ctm-mob-dn-tp-tt-dn-cr,
|
|
1164
|
+
// var(--_ctm-tab-dn-tp-tt-dn-cr, var(--_ctm-dn-tp-tt-dn-cr))
|
|
1165
|
+
// );
|
|
1166
|
+
|
|
1167
|
+
// font-weight: var(
|
|
1168
|
+
// --_ctm-mob-dn-tp-tt-dn-ft-wt,
|
|
1169
|
+
// var(--_ctm-tab-dn-tp-tt-dn-ft-wt, var(--_ctm-dn-tp-tt-dn-ft-wt))
|
|
1170
|
+
// );
|
|
1171
|
+
// font-style: var(
|
|
1172
|
+
// --_ctm-mob-dn-tp-tt-dn-ft-se-ic,
|
|
1173
|
+
// var(--_ctm-tab-dn-tp-tt-dn-ft-se-ic, var(--_ctm-dn-tp-tt-dn-ft-se-ic))
|
|
1174
|
+
// );
|
|
1175
|
+
// text-align: var(
|
|
1176
|
+
// --_ctm-mob-dn-tp-tt-dn-tt-an,
|
|
1177
|
+
// var(--_ctm-tab-dn-tp-tt-dn-tt-an, var(--_ctm-dn-tp-tt-dn-tt-an))
|
|
1178
|
+
// );
|
|
1179
|
+
// letter-spacing: var(
|
|
1180
|
+
// --_ctm-mob-dn-tp-tt-dn-lr-sg,
|
|
1181
|
+
// var(--_ctm-tab-dn-tp-tt-dn-lr-sg, var(--_ctm-dn-tp-tt-dn-lr-sg))
|
|
1182
|
+
// );
|
|
1183
|
+
// line-height: var(
|
|
1184
|
+
// --_ctm-mob-dn-tp-tt-dn-le-ht,
|
|
1185
|
+
// var(--_ctm-tab-dn-tp-tt-dn-le-ht, var(--_ctm-dn-tp-tt-dn-le-ht))
|
|
1186
|
+
// );
|
|
1187
|
+
// text-decoration: var(
|
|
1188
|
+
// --_ctm-mob-dn-tp-tt-dn-ue,
|
|
1189
|
+
// var(--_ctm-tab-dn-tp-tt-dn-ue, var(--_ctm-dn-tp-tt-dn-ue))
|
|
1190
|
+
// );
|
|
1191
|
+
// }
|
|
1192
|
+
|
|
1193
|
+
// p {
|
|
1194
|
+
// font-size: var(
|
|
1195
|
+
// --_ctm-mob-dn-tp-tt-dn-ft-se-dc,
|
|
1196
|
+
// var(--_ctm-tab-dn-tp-tt-dn-ft-se-dc, var(--_ctm-dn-tp-tt-dn-ft-se-dc))
|
|
1197
|
+
// );
|
|
1198
|
+
// color: var(
|
|
1199
|
+
// --_ctm-mob-dn-tp-tt-dn-cr-dc,
|
|
1200
|
+
// var(--_ctm-tab-dn-tp-tt-dn-cr-dc, var(--_ctm-dn-tp-tt-dn-cr-dc))
|
|
1201
|
+
// );
|
|
1202
|
+
// font-family: var(
|
|
1203
|
+
// --_ctm-mob-dn-tp-tt-dn-ft-fy-dc,
|
|
1204
|
+
// var(--_ctm-tab-dn-tp-tt-dn-ft-fy-dc, var(--_ctm-dn-tp-tt-dn-ft-fy-dc))
|
|
1205
|
+
// );
|
|
1206
|
+
// font-weight: var(
|
|
1207
|
+
// --_ctm-mob-dn-tp-tt-dn-ft-wt-dc,
|
|
1208
|
+
// var(--_ctm-tab-dn-tp-tt-dn-ft-wt-dc, var(--_ctm-dn-tp-tt-dn-ft-wt-dc))
|
|
1209
|
+
// );
|
|
1210
|
+
// font-style: var(
|
|
1211
|
+
// --_ctm-mob-dn-tp-tt-dn-ft-se-ic-dc,
|
|
1212
|
+
// var(--_ctm-tab-dn-tp-tt-dn-ft-se-ic-dc, var(--_ctm-dn-tp-tt-dn-ft-se-ic-dc))
|
|
1213
|
+
// );
|
|
1214
|
+
// text-align: var(
|
|
1215
|
+
// --_ctm-mob-dn-tp-tt-dn-tt-an-dc,
|
|
1216
|
+
// var(--_ctm-tab-dn-tp-tt-dn-tt-an-dc, var(--_ctm-dn-tp-tt-dn-tt-an-dc))
|
|
1217
|
+
// );
|
|
1218
|
+
// letter-spacing: var(
|
|
1219
|
+
// --_ctm-mob-dn-tp-tt-dn-lr-sg-dc,
|
|
1220
|
+
// var(--_ctm-tab-dn-tp-tt-dn-lr-sg-dc, var(--_ctm-dn-tp-tt-dn-lr-sg-dc))
|
|
1221
|
+
// );
|
|
1222
|
+
// line-height: var(
|
|
1223
|
+
// --_ctm-mob-dn-tp-tt-dn-le-ht-dc,
|
|
1224
|
+
// var(--_ctm-tab-dn-tp-tt-dn-le-ht-dc, var(--_ctm-dn-tp-tt-dn-le-ht-dc))
|
|
1225
|
+
// );
|
|
1226
|
+
// text-decoration: var(
|
|
1227
|
+
// --_ctm-mob-dn-tp-tt-dn-ue-dc,
|
|
1228
|
+
// var(--_ctm-tab-dn-tp-tt-dn-ue-dc, var(--_ctm-dn-tp-tt-dn-ue-dc))
|
|
1229
|
+
// );
|
|
1230
|
+
// }
|
|
1231
|
+
// }
|
|
1232
|
+
// .tooltip__image {
|
|
1233
|
+
// background-color: var(
|
|
1234
|
+
// --_ctm-mob-dn-tp-ie-dn-bd-cr,
|
|
1235
|
+
// var(--_ctm-tab-dn-tp-ie-dn-bd-cr, var(--_ctm-dn-tp-ie-dn-bd-cr))
|
|
1236
|
+
// );
|
|
1237
|
+
// transition: transform 0.3s ease-in-out;
|
|
1238
|
+
// border-style: var(
|
|
1239
|
+
// --_ctm-mob-dn-tp-ie-dn-br-se,
|
|
1240
|
+
// var(--_ctm-tab-dn-tp-ie-dn-br-se, var(--_ctm-dn-tp-ie-dn-br-se))
|
|
1241
|
+
// );
|
|
1242
|
+
// border-color: var(
|
|
1243
|
+
// --_ctm-mob-dn-tp-ie-dn-br-cr,
|
|
1244
|
+
// var(--_ctm-tab-dn-tp-ie-dn-br-cr, var(--_ctm-dn-tp-ie-dn-br-cr))
|
|
1245
|
+
// );
|
|
1246
|
+
// border-width: var(
|
|
1247
|
+
// --_ctm-mob-dn-tp-ie-dn-br-wh,
|
|
1248
|
+
// var(--_ctm-tab-dn-tp-ie-dn-br-wh, var(--_ctm-dn-tp-ie-dn-br-wh))
|
|
1249
|
+
// );
|
|
1250
|
+
// border-radius: var(
|
|
1251
|
+
// --_ctm-mob-dn-tp-ie-dn-br-rs,
|
|
1252
|
+
// var(--_ctm-tab-dn-tp-ie-dn-br-rs, var(--_ctm-dn-tp-ie-dn-br-rs))
|
|
1253
|
+
// );
|
|
1254
|
+
// box-shadow: var(
|
|
1255
|
+
// --_show-shadow,
|
|
1256
|
+
// var(
|
|
1257
|
+
// --_ctm-mob-dn-tp-ie-dn-sw-ae,
|
|
1258
|
+
// var(--_ctm-tab-dn-tp-ie-dn-sw-ae, var(--_ctm-dn-tp-ie-dn-sw-ae))
|
|
1259
|
+
// )
|
|
1260
|
+
// var(
|
|
1261
|
+
// --_ctm-mob-dn-tp-ie-dn-sw-br,
|
|
1262
|
+
// var(--_ctm-tab-dn-tp-ie-dn-sw-br, var(--_ctm-dn-tp-ie-dn-sw-br))
|
|
1263
|
+
// )
|
|
1264
|
+
// var(
|
|
1265
|
+
// --_ctm-mob-dn-tp-ie-dn-sw-sd,
|
|
1266
|
+
// var(--_ctm-tab-dn-tp-ie-dn-sw-sd, var(--_ctm-dn-tp-ie-dn-sw-sd))
|
|
1267
|
+
// )
|
|
1268
|
+
// var(
|
|
1269
|
+
// --_ctm-mob-dn-tp-ie-dn-sw-cr,
|
|
1270
|
+
// var(--_ctm-tab-dn-tp-ie-dn-sw-cr, var(--_ctm-dn-tp-ie-dn-sw-cr))
|
|
1271
|
+
// )
|
|
1272
|
+
// );
|
|
1273
|
+
// display: flex;
|
|
1274
|
+
// justify-content: var(
|
|
1275
|
+
// --_ctm-mob-dn-tp-ie-dn-hl-at,
|
|
1276
|
+
// var(--_ctm-tab-dn-tp-ie-dn-hl-at, var(--_ctm-dn-tp-ie-dn-hl-at))
|
|
1277
|
+
// );
|
|
1278
|
+
// align-items: var(
|
|
1279
|
+
// --_ctm-mob-dn-tp-ie-dn-vl-at,
|
|
1280
|
+
// var(--_ctm-tab-dn-tp-ie-dn-vl-at, var(--_ctm-dn-tp-ie-dn-vl-at))
|
|
1281
|
+
// );
|
|
1282
|
+
|
|
1283
|
+
// img {
|
|
1284
|
+
// object-fit: var(
|
|
1285
|
+
// --_ctm-mob-dn-tp-ie-dn-ft-os,
|
|
1286
|
+
// var(--_ctm-tab-dn-tp-ie-dn-ft-os, var(--_ctm-dn-tp-ie-dn-ft-os))
|
|
1287
|
+
// );
|
|
1288
|
+
// max-width: 100%;
|
|
1289
|
+
// rotate: calc(
|
|
1290
|
+
// var(
|
|
1291
|
+
// --_ctm-mob-dn-tp-ie-dn-ud,
|
|
1292
|
+
// var(--_ctm-tab-dn-tp-ie-dn-ud, var(--_ctm-dn-tp-ie-dn-ud))
|
|
1293
|
+
// ) *
|
|
1294
|
+
// 1deg
|
|
1295
|
+
// );
|
|
1296
|
+
// scale: var(
|
|
1297
|
+
// --_ctm-mob-dn-tp-ie-dn-zm-ie,
|
|
1298
|
+
// var(--_ctm-tab-dn-tp-ie-dn-zm-ie, var(--_ctm-dn-tp-ie-dn-zm-ie))
|
|
1299
|
+
// );
|
|
1300
|
+
// }
|
|
1301
|
+
// }
|
|
1302
|
+
// }
|
|
1303
|
+
// }
|
|
1304
|
+
|
|
1305
|
+
.map {
|
|
1306
|
+
width: 100%;
|
|
1307
|
+
height: 100%;
|
|
1308
|
+
min-width: 0;
|
|
1309
|
+
// Yields height to the heading rather than demanding the full 100%.
|
|
1310
|
+
flex: 1 1 auto;
|
|
1311
|
+
min-height: 0;
|
|
1312
|
+
// design > Map Style. The map box paints its own border from that section's
|
|
1313
|
+
// scope (`--_ctm-dn-mp-se-*`), independent of the widget's border on
|
|
1314
|
+
// `.map-element` and the header's on `.gallery-header`. `overflow: hidden` so a
|
|
1315
|
+
// rounded corner actually clips the tiles inside it.
|
|
1316
|
+
overflow: hidden;
|
|
1317
|
+
border-color: prepareMediaVariable(--_ctm-dn-mp-ie-br-cr);
|
|
1318
|
+
border-style: prepareMediaVariable(--_ctm-dn-mp-ie-br-se);
|
|
1319
|
+
border-width: prepareMediaVariable(--_ctm-dn-mp-ie-br-wh);
|
|
1320
|
+
border-radius: prepareMediaVariable(--_ctm-dn-mp-ie-br-rs);
|
|
1321
|
+
img {
|
|
1322
|
+
width: 100%;
|
|
1323
|
+
height: 100%;
|
|
1324
|
+
}
|
|
1325
|
+
}
|
|
1326
|
+
}
|
|
1327
|
+
|
|
1328
|
+
// "Show Border" / "Show Shadow" switches. Each design section paints its box from
|
|
1329
|
+
// CSS variables, so the switches reach the stylesheet as data attributes and the
|
|
1330
|
+
// matching border-width / box-shadow is zeroed here. Kept at the end of the block
|
|
1331
|
+
// and matched to the same selector depth as the rules they override — anywhere
|
|
1332
|
+
// earlier and the section rules above would win the tie on source order.
|
|
1333
|
+
&[data-map-widget-border="false"] .map-element {
|
|
1334
|
+
border-width: 0;
|
|
1335
|
+
border-style: none;
|
|
1336
|
+
}
|
|
1337
|
+
&[data-map-widget-shadow="false"] .map-element {
|
|
1338
|
+
box-shadow: none;
|
|
1339
|
+
}
|
|
1340
|
+
&[data-text-container-border="false"] .map-element > .gallery-header {
|
|
1341
|
+
border-width: 0;
|
|
1342
|
+
border-style: none;
|
|
1343
|
+
}
|
|
1344
|
+
&[data-text-container-shadow="false"] .map-element > .gallery-header {
|
|
1345
|
+
box-shadow: none;
|
|
1346
|
+
}
|
|
1347
|
+
&[data-pin-border="false"] .map-element .hotspot__container .hotspot__main .hotspot {
|
|
1348
|
+
border-width: 0;
|
|
1349
|
+
border-style: none;
|
|
1350
|
+
}
|
|
1351
|
+
&[data-pin-shadow="false"] .map-element .hotspot__container .hotspot__main .hotspot {
|
|
1352
|
+
box-shadow: none;
|
|
1353
|
+
}
|
|
1354
|
+
&[data-map-border="false"] .map-element .map {
|
|
1355
|
+
border-width: 0;
|
|
1356
|
+
border-style: none;
|
|
1357
|
+
}
|
|
1358
|
+
}
|
|
1359
|
+
}
|